diff --git a/core/src/com/unciv/logic/city/CityConstructions.kt b/core/src/com/unciv/logic/city/CityConstructions.kt index 3a1347f199..3acc93134a 100644 --- a/core/src/com/unciv/logic/city/CityConstructions.kt +++ b/core/src/com/unciv/logic/city/CityConstructions.kt @@ -396,9 +396,15 @@ class CityConstructions { if (isQueueFull()) return if (currentConstructionFromQueue == "" || currentConstructionFromQueue == "Nothing") { currentConstructionFromQueue = constructionName - currentConstructionIsUserSet = true + } else if (getConstruction(constructionQueue.last()) is PerpetualConstruction) { + if (getConstruction(constructionName) is PerpetualConstruction) { // perpetual constructions will replace each other + constructionQueue.removeAt(constructionQueue.size - 1) + constructionQueue.add(constructionName) + } else + constructionQueue.add(constructionQueue.size - 1, constructionName) // insert new construction before perpetual one } else constructionQueue.add(constructionName) + currentConstructionIsUserSet = true } /** If this was done automatically, we should automatically try to choose a new construction and treat it as such */ diff --git a/core/src/com/unciv/ui/cityscreen/CityInfoTable.kt b/core/src/com/unciv/ui/cityscreen/CityInfoTable.kt index aa5edcac6e..f810ca9a18 100644 --- a/core/src/com/unciv/ui/cityscreen/CityInfoTable.kt +++ b/core/src/com/unciv/ui/cityscreen/CityInfoTable.kt @@ -115,7 +115,7 @@ class CityInfoTable(private val cityScreen: CityScreen) : Table(CameraStageBaseS }).open() } if ((cityScreen.city.hasSoldBuildingThisTurn && !cityScreen.city.civInfo.gameInfo.gameParameters.godMode) || cityScreen.city.isPuppet - || !UncivGame.Current.worldScreen.isPlayersTurn) + || !UncivGame.Current.worldScreen.isPlayersTurn || !cityScreen.canChangeState) sellBuildingButton.disable() } wonderDetailsTable.addSeparator() diff --git a/core/src/com/unciv/ui/cityscreen/CityScreenCityPickerTable.kt b/core/src/com/unciv/ui/cityscreen/CityScreenCityPickerTable.kt index 944eb723c9..720e5f39ac 100644 --- a/core/src/com/unciv/ui/cityscreen/CityScreenCityPickerTable.kt +++ b/core/src/com/unciv/ui/cityscreen/CityScreenCityPickerTable.kt @@ -47,7 +47,7 @@ class CityScreenCityPickerTable(val cityScreen: CityScreen) : Table(){ } val currentCityLabel = city.name.toLabel(fontSize = 30, fontColor = civInfo.nation.getInnerColor()) - currentCityLabel.onClick { + if (cityScreen.canChangeState) currentCityLabel.onClick { val editCityNamePopup = Popup(cityScreen) val textArea = TextField(city.name, CameraStageBaseScreen.skin) textArea.alignment = Align.center