diff options
Diffstat (limited to 'npc-10_bunker-merchant.patch')
-rw-r--r-- | npc-10_bunker-merchant.patch | 396 |
1 files changed, 396 insertions, 0 deletions
diff --git a/npc-10_bunker-merchant.patch b/npc-10_bunker-merchant.patch new file mode 100644 index 0000000..4ec3c31 --- /dev/null +++ b/npc-10_bunker-merchant.patch @@ -0,0 +1,396 @@ +--- a/data/json/mapgen/bunker_shop.json ++++ b/data/json/mapgen/bunker_shop.json +@@ -0,0 +1,180 @@ ++[ ++ { ++ "type": "mapgen", ++ "method": "json", ++ "om_terrain": [ "bunker_shop_g" ], ++ "object": { ++ "fill_ter": "t_floor", ++ "rows": [ ++ "kkkkkkkkkkkkkkkkkkkkkkkk", ++ "kkkkkkkkkkkkkkkkkkkkkkkk", ++ "kkkkkkkkkkkkkkkkkkkkkkkk", ++ "kkaasaaGnnGnnGnnGnnoookk", ++ "kkaEDDakkkkkkkkkkkkoqokk", ++ "GnaEDDakkkkzkkkkkkkopokk", ++ "nkaaCaakkkkkkkkAkkkktnkk", ++ "nkkktttttttttttttttttnkk", ++ "GkkktkkkiicjaraaaajktGkk", ++ "nkkktkkkjkkkwwyakkjktnkk", ++ "nttttttkjkkkww a krktnkk", ++ "Gttttttkakk a jktGkk", ++ "nttttttkaaagaaaaagaagaak", ++ "nttttttka lj akkkak", ++ "Gttttttka ljvv gkk sk", ++ "nttttttbbd i akk ak", ++ "nttttttbedk iia a sk", ++ "Gttttttbbdkk a ak", ++ "nttttttkakkkk iijjak", ++ "nttttttFjkkkkkk jkkkkk", ++ "GBBBBBBGiijrcjgjjijkkkkk", ++ "kttttttFkf kkkkgkkkAkkk", ++ "kttttttkkj kkkjkkkkkkk", ++ "kttttttkkjjrrcrjjkkkkkkk" ++ ], ++ "terrain": { ++ "a": "t_wall_wood", ++ "b": "t_rock", ++ "c": "t_window_empty", ++ "d": "t_rock_floor", ++ "e": "t_rock_floor", ++ "f": "t_door_b", ++ "g": "t_door_frame", ++ "h": "t_door_c", ++ "i": "t_wall_wood_broken", ++ "j": "t_wall_wood_chipped", ++ "k": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], ++ "m": "t_dirt", ++ "n": "t_chainfence_h", ++ "o": "t_concrete_wall", ++ "p": "t_door_metal_c", ++ "q": "t_stairs_down", ++ "r": "t_window_frame", ++ "s": "t_window_boarded", ++ "t": "t_dirt", ++ "l": "t_floor", ++ "u": "t_floor", ++ "v": "t_floor", ++ "w": "t_floor", ++ "x": "t_wall_wood_chipped", ++ "y": "t_floor", ++ "z": "t_tree_plum", ++ "A": "t_tree_apple", ++ "B": "t_door_metal_locked", ++ "C": "t_door_c", ++ "D": "t_dirtfloor", ++ "E": "t_dirtfloor", ++ "F": "t_gates_mech_control", ++ "G": "t_wall" ++ }, ++ "furniture": { ++ "e": "f_brazier", ++ "m": "f_rubble", ++ "l": "f_crate_o", ++ "u": "f_woodstove", ++ "v": "f_table", ++ "w": "f_bed", ++ "y": "f_dresser", ++ "E": "f_locker" ++ }, ++ "place_loot": [ ++ { "group": "floor_trash", "chance": 90, "repeat": 5, "x": [ 9, 12 ], "y": [ 13, 19 ] }, ++ { "group": "floor_trash", "chance": 90, "repeat": 5, "x": [ 13, 17 ], "y": [ 17, 19 ] }, ++ { "group": "floor_trash", "chance": 90, "repeat": 5, "x": [ 14, 17 ], "y": [ 13, 15 ] }, ++ { "group": "floor_trash", "chance": 90, "repeat": 5, "x": [ 9, 14 ], "y": [ 9, 11 ] }, ++ { "group": "floor_trash", "chance": 90, "repeat": 5, "x": [ 19, 21 ], "y": [ 13, 17 ] }, ++ { "group": "floor_trash", "chance": 90, "repeat": 5, "x": [ 10, 15 ], "y": [ 21, 22 ] }, ++ { "group": "floor_trash", "chance": 90, "repeat": 3, "x": [ 16, 17 ], "y": [ 9, 11 ] } ++ ] ++ } ++ }, ++ { ++ "type": "mapgen", ++ "method": "json", ++ "om_terrain": [ "bunker_shop_b" ], ++ "object": { ++ "fill_ter": "t_rock", ++ "rows": [ ++ " fff ", ++ " fvffffff ", ++ " fbbbbbbf ", ++ " fbffffbf ", ++ " fffff fbf faf ", ++ " fftsrf fbf fff ", ++ " fvbbbf fbf ", ++ " ffffffdfffdfffff ", ++ " fnccmfbfjubbxfvf ", ++ " fllccbbdbbbbbebf ", ++ " fvccofjfbbbbbfbf ", ++ " fffffffffgggffbf ", ++ " fjhhhbfbf ", ++ " fffffffffbbpbbdbf ", ++ " fviiiiivfibbbbfff ", ++ " fffbbbbbbbfibvbwf ", ++ " fkdbiiiiibdbbbbhf ", ++ " fffbbbbbbbfiqqbhf ", ++ " fviiiiivffffdff ", ++ " ffffffffffnlcmf ", ++ " fvbbbdclcmf ", ++ " fftsrfcccvf ", ++ " ffffffffff ", ++ " " ++ ], ++ "terrain": { ++ "a": "t_stairs_up", ++ "b": "t_thconc_floor", ++ "c": "t_floor", ++ "d": "t_door_metal_c", ++ "e": "t_door_metal_locked", ++ "f": "t_concrete_wall", ++ "g": "t_reinforced_glass", ++ "h": "t_thconc_floor", ++ "i": "t_thconc_floor", ++ "j": "t_thconc_floor", ++ "k": "t_plut_generator", ++ "l": "t_floor", ++ "m": "t_floor", ++ "n": "t_floor", ++ "o": "t_floor", ++ "p": "t_thconc_floor", ++ "q": "t_thconc_floor", ++ "r": "t_thconc_floor", ++ "s": "t_thconc_floor", ++ "t": "t_thconc_floor", ++ "u": "t_thconc_floor", ++ "v": "t_utility_light", ++ "w": "t_console_broken", ++ "x": "t_atm" ++ }, ++ "furniture": { ++ "h": "f_table", ++ "i": "f_rack", ++ "j": "f_locker", ++ "l": "f_bed", ++ "m": "f_dresser", ++ "n": "f_table", ++ "o": "f_sofa", ++ "p": "f_chair", ++ "q": "f_sofa", ++ "r": "f_toilet", ++ "s": "f_sink", ++ "t": "f_shower", ++ "u": "f_crate_o" ++ }, ++ "place_loot": [ ++ { "group": "mil_food_nodrugs", "chance": 90, "repeat": [ 10 ], "x": [ 6, 10 ], "y": [ 18, 18 ] }, ++ { "group": "ammo_rifle_milspec", "chance": 90, "repeat": [ 10 ], "x": [ 6, 10 ], "y": [ 16, 16 ] }, ++ { "group": "camping", "chance": 90, "repeat": [ 10 ], "x": [ 6, 10 ], "y": [ 14, 14 ] }, ++ { "group": "allclothes", "chance": 90, "repeat": [ 4 ], "x": [ 17, 17 ], "y": [ 19, 20 ] }, ++ { "group": "allclothes", "chance": 90, "repeat": [ 4 ], "x": [ 9, 9 ], "y": [ 8, 8 ] }, ++ { "group": "book_military", "chance": 90, "repeat": [ 1 ], "x": [ 6, 6 ], "y": [ 8, 8 ] }, ++ { "group": "book_military", "chance": 90, "repeat": [ 1 ], "x": [ 14, 14 ], "y": [ 12, 12 ] }, ++ { "group": "cleaning_bulk", "chance": 90, "repeat": [ 2 ], "x": [ 11, 11 ], "y": [ 10, 10 ] }, ++ { "group": "cleaning_bulk", "chance": 90, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 12, 12 ] }, ++ { "group": "guns_milspec", "chance": 90, "repeat": [ 2 ], "x": [ 13, 13 ], "y": [ 14, 15 ] }, ++ { "group": "mil_food_nodrugs", "chance": 90, "repeat": [ 5 ], "x": [ 13, 13 ], "y": [ 17, 17 ] }, ++ { "group": "mil_armor", "chance": 90, "repeat": [ 5 ], "x": [ 17, 17 ], "y": [ 15, 17 ] } ++ ], ++ "place_npcs": [ { "class": "bunker_merchant", "x": 15, "y": 13 } ] ++ } ++ } ++] +--- a/data/json/npcs/bunker_shop/NC_BUNKER_MERCHANT.json ++++ b/data/json/npcs/bunker_shop/NC_BUNKER_MERCHANT.json +@@ -0,0 +1,72 @@ ++[ ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_pants_male", ++ "items": [ [ "pants_cargo", 60 ], [ "pants", 20 ], [ "shorts_cargo", 20 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_pants_female", ++ "items": [ [ "pants_cargo", 60 ], [ "pants", 20 ], [ "shorts_cargo", 20 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_shoes", ++ "items": [ [ "boots_combat", 90 ], [ "boots", 10 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_shirt_male", ++ "items": [ [ "undershirt", 30 ], [ "sweatshirt", 20 ], [ "under_armor", 20 ], [ "longshirt", 20 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_shirt_female", ++ "items": [ [ "undershirt", 30 ], [ "sweatshirt", 20 ], [ "under_armor", 20 ], [ "longshirt", 20 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_gloves", ++ "items": [ [ "null", 20 ], [ "gloves_tactical", 60 ], [ "gloves_fingerless", 20 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_coat", ++ "items": [ [ "hoodie", 50 ], [ "kevlar", 50 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_extra", ++ "items": [ [ "rucksack", 100 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_hat", ++ "items": [ [ "hat_ball", 100 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_eyes", ++ "items": [ [ "null", 80 ], [ "glasses_bal", 20 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_masks", ++ "items": [ [ "scarf", 100 ] ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_BUNKER_MERCHANT_misc", ++ "items": [ ++ { "group": "ammo_reloaded", "prob": 100, "count-min": 5, "count-max": 10 }, ++ { "group": "everyday_gear", "prob": 100, "count-min": 5, "count-max": 25 }, ++ { "group": "guns_survival", "prob": 100, "count-min": 5, "count-max": 5 }, ++ { "group": "tools_survival", "prob": 100, "count-min": 5, "count-max": 5 }, ++ { "group": "supplies_electronics", "prob": 100, "count-min": 5, "count-max": 5 }, ++ { "group": "clothing_outdoor_torso", "prob": 100, "count-min": 5, "count-max": 5 }, ++ { "group": "clothing_outdoor_pants", "prob": 100, "count-min": 5, "count-max": 5 }, ++ { "group": "clothing_outdoor_shoes", "prob": 100, "count-min": 5, "count-max": 5 }, ++ { "group": "drugs_soldier", "prob": 100, "count-min": 5, "count-max": 5 } ++ ] ++ } ++] +--- a/data/json/npcs/bunker_shop/TALK_BUNKER_MERCHANT.json ++++ b/data/json/npcs/bunker_shop/TALK_BUNKER_MERCHANT.json +@@ -0,0 +1,46 @@ ++[ ++ { ++ "type": "talk_topic", ++ "id": "TALK_BUNKER_MERCHANT", ++ "dynamic_line": "Heya, scav.", ++ "responses": [ ++ { "text": "Did you build this place?", "topic": "TALK_BUNKER_MERCHANT_HERE" }, ++ { "text": "Who are you?", "topic": "TALK_BUNKER_MERCHANT_WHO" }, ++ { "text": "Why do you still use cash?", "topic": "TALK_BUNKER_MERCHANT_WHY" }, ++ { "text": "You're a trader?", "topic": "TALK_BUNKER_MERCHANT_TRADE" }, ++ { "text": "I need some supplies.", "effect": "start_trade", "topic": "TALK_BUNKER_MERCHANT" }, ++ { "text": "Need help with anything?", "topic": "TALK_BUNKER_MERCHANT_MISSION" }, ++ { "text": "Well, bye.", "topic": "TALK_DONE" } ++ ] ++ }, ++ { ++ "type": "talk_topic", ++ "id": "TALK_BUNKER_MERCHANT_HERE", ++ "dynamic_line": "No, no… well, maybe a little. It was just as wrecked down here as it is up top when I found it, wasn't too hard to fix up. You're welcome to stay in the spare room awhile, just don't hog it. You're not the only scav out there.", ++ "responses": [ { "text": "Interesting…", "topic": "TALK_BUNKER_MERCHANT" } ] ++ }, ++ { ++ "type": "talk_topic", ++ "id": "TALK_BUNKER_MERCHANT_WHO", ++ "dynamic_line": "Just a scav who got lucky. Now I'm content to sit around here on my pile of treasure. I'm more than willing to trade if you've got the cash.", ++ "responses": [ { "text": "I see…", "topic": "TALK_BUNKER_MERCHANT" } ] ++ }, ++ { ++ "type": "talk_topic", ++ "id": "TALK_BUNKER_MERCHANT_WHY", ++ "dynamic_line": "Why not? Everyone else does, so I suppose that's all that matters. My ATM over there still works, connected to the bank servers and everything.", ++ "responses": [ { "text": "Hmm…", "topic": "TALK_BUNKER_MERCHANT" } ] ++ }, ++ { ++ "type": "talk_topic", ++ "id": "TALK_BUNKER_MERCHANT_TRADE", ++ "dynamic_line": "I suppose I am. Scavs like you need supplies, right? And I could always use more money.", ++ "responses": [ { "text": "Alright…", "topic": "TALK_BUNKER_MERCHANT" } ] ++ }, ++ { ++ "type": "talk_topic", ++ "id": "TALK_BUNKER_MERCHANT_MISSION", ++ "dynamic_line": "Not at the moment, check back later perhaps.", ++ "responses": [ { "text": "Sure…", "topic": "TALK_BUNKER_MERCHANT" } ] ++ } ++] +--- a/data/json/npcs/bunker_shop/classes.json ++++ b/data/json/npcs/bunker_shop/classes.json +@@ -0,0 +1,21 @@ ++[ ++ { ++ "type": "npc_class", ++ "id": "NC_BUNKER_MERCHANT", ++ "name": "Merchant", ++ "common": false, ++ "job_description": "", ++ "bonus_str": { "rng": [ -1, 2 ] }, ++ "bonus_dex": { "rng": [ -1, 1 ] }, ++ "bonus_int": { "rng": [ -1, 4 ] }, ++ "bonus_per": { "rng": [ -1, 2 ] }, ++ "skills": [ ++ { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": 0 } ] } ] } }, ++ { "skill": "gun", "bonus": { "rng": [ 1, 5 ] } }, ++ { "skill": "rifle", "bonus": { "rng": [ 1, 5 ] } }, ++ { "skill": "pistol", "bonus": { "rng": [ 1, 4 ] } }, ++ { "skill": "smg", "bonus": { "rng": [ 1, 3 ] } }, ++ { "skill": "speech", "bonus": { "rng": [ 1, 6 ] } } ++ ] ++ } ++] +--- a/data/json/npcs/bunker_shop/npc.json ++++ b/data/json/npcs/bunker_shop/npc.json +@@ -0,0 +1,12 @@ ++[ ++ { ++ "type": "npc", ++ "id": "bunker_merchant", ++ "name_suffix": "Merchant", ++ "class": "NC_BUNKER_MERCHANT", ++ "attitude": 0, ++ "mission": 3, ++ "chat": "TALK_BUNKER_MERCHANT", ++ "faction": "no_faction" ++ } ++] +--- a/data/json/overmap/overmap_special/specials.json ++++ b/data/json/overmap/overmap_special/specials.json +@@ -7151,5 +7151,19 @@ + "city_sizes": [ 4, -1 ], + "occurrences": [ 0, 2 ], + "flags": [ "CLASSIC", "WILDERNESS", "ELECTRIC_GRID" ] ++ }, ++ { ++ "type": "overmap_special", ++ "id": "bunker shop", ++ "overmaps": [ ++ { "point": [ 0, 0, 0 ], "overmap": "bunker_shop_g_south" }, ++ { "point": [ 0, 0, -1 ], "overmap": "bunker_shop_b_south" } ++ ], ++ "connections": [ { "point": [ 0, -1, 0 ], "existing": true, "connection": "local_road", "from": [ 0, 0, 0 ] } ], ++ "locations": [ "wilderness" ], ++ "city_distance": [ 10, -1 ], ++ "city_sizes": [ 1, 12 ], ++ "occurrences": [ 5, 100 ], ++ "flags": [ "CLASSIC", "UNIQUE", "WILDERNESS", "ELECTRIC_GRID" ] + } + ] +--- a/data/json/overmap/overmap_terrain/overmap_terrain_residential.json ++++ b/data/json/overmap/overmap_terrain/overmap_terrain_residential.json +@@ -491,5 +491,25 @@ + "name": "derelict property", + "sym": "X", + "color": "i_brown" ++ }, ++ { ++ "type": "overmap_terrain", ++ "id": "bunker_shop_g", ++ "name": "derelict property", ++ "sym": "X", ++ "color": "i_brown", ++ "see_cost": 5, ++ "extras": "build", ++ "mondensity": 2 ++ }, ++ { ++ "type": "overmap_terrain", ++ "id": "bunker_shop_b", ++ "name": "scavenger bunker", ++ "sym": "B", ++ "color": "light_green", ++ "see_cost": 5, ++ "extras": "build", ++ "mondensity": 2 + } + ] |