mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-12 08:49:22 +07:00
Fixed crash when diplomacy values change while ending the turn
This commit is contained in:
@ -457,7 +457,7 @@ class CivilizationInfo {
|
|||||||
|
|
||||||
goldenAges.endTurn(getHappiness())
|
goldenAges.endTurn(getHappiness())
|
||||||
getCivUnits().forEach { it.endTurn() }
|
getCivUnits().forEach { it.endTurn() }
|
||||||
diplomacy.values.forEach { it.nextTurn() }
|
diplomacy.values.toList().forEach { it.nextTurn() } // we copy the diplomacy values so if it changes in-loop we won't crash
|
||||||
updateAllyCivForCityState()
|
updateAllyCivForCityState()
|
||||||
updateHasActiveGreatWall()
|
updateHasActiveGreatWall()
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ class EmpireOverviewScreen(private val viewingPlayer:CivilizationInfo) : CameraS
|
|||||||
onBackButtonClicked { UncivGame.Current.setWorldScreen() }
|
onBackButtonClicked { UncivGame.Current.setWorldScreen() }
|
||||||
|
|
||||||
val closeButton = "×".toLabel(Color.BLACK, 30).apply { this.setAlignment(Align.center) }
|
val closeButton = "×".toLabel(Color.BLACK, 30).apply { this.setAlignment(Align.center) }
|
||||||
.surroundWithCircle(30f).apply { circle.color=Color.RED }
|
.surroundWithCircle(50f).apply { circle.color = Color.RED.cpy().lerp(Color.BLACK, 0.1f) }
|
||||||
closeButton.onClick { UncivGame.Current.setWorldScreen() }
|
closeButton.onClick { UncivGame.Current.setWorldScreen() }
|
||||||
closeButton.y = stage.height - closeButton.height - 5
|
closeButton.y = stage.height - closeButton.height - 5
|
||||||
topTable.add(closeButton)
|
topTable.add(closeButton)
|
||||||
|
@ -48,8 +48,9 @@ class SpecialistAllocationTable(val cityScreen: CityScreen): Table(CameraStageBa
|
|||||||
|
|
||||||
private fun getAssignButton(assignedSpecialists: Int, maxSpecialists: Int, stat: Stat):Actor {
|
private fun getAssignButton(assignedSpecialists: Int, maxSpecialists: Int, stat: Stat):Actor {
|
||||||
if (assignedSpecialists >= maxSpecialists || cityInfo.isPuppet) return Table()
|
if (assignedSpecialists >= maxSpecialists || cityInfo.isPuppet) return Table()
|
||||||
val assignButton = "+".toLabel(Color.BLACK,24).apply { this.setAlignment(Align.center) }
|
val assignButton = "+".toLabel(Color.BLACK,24)
|
||||||
.surroundWithCircle(30f).apply { circle.color= Color.GREEN }
|
.apply { this.setAlignment(Align.center) }
|
||||||
|
.surroundWithCircle(30f).apply { circle.color= Color.GREEN.cpy().lerp(Color.BLACK,0.2f) }
|
||||||
assignButton.onClick {
|
assignButton.onClick {
|
||||||
cityInfo.population.specialists.add(stat, 1f)
|
cityInfo.population.specialists.add(stat, 1f)
|
||||||
cityInfo.cityStats.update()
|
cityInfo.cityStats.update()
|
||||||
@ -63,8 +64,9 @@ class SpecialistAllocationTable(val cityScreen: CityScreen): Table(CameraStageBa
|
|||||||
private fun getUnassignButton(assignedSpecialists: Int, stat: Stat):Actor {
|
private fun getUnassignButton(assignedSpecialists: Int, stat: Stat):Actor {
|
||||||
if (assignedSpecialists <= 0 || cityInfo.isPuppet) return Table()
|
if (assignedSpecialists <= 0 || cityInfo.isPuppet) return Table()
|
||||||
|
|
||||||
val unassignButton = "-".toLabel(Color.BLACK,24).apply { this.setAlignment(Align.center) }
|
val unassignButton = "-".toLabel(Color.BLACK,24)
|
||||||
.surroundWithCircle(30f).apply { circle.color= Color.RED }
|
.apply { this.setAlignment(Align.center) }
|
||||||
|
.surroundWithCircle(30f).apply { circle.color= Color.RED.cpy().lerp(Color.BLACK,0.1f) }
|
||||||
unassignButton.onClick {
|
unassignButton.onClick {
|
||||||
cityInfo.population.specialists.add(stat, -1f)
|
cityInfo.population.specialists.add(stat, -1f)
|
||||||
cityInfo.cityStats.update()
|
cityInfo.cityStats.update()
|
||||||
|
Reference in New Issue
Block a user