Fixed unique buildings/improvements with zeroed stat not showing before vs after

This commit is contained in:
yairm210 2025-01-18 19:16:39 +02:00
parent 2574bfda74
commit 5f58fe3eb8
2 changed files with 12 additions and 9 deletions

View File

@ -117,14 +117,16 @@ object BuildingDescriptions {
fun getDifferences(
originalBuilding: Building, replacementBuilding: Building
): Sequence<FormattedLine> = 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))

View File

@ -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<FormattedLine> = 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)