diff --git a/data/json/mapgen/fortified_scrap_yard/fortified_scrap_yard.json b/data/json/mapgen/fortified_scrap_yard/fortified_scrap_yard.json index 095c76135f16d..eac04c7ca1d11 100644 --- a/data/json/mapgen/fortified_scrap_yard/fortified_scrap_yard.json +++ b/data/json/mapgen/fortified_scrap_yard/fortified_scrap_yard.json @@ -6,28 +6,28 @@ "object": { "fill_ter": "t_region_soil", "rows": [ - "$$$$$$$$$ $$$$$$$$", - "$|||||||| |||||||$", + "$$$$$$$$$$ $$$$$$", + "$||||||||| |||||$", "$| u |$", - "$| ------ uuu|$", - "$| -_a__- uu7u|$", - "$| -Ha__+ uu|$", - "$| -~a__- D uuu|$", - "$| -____- D uu |$", - "$| -____b u |$", - "$| -vv__- uuu|$", - "$| ---b-- u7u|$", - "$| uu|$", + "$| ------- uuu|$", + "$| -.avvL- uu7u|$", + "$| -Ha___+ uu|$", + "$| -~a__R- D uu|$", + "$| -_____b D uu|$", + "$| -Faa_C- uu |$", + "$| ----_A- u |$", + "$| -Z<-_Ib uuu|$", + "$| -T<+_(- u7u|$", + "$| -b--b-- uu|$", "$| u u|$", - "$| o # |$", - "$| # # # |$", - "$| 9gw ## # wW #|$", - "$| #wh##{#wW& DWV#l |$", - "$| #Bww9 #Ww# #oww# |$", - "$| dwe##iwW B##wd#f |$", - "$| #Ww wwf { Vw# #|$", - "$| { ro# #ww# e# |$", - "$| ## # # ## # ## #|$", + "$| %%%%% #B # |$", + "$| %/))+ ## # wW #|$", + "$| %))Q% {#wW& DWV#l |$", + "$| %)^^b #Ww# #oww# 9|$", + "$| %%b%% #iwW B##wd#f |$", + "$| e wwf { Vw# #|$", + "$| {##ro# #ww# W9 we# |$", + "$|wd#### # ## # ## #|$", "$||||||||||||||||||||||$", "$$$$$$$$$$$$$$$$$$$$$$$$" ], @@ -45,6 +45,7 @@ "a": "t_thconc_floor", "v": "t_thconc_floor", "H": "t_thconc_floor", + "(": "t_thconc_floor", "b": "t_window_domestic", "d": "t_wall_metal", "g": "t_wall_metal", @@ -52,7 +53,23 @@ "u": "t_region_shrub", "w": "t_wall_metal", "$": "t_fence_barbed", - "|": "t_junk_palisade" + "|": "t_junk_palisade", + "%": "t_wall_wood", + ")": "t_floor", + "^": "t_floor", + "Q": "t_floor", + "/": "t_floor", + "<": "t_linoleum_white", + "T": "t_linoleum_white", + "S": "t_thconc_floor", + "F": "t_thconc_floor", + "Z": "t_linoleum_white", + "C": "t_thconc_floor", + "L": "t_thconc_floor", + "R": "t_thconc_floor", + "I": "t_thconc_floor", + "A": "t_thconc_floor", + ".": "t_thconc_floor" }, "furniture": { "#": "f_wreckage", @@ -64,6 +81,7 @@ "a": "f_counter", "d": "f_chair", "H": "f_chair", + "Q": "f_chair", "e": "f_bigmirror_b", "f": "f_washer", "g": "f_bigmirror_b", @@ -74,28 +92,85 @@ "r": "f_rack", "v": "f_vending_c", "w": "f_wreckage", - "{": "f_vending_o" + "{": "f_vending_o", + "^": "f_desk", + "(": "f_makeshift_bed", + "T": "f_toilet", + "S": "f_sofa", + "F": "f_fridge", + "Z": "f_sink", + "C": "f_trashcan", + "L": "f_bulletin", + "R": "f_rack_coat", + "I": "f_tourist_table", + "A": "f_camp_chair", + ".": "f_utility_shelf" }, "place_items": [ - { "chance": 100, "item": "cash_register_random", "x": 5, "y": [ 4, 6 ] }, - { "chance": 25, "item": "vending_food", "x": 4, "y": 9 }, - { "chance": 25, "item": "trash", "x": 11, "y": 20 }, + { "chance": 100, "item": "cash_register_random", "x": 5, "y": 5 }, + { "chance": 25, "item": "vending_food", "x": 6, "y": 4 }, + { "chance": 25, "item": "vending_drink", "x": 7, "y": 4 }, + { "chance": 100, "item": "SUS_fridge_survivor", "x": 4, "y": 8 }, + { "chance": 100, "item": "SUS_bathroom_sink", "x": 4, "y": 10 }, + { "chance": 100, "item": "SUS_silverware", "x": 6, "y": 8 }, + { "chance": 100, "item": "coat_rack", "x": 8, "y": 6, "repeat": [ 1, 3 ] }, + { "chance": 10, "item": "used_1st_aid", "x": 6, "y": 8 }, + { "chance": 25, "item": "trash", "x": 11, "y": 21 }, { "chance": 25, "item": "trash", "x": 2, "y": 19 }, - { "chance": 25, "item": "trash", "x": 19, "y": 17 }, + { "chance": 25, "item": "trash", "x": 20, "y": 17 }, { "chance": 25, "item": "trash", "x": 15, "y": 13 }, { "chance": 10, "item": "supplies_spares_vehicle", "x": 8, "y": 19 }, - { "chance": 10, "item": "supplies_spares_vehicle", "x": 3, "y": 16 }, + { "chance": 10, "item": "supplies_spares_vehicle", "x": 9, "y": 17 }, { "chance": 10, "item": "supplies_spares_vehicle", "x": 16, "y": 15 }, - { "chance": 25, "item": "vending_drink", "x": 5, "y": 9 }, - { "chance": 15, "item": "vehicle_scrapped", "x": 18, "y": 20 }, - { "chance": 15, "item": "vehicle_scrapped", "x": 16, "y": 20 }, + { "chance": 15, "item": "vehicle_scrapped", "x": 17, "y": 20 }, + { "chance": 15, "item": "vehicle_scrapped", "x": 16, "y": 19 }, { "chance": 15, "item": "vehicle_scrapped", "x": 4, "y": 19 }, - { "chance": 15, "item": "vehicle_scrapped", "x": 16, "y": 18 }, - { "chance": 15, "item": "vehicle_scrapped", "x": 22, "y": 16 }, + { "chance": 15, "item": "vehicle_scrapped", "x": 14, "y": 17 }, + { "chance": 15, "item": "vehicle_scrapped", "x": 21, "y": 16 }, { "chance": 15, "item": "vehicle_scrapped", "x": 14, "y": 16 }, { "chance": 15, "item": "vehicle_scrapped", "x": 9, "y": 15 }, - { "chance": 15, "item": "vehicle_scrapped", "x": 3, "y": 14 }, - { "chance": 10, "item": "tools_mechanic", "x": 5, "y": 5 } + { "chance": 15, "item": "vehicle_scrapped", "x": 3, "y": 19 }, + { "chance": 10, "item": "tools_mechanic", "x": 6, "y": 8 } + ], + "place_loot": [ + { "item": "blanket", "x": 3, "y": 14, "chance": 100 }, + { "item": "blanket", "x": 8, "y": 11, "chance": 100 }, + { "item": "sleeping_bag", "x": 3, "y": 14, "chance": 100 }, + { "item": "microwave", "x": 5, "y": 8, "chance": 100 }, + { "item": "coffee", "x": 6, "y": 8, "chance": 50 }, + { "item": "hd_tow_cable", "x": 6, "y": 8, "chance": 100 }, + { "item": "roadmap", "x": 6, "y": 8, "chance": 10 }, + { "item": "folding_poncho", "x": 6, "y": 8, "chance": 30 }, + { "item": "rope_6", "x": 6, "y": 8, "chance": 50 }, + { "item": "handflare", "x": 6, "y": 8, "chance": 100 }, + { "item": "sm_extinguisher", "x": 6, "y": 8, "chance": 50 }, + { "item": "towel", "x": 6, "y": 8, "chance": 30 }, + { "item": "wheel_wide", "x": 6, "y": 8, "chance": 100, "repeat": 3 }, + { "item": "jack", "x": 6, "y": 8, "chance": 100 }, + { "item": "wrench_large", "x": 6, "y": 8, "chance": 100 } + ], + "mapping": { "/": { "traps": [ [ "tr_rollmat", 100 ] ] } }, + "place_vehicles": [ + { + "vehicle": "underlift_tow_truck_lack_wheels", + "x": 15, + "y": 9, + "chance": 100, + "fuel": 70, + "status": 0, + "rotation": 90 + } + ], + "place_zones": [ + { "type": "LOOT_ITEM_GROUP", "filter": "SCRAPPER_Shop", "faction": "wasteland_scavengers", "x": 4, "y": 4 }, + { + "type": "LOOT_ITEM_GROUP", + "filter": "SCRAPPER_Shop_Specialty_Metals", + "faction": "wasteland_scavengers", + "x": 4, + "y": 4 + }, + { "type": "LOOT_UNSORTED", "faction": "wasteland_scavengers", "x": [ 4, 4 ], "y": [ 6, 6 ] } ] } } diff --git a/data/json/npcs/refugee_center/surface_refugees/NPC_Uyen_Tran.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Uyen_Tran.json index a95d12faa250f..0a505e449576b 100644 --- a/data/json/npcs/refugee_center/surface_refugees/NPC_Uyen_Tran.json +++ b/data/json/npcs/refugee_center/surface_refugees/NPC_Uyen_Tran.json @@ -7,7 +7,7 @@ "name_suffix": "refugee", "class": "NC_REFUGEE_Uyen", "attitude": 0, - "mission": 7, + "mission": 3, "chat": "TALK_REFUGEE_Uyen_1", "faction": "free_merchants", "mission_offered": "MISSION_REFUGEE_Uyen_1" diff --git a/data/json/npcs/refugee_center/surface_staff/NPC_old_guard_doctor.json b/data/json/npcs/refugee_center/surface_staff/NPC_old_guard_doctor.json index 5f5144ac15245..aa493b0d31f7f 100644 --- a/data/json/npcs/refugee_center/surface_staff/NPC_old_guard_doctor.json +++ b/data/json/npcs/refugee_center/surface_staff/NPC_old_guard_doctor.json @@ -7,7 +7,7 @@ "class": "NC_DOCTOR", "attitude": 0, "//2": "Possibly should change to NPC_MISSION_SHOPKEEP and sell medical supplies.", - "mission": 7, + "mission": 3, "chat": "TALK_SCIENCE_REP", "faction": "old_guard", "mission_offered": "MISSION_SCIENCE_REP_1" diff --git a/data/json/npcs/scrap_trader/scrap_trader.json b/data/json/npcs/scrap_trader/scrap_trader.json index fb5eabebd2a3e..9b1770b516e94 100644 --- a/data/json/npcs/scrap_trader/scrap_trader.json +++ b/data/json/npcs/scrap_trader/scrap_trader.json @@ -2,14 +2,187 @@ { "type": "npc", "id": "NPC_scrap_trader", - "class": "NC_SCAVENGER", + "class": "SCRAP_MERCHANT", + "gender": "male", "name_suffix": "scrapper", "attitude": 0, - "mission": 7, + "mission": 3, "chat": "TALK_NPC_SCRAP_TRADER", "faction": "wasteland_scavengers", "mission_offered": "MISSION_SCRAP_TRADER_GET_25_MAGNETRON" }, + { + "type": "npc_class", + "id": "SCRAP_MERCHANT", + "name": { "str": "Merchant" }, + "job_description": "I'm a local shopkeeper.", + "common": true, + "sells_belongings": false, + "bonus_str": 4, + "traits": [ + { "group": "Appearance_demographics" }, + { "trait": "STRONGBACK" }, + { "trait": "OUTDOORSMAN" }, + { "trait": "STRONGSTOMACH" }, + { "trait": "PAINRESIST" }, + { "trait": "NIGHTVISION" }, + { "trait": "QUICK" }, + { "trait": "GOODCARDIO" }, + { "trait": "TOUGH" }, + { "trait": "ADRENALINE" }, + { "trait": "NARCOLEPTIC" }, + { "trait": "PROJUNK" }, + { "trait": "MOODSWINGS" } + ], + "skills": [ + { "skill": "ALL", "level": { "sum": [ { "dice": [ 1, 2 ] }, { "constant": -1 } ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 0, 3 ] } }, + { "skill": "bashing", "bonus": { "rng": [ 0, 3 ] } }, + { "skill": "melee", "bonus": { "rng": [ 0, 3 ] } }, + { "skill": "dodge", "bonus": { "rng": [ 0, 3 ] } }, + { "skill": "rifle", "bonus": { "rng": [ 2, 5 ] } }, + { "skill": "gun", "bonus": { "rng": [ 2, 5 ] } }, + { "skill": "fabrication", "bonus": { "rng": [ 2, 5 ] } }, + { "skill": "mechanics", "bonus": { "rng": [ 6, 8 ] } }, + { "skill": "driving", "bonus": { "rng": [ 5, 6 ] } }, + { "skill": "swimming", "bonus": { "rng": [ 3, 5 ] } }, + { "skill": "survival", "bonus": { "rng": [ 0, 3 ] } }, + { "skill": "cooking", "bonus": { "rng": [ 3, 5 ] } } + ], + "worn_override": "SCRAP_MERCHANT_worn", + "weapon_override": "SCRAP_MERCHANT_weapon", + "carry_override": "SCRAP_MERCHANT_carried", + "shopkeeper_item_group": [ + { "group": "SCRAPPER_Shop", "rigid": true }, + { + "group": "SCRAPPER_Shop_Specialty_Metals", + "rigid": true, + "condition": { "npc_has_var": "specific_metal_tradeable", "type": "dialogue", "context": "trade", "value": "yes" } + }, + { + "group": "no_sell", + "rigid": true, + "condition": { "compare_int": [ { "npc_val": "var", "var_name": "NEVER" }, "==", { "const": 1 } ] }, + "refusal": " will never sell this" + } + ], + "shopkeeper_consumption_rates": "basic_shop_rates", + "shopkeeper_price_rules": [ + { "item": "scrap", "price": 200, "fixed_adj": 0 }, + { "item": "sheet_metal_small", "price": 400, "fixed_adj": 0 }, + { "item": "steel_chunk", "price": 400, "fixed_adj": 0 }, + { "item": "steel_lump", "price": 600, "fixed_adj": 0 }, + { "item": "sheet_metal", "price": 500, "fixed_adj": 0 }, + { "item": "lc_steel_lump", "price": 1200, "fixed_adj": 0 }, + { "item": "mc_steel_lump", "price": 1600, "fixed_adj": 0 }, + { "item": "hc_steel_lump", "price": 2000, "fixed_adj": 0 }, + { "item": "scrap_aluminum", "price": 30, "fixed_adj": 0 }, + { "item": "scrap_bronze", "price": 500, "fixed_adj": 0 }, + { "item": "bismuth", "price": 2000, "fixed_adj": 0 }, + { "item": "zinc_metal", "price": 2000, "fixed_adj": 0 }, + { "item": "lead", "price": 2400, "fixed_adj": 0 }, + { "item": "scrap_copper", "price": 140, "fixed_adj": 0 }, + { "item": "tin", "price": 3600, "fixed_adj": 0 }, + { "item": "magnesium", "price": 2000, "fixed_adj": 0 }, + { "item": "silver_small", "price": 5600, "fixed_adj": 0 }, + { "item": "gold_small", "price": 20000, "fixed_adj": 0 }, + { "item": "platinum_small", "price": 30000, "fixed_adj": 0 } + ] + }, + { + "type": "item_group", + "id": "SCRAP_MERCHANT_worn", + "subtype": "collection", + "items": [ + { "item": "glasses_safety" }, + { "item": "helmet_liner" }, + { "item": "hat_hard" }, + { "item": "turtleneck_shirt" }, + { "item": "jacket_jean" }, + { "item": "vest" }, + { "item": "boxer_briefs" }, + { "item": "jeans" }, + { "item": "gloves_work" }, + { "item": "socks" }, + { "item": "boots" }, + { "item": "gold_ring" }, + { "item": "tool_belt" }, + { "item": "spearsling" }, + { "item": "ar15", "ammo-item": "223", "charges": 30, "container-item": "back_holster" } + ] + }, + { + "type": "item_group", + "id": "SCRAP_MERCHANT_carried", + "subtype": "collection", + "items": [ + { "item": "flashlight", "charges": [ 0, 300 ] }, + { "item": "multitool" }, + { "item": "hammer" }, + { "item": "boltcutters" }, + { "item": "homemade_grenade", "count": [ 0, 2 ] } + ] + }, + { + "type": "item_group", + "id": "SCRAP_MERCHANT_weapon", + "subtype": "collection", + "items": [ { "item": "heavy_crowbar" } ] + }, + { + "type": "item_group", + "id": "no_sell", + "subtype": "collection", + "items": [ + { "item": "cash_register", "count": 0 }, + { "item": "wheel_wide", "count": 0 }, + { "group": "SUS_fridge_survivor", "count": 0 }, + { "group": "SUS_utensils", "count": 0 }, + { "item": "microwave", "count": 0 }, + { "group": "used_1st_aid", "count": 0 }, + { "item": "coffee", "count": 0 }, + { "item": "hd_tow_cable", "count": 0 }, + { "item": "roadmap", "count": 0 }, + { "item": "folding_poncho", "count": 0 }, + { "item": "rope_6", "count": 0 }, + { "item": "handflare", "count": 0 }, + { "item": "sm_extinguisher", "count": 0 }, + { "item": "towel", "count": 0 } + ] + }, + { + "type": "item_group", + "id": "SCRAPPER_Shop", + "subtype": "collection", + "items": [ + { "item": "scrap", "count": [ 125, 250 ] }, + { "item": "sheet_metal_small", "count": [ 50, 100 ] }, + { "item": "steel_chunk", "count": [ 100, 200 ] }, + { "item": "steel_lump", "count": [ 50, 100 ] }, + { "item": "sheet_metal", "count": [ 25, 50 ] }, + { "item": "lc_steel_lump", "count": [ 25, 50 ] }, + { "item": "mc_steel_lump", "count": [ 25, 50 ] }, + { "item": "hc_steel_lump", "count": [ 25, 50 ] } + ] + }, + { + "type": "item_group", + "id": "SCRAPPER_Shop_Specialty_Metals", + "subtype": "collection", + "items": [ + { "item": "scrap_aluminum", "count": [ 100, 200 ] }, + { "item": "scrap_bronze", "count": [ 20, 50 ] }, + { "item": "bismuth", "count": [ 0, 3 ], "container-item": "bag_zipper", "charges": 100 }, + { "item": "zinc_metal", "count": [ 0, 3 ], "container-item": "jar_glass_sealed", "charges": 100 }, + { "item": "lead", "count": [ 0, 3 ], "container-item": "bag_zipper", "charges": 100 }, + { "item": "scrap_copper", "count": [ 100, 200 ] }, + { "item": "tin", "count": [ 0, 3 ], "container-item": "bag_zipper", "charges": 100 }, + { "item": "magnesium", "count": [ 0, 3 ], "container-item": "bag_zipper", "charges": 100 }, + { "item": "silver_small", "count": [ 0, 3 ], "container-item": "bag_zipper", "charges": 100 }, + { "item": "gold_small", "count": [ 0, 3 ], "container-item": "bag_zipper", "charges": 100 }, + { "item": "platinum_small", "count": [ 0, 3 ], "container-item": "jar_glass_sealed", "charges": 100 } + ] + }, { "type": "talk_topic", "id": "TALK_NPC_SCRAP_TRADER", @@ -77,60 +250,20 @@ { "type": "talk_topic", "id": "TALK_NPC_SCRAP_TRADER_HOME_STAY", - "dynamic_line": "Sure, I'm fine with it. There's a spare bed over there for anyone who needs it. Just don't hog it. Someone else might come along.", + "dynamic_line": "Sure, I'm fine with it. There's a spare bed in the shed next door for anyone who needs it. Just don't hog it. Someone else might come along.", "responses": [ { "text": "Thanks, .", "topic": "TALK_NPC_SCRAP_TRADER_INTRO" } ] }, { "id": "TALK_SCRAP_TRADER_BULK_SELL", "//": "this is all the dialogue related to buying bulk metal or scrap.", "type": "talk_topic", - "dynamic_line": [ "Sure thing. I've got a few things on hand, sold in batches of 10-piece each. What'll ya have?" ], + "dynamic_line": [ "Sure thing. I've got a few things on hand. What'll ya have?" ], "responses": [ { "text": "Nevermind.", "topic": "TALK_NONE" }, { - "text": "I'd like some specialty metals.", - "topic": "TALK_SCRAP_TRADER_BULK_SELL_SPECIALTY", - "condition": { "npc_has_var": "specific_metal_tradeable", "type": "dialogue", "context": "trade", "value": "yes" } - }, - { - "text": "[2$] I'll buy some scrap fragments.", - "effect": [ { "u_buy_item": "scrap", "cost": 200, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[5$] I'll buy some small sheet metal.", - "effect": [ { "u_buy_item": "sheet_metal_small", "cost": 500, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[10$] I'll buy some steel chunks.", - "effect": [ { "u_buy_item": "steel_chunk", "cost": 1000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[30$] I'll buy some steel lumps.", - "effect": [ { "u_buy_item": "steel_lump", "cost": 3000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[50$] I'll buy some sheet metal.", - "effect": [ { "u_buy_item": "sheet_metal", "cost": 5000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[60$] I'll buy some low carbon steel.", - "effect": [ { "u_buy_item": "lc_steel_lump", "cost": 6000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[80$] I'll buy some medium carbon steel.", - "effect": [ { "u_buy_item": "mc_steel_lump", "cost": 8000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[100$] I'll buy some high carbon steel.", - "effect": [ { "u_buy_item": "hc_steel_lump", "cost": 10000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" + "text": "Let's take a look at your stock.", + "topic": "TALK_SCRAP_TRADER_BULK_SELL_END", + "effect": "start_trade" } ] }, @@ -140,105 +273,7 @@ "dynamic_line": [ "Anything else you need?" ], "responses": [ { "text": "No, that's all.", "topic": "TALK_DONE" }, - { - "text": "I'd like some specialty metals.", - "topic": "TALK_SCRAP_TRADER_BULK_SELL_SPECIALTY", - "condition": { "npc_has_var": "specific_metal_tradeable", "type": "dialogue", "context": "trade", "value": "yes" } - }, - { - "text": "[2$] I'll buy some scrap fragments.", - "effect": [ { "u_buy_item": "scrap", "cost": 200, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[5$] I'll buy some small sheet metal.", - "effect": [ { "u_buy_item": "sheet_metal_small", "cost": 500, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[10$] I'll buy some steel chunks.", - "effect": [ { "u_buy_item": "steel_chunk", "cost": 1000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[30$] I'll buy some steel lumps.", - "effect": [ { "u_buy_item": "steel_lump", "cost": 3000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[50$] I'll buy some sheet metal.", - "effect": [ { "u_buy_item": "sheet_metal", "cost": 5000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[60$] I'll buy some low carbon steel.", - "effect": [ { "u_buy_item": "lc_steel_lump", "cost": 6000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[80$] I'll buy some medium carbon steel.", - "effect": [ { "u_buy_item": "mc_steel_lump", "cost": 8000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[100$] I'll buy some high carbon steel.", - "effect": [ { "u_buy_item": "hc_steel_lump", "cost": 10000, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - } - ] - }, - { - "id": "TALK_SCRAP_TRADER_BULK_SELL_SPECIALTY", - "type": "talk_topic", - "dynamic_line": [ "I've got freshly sorted metals in some small containers ready to go. What do you want?" ], - "//": "This is meant to be more costly due to the difficulty in obtaining them.", - "responses": [ - { "text": "Nevermind.", "topic": "TALK_NONE" }, - { - "text": "[10$] I'll buy some bismuth.", - "effect": [ { "u_buy_item": "bismuth", "container": "bag_zipper", "cost": 1000, "count": 100 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[10$] I'll buy some zinc.", - "effect": [ { "u_buy_item": "zinc_metal", "container": "jar_glass_sealed", "cost": 1000, "count": 100 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[12$] I'll buy some lead.", - "effect": [ { "u_buy_item": "lead", "container": "bag_zipper", "cost": 1200, "count": 100 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[14$] I'll buy some copper.", - "effect": [ { "u_buy_item": "scrap_copper", "cost": 1400, "count": 10 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[18$] I'll buy some tin.", - "effect": [ { "u_buy_item": "tin", "container": "bag_zipper", "cost": 1800, "count": 100 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[20$] I'll buy some magnesium.", - "effect": [ { "u_buy_item": "magnesium", "container": "bag_zipper", "cost": 2000, "count": 100 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[28$] I'll buy some silver.", - "effect": [ { "u_buy_item": "silver_small", "container": "bag_zipper", "cost": 2800, "count": 100 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[100$] I'll buy some gold.", - "effect": [ { "u_buy_item": "gold_small", "container": "bag_zipper", "cost": 10000, "count": 100 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - }, - { - "text": "[150$] I'll buy some platinum.", - "effect": [ { "u_buy_item": "platinum_small", "container": "jar_glass_sealed", "cost": 15000, "count": 100 } ], - "topic": "TALK_SCRAP_TRADER_BULK_SELL_END" - } + { "text": "Can I have another look?", "topic": "TALK_SCRAP_TRADER_BULK_SELL_END", "effect": "start_trade" } ] } ] diff --git a/data/json/vehicles/trucks.json b/data/json/vehicles/trucks.json index 0d310db5d60c2..8fccc0554e9da 100644 --- a/data/json/vehicles/trucks.json +++ b/data/json/vehicles/trucks.json @@ -801,5 +801,71 @@ { "x": -2, "y": 3, "chance": 10, "items": [ "handflare", "handflare", "handflare" ], "ammo": 100 }, { "x": -2, "y": 3, "chance": 50, "items": [ "sm_extinguisher" ] } ] + }, + { + "id": "underlift_tow_truck_lack_wheels", + "type": "vehicle", + "name": "Underlift Tow Truck", + "blueprint": [ + [ " o " ], + [ "OHj-+-O" ], + [ "OHH'#'|" ], + [ "{--'o'>" ], + [ "OHH'#'|" ], + [ "OHj-+-O" ], + [ " o " ] + ], + "parts": [ + { "x": 0, "y": 0, "parts": [ "frame_cross", "seat_windshield", "seatbelt", "roof", "controls" ] }, + { "x": 0, "y": 0, "parts": [ "stereo", "dashboard", "vehicle_alarm", "horn_big" ] }, + { "x": 0, "y": -1, "parts": [ "frame_vertical_left", "door_front_left" ] }, + { "x": 0, "y": 1, "parts": [ "frame_cross", "box", "roof" ] }, + { "x": 0, "y": 2, "parts": [ "frame_cross", "seat_windshield", "seatbelt", "roof" ] }, + { "x": 0, "y": 3, "parts": [ "frame_vertical_right", "door_front_right" ] }, + { "x": 1, "y": -1, "parts": [ "frame_vertical_T_left", "windshield_wheel_left" ] }, + { "x": 1, "y": -1, "parts": [ "wheel_mount_medium_steerable" ] }, + { "x": 1, "y": -2, "part": "wing_mirror_left" }, + { "x": 1, "y": 0, "parts": [ "frame_horizontal_2", "windshield_cover_left" ] }, + { "x": 1, "y": 1, "parts": [ "frame_horizontal_2", "windshield_horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "frame_horizontal_2", "windshield_cover_right" ] }, + { "x": 1, "y": 3, "parts": [ "frame_vertical_T_right", "windshield_wheel_right" ] }, + { "x": 1, "y": 3, "parts": [ "wheel_mount_medium_steerable" ] }, + { "x": 1, "y": 4, "part": "wing_mirror_right" }, + { "x": 2, "y": -1, "parts": [ "frame_nw", "halfboard_nw", "headlight" ] }, + { "x": 2, "y": 0, "parts": [ "frame_horizontal_front", "halfboard_cover_left" ] }, + { "x": 2, "y": 1, "parts": [ "frame_horizontal_front", "halfboard_cover", "engine_v8" ] }, + { "x": 2, "y": 1, "parts": [ "alternator_truck", "battery_car" ] }, + { "x": 2, "y": 2, "parts": [ "frame_horizontal_front", "halfboard_cover_right" ] }, + { "x": 2, "y": 3, "parts": [ "frame_ne", "halfboard_ne", "headlight" ] }, + { "x": -1, "y": -1, "parts": [ "frame_sw", "board_nw" ] }, + { "x": -1, "y": -1, "part": "tank", "fuel": "gasoline" }, + { "x": -1, "y": 0, "parts": [ "frame_horizontal", "windshield_full_horizontal_front" ] }, + { "x": -1, "y": 0, "part": "light_red" }, + { "x": -1, "y": 1, "parts": [ "frame_horizontal", "windshield_full_horizontal_front" ] }, + { "x": -1, "y": 1, "part": "light_red" }, + { "x": -1, "y": 2, "parts": [ "frame_horizontal", "windshield_full_horizontal_front" ] }, + { "x": -1, "y": 2, "part": "light_red" }, + { "x": -1, "y": 3, "parts": [ "frame_se", "board_ne" ] }, + { "x": -1, "y": 3, "part": "tank", "fuel": "gasoline" }, + { "x": -2, "y": -1, "parts": [ "frame_vertical_left", "trunk_floor" ] }, + { "x": -2, "y": 0, "parts": [ "frame_vertical", "aisle_vertical" ] }, + { "x": -2, "y": 1, "parts": [ "frame_vertical", "halfboard_vertical" ] }, + { "x": -2, "y": 2, "parts": [ "frame_vertical", "aisle_vertical" ] }, + { "x": -2, "y": 3, "parts": [ "frame_vertical_right", "trunk_floor" ] }, + { "x": -3, "y": -1, "parts": [ "frame_vertical_left", "aisle_vertical" ] }, + { "x": -3, "y": 0, "parts": [ "frame_vertical", "aisle_vertical" ] }, + { "x": -3, "y": 1, "parts": [ "frame_vertical", "halfboard_vertical" ] }, + { "x": -3, "y": 2, "parts": [ "frame_vertical", "aisle_vertical" ] }, + { "x": -3, "y": 3, "parts": [ "frame_vertical_right", "aisle_vertical" ] }, + { "x": -4, "y": -1, "parts": [ "frame_sw", "aisle_vertical", "wheel_mount_medium" ] }, + { "x": -4, "y": -1, "part": "wheel_wide" }, + { "x": -4, "y": 0, "parts": [ "frame_horizontal_rear", "aisle_vertical" ] }, + { "x": -4, "y": 0, "parts": [ "wheel_mount_medium", "wheel_wide" ] }, + { "x": -4, "y": 1, "parts": [ "frame_horizontal_rear", "beeper", "crane_medium_internal" ] }, + { "x": -4, "y": 2, "parts": [ "frame_horizontal_rear", "aisle_vertical" ] }, + { "x": -4, "y": 2, "parts": [ "wheel_mount_medium", "wheel_wide" ] }, + { "x": -4, "y": 3, "parts": [ "frame_se", "aisle_vertical", "wheel_mount_medium" ] }, + { "x": -4, "y": 3, "part": "wheel_wide" } + ] } ] diff --git a/doc/NPCs.md b/doc/NPCs.md index ef45237cca206..356fa68d18857 100644 --- a/doc/NPCs.md +++ b/doc/NPCs.md @@ -38,7 +38,7 @@ Format: ], "shopkeeper_consumption_rates": "basic_shop_rates", "shopkeeper_price_rules": [ - { "item": "scrap", "fixed_price": 10000 }, + { "item": "scrap", "price": 10000 }, ] "shopkeeper_blacklist": "test_blacklist", "restock_interval": "6 days", diff --git a/src/npc.cpp b/src/npc.cpp index 9dc929034fc95..7e942bd64509a 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -2124,9 +2124,6 @@ void npc::shop_restock() } } } - if( value_groups.empty() && rigid_groups.empty() ) { - return; - } std::list ret; int shop_value = 75000;