From fa72cfe66742cf7a2c7ad63255dd287c2a33541c Mon Sep 17 00:00:00 2001 From: yairm210 Date: Sat, 18 Jan 2025 19:16:39 +0200 Subject: [PATCH] Fixed unique buildings/improvements with zeroed stat not showing before vs after --- .../ui/objectdescriptions/BuildingDescriptions.kt | 14 ++++++++------ .../objectdescriptions/ImprovementDescriptions.kt | 7 ++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/core/src/com/unciv/ui/objectdescriptions/BuildingDescriptions.kt b/core/src/com/unciv/ui/objectdescriptions/BuildingDescriptions.kt index 223b6f6dc343d..bde575aa118a0 100644 --- a/core/src/com/unciv/ui/objectdescriptions/BuildingDescriptions.kt +++ b/core/src/com/unciv/ui/objectdescriptions/BuildingDescriptions.kt @@ -117,14 +117,16 @@ object BuildingDescriptions { fun getDifferences( originalBuilding: Building, replacementBuilding: Building ): Sequence = sequence { - for ((key, value) in replacementBuilding) - if (value != originalBuilding[key]) - yield(FormattedLine( key.name.tr() + " " +"[${value.toInt()}] vs [${originalBuilding[key].toInt()}]".tr(), indent=1)) + + for (stat in Stat.entries) // Do not iterate on object since that excludes zero values + if (replacementBuilding[stat] != originalBuilding[stat]) + yield(FormattedLine( stat.name.tr() + " " +"[${replacementBuilding[stat].toInt()}] vs [${originalBuilding[stat].toInt()}]".tr(), indent=1)) val originalStatBonus = originalBuilding.getStatPercentageBonuses(null) - for ((key, value) in replacementBuilding.getStatPercentageBonuses(null)) - if (value != originalStatBonus[key]) - yield(FormattedLine("[${value.toInt()}]% ".tr() + key.name.tr() + " vs [${originalStatBonus[key].toInt()}]% ".tr() + key.name.tr(), indent = 1)) + val replacementStatBonus = replacementBuilding.getStatPercentageBonuses(null) + for (stat in Stat.entries) + if (replacementStatBonus[stat] != originalStatBonus[stat]) + yield(FormattedLine("[${replacementStatBonus[stat].toInt()}]% ".tr() + stat.name.tr() + " vs [${originalStatBonus[stat].toInt()}]% ".tr() + stat.name.tr(), indent = 1)) if (replacementBuilding.maintenance != originalBuilding.maintenance) yield(FormattedLine("{Maintenance} ".tr() + "[${replacementBuilding.maintenance}] vs [${originalBuilding.maintenance}]".tr(), indent=1)) diff --git a/core/src/com/unciv/ui/objectdescriptions/ImprovementDescriptions.kt b/core/src/com/unciv/ui/objectdescriptions/ImprovementDescriptions.kt index 06233ae3d2975..457baa38eec15 100644 --- a/core/src/com/unciv/ui/objectdescriptions/ImprovementDescriptions.kt +++ b/core/src/com/unciv/ui/objectdescriptions/ImprovementDescriptions.kt @@ -6,6 +6,7 @@ import com.unciv.models.ruleset.tile.TileImprovement import com.unciv.models.ruleset.tile.TileResource import com.unciv.models.ruleset.unique.Unique import com.unciv.models.ruleset.unique.UniqueType +import com.unciv.models.stats.Stat import com.unciv.models.translations.tr import com.unciv.ui.screens.civilopediascreen.FormattedLine @@ -21,9 +22,9 @@ object ImprovementDescriptions { fun getDifferences( ruleset: Ruleset, originalImprovement: TileImprovement, replacementImprovement: TileImprovement ): Sequence = sequence { - for ((key, value) in replacementImprovement) - if (value != originalImprovement[key]) - yield(FormattedLine( key.name.tr() + " " +"[${value.toInt()}] vs [${originalImprovement[key].toInt()}]".tr(), indent=1)) + for (stat in Stat.entries) // Do not iterate on object since that excludes zero values + if (replacementImprovement[stat] != originalImprovement[stat]) + yield(FormattedLine( stat.name.tr() + " " +"[${replacementImprovement[stat].toInt()}] vs [${originalImprovement[stat].toInt()}]".tr(), indent=1)) for (terrain in replacementImprovement.terrainsCanBeBuiltOn) if (terrain !in originalImprovement.terrainsCanBeBuiltOn)