From 277ec5e2a5da6b40033883dc5a3c0396d3325a12 Mon Sep 17 00:00:00 2001 From: SeventhM <127357473+SeventhM@users.noreply.github.com> Date: Tue, 30 Jan 2024 10:01:45 -0800 Subject: [PATCH] Fix gain stat modifier by speed unique action text (#11046) * Fix gain stat modifier by speed unique action text * Whoops, should be toInt toString * I can't escape forgetting imports * OneTimeGainStatRange also uses modifiers --- .../unit/actions/UnitActionsFromUniques.kt | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/core/src/com/unciv/ui/screens/worldscreen/unit/actions/UnitActionsFromUniques.kt b/core/src/com/unciv/ui/screens/worldscreen/unit/actions/UnitActionsFromUniques.kt index dab8b61299..d9a237d106 100644 --- a/core/src/com/unciv/ui/screens/worldscreen/unit/actions/UnitActionsFromUniques.kt +++ b/core/src/com/unciv/ui/screens/worldscreen/unit/actions/UnitActionsFromUniques.kt @@ -17,6 +17,7 @@ import com.unciv.models.ruleset.unique.StateForConditionals import com.unciv.models.ruleset.unique.UniqueTarget import com.unciv.models.ruleset.unique.UniqueTriggerActivation import com.unciv.models.ruleset.unique.UniqueType +import com.unciv.models.stats.Stat import com.unciv.models.translations.fillPlaceholders import com.unciv.models.translations.removeConditionals import com.unciv.models.translations.tr @@ -170,11 +171,32 @@ object UnitActionsFromUniques { if (!unique.conditionalsApply(StateForConditionals(civInfo = unit.civ, unit = unit, tile = unit.currentTile))) continue if (!UnitActionModifiers.canUse(unit, unique)) continue - val baseTitle = if (unique.type == UniqueType.OneTimeEnterGoldenAgeTurns) - unique.placeholderText.fillPlaceholders( - unit.civ.goldenAges.calculateGoldenAgeLength( - unique.params[0].toInt()).toString()) - else unique.text.removeConditionals() + val baseTitle = when (unique.type) { + UniqueType.OneTimeEnterGoldenAgeTurns -> { + unique.placeholderText.fillPlaceholders( + unit.civ.goldenAges.calculateGoldenAgeLength( + unique.params[0].toInt()).toString()) + } + UniqueType.OneTimeGainStatSpeed -> { + val stat = unique.params[1] + val modifier = unit.civ.gameInfo.speed.statCostModifiers[Stat.safeValueOf(stat)] + ?: unit.civ.gameInfo.speed.modifier + UniqueType.OneTimeGainStat.placeholderText.fillPlaceholders( + (unique.params[0].toInt() * modifier).toInt().toString(), stat + ) + } + UniqueType.OneTimeGainStatRange -> { + val stat = unique.params[2] + val modifier = unit.civ.gameInfo.speed.statCostModifiers[Stat.safeValueOf(stat)] + ?: unit.civ.gameInfo.speed.modifier + unique.placeholderText.fillPlaceholders( + (unique.params[0].toInt() * modifier).toInt().toString(), + (unique.params[1].toInt() * modifier).toInt().toString(), + stat + ) + } + else -> unique.text.removeConditionals() + } val title = UnitActionModifiers.actionTextWithSideEffects(baseTitle, unique, unit) yield(UnitAction(UnitActionType.TriggerUnique, title) {