mirror of
https://github.com/yairm210/Unciv.git
synced 2025-03-10 04:43:29 +07:00
Make so Citizen Management buttons don't work if Spectator (#6954)
This commit is contained in:
parent
ea03b97639
commit
e7a90f2ad0
@ -34,7 +34,8 @@ class CitizenManagementTable(val cityScreen: CityScreen) : Table() {
|
||||
val avoidCell = Table()
|
||||
avoidCell.touchable = Touchable.enabled
|
||||
avoidCell.add(avoidLabel).pad(5f)
|
||||
avoidCell.onClick { city.avoidGrowth = !city.avoidGrowth; city.reassignPopulation(); cityScreen.update() }
|
||||
if (cityScreen.canChangeState)
|
||||
avoidCell.onClick { city.avoidGrowth = !city.avoidGrowth; city.reassignPopulation(); cityScreen.update() }
|
||||
|
||||
avoidCell.background = ImageGetter.getBackground(if (city.avoidGrowth) colorSelected else colorButton)
|
||||
innerTable.add(avoidCell).colspan(2).growX().pad(3f)
|
||||
@ -47,7 +48,8 @@ class CitizenManagementTable(val cityScreen: CityScreen) : Table() {
|
||||
val cell = Table()
|
||||
cell.touchable = Touchable.enabled
|
||||
cell.add(label).pad(5f)
|
||||
cell.onClick { city.cityAIFocus = focus; city.reassignPopulation(); cityScreen.update() }
|
||||
if (cityScreen.canChangeState)
|
||||
cell.onClick { city.cityAIFocus = focus; city.reassignPopulation(); cityScreen.update() }
|
||||
|
||||
cell.background = ImageGetter.getBackground(if (city.cityAIFocus == focus) colorSelected else colorButton)
|
||||
innerTable.add(cell).growX().pad(3f)
|
||||
|
@ -123,6 +123,7 @@ class CityScreen(
|
||||
resetCitizensButton.onClick { city.reassignPopulation(resetLocked = true); update() }
|
||||
resetCitizensButtonHolder.add(resetCitizensButton)
|
||||
resetCitizensButtonHolder.pack()
|
||||
if (!canChangeState) resetCitizensButton.disable()
|
||||
stage.addActor(resetCitizensButtonHolder)
|
||||
val citizenManagementButton = "Citizen Management".toTextButton()
|
||||
citizenManagementButton.labelCell.pad(5f)
|
||||
@ -131,6 +132,7 @@ class CityScreen(
|
||||
citizenManagementVisible = true
|
||||
update()
|
||||
}
|
||||
if (!canChangeState) citizenManagementButton.disable()
|
||||
citizenManagementButtonHolder.add(citizenManagementButton)
|
||||
citizenManagementButtonHolder.pack()
|
||||
stage.addActor(citizenManagementButtonHolder)
|
||||
@ -193,7 +195,7 @@ class CityScreen(
|
||||
citizenManagementButtonHolder.isVisible = !citizenManagementVisible
|
||||
citizenManagementButtonHolder.setPosition(stage.width - posFromEdge,
|
||||
posFromEdge + resetCitizensButtonHolder.y + resetCitizensButtonHolder.height + 10f, Align.bottomRight)
|
||||
|
||||
|
||||
// In portrait mode only: calculate already occupied horizontal space
|
||||
val rightMargin = when {
|
||||
!isPortrait() -> 0f
|
||||
|
@ -42,16 +42,18 @@ class CityStatsTable(val cityScreen: CityScreen): Table() {
|
||||
val icon = Table()
|
||||
if (cityInfo.cityAIFocus.stat == stat) {
|
||||
icon.add(ImageGetter.getStatIcon(stat.name).surroundWithCircle(27f, false, color = selected))
|
||||
icon.onClick {
|
||||
cityInfo.cityAIFocus = CityFocus.NoFocus
|
||||
cityInfo.reassignPopulation(); cityScreen.update()
|
||||
}
|
||||
if (cityScreen.canChangeState)
|
||||
icon.onClick {
|
||||
cityInfo.cityAIFocus = CityFocus.NoFocus
|
||||
cityInfo.reassignPopulation(); cityScreen.update()
|
||||
}
|
||||
} else {
|
||||
icon.add(ImageGetter.getStatIcon(stat.name).surroundWithCircle(27f, false, color = Color.CLEAR))
|
||||
icon.onClick {
|
||||
cityInfo.cityAIFocus = cityInfo.cityAIFocus.safeValueOf(stat)
|
||||
cityInfo.reassignPopulation(); cityScreen.update()
|
||||
}
|
||||
if (cityScreen.canChangeState)
|
||||
icon.onClick {
|
||||
cityInfo.cityAIFocus = cityInfo.cityAIFocus.safeValueOf(stat)
|
||||
cityInfo.reassignPopulation(); cityScreen.update()
|
||||
}
|
||||
}
|
||||
miniStatsTable.add(icon).size(27f).padRight(5f)
|
||||
val valueToDisplay = if (stat == Stat.Happiness) cityInfo.cityStats.happinessList.values.sum() else amount
|
||||
@ -74,7 +76,8 @@ class CityStatsTable(val cityScreen: CityScreen): Table() {
|
||||
val unassignedPopString = "{Unassigned population}: ".tr() +
|
||||
cityInfo.population.getFreePopulation().toString() + "/" + cityInfo.population.population
|
||||
val unassignedPopLabel = unassignedPopString.toLabel()
|
||||
unassignedPopLabel.onClick { cityInfo.reassignPopulation(); cityScreen.update() }
|
||||
if (cityScreen.canChangeState)
|
||||
unassignedPopLabel.onClick { cityInfo.reassignPopulation(); cityScreen.update() }
|
||||
|
||||
var turnsToExpansionString =
|
||||
if (cityInfo.cityStats.currentCityStats.culture > 0 && cityInfo.expansion.getChoosableTiles().any()) {
|
||||
|
@ -18,15 +18,21 @@ class SpecialistAllocationTable(val cityScreen: CityScreen) : Table(BaseScreen.s
|
||||
// Auto/Manual Specialists Toggle
|
||||
// Color of "color" coming from Skin.json that's loaded into BaseScreen
|
||||
// 5 columns: unassignButton, AllocationTable, assignButton, SeparatorVertical, SpecialistsStatsTabe
|
||||
if (cityInfo.manualSpecialists) {
|
||||
val manualSpecialists = "Manual Specialists".toLabel().addBorder(5f, BaseScreen.skin.get("color", Color::class.java))
|
||||
manualSpecialists.onClick { cityInfo.manualSpecialists = false; cityInfo.reassignPopulation(); cityScreen.update() }
|
||||
add(manualSpecialists).colspan(5).row()
|
||||
} else {
|
||||
val autoSpecialists = "Auto Specialists".toLabel().addBorder(5f, BaseScreen.skin.get("color", Color::class.java))
|
||||
autoSpecialists.onClick { cityInfo.manualSpecialists = true; update() }
|
||||
add(autoSpecialists).colspan(5).row()
|
||||
}
|
||||
if (cityScreen.canChangeState)
|
||||
if (cityInfo.manualSpecialists) {
|
||||
val manualSpecialists = "Manual Specialists".toLabel()
|
||||
.addBorder(5f, BaseScreen.skin.get("color", Color::class.java))
|
||||
manualSpecialists.onClick {
|
||||
cityInfo.manualSpecialists = false
|
||||
cityInfo.reassignPopulation(); cityScreen.update()
|
||||
}
|
||||
add(manualSpecialists).colspan(5).row()
|
||||
} else {
|
||||
val autoSpecialists = "Auto Specialists".toLabel()
|
||||
.addBorder(5f, BaseScreen.skin.get("color", Color::class.java))
|
||||
autoSpecialists.onClick { cityInfo.manualSpecialists = true; update() }
|
||||
add(autoSpecialists).colspan(5).row()
|
||||
}
|
||||
for ((specialistName, maxSpecialists) in cityInfo.population.getMaxSpecialists()) {
|
||||
if (!cityInfo.getRuleset().specialists.containsKey(specialistName)) // specialist doesn't exist in this ruleset, probably a mod
|
||||
continue
|
||||
|
Loading…
Reference in New Issue
Block a user