diff --git a/data/json/mapgen/dive_shop.json b/data/json/mapgen/dive_shop.json new file mode 100644 index 0000000000000..b7aa07f7002ec --- /dev/null +++ b/data/json/mapgen/dive_shop.json @@ -0,0 +1,236 @@ +[ + { + "id": "dive_shop_tanks", + "type": "item_group", + "subtype": "distribution", + "items": [ + { "item": "small_scuba_tank", "prob": 40, "charges": [ 5, 20 ] }, + { "item": "scuba_tank", "prob": 60, "charges": [ 10, 60 ] } + ] + }, + { + "id": "dive_shop_books", + "type": "item_group", + "subtype": "distribution", + "entries": [ + { "item": "manual_swimming", "prob": 100 }, + { "item": "emergency_book", "prob": 50 }, + { "item": "manual_first_aid", "prob": 20 }, + { "item": "textbook_firstaid", "prob": 10 } + ] + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_dive_shop" ], + "weight": 200, + "object": { + "fill_ter": "t_floor", + "rows": [ + "____,____,____,____,____", + "____,____,____,____,____", + "____,____,____,____,____", + "____,____,____,____,____", + "____,____,____,____,____", + "FFFFFFFFFFFFFFFFFFFFFFFF", + "FFFFFFFFFFFFFFFFFFFFFFFF", + "|--OOOOOO--))--OOOOOO-|.", + "|^ |.", + "|] R R R ^RRR RRR^ |.", + "|] R R R |.", + "|] R R R #cDDDD#####$|.", + "|] R R R #L L |.", + "| |-----------|.", + "| hhhhh |*********|S|.", + "O ZZZZZ +*~~~~~~~*|S|.", + "|V hhhhh +*~~~~~~~*|+|.", + "|W |*~~~~~~~***|.", + "|--------+|*~~~~~~~*|+|.", + "|B C |*~~~~~~~*|*|.", + "|3 C |*********|t|.", + "|--------M-----M------|.", + ".4......____________<...", + "........................" + ], + "terrain": { + " ": "t_floor", + ")": "t_door_glass_c", + "+": "t_door_c", + ",": "t_pavement_y", + "-": "t_wall_w", + ".": [ [ "t_dirt", 5 ], [ "t_grass", 16 ], [ "t_grass_long", 5 ], [ "t_underbrush", 10 ] ], + "F": "t_sidewalk", + "O": "t_window", + "_": "t_pavement", + "M": "t_door_metal_pickable", + "4": "t_gutter_downspout", + "<": "t_ladder_up", + "|": "t_wall_w", + "C": "t_chaingate_c", + "*": "t_thconc_y", + "~": "t_water_pool" + }, + "furniture": { + "#": "f_counter", + "$": "f_counter_gate_c", + "c": "f_console_broken", + "D": "f_displaycase", + "R": "f_rack", + "]": "f_glass_cabinet", + "^": "f_indoor_plant", + "L": "f_stool", + "S": "f_shower", + "B": "f_workbench", + "3": "f_air_compressor", + "h": "f_chair", + "Z": "f_table" + }, + "vendingmachines": { "W": { "item_group": "vending_drink", "lootable": true }, "V": { "item_group": "vending_food", "lootable": true } }, + "toilets": { "t": { } }, + "items": { + "R": { "item": "SUS_scuba_gear", "chance": 20 }, + "D": { "item": "SUS_scuba_gear", "chance": 40 }, + "]": { "item": "swimmer_wetsuit", "chance": 80, "repeat": [ 0, 3 ] } + }, + "place_items": [ + { "item": "dive_shop_tanks", "x": [ 3, 6 ], "y": [ 19, 20 ], "chance": 90, "repeat": [ 2, 8 ] }, + { "item": "dive_shop_books", "x": [ 3, 7 ], "y": 15, "chance": 80, "repeat": [ 1, 5 ] } + ], + "place_monster": [ { "group": "GROUP_POOL_NOKIDS", "x": [ 12, 19 ], "y": [ 15, 19 ], "repeat": [ 2, 6 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_dive_shop" ], + "weight": 500, + "object": { + "fill_ter": "t_floor", + "rows": [ + "____,____,____,____,____", + "____,____,____,____,____", + "____,____,____,____,____", + "____,____,____,____,____", + "____,____,____,____,____", + "FFFFFFFFFFFFFFFFFFFFFFFF", + "FFFFFFFFFFFFFFFFFFFFFFFF", + "|--OOOOOO--))--OOOOOO-|.", + "|^ |.", + "|] R R R R ^RRR RRR^|.", + "|] R R R R |.", + "|] R R R R ^|.", + "|] R R R R #c#DDDD$#|.", + "|V #L ^|.", + "|W -========|.", + "|V : |.", + "|] R R R R : hhhhh |.", + "|] R R R R ) ZZZZZ O.", + "|^ R R R ) ZZZZZ O.", + "|--- : hhhhh |.", + "|t + ]^]^ : |.", + "|--------------M-OOO--|.", + ".4............._____<...", + "........................" + ], + "terrain": { + " ": "t_floor", + ")": "t_door_glass_c", + "+": "t_door_c", + ",": "t_pavement_y", + "-": "t_wall_w", + ".": [ [ "t_dirt", 5 ], [ "t_grass", 16 ], [ "t_grass_long", 5 ], [ "t_underbrush", 10 ] ], + "F": "t_sidewalk", + "O": "t_window", + "_": "t_pavement", + "M": "t_door_metal_pickable", + "4": "t_gutter_downspout", + "<": "t_ladder_up", + "|": "t_wall_w", + "=": "t_wall_glass_h", + ":": "t_wall_glass_v" + }, + "furniture": { + "#": "f_counter", + "$": "f_counter_gate_c", + "c": "f_console_broken", + "D": "f_displaycase", + "R": "f_rack", + "]": "f_glass_cabinet", + "^": "f_indoor_plant", + "L": "f_stool", + "h": "f_chair", + "Z": "f_table" + }, + "vendingmachines": { "W": { "item_group": "vending_drink", "lootable": true }, "V": { "item_group": "vending_food", "lootable": true } }, + "toilets": { "t": { } }, + "items": { + "R": { "item": "SUS_scuba_gear", "chance": 10 }, + "D": { "item": "SUS_scuba_gear", "chance": 40 }, + "]": { "item": "swimmer_wetsuit", "chance": 80, "repeat": [ 0, 3 ] } + }, + "place_items": [ { "item": "dive_shop_books", "x": [ 16, 20 ], "y": [ 17, 18 ], "chance": 80, "repeat": [ 2, 7 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_dive_shop_roof" ], + "weight": 500, + "object": { + "fill_ter": "t_tar_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "|.....................3 ", + "|.c...................3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "|.....................3 ", + "|..............ooo..:.3 ", + "|....A.........ooo..:.3 ", + "|....SS........ooo....3 ", + "|..................&..3 ", + "|.....................3 ", + "|5--------------------3 ", + " #>## ", + " " + ], + "terrain": { + ".": "t_tar_flat_roof", + "o": "t_glass_roof", + " ": "t_open_air", + "|": "t_gutter_west", + "-": "t_gutter_south", + "3": "t_gutter_east", + "#": "t_grate", + ">": "t_ladder_down", + "5": "t_gutter_drop" + }, + "furniture": { + "&": "f_roof_turbine_vent", + "c": "f_cellphone_booster", + "A": "f_air_conditioner", + ":": "f_standing_tank", + "S": "f_solar_unit" + }, + "place_items": [ { "item": "roof_trash", "x": [ 4, 16 ], "y": [ 8, 11 ], "chance": 50, "repeat": [ 1, 3 ] } ], + "place_nested": [ + { "chunks": [ [ "roof_2x2_golf", 5 ], [ "null", 85 ], [ "roof_3x3_wine", 10 ] ], "x": [ 13, 20 ], "y": 15 }, + { + "chunks": [ [ "null", 40 ], [ "roof_4x4_party", 5 ], [ "roof_4x4_utility", 50 ], [ "roof_4x4_holdout", 3 ] ], + "x": [ 4, 13 ], + "y": [ 8, 10 ] + } + ] + } + } +] diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index 9aeaf94e3f482..c0bb1f2a29107 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -1508,6 +1508,15 @@ "locations": [ "land" ], "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_antique_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_antique_roof_north" } ] }, + { + "type": "city_building", + "id": "s_dive_shop", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_dive_shop_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_dive_shop_roof_north" } + ] + }, { "//": "All of those overmap specials that spawn also outside of town require a second declare as city_building.", "type": "city_building", diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json index ff9f6600fe50b..dcf738ba70ca6 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json @@ -1264,6 +1264,22 @@ "sym": "A", "color": "brown" }, + { + "type": "overmap_terrain", + "id": "s_dive_shop", + "name": "dive shop", + "copy-from": "generic_city_building", + "sym": "D", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": "s_dive_shop_roof", + "name": "dive shop roof", + "copy-from": "generic_city_building", + "sym": "D", + "color": "blue" + }, { "type": "overmap_terrain", "id": "s_arcade", diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index e39f7103d2517..b2c247d2e92e3 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -954,6 +954,7 @@ "s_jewelry_shop": 200, "s_antique": 200, "s_gardening": 200, + "s_dive_shop": 300, "museum": 100, "s_music": 200, "s_laundromat": 100,