Hide Unmet Civ and Capital Names in the Victory Status Screen (#6742)

* Hide the names of unmet yet alive civs in the victory screen.

Mainly affects the DestroyAllPlayers victory but the CaptureAllCapitals (as capital name) and WorldReligion victory code is updated accordingly.

* Redundant condition since dead civs can't hold cities.

* Formatting + undid CaptureAllCapitals name obscuring since there could be some cases where the known capital name suddenly becomes unknown.

* Parameterized if statement

* Hide other capital names until the tile is explored.

* New constant for an unknown city name.

Co-authored-by: OptimizedForDensity <>
This commit is contained in:
OptimizedForDensity
2022-05-11 04:46:37 -04:00
committed by GitHub
parent 531906f5ba
commit 5a78c59405
2 changed files with 15 additions and 6 deletions

View File

@ -43,6 +43,7 @@ object Constants {
const val openBorders = "Open Borders"
const val random = "Random"
const val unknownNationName = "???"
const val unknownCityName = "???"
const val fort = "Fort"

View File

@ -2,6 +2,7 @@ package com.unciv.models.ruleset
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
import com.unciv.Constants
import com.unciv.models.stats.INamed
import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.models.Counter
@ -202,14 +203,20 @@ class Milestone(val uniqueDescription: String, private val parentVictory: Victor
MilestoneType.DestroyAllPlayers -> {
val majorCivs = civInfo.gameInfo.civilizations.filter { it.isMajorCiv() && it != civInfo }
for (civ in majorCivs) {
buttons.add(getMilestoneButton("Destroy [${civ.civName}]", !civ.isAlive()))
val milestoneText =
if (civInfo.knows(civ) || !civ.isAlive()) "Destroy [${civ.civName}]"
else "Destroy [${Constants.unknownNationName}]"
buttons.add(getMilestoneButton(milestoneText, !civ.isAlive()))
}
}
MilestoneType.CaptureAllCapitals -> {
val originalCapitals = civInfo.gameInfo.getCities().filter { it.isOriginalCapital }
for (city in originalCapitals) {
buttons.add(getMilestoneButton("Capture [${city.name}]", city.civInfo == civInfo))
val milestoneText =
if (civInfo.exploredTiles.contains(city.location)) "Capture [${city.name}]"
else "Capture [${Constants.unknownCityName}]"
buttons.add(getMilestoneButton(milestoneText, city.civInfo == civInfo))
}
}
@ -223,10 +230,11 @@ class Milestone(val uniqueDescription: String, private val parentVictory: Victor
val majorCivs = civInfo.gameInfo.civilizations.filter { it.isMajorCiv() }
val civReligion = civInfo.religionManager.religion
for (civ in majorCivs) {
if (civReligion == null || (civReligion.isPantheon() && civInfo != civ) || !civ.religionManager.isMajorityReligionForCiv(civReligion))
buttons.add(getMilestoneButton("Majority religion of [${civ.civName}]", false))
else
buttons.add(getMilestoneButton("Majority religion of [${civ.civName}]", true))
val milestoneText =
if (civInfo.knows(civ) || !civ.isAlive()) "Majority religion of [${civ.civName}]"
else "Majority religion of [${Constants.unknownNationName}]"
val milestoneMet = (civReligion != null && (!civReligion.isPantheon() || civInfo == civ) && civ.religionManager.isMajorityReligionForCiv(civReligion))
buttons.add(getMilestoneButton(milestoneText, milestoneMet))
}
}
}