From b73b4e6d926c3f40a180fa24ede91206b8d4ed9e Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 6 Jun 2026 10:22:14 +0200 Subject: [PATCH] feat(simulation): Layer-1 water bearing + D-234 waterfront rule (#957) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Close the last D-234 piece — terrain water-direction extraction wired through to founding orientation and the quarter waterfront rule: - Layer 1: TerrainAnalysis::water_bearing — 8-octant integer bearing toward the nearest water from the water_dist gradient (D-010, no atan2). Stored on GeographicAttractor.water_bearing (360 = none). - #956 founding orientation: coastal/river settlements now get a real water-facing bearing (the anchoring attractor's), replacing the 0 stub. - #957 waterfront rule (D-234b): the water-facing quarter edge (from the settlement's Coastal founding orientation) drops its block setback to 0 so buildings present flush to the quay (dock-orthogonal). Typed Edge + coastal_edge + per-block gating. Golden + atlas_response fixture rebaked (additive water_bearing field only). 8 new tests. All integer-deterministic (D-010). Pending: the waterfront rule reads context.founding_orientation, which city_context_reader still stubs to Cardinal — real per-settlement orientation reaches quarter generation once the Layer-3 placement -> Layer-4 GenerateSkeleton dispatch is wired (the remaining cross-layer integration). Co-Authored-By: Claude Opus 4.8 (1M context) --- .../msgpack/atlas_response_ready.msgpack | Bin 344 -> 359 bytes server/src/atlas/attractor_matching.rs | 19 +- server/src/atlas/features.rs | 64 ++ server/src/atlas/layer1.rs | 3 + server/src/atlas/skeleton_gen.rs | 111 ++- server/src/simulation/generator.rs | 6 + server/tests/gen_fixtures.rs | 1 + server/tests/golden/cascade_layer1.json | 768 ++++++++++++------ 8 files changed, 704 insertions(+), 268 deletions(-) diff --git a/client/tests/fixtures/msgpack/atlas_response_ready.msgpack b/client/tests/fixtures/msgpack/atlas_response_ready.msgpack index fe677a95e6d8a5d39365328176b2c0860bf073cf..bc1ba44c8f4ee4ec2974f71318ee4065ea0bd614 100644 GIT binary patch delta 47 zcmcb?^qgtJZN|2VcQTaMmM4~^7R4u}CKhGprAIAGFUm}bFF(t~0AXdEWn=&V`*aiG delta 32 kcmaFPbc1QaZN}D#cQQnlr59zU#Fw9CVt}wR&N4Cp0PoxlZ~y=R diff --git a/server/src/atlas/attractor_matching.rs b/server/src/atlas/attractor_matching.rs index 34d61a7c8..3488130c2 100644 --- a/server/src/atlas/attractor_matching.rs +++ b/server/src/atlas/attractor_matching.rs @@ -17,6 +17,7 @@ use tracing::{error, warn}; +use crate::atlas::features::NO_WATER_BEARING; use crate::seed::{splitmix64, SeedChain}; use crate::simulation::generator::{ AttractorType, CompatibilityMatrix, GeographicAttractor, SettlementClass, SubBiomeVariant, @@ -265,6 +266,7 @@ fn synthetic_attractor(placed: &[CityPlacement], grid_w: u32, grid_h: u32) -> Ge strength: 50, sub_biome: SubBiomeVariant::TemperateGrassland, terrain_modification_cost: 100, + water_bearing: NO_WATER_BEARING, // inland synthetic — no water direction } } @@ -282,6 +284,7 @@ fn synthetic_attractor(placed: &[CityPlacement], grid_w: u32, grid_h: u32) -> Ge /// grids vary per seed (D-213) while staying deterministic (D-010). fn city_character( attractor_type: AttractorType, + water_bearing: u16, economic_role: &str, territorial_status: &TerritorialStatus, city_id: u64, @@ -290,9 +293,15 @@ fn city_character( let archetype = political_archetype(territorial_status, economic_role); let pattern = arrangement_pattern(&archetype, economic_role); let free_bearing = (splitmix64(seed.seed() ^ city_id) % 360) as u16; - // river_bearing / coastal_facing are 0 until Layer 1 exposes terrain bearings - // (D-209 follow-on); free_bearing seeds the pioneer/open-terrain case. - let orientation = founding_orientation(&attractor_type, territorial_status, 0, 0, free_bearing); + // Layer-1 water bearing (#957) drives both the coastal facing and the river + // bearing (the anchoring attractor's direction-to-water); 360 = none → 0. + let wb = if water_bearing >= 360 { + 0 + } else { + water_bearing + }; + let orientation = + founding_orientation(&attractor_type, territorial_status, wb, wb, free_bearing); (archetype, pattern, orientation) } @@ -354,6 +363,7 @@ pub fn match_cities( flag_mismatch(&cities[ci].name, score); let (archetype, pattern, orientation) = city_character( attractors[ai].attractor_type, + attractors[ai].water_bearing, &cities[ci].economic_role, territorial_status, cities[ci].city_id, @@ -420,6 +430,7 @@ pub fn match_cities( flag_mismatch(&cities[ci].name, score); let (archetype, pattern, orientation) = city_character( attractors[ai].attractor_type, + attractors[ai].water_bearing, &cities[ci].economic_role, territorial_status, cities[ci].city_id, @@ -453,6 +464,7 @@ pub fn match_cities( flag_mismatch(&city.name, score); let (archetype, pattern, orientation) = city_character( AttractorType::PlainCenter, + synthetic.water_bearing, &city.economic_role, territorial_status, city.city_id, @@ -659,6 +671,7 @@ mod tests { strength, sub_biome: SubBiomeVariant::TemperateGrassland, terrain_modification_cost: 100, + water_bearing: NO_WATER_BEARING, } } diff --git a/server/src/atlas/features.rs b/server/src/atlas/features.rs index 6ad45f6ab..1897a08f6 100644 --- a/server/src/atlas/features.rs +++ b/server/src/atlas/features.rs @@ -122,6 +122,70 @@ impl TerrainAnalysis { pub fn is_ocean(&self, r: usize, c: usize) -> bool { self.ocean_mask[idx(r, c, self.w)] } + + /// Compass bearing toward the nearest water from cell `(r, c)`, quantized to + /// 8 octants (0=N, 45=NE … 315=NW); `360` = "no water in range" (#957, D-234). + /// + /// Reads the `water_dist` field's local gradient — the 8-neighbour with the + /// smallest distance-to-water points toward water. Integer-only (no `atan2`) + /// for D-010 determinism. Returns `360` when the cell is itself water or no + /// neighbour is closer to water (flat/inland). + pub fn water_bearing(&self, r: usize, c: usize) -> u16 { + let here = self.water_dist[idx(r, c, self.w)]; + if here == 0 || here >= WATER_DIST_CAP { + return NO_WATER_BEARING; // on water, or no water within range + } + let mut best = here; + let mut bdir = (0i32, 0i32); + for &(dr, dc) in &NB8 { + let nr = r as i32 + dr; + if nr < 0 || nr >= self.h as i32 { + continue; + } + let nc = wrap_col(c as i32 + dc, self.w as i32); + let nd = self.water_dist[idx(nr as usize, nc, self.w)]; + if nd < best { + best = nd; + bdir = (dr, dc); + } + } + if bdir == (0, 0) { + NO_WATER_BEARING + } else { + octant_bearing(bdir.0, bdir.1) + } + } +} + +/// Sentinel for [`TerrainAnalysis::water_bearing`] meaning "no water direction". +pub const NO_WATER_BEARING: u16 = 360; + +/// Quantize a (Δrow, Δcol) step to a compass octant bearing (0=N … 315=NW). +/// `Δrow < 0` is north (rows increase downward). Integer-only (D-010). +fn octant_bearing(drow: i32, dcol: i32) -> u16 { + let (ar, ac) = (drow.abs(), dcol.abs()); + let north = drow < 0; + let east = dcol > 0; + if ar >= ac * 2 { + if north { + 0 + } else { + 180 + } + } else if ac >= ar * 2 { + if east { + 90 + } else { + 270 + } + } else { + match (north, east) { + (true, true) => 45, + (true, false) => 315, + (false, true) => 135, + (false, false) => 225, + } + } } /// Largest connected below-sea-level component = ocean; all others = lakes. diff --git a/server/src/atlas/layer1.rs b/server/src/atlas/layer1.rs index ef50e2fef..382fa3b80 100644 --- a/server/src/atlas/layer1.rs +++ b/server/src/atlas/layer1.rs @@ -57,6 +57,9 @@ pub fn run_layer1(hm: &BodyHeightmap) -> Layer1Output { strength: r.strength, sub_biome, terrain_modification_cost, + // Layer-1 water-direction extraction (#957, D-234) — feeds D-213 + // founding orientation + the D-234 waterfront rule. + water_bearing: ta.water_bearing(r.row as usize, r.col as usize), } }) .collect(); diff --git a/server/src/atlas/skeleton_gen.rs b/server/src/atlas/skeleton_gen.rs index bccdc61c9..7d122df01 100644 --- a/server/src/atlas/skeleton_gen.rs +++ b/server/src/atlas/skeleton_gen.rs @@ -29,9 +29,9 @@ use crate::simulation::generator::{ AccessKind, AccessPoint, ArchitectureFlavorRef, BlockPlacement, BlockSkeleton, BuildingEntryClass, BuildingPropertyTag, BulkClass, ChunkLayout, CityGenerationContext, ComplexityTier, ConstructionEra, CorridorSpine, DistrictLayoutMode, DistrictType, EraCause, - FloorExtent, FloorHeightProfile, MorphologyZone, MultiBlockReservation, PoliticalArchetype, - QuarterId, QuarterSkeleton, ReservationFunction, ReservationId, SettingType, TileRect, - WorldTier, ZoneTypeId, ZoningType, + FloorExtent, FloorHeightProfile, FoundingOrientation, MorphologyZone, MultiBlockReservation, + PoliticalArchetype, QuarterId, QuarterSkeleton, ReservationFunction, ReservationId, + SettingType, TileRect, WorldTier, ZoneTypeId, ZoningType, }; // --------------------------------------------------------------------------- @@ -752,17 +752,54 @@ fn bsp(rect: TileRect, depth: u8, min_lot: u8, max_lot: u8, seed: u64, out: &mut bsp(b, depth + 1, min_lot, max_lot, splitmix64(child), out); } -/// Subdivide one block into building footprints (D-220/D-229/D-233). +/// A quarter (or block) edge — used for the D-234 waterfront rule. +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +pub enum Edge { + North, + East, + South, + West, +} + +/// The quarter edge facing water, from the settlement's founding orientation +/// (D-234b). Only `Coastal` orientations have a water-facing edge; the 8-octant +/// facing snaps to the nearest cardinal edge. +fn coastal_edge(orientation: &FoundingOrientation) -> Option { + if let FoundingOrientation::Coastal { facing_degrees } = orientation { + Some(match facing_degrees % 360 { + d if !(45..315).contains(&d) => Edge::North, + d if d < 135 => Edge::East, + d if d < 225 => Edge::South, + _ => Edge::West, + }) + } else { + None + } +} + +/// Whether block `(row, col)` sits on the quarter's `edge` (4×4 grid). +fn block_on_quarter_edge(row: u8, col: u8, edge: Edge) -> bool { + match edge { + Edge::North => row == 0, + Edge::South => row == 3, + Edge::West => col == 0, + Edge::East => col == 3, + } +} + +/// Subdivide one block into building footprints (D-220/D-229/D-233/D-234). /// /// Lot size + setback scale with `density_pct` (Frontier → few big lots, wide /// gaps; Compressed → many small lots, shared walls). The D-233 roofed coverage /// (from `bulk`) decides what fraction of lots are buildings vs interstitial /// open space (yards/parks/lots). Footprints are axis-aligned `TileRect`s in -/// block tile-space. +/// block tile-space. `waterfront` (D-234b): on the water-facing edge the street +/// margin drops to 0 — buildings present flush to the quay (dock-orthogonal). fn subdivide_block_footprints( density_pct: u8, bulk: &BulkClass, _morphology: &MorphologyZone, + waterfront: Option, seed: SeedChain, ) -> Vec { let (min_lot, max_lot, setback) = match density_pct { @@ -774,11 +811,21 @@ fn subdivide_block_footprints( }; let coverage = roofed_coverage_pct(density_pct, bulk); + // Perimeter street margin — dropped to 0 on a water-facing edge (D-234b). + let (mut top, mut bottom, mut left, mut right) = + (BLOCK_MARGIN, BLOCK_MARGIN, BLOCK_MARGIN, BLOCK_MARGIN); + match waterfront { + Some(Edge::North) => top = 0, + Some(Edge::South) => bottom = 0, + Some(Edge::West) => left = 0, + Some(Edge::East) => right = 0, + None => {} + } let inner = TileRect::new( - BLOCK_MARGIN, - BLOCK_MARGIN, - BLOCK_TILES - 2 * BLOCK_MARGIN, - BLOCK_TILES - 2 * BLOCK_MARGIN, + left, + top, + BLOCK_TILES - left - right, + BLOCK_TILES - top - bottom, ); let mut leaves = Vec::new(); bsp(inner, 0, min_lot, max_lot, seed.seed(), &mut leaves); @@ -808,6 +855,7 @@ fn assign_block_tags( context: &CityGenerationContext, economic_role: &str, founding_age_years: u32, + waterfront: Option, block_chain: SeedChain, ) -> Vec { if block.reservation.is_some() { @@ -821,6 +869,7 @@ fn assign_block_tags( block.density_pct, &context.dominant_bulk_class, &context.morphology_zone, + waterfront, block_chain, ); @@ -873,17 +922,22 @@ pub fn assign_all_block_tags( founding_age_years: u32, chain: SeedChain, ) -> BTreeMap<(u8, u8), Vec> { + // Water-facing quarter edge from the settlement's coastal founding + // orientation (D-234b); blocks on it present flush to the quay. + let water_edge = coastal_edge(&context.founding_orientation); let mut map = BTreeMap::new(); for row in 0..4u8 { for col in 0..4u8 { let block = &skeleton.blocks[row as usize][col as usize]; let block_chain = chain.derive(SeedDomain::Block, (row * 4 + col) as u64); + let waterfront = water_edge.filter(|&e| block_on_quarter_edge(row, col, e)); let tags = assign_block_tags( block, skeleton, context, economic_role, founding_age_years, + waterfront, block_chain, ); if !tags.is_empty() { @@ -1523,6 +1577,7 @@ mod tests { 70, &BulkClass::NonPhysical, &MorphologyZone::AlluvialPlain, + None, SeedChain::root(1), ); assert!(!fps.is_empty(), "a dense block should produce footprints"); @@ -1539,12 +1594,14 @@ mod tests { 15, &BulkClass::NonPhysical, &MorphologyZone::AlluvialPlain, + None, SeedChain::root(7), ); let dense = subdivide_block_footprints( 85, &BulkClass::NonPhysical, &MorphologyZone::AlluvialPlain, + None, SeedChain::root(7), ); assert!( @@ -1676,6 +1733,42 @@ mod tests { assert!(corridors.iter().all(|c| c.from == hub || c.to == hub)); } + #[test] + fn coastal_edge_maps_facing_to_cardinal() { + let c = |d| coastal_edge(&FoundingOrientation::Coastal { facing_degrees: d }); + assert_eq!(c(0), Some(Edge::North)); + assert_eq!(c(90), Some(Edge::East)); + assert_eq!(c(180), Some(Edge::South)); + assert_eq!(c(270), Some(Edge::West)); + assert_eq!(coastal_edge(&FoundingOrientation::Cardinal), None); + } + + #[test] + fn waterfront_footprints_present_to_the_quay() { + // The water-facing (north) edge drops its setback → buildings sit flush + // (origin.1 == 0), unlike the standard margin (D-234b). + let inland = subdivide_block_footprints( + 70, + &BulkClass::NonPhysical, + &MorphologyZone::CoastalLowland, + None, + SeedChain::root(3), + ); + let quay = subdivide_block_footprints( + 70, + &BulkClass::NonPhysical, + &MorphologyZone::CoastalLowland, + Some(Edge::North), + SeedChain::root(3), + ); + let min_y = |v: &[TileRect]| v.iter().map(|r| r.origin.1).min().unwrap_or(u8::MAX); + assert!(min_y(&inland) >= BLOCK_MARGIN); + assert!( + min_y(&quay) < min_y(&inland), + "quay buildings should reach the water edge" + ); + } + #[test] fn skeleton_has_streets_and_local_lattice() { let ctx = make_context(PoliticalArchetype::Commission, WorldTier::Regional); diff --git a/server/src/simulation/generator.rs b/server/src/simulation/generator.rs index c12381ed6..356014977 100644 --- a/server/src/simulation/generator.rs +++ b/server/src/simulation/generator.rs @@ -529,6 +529,12 @@ pub struct GeographicAttractor { /// `sub_biome` + local slope; penalizes marginal cities in the matching /// pipeline (D-211). Integer for D-010 determinism (#955). (D-210) pub terrain_modification_cost: i32, + /// Compass bearing (degrees, quantized to 8 octants: 0=N,45=NE…315=NW) + /// toward the nearest water from this position, or 360 = "no water nearby". + /// Layer-1 terrain extraction feeding D-213 founding orientation (coastal + /// facing / river bearing) and the D-234 waterfront rule. Integer 8-octant + /// keeps it D-010-deterministic (no `atan2`). + pub water_bearing: u16, } /// Compatibility weights between economic roles and attractor types. diff --git a/server/tests/gen_fixtures.rs b/server/tests/gen_fixtures.rs index 52a00628d..13ca08a57 100644 --- a/server/tests/gen_fixtures.rs +++ b/server/tests/gen_fixtures.rs @@ -562,6 +562,7 @@ fn generate_atlas_layer_response_fixtures() { strength: 90, sub_biome: SubBiomeVariant::CoastalLowland, terrain_modification_cost: 170, + water_bearing: 90, }], grid_w: 512, grid_h: 256, diff --git a/server/tests/golden/cascade_layer1.json b/server/tests/golden/cascade_layer1.json index 855f3d8fb..a7ef1bc41 100644 --- a/server/tests/golden/cascade_layer1.json +++ b/server/tests/golden/cascade_layer1.json @@ -13,7 +13,8 @@ ], "strength": 20, "sub_biome": "Tundra", - "terrain_modification_cost": 162 + "terrain_modification_cost": 162, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -23,7 +24,8 @@ ], "strength": 14, "sub_biome": "Tundra", - "terrain_modification_cost": 165 + "terrain_modification_cost": 165, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -33,7 +35,8 @@ ], "strength": 13, "sub_biome": "Tundra", - "terrain_modification_cost": 166 + "terrain_modification_cost": 166, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -43,7 +46,8 @@ ], "strength": 23, "sub_biome": "Tundra", - "terrain_modification_cost": 166 + "terrain_modification_cost": 166, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -53,7 +57,8 @@ ], "strength": 12, "sub_biome": "Alpine", - "terrain_modification_cost": 384 + "terrain_modification_cost": 384, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -63,7 +68,8 @@ ], "strength": 15, "sub_biome": "Tundra", - "terrain_modification_cost": 166 + "terrain_modification_cost": 166, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -73,7 +79,8 @@ ], "strength": 23, "sub_biome": "Tundra", - "terrain_modification_cost": 163 + "terrain_modification_cost": 163, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -83,7 +90,8 @@ ], "strength": 22, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 150 + "terrain_modification_cost": 150, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -93,7 +101,8 @@ ], "strength": 24, "sub_biome": "BorealForest", - "terrain_modification_cost": 158 + "terrain_modification_cost": 158, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -103,7 +112,8 @@ ], "strength": 22, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -113,7 +123,8 @@ ], "strength": 34, "sub_biome": "TemperateForest", - "terrain_modification_cost": 150 + "terrain_modification_cost": 150, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -123,7 +134,8 @@ ], "strength": 20, "sub_biome": "Wetland", - "terrain_modification_cost": 327 + "terrain_modification_cost": 327, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -133,7 +145,8 @@ ], "strength": 16, "sub_biome": "Wetland", - "terrain_modification_cost": 329 + "terrain_modification_cost": 329, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -143,7 +156,8 @@ ], "strength": 13, "sub_biome": "Wetland", - "terrain_modification_cost": 348 + "terrain_modification_cost": 348, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -153,7 +167,8 @@ ], "strength": 13, "sub_biome": "Wetland", - "terrain_modification_cost": 325 + "terrain_modification_cost": 325, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -163,7 +178,8 @@ ], "strength": 16, "sub_biome": "Wetland", - "terrain_modification_cost": 324 + "terrain_modification_cost": 324, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -173,7 +189,8 @@ ], "strength": 25, "sub_biome": "Wetland", - "terrain_modification_cost": 322 + "terrain_modification_cost": 322, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -183,7 +200,8 @@ ], "strength": 13, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 142 + "terrain_modification_cost": 142, + "water_bearing": 360 }, { "attractor_type": "RiverMouth", @@ -193,7 +211,8 @@ ], "strength": 12, "sub_biome": "Wetland", - "terrain_modification_cost": 327 + "terrain_modification_cost": 327, + "water_bearing": 360 }, { "attractor_type": "CoastalAccess", @@ -203,7 +222,8 @@ ], "strength": 90, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 157 + "terrain_modification_cost": 157, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -213,7 +233,8 @@ ], "strength": 90, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 159 + "terrain_modification_cost": 159, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -223,7 +244,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 330 + "terrain_modification_cost": 330, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -233,7 +255,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 336 + "terrain_modification_cost": 336, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -243,7 +266,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 344 + "terrain_modification_cost": 344, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -253,7 +277,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 330 + "terrain_modification_cost": 330, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -263,7 +288,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 333 + "terrain_modification_cost": 333, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -273,7 +299,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 333 + "terrain_modification_cost": 333, + "water_bearing": 135 }, { "attractor_type": "CoastalAccess", @@ -283,7 +310,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 331 + "terrain_modification_cost": 331, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -293,7 +321,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 325 + "terrain_modification_cost": 325, + "water_bearing": 225 }, { "attractor_type": "CoastalAccess", @@ -303,7 +332,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 331 + "terrain_modification_cost": 331, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -313,7 +343,8 @@ ], "strength": 90, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 191 + "terrain_modification_cost": 191, + "water_bearing": 135 }, { "attractor_type": "CoastalAccess", @@ -323,7 +354,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 325 + "terrain_modification_cost": 325, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -333,7 +365,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 328 + "terrain_modification_cost": 328, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -343,7 +376,8 @@ ], "strength": 90, "sub_biome": "TemperateForest", - "terrain_modification_cost": 170 + "terrain_modification_cost": 170, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -353,7 +387,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 330 + "terrain_modification_cost": 330, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -363,7 +398,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 326 + "terrain_modification_cost": 326, + "water_bearing": 90 }, { "attractor_type": "CoastalAccess", @@ -373,7 +409,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 328 + "terrain_modification_cost": 328, + "water_bearing": 90 }, { "attractor_type": "CoastalAccess", @@ -383,7 +420,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 331 + "terrain_modification_cost": 331, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -393,7 +431,8 @@ ], "strength": 90, "sub_biome": "TropicalWet", - "terrain_modification_cost": 222 + "terrain_modification_cost": 222, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -403,7 +442,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 330 + "terrain_modification_cost": 330, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -413,7 +453,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 329 + "terrain_modification_cost": 329, + "water_bearing": 135 }, { "attractor_type": "CoastalAccess", @@ -423,7 +464,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 325 + "terrain_modification_cost": 325, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -433,7 +475,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 329 + "terrain_modification_cost": 329, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -443,7 +486,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 325 + "terrain_modification_cost": 325, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -453,7 +497,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 396 + "terrain_modification_cost": 396, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -463,7 +508,8 @@ ], "strength": 90, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 167 + "terrain_modification_cost": 167, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -473,7 +519,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 325 + "terrain_modification_cost": 325, + "water_bearing": 270 }, { "attractor_type": "CoastalAccess", @@ -483,7 +530,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 330 + "terrain_modification_cost": 330, + "water_bearing": 270 }, { "attractor_type": "CoastalAccess", @@ -493,7 +541,8 @@ ], "strength": 90, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 165 + "terrain_modification_cost": 165, + "water_bearing": 90 }, { "attractor_type": "CoastalAccess", @@ -503,7 +552,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 323 + "terrain_modification_cost": 323, + "water_bearing": 225 }, { "attractor_type": "CoastalAccess", @@ -513,7 +563,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 358 + "terrain_modification_cost": 358, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -523,7 +574,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 339 + "terrain_modification_cost": 339, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -533,7 +585,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 350 + "terrain_modification_cost": 350, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -543,7 +596,8 @@ ], "strength": 90, "sub_biome": "TropicalWet", - "terrain_modification_cost": 314 + "terrain_modification_cost": 314, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -553,7 +607,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 338 + "terrain_modification_cost": 338, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -563,7 +618,8 @@ ], "strength": 90, "sub_biome": "TropicalWet", - "terrain_modification_cost": 266 + "terrain_modification_cost": 266, + "water_bearing": 270 }, { "attractor_type": "CoastalAccess", @@ -573,7 +629,8 @@ ], "strength": 90, "sub_biome": "TropicalWet", - "terrain_modification_cost": 272 + "terrain_modification_cost": 272, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -583,7 +640,8 @@ ], "strength": 90, "sub_biome": "TropicalWet", - "terrain_modification_cost": 270 + "terrain_modification_cost": 270, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -593,7 +651,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 351 + "terrain_modification_cost": 351, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -603,7 +662,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 329 + "terrain_modification_cost": 329, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -613,7 +673,8 @@ ], "strength": 90, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 192 + "terrain_modification_cost": 192, + "water_bearing": 90 }, { "attractor_type": "CoastalAccess", @@ -623,7 +684,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 385 + "terrain_modification_cost": 385, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -633,7 +695,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 328 + "terrain_modification_cost": 328, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -643,7 +706,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 333 + "terrain_modification_cost": 333, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -653,7 +717,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 324 + "terrain_modification_cost": 324, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -663,7 +728,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 330 + "terrain_modification_cost": 330, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -673,7 +739,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 323 + "terrain_modification_cost": 323, + "water_bearing": 135 }, { "attractor_type": "CoastalAccess", @@ -683,7 +750,8 @@ ], "strength": 90, "sub_biome": "TemperateForest", - "terrain_modification_cost": 194 + "terrain_modification_cost": 194, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -693,7 +761,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 344 + "terrain_modification_cost": 344, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -703,7 +772,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 331 + "terrain_modification_cost": 331, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -713,7 +783,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 322 + "terrain_modification_cost": 322, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -723,7 +794,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 337 + "terrain_modification_cost": 337, + "water_bearing": 180 }, { "attractor_type": "CoastalAccess", @@ -733,7 +805,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 324 + "terrain_modification_cost": 324, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -743,7 +816,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 323 + "terrain_modification_cost": 323, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -753,7 +827,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 323 + "terrain_modification_cost": 323, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -763,7 +838,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 326 + "terrain_modification_cost": 326, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -773,7 +849,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 321 + "terrain_modification_cost": 321, + "water_bearing": 270 }, { "attractor_type": "CoastalAccess", @@ -783,7 +860,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 328 + "terrain_modification_cost": 328, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -793,7 +871,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 329 + "terrain_modification_cost": 329, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -803,7 +882,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 341 + "terrain_modification_cost": 341, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -813,7 +893,8 @@ ], "strength": 90, "sub_biome": "BorealForest", - "terrain_modification_cost": 231 + "terrain_modification_cost": 231, + "water_bearing": 0 }, { "attractor_type": "CoastalAccess", @@ -823,7 +904,8 @@ ], "strength": 90, "sub_biome": "BorealForest", - "terrain_modification_cost": 250 + "terrain_modification_cost": 250, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -833,7 +915,8 @@ ], "strength": 87, "sub_biome": "Tundra", - "terrain_modification_cost": 162 + "terrain_modification_cost": 162, + "water_bearing": 270 }, { "attractor_type": "ValleyFloor", @@ -843,7 +926,8 @@ ], "strength": 89, "sub_biome": "Tundra", - "terrain_modification_cost": 164 + "terrain_modification_cost": 164, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -853,7 +937,8 @@ ], "strength": 86, "sub_biome": "Tundra", - "terrain_modification_cost": 164 + "terrain_modification_cost": 164, + "water_bearing": 270 }, { "attractor_type": "ValleyFloor", @@ -863,7 +948,8 @@ ], "strength": 94, "sub_biome": "BorealForest", - "terrain_modification_cost": 159 + "terrain_modification_cost": 159, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -873,7 +959,8 @@ ], "strength": 91, "sub_biome": "BorealForest", - "terrain_modification_cost": 154 + "terrain_modification_cost": 154, + "water_bearing": 270 }, { "attractor_type": "ValleyFloor", @@ -883,7 +970,8 @@ ], "strength": 88, "sub_biome": "BorealForest", - "terrain_modification_cost": 158 + "terrain_modification_cost": 158, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -893,7 +981,8 @@ ], "strength": 98, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 225 }, { "attractor_type": "ValleyFloor", @@ -903,7 +992,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 156 + "terrain_modification_cost": 156, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -913,7 +1003,8 @@ ], "strength": 89, "sub_biome": "TemperateForest", - "terrain_modification_cost": 135 + "terrain_modification_cost": 135, + "water_bearing": 270 }, { "attractor_type": "ValleyFloor", @@ -923,7 +1014,8 @@ ], "strength": 96, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 143 + "terrain_modification_cost": 143, + "water_bearing": 270 }, { "attractor_type": "ValleyFloor", @@ -933,7 +1025,8 @@ ], "strength": 91, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 153 + "terrain_modification_cost": 153, + "water_bearing": 225 }, { "attractor_type": "ValleyFloor", @@ -943,7 +1036,8 @@ ], "strength": 91, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 164 + "terrain_modification_cost": 164, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -953,7 +1047,8 @@ ], "strength": 94, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -963,7 +1058,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 152 + "terrain_modification_cost": 152, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -973,7 +1069,8 @@ ], "strength": 93, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 155 + "terrain_modification_cost": 155, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -983,7 +1080,8 @@ ], "strength": 85, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -993,7 +1091,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 149 + "terrain_modification_cost": 149, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1003,7 +1102,8 @@ ], "strength": 94, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 147 + "terrain_modification_cost": 147, + "water_bearing": 225 }, { "attractor_type": "ValleyFloor", @@ -1013,7 +1113,8 @@ ], "strength": 93, "sub_biome": "TemperateForest", - "terrain_modification_cost": 134 + "terrain_modification_cost": 134, + "water_bearing": 225 }, { "attractor_type": "ValleyFloor", @@ -1023,7 +1124,8 @@ ], "strength": 92, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 162 + "terrain_modification_cost": 162, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1033,7 +1135,8 @@ ], "strength": 96, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 142 + "terrain_modification_cost": 142, + "water_bearing": 45 }, { "attractor_type": "ValleyFloor", @@ -1043,7 +1146,8 @@ ], "strength": 94, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 153 + "terrain_modification_cost": 153, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -1053,7 +1157,8 @@ ], "strength": 94, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 148 + "terrain_modification_cost": 148, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1063,7 +1168,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 147 + "terrain_modification_cost": 147, + "water_bearing": 135 }, { "attractor_type": "ValleyFloor", @@ -1073,7 +1179,8 @@ ], "strength": 92, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 157 + "terrain_modification_cost": 157, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1083,7 +1190,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 149 + "terrain_modification_cost": 149, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1093,7 +1201,8 @@ ], "strength": 95, "sub_biome": "TropicalWet", - "terrain_modification_cost": 204 + "terrain_modification_cost": 204, + "water_bearing": 225 }, { "attractor_type": "ValleyFloor", @@ -1103,7 +1212,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 144 + "terrain_modification_cost": 144, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -1113,7 +1223,8 @@ ], "strength": 94, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 156 + "terrain_modification_cost": 156, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1123,7 +1234,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 45 }, { "attractor_type": "ValleyFloor", @@ -1133,7 +1245,8 @@ ], "strength": 94, "sub_biome": "TropicalWet", - "terrain_modification_cost": 203 + "terrain_modification_cost": 203, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1143,7 +1256,8 @@ ], "strength": 92, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 161 + "terrain_modification_cost": 161, + "water_bearing": 270 }, { "attractor_type": "ValleyFloor", @@ -1153,7 +1267,8 @@ ], "strength": 89, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 144 + "terrain_modification_cost": 144, + "water_bearing": 135 }, { "attractor_type": "ValleyFloor", @@ -1163,7 +1278,8 @@ ], "strength": 89, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 180 + "terrain_modification_cost": 180, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -1173,7 +1289,8 @@ ], "strength": 88, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 174 + "terrain_modification_cost": 174, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1183,7 +1300,8 @@ ], "strength": 93, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 156 + "terrain_modification_cost": 156, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1193,7 +1311,8 @@ ], "strength": 86, "sub_biome": "Wetland", - "terrain_modification_cost": 328 + "terrain_modification_cost": 328, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1203,7 +1322,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 153 + "terrain_modification_cost": 153, + "water_bearing": 135 }, { "attractor_type": "ValleyFloor", @@ -1213,7 +1333,8 @@ ], "strength": 93, "sub_biome": "Wetland", - "terrain_modification_cost": 323 + "terrain_modification_cost": 323, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1223,7 +1344,8 @@ ], "strength": 92, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 154 + "terrain_modification_cost": 154, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1233,7 +1355,8 @@ ], "strength": 94, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 148 + "terrain_modification_cost": 148, + "water_bearing": 45 }, { "attractor_type": "ValleyFloor", @@ -1243,7 +1366,8 @@ ], "strength": 94, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 158 + "terrain_modification_cost": 158, + "water_bearing": 270 }, { "attractor_type": "ValleyFloor", @@ -1253,7 +1377,8 @@ ], "strength": 91, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1263,7 +1388,8 @@ ], "strength": 90, "sub_biome": "Wetland", - "terrain_modification_cost": 328 + "terrain_modification_cost": 328, + "water_bearing": 225 }, { "attractor_type": "ValleyFloor", @@ -1273,7 +1399,8 @@ ], "strength": 98, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 144 + "terrain_modification_cost": 144, + "water_bearing": 135 }, { "attractor_type": "ValleyFloor", @@ -1283,7 +1410,8 @@ ], "strength": 86, "sub_biome": "Wetland", - "terrain_modification_cost": 347 + "terrain_modification_cost": 347, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1293,7 +1421,8 @@ ], "strength": 91, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 153 + "terrain_modification_cost": 153, + "water_bearing": 315 }, { "attractor_type": "ValleyFloor", @@ -1303,7 +1432,8 @@ ], "strength": 96, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 270 }, { "attractor_type": "ValleyFloor", @@ -1313,7 +1443,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 148 + "terrain_modification_cost": 148, + "water_bearing": 45 }, { "attractor_type": "ValleyFloor", @@ -1323,7 +1454,8 @@ ], "strength": 95, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 149 + "terrain_modification_cost": 149, + "water_bearing": 180 }, { "attractor_type": "ValleyFloor", @@ -1333,7 +1465,8 @@ ], "strength": 93, "sub_biome": "Wetland", - "terrain_modification_cost": 327 + "terrain_modification_cost": 327, + "water_bearing": 45 }, { "attractor_type": "ValleyFloor", @@ -1343,7 +1476,8 @@ ], "strength": 87, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 142 + "terrain_modification_cost": 142, + "water_bearing": 315 }, { "attractor_type": "ValleyFloor", @@ -1353,7 +1487,8 @@ ], "strength": 94, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 143 + "terrain_modification_cost": 143, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1363,7 +1498,8 @@ ], "strength": 94, "sub_biome": "Tundra", - "terrain_modification_cost": 165 + "terrain_modification_cost": 165, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1373,7 +1509,8 @@ ], "strength": 88, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 171 + "terrain_modification_cost": 171, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -1383,7 +1520,8 @@ ], "strength": 90, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 142 + "terrain_modification_cost": 142, + "water_bearing": 45 }, { "attractor_type": "ValleyFloor", @@ -1393,7 +1531,8 @@ ], "strength": 96, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 143 + "terrain_modification_cost": 143, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1403,7 +1542,8 @@ ], "strength": 89, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 141 + "terrain_modification_cost": 141, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -1413,7 +1553,8 @@ ], "strength": 86, "sub_biome": "Wetland", - "terrain_modification_cost": 331 + "terrain_modification_cost": 331, + "water_bearing": 0 }, { "attractor_type": "ValleyFloor", @@ -1423,7 +1564,8 @@ ], "strength": 93, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 315 }, { "attractor_type": "ValleyFloor", @@ -1433,7 +1575,8 @@ ], "strength": 92, "sub_biome": "Tundra", - "terrain_modification_cost": 163 + "terrain_modification_cost": 163, + "water_bearing": 90 }, { "attractor_type": "ValleyFloor", @@ -1443,7 +1586,8 @@ ], "strength": 87, "sub_biome": "Wetland", - "terrain_modification_cost": 326 + "terrain_modification_cost": 326, + "water_bearing": 270 }, { "attractor_type": "PassEntrance", @@ -1453,7 +1597,8 @@ ], "strength": 46, "sub_biome": "Tundra", - "terrain_modification_cost": 162 + "terrain_modification_cost": 162, + "water_bearing": 0 }, { "attractor_type": "PassEntrance", @@ -1463,7 +1608,8 @@ ], "strength": 49, "sub_biome": "Tundra", - "terrain_modification_cost": 163 + "terrain_modification_cost": 163, + "water_bearing": 90 }, { "attractor_type": "PassEntrance", @@ -1473,7 +1619,8 @@ ], "strength": 1, "sub_biome": "Alpine", - "terrain_modification_cost": 389 + "terrain_modification_cost": 389, + "water_bearing": 90 }, { "attractor_type": "PassEntrance", @@ -1483,7 +1630,8 @@ ], "strength": 34, "sub_biome": "Tundra", - "terrain_modification_cost": 165 + "terrain_modification_cost": 165, + "water_bearing": 0 }, { "attractor_type": "PassEntrance", @@ -1493,7 +1641,8 @@ ], "strength": 13, "sub_biome": "Alpine", - "terrain_modification_cost": 382 + "terrain_modification_cost": 382, + "water_bearing": 270 }, { "attractor_type": "PassEntrance", @@ -1503,7 +1652,8 @@ ], "strength": 29, "sub_biome": "Tundra", - "terrain_modification_cost": 162 + "terrain_modification_cost": 162, + "water_bearing": 0 }, { "attractor_type": "PassEntrance", @@ -1513,7 +1663,8 @@ ], "strength": 35, "sub_biome": "Tundra", - "terrain_modification_cost": 163 + "terrain_modification_cost": 163, + "water_bearing": 90 }, { "attractor_type": "PassEntrance", @@ -1523,7 +1674,8 @@ ], "strength": 1, "sub_biome": "Alpine", - "terrain_modification_cost": 407 + "terrain_modification_cost": 407, + "water_bearing": 225 }, { "attractor_type": "PassEntrance", @@ -1533,7 +1685,8 @@ ], "strength": 6, "sub_biome": "Alpine", - "terrain_modification_cost": 389 + "terrain_modification_cost": 389, + "water_bearing": 225 }, { "attractor_type": "PassEntrance", @@ -1543,7 +1696,8 @@ ], "strength": 17, "sub_biome": "Alpine", - "terrain_modification_cost": 382 + "terrain_modification_cost": 382, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1553,7 +1707,8 @@ ], "strength": 48, "sub_biome": "BorealForest", - "terrain_modification_cost": 154 + "terrain_modification_cost": 154, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1563,7 +1718,8 @@ ], "strength": 49, "sub_biome": "BorealForest", - "terrain_modification_cost": 158 + "terrain_modification_cost": 158, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1573,7 +1729,8 @@ ], "strength": 42, "sub_biome": "BorealForest", - "terrain_modification_cost": 155 + "terrain_modification_cost": 155, + "water_bearing": 90 }, { "attractor_type": "PassEntrance", @@ -1583,7 +1740,8 @@ ], "strength": 49, "sub_biome": "BorealForest", - "terrain_modification_cost": 160 + "terrain_modification_cost": 160, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1593,7 +1751,8 @@ ], "strength": 18, "sub_biome": "Alpine", - "terrain_modification_cost": 387 + "terrain_modification_cost": 387, + "water_bearing": 90 }, { "attractor_type": "PassEntrance", @@ -1603,7 +1762,8 @@ ], "strength": 29, "sub_biome": "BorealForest", - "terrain_modification_cost": 215 + "terrain_modification_cost": 215, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1613,7 +1773,8 @@ ], "strength": 34, "sub_biome": "TemperateForest", - "terrain_modification_cost": 134 + "terrain_modification_cost": 134, + "water_bearing": 0 }, { "attractor_type": "PassEntrance", @@ -1623,7 +1784,8 @@ ], "strength": 27, "sub_biome": "TemperateForest", - "terrain_modification_cost": 171 + "terrain_modification_cost": 171, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1633,7 +1795,8 @@ ], "strength": 14, "sub_biome": "Alpine", - "terrain_modification_cost": 386 + "terrain_modification_cost": 386, + "water_bearing": 0 }, { "attractor_type": "PassEntrance", @@ -1643,7 +1806,8 @@ ], "strength": 49, "sub_biome": "TemperateForest", - "terrain_modification_cost": 164 + "terrain_modification_cost": 164, + "water_bearing": 315 }, { "attractor_type": "PassEntrance", @@ -1653,7 +1817,8 @@ ], "strength": 39, "sub_biome": "TemperateForest", - "terrain_modification_cost": 168 + "terrain_modification_cost": 168, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1663,7 +1828,8 @@ ], "strength": 27, "sub_biome": "TemperateForest", - "terrain_modification_cost": 155 + "terrain_modification_cost": 155, + "water_bearing": 90 }, { "attractor_type": "PassEntrance", @@ -1673,7 +1839,8 @@ ], "strength": 17, "sub_biome": "Alpine", - "terrain_modification_cost": 431 + "terrain_modification_cost": 431, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1683,7 +1850,8 @@ ], "strength": 46, "sub_biome": "TemperateForest", - "terrain_modification_cost": 144 + "terrain_modification_cost": 144, + "water_bearing": 90 }, { "attractor_type": "PassEntrance", @@ -1693,7 +1861,8 @@ ], "strength": 36, "sub_biome": "TemperateForest", - "terrain_modification_cost": 135 + "terrain_modification_cost": 135, + "water_bearing": 225 }, { "attractor_type": "PassEntrance", @@ -1703,7 +1872,8 @@ ], "strength": 43, "sub_biome": "TemperateForest", - "terrain_modification_cost": 222 + "terrain_modification_cost": 222, + "water_bearing": 225 }, { "attractor_type": "PassEntrance", @@ -1713,7 +1883,8 @@ ], "strength": 48, "sub_biome": "TropicalWet", - "terrain_modification_cost": 297 + "terrain_modification_cost": 297, + "water_bearing": 0 }, { "attractor_type": "PassEntrance", @@ -1723,7 +1894,8 @@ ], "strength": 43, "sub_biome": "TropicalWet", - "terrain_modification_cost": 230 + "terrain_modification_cost": 230, + "water_bearing": 270 }, { "attractor_type": "PassEntrance", @@ -1733,7 +1905,8 @@ ], "strength": 47, "sub_biome": "TropicalWet", - "terrain_modification_cost": 215 + "terrain_modification_cost": 215, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1743,7 +1916,8 @@ ], "strength": 23, "sub_biome": "TropicalWet", - "terrain_modification_cost": 204 + "terrain_modification_cost": 204, + "water_bearing": 45 }, { "attractor_type": "PassEntrance", @@ -1753,7 +1927,8 @@ ], "strength": 24, "sub_biome": "TropicalWet", - "terrain_modification_cost": 210 + "terrain_modification_cost": 210, + "water_bearing": 0 }, { "attractor_type": "PassEntrance", @@ -1763,7 +1938,8 @@ ], "strength": 33, "sub_biome": "TropicalWet", - "terrain_modification_cost": 224 + "terrain_modification_cost": 224, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1773,7 +1949,8 @@ ], "strength": 30, "sub_biome": "TropicalWet", - "terrain_modification_cost": 210 + "terrain_modification_cost": 210, + "water_bearing": 180 }, { "attractor_type": "PassEntrance", @@ -1783,7 +1960,8 @@ ], "strength": 44, "sub_biome": "BorealForest", - "terrain_modification_cost": 211 + "terrain_modification_cost": 211, + "water_bearing": 0 }, { "attractor_type": "LakeShore", @@ -1793,7 +1971,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 337 + "terrain_modification_cost": 337, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1803,7 +1982,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 346 + "terrain_modification_cost": 346, + "water_bearing": 180 }, { "attractor_type": "LakeShore", @@ -1813,7 +1993,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 413 + "terrain_modification_cost": 413, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1823,7 +2004,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 330 + "terrain_modification_cost": 330, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1833,7 +2015,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 335 + "terrain_modification_cost": 335, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1843,7 +2026,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 347 + "terrain_modification_cost": 347, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1853,7 +2037,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 325 + "terrain_modification_cost": 325, + "water_bearing": 180 }, { "attractor_type": "LakeShore", @@ -1863,7 +2048,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 329 + "terrain_modification_cost": 329, + "water_bearing": 270 }, { "attractor_type": "LakeShore", @@ -1873,7 +2059,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 326 + "terrain_modification_cost": 326, + "water_bearing": 0 }, { "attractor_type": "LakeShore", @@ -1883,7 +2070,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 329 + "terrain_modification_cost": 329, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1893,7 +2081,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 329 + "terrain_modification_cost": 329, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1903,7 +2092,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 341 + "terrain_modification_cost": 341, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1913,7 +2103,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 343 + "terrain_modification_cost": 343, + "water_bearing": 315 }, { "attractor_type": "LakeShore", @@ -1923,7 +2114,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 322 + "terrain_modification_cost": 322, + "water_bearing": 0 }, { "attractor_type": "LakeShore", @@ -1933,7 +2125,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 327 + "terrain_modification_cost": 327, + "water_bearing": 135 }, { "attractor_type": "LakeShore", @@ -1943,7 +2136,8 @@ ], "strength": 50, "sub_biome": "Wetland", - "terrain_modification_cost": 332 + "terrain_modification_cost": 332, + "water_bearing": 225 }, { "attractor_type": "PlainCenter", @@ -1953,7 +2147,8 @@ ], "strength": 35, "sub_biome": "Tundra", - "terrain_modification_cost": 162 + "terrain_modification_cost": 162, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -1963,7 +2158,8 @@ ], "strength": 35, "sub_biome": "Tundra", - "terrain_modification_cost": 167 + "terrain_modification_cost": 167, + "water_bearing": 270 }, { "attractor_type": "PlainCenter", @@ -1973,7 +2169,8 @@ ], "strength": 34, "sub_biome": "Tundra", - "terrain_modification_cost": 165 + "terrain_modification_cost": 165, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -1983,7 +2180,8 @@ ], "strength": 33, "sub_biome": "Tundra", - "terrain_modification_cost": 162 + "terrain_modification_cost": 162, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -1993,7 +2191,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 150 + "terrain_modification_cost": 150, + "water_bearing": 315 }, { "attractor_type": "PlainCenter", @@ -2003,7 +2202,8 @@ ], "strength": 34, "sub_biome": "BorealForest", - "terrain_modification_cost": 155 + "terrain_modification_cost": 155, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2013,7 +2213,8 @@ ], "strength": 36, "sub_biome": "BorealForest", - "terrain_modification_cost": 157 + "terrain_modification_cost": 157, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2023,7 +2224,8 @@ ], "strength": 39, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2033,7 +2235,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 156 + "terrain_modification_cost": 156, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2043,7 +2246,8 @@ ], "strength": 36, "sub_biome": "TemperateForest", - "terrain_modification_cost": 133 + "terrain_modification_cost": 133, + "water_bearing": 270 }, { "attractor_type": "PlainCenter", @@ -2053,7 +2257,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 270 }, { "attractor_type": "PlainCenter", @@ -2063,7 +2268,8 @@ ], "strength": 33, "sub_biome": "TemperateForest", - "terrain_modification_cost": 138 + "terrain_modification_cost": 138, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2073,7 +2279,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 151 + "terrain_modification_cost": 151, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2083,7 +2290,8 @@ ], "strength": 36, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 156 + "terrain_modification_cost": 156, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2093,7 +2301,8 @@ ], "strength": 35, "sub_biome": "Wetland", - "terrain_modification_cost": 332 + "terrain_modification_cost": 332, + "water_bearing": 225 }, { "attractor_type": "PlainCenter", @@ -2103,7 +2312,8 @@ ], "strength": 37, "sub_biome": "TemperateForest", - "terrain_modification_cost": 138 + "terrain_modification_cost": 138, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2113,7 +2323,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2123,7 +2334,8 @@ ], "strength": 37, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 156 + "terrain_modification_cost": 156, + "water_bearing": 135 }, { "attractor_type": "PlainCenter", @@ -2133,7 +2345,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 150 + "terrain_modification_cost": 150, + "water_bearing": 225 }, { "attractor_type": "PlainCenter", @@ -2143,7 +2356,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 153 + "terrain_modification_cost": 153, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2153,7 +2367,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 270 }, { "attractor_type": "PlainCenter", @@ -2163,7 +2378,8 @@ ], "strength": 37, "sub_biome": "TemperateForest", - "terrain_modification_cost": 136 + "terrain_modification_cost": 136, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2173,7 +2389,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 142 + "terrain_modification_cost": 142, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2183,7 +2400,8 @@ ], "strength": 37, "sub_biome": "TemperateForest", - "terrain_modification_cost": 137 + "terrain_modification_cost": 137, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2193,7 +2411,8 @@ ], "strength": 35, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 155 + "terrain_modification_cost": 155, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2203,7 +2422,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 149 + "terrain_modification_cost": 149, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2213,7 +2433,8 @@ ], "strength": 38, "sub_biome": "TemperateForest", - "terrain_modification_cost": 134 + "terrain_modification_cost": 134, + "water_bearing": 225 }, { "attractor_type": "PlainCenter", @@ -2223,7 +2444,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 147 + "terrain_modification_cost": 147, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2233,7 +2455,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 135 }, { "attractor_type": "PlainCenter", @@ -2243,7 +2466,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2253,7 +2477,8 @@ ], "strength": 37, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 155 + "terrain_modification_cost": 155, + "water_bearing": 225 }, { "attractor_type": "PlainCenter", @@ -2263,7 +2488,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 151 + "terrain_modification_cost": 151, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2273,7 +2499,8 @@ ], "strength": 37, "sub_biome": "TropicalWet", - "terrain_modification_cost": 203 + "terrain_modification_cost": 203, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2283,7 +2510,8 @@ ], "strength": 35, "sub_biome": "Wetland", - "terrain_modification_cost": 336 + "terrain_modification_cost": 336, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2293,7 +2521,8 @@ ], "strength": 36, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2303,7 +2532,8 @@ ], "strength": 36, "sub_biome": "TropicalWet", - "terrain_modification_cost": 212 + "terrain_modification_cost": 212, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2313,7 +2543,8 @@ ], "strength": 34, "sub_biome": "Wetland", - "terrain_modification_cost": 328 + "terrain_modification_cost": 328, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2323,7 +2554,8 @@ ], "strength": 36, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2333,7 +2565,8 @@ ], "strength": 37, "sub_biome": "Wetland", - "terrain_modification_cost": 325 + "terrain_modification_cost": 325, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2343,7 +2576,8 @@ ], "strength": 36, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 155 + "terrain_modification_cost": 155, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2353,7 +2587,8 @@ ], "strength": 37, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 150 + "terrain_modification_cost": 150, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2363,7 +2598,8 @@ ], "strength": 37, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 149 + "terrain_modification_cost": 149, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2373,7 +2609,8 @@ ], "strength": 36, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 147 + "terrain_modification_cost": 147, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2383,7 +2620,8 @@ ], "strength": 39, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 144 + "terrain_modification_cost": 144, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2393,7 +2631,8 @@ ], "strength": 37, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 149 + "terrain_modification_cost": 149, + "water_bearing": 180 }, { "attractor_type": "PlainCenter", @@ -2403,7 +2642,8 @@ ], "strength": 36, "sub_biome": "BorealForest", - "terrain_modification_cost": 164 + "terrain_modification_cost": 164, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2413,7 +2653,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 148 + "terrain_modification_cost": 148, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2423,7 +2664,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 150 + "terrain_modification_cost": 150, + "water_bearing": 45 }, { "attractor_type": "PlainCenter", @@ -2433,7 +2675,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 146 + "terrain_modification_cost": 146, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2443,7 +2686,8 @@ ], "strength": 37, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 147 + "terrain_modification_cost": 147, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2453,7 +2697,8 @@ ], "strength": 35, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 143 + "terrain_modification_cost": 143, + "water_bearing": 45 }, { "attractor_type": "PlainCenter", @@ -2463,7 +2708,8 @@ ], "strength": 37, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 315 }, { "attractor_type": "PlainCenter", @@ -2473,7 +2719,8 @@ ], "strength": 37, "sub_biome": "Tundra", - "terrain_modification_cost": 167 + "terrain_modification_cost": 167, + "water_bearing": 225 }, { "attractor_type": "PlainCenter", @@ -2483,7 +2730,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 149 + "terrain_modification_cost": 149, + "water_bearing": 315 }, { "attractor_type": "PlainCenter", @@ -2493,7 +2741,8 @@ ], "strength": 35, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 145 + "terrain_modification_cost": 145, + "water_bearing": 45 }, { "attractor_type": "PlainCenter", @@ -2503,7 +2752,8 @@ ], "strength": 38, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 143 + "terrain_modification_cost": 143, + "water_bearing": 315 }, { "attractor_type": "PlainCenter", @@ -2513,7 +2763,8 @@ ], "strength": 36, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 141 + "terrain_modification_cost": 141, + "water_bearing": 0 }, { "attractor_type": "PlainCenter", @@ -2523,7 +2774,8 @@ ], "strength": 35, "sub_biome": "CoastalLowland", - "terrain_modification_cost": 141 + "terrain_modification_cost": 141, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2533,7 +2785,8 @@ ], "strength": 34, "sub_biome": "Wetland", - "terrain_modification_cost": 335 + "terrain_modification_cost": 335, + "water_bearing": 45 }, { "attractor_type": "PlainCenter", @@ -2543,7 +2796,8 @@ ], "strength": 34, "sub_biome": "Tundra", - "terrain_modification_cost": 164 + "terrain_modification_cost": 164, + "water_bearing": 270 }, { "attractor_type": "PlainCenter", @@ -2553,7 +2807,8 @@ ], "strength": 37, "sub_biome": "Tundra", - "terrain_modification_cost": 164 + "terrain_modification_cost": 164, + "water_bearing": 90 }, { "attractor_type": "PlainCenter", @@ -2563,7 +2818,8 @@ ], "strength": 34, "sub_biome": "Wetland", - "terrain_modification_cost": 332 + "terrain_modification_cost": 332, + "water_bearing": 90 } ], "body_id": "GJ1c",