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) {
for (city in civInfo.cities) {
if (city.isPuppet && city.population.population > 9
&& city.resistanceCounter == 0) {
&& !city.isInResistance()) {
city.annexCity()
}

View File

@ -119,6 +119,11 @@ class CityInfo {
fun getTiles(): List<TileInfo> = 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()
}

View File

@ -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

View File

@ -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()
}

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")
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.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") {

View File

@ -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)
}