diff --git a/core/src/com/unciv/logic/automation/NextTurnAutomation.kt b/core/src/com/unciv/logic/automation/NextTurnAutomation.kt index d50b24001a..836bce0bf8 100644 --- a/core/src/com/unciv/logic/automation/NextTurnAutomation.kt +++ b/core/src/com/unciv/logic/automation/NextTurnAutomation.kt @@ -436,7 +436,7 @@ class NextTurnAutomation{ private fun reassignWorkedTiles(civInfo: CivilizationInfo) { for (city in civInfo.cities) { if (city.isPuppet && city.population.population > 9 - && city.resistanceCounter == 0) { + && !city.isInResistance()) { city.annexCity() } diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 5555f5d992..3a8f6bc864 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -119,6 +119,11 @@ class CityInfo { fun getTiles(): List = tiles.map { tileMap[it] } fun getWorkableTiles() = getTiles().filter { it in tilesInRange } + fun isCapital() = cityConstructions.isBuilt("Palace") + fun isConnectedToCapital() = civInfo.citiesConnectedToCapital.contains(this) + fun isInResistance() = resistanceCounter>0 + + fun getRuleset() = civInfo.gameInfo.ruleSet fun getCityResources(): ResourceSupplyList { @@ -224,9 +229,6 @@ class CityInfo { return stats } - fun isCapital() = cityConstructions.isBuilt("Palace") - fun isConnectedToCapital() = civInfo.citiesConnectedToCapital.contains(this) - internal fun getMaxHealth(): Int { return 200 + cityConstructions.getBuiltBuildings().sumBy { it.cityHealth } } @@ -254,7 +256,7 @@ class CityInfo { cityStats.update() tryUpdateRoadStatus() attackedThisTurn = false - if (resistanceCounter > 0) resistanceCounter-- + if (isInResistance()) resistanceCounter-- if (isPuppet) reassignWorkers() } diff --git a/core/src/com/unciv/logic/city/CityStats.kt b/core/src/com/unciv/logic/city/CityStats.kt index cad1057013..05104aaecc 100644 --- a/core/src/com/unciv/logic/city/CityStats.kt +++ b/core/src/com/unciv/logic/city/CityStats.kt @@ -474,7 +474,7 @@ class CityStats { Stats().apply { production=totalFood; food=-totalFood } } - if (cityInfo.resistanceCounter > 0) + if (cityInfo.isInResistance()) newFinalStatList.clear() // NOPE if (newFinalStatList.values.map { it.production }.sum() < 1) // Minimum production for things to progress diff --git a/core/src/com/unciv/ui/cityscreen/CityScreen.kt b/core/src/com/unciv/ui/cityscreen/CityScreen.kt index 884d9d088f..f9289656dd 100644 --- a/core/src/com/unciv/ui/cityscreen/CityScreen.kt +++ b/core/src/com/unciv/ui/cityscreen/CityScreen.kt @@ -12,9 +12,9 @@ import com.unciv.logic.HexMath import com.unciv.logic.city.CityInfo import com.unciv.logic.map.TileInfo import com.unciv.models.Tutorial -import com.unciv.models.translations.tr import com.unciv.models.stats.Stat import com.unciv.models.stats.Stats +import com.unciv.models.translations.tr import com.unciv.ui.tilegroups.TileSetStrings import com.unciv.ui.utils.* import com.unciv.ui.worldscreen.TileGroupMap @@ -151,7 +151,7 @@ class CityScreen(internal val city: CityInfo) : CameraStageBaseScreen() { table.add(Label(turnsToPopString + " (" + city.population.foodStored + "/" + city.population.getFoodToNextPopulation() + ")" ,skin)).colspan(columns).row() - if (city.resistanceCounter > 0) { + if (city.isInResistance()) { table.add(Label("In resistance for another [${city.resistanceCounter}] turns".tr(),skin)).colspan(columns).row() } diff --git a/core/src/com/unciv/ui/cityscreen/CityScreenCityPickerTable.kt b/core/src/com/unciv/ui/cityscreen/CityScreenCityPickerTable.kt index d188458888..054c71b16c 100644 --- a/core/src/com/unciv/ui/cityscreen/CityScreenCityPickerTable.kt +++ b/core/src/com/unciv/ui/cityscreen/CityScreenCityPickerTable.kt @@ -46,7 +46,7 @@ class CityScreenCityPickerTable(val cityScreen: CityScreen) : Table(){ } - if (city.resistanceCounter > 0) { + if (city.isInResistance()) { val resistanceImage = ImageGetter.getImage("StatIcons/Resistance") cityNameTable.add(resistanceImage).size(20f).padRight(5f) } diff --git a/core/src/com/unciv/ui/cityscreen/ConstructionsTable.kt b/core/src/com/unciv/ui/cityscreen/ConstructionsTable.kt index 67aa4fbc07..0f2e36fd38 100644 --- a/core/src/com/unciv/ui/cityscreen/ConstructionsTable.kt +++ b/core/src/com/unciv/ui/cityscreen/ConstructionsTable.kt @@ -10,8 +10,8 @@ import com.unciv.UncivGame import com.unciv.logic.city.CityInfo import com.unciv.logic.city.SpecialConstruction import com.unciv.models.ruleset.Building -import com.unciv.models.translations.tr import com.unciv.models.ruleset.unit.BaseUnit +import com.unciv.models.translations.tr import com.unciv.ui.utils.* import com.unciv.ui.worldscreen.optionstable.YesNoPopupTable @@ -152,7 +152,7 @@ class ConstructionsTable(val cityScreen: CityScreen) : Table(CameraStageBaseScre row() val purchaseConstructionButton: TextButton - if (construction.canBePurchased() && !city.isPuppet) { + if (!city.isPuppet && !city.isInResistance() && construction.canBePurchased()) { val constructionGoldCost = construction.getGoldCost(city.civInfo) purchaseConstructionButton = TextButton("Buy for [$constructionGoldCost] gold".tr(), CameraStageBaseScreen.skin) purchaseConstructionButton.onClick("coin") { diff --git a/core/src/com/unciv/ui/tilegroups/CityButton.kt b/core/src/com/unciv/ui/tilegroups/CityButton.kt index 297d7080c7..de130101c7 100644 --- a/core/src/com/unciv/ui/tilegroups/CityButton.kt +++ b/core/src/com/unciv/ui/tilegroups/CityButton.kt @@ -94,7 +94,7 @@ class CityButton(val city: CityInfo, internal val tileGroup: WorldTileGroup, ski iconTable.touchable=Touchable.enabled iconTable.background = ImageGetter.getRoundedEdgeTableBackground(city.civInfo.nation.getOuterColor()) - if (city.resistanceCounter > 0) { + if (city.isInResistance()) { val resistanceImage = ImageGetter.getImage("StatIcons/Resistance") iconTable.add(resistanceImage).size(20f).pad(2f).padLeft(5f) }