From 2ae6017f489e5eed6885cbe39a32db02264aaf00 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 20 Feb 2023 11:54:32 +0200 Subject: [PATCH] Attacking of any sort prevents udo of unit move --- .../com/unciv/ui/screens/worldscreen/WorldMapHolder.kt | 8 ++++---- .../unciv/ui/screens/worldscreen/bottombar/BattleTable.kt | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/src/com/unciv/ui/screens/worldscreen/WorldMapHolder.kt b/core/src/com/unciv/ui/screens/worldscreen/WorldMapHolder.kt index aef06da6c2..c3be51edba 100644 --- a/core/src/com/unciv/ui/screens/worldscreen/WorldMapHolder.kt +++ b/core/src/com/unciv/ui/screens/worldscreen/WorldMapHolder.kt @@ -32,7 +32,6 @@ import com.unciv.models.helpers.MapArrowType import com.unciv.models.helpers.MiscArrowTypes import com.unciv.models.ruleset.unique.UniqueType import com.unciv.ui.audio.SoundPlayer -import com.unciv.ui.screens.basescreen.BaseScreen import com.unciv.ui.components.KeyCharAndCode import com.unciv.ui.components.UnitGroup import com.unciv.ui.components.ZoomableScrollPane @@ -49,6 +48,7 @@ import com.unciv.ui.components.tilegroups.TileGroupMap import com.unciv.ui.components.tilegroups.TileSetStrings import com.unciv.ui.components.tilegroups.WorldTileGroup import com.unciv.ui.images.ImageGetter +import com.unciv.ui.screens.basescreen.BaseScreen import com.unciv.ui.screens.basescreen.UncivStage import com.unciv.utils.Log import com.unciv.utils.concurrency.Concurrency @@ -271,7 +271,8 @@ class WorldMapHolder( selectedUnit.action = null // remove explore on manual move SoundPlayer.play(UncivSound.Whoosh) if (selectedUnit.currentTile != targetTile) - selectedUnit.action = "moveTo " + targetTile.position.x.toInt() + "," + targetTile.position.y.toInt() + selectedUnit.action = + "moveTo ${targetTile.position.x.toInt()},${targetTile.position.y.toInt()}" if (selectedUnit.currentMovement > 0) worldScreen.bottomUnitTable.selectUnit(selectedUnit) worldScreen.shouldUpdate = true @@ -279,8 +280,7 @@ class WorldMapHolder( moveUnitToTargetTile(selectedUnits.subList(1, selectedUnits.size), targetTile) } else removeUnitActionOverlay() //we're done here - if (UncivGame.Current.settings.autoUnitCycle && - selectedUnit.currentMovement == 0f) + if (UncivGame.Current.settings.autoUnitCycle && selectedUnit.currentMovement == 0f) worldScreen.switchToNextUnit() } catch (ex: Exception) { diff --git a/core/src/com/unciv/ui/screens/worldscreen/bottombar/BattleTable.kt b/core/src/com/unciv/ui/screens/worldscreen/bottombar/BattleTable.kt index 76e3615360..4dd7b064b6 100644 --- a/core/src/com/unciv/ui/screens/worldscreen/bottombar/BattleTable.kt +++ b/core/src/com/unciv/ui/screens/worldscreen/bottombar/BattleTable.kt @@ -18,8 +18,6 @@ import com.unciv.models.UncivSound import com.unciv.models.ruleset.unique.UniqueType import com.unciv.models.translations.tr import com.unciv.ui.audio.SoundPlayer -import com.unciv.ui.images.ImageGetter -import com.unciv.ui.screens.basescreen.BaseScreen import com.unciv.ui.components.Fonts import com.unciv.ui.components.UnitGroup import com.unciv.ui.components.extensions.addBorderAllowOpacity @@ -28,6 +26,8 @@ import com.unciv.ui.components.extensions.disable import com.unciv.ui.components.extensions.onClick import com.unciv.ui.components.extensions.toLabel import com.unciv.ui.components.extensions.toTextButton +import com.unciv.ui.images.ImageGetter +import com.unciv.ui.screens.basescreen.BaseScreen import com.unciv.ui.screens.worldscreen.WorldScreen import com.unciv.ui.screens.worldscreen.bottombar.BattleTableHelpers.flashWoundedCombatants import com.unciv.ui.screens.worldscreen.bottombar.BattleTableHelpers.getHealthBar @@ -300,6 +300,7 @@ class BattleTable(val worldScreen: WorldScreen): Table() { // There was a direct worldScreen.update() call here, removing its 'private' but not the comment justifying the modifier. // My tests (desktop only) show the red-flash animations look just fine without. worldScreen.shouldUpdate = true + worldScreen.preActionGameInfo = worldScreen.gameInfo // Reset - can no longer undo //Gdx.graphics.requestRendering() // Use this if immediate rendering is required if (!canStillAttack) return