diff --git a/core/src/com/unciv/logic/civilization/managers/PolicyManager.kt b/core/src/com/unciv/logic/civilization/managers/PolicyManager.kt index 6c86f37d43..c297ad7ff7 100644 --- a/core/src/com/unciv/logic/civilization/managers/PolicyManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/PolicyManager.kt @@ -207,8 +207,8 @@ class PolicyManager : IsPartOfGameInfoSerialization { if (unique.conditionals.none { it.type!!.targetTypes.contains(UniqueTarget.TriggerCondition) }) UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo, triggerNotificationText = triggerNotificationText) - for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponAdoptingPolicy)) - if (unique.conditionals.any {it.type == UniqueType.TriggerUponAdoptingPolicy && it.params[0] == policy.name}) + for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponAdoptingPolicyOrBelief)) + if (unique.conditionals.any {it.type == UniqueType.TriggerUponAdoptingPolicyOrBelief && it.params[0] == policy.name}) UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo, triggerNotificationText = triggerNotificationText) // This ALSO has the side-effect of updating the CivInfo statForNextTurn so we don't need to call it explicitly diff --git a/core/src/com/unciv/logic/civilization/managers/ReligionManager.kt b/core/src/com/unciv/logic/civilization/managers/ReligionManager.kt index a514827c23..e6ba58cafb 100644 --- a/core/src/com/unciv/logic/civilization/managers/ReligionManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/ReligionManager.kt @@ -363,6 +363,17 @@ class ReligionManager : IsPartOfGameInfoSerialization { .filter { it.type == BeliefType.Founder || it.type == BeliefType.Enhancer } .map { it.name } ) + + for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponAdoptingPolicyOrBelief)) + for (belief in beliefs) + if (unique.conditionals.any {it.type == UniqueType.TriggerUponAdoptingPolicyOrBelief && it.params[0] == belief.name}) + UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo, + triggerNotificationText = "due to adopting [${belief.name}]") + + for (belief in beliefs) + for (unique in belief.uniqueObjects) + UniqueTriggerActivation.triggerCivwideUnique(unique, civInfo) + // decrement free beliefs if used if (useFreeBeliefs && hasFreeBeliefs()) { for (belief in beliefs) { diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index bd8e987e1b..a15749eca6 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -766,7 +766,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: TriggerUponResearch("upon discovering [tech]", UniqueTarget.TriggerCondition), TriggerUponEnteringEra("upon entering the [era]", UniqueTarget.TriggerCondition), - TriggerUponAdoptingPolicy("upon adopting [policy]", UniqueTarget.TriggerCondition), + TriggerUponAdoptingPolicyOrBelief("upon adopting [policy/belief]", UniqueTarget.TriggerCondition), TriggerUponDeclaringWar("upon declaring war with a major Civilization", UniqueTarget.TriggerCondition), TriggerUponDeclaringFriendship("upon declaring friendship", UniqueTarget.TriggerCondition), TriggerUponEnteringGoldenAge("upon entering a Golden Age", UniqueTarget.TriggerCondition),