mirror of
https://github.com/yairm210/Unciv.git
synced 2025-01-03 13:30:51 +07:00
Right-click/longpress for World screen city buttons (#10771)
* City buttons support right-click / long-press to enter CityScreen directly * City r-click: Rename helper and UI tips * City capitalization follows getCurrentTutorialTask precedent * City capitalization change applied to existing translation keys * Revert "City capitalization change applied to existing translation keys" This reverts commitc3638a0daf
. * Revert "City capitalization follows getCurrentTutorialTask precedent" This reverts commitb618f4cae3
. * City capitalization in new text follows getCurrentTutorialTask precedent
This commit is contained in:
parent
dd1f0142f1
commit
4a138478f6
@ -465,6 +465,9 @@
|
||||
{"text":"On the World screen, swipe the notification list to the right to temporarily hide it. Click the \"Bell\" button to display them again."},
|
||||
{"text":"The default state for the notification list can be set in Options > Display > UI - Notifications on world screen."},
|
||||
{},
|
||||
{"text":"Entering a city screen quickly","header":5,"color":"#fa0"},
|
||||
{"text":"You can Right-click or long press a city button on the World screen. The result is the same as tapping it twice - once to select and move the button, again to trigger a reaction: show the city screen (if the city is yours to inspect), or offer the foreign city info popup."},
|
||||
{},
|
||||
{"text":"Additional controls for the construction queue","header":5,"color":"#fa0"},
|
||||
{"text":"Right-click or long press a construction item to open a popup menu with additional controls, allowing to manage production of the same item in all cities, by issuing the commands from the same City screen."},
|
||||
{"text":"The \"Disable\" option moves an item to a separated \"Disabled\" tab, preventing its automatic queueing by the \"Auto-assign city production\" option. To move a disabled item back to its initial place, enter again the popup menu, and choose \"Enable\"."},
|
||||
|
@ -24,6 +24,7 @@ import com.unciv.ui.components.extensions.toGroup
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.fonts.Fonts
|
||||
import com.unciv.ui.components.input.onClick
|
||||
import com.unciv.ui.components.input.onRightClick
|
||||
import com.unciv.ui.components.widgets.BorderedTable
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.popups.Popup
|
||||
@ -526,24 +527,29 @@ class CityButton(val city: City, private val tileGroup: TileGroup) : Table(BaseS
|
||||
// So you can click anywhere on the button to go to the city
|
||||
touchable = Touchable.childrenOnly
|
||||
|
||||
fun enterCityOrInfoPopup() {
|
||||
// second tap on the button will go to the city screen
|
||||
// if this city belongs to you and you are not iterating though the air units
|
||||
if (DebugUtils.VISIBLE_MAP || viewingPlayer.isSpectator()
|
||||
|| (belongsToViewingCiv() && !tileGroup.tile.airUnits.contains(unitTable.selectedUnit))) {
|
||||
GUI.pushScreen(CityScreen(city))
|
||||
} else if (viewingPlayer.knows(city.civ)) {
|
||||
foreignCityInfoPopup()
|
||||
}
|
||||
}
|
||||
|
||||
onClick {
|
||||
// clicking swings the button a little down to allow selection of units there.
|
||||
// this also allows to target selected units to move to the city tile from elsewhere.
|
||||
if (isButtonMoved) {
|
||||
// second tap on the button will go to the city screen
|
||||
// if this city belongs to you and you are not iterating though the air units
|
||||
if (DebugUtils.VISIBLE_MAP || viewingPlayer.isSpectator()
|
||||
|| (belongsToViewingCiv() && !tileGroup.tile.airUnits.contains(unitTable.selectedUnit))) {
|
||||
GUI.pushScreen(CityScreen(city))
|
||||
} else if (viewingPlayer.knows(city.civ)) {
|
||||
foreignCityInfoPopup()
|
||||
}
|
||||
enterCityOrInfoPopup()
|
||||
} else {
|
||||
moveButtonDown()
|
||||
if ((unitTable.selectedUnit == null || unitTable.selectedUnit!!.currentMovement == 0f) && belongsToViewingCiv())
|
||||
unitTable.citySelected(city)
|
||||
}
|
||||
}
|
||||
onRightClick(action = ::enterCityOrInfoPopup)
|
||||
|
||||
// when deselected, move city button to its original position
|
||||
if (unitTable.selectedCity != city
|
||||
|
Loading…
Reference in New Issue
Block a user