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
This commit is contained in:
SeventhM 2024-01-30 10:01:45 -08:00 committed by GitHub
parent da5a1d1a9e
commit 277ec5e2a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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)
val baseTitle = when (unique.type) {
UniqueType.OneTimeEnterGoldenAgeTurns -> {
unique.placeholderText.fillPlaceholders(
unit.civ.goldenAges.calculateGoldenAgeLength(
unique.params[0].toInt()).toString())
else unique.text.removeConditionals()
}
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) {