diff --git a/core/src/com/unciv/ui/utils/KeyCharAndCode.kt b/core/src/com/unciv/ui/utils/KeyCharAndCode.kt index 2e0a487bd2..02c507e2cf 100644 --- a/core/src/com/unciv/ui/utils/KeyCharAndCode.kt +++ b/core/src/com/unciv/ui/utils/KeyCharAndCode.kt @@ -58,6 +58,7 @@ data class KeyCharAndCode(val char: Char, val code: Int) { val NUMPAD_ENTER = KeyCharAndCode(Input.Keys.NUMPAD_ENTER) val SPACE = KeyCharAndCode(Input.Keys.SPACE) val DEL = KeyCharAndCode(Input.Keys.FORWARD_DEL) // Gdx "DEL" is just plain wrong! + val TAB = KeyCharAndCode(Input.Keys.TAB) /** Guaranteed to be ignored by [KeyShortcutDispatcher] and never to be generated for an actual event, used as fallback to ensure no action is taken */ val UNKNOWN = KeyCharAndCode(Input.Keys.UNKNOWN) diff --git a/core/src/com/unciv/ui/worldscreen/WorldMapHolder.kt b/core/src/com/unciv/ui/worldscreen/WorldMapHolder.kt index 74b8237e90..919d34b3e7 100644 --- a/core/src/com/unciv/ui/worldscreen/WorldMapHolder.kt +++ b/core/src/com/unciv/ui/worldscreen/WorldMapHolder.kt @@ -37,11 +37,14 @@ import com.unciv.ui.map.TileGroupMap import com.unciv.ui.tilegroups.TileGroup import com.unciv.ui.tilegroups.TileSetStrings import com.unciv.ui.tilegroups.WorldTileGroup +import com.unciv.ui.utils.KeyCharAndCode import com.unciv.ui.utils.UnitGroup import com.unciv.ui.utils.ZoomableScrollPane import com.unciv.ui.utils.extensions.center import com.unciv.ui.utils.extensions.colorFromRGB import com.unciv.ui.utils.extensions.darken +import com.unciv.ui.utils.extensions.keyShortcuts +import com.unciv.ui.utils.extensions.onActivation import com.unciv.ui.utils.extensions.onClick import com.unciv.ui.utils.extensions.surroundWithCircle import com.unciv.ui.utils.extensions.toLabel @@ -454,12 +457,13 @@ class WorldMapHolder( val unitsThatCanMove = dto.unitToTurnsToDestination.keys.filter { it.currentMovement > 0 } if (unitsThatCanMove.isEmpty()) moveHereButton.color.a = 0.5f else { - moveHereButton.onClick(UncivSound.Silent) { + moveHereButton.onActivation(UncivSound.Silent) { UncivGame.Current.settings.addCompletedTutorialTask("Move unit") if (unitsThatCanMove.any { it.baseUnit.movesLikeAirUnits() }) UncivGame.Current.settings.addCompletedTutorialTask("Move an air unit") moveUnitToTargetTile(unitsThatCanMove, dto.tileInfo) } + moveHereButton.keyShortcuts.add(KeyCharAndCode.TAB) } return moveHereButton } @@ -475,12 +479,13 @@ class WorldMapHolder( unitIcon.y = buttonSize - unitIcon.height swapWithButton.addActor(unitIcon) - swapWithButton.onClick(UncivSound.Silent) { + swapWithButton.onActivation(UncivSound.Silent) { UncivGame.Current.settings.addCompletedTutorialTask("Move unit") if (dto.unit.baseUnit.movesLikeAirUnits()) UncivGame.Current.settings.addCompletedTutorialTask("Move an air unit") swapMoveUnitToTargetTile(dto.unit, dto.tileInfo) } + swapWithButton.keyShortcuts.add(KeyCharAndCode.TAB) return swapWithButton } diff --git a/core/src/com/unciv/ui/worldscreen/status/NextTurnButton.kt b/core/src/com/unciv/ui/worldscreen/status/NextTurnButton.kt index edd239ba4b..57690dfada 100644 --- a/core/src/com/unciv/ui/worldscreen/status/NextTurnButton.kt +++ b/core/src/com/unciv/ui/worldscreen/status/NextTurnButton.kt @@ -6,6 +6,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.unciv.models.translations.tr import com.unciv.ui.utils.BaseScreen import com.unciv.ui.utils.KeyCharAndCode +import com.unciv.ui.utils.KeyShortcut import com.unciv.ui.utils.extensions.isEnabled import com.unciv.ui.utils.extensions.keyShortcuts import com.unciv.ui.utils.extensions.onActivation @@ -21,6 +22,8 @@ class NextTurnButton( onActivation { nextTurnAction.action() } keyShortcuts.add(Input.Keys.SPACE) keyShortcuts.add('n') + // Let unit actions override this for command "Wait". + keyShortcuts.add(KeyShortcut(KeyCharAndCode('z'), -100)) } fun update(isSomethingOpen: Boolean,