Resolved #952 - fixed building requirements for Neuschwanstein, Stone Works, Windmill and Spaceship Factory

This commit is contained in:
Yair Morgenstern
2019-07-21 19:54:16 +03:00
parent c7042dd5cf
commit e9e0e55b5e
6 changed files with 23 additions and 4 deletions

View File

@ -33,6 +33,7 @@
resourceBonusStats:{production:1}, resourceBonusStats:{production:1},
maintenance:1, maintenance:1,
hurryCostModifier:25, hurryCostModifier:25,
uniques:["Must not be on plains"]
requiredTech:"Calendar" requiredTech:"Calendar"
}, },
{ {
@ -600,6 +601,7 @@
hurryCostModifier:25, hurryCostModifier:25,
maintenance:2, maintenance:2,
percentStatBonus:{production:10}, percentStatBonus:{production:10},
uniques:["Must not be on hill"],
requiredTech:"Economics" requiredTech:"Economics"
}, },
@ -721,7 +723,8 @@
culture:4, culture:4,
gold:6, gold:6,
isWonder:true, isWonder:true,
uniques:["+1 happiness, +2 culture and +3 gold from every Castle"], uniques:["+1 happiness, +2 culture and +3 gold from every Castle",
"Must be next to mountain"],
requiredTech:"Railroad" requiredTech:"Railroad"
}, },
@ -785,6 +788,7 @@
requiredResource:"Aluminum", requiredResource:"Aluminum",
cost:360, cost:360,
uniques:["Increases production of spaceship parts by 50%"] uniques:["Increases production of spaceship parts by 50%"]
requiredBuilding:"Factory",
requiredTech:"Robotics" requiredTech:"Robotics"
}, },
{ {

View File

@ -53,6 +53,9 @@
Portuguese:"Obras de pedras" Portuguese:"Obras de pedras"
German:"Mauerwerk" German:"Mauerwerk"
} }
"Must not be on plains":{
}
"Stonehenge":{ "Stonehenge":{
Italian:"Stonehenge" Italian:"Stonehenge"
@ -971,6 +974,9 @@
Portuguese:"Moinho de vento" Portuguese:"Moinho de vento"
German:"Windmühle" German:"Windmühle"
} }
"Must not be on hill":{
}
"Museum":{ "Museum":{
Italian:"Museo" Italian:"Museo"

View File

@ -10,6 +10,7 @@ class Constants{
const val jungle = "Jungle" const val jungle = "Jungle"
const val hill = "Hill" const val hill = "Hill"
const val coast = "Coast" const val coast = "Coast"
const val plains = "Plains"
const val peaceTreaty = "Peace Treaty" const val peaceTreaty = "Peace Treaty"
const val barbarianEncampment = "Barbarian encampment" const val barbarianEncampment = "Barbarian encampment"
const val ancientRuins = "Ancient ruins" const val ancientRuins = "Ancient ruins"

View File

@ -151,7 +151,7 @@ class WorkerAutomation(val unit: MapUnit) {
tile.terrainFeature == "Marsh" -> "Remove Marsh" tile.terrainFeature == "Marsh" -> "Remove Marsh"
tile.terrainFeature == Constants.forest -> "Lumber mill" tile.terrainFeature == Constants.forest -> "Lumber mill"
tile.baseTerrain == Constants.hill -> "Mine" tile.baseTerrain == Constants.hill -> "Mine"
tile.baseTerrain in listOf("Grassland","Desert","Plains") -> "Farm" tile.baseTerrain in listOf("Grassland","Desert",Constants.plains) -> "Farm"
tile.baseTerrain == "Tundra" -> "Trading post" tile.baseTerrain == "Tundra" -> "Trading post"
else -> throw Exception("No improvement found for "+tile.baseTerrain) else -> throw Exception("No improvement found for "+tile.baseTerrain)
} }

View File

@ -204,11 +204,11 @@ class CelluarAutomataRandomMapGenerator(): SeedRandomMapGenerator() {
if (terrain == "Grassland" || terrain == "Tundra") if (terrain == "Grassland" || terrain == "Tundra")
terrain = "Desert" terrain = "Desert"
} else if (abs(getLatitude(tile.position)) > maxLatitude * 0.7) { } else if (abs(getLatitude(tile.position)) > maxLatitude * 0.7) {
if (terrain == "Grassland" || terrain == "Plains" || terrain == "Desert" || terrain == ocean) { if (terrain == "Grassland" || terrain == Constants.plains || terrain == "Desert" || terrain == ocean) {
terrain = "Tundra" terrain = "Tundra"
} }
} else { } else {
if (terrain == "Tundra") terrain = "Plains" if (terrain == "Tundra") terrain = Constants.plains
else if (terrain == "Desert") terrain = "Grassland" else if (terrain == "Desert") terrain = "Grassland"
} }

View File

@ -228,6 +228,14 @@ class Building : NamedStats(), IConstruction{
&& !construction.cityInfo.getCenterTile().neighbors.any { it.baseTerrain == Constants.mountain }) && !construction.cityInfo.getCenterTile().neighbors.any { it.baseTerrain == Constants.mountain })
return "Must be next to mountain" return "Must be next to mountain"
if("Must not be on plains" in uniques
&& construction.cityInfo.getCenterTile().baseTerrain==Constants.plains)
return "Must not be on plains"
if("Must not be on hill" in uniques
&& construction.cityInfo.getCenterTile().baseTerrain==Constants.hill)
return "Must not be on hill"
if("Can only be built in coastal cities" in uniques if("Can only be built in coastal cities" in uniques
&& !construction.cityInfo.getCenterTile().neighbors.any { it.baseTerrain==Constants.coast }) && !construction.cityInfo.getCenterTile().neighbors.any { it.baseTerrain==Constants.coast })
return "Can only be built in coastal cities" return "Can only be built in coastal cities"