From 6cf6a996535ddbbe0a234c459969e2051d030964 Mon Sep 17 00:00:00 2001 From: PLynx Date: Sat, 7 Jun 2025 22:29:22 +0200 Subject: [PATCH] Upon Ending Golden Age unique (#13397) * Added Upon Ending Golden Age unique * Update core/src/com/unciv/logic/civilization/managers/GoldenAgeManager.kt --------- Co-authored-by: Yair Morgenstern --- .../unciv/logic/civilization/managers/GoldenAgeManager.kt | 7 ++++++- core/src/com/unciv/models/ruleset/unique/UniqueType.kt | 1 + docs/Modders/uniques.md | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/logic/civilization/managers/GoldenAgeManager.kt b/core/src/com/unciv/logic/civilization/managers/GoldenAgeManager.kt index 54bd6e94d6..8a5145af3d 100644 --- a/core/src/com/unciv/logic/civilization/managers/GoldenAgeManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/GoldenAgeManager.kt @@ -65,8 +65,13 @@ class GoldenAgeManager : IsPartOfGameInfoSerialization { if (!isGoldenAge()) storedHappiness = (storedHappiness + happiness).coerceAtLeast(0) - if (isGoldenAge()) + if (isGoldenAge()){ turnsLeftForCurrentGoldenAge-- + if (turnsLeftForCurrentGoldenAge <= 0) + for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUpponEndingGoldenAge)) + UniqueTriggerActivation.triggerUnique(unique, civInfo) + } + else if (storedHappiness > happinessRequiredForNextGoldenAge()) { storedHappiness -= happinessRequiredForNextGoldenAge() enterGoldenAge() diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 9e44f6e473..9749342825 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -904,6 +904,7 @@ enum class UniqueType( TriggerUponDeclaringFriendship("upon declaring friendship", UniqueTarget.TriggerCondition), TriggerUponSigningDefensivePact("upon declaring a defensive pact", UniqueTarget.TriggerCondition), TriggerUponEnteringGoldenAge("upon entering a Golden Age", UniqueTarget.TriggerCondition), + TriggerUpponEndingGoldenAge("upon ending a Golden Age", UniqueTarget.TriggerCondition), /** Can be placed upon both units and as global */ TriggerUponConqueringCity("upon conquering a city", UniqueTarget.TriggerCondition, UniqueTarget.UnitTriggerCondition), TriggerUponLosingCity("upon losing a city", UniqueTarget.TriggerCondition), diff --git a/docs/Modders/uniques.md b/docs/Modders/uniques.md index 003e1003f1..ecf5962416 100644 --- a/docs/Modders/uniques.md +++ b/docs/Modders/uniques.md @@ -3309,6 +3309,9 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl ??? example "<upon entering a Golden Age>" Applicable to: TriggerCondition +??? example "<upon ending a Golden Age>" + Applicable to: TriggerCondition + ??? example "<upon conquering a city>" Applicable to: TriggerCondition, UnitTriggerCondition