diff --git a/core/src/com/unciv/logic/civilization/diplomacy/DeclareWar.kt b/core/src/com/unciv/logic/civilization/diplomacy/DeclareWar.kt index 50c3b2ae83..ade7674ed6 100644 --- a/core/src/com/unciv/logic/civilization/diplomacy/DeclareWar.kt +++ b/core/src/com/unciv/logic/civilization/diplomacy/DeclareWar.kt @@ -40,9 +40,28 @@ object DeclareWar { breakTreaties(diplomacyManager) - if (otherCiv.isMajorCiv()) + if (otherCiv.isMajorCiv()) { for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponDeclaringWar)) UniqueTriggerActivation.triggerUnique(unique, civInfo) + } + + for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponDeclaringWarFiltered)) { + if (otherCiv.matchesFilter(unique.params[0])) + UniqueTriggerActivation.triggerUnique(unique, civInfo) + } + + for (unique in otherCiv.getTriggeredUniques(UniqueType.TriggerUponBeingDeclaredWarUpon)) { + if (civInfo.matchesFilter(unique.params[0])) + UniqueTriggerActivation.triggerUnique(unique, otherCiv) + } + + for (unique in civInfo.getTriggeredUniques(UniqueType.TriggerUponEnteringWar)) + if (otherCiv.matchesFilter(unique.params[0])) + UniqueTriggerActivation.triggerUnique(unique, civInfo) + + for (unique in otherCiv.getTriggeredUniques(UniqueType.TriggerUponEnteringWar)) + if (civInfo.matchesFilter(unique.params[0])) + UniqueTriggerActivation.triggerUnique(unique, otherCiv) } private fun handleCityStateDirectAttack(diplomacyManager: DiplomacyManager) { diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index e98858ca3a..f28eddb125 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -924,6 +924,9 @@ enum class UniqueType( TriggerUponEnteringEraUnfiltered("upon entering a new era", UniqueTarget.TriggerCondition), TriggerUponAdoptingPolicyOrBelief("upon adopting [policy/belief]", UniqueTarget.TriggerCondition), TriggerUponDeclaringWar("upon declaring war with a major Civilization", UniqueTarget.TriggerCondition), + TriggerUponDeclaringWarFiltered("upon declaring war upon [civFilter] Civilizations", UniqueTarget.TriggerCondition), + TriggerUponBeingDeclaredWarUpon("upon being declared war upon by [civFilter] Civilizations", UniqueTarget.TriggerCondition), + TriggerUponEnteringWar("upon entering a war with [civFilter] Civilizations", UniqueTarget.TriggerCondition), TriggerUponDeclaringFriendship("upon declaring friendship", UniqueTarget.TriggerCondition), TriggerUponSigningDefensivePact("upon declaring a defensive pact", UniqueTarget.TriggerCondition), TriggerUponEnteringGoldenAge("upon entering a Golden Age", UniqueTarget.TriggerCondition), diff --git a/docs/Modders/uniques.md b/docs/Modders/uniques.md index 09e940f20b..3cb95eb86b 100644 --- a/docs/Modders/uniques.md +++ b/docs/Modders/uniques.md @@ -3635,6 +3635,21 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl ??? example "<upon declaring war with a major Civilization>" Applicable to: TriggerCondition +??? example "<upon declaring war with a [civFilter] Civilization>" + Example: "<upon declaring war with a [City-States] Civilization>" + + Applicable to: TriggerCondition + +??? example "<upon being declared war upon [civFilter] Civilization>" + Example: "<upon being declared war upon [City-States] Civilization>" + + Applicable to: TriggerCondition + +??? example "<upon entering a war with [civFilter] Civilization>" + Example: "<upon entering a war with [City-States] Civilization>" + + Applicable to: TriggerCondition + ??? example "<upon declaring friendship>" Applicable to: TriggerCondition