BNW: Update logic around Cultural Victories

This commit is contained in:
Rob Loach 2025-09-16 20:57:45 -04:00
parent 07ce66c77a
commit b5c44e3a22
No known key found for this signature in database
GPG Key ID: 627C60834A74A21A
2 changed files with 11 additions and 15 deletions

View File

@ -115,7 +115,7 @@ class Milestone(val uniqueDescription: String, private val parentVictory: Victor
* Gets the percentage progress of one civilization's countable against another's countable.
*
* @return The progress percentage (0-100). When the result is >100, it qualifies as "more than".
* @see getMoreCountableThanOtherCivRelevent()
* @see getMoreCountableThanOtherCivRelevant()
*/
@Readonly
fun getMoreCountableThanOtherCivPercent(civ: Civilization, otherCiv: Civilization): Float {
@ -134,7 +134,7 @@ class Milestone(val uniqueDescription: String, private val parentVictory: Victor
* @see getMoreCountableThanOtherCivPercent()
*/
@Readonly
fun getMoreCountableThanOtherCivRelevent(civ: Civilization, otherCiv: Civilization): Boolean =
fun getMoreCountableThanOtherCivRelevant(civ: Civilization, otherCiv: Civilization): Boolean =
civ != otherCiv && otherCiv.isMajorCiv() && otherCiv.isAlive()
@Readonly
@ -151,11 +151,10 @@ class Milestone(val uniqueDescription: String, private val parentVictory: Victor
originalMajorCapitalsOwned(civInfo) == civsWithPotentialCapitalsToOwn(civInfo.gameInfo).size
MilestoneType.CompletePolicyBranches ->
civInfo.policies.completedBranches.size >= params[0].toInt()
MilestoneType.MoreCountableThanEachPlayer ->
civInfo.gameInfo.civilizations.filter {
getMoreCountableThanOtherCivRelevent(civInfo, it) &&
getMoreCountableThanOtherCivPercent(civInfo, it) > 100f
}.isNotEmpty()
MilestoneType.MoreCountableThanEachPlayer -> {
val relevantCivs = civInfo.gameInfo.civilizations.filter { getMoreCountableThanOtherCivRelevant(civInfo, it) }
relevantCivs.isNotEmpty() && relevantCivs.all { getMoreCountableThanOtherCivPercent(civInfo, it) > 100f }
}
MilestoneType.BuildingBuiltGlobally -> civInfo.gameInfo.getCities().any {
it.cityConstructions.isBuilt(params[0])
}
@ -218,12 +217,9 @@ class Milestone(val uniqueDescription: String, private val parentVictory: Victor
"{$uniqueDescription} (${amountDone.tr()}/${amountToDo.tr()})"
}
MilestoneType.MoreCountableThanEachPlayer -> {
var amountToDo = 0; var amountDone = 0;
for (otherCiv in civInfo.gameInfo.civilizations) {
if (!getMoreCountableThanOtherCivRelevent(civInfo, otherCiv)) continue
amountToDo++
if (getMoreCountableThanOtherCivPercent(civInfo, otherCiv) > 100f) amountDone++
}
val relevantCivs = civInfo.gameInfo.civilizations.filter { getMoreCountableThanOtherCivRelevant(civInfo, it) }
val amountToDo = relevantCivs.size
val amountDone = relevantCivs.count { getMoreCountableThanOtherCivPercent(civInfo, it) > 100f }
if (civInfo.shouldHideCivCount())
"{$uniqueDescription} (${amountDone.tr()}/?)"
else
@ -337,7 +333,7 @@ class Milestone(val uniqueDescription: String, private val parentVictory: Victor
MilestoneType.MoreCountableThanEachPlayer -> {
val hideCivCount = civInfo.shouldHideCivCount()
for (otherCiv in civInfo.gameInfo.civilizations) {
if (!getMoreCountableThanOtherCivRelevent(civInfo, otherCiv)) continue
if (!getMoreCountableThanOtherCivRelevant(civInfo, otherCiv)) continue
if (hideCivCount && !civInfo.knows(otherCiv)) continue
val civName = if (civInfo.knows(otherCiv)) otherCiv.civName else Constants.unknownNationName
val percent = getMoreCountableThanOtherCivPercent(civInfo, otherCiv)

View File

@ -248,7 +248,7 @@ class VictoryScreenIllustrations(
MilestoneType.MoreCountableThanEachPlayer -> {
var amountDone = 0; var amountToDo = 0;
for (otherCiv in civ.gameInfo.civilizations) {
if (!milestone.getMoreCountableThanOtherCivRelevent(civ, otherCiv)) continue
if (!milestone.getMoreCountableThanOtherCivRelevant(civ, otherCiv)) continue
amountToDo++
if (milestone.getMoreCountableThanOtherCivPercent(civ, otherCiv) > 100f) amountDone++
}