From b04da39799220bd18ff021c9cdaffd42ad71f295 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Tue, 19 Dec 2023 22:34:34 +0200 Subject: [PATCH] Added 'upon turn end' trigger --- .../src/com/unciv/logic/civilization/managers/TurnManager.kt | 5 +++++ core/src/com/unciv/models/ruleset/unique/UniqueType.kt | 1 + 2 files changed, 6 insertions(+) diff --git a/core/src/com/unciv/logic/civilization/managers/TurnManager.kt b/core/src/com/unciv/logic/civilization/managers/TurnManager.kt index 605e97aafb..9feee7da89 100644 --- a/core/src/com/unciv/logic/civilization/managers/TurnManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/TurnManager.kt @@ -17,6 +17,8 @@ import com.unciv.logic.map.mapunit.UnitTurnManager import com.unciv.logic.map.tile.Tile import com.unciv.logic.trade.TradeEvaluation import com.unciv.models.ruleset.ModOptionsConstants +import com.unciv.models.ruleset.unique.StateForConditionals +import com.unciv.models.ruleset.unique.UniqueTriggerActivation import com.unciv.models.ruleset.unique.UniqueType import com.unciv.models.ruleset.unique.endTurn import com.unciv.models.stats.Stats @@ -242,6 +244,9 @@ class TurnManager(val civInfo: Civilization) { fun endTurn(progressBar: NextTurnProgress? = null) { NextTurnAutomation.automateCityBombardment(civInfo) // Bombard with all cities that haven't, maybe you missed one + for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponTurnEnd, StateForConditionals(civInfo))) + UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo) + val notificationsLog = civInfo.notificationsLog val notificationsThisTurn = Civilization.NotificationsLog(civInfo.gameInfo.turns) notificationsThisTurn.notifications.addAll(civInfo.notifications) diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index ad4222e6b5..54f9f9d40c 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -763,6 +763,7 @@ enum class UniqueType( // We have a separate trigger to include the cityFilter, since '[in all cities]' can be read '*only* if it's in all cities' TriggerUponConstructingBuildingCityFilter("upon constructing [buildingFilter] [cityFilter]", UniqueTarget.TriggerCondition), TriggerUponGainingUnit("upon gaining a [baseUnitFilter] unit", UniqueTarget.TriggerCondition), + TriggerUponTurnEnd("upon turn end", UniqueTarget.TriggerCondition), TriggerUponFoundingPantheon("upon founding a Pantheon", UniqueTarget.TriggerCondition), TriggerUponFoundingReligion("upon founding a Religion", UniqueTarget.TriggerCondition),