Modding: Added 'upon adopting [belief]' trigger, allowed belief adoption to trigger uniques

This commit is contained in:
Yair Morgenstern
2023-05-19 00:22:34 +03:00
parent 6841a7f214
commit 728afab1db
3 changed files with 14 additions and 3 deletions

View File

@ -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

View File

@ -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) {

View File

@ -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),