mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-11 16:29:48 +07:00
Resolved #3422 - added fast switch between adjacent cities in city screen
This commit is contained in:
@ -574,6 +574,7 @@ The city will not produce anything. =
|
||||
Worked by [cityName] =
|
||||
Lock =
|
||||
Unlock =
|
||||
Move to city =
|
||||
|
||||
# Technology UI
|
||||
|
||||
|
@ -13,6 +13,7 @@ import kotlin.math.roundToInt
|
||||
class CityScreenTileTable(private val cityScreen: CityScreen): Table() {
|
||||
private val innerTable = Table()
|
||||
val city = cityScreen.city
|
||||
|
||||
init {
|
||||
innerTable.background = ImageGetter.getBackground(ImageGetter.getBlue().lerp(Color.BLACK, 0.5f))
|
||||
add(innerTable).pad(2f).fill()
|
||||
@ -45,7 +46,7 @@ class CityScreenTileTable(private val cityScreen: CityScreen): Table(){
|
||||
"Would you like to purchase [Tile] for [$goldCostOfTile] gold?".tr()
|
||||
YesNoPopup(purchasePrompt, { city.expansion.buyTile(selectedTile);UncivGame.Current.setScreen(CityScreen(city)) }, cityScreen).open()
|
||||
}
|
||||
if((goldCostOfTile>city.civInfo.gold && !city.civInfo.gameInfo.gameParameters.godMode)
|
||||
if (goldCostOfTile > city.civInfo.gold && !city.civInfo.gameInfo.gameParameters.godMode
|
||||
|| city.isPuppet
|
||||
|| !cityScreen.canChangeState)
|
||||
buyTileButton.disable()
|
||||
@ -53,10 +54,8 @@ class CityScreenTileTable(private val cityScreen: CityScreen): Table(){
|
||||
innerTable.add(buyTileButton).row()
|
||||
}
|
||||
|
||||
if(city.civInfo.cities.filterNot { it==city }
|
||||
.any { it.isWorked(selectedTile) }) {
|
||||
if (city.civInfo.cities.filterNot { it == city }.any { it.isWorked(selectedTile) })
|
||||
innerTable.add("Worked by [${selectedTile.getWorkingCity()!!.name}]".toLabel()).row()
|
||||
}
|
||||
|
||||
if (city.isWorked(selectedTile)) {
|
||||
if (selectedTile.isLocked()) {
|
||||
@ -68,8 +67,7 @@ class CityScreenTileTable(private val cityScreen: CityScreen): Table(){
|
||||
}
|
||||
if (!cityScreen.canChangeState) unlockButton.disable()
|
||||
innerTable.add(unlockButton).row()
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
val lockButton = "Lock".toTextButton()
|
||||
lockButton.onClick {
|
||||
city.lockedTiles.add(selectedTile.position)
|
||||
@ -80,6 +78,9 @@ class CityScreenTileTable(private val cityScreen: CityScreen): Table(){
|
||||
innerTable.add(lockButton).row()
|
||||
}
|
||||
}
|
||||
if (selectedTile.isCityCenter() && selectedTile.getCity() != city && selectedTile.getCity()!!.civInfo == city.civInfo)
|
||||
innerTable.add("Move to city".toTextButton().onClick { cityScreen.game.setScreen(CityScreen(selectedTile.getCity()!!)) })
|
||||
|
||||
innerTable.pack()
|
||||
pack()
|
||||
}
|
||||
|
Reference in New Issue
Block a user