mirror of
https://github.com/yairm210/Unciv.git
synced 2025-03-13 11:30:31 +07:00
National wonders can now be built for each civ separately
This commit is contained in:
parent
9389e936fc
commit
cd5a3b4741
@ -106,7 +106,7 @@ class CityConstructions {
|
||||
construction.postBuildEvent(this)
|
||||
inProgressConstructions.remove(currentConstruction)
|
||||
|
||||
if(construction is Building && construction.isWonder) {
|
||||
if(construction is Building && construction.isWonder && construction.requiredBuildingInAllCities==null) {
|
||||
val playerCiv = cityInfo.civInfo.gameInfo.getPlayerCivilization()
|
||||
val builtLocation = if(playerCiv.exploredTiles.contains(cityInfo.location)) cityInfo.name else "a faraway land"
|
||||
playerCiv.addNotification("$currentConstruction has been built in $builtLocation", cityInfo.location)
|
||||
|
@ -146,13 +146,19 @@ class Building : NamedStats(), IConstruction{
|
||||
if (construction.isBuilt(name)) return false
|
||||
val civInfo = construction.cityInfo.civInfo
|
||||
if (requiredTech != null && !civInfo.tech.isResearched(requiredTech!!)) return false
|
||||
if (isWonder && civInfo.gameInfo.civilizations.flatMap { it.cities }.any {
|
||||
if (isWonder && requiredBuildingInAllCities==null
|
||||
&& civInfo.gameInfo.civilizations.flatMap { it.cities }.any {
|
||||
it.cityConstructions.isBuilding(name) || it.cityConstructions.isBuilt(name)
|
||||
})
|
||||
return false
|
||||
if (requiredBuilding != null && !construction.isBuilt(requiredBuilding!!)) return false
|
||||
if (requiredBuildingInAllCities != null && civInfo.cities.any { !it.cityConstructions.isBuilt(requiredBuildingInAllCities!!) })
|
||||
return false
|
||||
if(requiredBuildingInAllCities!=null && civInfo.cities.any {
|
||||
it.cityConstructions.isBuilding(name) || it.cityConstructions.isBuilt(name)
|
||||
})
|
||||
return false
|
||||
|
||||
if (cannotBeBuiltWith != null && construction.isBuilt(cannotBeBuiltWith!!)) return false
|
||||
if ("Must be next to desert" == unique && !construction.cityInfo.getCenterTile().getTilesInDistance(1).any { it.baseTerrain == "Desert" })
|
||||
return false
|
||||
|
@ -47,7 +47,7 @@ class ConstructionPickerScreen(val city: CityInfo) : PickerScreen() {
|
||||
val specials = VerticalGroup().space(10f)
|
||||
|
||||
for (building in GameBasics.Buildings.values) {
|
||||
if (!building.isBuildable(cityConstructions)) continue
|
||||
if (!building.isBuildable(cityConstructions) && building.name!=cityConstructions.currentConstruction) continue
|
||||
val productionTextButton = getProductionButton(building.name,
|
||||
building.name + "\r\n" + cityConstructions.turnsToConstruction(building.name) + " turns",
|
||||
building.getDescription(true, civInfo.policies.getAdoptedPolicies()),
|
||||
@ -58,7 +58,7 @@ class ConstructionPickerScreen(val city: CityInfo) : PickerScreen() {
|
||||
regularBuildings.addActor(productionTextButton)
|
||||
}
|
||||
|
||||
for (unit in GameBasics.Units.values.filter { it.isBuildable(cityConstructions) || it.name==cityConstructions.currentConstruction}) {
|
||||
for (unit in GameBasics.Units.values.filter { it.isBuildable(cityConstructions)}) {
|
||||
units.addActor(getProductionButton(unit.name,
|
||||
unit.name + "\r\n" + cityConstructions.turnsToConstruction(unit.name) + " turns",
|
||||
unit.getDescription(true), "Train " + unit.name))
|
||||
|
Loading…
Reference in New Issue
Block a user