Fix golden age length action text (#9204)

Thanks SomeTroglodyte (https://github.com/yairm210/Unciv/issues/9166#issuecomment-1503593954)
This commit is contained in:
WhoIsJohannes
2023-04-17 06:37:56 +02:00
committed by GitHub
parent 4f30d27d0b
commit dbb46545f5
2 changed files with 16 additions and 6 deletions

View File

@ -34,12 +34,16 @@ class GoldenAgeManager : IsPartOfGameInfoSerialization {
return cost.toInt()
}
fun enterGoldenAge(unmodifiedNumberOfTurns: Int = 10) {
fun calculateGoldenAgeLength(unmodifiedNumberOfTurns: Int): Int {
var turnsToGoldenAge = unmodifiedNumberOfTurns.toFloat()
for (unique in civInfo.getMatchingUniques(UniqueType.GoldenAgeLength))
turnsToGoldenAge *= unique.params[0].toPercent()
turnsToGoldenAge *= civInfo.gameInfo.speed.goldenAgeLengthModifier
turnsLeftForCurrentGoldenAge += turnsToGoldenAge.toInt()
return turnsToGoldenAge.toInt()
}
fun enterGoldenAge(unmodifiedNumberOfTurns: Int = 10) {
turnsLeftForCurrentGoldenAge += calculateGoldenAgeLength(unmodifiedNumberOfTurns)
civInfo.addNotification("You have entered a Golden Age!", NotificationCategory.General, "StatIcons/Happiness")
civInfo.popupAlerts.add(PopupAlert(AlertType.GoldenAge, ""))

View File

@ -21,6 +21,7 @@ import com.unciv.models.ruleset.unique.Unique
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.translations.fillPlaceholders
import com.unciv.models.translations.removeConditionals
import com.unciv.models.translations.tr
import com.unciv.ui.components.Fonts
@ -675,9 +676,14 @@ object UnitActions {
&& unique.conditionals.none { it.type == UniqueType.ConditionalTimedUnique }) continue
if (usagesLeft(unit, unique)==0) continue
val unitAction = UnitAction(type = UnitActionType.TriggerUnique,
title = actionTextWithSideEffects(unique.text.removeConditionals(), unique, unit)
){
val baseTitle = if (unique.isOfType(UniqueType.OneTimeEnterGoldenAgeTurns))
unique.placeholderText.fillPlaceholders(
unit.civ.goldenAges.calculateGoldenAgeLength(
unique.params[0].toInt()).toString())
else unique.text.removeConditionals()
val title = actionTextWithSideEffects(baseTitle, unique, unit)
val unitAction = UnitAction(type = UnitActionType.TriggerUnique, title){
UniqueTriggerActivation.triggerUnitwideUnique(unique, unit)
activateSideEffects(unit, unique)
}
@ -758,7 +764,7 @@ object UnitActions {
return null
}
fun actionTextWithSideEffects(originalText:String, actionUnique: Unique, unit: MapUnit): String {
fun actionTextWithSideEffects(originalText: String, actionUnique: Unique, unit: MapUnit): String {
val sideEffectString = getSideEffectString(unit, actionUnique)
if (sideEffectString == "") return originalText
else return "{$originalText} $sideEffectString"