diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index c7dc0a5cabe68..ed7fde304273c 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -1724,7 +1724,8 @@ { "point": [ 0, -3, 2 ], "overmap": "police_dept_d012_south" }, { "point": [ 1, -3, 2 ], "overmap": "police_dept_d112_south" } ], - "city_sizes": [ 14, -1 ] + "city_sizes": [ 14, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "type": "city_building", @@ -2259,7 +2260,8 @@ { "point": [ 2, 2, 2 ], "overmap": "megastore_1_2_roof_south" }, { "point": [ 1, 2, 2 ], "overmap": "megastore_2_2_roof_south" } ], - "city_sizes": [ 12, -1 ] + "city_sizes": [ 12, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "type": "city_building", @@ -2285,7 +2287,8 @@ { "point": [ 1, 2, 1 ], "overmap": "hospital_8_roof_north" }, { "point": [ 2, 2, 1 ], "overmap": "hospital_7_roof_north" } ], - "city_sizes": [ 12, -1 ] + "city_sizes": [ 12, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "id": "urban_35_hospital", @@ -2327,7 +2330,9 @@ { "point": [ 1, 0, 6 ], "overmap": "urban_35_31_south" }, { "point": [ 0, 0, 6 ], "overmap": "urban_35_32_south" }, { "point": [ 1, 0, 7 ], "overmap": "urban_35_33_south" } - ] + ], + "city_sizes": [ 8, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "type": "city_building", @@ -2977,7 +2982,8 @@ { "point": [ 0, 1, -1 ], "overmap": "cathedral_b_SW_north" }, { "point": [ 1, 1, -1 ], "overmap": "cathedral_b_SE_north" } ], - "city_sizes": [ 14, -1 ] + "city_sizes": [ 14, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "type": "city_building", @@ -3236,7 +3242,8 @@ { "point": [ 1, 1, 0 ], "overmap": "mall_a_80_south" }, { "point": [ 0, 1, 0 ], "overmap": "mall_a_81_south" } ], - "city_sizes": [ 16, -1 ] + "city_sizes": [ 16, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "type": "city_building", @@ -3485,7 +3492,8 @@ { "point": [ 2, 1, 3 ], "overmap": "stadium_2_1_3_north" }, { "point": [ 0, 3, 3 ], "overmap": "stadium_0_3_3_north" } ], - "city_sizes": [ 16, -1 ] + "city_sizes": [ 16, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "type": "city_building", @@ -3638,7 +3646,8 @@ { "point": [ 5, 5, 5 ], "overmap": "stadium_football_5_5_5_north" }, { "point": [ 6, 5, 5 ], "overmap": "stadium_football_6_5_5_north" } ], - "city_sizes": [ 16, -1 ] + "city_sizes": [ 16, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "type": "city_building", @@ -3735,7 +3744,8 @@ { "point": [ 0, 1, 2 ], "overmap": "town_hall_0_1_roof_north" }, { "point": [ 1, 1, 2 ], "overmap": "town_hall_1_1_roof_north" } ], - "city_sizes": [ 10, -1 ] + "city_sizes": [ 10, -1 ], + "flags": [ "CITY_UNIQUE" ] }, { "type": "city_building", diff --git a/data/json/overmap/overmap_mutable/anthill.json b/data/json/overmap/overmap_mutable/anthill.json index 8150847e16a5e..c7c9be0f1712d 100644 --- a/data/json/overmap/overmap_mutable/anthill.json +++ b/data/json/overmap/overmap_mutable/anthill.json @@ -18,7 +18,7 @@ "locations": [ "subterranean_empty" ], "city_distance": [ 10, -1 ], "occurrences": [ 80, 100 ], - "flags": [ "ANT", "UNIQUE", "WILDERNESS" ], + "flags": [ "ANT", "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_ANT_SURFACE", "population": [ 1000, 2000 ], "radius": [ 10, 30 ] }, "check_for_locations": [ [ [ 0, 0, 0 ], [ "land", "agricultural" ] ], @@ -91,7 +91,7 @@ "locations": [ "subterranean_empty" ], "city_distance": [ 10, -1 ], "occurrences": [ 80, 100 ], - "flags": [ "ANT", "UNIQUE", "WILDERNESS" ], + "flags": [ "ANT", "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_ACID_ANT_SURFACE", "population": [ 1000, 2000 ], "radius": [ 10, 30 ] }, "check_for_locations": [ [ [ 0, 0, 0 ], [ "land", "agricultural" ] ], diff --git a/data/json/overmap/overmap_mutable/crater.json b/data/json/overmap/overmap_mutable/crater.json index 29b050474a012..c88952ca9ddd4 100644 --- a/data/json/overmap/overmap_mutable/crater.json +++ b/data/json/overmap/overmap_mutable/crater.json @@ -7,7 +7,7 @@ "occurrences": [ 66, 100 ], "//": "Spawn after all roads from other specials to avoid their roads routing around placed craters", "priority": -2, - "flags": [ "UNIQUE", "BLOB", "CLASSIC" ], + "flags": [ "OVERMAP_UNIQUE", "BLOB", "CLASSIC" ], "check_for_locations_area": [ { "type": [ "land", "road", "agricultural" ], "from": [ -1, -1, 0 ], "to": [ 1, 1, 0 ] } ], "joins": [ "crater_to_crater", "root" ], "overmaps": { diff --git a/data/json/overmap/overmap_mutable/farm_horse_mutable.json b/data/json/overmap/overmap_mutable/farm_horse_mutable.json index 21b7819624d63..bae9becfde331 100644 --- a/data/json/overmap/overmap_mutable/farm_horse_mutable.json +++ b/data/json/overmap/overmap_mutable/farm_horse_mutable.json @@ -7,7 +7,7 @@ "city_distance": [ 5, -1 ], "city_sizes": [ 1, -1 ], "occurrences": [ 80, 100 ], - "flags": [ "CLASSIC", "MAN_MADE", "FARM", "UNIQUE" ], + "flags": [ "CLASSIC", "MAN_MADE", "FARM", "OVERMAP_UNIQUE" ], "check_for_locations_area": [ { "type": [ "forest_without_trail", "field" ], "from": [ -6, -2, 0 ], "to": [ 7, 9, 0 ] } ], "joins": [ "root_to_road", diff --git a/data/json/overmap/overmap_special/alien.json b/data/json/overmap/overmap_special/alien.json index 073e18bfc7bdc..0d78f1daade60 100644 --- a/data/json/overmap/overmap_special/alien.json +++ b/data/json/overmap/overmap_special/alien.json @@ -12,7 +12,7 @@ "city_distance": [ 0, 30 ], "city_sizes": [ 0, 16 ], "occurrences": [ 2, 100 ], - "flags": [ "EXODII", "CBM", "UNIQUE" ] + "flags": [ "EXODII", "CBM", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", diff --git a/data/json/overmap/overmap_special/campus.json b/data/json/overmap/overmap_special/campus.json index 3abdeb3a8557a..e8286c9f35ac3 100644 --- a/data/json/overmap/overmap_special/campus.json +++ b/data/json/overmap/overmap_special/campus.json @@ -125,7 +125,7 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 1, 16 ], "occurrences": [ 0, 0 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -152,7 +152,7 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 1, 16 ], "occurrences": [ 0, 0 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -195,7 +195,7 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 1, 16 ], "occurrences": [ 0, 0 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -226,7 +226,7 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 1, 16 ], "occurrences": [ 0, 0 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -249,6 +249,6 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 1, 16 ], "occurrences": [ 0, 0 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] } ] diff --git a/data/json/overmap/overmap_special/lab_modular/lab_mutagen_6_floor.json b/data/json/overmap/overmap_special/lab_modular/lab_mutagen_6_floor.json index c39586b8e693d..b607062081fa5 100644 --- a/data/json/overmap/overmap_special/lab_modular/lab_mutagen_6_floor.json +++ b/data/json/overmap/overmap_special/lab_modular/lab_mutagen_6_floor.json @@ -132,6 +132,6 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 1, 16 ], "occurrences": [ 30, 100 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] } ] diff --git a/data/json/overmap/overmap_special/oil_platform.json b/data/json/overmap/overmap_special/oil_platform.json index 1c77bbf07f65b..e53240786edcd 100644 --- a/data/json/overmap/overmap_special/oil_platform.json +++ b/data/json/overmap/overmap_special/oil_platform.json @@ -211,6 +211,6 @@ "city_distance": [ 150, 1000 ], "locations": [ "ocean_surface" ], "occurrences": [ 5, 100 ], - "flags": [ "MAN_MADE", "OCEAN", "UNIQUE" ] + "flags": [ "MAN_MADE", "OCEAN", "OVERMAP_UNIQUE" ] } ] diff --git a/data/json/overmap/overmap_special/specials.json b/data/json/overmap/overmap_special/specials.json index fcd5ecfa61fc1..4e4959b19f2e5 100644 --- a/data/json/overmap/overmap_special/specials.json +++ b/data/json/overmap/overmap_special/specials.json @@ -356,7 +356,7 @@ "city_distance": [ 25, -1 ], "city_sizes": [ 0, 12 ], "occurrences": [ 20, 100 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE", "WILDERNESS" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE", "WILDERNESS" ] }, { "type": "overmap_special", @@ -384,7 +384,7 @@ "city_distance": [ 25, -1 ], "city_sizes": [ 0, 12 ], "occurrences": [ 20, 100 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE", "WILDERNESS" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE", "WILDERNESS" ] }, { "type": "overmap_special", @@ -461,7 +461,7 @@ "locations": [ "wilderness" ], "city_distance": [ 10, -1 ], "occurrences": [ 80, 100 ], - "flags": [ "BEE", "UNIQUE", "WILDERNESS" ], + "flags": [ "BEE", "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_BEE", "population": [ 100, 120 ], "radius": [ 10, 12 ] } }, { @@ -496,7 +496,7 @@ "city_distance": [ 30, -1 ], "city_sizes": [ 0, 12 ], "occurrences": [ 10, 100 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -594,7 +594,7 @@ "locations": [ "field", "forest_without_trail" ], "city_sizes": [ 1, 12 ], "occurrences": [ 5, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -725,7 +725,7 @@ "city_distance": [ 25, -1 ], "occurrences": [ 50, 100 ], "//": "Inflated chance, effective rate ~40%", - "flags": [ "WILDERNESS", "UNIQUE", "MAN_MADE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -759,7 +759,7 @@ "locations": [ "forest" ], "city_distance": [ 25, -1 ], "occurrences": [ 20, 100 ], - "flags": [ "WILDERNESS", "UNIQUE", "MAN_MADE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -768,7 +768,7 @@ "locations": [ "forest_center" ], "city_distance": [ 10, 80 ], "occurrences": [ 75, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -799,7 +799,7 @@ "locations": [ "forest" ], "city_distance": [ 40, -1 ], "occurrences": [ 10, 100 ], - "flags": [ "WILDERNESS", "UNIQUE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -810,7 +810,7 @@ "city_distance": [ 40, -1 ], "occurrences": [ 10, 100 ], "rotate": false, - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -820,7 +820,7 @@ "locations": [ "field", "forest_without_trail" ], "city_distance": [ 10, -1 ], "occurrences": [ 2, 100 ], - "flags": [ "LAB", "UNIQUE", "MAN_MADE" ] + "flags": [ "LAB", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -834,7 +834,7 @@ "locations": [ "field", "forest_without_trail" ], "city_distance": [ 10, -1 ], "occurrences": [ 2, 100 ], - "flags": [ "ANT", "UNIQUE", "MAN_MADE" ], + "flags": [ "ANT", "OVERMAP_UNIQUE", "MAN_MADE" ], "spawns": { "group": "GROUP_ANT_SURFACE", "population": [ 1000, 2000 ], "radius": [ 10, 30 ] } }, { @@ -885,7 +885,7 @@ "city_distance": [ 15, -1 ], "priority": 1, "occurrences": [ 2, 100 ], - "flags": [ "UNIQUE", "LAB", "WILDERNESS", "MAN_MADE" ], + "flags": [ "OVERMAP_UNIQUE", "LAB", "WILDERNESS", "MAN_MADE" ], "rotate": false }, { @@ -896,7 +896,7 @@ "locations": [ "field", "forest_without_trail" ], "city_distance": [ 10, -1 ], "occurrences": [ 2, 100 ], - "flags": [ "LAB", "UNIQUE", "MAN_MADE" ] + "flags": [ "LAB", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -955,7 +955,7 @@ "locations": [ "forest" ], "city_distance": [ 20, -1 ], "occurrences": [ 5, 100 ], - "flags": [ "MILITARY", "UNIQUE", "MAN_MADE" ] + "flags": [ "MILITARY", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -964,7 +964,7 @@ "locations": [ "field", "forest_without_trail" ], "city_distance": [ 15, -1 ], "occurrences": [ 5, 100 ], - "flags": [ "MILITARY", "UNIQUE", "WILDERNESS", "MAN_MADE" ] + "flags": [ "MILITARY", "OVERMAP_UNIQUE", "WILDERNESS", "MAN_MADE" ] }, { "type": "overmap_special", @@ -976,7 +976,7 @@ "locations": [ "field", "forest_without_trail" ], "city_distance": [ 15, -1 ], "occurrences": [ 5, 100 ], - "flags": [ "MILITARY", "UNIQUE", "WILDERNESS", "MAN_MADE" ] + "flags": [ "MILITARY", "OVERMAP_UNIQUE", "WILDERNESS", "MAN_MADE" ] }, { "type": "overmap_special", @@ -996,7 +996,7 @@ "city_distance": [ 30, -1 ], "city_sizes": [ -1, 4 ], "occurrences": [ 10, 100 ], - "flags": [ "MILITARY", "UNIQUE", "MAN_MADE" ] + "flags": [ "MILITARY", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -1102,7 +1102,7 @@ "city_distance": [ 5, 25 ], "occurrences": [ 80, 100 ], "spawns": { "group": "GROUP_WASP_FORAGER", "population": [ 50, 80 ], "radius": [ 6, 20 ] }, - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -1123,7 +1123,7 @@ "city_distance": [ 5, 25 ], "occurrences": [ 80, 100 ], "spawns": { "group": "GROUP_WASP_FORAGER", "population": [ 50, 100 ], "radius": [ 6, 20 ] }, - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -1172,7 +1172,7 @@ "city_distance": [ 5, 40 ], "city_sizes": [ 4, -1 ], "occurrences": [ 50, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -1308,7 +1308,7 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 4, 12 ], "occurrences": [ 50, 100 ], - "flags": [ "CLASSIC", "LAKE", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "LAKE", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -1444,7 +1444,7 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 4, 12 ], "occurrences": [ 50, 100 ], - "flags": [ "CLASSIC", "LAKE", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "LAKE", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -1493,7 +1493,7 @@ "city_distance": [ 10, 40 ], "city_sizes": [ 4, -1 ], "occurrences": [ 2, 100 ], - "flags": [ "LAB", "UNIQUE", "MAN_MADE" ] + "flags": [ "LAB", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -1506,7 +1506,7 @@ "city_sizes": [ 0, 12 ], "occurrences": [ 33, 100 ], "rotate": false, - "flags": [ "WILDERNESS", "UNIQUE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -1526,7 +1526,7 @@ "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], "occurrences": [ 90, 100 ], - "flags": [ "FUNGAL", "UNIQUE", "WILDERNESS" ], + "flags": [ "FUNGAL", "OVERMAP_UNIQUE", "WILDERNESS" ], "rotate": false, "spawns": { "group": "GROUP_FUNGI", "population": [ 600, 1200 ], "radius": [ 30, 50 ] } }, @@ -1537,7 +1537,7 @@ "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], "occurrences": [ 90, 100 ], - "flags": [ "FUNGAL", "UNIQUE", "WILDERNESS" ], + "flags": [ "FUNGAL", "OVERMAP_UNIQUE", "WILDERNESS" ], "rotate": false, "spawns": { "group": "GROUP_FUNGI_TOWER", "population": [ 125, 175 ], "radius": [ 2, 2 ] } }, @@ -1548,7 +1548,7 @@ "locations": [ "land" ], "city_distance": [ 5, -1 ], "occurrences": [ 90, 100 ], - "flags": [ "FUNGAL", "UNIQUE", "WILDERNESS" ], + "flags": [ "FUNGAL", "OVERMAP_UNIQUE", "WILDERNESS" ], "rotate": false, "spawns": { "group": "GROUP_FUNGI_FLOWERS", "population": [ 50, 100 ], "radius": [ 2, 4 ] } }, @@ -1931,7 +1931,7 @@ "locations": [ "forest" ], "city_distance": [ 8, -1 ], "occurrences": [ 10, 100 ], - "flags": [ "WILDERNESS", "UNIQUE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -1962,7 +1962,7 @@ "city_distance": [ 15, -1 ], "city_sizes": [ 6, -1 ], "occurrences": [ 5, 100 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -2505,7 +2505,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 4, -1 ], "occurrences": [ 80, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE" ] }, { "type": "overmap_special", @@ -2525,7 +2525,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 4, -1 ], "occurrences": [ 50, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE" ] }, { "type": "overmap_special", @@ -2538,7 +2538,7 @@ "city_distance": [ 20, 60 ], "city_sizes": [ 8, -1 ], "occurrences": [ 10, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "SAFE_AT_WORLDGEN", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "WILDERNESS", "SAFE_AT_WORLDGEN", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -2560,7 +2560,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 4, -1 ], "occurrences": [ 10, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE" ] }, { "type": "overmap_special", @@ -2722,7 +2722,7 @@ "locations": [ "wilderness" ], "city_distance": [ 3, -1 ], "occurrences": [ 30, 100 ], - "flags": [ "UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE", "FARM" ] + "flags": [ "OVERMAP_UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE", "FARM" ] }, { "type": "overmap_special", @@ -2896,7 +2896,7 @@ "locations": [ "field" ], "city_distance": [ 15, -1 ], "occurrences": [ 5, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -3059,7 +3059,7 @@ "city_distance": [ 0, 10 ], "city_sizes": [ 6, -1 ], "occurrences": [ 85, 100 ], - "flags": [ "UNIQUE", "CLASSIC", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "CLASSIC", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3108,7 +3108,7 @@ "locations": [ "land" ], "city_distance": [ 15, 50 ], "occurrences": [ 60, 100 ], - "flags": [ "UNIQUE", "CLASSIC", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "CLASSIC", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3158,7 +3158,7 @@ "city_distance": [ 0, 10 ], "city_sizes": [ 6, -1 ], "occurrences": [ 70, 100 ], - "flags": [ "UNIQUE", "CLASSIC", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "CLASSIC", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3207,7 +3207,7 @@ "locations": [ "land" ], "city_distance": [ 15, 50 ], "occurrences": [ 30, 100 ], - "flags": [ "UNIQUE", "CLASSIC", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "CLASSIC", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3255,7 +3255,7 @@ "locations": [ "land" ], "city_distance": [ 20, 60 ], "occurrences": [ 15, 100 ], - "flags": [ "UNIQUE", "CLASSIC", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "CLASSIC", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3379,7 +3379,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 4, -1 ], "occurrences": [ 50, 100 ], - "flags": [ "CLASSIC", "URBAN", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "URBAN", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3576,7 +3576,7 @@ "city_distance": [ 20, 60 ], "city_sizes": [ 8, -1 ], "occurrences": [ 1, 5 ], - "flags": [ "UNIQUE", "CLASSIC", "WILDERNESS", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "CLASSIC", "WILDERNESS", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3699,7 +3699,7 @@ "city_sizes": [ 1, 16 ], "occurrences": [ 33, 100 ], "rotate": false, - "flags": [ "UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE", "GLOBALLY_UNIQUE" ] + "flags": [ "OVERMAP_UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE", "GLOBALLY_UNIQUE" ] }, { "type": "overmap_special", @@ -3782,7 +3782,7 @@ "locations": [ "land" ], "city_distance": [ 5, -1 ], "occurrences": [ 50, 100 ], - "flags": [ "LAB", "MAN_MADE", "UNIQUE" ] + "flags": [ "LAB", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -3799,7 +3799,7 @@ "city_distance": [ 1, -1 ], "occurrences": [ 2, 2 ], "rotate": false, - "flags": [ "UNIQUE" ] + "flags": [ "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -3845,7 +3845,7 @@ "city_distance": [ 5, -1 ], "connections": [ { "point": [ 2, -2, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 2, -1, -1 ] } ], "occurrences": [ 20, 100 ], - "flags": [ "LAB", "UNIQUE", "MAN_MADE" ] + "flags": [ "LAB", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3895,7 +3895,7 @@ "locations": [ "field", "forest_without_trail" ], "city_distance": [ 10, -1 ], "occurrences": [ 30, 100 ], - "flags": [ "LAB", "UNIQUE", "MAN_MADE" ] + "flags": [ "LAB", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -3947,7 +3947,7 @@ "city_distance": [ 10, -1 ], "occurrences": [ 30, 100 ], "rotate": false, - "flags": [ "LAB", "UNIQUE", "MAN_MADE" ] + "flags": [ "LAB", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -4056,7 +4056,7 @@ "locations": [ "land" ], "city_distance": [ 5, -1 ], "occurrences": [ 50, 100 ], - "flags": [ "LAB", "MAN_MADE", "UNIQUE" ] + "flags": [ "LAB", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -4076,7 +4076,7 @@ "city_distance": [ 10, -1 ], "rotate": false, "occurrences": [ 10, 100 ], - "flags": [ "LAB", "UNIQUE", "MAN_MADE" ] + "flags": [ "LAB", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -4088,7 +4088,7 @@ "locations": [ "forest" ], "city_distance": [ 25, -1 ], "occurrences": [ 40, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE", "WILDERNESS" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE", "WILDERNESS" ] }, { "type": "overmap_special", @@ -4097,7 +4097,7 @@ "locations": [ "field" ], "city_distance": [ 25, -1 ], "occurrences": [ 40, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE", "WILDERNESS" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE", "WILDERNESS" ] }, { "type": "overmap_special", @@ -4109,7 +4109,7 @@ "locations": [ "wilderness", "road", "agricultural" ], "city_distance": [ 15, -1 ], "occurrences": [ 10, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -4186,7 +4186,7 @@ "city_sizes": [ 6, -1 ], "occurrences": [ 40, 100 ], "//": "Inflated chance, in effect 15%", - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -4349,7 +4349,7 @@ "city_distance": [ 10, 120 ], "city_sizes": [ 4, -1 ], "occurrences": [ 30, 100 ], - "flags": [ "UNIQUE", "LAB", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "LAB", "MAN_MADE" ] }, { "type": "overmap_special", @@ -4387,7 +4387,7 @@ "city_sizes": [ 6, -1 ], "occurrences": [ 70, 100 ], "//": "Inflated chance, effective rate ~40%", - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -4426,7 +4426,7 @@ "city_distance": [ 5, 40 ], "city_sizes": [ 8, -1 ], "occurrences": [ 50, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -5338,7 +5338,7 @@ "locations": [ "wilderness" ], "city_distance": [ 10, -1 ], "occurrences": [ 80, 100 ], - "flags": [ "MI-GO", "UNIQUE", "WILDERNESS" ], + "flags": [ "MI-GO", "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_MI-GO_CAMP_OM", "population": [ 20, 50 ], "radius": [ 2, 30 ] } }, { @@ -5383,7 +5383,7 @@ "locations": [ "wilderness" ], "city_distance": [ 10, -1 ], "occurrences": [ 20, 100 ], - "flags": [ "MI-GO", "UNIQUE", "WILDERNESS" ] + "flags": [ "MI-GO", "OVERMAP_UNIQUE", "WILDERNESS" ] }, { "type": "overmap_special", @@ -6330,7 +6330,7 @@ "priority": 1, "//": "Inflated chance, effective rate ~19% (n=726)", "connections": [ { "point": [ -1, 15, 0 ], "terrain": "road", "connection": "local_road" } ], - "flags": [ "FARM", "UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE" ] + "flags": [ "FARM", "OVERMAP_UNIQUE", "SAFE_AT_WORLDGEN", "MAN_MADE" ] }, { "id": "airliner_crashed", @@ -6375,7 +6375,7 @@ "locations": [ "land" ], "city_distance": [ 6, -1 ], "occurrences": [ 30, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -6449,7 +6449,7 @@ "city_sizes": [ 4, -1 ], "occurrences": [ 75, 100 ], "//": "Inflated chance, effective rate ~55%", - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -6470,7 +6470,7 @@ "city_distance": [ 10, 30 ], "city_sizes": [ 4, -1 ], "occurrences": [ 30, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -6495,7 +6495,7 @@ "city_distance": [ 10, 30 ], "city_sizes": [ 4, -1 ], "occurrences": [ 30, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -6545,7 +6545,7 @@ "city_sizes": [ 6, -1 ], "occurrences": [ 50, 100 ], "//": "Inflated chance, effective rate ~30%", - "flags": [ "CLASSIC", "URBAN", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "URBAN", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -6569,7 +6569,7 @@ "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 0, 0, 0 ] } ], "city_distance": [ 10, -1 ], "occurrences": [ 5, 100 ], - "flags": [ "CLASSIC", "MILITARY", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "MILITARY", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -6856,7 +6856,7 @@ "city_distance": [ 5, 40 ], "city_sizes": [ 8, -1 ], "occurrences": [ 50, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -6921,7 +6921,7 @@ "city_distance": [ 1, 40 ], "city_sizes": [ 6, -1 ], "occurrences": [ 5, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -6981,7 +6981,7 @@ "city_distance": [ 0, 100 ], "city_sizes": [ 0, 12 ], "occurrences": [ 5, 100 ], - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE", "WILDERNESS" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE", "WILDERNESS" ] }, { "type": "overmap_special", @@ -7078,7 +7078,7 @@ "//": "Low chance to find a matching location, so always try to place it", "occurrences": [ 99, 100 ], "priority": 1, - "flags": [ "LAB", "UNIQUE", "MAN_MADE" ] + "flags": [ "LAB", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -7121,7 +7121,7 @@ "city_sizes": [ 1, 12 ], "occurrences": [ 5, 100 ], "priority": -1, - "flags": [ "CLASSIC", "UNIQUE", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", @@ -7381,7 +7381,7 @@ "city_distance": [ -1, 5 ], "city_sizes": [ 5, -1 ], "occurrences": [ 20, 100 ], - "flags": [ "UNIQUE", "SIDEWALK", "GENERIC_LOOT", "URBAN", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "SIDEWALK", "GENERIC_LOOT", "URBAN", "MAN_MADE" ] }, { "type": "overmap_special", @@ -7405,7 +7405,7 @@ ], "locations": [ "field" ], "city_distance": [ 5, 40 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -7429,7 +7429,7 @@ ], "locations": [ "field" ], "city_distance": [ 5, 40 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -7538,7 +7538,7 @@ "locations": [ "land" ], "city_distance": [ 10, 40 ], "city_sizes": [ 5, -1 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index 99c4a568720f9..b4ebf983a6434 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -967,13 +967,13 @@ "communitygarden_3": 75, "publicgarden": 100, "publicgarden_2": 100, - "cathedral": 10, + "cathedral": 50, "football_field": 25, "baseball_field": 50, "botanical_garden": 100, "zoo": 25, - "stadium": 25, - "stadium_football": 25, + "stadium": 50, + "stadium_football": 50, "convention_center": 10, "cemetery_city": 50, "public_pond_city": 50, @@ -1177,19 +1177,19 @@ "s_petstore": 100, "s_petstore_1": 100, "s_petstore_2": 100, - "megastore": 150, + "megastore": 250, "hotel_1": 75, "hotel_2": 75, "hotel_3": 75, - "hospital": 175, - "urban_35_hospital": 175, + "hospital": 250, + "urban_35_hospital": 200, "public_works": 200, "office_tower": 150, "office_tower_2": 150, "office_skyscraper": 300, "office_tower_large": 300, "office_tower_hiddenlab": 50, - "mall": 100, + "mall": 200, "home_improvement_superstore_new": 150, "lumberyard": 75, "landscaping_supply_co": 150, diff --git a/data/mods/Aftershock/maps/overmap_specials.json b/data/mods/Aftershock/maps/overmap_specials.json index a693bc18e471c..5a54eb138b4bb 100644 --- a/data/mods/Aftershock/maps/overmap_specials.json +++ b/data/mods/Aftershock/maps/overmap_specials.json @@ -167,7 +167,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 12 ], "occurrences": [ 0, 0 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "overmap_special", diff --git a/data/mods/DinoMod/overmap/overmap_specials.json b/data/mods/DinoMod/overmap/overmap_specials.json index d3b166556cf81..35e07875b2ce7 100644 --- a/data/mods/DinoMod/overmap/overmap_specials.json +++ b/data/mods/DinoMod/overmap/overmap_specials.json @@ -61,7 +61,7 @@ "locations": [ "wilderness" ], "city_distance": [ 10, -1 ], "occurrences": [ 30, 100 ], - "flags": [ "LAB", "UNIQUE" ], + "flags": [ "LAB", "OVERMAP_UNIQUE" ], "rotate": false }, { diff --git a/data/mods/Magiclysm/worldgen/overmap_specials.json b/data/mods/Magiclysm/worldgen/overmap_specials.json index 9baf26748c8e0..8ba75d9e858f3 100644 --- a/data/mods/Magiclysm/worldgen/overmap_specials.json +++ b/data/mods/Magiclysm/worldgen/overmap_specials.json @@ -239,7 +239,7 @@ "city_sizes": [ 0, 20 ], "occurrences": [ 1, 2 ], "spawns": { "group": "GROUP_MAGIC_FIELD", "population": [ 2, 15 ], "radius": [ 1, 3 ] }, - "flags": [ "UNIQUE" ] + "flags": [ "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -259,7 +259,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 66, 100 ], - "flags": [ "UNIQUE" ] + "flags": [ "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", diff --git a/data/mods/MindOverMatter/overmap/overmap_specials.json b/data/mods/MindOverMatter/overmap/overmap_specials.json index c89964e9d8dc1..9562e9beb92b1 100644 --- a/data/mods/MindOverMatter/overmap/overmap_specials.json +++ b/data/mods/MindOverMatter/overmap/overmap_specials.json @@ -169,7 +169,7 @@ "city_distance": [ 10, 120 ], "city_sizes": [ 4, -1 ], "occurrences": [ 30, 100 ], - "flags": [ "UNIQUE", "LAB", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "LAB", "MAN_MADE" ] }, { "type": "overmap_special", diff --git a/data/mods/No_Hope/overmap/overmap_specials.json b/data/mods/No_Hope/overmap/overmap_specials.json index d8f54ec86def1..5c2e9a1440d62 100644 --- a/data/mods/No_Hope/overmap/overmap_specials.json +++ b/data/mods/No_Hope/overmap/overmap_specials.json @@ -12,7 +12,7 @@ "city_distance": [ 25, -1 ], "city_sizes": [ 0, 12 ], "occurrences": [ 15, 100 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -26,7 +26,7 @@ "city_distance": [ 25, -1 ], "city_sizes": [ 0, 12 ], "occurrences": [ 5, 100 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "//": "Military base is grossly unbalanced gameplay-wise, so until it gets some work done on this matter, I'm removing it from the game", @@ -396,6 +396,6 @@ "locations": [ "wilderness" ], "city_distance": [ 20, -1 ], "occurrences": [ 20, 100 ], - "flags": [ "UNIQUE" ] + "flags": [ "OVERMAP_UNIQUE" ] } ] diff --git a/data/mods/TEST_DATA/overmap_specials.json b/data/mods/TEST_DATA/overmap_specials.json index c00234fe1fda6..c2266a24c5e98 100644 --- a/data/mods/TEST_DATA/overmap_specials.json +++ b/data/mods/TEST_DATA/overmap_specials.json @@ -6,7 +6,7 @@ "locations": [ "subterranean_empty" ], "city_distance": [ 10, -1 ], "occurrences": [ 80, 100 ], - "flags": [ "ANT", "UNIQUE", "CLASSIC", "WILDERNESS" ], + "flags": [ "ANT", "OVERMAP_UNIQUE", "CLASSIC", "WILDERNESS" ], "check_for_locations": [ [ [ 0, 0, 0 ], [ "land" ] ], [ [ 0, 0, -1 ], [ "subterranean_empty" ] ], diff --git a/data/mods/TropiCataclysm/overmap/overmap_mutable/termitemound.json b/data/mods/TropiCataclysm/overmap/overmap_mutable/termitemound.json index eac69811c159c..0012b01f03776 100644 --- a/data/mods/TropiCataclysm/overmap/overmap_mutable/termitemound.json +++ b/data/mods/TropiCataclysm/overmap/overmap_mutable/termitemound.json @@ -12,7 +12,7 @@ "locations": [ "subterranean_empty" ], "city_distance": [ 10, -1 ], "occurrences": [ 80, 100 ], - "flags": [ "UNIQUE", "CLASSIC", "WILDERNESS" ], + "flags": [ "OVERMAP_UNIQUE", "CLASSIC", "WILDERNESS" ], "spawns": { "group": "GROUP_TERMITE_SURFACE", "population": [ 1000, 2000 ], "radius": [ 10, 30 ] }, "check_for_locations": [ [ [ 0, 0, 0 ], [ "land" ] ], diff --git a/data/mods/TropiCataclysm/overmap/overmap_special/specials.json b/data/mods/TropiCataclysm/overmap/overmap_special/specials.json index 19b5f1c7ae662..43b06725b0ce2 100644 --- a/data/mods/TropiCataclysm/overmap/overmap_special/specials.json +++ b/data/mods/TropiCataclysm/overmap/overmap_special/specials.json @@ -6,7 +6,7 @@ "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], "occurrences": [ 90, 100 ], - "flags": [ "TRIFFID", "UNIQUE" ], + "flags": [ "TRIFFID", "OVERMAP_UNIQUE" ], "rotate": false, "spawns": { "group": "GROUP_TRIFFID_OUTER", "population": [ 125, 175 ], "radius": [ 2, 2 ] } }, @@ -17,7 +17,7 @@ "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], "occurrences": [ 90, 100 ], - "flags": [ "TRIFFID", "UNIQUE" ], + "flags": [ "TRIFFID", "OVERMAP_UNIQUE" ], "rotate": false, "spawns": { "group": "GROUP_TRIFFID_OUTER", "population": [ 100, 150 ], "radius": [ 2, 2 ] } }, @@ -28,7 +28,7 @@ "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], "occurrences": [ 90, 100 ], - "flags": [ "NETHER", "UNIQUE" ], + "flags": [ "NETHER", "OVERMAP_UNIQUE" ], "rotate": false, "spawns": { "group": "GROUP_ALIEN_REEF", "population": [ 100, 150 ], "radius": [ 2, 2 ] } } diff --git a/data/mods/Xedra_Evolved/mapgen/overmap_special.json b/data/mods/Xedra_Evolved/mapgen/overmap_special.json index d03bc0cdd302c..f1941ed21857d 100644 --- a/data/mods/Xedra_Evolved/mapgen/overmap_special.json +++ b/data/mods/Xedra_Evolved/mapgen/overmap_special.json @@ -130,7 +130,7 @@ "city_distance": [ 5, -1 ], "city_sizes": [ 10, -1 ], "occurrences": [ 15, 100 ], - "flags": [ "UNIQUE", "MAN_MADE" ] + "flags": [ "OVERMAP_UNIQUE", "MAN_MADE" ] }, { "type": "city_building", @@ -181,7 +181,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 5, 100 ], - "flags": [ "UNIQUE", "WILDERNESS" ], + "flags": [ "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_GENIUS_IERDE", "population": [ 10, 30 ], "radius": [ 1, 3 ] } }, { @@ -201,7 +201,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 5, 100 ], - "flags": [ "UNIQUE", "WILDERNESS" ], + "flags": [ "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_GENIUS_ARVORE", "population": [ 10, 30 ], "radius": [ 1, 3 ] } }, { @@ -221,7 +221,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 5, 100 ], - "flags": [ "UNIQUE", "WILDERNESS" ], + "flags": [ "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_GENIUS_UNDINE", "population": [ 10, 30 ], "radius": [ 1, 3 ] } }, { @@ -241,7 +241,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 5, 100 ], - "flags": [ "UNIQUE", "WILDERNESS" ], + "flags": [ "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_GENIUS_SALAMANDER", "population": [ 10, 30 ], "radius": [ 1, 3 ] } }, { @@ -261,7 +261,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 5, 100 ], - "flags": [ "UNIQUE", "WILDERNESS" ], + "flags": [ "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_GENIUS_SYLPH", "population": [ 10, 30 ], "radius": [ 1, 3 ] } }, { @@ -281,7 +281,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 5, 100 ], - "flags": [ "UNIQUE", "WILDERNESS" ], + "flags": [ "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_GENIUS_HOMULLUS", "population": [ 10, 30 ], "radius": [ 1, 3 ] } }, { @@ -302,7 +302,7 @@ "city_distance": [ 30, -1 ], "city_sizes": [ 0, 12 ], "occurrences": [ 5, 100 ], - "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE" ] + "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -421,7 +421,7 @@ "city_distance": [ 40, -1 ], "city_sizes": [ 0, 0 ], "occurrences": [ 66, 100 ], - "flags": [ "CLASSIC", "UNIQUE" ], + "flags": [ "CLASSIC", "OVERMAP_UNIQUE" ], "spawns": { "group": "GROUP_GENIUS_ARVORE", "population": [ 150, 500 ], "radius": [ 5, 30 ] } }, { @@ -444,6 +444,6 @@ "city_distance": [ 30, -1 ], "city_sizes": [ 0, 12 ], "occurrences": [ 66, 100 ], - "flags": [ "CLASSIC", "UNIQUE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE" ] } ] diff --git a/data/mods/innawood/overmap/specials_kept.json b/data/mods/innawood/overmap/specials_kept.json index 8893446f6fda5..e82841c283548 100644 --- a/data/mods/innawood/overmap/specials_kept.json +++ b/data/mods/innawood/overmap/specials_kept.json @@ -13,7 +13,7 @@ "locations": [ "forest" ], "city_distance": [ 40, -1 ], "occurrences": [ 10, 100 ], - "flags": [ "WILDERNESS", "UNIQUE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -23,7 +23,7 @@ "city_distance": [ 40, -1 ], "occurrences": [ 10, 100 ], "rotate": false, - "flags": [ "WILDERNESS", "UNIQUE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -36,7 +36,7 @@ "city_sizes": [ 0, 12 ], "occurrences": [ 33, 100 ], "rotate": false, - "flags": [ "WILDERNESS", "UNIQUE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -74,7 +74,7 @@ "locations": [ "forest" ], "city_distance": [ 8, -1 ], "occurrences": [ 10, 100 ], - "flags": [ "WILDERNESS", "UNIQUE" ] + "flags": [ "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", @@ -104,7 +104,7 @@ "locations": [ "wilderness" ], "city_distance": [ 15, -1 ], "occurrences": [ 10, 100 ], - "flags": [ "CLASSIC", "WILDERNESS", "UNIQUE" ] + "flags": [ "CLASSIC", "WILDERNESS", "OVERMAP_UNIQUE" ] }, { "type": "overmap_special", diff --git a/data/mods/railroads/overmap/overmap_special/specials.json b/data/mods/railroads/overmap/overmap_special/specials.json index e2b0822135e9d..4126876935b0d 100644 --- a/data/mods/railroads/overmap/overmap_special/specials.json +++ b/data/mods/railroads/overmap/overmap_special/specials.json @@ -38,6 +38,6 @@ "city_sizes": [ 3, 12 ], "occurrences": [ 50, 100 ], "priority": 1, - "flags": [ "CLASSIC", "UNIQUE", "URBAN", "MAN_MADE" ] + "flags": [ "CLASSIC", "OVERMAP_UNIQUE", "URBAN", "MAN_MADE" ] } ] diff --git a/doc/JSON_FLAGS.md b/doc/JSON_FLAGS.md index 0c6cd9afcb1bb..c903be0a9858a 100644 --- a/doc/JSON_FLAGS.md +++ b/doc/JSON_FLAGS.md @@ -1267,7 +1267,7 @@ See [Character](#character) - ```FARM``` - ```FUNGAL``` Location is related to fungi. Used to classify location. - ```GLOBALLY_UNIQUE``` Location will only occur once per world. `occurrences` is overridden to define a percent chance (e.g. `"occurrences" : [75, 100]` is 75%). -- ```UNIQUE``` Location is unique and will only occur once per overmap. `occurrences` is overridden to define a percent chance (e.g. `"occurrences" : [75, 100]` is 75%). +- ```OVERMAP_UNIQUE``` Location will only occur once per overmap. `occurrences` is overridden to define a percent chance (e.g. `"occurrences" : [75, 100]` is 75%). - ```LAKE``` Location is placed on a lake and will be ignored for placement if the overmap doesn't contain any lake terrain. - ```MAN_MADE``` For location, created by human. Used by the Innawood mod. - ```MI-GO``` Location is related to mi-go. @@ -1276,6 +1276,10 @@ See [Character](#character) - ```URBAN``` - ```WILDERNESS``` Locations that have no road connection. +#### City buildings + +- ```CITY_UNIQUE``` Location will only occur once per city. + ### Overmap terrains - ```KNOWN_DOWN``` There's a known way down. diff --git a/src/city.cpp b/src/city.cpp index 1fa3f21e6010f..fdb4c4298737f 100644 --- a/src/city.cpp +++ b/src/city.cpp @@ -101,4 +101,3 @@ int city::get_distance_from( const tripoint_om_omt &p ) const { return std::max( static_cast( trig_dist( p, tripoint_om_omt{ pos, 0 } ) ) - size, 0 ); } - diff --git a/src/overmap.cpp b/src/overmap.cpp index a0fe9b06bdb48..6d91e5beeecb0 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -522,7 +522,7 @@ void overmap_specials::check_consistency() static_cast< size_t >( 0 ), []( size_t sum, const overmap_special & elem ) { size_t min_occur = static_cast( std::max( elem.get_constraints().occurrences.min, 0 ) ); - const bool unique = elem.has_flag( "UNIQUE" ) || elem.has_flag( "GLOBALLY_UNIQUE" ); + const bool unique = elem.has_flag( "OVERMAP_UNIQUE" ) || elem.has_flag( "GLOBALLY_UNIQUE" ); return sum + ( unique ? 0 : min_occur ); } ); @@ -5627,14 +5627,17 @@ void overmap::place_cities() const om_direction::type start_dir = om_direction::random(); om_direction::type cur_dir = start_dir; + // Track placed CITY_UNIQUE buildings + std::unordered_set placed_unique_buildings; do { - build_city_street( local_road, tmp.pos, tmp.size, cur_dir, tmp ); + build_city_street( local_road, tmp.pos, tmp.size, cur_dir, tmp, placed_unique_buildings ); } while( ( cur_dir = om_direction::turn_right( cur_dir ) ) != start_dir ); } } } -overmap_special_id overmap::pick_random_building_to_place( int town_dist, int town_size ) const +overmap_special_id overmap::pick_random_building_to_place( int town_dist, int town_size, + const std::unordered_set &placed_unique_buildings ) const { const city_settings &city_spec = settings->city_spec; int shop_radius = city_spec.shop_radius; @@ -5665,14 +5668,23 @@ overmap_special_id overmap::pick_random_building_to_place( int town_dist, int to }; auto pick_building = building_type_to_pick(); overmap_special_id ret; + bool existing_unique; do { ret = pick_building( city_spec ); - } while( !ret->get_constraints().city_size.contains( town_size ) ); + // TODO: Add OVERMAP_UNIQUE handling, doesn't seem to be kept track of in an ideal way atm + if( ret->has_flag( "CITY_UNIQUE" ) ) { + existing_unique = placed_unique_buildings.find( ret ) != placed_unique_buildings.end(); + } else if( ret->has_flag( "GLOBALLY_UNIQUE" ) ) { + existing_unique = overmap_buffer.contains_unique_special( ret ); + } else { + existing_unique = false; + } + } while( existing_unique || !ret->get_constraints().city_size.contains( town_size ) ); return ret; } -void overmap::place_building( const tripoint_om_omt &p, om_direction::type dir, - const city &town ) +void overmap::place_building( const tripoint_om_omt &p, om_direction::type dir, const city &town, + std::unordered_set &placed_unique_buildings ) { const tripoint_om_omt building_pos = p + om_direction::displace( dir ); const om_direction::type building_dir = om_direction::opposite( dir ); @@ -5680,17 +5692,21 @@ void overmap::place_building( const tripoint_om_omt &p, om_direction::type dir, const int town_dist = ( trig_dist( building_pos.xy(), town.pos ) * 100 ) / std::max( town.size, 1 ); for( size_t retries = 10; retries > 0; --retries ) { - const overmap_special_id building_tid = pick_random_building_to_place( town_dist, town.size ); + const overmap_special_id building_tid = pick_random_building_to_place( town_dist, town.size, + placed_unique_buildings ); if( can_place_special( *building_tid, building_pos, building_dir, false ) ) { place_special( *building_tid, building_pos, building_dir, town, false, false ); + if( building_tid->has_flag( "CITY_UNIQUE" ) ) { + placed_unique_buildings.emplace( building_tid ); + } break; } } } void overmap::build_city_street( - const overmap_connection &connection, const point_om_omt &p, int cs, - om_direction::type dir, const city &town, int block_width ) + const overmap_connection &connection, const point_om_omt &p, int cs, om_direction::type dir, + const city &town, std::unordered_set &placed_unique_buildings, int block_width ) { int c = cs; int croad = cs; @@ -5732,10 +5748,10 @@ void overmap::build_city_street( } build_city_street( connection, iter->pos, left, om_direction::turn_left( dir ), - town, new_width ); + town, placed_unique_buildings, new_width ); build_city_street( connection, iter->pos, right, om_direction::turn_right( dir ), - town, new_width ); + town, placed_unique_buildings, new_width ); const oter_id &oter = ter( rp ); // TODO: Get rid of the hardcoded terrain ids. @@ -5745,10 +5761,10 @@ void overmap::build_city_street( } if( !one_in( BUILDINGCHANCE ) ) { - place_building( rp, om_direction::turn_left( dir ), town ); + place_building( rp, om_direction::turn_left( dir ), town, placed_unique_buildings ); } if( !one_in( BUILDINGCHANCE ) ) { - place_building( rp, om_direction::turn_right( dir ), town ); + place_building( rp, om_direction::turn_right( dir ), town, placed_unique_buildings ); } } @@ -5759,10 +5775,10 @@ void overmap::build_city_street( if( cs >= 2 && c == 0 ) { const auto &last_node = street_path.nodes.back(); const om_direction::type rnd_dir = om_direction::turn_random( dir ); - build_city_street( connection, last_node.pos, cs, rnd_dir, town ); + build_city_street( connection, last_node.pos, cs, rnd_dir, town, placed_unique_buildings ); if( one_in( 5 ) ) { build_city_street( connection, last_node.pos, cs, om_direction::opposite( rnd_dir ), - town, new_width ); + town, placed_unique_buildings, new_width ); } } } @@ -6704,12 +6720,13 @@ std::vector overmap::place_special( if( !force ) { cata_assert( can_place_special( special, p, dir, must_be_unexplored ) ); } + if( special.has_flag( "GLOBALLY_UNIQUE" ) ) { overmap_buffer.add_unique_special( special.id ); - } - if( special.has_flag( "UNIQUE" ) ) { + } else if( special.has_flag( "OVERMAP_UNIQUE" ) ) { overmap_buffer.log_unique_special( special.id ); } + // CITY_UNIQUE is handled in place_building() const bool is_safe_zone = special.has_flag( "SAFE_AT_WORLDGEN" ); @@ -6881,7 +6898,7 @@ void overmap::place_specials( overmap_special_batch &enabled_specials ) continue; } - const bool unique = iter->special_details->has_flag( "UNIQUE" ); + const bool unique = iter->special_details->has_flag( "OVERMAP_UNIQUE" ); const bool globally_unique = iter->special_details->has_flag( "GLOBALLY_UNIQUE" ); if( unique || globally_unique ) { const overmap_special_id &id = iter->special_details->id; diff --git a/src/overmap.h b/src/overmap.h index c2127fed5177d..3ab8fc824c087 100644 --- a/src/overmap.h +++ b/src/overmap.h @@ -452,7 +452,8 @@ class overmap const overmap *south, const overmap *west ); // City Building - overmap_special_id pick_random_building_to_place( int town_dist, int town_size ) const; + overmap_special_id pick_random_building_to_place( int town_dist, int town_size, + const std::unordered_set &placed_unique_buildings ) const; // urbanity and forestosity are biome stats that can be used to trigger changes in biome. // NOLINTNEXTLINE(cata-serialize) @@ -467,10 +468,12 @@ class overmap void calculate_forestosity(); void place_cities(); - void place_building( const tripoint_om_omt &p, om_direction::type dir, const city &town ); + void place_building( const tripoint_om_omt &p, om_direction::type dir, const city &town, + std::unordered_set &placed_unique_buildings ); void build_city_street( const overmap_connection &connection, const point_om_omt &p, int cs, - om_direction::type dir, const city &town, int block_width = 2 ); + om_direction::type dir, const city &town, + std::unordered_set &placed_unique_buildings, int block_width = 2 ); bool build_lab( const tripoint_om_omt &p, int s, std::vector *lab_train_points, const std::string &prefix, int train_odds ); bool build_slimepit( const tripoint_om_omt &origin, int s );