diff --git a/data/json/mapgen/refugee_center/refugee_center.json b/data/json/mapgen/refugee_center/refugee_center.json index 916e02f027308..73e1e7a6514ee 100644 --- a/data/json/mapgen/refugee_center/refugee_center.json +++ b/data/json/mapgen/refugee_center/refugee_center.json @@ -314,7 +314,7 @@ { "class": "arsonist", "x": 38, "y": 19 }, { "class": "old_guard_rep", "x": 47, "y": 10 }, { "class": "guard", "x": 46, "y": 3 }, - { "class": "evac_merchant", "x": 71, "y": 0 }, + { "class": "free_merchants_merchant", "x": 71, "y": 0 }, { "class": "science_rep", "x": 48, "y": 0 }, { "class": "refugee_beggar1", "x": 53, "y": 0 }, { "class": "refugee_beggar2", "x": 55, "y": 2 }, diff --git a/data/json/npcs/TALK_COMMON_MISSION.json b/data/json/npcs/TALK_COMMON_MISSION.json index a5ce09e147241..364cdf11222f7 100644 --- a/data/json/npcs/TALK_COMMON_MISSION.json +++ b/data/json/npcs/TALK_COMMON_MISSION.json @@ -10,6 +10,7 @@ "id": [ "TALK_SHELTER", "TALK_EVAC_MERCHANT", + "TALK_FREE_MERCHANTS_MERCHANT", "TALK_ARSONIST", "TALK_OLD_GUARD_REP", "TALK_EVAC_GUARD2", diff --git a/data/json/npcs/refugee_center/surface_staff/Smokes/NPC_Smokes.json b/data/json/npcs/refugee_center/surface_staff/Smokes/NPC_Smokes.json new file mode 100644 index 0000000000000..9a0a8276d2499 --- /dev/null +++ b/data/json/npcs/refugee_center/surface_staff/Smokes/NPC_Smokes.json @@ -0,0 +1,54 @@ +[ + { + "type": "npc", + "id": "free_merchants_merchant", + "name_unique": "Smokes", + "//": "Appears in the refugee center as shopkeeper with missions. Faction critical. Real name: Gavin Wheeler", + "gender": "male", + "name_suffix": "Merchant", + "class": "NC_FREE_MERCHANTS_MERCHANT", + "attitude": 0, + "mission": 3, + "chat": "TALK_FREE_MERCHANTS_MERCHANT", + "mission_offered": "MISSION_FREE_MERCHANTS_EVAC_1", + "faction": "free_merchants" + }, + { + "type": "npc_class", + "id": "NC_FREE_MERCHANTS_MERCHANT", + "name": { "str": "Merchant" }, + "job_description": "I'm a local shopkeeper.", + "common": false, + "//": "Smokes is a firefighter that volunteered to take stock of what was available and keep inventory. He's gradually had more lumped onto him as the Free Merchants struggle to put themselves together, but he feels obligated to help, even though he doesn't really want to have all the responsibility he does.", + "//2": "He's also quite chatty and will gladly talk about the way things are these days. This is deliberate, since Free Merchants are very likely to be the first faction players encounter.", + "//3": "Most of his dialogue goes in 'free_merchant_shopkeep_dialogue.json'. Dialogue that just does worldbuilding goes into 'free_merchant_shopkeep_dialogue_fluff.json'.", + "bonus_str": 4, + "bonus_dex": 2, + "shopkeeper_item_group": "NC_EVAC_SHOPKEEP_misc", + "worn_override": "NC_FREE_MERCHANTS_MERCHANT_worn", + "weapon_override": "NC_FREE_MERCHANTS_MERCHANT_carried", + "carry_override": "NC_EVAC_SHOPKEEP_misc", + "traits": [ + { "trait": "GOODCARDIO" }, + { "trait": "FLEET" }, + { "trait": "OPTIMISTIC" }, + { "trait": "STRONGBACK" }, + { "trait": "THIRST" }, + { "trait": "SLEEPY" }, + { "trait": "CLUMSY" }, + { "group": "Appearance_Irish" } + ], + "skills": [ + { "skill": "firstaid", "bonus": 3 }, + { "skill": "mechanics", "bonus": 2 }, + { "skill": "melee", "bonus": 2 }, + { "skill": "speech", "bonus": 3 }, + { "skill": "swimming", "bonus": 3 } + ] + }, + { + "type": "effect_type", + "id": "u_Gavin_onetime_greeting", + "//": "12-hour period for the player to ask why his greeting was so blunt (basically 'before you ask, we're full')." + } +] diff --git a/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_itemlist.json b/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_itemlist.json new file mode 100644 index 0000000000000..04d1740aa9ede --- /dev/null +++ b/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_itemlist.json @@ -0,0 +1,24 @@ +[ + { + "type": "item_group", + "id": "NC_FREE_MERCHANTS_MERCHANT_worn", + "subtype": "collection", + "items": [ + { "item": "boxer_shorts" }, + { "item": "socks" }, + { "item": "pants_cargo" }, + { "item": "tshirt" }, + { "item": "trenchcoat" }, + { "item": "boots_steel" }, + { "item": "firehelmet" }, + { "item": "duffelbag" }, + { "item": "bead_bracelet" } + ] + }, + { + "type": "item_group", + "id": "NC_FREE_MERCHANTS_MERCHANT_carried", + "subtype": "collection", + "items": [ { "item": "halligan" } ] + } +] diff --git a/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_missions.json b/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_missions.json new file mode 100644 index 0000000000000..c64fdcc5f0c77 --- /dev/null +++ b/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_missions.json @@ -0,0 +1,367 @@ +[ + { + "id": "MISSION_FREE_MERCHANTS_HUB_DELIVERY_1", + "//": "Breadcrumb quest from Free Merchants -> Hub 01. Bring a hard drive to Hub 01 from the refugee center and then return.", + "type": "mission_definition", + "name": { "str": "Unknown Recipient" }, + "description": "Deliver the FEMA hard drive to the strange group that Smokes mentioned. Return to the evacuation center when the data's been delivered.", + "goal": "MGOAL_CONDITION", + "difficulty": 5, + "start": { + "effect": [ { "u_spawn_item": "fema_data", "count": 1 } ], + "assign_mission_target": { + "om_terrain": "robofachq_surface_entrance", + "om_special": "hub_01", + "reveal_radius": 1, + "random": true, + "search_range": 240 + } + }, + "goal_condition": { "u_has_var": "completed_free_merchants_hub_delivery_1", "type": "dialogue", "context": "intercom", "value": "yes" }, + "value": 5000, + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "…", + "offer": "…", + "accepted": "…", + "rejected": "…", + "advice": "…", + "inquire": "Got the hard drive delivered?", + "success": "Oh, good. I'm glad you're alright; I had no idea what to make of them. Well, one less thing to worry about.", + "success_lie": "What good does this do us?", + "failure": "At least you came back alive. Don't sweat it too much - it's no skin off my back. If they want it that bad, they can come get another copy themselves." + } + }, + { + "id": "MISSION_FREE_MERCHANTS_EVAC_1", + "type": "mission_definition", + "name": { "str": "Clear Back Bay" }, + "description": "Clear out the barricaded back area in the refugee center and lay the former leader of the Free Merchants to rest, in exchange for the local currency: Free Merchant certified notes.", + "goal": "MGOAL_KILL_MONSTER", + "difficulty": 2, + "value": 50000, + "start": { + "assign_mission_target": { "om_terrain": "evac_center_9", "reveal_radius": 1 }, + "update_mapgen": { + "om_terrain": "evac_center_9", + "place_monster": [ { "group": "GROUP_REFUGEE_BOSS_ZOMBIE", "name": "Sean McLaughlin", "x": 10, "y": 10, "target": true } ] + } + }, + "end": { + "effect": [ + { "u_spawn_item": "FMCNote", "count": 25 }, + { "u_add_var": "FMShopkeep_Mission1", "type": "mission", "context": "flag", "value": "yes" }, + { "u_adjust_var": "refugee_happiness", "type": "counter", "context": "refugee_center", "adjustment": 3 } + ], + "update_mapgen": { + "om_terrain": "evac_center_9", + "set": [ { "square": "terrain", "id": "t_floor", "x": 0, "y": 23, "x2": 1, "y2": 23 } ] + } + }, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_FREE_MERCHANTS_EVAC_2", + "dialogue": { + "describe": "We need help…", + "offer": "If you really want to lend a hand we could use your help clearing out the dead in the back bay. Fearful of going outside during the first days of the Cataclysm we ended up throwing our dead and the zombies we managed to kill in the sealed back bay. Our promising leader at the time even fell… he turned into something different. Kill all of them and make sure they won't bother us again. We can't pay much, besides some of our own internal money which isn't good for that much yet, but it would help us to reclaim the bay.", + "accepted": "Please be careful, we don't need any more deaths.", + "rejected": "Come back when you get a chance, we really need to start reclaiming the region.", + "advice": "If you can, get a friend or two to help you.", + "inquire": "Will they be bothering us any longer?", + "success": "Thank you, having that big of a threat close to home was nerve wracking. Here's some of our local certified notes, we've been paying these to our workers in exchange for supplies. They're getting some value in the center as a trade item, I'm afraid they're all we have to spare at the moment.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_FREE_MERCHANTS_EVAC_2", + "type": "mission_definition", + "name": { "str": "Missing Caravan" }, + "description": "Investigate the last known location of a disappeared scavenger trading party, and eliminate any bandits or raiders in the vicinity in exchange for certified notes.", + "goal": "MGOAL_ASSASSINATE", + "difficulty": 5, + "value": 5000, + "start": { + "assign_mission_target": { "om_terrain": "field", "reveal_radius": 1, "random": true, "search_range": 80 }, + "update_mapgen": { + "rows": [ + " ", + " ", + " ", + " ggggggggggggg ", + " ggggggggggggg ", + " gg....R...ggg ", + " gg........ggg ", + " gg.......Rggg ", + " gg.F..a...ggg ", + " gg........ggg ", + " gg........ggg ", + " gg........ggg ", + " gg........ggg ", + " gg........ggg ", + " ggggggggggggg ", + " ggggggggggggg ", + " ", + " ", + " ", + " b b ", + " b bb ", + " b ", + " ", + " " + ], + "terrain": { + "g": "t_region_groundcover", + ".": "t_region_groundcover_barren", + "a": "t_region_groundcover_barren", + "b": "t_region_groundcover_barren", + "R": "t_region_groundcover_barren", + "F": "t_region_groundcover_barren" + }, + "furniture": { "a": "f_ash" }, + "traps": { "F": "tr_fur_rollmat", "R": "tr_rollmat" }, + "fields": { "b": { "field": "fd_blood", "intensity": 1 } }, + "place_loot": [ + { "group": "cannedfood", "x": [ 6, 18 ], "y": [ 3, 15 ], "chance": 100 }, + { "group": "alcohol_bottled_canned", "x": [ 6, 18 ], "y": [ 3, 15 ], "repeat": 2, "chance": 75 }, + { "group": "trash_forest", "x": [ 6, 18 ], "y": [ 3, 15 ], "repeat": 2, "chance": 75 }, + { "group": "stash_drugs", "x": [ 6, 18 ], "y": [ 3, 15 ], "chance": 75 }, + { "group": "dresser", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 75 }, + { "group": "softdrugs", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 50 }, + { "group": "camping", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 75 }, + { "group": "casings", "x": [ 10, 15 ], "y": [ 15, 18 ], "repeat": 5, "chance": 100 }, + { "item": "corpse", "x": 13, "y": 19, "chance": 100 }, + { "item": "corpse", "x": 12, "y": 20, "chance": 100 } + ], + "place_npcs": [ + { "class": "bandit", "x": 15, "y": 7 }, + { "class": "thug", "x": 12, "y": 5 }, + { "class": "bandit", "x": 9, "y": 8, "target": true } + ], + "place_vehicles": [ + { "vehicle": "cube_van", "x": 12, "y": 12 }, + { "vehicle": "quad_bike", "x": 18, "y": 7, "rotation": 270, "fuel": 500, "status": -1, "chance": 100 }, + { "vehicle": "motorcycle", "x": 10, "y": 3, "rotation": 315, "fuel": 500, "status": -1, "chance": 100 }, + { "vehicle": "motorcycle", "x": 7, "y": 7, "rotation": 90, "fuel": 500, "status": -1, "chance": 100 } + ] + } + }, + "end": { + "effect": [ + { "u_spawn_item": "FMCNote", "count": 30 }, + { "u_add_var": "FMShopkeep_Mission2", "type": "mission", "context": "flag", "value": "yes" } + ] + }, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_FREE_MERCHANTS_EVAC_3", + "dialogue": { + "describe": "We need help…", + "offer": "This is a bit more involved than the last request, we recently lost a scavenger party coming to trade with us and would like you to investigate. We strongly suspect a raider band or horde caught them off-guard. I can give you the coordinates of their last radio message but little else. In either case, deal with the threat so that the scavengers can continue to pass through in relative safety. The best reward I can offer is a claim to the supplies they were carrying, plus thirty certified notes - that's our own internal money, good for trading and such.", + "accepted": "Our community survives on trade, we appreciate it.", + "rejected": "Come back when you get a chance, we really need to start reclaiming the region.", + "advice": "If you can, get a friend or two to help you.", + "inquire": "Have you dealt with them?", + "success": "Thank you, the world is a better place without them. Two of our more skilled individuals accepted the assistance of the Old Guard in setting up an outpost while you were out. We didn't have many other options, refugees are still streaming in and we don't know what else to do with our limited food supply. If you get a chance, you should see if they need your assistance in the future…", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_FREE_MERCHANTS_EVAC_3", + "type": "mission_definition", + "name": { "str": "Retrieve Prospectus" }, + "description": "Visit the farming commune and bring the foreman's prospectus back to the refugee center, for certified notes.", + "goal": "MGOAL_FIND_ITEM", + "difficulty": 5, + "value": 50000, + "item": "commune_prospectus", + "start": { + "assign_mission_target": { "om_terrain": "ranch_camp_67", "om_special": "ranch_camp", "reveal_radius": 1, "search_range": 200 }, + "update_mapgen": { + "place_npcs": [ + { "class": "ranch_foreman", "x": 16, "y": 15, "target": true, "add_trait": "NPC_MISSION_LEV_1" }, + { "class": "ranch_construction_1", "x": 9, "y": 17 } + ] + }, + "effect": [ { "u_add_var": "tacoma_started", "type": "knowledge", "context": "flag", "value": "yes" } ] + }, + "end": { + "effect": [ + { "u_spawn_item": "FMCNote", "count": 50 }, + { "u_add_var": "FMShopkeep_Mission3", "type": "mission", "context": "flag", "value": "yes" } + ], + "update_mapgen": { + "om_terrain": "evac_center_8", + "set": [ + { "point": "terrain", "id": "t_gates_mech_control_lab", "x": 17, "y": 1 }, + { "point": "terrain", "id": "t_gates_mech_control_lab", "x": 17, "y": 3 } + ] + } + }, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_FREE_MERCHANTS_EVAC_4", + "dialogue": { + "describe": "We need help…", + "offer": "We recently set out some skilled people to start an outpost, to secure us some food supplies in a safer location. The new outpost that we've started could use your assistance. I need you to get the foreman's prospectus before we begin to send additional refugees to the farming commune. Consult with the foreman to get more detailed tasks. We've got 50 Certified Notes for you if you can do this for us.", + "accepted": "I'm sure the outpost will expand quickly with your assistance.", + "rejected": "Come back when you get a chance, we really need to start reclaiming the region.", + "advice": "Just follow your map.", + "inquire": "Do you have the prospectus?", + "success": "With this we'll be able to convince others to invest in the commune. Thank you, here's your money. We also managed to get a manual crank hooked up to the garage in the back, so feel free to make use of that - you've been a great help to us.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_FREE_MERCHANTS_EVAC_4", + "type": "mission_definition", + "name": { "str": "Solar Power" }, + "description": "Deliver 10 solar panels to help the Free Merchants set up a renewable power grid, in exchange for a handsome reward.", + "goal": "MGOAL_FIND_ITEM", + "difficulty": 5, + "value": 400000, + "item": "solar_panel", + "count": 10, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_FREE_MERCHANTS_EVAC_5", + "end": { + "effect": [ + { "u_spawn_item": "FMCNote", "count": 100 }, + { "u_add_var": "FMShopkeep_Mission4", "type": "mission", "context": "flag", "value": "yes" } + ] + }, + "dialogue": { + "describe": "We need help…", + "offer": "We are starting to build new infrastructure here and would like to get a few new electrical systems online… unfortunately our existing system relies on an array of something called RTGs. Running generators isn't a viable option underground, of course. We have a big flat roof up top, and if we had a few solar panels we could use them to top up our usage. We could pay you pretty handsomely to bring us, say, ten solar panels?", + "accepted": "If you can do this for us our survival options would vastly increase.", + "rejected": "Come back when you get a chance, we really need to start reclaiming the region.", + "advice": "Solar panels are pretty common on electric cars and on rooftops.", + "inquire": "How is the search going?", + "success": "Great, I know it isn't much but we hope to continue to expand thanks to your help.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_FREE_MERCHANTS_EVAC_5", + "type": "mission_definition", + "name": { "str": "In a Pickle" }, + "description": "Deliver 100 half-liter glass canning jars to the Free Merchants to kickstart their food storage plans.", + "goal": "MGOAL_FIND_ITEM", + "difficulty": 3, + "value": 400000, + "item": "jar_glass_sealed", + "count": 100, + "end": { + "effect": [ + { "u_spawn_item": "FMCNote", "count": 25 }, + { "u_add_var": "FMShopkeep_Mission5", "type": "mission", "context": "flag", "value": "yes" } + ] + }, + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "We need help…", + "offer": "While we've managed to secure day to day food supplies, it's very much hand to mouth. Our reserves would barely last a few days if something kept our people locked in. We need a stockpile to avoid that. Thanks to our outpost we have a bit of meat and vegetables coming in, but we need a better way to preserve them. Some of our people know enough about food canning that if we had a good stock of canning jars, we could make pickles and canned meats to get us set for the winter. I'll pay you a premium rate if you can bring us around a hundred jars to get us started.", + "accepted": "It'll take a load off my shoulders if I can finally stop worrying about this.", + "rejected": "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying. If you reconsider let me know.", + "advice": "Grocery stores, house kitchens, there's plenty of places to look.", + "inquire": "How is the search going?", + "success": "That's one less thing to worry about. Glad to have someone like you on our side. Here's 25 merch, and the broker will buy any further glass jars you can find - at a reduced price, we can't keep up the premium rate. Actually, the broker was saying they had some jobs like this for you, and that it might be easier to just go straight through their office if you want more work.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Robofac", + "type": "talk_topic", + "dynamic_line": "Well, we had an odd group come by maybe two days after the power grid went off. Two armed guards wearing brown uniforms, and what looked like a government doctor, had a hazmat suit on. Everyone had masks they never took off. They looked organized… maybe a military remnant from somewhere close by.", + "responses": [ + { "text": "What were they here for?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Robofac1" }, + { "text": "That's fine for now.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Robofac1", + "type": "talk_topic", + "dynamic_line": "The doctor paid us in advance to get some old FEMA info from our computers here, and told us to deliver the data to an isolated building afterwards. We still haven't done that. I'm half worried it might have been some kind of trap, or trick.", + "responses": [ + { "text": "Where's that building at, exactly?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Robofac2" }, + { "text": "You seem right to be suspicious.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Robofac2", + "type": "talk_topic", + "dynamic_line": "I could share the dropoff location if you want to bring the drive there for us, but whatever's there, I'm not sure it's worth all the trouble. I'll reward you for your trouble.", + "responses": [ + { + "text": "That seems fine to me. I'll take your drive for you.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Robofac_Start", + "effect": [ + { "add_mission": "MISSION_FREE_MERCHANTS_HUB_DELIVERY_1" }, + { + "u_add_var": "u_hub01_breadcrumb_accepted", + "type": "general", + "context": "free_merchants", + "value": "yes" + } + ] + }, + { + "text": "Actually, I can see why you haven't done it yet. Hold that thought for now.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" + } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Robofac_Start", + "type": "talk_topic", + "dynamic_line": "I was hoping you'd say that. It's an old isolated building not too far from here; you should probably just leave the drive to whoever's there and be on your way. And like I said, be careful approaching the place. I wouldn't like leading you straight into your death.", + "responses": [ + { "text": "Don't worry, I'll be careful. I'll let you know when it's done.", "topic": "TALK_DONE" }, + { "text": "I'm sure I'll manage.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_FREE_MERCHANTS_MERCHANT_BorisCleanup", + "dynamic_line": "Hmm.\" Smokes looks thoughtful, rubbing his chin. \"Well, most of the people downstairs aren't willing to come up for things like that, and a lot of folks that are up here have a lot of bad memories from that. You could try asking around some of the people we have upstairs, but it'll be tough. If you have some Merch you could spare, though, I could get some people off guard duty and into your little crew for some hazard pay. You might also have luck asking the Old Guard rep in the southwest bay, near the library - I hear they've got some volunteers lately.", + "responses": [ + { + "text": "Five Merch for someone sounds fair to me.", + "condition": { "u_has_items": { "item": "FMCNote", "count": 5 } }, + "effect": [ + { "u_adjust_var": "Boris_mission_1", "type": "mission", "context": "cleanup_promises", "adjustment": 1 }, + { "npc_add_var": "cleanup_asked", "type": "mission", "context": "Boris_mission_1", "value": "yes" }, + { "u_consume_item": "FMCNote", "count": 5 } + ], + "topic": "TALK_FREE_MERCHANTS_MERCHANT_BorisCleanup1" + }, + { + "text": "How about ten Merch to do it?", + "condition": { "u_has_items": { "item": "FMCNote", "count": 10 } }, + "effect": [ + { "u_adjust_var": "Boris_mission_1", "type": "mission", "context": "cleanup_promises", "adjustment": 3 }, + { "npc_add_var": "cleanup_asked", "type": "mission", "context": "Boris_mission_1", "value": "yes" }, + { "u_consume_item": "FMCNote", "count": 10 } + ], + "topic": "TALK_FREE_MERCHANTS_MERCHANT_BorisCleanup2" + }, + { + "text": "Thanks for the advice. Maybe I'll come back with some more Merch.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" + } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_BorisCleanup1", + "type": "talk_topic", + "dynamic_line": "That's enough to get someone off guard duty, yeah. Hand it here and I'll set it up.\" The money exchanges hands. \"Right. I haven't updated this list in a while, so some people are still assigned to watch the back bay, which is technically a free shift now. I'll let one of them know about what's up and they can spend the time helping to clean up back there. Hope it helps.", + "responses": [ { "text": "Thank you!", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_BorisCleanup2", + "type": "talk_topic", + "dynamic_line": "Woah, you're really intent, hey? That's a lot for most people here.\" The money exchanges hands. \"That's enough to get two people off guard duty for an afternoon, even with all the ugliness back there. And you know what? I'll help out, too, so make that three. I can appreciate someone who's willing to put their money where their mouth is.", + "responses": [ { "text": "Thank you very much!", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } ] + } +] diff --git a/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_talk.json b/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_talk.json new file mode 100644 index 0000000000000..30d28733430c4 --- /dev/null +++ b/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_talk.json @@ -0,0 +1,274 @@ +[ + { + "id": "TALK_FREE_MERCHANTS_MERCHANT", + "type": "talk_topic", + "dynamic_line": { + "u_has_var": "u_met_Gavin", + "type": "general", + "context": "meeting", + "value": "yes", + "yes": [ "Welcome back.", "Hello again. What do you need?", "*looks up. \"Hey.\"" ], + "no": "*waves you over. \"I haven't seen you before. Welcome to our little homely house.\"" + }, + "responses": [ + { + "text": "Who are you? This is a refugee center, right?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Intro", + "condition": { "not": { "u_has_var": "u_met_Gavin", "type": "general", "context": "meeting", "value": "yes" } }, + "effect": { "u_add_var": "u_met_Gavin", "type": "general", "context": "meeting", "value": "yes" } + }, + { + "text": "Just passing through, don't mind me.", + "topic": "TALK_DONE", + "condition": { "not": { "u_has_var": "u_met_Gavin", "type": "general", "context": "meeting", "value": "yes" } } + }, + { + "text": "I wanted to talk.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk", + "condition": { "u_has_var": "u_met_Gavin", "type": "general", "context": "meeting", "value": "yes" } + }, + { + "text": "Let's trade.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_DoneTrading", + "condition": { "u_has_var": "u_met_Gavin", "type": "general", "context": "meeting", "value": "yes" }, + "effect": "start_trade" + }, + { + "text": "Just saying hello. Keep safe.", + "topic": "TALK_DONE", + "condition": { "u_has_var": "u_met_Gavin", "type": "general", "context": "meeting", "value": "yes" } + } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_DoneTrading", + "type": "talk_topic", + "dynamic_line": [ "Hope it helps.", "Give me second to write that down… okay, done.", "You know where to find me." ], + "responses": [ + { "text": "About other things…", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" }, + { "text": "Let's trade.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_DoneTrading", "effect": "start_trade" }, + { "text": "That's all for now. Take care.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Intro", + "type": "talk_topic", + "dynamic_line": "Before you ask, we're full. You're right about the refugee part, but we're way over capacity right now. We don't have the food or space to take on anyone else.\" He softens a little. \"As for me, I do a lot of things here, but mostly I keep tabs on our supplies. You can call me Smokes, or Gavin; whichever you prefer. I also trade with people from outside, like you. If you're in the market for hardware, we're selling, and if you have food, we are very much buying. Anyways, uh, what can I do for you?", + "speaker_effect": [ + { + "sentinel": "has_onetime_greeting_effect", + "condition": { "not": { "u_has_effect": "u_Gavin_onetime_greeting" } }, + "effect": [ { "u_add_effect": "u_Gavin_onetime_greeting", "duration": "12 hours" } ] + } + ], + "responses": [ + { "text": "Got some time to talk?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" }, + { "text": "Let's trade.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_DoneTrading", "effect": "start_trade" }, + { "text": "I just wanted to look around. See you.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ + "TALK_FREE_MERCHANTS_MERCHANT_Talk", + "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_End", + "TALK_FREE_MERCHANTS_MERCHANT_AboutMerch", + "TALK_FREE_MERCHANTS_MERCHANT_WhosInCharge" + ], + "type": "talk_topic", + "dynamic_line": [ "What's on your mind?", "Lay it on me.", "Alright, shoot.", "Something on your mind?" ], + "responses": [ + { + "text": "I'm trying to put a cleanup crew together to tidy up the back room. Can you offer any help?", + "condition": { + "and": [ + { "u_has_mission": "MISSION_REFUGEE_Boris_CLEANUP" }, + { + "not": { "npc_has_var": "cleanup_asked", "type": "mission", "context": "Boris_mission_1", "value": "yes" } + } + ] + }, + "topic": "TALK_FREE_MERCHANTS_MERCHANT_BorisCleanup" + }, + { + "text": "'Sorry, we're full'? Do you greet everyone like that?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting", + "condition": { "u_has_effect": "u_Gavin_onetime_greeting" }, + "effect": { "u_lose_effect": "u_Gavin_onetime_greeting" } + }, + { "text": "What are you doing out here?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Plans" }, + { "text": "You're having trouble with food?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_TroubleWithFood" }, + { "text": "You mentioned you were selling hardware?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_SellingHardware" }, + { + "text": "What's with these people in the lobby? Are they with you?", + "condition": { "not": { "u_has_var": "beggars_recruited", "type": "general", "context": "recruit", "value": "yes" } }, + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Beggars" + }, + { + "text": "I took care of your beggar problem.", + "condition": { + "and": [ + { "u_has_var": "beggars_recruited", "type": "general", "context": "recruit", "value": "yes" }, + { "npc_has_var": "beggars_reward_agreed", "type": "general", "context": "recruit", "value": "yes" } + ] + }, + "effect": { "npc_lose_var": "beggars_reward_agreed", "type": "general", "context": "recruit" }, + "topic": "TALK_FREE_MERCHANTS_MERCHANT_BeggarsRecruited" + }, + { "text": "Who's in charge here?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_WhosInCharge" }, + { "text": "Is there any way I can join your group?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AskJoin" }, + { + "text": "What's with these 'free merchant certified notes'?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Merch", + "condition": { "u_has_item": "FMCNote" }, + "effect": { "u_add_var": "u_knows_about_merch", "type": "general", "context": "free_merchants", "value": "yes" } + }, + { "text": "What's your story?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutMe" }, + { + "text": "Have you heard anything about the rest of the world?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_OutsideWorld" + }, + { "text": "I'm looking for work. Can I do anything for the center?", "topic": "TALK_MISSION_LIST" }, + { "text": "Let's trade.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_DoneTrading", "effect": "start_trade" }, + { "text": "Actually, I need to head out.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ + "TALK_FREE_MERCHANTS_MERCHANT_Beggars", + "TALK_FREE_MERCHANTS_MERCHANT_Beggars2", + "TALK_FREE_MERCHANTS_MERCHANT_Beggars3" + ], + "//": "This is a sensitive topic for Gavin - he feels guilty about not being able to help them more. His responses are a bit more heated because of that", + "type": "talk_topic", + "dynamic_line": "No, unfortunately. They're folks that wanted to join us, but we're too full and we don't have enough to share. Most people leave and look for their own place when we turn them down, but these ones… didn't. We've been trying to find them a safe place, but there's a shortage of those these days, for reasons I'm sure you can guess. Until then, we're letting them crash here as long as they don't mess the place up.", + "responses": [ + { + "text": "[SOCIAL 1+] If I could look into clearing them out of here, would you be able to pay me back?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Beggars_Reward", + "condition": { "u_has_skill": { "skill": "speech", "level": 1 } }, + "effect": { "npc_add_var": "beggars_reward_agreed", "type": "general", "context": "recruit", "value": "yes" } + }, + { "text": "Why haven't they gone anywhere else?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Beggars2" }, + { + "text": "Couldn't you get them out? Your guards are well-armed.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Beggars3" + }, + { "text": "Best of luck.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Beggars2", + "type": "talk_topic", + "dynamic_line": "I don't know, why don't you ask them? I haven't pried, but where else do they have to go? You've seen how bad it is out there. We don't have the space for them, but it won't kill us to give them some shelter as long as they aren't too much of a drain on resources." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Beggars3", + "type": "talk_topic", + "dynamic_line": "Jesus, man, we aren't monsters. I'm sure we could get them out if we really needed to, yeah, but why would we do that? We need to be stringent with who we take on, that's true, but forcing out people in need isn't a great way to convince anyone that we're reliable allies. The world doesn't run on good faith, but it's damn well nicer to live in because of it." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Beggars_Reward", + "type": "talk_topic", + "dynamic_line": "We don't have a lot to share, but… well, I guess it's not safe for them. At best, it's a health hazard waiting to happen. We could pay you in Merch if you can clear them out without anyone getting hurt, yeah.", + "responses": [ + { + "text": "I'll see what I can do. What's Merch?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutMerch", + "condition": { "not": { "u_has_var": "u_knows_about_merch", "type": "general", "context": "free_merchants", "value": "yes" } } + }, + { "text": "No guarantees, but I'll see what I can do.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_BeggarsRecruited", + "type": "talk_topic", + "dynamic_line": "I appreciate it a lot, getting them somewhere safe. I hope that's what you did, anyway. In any case, having the lobby clear is a big help. Even with the uh, cardboard guy still around, he's a lot easier to handle alone.", + "responses": [ + { "text": "I do believe we discussed a reward?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_BeggarsRecruited_Reward" }, + { "text": "Just glad to help.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_BeggarsRecruited_Reward", + "type": "talk_topic", + "dynamic_line": "And so we did.\" Smokes reaches under their table, counts out some money, and slides it through a slot in the glass. \"Here's five Merch a head for the folks you found a new home for. We won't forget it.", + "speaker_effect": { "effect": { "u_spawn_item": "FMCNote", "count": 20 } }, + "responses": [ { "text": "Thank you!", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } ] + }, + { + "id": [ + "TALK_FREE_MERCHANTS_MERCHANT_OutsideWorld", + "TALK_FREE_MERCHANTS_MERCHANT_OutsideWorld1", + "TALK_FREE_MERCHANTS_MERCHANT_OutsideWorld2" + ], + "type": "talk_topic", + "dynamic_line": "Not as much as I'd like, I'm afraid. Most of these shelters seemed to have been designed to make people *feel* safer, not to actually keep them safe. Our radio equipment is terrible… I don't think it was even meant to be used seriously. I've heard some talk of hordes.", + "responses": [ + { "text": "Hordes?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_OutsideWorld1" }, + { + "text": "Are there any other settlements around?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Robofac", + "condition": { + "and": [ + { + "not": { "u_has_var": "u_hub01_breadcrumb_accepted", "type": "general", "context": "free_merchants", "value": "yes" } + }, + { + "not": { "u_has_var": "completed_robofac_intercom_2", "type": "dialogue", "context": "intercom", "value": "yes" } + } + ] + } + }, + { + "text": "Are there any other settlements around?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_OutsideWorld2", + "condition": { + "or": [ + { "u_has_var": "u_hub01_breadcrumb_accepted", "type": "general", "context": "free_merchants", "value": "yes" }, + { "u_has_var": "completed_robofac_intercom_2", "type": "dialogue", "context": "intercom", "value": "yes" } + ] + } + }, + { "text": "That's fine for now.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": [ "TALK_FREE_MERCHANTS_MERCHANT_SellingHardware", "TALK_FREE_MERCHANTS_MERCHANT_SellingHardware1" ], + "type": "talk_topic", + "dynamic_line": "Tools, to be precise. The basement and the storage rooms had way more than we need, and a lot of people brought their own when they were evacuating. There's more than we could ever use, so we'll be happy to sell them at a very fair price. Nothing in the way of radios, so you'll have to look somewhere else for that.", + "responses": [ + { + "text": "Wait, basement? I didn't know this place had a basement.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Basement", + "condition": { "not": { "u_has_var": "u_knows_about_basement", "type": "general", "context": "free_merchants", "value": "yes" } }, + "effect": { "u_add_var": "u_knows_about_basement", "type": "general", "context": "free_merchants", "value": "yes" } + }, + { + "text": "Mind if I take a look at your stock?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_DoneTrading", + "effect": "start_trade" + }, + { "text": "Radios? That seems awfully specific.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_SellingHardware1" }, + { "text": "Good to know.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_SellingHardware1", + "type": "talk_topic", + "dynamic_line": "We've had some issues with scavengers. Apparently a big part of the marketing for these shelters was high-end radio equipment that they could use to keep in touch with each other, and a lot of the people we've traded with have asked about it. Not that we don't have any radios, mind you, but they're all absolutely awful. Even if we *could* spare any, they'd be useless to anyone that actually needed it - not much point in lugging around a ham radio that can't pick hear anything more than a mile away." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_TroubleWithFood", + "type": "talk_topic", + "dynamic_line": "Yes we are. The center had a good stock of those awful soy bars, but between all of us, it went fast. We're making do with what we can skim off the edge of towns, but mostly we rely on trade from people like you. Speaking of, we'll pay top dollar for anything preserved - canned, salted, dried, whatever. Just talk to the broker in the back.", + "responses": [ + { + "text": "I don't see that many of you around.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Basement", + "condition": { "not": { "u_has_var": "u_knows_about_basement", "type": "general", "context": "free_merchants", "value": "yes" } }, + "effect": { "u_add_var": "u_knows_about_basement", "type": "general", "context": "free_merchants", "value": "yes" } + }, + { "text": "I'll keep that in mind.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + } +] diff --git a/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_talk_fluff.json b/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_talk_fluff.json new file mode 100644 index 0000000000000..58e6da5f7b352 --- /dev/null +++ b/data/json/npcs/refugee_center/surface_staff/Smokes/free_merchant_shopkeep_talk_fluff.json @@ -0,0 +1,198 @@ +[ + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting", + "type": "talk_topic", + "dynamic_line": "A lot of the time, yes. Our address is in the computers of most of the evac shelters around here, and people keep showing up that we have to turn away. It gets easier when you have something you can read off a script.", + "responses": [ + { "text": "I'm sorry.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_End" }, + { "text": "That sounds a little cruel.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_Cruel" }, + { + "text": "[Cannibal + Psychopath] Wait, I thought you were having food problems.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_Cannibal", + "condition": { "and": [ { "u_has_trait_flag": "CANNIBAL" }, { "u_has_trait": "PSYCHOPATH" } ] } + } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_End", + "type": "talk_topic", + "dynamic_line": "*shrugs. \"Did you need something else?\"" + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_Cruel", + "type": "talk_topic", + "dynamic_line": "*bristles. \"I know, alright? I do. I hate it too. But we are packed to the gills right now, and the only way we're going to stay alive is if we keep our gates closed fast. I don't know what made the scavengers out there so ruthless, but some of us have had to kill our own kids. Please show some consideration.\"", + "responses": [ + { "text": "I'm sorry.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_End" }, + { "text": "I should probably go.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_Cannibal", + "type": "talk_topic", + "dynamic_line": "We are. That's why we're turning people away.", + "responses": [ + { + "text": "I'm saying you're giving up a potential source of meat.", + "success": { + "opinion": { "trust": -5, "fear": -2, "value": -1, "anger": 1 }, + "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_Cannibal2" + } + }, + { + "text": "Nevermind. Don't know where I was going with that.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_End" + } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_Cannibal2", + "type": "talk_topic", + "dynamic_line": "I can't tell if you're joking or not, but that is seriously fucked up, and I don't want to hear another word about it. Okay?", + "responses": [ + { "text": "Alright, alright, I'm sorry. Bad joke.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutGreeting_End" }, + { "text": "Your loss.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ + "TALK_FREE_MERCHANTS_MERCHANT_AboutMe", + "TALK_FREE_MERCHANTS_MERCHANT_AboutMe_Basic", + "TALK_FREE_MERCHANTS_MERCHANT_AboutMe_Smokes2" + ], + "type": "talk_topic", + "dynamic_line": "Not much to say. What did you want to hear?", + "responses": [ + { "text": "How'd you end up here?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutMe_Basic" }, + { "text": "Smokes? That's quite a name.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutMe_Smokes" }, + { "text": "That's fine for now.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutMe_Basic", + "type": "talk_topic", + "dynamic_line": "Well, I'm Gavin, like I said. I was a fireman before , and I was also on duty when everything fell apart. I'd rather not go into detail, but other than that, I wasn't really much to write home about. My family was Irish, I never married, and I liked woodworking. I volunteered to take inventory of what the center had when I got off the bus, one thing leads to another, and now I'm here." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutMe_Smokes", + "type": "talk_topic", + "dynamic_line": "*rolls his eyes. \"Tell me about it. My actual name is Gavin, which I think I told you. I used to be a firefighter, and people started recognizing me because of the helmet. Someone called me 'smokes' because of it, and it stuck. I hate it. I've never even touched a cigarette.\"", + "responses": [ + { + "text": "[PER 8+] If you hate it, then why are you smiling?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutMe_Smokes2", + "condition": { "u_has_perception": 8 } + }, + { "text": "Can't say I blame you.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AboutMe" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutMe_Smokes2", + "type": "talk_topic", + "dynamic_line": "*laughs. \"Well, I think it's ridiculous, but I guess I don't mind it that much. I figure it's all in good fun, and people could really use the laugh these days, y'know? I'm sure they'd stop if I asked. The helmet is like… a badge of office, at this point. You can call me Smokes if you really want.\"" + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AboutMerch", + "type": "talk_topic", + "dynamic_line": "Oh, Merch. They're just paper notes we've started using for local cash. We started out paying each other with dollar bills, but there's so much paper money out there that it's just useless now. For our internal use, we started certifying bills that represent food and labor in the center here. We started trading them internally, and then they started circling around, and now other people have started adopting them, too." + }, + { + "id": [ + "TALK_FREE_MERCHANTS_MERCHANT_AskJoin", + "TALK_FREE_MERCHANTS_MERCHANT_AskJoin1", + "TALK_FREE_MERCHANTS_MERCHANT_AskJoin2" + ], + "type": "talk_topic", + "dynamic_line": "I'm sorry, but the last thing we need is another mouth to feed. Most of us lack any real survival skills, so keeping our group small enough to survive on the food we trade for is the main thing keeping us alive.", + "responses": [ + { "text": "Another time, then.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" }, + { "text": "I can pull my own weight!", "topic": "TALK_FREE_MERCHANTS_MERCHANT_AskJoin1" }, + { + "text": "Maybe I could change your mind…?~", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_AskJoin2", + "condition": { "u_has_item": "condom" } + } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AskJoin1", + "type": "talk_topic", + "dynamic_line": "Maybe out there alone, or with a small group, but enough to feed a few dozen other people that aren't helping you? That just isn't a risk we're willing to take right now. If you want to trade us supplies or donate something, you're more than welcome to, and it'd be a huge help, but right now, we're far past our comfort zone as it is." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_AskJoin2", + "type": "talk_topic", + "dynamic_line": "No way in hell. I'm not going to risk the safety of dozens of people just for some ass. If you're that desperate, go talk to Alonso." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Basement", + "type": "talk_topic", + "dynamic_line": "The center has a pretty large lower floor, behind metal doors that were made to stand up to basically anything - bombs, radiation, you name it. Place is basically a vault. Most of our population is living in there; only people who we think are combat-capable stay up here. Bear in mind, we started off with a few buses of office workers and soccer moms. If worst comes to worst, they'll stand a chance if things go bad up here.", + "responses": [ + { "text": "Good to know.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" }, + { "text": "How do I get down there?", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Basement_NoAccess" } + ] + }, + { + "id": [ + "TALK_FREE_MERCHANTS_MERCHANT_Basement_NoAccess", + "TALK_FREE_MERCHANTS_MERCHANT_Basement_NoAccess2", + "TALK_FREE_MERCHANTS_MERCHANT_Basement_NoAccess3" + ], + "type": "talk_topic", + "dynamic_line": "I can't share that. We're taking security extremely seriously right now. The guards downstairs are well-armed, and they've got orders to immediately apprehend anyone they don't recognize. We want to keep those people as safe we can until either we have more space up here or we've got some room inside the fence for them to live.", + "responses": [ + { "text": "I suppose that makes sense.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" }, + { + "text": "Why spend so much effort keeping it locked down? I thought you mentioned they weren't able to help.", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Basement_NoAccess2" + }, + { + "text": "If I could go down there, I could help bring them supplies. Food, medicine…", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Basement_NoAccess3" + } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Basement_NoAccess2", + "type": "talk_topic", + "dynamic_line": "Just because they're not boots on the ground doesn't mean they aren't helping. In fact, I'd say that a lot of them are our most important people. They keep the power running, for one thing. And even if they weren't helping, look at it this way: all of us are scared, and almost all of us have lost someone from all this. We aren't going to throw our own to the wolves." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Basement_NoAccess3", + "type": "talk_topic", + "dynamic_line": "I appreciate the offer, I really do, but I'm sorry. The basement is off-limits to outsiders, and we're not in the market for new recruits right now. Maybe once we're in a better spot there might be some room to think about it, but right now I can't justify just giving you free reign down there." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_OutsideWorld1", + "type": "talk_topic", + "dynamic_line": "Yeah. Someone came through this way a while back saying he had tried to drive into Syracuse after the outbreak. Didn't even make it downtown before he ran into a wall of zombies that he said could stop a tank. He hightailed it out, but he said there were several thousand at least. I guess when you get a bunch of them together, they end up making enough noise to attract everyone in the neighborhood. Thankfully, we haven't had a mob like that pass by here, because I'm not sure the fence would do much to keep them out." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_OutsideWorld2", + "type": "talk_topic", + "dynamic_line": "Other than those people with the hard drive, none that I know of. Scavengers share some odd things, but we can't exactly go check for ourselves. The teamster in the back bay might have some pointers, though, if you really want to know." + }, + { + "id": [ "TALK_FREE_MERCHANTS_MERCHANT_Plans", "TALK_FREE_MERCHANTS_MERCHANT_Plans2" ], + "type": "talk_topic", + "dynamic_line": "Things were rough at first, and our policy of taking everyone we could caused a lot of strife later on. Right now, we just want to get enough trade going keep ourselves afloat. We might have to turn people away, but we've found that they're usually willing to trade with us, which is our only real source of food right now. We're trying to turn that into a business model. Doesn't matter who you are, we'll trade with you as long as you don't bring trouble.", + "responses": [ + { + "text": "What about when the goods dry up? Won't that happen eventually?", + "topic": "TALK_FREE_MERCHANTS_MERCHANT_Plans2" + }, + { "text": "Here's hoping it works out.", "topic": "TALK_FREE_MERCHANTS_MERCHANT_Talk" } + ] + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_Plans2", + "type": "talk_topic", + "dynamic_line": "Right now, it's the best way we have to make sure that everyone gets what they need. Long-term viability of business models is what people in suits used to do back before all this, and we see where that got them. Barter is the only thing keeping us from starving, so we're going to keep doing it as long as it works or until we can start producing our own food." + }, + { + "id": "TALK_FREE_MERCHANTS_MERCHANT_WhosInCharge", + "type": "talk_topic", + "dynamic_line": "I don't think we have a figurehead right now, I think? If we do, I don't know about it. For the most part, we all have our own responsibilities and that works to keep us all fed as a group. I'm the front man for outsiders, the broker keeps tabs on our food, so on and so forth. We've had some town hall style talks in the cafeteria about setting up a democracy, but there's nothing solid on that right now." + } +]