From d3b17117da6cd2b87c2c0167a03c6981a4a214b7 Mon Sep 17 00:00:00 2001 From: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> Date: Sat, 16 Apr 2022 22:31:13 +0200 Subject: [PATCH] Added a 'go to capital'-button in the diplomacy overview screen (#6546) --- .../unciv/logic/civilization/CivilizationInfo.kt | 3 +++ core/src/com/unciv/ui/trade/DiplomacyScreen.kt | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index dbb93879cc..ce57799ee4 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -29,6 +29,7 @@ import com.unciv.models.stats.Stats import com.unciv.models.translations.tr import com.unciv.ui.utils.MayaCalendar import com.unciv.ui.utils.toPercent +import com.unciv.ui.utils.withItem import com.unciv.ui.victoryscreen.RankingType import java.util.* import kotlin.NoSuchElementException @@ -548,6 +549,8 @@ class CivilizationInfo { for ((key, value) in giftAmount) otherCiv.addStat(key, value.toInt()) + otherCiv.exploredTiles = otherCiv.exploredTiles.withItem(getCapital().location) + questManager.justMet(otherCiv) // Include them in war with major pseudo-quest } diff --git a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt index 7700576964..3f325bed7d 100644 --- a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt +++ b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt @@ -394,6 +394,8 @@ class DiplomacyScreen( diplomacyTable.add(declareWarButton).row() } } + + diplomacyTable.add(getGoToOnMapButton(otherCiv)).row() val diplomaticMarriageButton = getDiplomaticMarriageButton(otherCiv) if (diplomaticMarriageButton != null) diplomacyTable.add(diplomaticMarriageButton).row() @@ -746,6 +748,9 @@ class DiplomacyScreen( diplomacyTable.add(demandsButton).row() if (isNotPlayersTurn()) demandsButton.disable() + if (otherCiv.getCapital().location in viewingCiv.exploredTiles) + diplomacyTable.add(getGoToOnMapButton(otherCiv)).row() + if (!otherCiv.isPlayerCivilization()) { // human players make their own choices diplomacyTable.add(getRelationshipTable(otherCivDiplomacyManager)).row() diplomacyTable.add(getDiplomacyModifiersTable(otherCivDiplomacyManager)).row() @@ -925,6 +930,15 @@ class DiplomacyScreen( rightSideTable.clear() rightSideTable.add(diplomacyTable) } + + private fun getGoToOnMapButton(civilization: CivilizationInfo): TextButton { + val goToOnMapButton = TextButton("Go To on Map", skin) + goToOnMapButton.onClick { + UncivGame.Current.setWorldScreen() + UncivGame.Current.worldScreen.mapHolder.setCenterPosition(civilization.getCapital().location, selectUnit = false) + } + return goToOnMapButton + } override fun resize(width: Int, height: Int) { super.resize(width, height)