Can no longer purchase constructions from cities in resistance

This commit is contained in:
Yair Morgenstern 2019-12-26 18:04:02 +02:00
parent eac9647829
commit 8a229c502c
7 changed files with 14 additions and 12 deletions

View File

@ -436,7 +436,7 @@ class NextTurnAutomation{
private fun reassignWorkedTiles(civInfo: CivilizationInfo) { private fun reassignWorkedTiles(civInfo: CivilizationInfo) {
for (city in civInfo.cities) { for (city in civInfo.cities) {
if (city.isPuppet && city.population.population > 9 if (city.isPuppet && city.population.population > 9
&& city.resistanceCounter == 0) { && !city.isInResistance()) {
city.annexCity() city.annexCity()
} }

View File

@ -119,6 +119,11 @@ class CityInfo {
fun getTiles(): List<TileInfo> = tiles.map { tileMap[it] } fun getTiles(): List<TileInfo> = tiles.map { tileMap[it] }
fun getWorkableTiles() = getTiles().filter { it in tilesInRange } 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 getRuleset() = civInfo.gameInfo.ruleSet
fun getCityResources(): ResourceSupplyList { fun getCityResources(): ResourceSupplyList {
@ -224,9 +229,6 @@ class CityInfo {
return stats return stats
} }
fun isCapital() = cityConstructions.isBuilt("Palace")
fun isConnectedToCapital() = civInfo.citiesConnectedToCapital.contains(this)
internal fun getMaxHealth(): Int { internal fun getMaxHealth(): Int {
return 200 + cityConstructions.getBuiltBuildings().sumBy { it.cityHealth } return 200 + cityConstructions.getBuiltBuildings().sumBy { it.cityHealth }
} }
@ -254,7 +256,7 @@ class CityInfo {
cityStats.update() cityStats.update()
tryUpdateRoadStatus() tryUpdateRoadStatus()
attackedThisTurn = false attackedThisTurn = false
if (resistanceCounter > 0) resistanceCounter-- if (isInResistance()) resistanceCounter--
if (isPuppet) reassignWorkers() if (isPuppet) reassignWorkers()
} }

View File

@ -474,7 +474,7 @@ class CityStats {
Stats().apply { production=totalFood; food=-totalFood } Stats().apply { production=totalFood; food=-totalFood }
} }
if (cityInfo.resistanceCounter > 0) if (cityInfo.isInResistance())
newFinalStatList.clear() // NOPE newFinalStatList.clear() // NOPE
if (newFinalStatList.values.map { it.production }.sum() < 1) // Minimum production for things to progress if (newFinalStatList.values.map { it.production }.sum() < 1) // Minimum production for things to progress

View File

@ -12,9 +12,9 @@ import com.unciv.logic.HexMath
import com.unciv.logic.city.CityInfo import com.unciv.logic.city.CityInfo
import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileInfo
import com.unciv.models.Tutorial import com.unciv.models.Tutorial
import com.unciv.models.translations.tr
import com.unciv.models.stats.Stat import com.unciv.models.stats.Stat
import com.unciv.models.stats.Stats import com.unciv.models.stats.Stats
import com.unciv.models.translations.tr
import com.unciv.ui.tilegroups.TileSetStrings import com.unciv.ui.tilegroups.TileSetStrings
import com.unciv.ui.utils.* import com.unciv.ui.utils.*
import com.unciv.ui.worldscreen.TileGroupMap 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() + ")" table.add(Label(turnsToPopString + " (" + city.population.foodStored + "/" + city.population.getFoodToNextPopulation() + ")"
,skin)).colspan(columns).row() ,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() table.add(Label("In resistance for another [${city.resistanceCounter}] turns".tr(),skin)).colspan(columns).row()
} }

View File

@ -46,7 +46,7 @@ class CityScreenCityPickerTable(val cityScreen: CityScreen) : Table(){
} }
if (city.resistanceCounter > 0) { if (city.isInResistance()) {
val resistanceImage = ImageGetter.getImage("StatIcons/Resistance") val resistanceImage = ImageGetter.getImage("StatIcons/Resistance")
cityNameTable.add(resistanceImage).size(20f).padRight(5f) cityNameTable.add(resistanceImage).size(20f).padRight(5f)
} }

View File

@ -10,8 +10,8 @@ import com.unciv.UncivGame
import com.unciv.logic.city.CityInfo import com.unciv.logic.city.CityInfo
import com.unciv.logic.city.SpecialConstruction import com.unciv.logic.city.SpecialConstruction
import com.unciv.models.ruleset.Building import com.unciv.models.ruleset.Building
import com.unciv.models.translations.tr
import com.unciv.models.ruleset.unit.BaseUnit import com.unciv.models.ruleset.unit.BaseUnit
import com.unciv.models.translations.tr
import com.unciv.ui.utils.* import com.unciv.ui.utils.*
import com.unciv.ui.worldscreen.optionstable.YesNoPopupTable import com.unciv.ui.worldscreen.optionstable.YesNoPopupTable
@ -152,7 +152,7 @@ class ConstructionsTable(val cityScreen: CityScreen) : Table(CameraStageBaseScre
row() row()
val purchaseConstructionButton: TextButton val purchaseConstructionButton: TextButton
if (construction.canBePurchased() && !city.isPuppet) { if (!city.isPuppet && !city.isInResistance() && construction.canBePurchased()) {
val constructionGoldCost = construction.getGoldCost(city.civInfo) val constructionGoldCost = construction.getGoldCost(city.civInfo)
purchaseConstructionButton = TextButton("Buy for [$constructionGoldCost] gold".tr(), CameraStageBaseScreen.skin) purchaseConstructionButton = TextButton("Buy for [$constructionGoldCost] gold".tr(), CameraStageBaseScreen.skin)
purchaseConstructionButton.onClick("coin") { purchaseConstructionButton.onClick("coin") {

View File

@ -94,7 +94,7 @@ class CityButton(val city: CityInfo, internal val tileGroup: WorldTileGroup, ski
iconTable.touchable=Touchable.enabled iconTable.touchable=Touchable.enabled
iconTable.background = ImageGetter.getRoundedEdgeTableBackground(city.civInfo.nation.getOuterColor()) iconTable.background = ImageGetter.getRoundedEdgeTableBackground(city.civInfo.nation.getOuterColor())
if (city.resistanceCounter > 0) { if (city.isInResistance()) {
val resistanceImage = ImageGetter.getImage("StatIcons/Resistance") val resistanceImage = ImageGetter.getImage("StatIcons/Resistance")
iconTable.add(resistanceImage).size(20f).pad(2f).padLeft(5f) iconTable.add(resistanceImage).size(20f).pad(2f).padLeft(5f)
} }