mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-29 06:51:30 -04:00
Population icon gets locked with doubleclick, clicks cycle between assigned and unassigned (#9428)
This commit is contained in:
parent
95ffbd6a6e
commit
e2b3432d84
@ -9,11 +9,11 @@ import com.unciv.GUI
|
|||||||
import com.unciv.UncivGame
|
import com.unciv.UncivGame
|
||||||
import com.unciv.logic.automation.Automation
|
import com.unciv.logic.automation.Automation
|
||||||
import com.unciv.logic.city.City
|
import com.unciv.logic.city.City
|
||||||
import com.unciv.models.ruleset.IConstruction
|
|
||||||
import com.unciv.logic.map.tile.Tile
|
import com.unciv.logic.map.tile.Tile
|
||||||
import com.unciv.models.TutorialTrigger
|
import com.unciv.models.TutorialTrigger
|
||||||
import com.unciv.models.UncivSound
|
import com.unciv.models.UncivSound
|
||||||
import com.unciv.models.ruleset.Building
|
import com.unciv.models.ruleset.Building
|
||||||
|
import com.unciv.models.ruleset.IConstruction
|
||||||
import com.unciv.models.ruleset.tile.TileImprovement
|
import com.unciv.models.ruleset.tile.TileImprovement
|
||||||
import com.unciv.models.ruleset.unique.LocalUniqueCache
|
import com.unciv.models.ruleset.unique.LocalUniqueCache
|
||||||
import com.unciv.models.ruleset.unique.UniqueType
|
import com.unciv.models.ruleset.unique.UniqueType
|
||||||
@ -21,23 +21,24 @@ import com.unciv.models.stats.Stat
|
|||||||
import com.unciv.models.translations.tr
|
import com.unciv.models.translations.tr
|
||||||
import com.unciv.ui.audio.CityAmbiencePlayer
|
import com.unciv.ui.audio.CityAmbiencePlayer
|
||||||
import com.unciv.ui.audio.SoundPlayer
|
import com.unciv.ui.audio.SoundPlayer
|
||||||
import com.unciv.ui.images.ImageGetter
|
|
||||||
import com.unciv.ui.popups.ConfirmPopup
|
|
||||||
import com.unciv.ui.components.tilegroups.TileGroupMap
|
|
||||||
import com.unciv.ui.popups.ToastPopup
|
|
||||||
import com.unciv.ui.components.tilegroups.CityTileGroup
|
|
||||||
import com.unciv.ui.components.tilegroups.CityTileState
|
|
||||||
import com.unciv.ui.components.tilegroups.TileSetStrings
|
|
||||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
|
||||||
import com.unciv.ui.components.KeyCharAndCode
|
import com.unciv.ui.components.KeyCharAndCode
|
||||||
import com.unciv.ui.screens.basescreen.RecreateOnResize
|
|
||||||
import com.unciv.ui.components.extensions.colorFromRGB
|
import com.unciv.ui.components.extensions.colorFromRGB
|
||||||
import com.unciv.ui.components.extensions.disable
|
import com.unciv.ui.components.extensions.disable
|
||||||
import com.unciv.ui.components.extensions.keyShortcuts
|
import com.unciv.ui.components.extensions.keyShortcuts
|
||||||
import com.unciv.ui.components.extensions.onActivation
|
import com.unciv.ui.components.extensions.onActivation
|
||||||
import com.unciv.ui.components.extensions.onClick
|
import com.unciv.ui.components.extensions.onClick
|
||||||
|
import com.unciv.ui.components.extensions.onDoubleClick
|
||||||
import com.unciv.ui.components.extensions.packIfNeeded
|
import com.unciv.ui.components.extensions.packIfNeeded
|
||||||
import com.unciv.ui.components.extensions.toTextButton
|
import com.unciv.ui.components.extensions.toTextButton
|
||||||
|
import com.unciv.ui.components.tilegroups.CityTileGroup
|
||||||
|
import com.unciv.ui.components.tilegroups.CityTileState
|
||||||
|
import com.unciv.ui.components.tilegroups.TileGroupMap
|
||||||
|
import com.unciv.ui.components.tilegroups.TileSetStrings
|
||||||
|
import com.unciv.ui.images.ImageGetter
|
||||||
|
import com.unciv.ui.popups.ConfirmPopup
|
||||||
|
import com.unciv.ui.popups.ToastPopup
|
||||||
|
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||||
|
import com.unciv.ui.screens.basescreen.RecreateOnResize
|
||||||
import com.unciv.ui.screens.worldscreen.WorldScreen
|
import com.unciv.ui.screens.worldscreen.WorldScreen
|
||||||
|
|
||||||
class CityScreen(
|
class CityScreen(
|
||||||
@ -313,6 +314,7 @@ class CityScreen(
|
|||||||
for (tileGroup in cityTileGroups) {
|
for (tileGroup in cityTileGroups) {
|
||||||
tileGroup.onClick { tileGroupOnClick(tileGroup, cityInfo) }
|
tileGroup.onClick { tileGroupOnClick(tileGroup, cityInfo) }
|
||||||
tileGroup.layerMisc.onClick { tileWorkedIconOnClick(tileGroup, cityInfo) }
|
tileGroup.layerMisc.onClick { tileWorkedIconOnClick(tileGroup, cityInfo) }
|
||||||
|
tileGroup.layerMisc.onDoubleClick { tileWorkedIconDoubleClick(tileGroup, cityInfo) }
|
||||||
tileGroups.add(tileGroup)
|
tileGroups.add(tileGroup)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,9 +350,7 @@ class CityScreen(
|
|||||||
if (!tile.providesYield() && city.population.getFreePopulation() > 0) {
|
if (!tile.providesYield() && city.population.getFreePopulation() > 0) {
|
||||||
city.workedTiles.add(tile.position)
|
city.workedTiles.add(tile.position)
|
||||||
game.settings.addCompletedTutorialTask("Reassign worked tiles")
|
game.settings.addCompletedTutorialTask("Reassign worked tiles")
|
||||||
} else if (tile.isWorked() && !tile.isLocked()) {
|
} else {
|
||||||
city.lockedTiles.add(tile.position)
|
|
||||||
} else if (tile.isLocked()) {
|
|
||||||
city.workedTiles.remove(tile.position)
|
city.workedTiles.remove(tile.position)
|
||||||
city.lockedTiles.remove(tile.position)
|
city.lockedTiles.remove(tile.position)
|
||||||
}
|
}
|
||||||
@ -361,7 +361,7 @@ class CityScreen(
|
|||||||
|
|
||||||
val price = city.expansion.getGoldCostOfTile(tile)
|
val price = city.expansion.getGoldCostOfTile(tile)
|
||||||
val purchasePrompt = "Currently you have [${city.civ.gold}] [Gold].".tr() + "\n\n" +
|
val purchasePrompt = "Currently you have [${city.civ.gold}] [Gold].".tr() + "\n\n" +
|
||||||
"Would you like to purchase [Tile] for [$price] [${Stat.Gold.character}]?".tr()
|
"Would you like to purchase [Tile] for [$price] [${Stat.Gold.character}]?".tr()
|
||||||
ConfirmPopup(
|
ConfirmPopup(
|
||||||
this,
|
this,
|
||||||
purchasePrompt,
|
purchasePrompt,
|
||||||
@ -377,6 +377,17 @@ class CityScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun tileWorkedIconDoubleClick(tileGroup: CityTileGroup, city: City) {
|
||||||
|
if (!canChangeState || city.isPuppet || tileGroup.tileState != CityTileState.WORKABLE) return
|
||||||
|
val tile = tileGroup.tile
|
||||||
|
|
||||||
|
if (tile.isWorked())
|
||||||
|
city.lockedTiles.add(tile.position)
|
||||||
|
|
||||||
|
update()
|
||||||
|
}
|
||||||
|
|
||||||
private fun tileGroupOnClick(tileGroup: CityTileGroup, city: City) {
|
private fun tileGroupOnClick(tileGroup: CityTileGroup, city: City) {
|
||||||
if (city.isPuppet) return
|
if (city.isPuppet) return
|
||||||
val tileInfo = tileGroup.tile
|
val tileInfo = tileGroup.tile
|
||||||
|
Loading…
x
Reference in New Issue
Block a user