Civilization 6 district mechanics library. Use when working with district placement validation, adjacency bonus calculations, or understanding Civ6 game rules.
SKILL.md
Understanding Civ6 District Mechanics
Complete reference for Civilization 6 district placement and adjacency bonus systems (Gathering Storm).
Modules
placement_rules.py - District placement validation rules
Settling a City Center on a tile with Geothermal Fissure or Luxury/Strategic Resources preserves them (they remain and provide adjacency bonuses to nearby districts). Districts cannot be placed on these tiles.
District Placement Rules
Universal Rules (All Districts)
Rule
Description
Distance
Within 3 tiles of City Center
Mountains
Cannot place
Natural Wonders
Cannot place
Strategic Resources
Cannot place (Iron, Horses, Niter, Coal, Oil, Aluminum, Uranium)
Luxury Resources
Cannot place
Existing District
Cannot place on occupied tile
Bonus Resources
CAN place (resource destroyed)
Woods/Rainforest/Marsh
CAN place (feature destroyed)
District-Specific Rules
District
Special Requirement
Harbor
Must be on Coast/Lake, adjacent to land
Water Park
Must be on Coast/Lake, adjacent to land
Aerodrome
Must be on flat land
Spaceport
Must be on flat land
Encampment
NOT adjacent to City Center
Preserve
NOT adjacent to City Center
Aqueduct
Adjacent to City Center AND fresh water (Mountain, River, Lake, Oasis)
These can be built regardless of population limit:
Aqueduct / Bath
Neighborhood / Mbanza
Canal
Dam
Spaceport
Uniqueness Rules
Rule
Districts
ONE per city
Campus, Holy Site, Theater Square, Commercial Hub, Harbor, Industrial Zone, Entertainment Complex, Water Park, Encampment, Aerodrome, Preserve
Multiple per city
Neighborhood
ONE per civilization
Government Plaza, Diplomatic Quarter
Part 2: Adjacency Bonus Rules
Critical Rule: Minor Bonus Calculation
Each +0.5 type is floored SEPARATELY, then summed!
WRONG:
IZ with 1 Mine + 1 Lumber Mill + 1 District
= floor(3/2) = 1 ❌
CORRECT:
Mine: floor(1/2) = 0
Lumber Mill: floor(1/2) = 0
District: floor(1/2) = 0
TOTAL = 0 ✓
Adjacency Rules by District
Campus (+Science)
Bonus
Source
+2 each
Geothermal Fissure, Reef
+1 each
Mountain
+0.5 each
Rainforest (floor separately)
+0.5 each
District (floor separately)
Holy Site (+Faith)
Bonus
Source
+2 each
Natural Wonder
+1 each
Mountain
+0.5 each
Woods (floor separately)
+0.5 each
District (floor separately)
Theater Square (+Culture)
Bonus
Source
+2 each
Wonder (built wonder)
+2 each
Entertainment Complex, Water Park
+0.5 each
District (floor separately)
Commercial Hub (+Gold)
Bonus
Source
+2
If tile is ON a river (binary!)
+2 each
Adjacent Harbor
+0.5 each
District (floor separately)
Harbor (+Gold)
Bonus
Source
+2 each
Adjacent City Center
+1 each
Coastal Resource (Fish, Crabs, Whales, Pearls)
+0.5 each
District (floor separately)
Industrial Zone (+Production)
Bonus
Source
+2 each
Aqueduct, Dam, Canal
+1 each
Quarry, Strategic Resource
+0.5 each
Mine (floor separately)
+0.5 each
Lumber Mill (floor separately)
+0.5 each
District (floor separately)
Districts with NO adjacency bonuses
Entertainment Complex
Water Park
Encampment
Aerodrome
Spaceport
Government Plaza
Preserve
Government Plaza Adjacency Bonus
Government Plaza gives +1 adjacency bonus to adjacent specialty districts.
Districts that benefit when adjacent to Government Plaza:
Campus (+1)
Holy Site (+1)
Theater Square (+1)
Commercial Hub (+1)
Harbor (+1)
Industrial Zone (+1)
Note: Government Plaza also counts toward the +0.5 per district minor bonus.
Districts That Count for "+0.5 per District"
Counts: Campus, Holy Site, Theater Square, Commercial Hub, Harbor, Industrial Zone, Entertainment Complex, Water Park, Encampment, Aerodrome, Spaceport, Government Plaza, Diplomatic Quarter, Preserve, City Center, Aqueduct, Dam, Canal, Neighborhood
Destruction Effects
Placing ANY district destroys:
Woods (FEATURE_FOREST)
Rainforest (FEATURE_JUNGLE)
Marsh (FEATURE_MARSH)
Bonus Resources
This affects OTHER districts' adjacency!
Key Classes
DistrictType (Enum)
All district types: CAMPUS, HOLY_SITE, THEATER_SQUARE, COMMERCIAL_HUB, HARBOR, INDUSTRIAL_ZONE, etc.
Tile (Dataclass)
Represents a map tile with terrain, features, resources, rivers.
PlacementRules
Validates district placements against all game rules.
AdjacencyCalculator
Calculates adjacency bonuses based on surrounding tiles and districts.