National wonders requiring buildings (e.g. Library) now accept unique replacements (e.g. Paper Maker)

This commit is contained in:
Yair Morgenstern
2018-10-09 21:06:15 +03:00
parent 4277bbc403
commit f07521b843
4 changed files with 6 additions and 6 deletions

View File

@ -90,6 +90,8 @@ class CityConstructions {
internal fun getBuiltBuildings(): List<Building> = builtBuildings.map { GameBasics.Buildings[it]!! } internal fun getBuiltBuildings(): List<Building> = builtBuildings.map { GameBasics.Buildings[it]!! }
fun containsBuildingOrEquivalent(building: String): Boolean =
isBuilt(building) || getBuiltBuildings().any{it.replaces==building}
fun getWorkDone(constructionName: String): Int { fun getWorkDone(constructionName: String): Int {
if (inProgressConstructions.containsKey(constructionName)) return inProgressConstructions[constructionName]!! if (inProgressConstructions.containsKey(constructionName)) return inProgressConstructions[constructionName]!!

View File

@ -164,9 +164,9 @@ class Building : NamedStats(), IConstruction{
it.cityConstructions.isBuilding(name) || it.cityConstructions.isBuilt(name) it.cityConstructions.isBuilding(name) || it.cityConstructions.isBuilt(name)
}) })
return false return false
if (requiredBuilding != null && !construction.isBuilt(requiredBuilding!!)
&& construction.getBuiltBuildings().none{it.replaces==requiredBuilding}) return false if (requiredBuilding != null && !construction.containsBuildingOrEquivalent(requiredBuilding!!)) return false
if (requiredBuildingInAllCities != null && civInfo.cities.any { !it.cityConstructions.isBuilt(requiredBuildingInAllCities!!) }) if (requiredBuildingInAllCities != null && civInfo.cities.any { !it.cityConstructions.containsBuildingOrEquivalent(requiredBuildingInAllCities!!) })
return false return false
if(requiredBuildingInAllCities!=null && civInfo.cities.any { if(requiredBuildingInAllCities!=null && civInfo.cities.any {
it.cityConstructions.isBuilding(name) || it.cityConstructions.isBuilt(name) it.cityConstructions.isBuilding(name) || it.cityConstructions.isBuilt(name)

View File

@ -27,7 +27,6 @@ class WorldScreen : CameraStageBaseScreen() {
val tileMapHolder: TileMapHolder = TileMapHolder(this, gameInfo.tileMap) val tileMapHolder: TileMapHolder = TileMapHolder(this, gameInfo.tileMap)
val minimap = Minimap(tileMapHolder) val minimap = Minimap(tileMapHolder)
internal var buttonScale = 0.9f
private val topBar = WorldScreenTopBar(this) private val topBar = WorldScreenTopBar(this)
val bottomBar = WorldScreenBottomBar(this) val bottomBar = WorldScreenBottomBar(this)
val unitActionsTable = UnitActionsTable(this) val unitActionsTable = UnitActionsTable(this)

View File

@ -47,8 +47,7 @@ class UnitActionsTable(val worldScreen: WorldScreen) : Table(){
clear() clear()
if (unit == null) return if (unit == null) return
for (button in UnitActions().getUnitActions(unit, worldScreen).map { getUnitActionButton(it) }) for (button in UnitActions().getUnitActions(unit, worldScreen).map { getUnitActionButton(it) })
add(button).colspan(2).pad(5f) add(button).colspan(2).pad(5f).row()
.size(button.width * worldScreen.buttonScale, button.height * worldScreen.buttonScale).row()
pack() pack()
} }