Fix Legalism Policy (#1724)

Closes #1712
This commit is contained in:
Federico Luongo 2020-01-19 17:43:52 +01:00 committed by Yair Morgenstern
parent fd765fc442
commit 0a5aefcdd9
3 changed files with 11 additions and 11 deletions

View File

@ -48,6 +48,9 @@ class CityConstructions {
fun getConstructableUnits() = cityInfo.getRuleset().units.values
.asSequence().filter { it.isBuildable(this) }
fun getBasicCultureBuildings() = cityInfo.getRuleset().buildings.values
.asSequence().filter { it.culture > 0f && !it.isWonder && !it.isNationalWonder && it.replaces == null }
/**
* @return [Stats] provided by all built buildings in city plus the bonus from Library
*/
@ -279,22 +282,18 @@ class CityConstructions {
}
fun hasBuildableCultureBuilding(): Boolean {
val basicCultureBuildings = listOf("Monument", "Temple", "Opera House", "Museum")
.map { cityInfo.civInfo.getEquivalentBuilding(it) }
return basicCultureBuildings
return getBasicCultureBuildings()
.map { cityInfo.civInfo.getEquivalentBuilding(it.name) }
.filter { it.isBuildable(this) || it.name == currentConstruction}
.any()
}
fun addCultureBuilding(): String? {
val basicCultureBuildings = listOf("Monument", "Temple", "Opera House", "Museum")
.map { cityInfo.civInfo.getEquivalentBuilding(it) }
val buildableCultureBuildings = basicCultureBuildings
val buildableCultureBuildings = getBasicCultureBuildings()
.map { cityInfo.civInfo.getEquivalentBuilding(it.name) }
.filter { it.isBuildable(this) || it.name == currentConstruction }
if (buildableCultureBuildings.isEmpty())
if (!buildableCultureBuildings.any())
return null
val cultureBuildingToBuild = buildableCultureBuildings.minBy { it.cost }!!.name

View File

@ -76,7 +76,8 @@ class CityInfo {
civInfo.cities = civInfo.cities.toMutableList().apply { add(this@CityInfo) }
civInfo.addNotification("[$name] has been founded!", cityLocation, Color.PURPLE)
if (civInfo.policies.isAdopted("Legalism") && civInfo.cities.size <= 4) cityConstructions.addCultureBuilding()
civInfo.policies.tryAddLegalismBuildings()
if (civInfo.cities.size == 1) {
cityConstructions.addBuilding("Palace")
cityConstructions.currentConstruction = Constants.worker // Default for first city only!

View File

@ -135,7 +135,7 @@ class PolicyManager {
if(!canAdoptPolicy()) shouldOpenPolicyPicker=false
}
private fun tryAddLegalismBuildings() {
fun tryAddLegalismBuildings() {
val candidateCities = civInfo.cities
.sortedBy { it.turnAcquired }
.subList(0, min(4, civInfo.cities.size))