N3OW/common/scripted_triggers/00_diarchy_scripted_triggers.txt
2025-06-02 21:33:11 +01:00

869 lines
24 KiB
Text

#############
# Diarchy Scripted Triggers
#############
##################################################
# General Triggers
character_hates_scope_due_to_strife_guts_trigger = {
# We've got to share a direct liege for strife to be valid.
exists = liege
exists = $TARGET$.liege
liege = $TARGET$.liege
# And $TARGET$ must have accumulated enough strife to aggravate me (which we modulate up or down a little with some traits).
$TARGET$.strife_opinion >= strife_harm_threshold_value
# Finally, there has to be at least _some_ love lost.
opinion = {
target = $TARGET$
value < 0
}
}
# This is hooked up to the is_diarch_valid rule, invalidating them if it returns false, referenced by Code.
is_diarch_valid_trigger = {
# Basics.
is_alive = yes
OR = {
# We always want adults...
is_adult = yes
# ... _unless_ this is junior emperor, they're always children.
liege ?= { has_diarchy_parameter = diarchy_type_is_junior_emperorship }
}
# Event blocks.
OR = {
is_ai = no
NOT = { has_character_flag = cannot_be_diarch }
}
trigger_if = {
limit = {
exists = liege
}
# Being in a diarchy yourself will disable you, outside of co-rulerships.
trigger_if = {
limit = {
NOT = {
liege = { has_diarchy_active_parameter = diarchy_is_co_rulership }
}
}
# If you're in an entrenched regency for some reason, you can't manage a regency yourself.
NOT = { has_diarchy_parameter = diarchy_type_is_entrenched_regency }
# You need to be mentally & physically sound, to some degree.
regency_for_personal_reasons_trigger = no
}
# Diarchy-specific checks.
## Viziers.
trigger_if = {
limit = {
liege = { has_diarchy_parameter = diarchy_is_vizierate }
}
# Must match their liege's gender preference.
diarch_matches_liege_faith_gender_preference_trigger = yes
# Viziers aren't big land-owners.
## Not in this way, at least.
highest_held_title_tier <= tier_barony
}
# If you have somehow managed to get invited to/start an activity outside of your realm (e.g., you're the spouse in a grand wedding), then yeah, you forfeit your position.
## ... unless you're a co-ruler.
trigger_if = {
limit = {
NOT = {
liege = { has_diarchy_active_parameter = diarchy_is_co_rulership }
}
}
# We cannot be at war with our liege.
NOT = { is_at_war_with = liege }
NAND = {
# Is it redundant to check twice?
## Yes.
### Do the machine spirits demand this thoroughness of us?
#### Also yes.
##### Do not ask why the God-Machine commands it, merely be glad that it commanded it of you.
is_travelling = yes
exists = current_travel_plan
# We check your liege so that you can attend business within the realm easily.
## Schemes are their own special lil guys so we take care of them separately.
trigger_if = {
limit = {
exists = scope:owner
exists = scope:target
}
travel_would_cause_regency_trigger = { REALM_HOLDER = scope:owner.liege }
}
## Else, we're an ordinary, gods-fearing root scope, so use that.
trigger_else = {
travel_would_cause_regency_trigger = { REALM_HOLDER = this.liege }
}
}
}
}
}
# This is hooked up to the is_diarch_able rule, referenced by Code.
is_diarch_able_trigger = {
# You can't possibly manage someone else's realm from prison.
is_imprisoned = no
# You need to be mentally & physically sound, to some degree.
## Mostly, this will invalidate, but it won't for co-rulerships so we just disable them here.
regency_for_personal_reasons_trigger = no
# You'd clearly be preoccupied.
trigger_if = {
limit = { exists = involved_activity }
save_temporary_scope_as = diarch_temp
involved_activity.activity_location.county.holder = {
NOR = {
this = scope:diarch_temp.liege
NOT = {
any_liege_or_above = { this = scope:diarch_temp.liege }
}
}
}
}
# If you're in a diarchy for any other reason, you need to chill.
NOT = { has_active_diarchy = yes }
}
# And *this* needs to be added to guest activity intents to keep diarchs from showing up to the same parties as their liege.
bannable_serving_diarch_trigger = {
liege?= { NOT = { is_landless_adventurer = yes } }
OR = {
# Diarchs with official responsibilities can't come out to play.
is_diarch = yes
is_designated_diarch = yes
# Assumed diarchs don't get to either if they're the AI, as the player might be planning around them & the AI may have designated to avoid people after if it'd known they were going to welch.
## Assumed-diarch players can make an intelligent choice on whether they want to go to events or not.
AND = {
is_ai = yes
is_diarchy_successor = yes
}
}
}
diarch_has_situational_loyalty_trigger = {
diarch_loyalty > diarch_loyalty_visibly_disloyal_threshold
diarch_loyalty < diarch_loyalty_visibly_loyal_threshold
}
diarch_callable_in_internal_war_trigger = {
OR = {
# CBs where the liege doesn't (necessarily) control an internal attacker.
using_cb = peasant_war
using_cb = populist_war
# All other internal CBs.
primary_attacker = {
any_liege_or_above = { this = scope:actor }
}
}
}
diarch_matches_liege_faith_gender_preference_trigger = {
OR = {
# Female preference.
AND = {
is_female = yes
liege.faith = { has_doctrine = doctrine_gender_female_dominated }
}
# Male preference.
AND = {
is_male = yes
liege.faith = { has_doctrine = doctrine_gender_male_dominated }
}
# Equality.
liege.faith = { has_doctrine = doctrine_gender_equal }
}
}
##################################################
# Setup Triggers
basic_eligible_for_diarchy_trigger = {
is_landed_or_landless_administrative = yes
NOT = { government_has_flag = government_is_landless_adventurer } # Laamps don't use diarchs
highest_held_title_tier >= tier_county
NOT = { has_active_diarchy = yes }
}
regency_for_personal_reasons_trigger = {
custom_tooltip = {
text = regency_for_personal_reasons_trigger.tt.cannot_govern_by_themselves
OR = {
AND = {
is_adult = no
NOT = {
liege = { has_diarchy_parameter = diarchy_type_is_junior_emperorship }
}
}
is_incapable = yes
has_character_modifier = isolating_modifier
}
}
}
imprisonment_would_cause_regency_trigger = {
custom_tooltip = {
text = imprisonment_would_cause_regency_trigger.tt.imprisoned_abroad
is_imprisoned = yes
# Doesn't count if your gaoler is your vassal.
save_temporary_scope_as = liege_temp
NOT = {
any_vassal_or_below = { this = scope:liege_temp.imprisoner }
}
}
}
travel_would_cause_regency_trigger = {
OR = {
# Travelling one-way.
AND = {
# Make sure that we _aren't_ going bilaterally.
NOT = { current_travel_plan.final_destination_province = current_travel_plan.departure_location }
# Then check that we're actually going outside of the realm.
current_travel_plan.final_destination_province.county.holder = {
NOR = {
any_liege_or_above = { this = $REALM_HOLDER$ }
this = $REALM_HOLDER$
}
}
}
# Travelling in a circle.
AND = {
# Make sure that we _are_ going bilaterally.
current_travel_plan.final_destination_province = current_travel_plan.departure_location
# Check the next destination province instead.
## We put a break in to check if there _is_ a county because you might be travelling through the ocean.
current_travel_plan.next_destination_province.county ?= {
holder = {
NOR = {
any_liege_or_above = { this = $REALM_HOLDER$ }
this = $REALM_HOLDER$
}
}
}
}
}
}
can_leave_diarchy_trigger = {
trigger_if = {
limit = { is_imprisoned = yes }
imprisonment_would_cause_regency_trigger = no
}
is_travelling = no
regency_for_personal_reasons_trigger = no
}
regent_would_remain_loyal_after_death_trigger = {
is_ai = yes
diarch_loyalty_score_type_regency_value >= diarch_loyalty_visibly_loyal_threshold
}
##################################################
# Character Interactions
diarch_cannot_be_disabled_trigger = {
custom_description = {
text = diarch_interactions_tt_is_able
subject = $DIARCH$
$DIARCH$ = { is_diarch_able_trigger = yes }
}
}
diarch_legal_meddling_claimable_title_trigger = {
custom_description = {
text = "you_must_not_have_a_claim_on_the_title"
NOT = {
any_claimant = { this = $ACTOR$ }
}
}
custom_description = {
text = "character_interactions_not_rel_head_title"
is_head_of_faith = no
}
custom_tooltip = {
text = title_must_be_county_tier.tt
tier = tier_county
}
# This is mostly here to stop people from not claiming titles because they have valid titles that are _outside_ the sub-realm.
custom_tooltip = {
text = title_must_be_same_realm.tt
holder = {
any_liege_or_above = { this = $ACTOR$.liege }
}
}
}
diarch_syphon_treasury_embezzlement_modifiers_trigger = {
OR = {
has_county_modifier = syphon_treasury_massive_sum_modifier
has_county_modifier = syphon_treasury_large_sum_modifier
has_county_modifier = syphon_treasury_medium_sum_modifier
has_county_modifier = syphon_treasury_small_sum_modifier
}
}
diarch_shift_privileges_valid_target_title_trigger = {
NOR = {
has_county_modifier = shift_privileges_monopolies_sold_modifier
has_county_modifier = shift_privileges_scutage_exemptions_modifier
has_county_modifier = shift_privileges_conflicting_deeds_modifier
}
}
diarch_swing_scales_valid_shared_hof_trigger = {
# You must share a HoF to be able to petition one.
custom_tooltip = {
text = swing_scales_currency_interaction.tt.no_shared_hof
exists = scope:actor.faith.religious_head
exists = scope:recipient.faith.religious_head
scope:actor.faith.religious_head = scope:recipient.faith.religious_head
}
# And opinions've gotta line up.
trigger_if = {
limit = { exists = scope:actor.faith.religious_head }
# They must like you.
custom_tooltip = {
text = swing_scales_currency_interaction.tt.hof_needs_to_like_you_more
scope:actor.faith.religious_head = {
opinion = {
target = scope:actor
value >= high_positive_opinion
}
}
}
# And not like scope:recipient too much.
custom_tooltip = {
text = swing_scales_currency_interaction.tt.hof_needs_to_like_them_less
scope:actor.faith.religious_head = {
opinion = {
target = scope:recipient
value <= medium_positive_opinion
}
}
}
# Plus scope:recipient can't have anything over them.
custom_tooltip = {
text = swing_scales_currency_interaction.tt.hof_refuses_to_cross_recipient
NOT = {
scope:recipient = { has_strong_hook = scope:actor.faith.religious_head }
}
}
}
}
diarch_liege_wants_to_stiff_regent_trigger = {
OR = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:recipient }
opinion = {
target = scope:recipient
value <= very_high_negative_opinion
}
}
}
cannot_release_former_regent_whilst_old_regent_holds_power_trigger = {
$PRISONER$ = {
trigger_if = {
limit = {
has_variable = imprisoned_by_diarch
exists = $PRISONER$.liege
$REGENT$ = { is_diarch_of_target = $PRISONER$.liege }
}
custom_tooltip = {
text = overthrow_regent_scheme_interaction.tt.cannot_release
NOR = {
var:imprisoned_by_diarch = $PRISONER$.imprisoner
var:imprisoned_by_diarch ?= $PRISONER$.liege.diarch
}
}
}
}
}
interaction_actor_is_liege_with_vizierate_trigger = {
scope:recipient.liege ?= scope:actor
scope:actor = { has_diarchy_active_parameter = diarchy_is_vizierate }
}
is_valid_basic_candidate_for_vizier_trigger = {
is_diarch_valid_trigger = yes
diarch_matches_liege_faith_gender_preference_trigger = yes
}
# I don't have a problem, I can quit scripted triggers any time I want.
## But more seriously: mostly just here for brevity/not wanting to re-do script after I had to add a second scripted trigger targeting top lieges.
character_has_co_emperorship_trigger = {
OR = {
has_diarchy_parameter = diarchy_type_is_co_emperorship
has_diarchy_parameter = diarchy_type_is_junior_emperorship
}
}
liege_has_co_emperorship_trigger = {
liege ?= { character_has_co_emperorship_trigger = yes }
}
top_liege_has_co_emperorship_trigger = {
liege ?= { character_has_co_emperorship_trigger = yes }
}
appointment_interactions_recipient_is_suitable_co_emperor_trigger = {
scope:actor = { top_liege_has_co_emperorship_trigger = yes }
OR = {
scope:recipient = { is_diarch_of_target = scope:secondary_recipient.top_liege }
scope:secondary_recipient = { is_diarch_of_target = scope:actor.top_liege }
}
# Don't get the bonus just because we're promoting our courtiers in our realm.
trigger_if = {
limit = {
NOT = { scope:target = scope:actor.primary_title }
}
NOT = { scope:target.holder = scope:actor }
}
}
may_appoint_co_emperors_trigger = {
highest_held_title_tier >= tier_empire
has_realm_law = acclamation_succession_law
OR = {
has_title = title:e_byzantium
has_title = title:e_roman_empire
culture = { has_cultural_parameter = unlock_co_emperors }
}
}
may_appoint_co_monarchs_trigger = {
highest_held_title_tier >= tier_kingdom
government_has_flag = may_elevate_co_monarch
}
valid_junior_emperor_candidate_trigger = {
is_adult = no
is_close_or_extended_family_of = $LIEGE$
is_imprisoned = no
OR = {
is_courtier_of = $LIEGE$
is_vassal_of = $LIEGE$
}
# Prevent weird governments from taking place.
NOR = {
government_has_flag = government_is_special_republic
government_has_flag = government_is_theocracy
government_has_flag = government_is_landless_adventurer
}
}
valid_co_emperor_candidate_trigger = {
is_adult = yes
is_imprisoned = no
save_temporary_scope_as = co_emperor_temp
custom_tooltip = {
text = valid_co_emperor_candidate_liege_trigger
top_liege = $LIEGE$
}
custom_tooltip = {
text = valid_co_emperor_candidate_family_trigger
OR = {
is_close_or_extended_family_of = $LIEGE$
AND = {
house ?= {
OR = {
is_powerful_family = yes
is_dominant_family = yes
}
}
scope:co_emperor_temp = house.house_head
}
}
}
NOR = {
has_trait = blind
has_trait = eunuch
has_trait = incapable
# Prevent weird governments from taking place.
government_has_flag = government_is_special_republic
government_has_flag = government_is_theocracy
government_has_flag = government_is_landless_adventurer
}
}
valid_co_monarch_candidate_trigger = {
is_adult = yes
is_child_of = $LIEGE$
is_imprisoned = no
trigger_if = {
limit = { is_ruler = no }
is_courtier_of = $LIEGE$
}
trigger_else = { is_vassal_of = $LIEGE$ }
# Gender restrictions.
custom_tooltip = {
text = valid_co_monarch_candidate_trigger.tt.gender_wrong_for_co_rule
OR = {
AND = {
is_female = yes
$LIEGE$ = {
OR = {
has_realm_law = female_only_law
has_realm_law = female_preference_law
}
}
}
AND = {
is_male = yes
$LIEGE$ = {
OR = {
has_realm_law = male_only_law
has_realm_law = male_preference_law
}
}
}
$LIEGE$ = { has_realm_law = equal_law }
}
}
# Prevent weird governments from taking place.
NOR = {
government_has_flag = government_is_special_republic
government_has_flag = government_is_theocracy
government_has_flag = government_is_landless_adventurer
}
}
governor_can_be_called_as_ally_in_expedition_war_basic_trigger = {
scope:actor.liege ?= { has_diarchy_parameter = unlock_diarch_requests_military_expedition_interaction }
scope:recipient = {
liege ?= scope:actor.liege
# Must be a governor.
government_has_flag = government_is_administrative
}
}
liege_can_maim_co_ruler_without_killing_them_trigger = {
culture = {
OR = {
has_cultural_parameter = can_blind_prisoners
has_cultural_parameter = can_castrate_prisoners
}
}
}
liege_should_systematically_maim_co_ruler_trigger = {
OR = {
AND = {
has_diarchy_active_parameter = diarchy_is_co_rulership
liege_can_maim_co_ruler_without_killing_them_trigger = yes
diarch ?= scope:recipient
}
AND = {
liege ?= { has_diarchy_active_parameter = diarchy_is_co_rulership }
liege_can_maim_co_ruler_without_killing_them_trigger = yes
is_diarch_of_target = scope:recipient
}
}
}
valid_kingdom_for_diarch_to_demand_as_despotate_trigger = {
tier = tier_kingdom
is_landless_type_title = no
# Weird formatting for the sake of cleaner tooltips.
trigger_if = {
limit = { is_title_created = no }
is_title_created = no
}
trigger_else = { holder = scope:recipient }
scope:recipient = { completely_controls = scope:target }
NOT = {
scope:recipient.capital_county = { target_is_de_jure_liege_or_above = scope:target }
}
}
is_in_scapegoating_diarchy_visibility_trigger = {
custom_tooltip = {
text = is_in_scapegoating_diarchy_visibility_trigger.tt.explanation
subject = scope:actor
OR = {
AND = {
scope:recipient = { $PARAMETER_TYPE$ = unlock_scapegoat_counterpart_interaction }
scope:actor = { is_diarch_of_target = scope:recipient }
}
AND = {
scope:actor = { $PARAMETER_TYPE$ = unlock_scapegoat_counterpart_interaction }
scope:recipient = { is_diarch_of_target = scope:actor }
}
}
}
}
ai_diarch_would_maim_execute_superior_if_got_chance_trigger = {
OR = {
opinion = {
target = $LIEGE$
value <= -1
}
has_trait = callous
has_trait = sadistic
has_trait = ambitious
has_trait = arrogant
}
NOR = {
has_trait = compassionate
has_trait = content
}
}
##################################################
# Succession Triggers
diarch_candidate_shares_relationship_with_lesser_consort_trigger = {
# Grab the right scope.
save_temporary_scope_as = char_temp
# Now check.
any_relation = {
type = $RELATION$
is_consort_of = scope:char_temp.liege
OR = {
NOT = { exists = scope:char_temp.liege.primary_spouse }
NOT = { this = scope:char_temp.liege.primary_spouse }
}
}
}
diarch_candidate_shares_relationship_with_child_trigger = {
# Grab the right scope.
save_temporary_scope_as = char_temp
# Now check.
any_relation = {
type = $RELATION$
is_adult = yes
is_child_of = scope:char_temp.liege
is_courtier_of = scope:char_temp.liege
}
}
diarch_candidate_shares_minority_status_with_trigger = {
# For performance purposes, let's do the most obvious check first.
any_liege_or_above = {
NOT = { $QUALITY$ = scope:char_temp.$QUALITY$ }
}
# Grab the right scope.
save_temporary_scope_as = char_temp
liege = {
# Ok, now make sure we connect to at least one suitable character.
## Yes we're putting a whole trigger in the scripted parameter.
### No one will believe you if you try to tell them of my crimes.
$TRIGGER_OR_TARGET$ = { $QUALITY$ = scope:char_temp.$QUALITY$ }
}
}
##################################################
# Important Actions
action_regent_imprison_suitable_char_covassals_trigger = {
opinion = {
target = root
value <= very_high_negative_opinion
}
save_temporary_scope_as = char_temp
# Could you take the interaction?
root = {
is_character_interaction_valid = {
interaction = diarch_imprison_interaction
recipient = scope:char_temp
}
}
}
action_regent_imprison_suitable_char_rivals_trigger = {
save_temporary_scope_as = char_temp
root = {
is_character_interaction_valid = {
interaction = diarch_imprison_interaction
recipient = scope:char_temp
}
}
}
action_shift_privileges_suitable_char_trigger = {
save_temporary_scope_as = char_temp
# Make sure we've got equal or higher diplo and so might get away with a cheeky forgery.
diplomacy <= root.diplomacy
# And we don't want to spam with little guys, especially as they're more expensive to use prestige on.
OR = {
highest_held_title_tier >= tier_duchy
# But don't block this out entirely within duchies.
liege.highest_held_title_tier = tier_duchy
}
# Could you take the interaction?
root = {
is_character_interaction_valid = {
interaction = diarch_shift_privileges_interaction
recipient = scope:char_temp
}
}
}
action_legal_meddling_suitable_char_trigger = {
max_military_strength < root.eighty_percent_of_max_military_strength
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
root = { has_truce = prev }
is_allied_to = root
}
}
action_legal_meddling_suitable_title_trigger = {
diarch_legal_meddling_claimable_title_trigger = { ACTOR = root }
root = {
# Could you take the interaction?
is_character_interaction_valid = {
interaction = diarch_legal_meddling_interaction
recipient = scope:char_temp
}
}
}
##################################################
# Decisions
diarch_coup_valid_conspiracy_culmination_vassals_trigger = {
OR = {
is_powerful_vassal_of = $LIEGE$
house ?= { is_powerful_family = yes }
}
is_imprisoned = no
}
diarch_coup_attempt_is_valid_trigger = {
# Diarchy checks.
is_diarch = yes
$LIEGE$ = { has_diarchy_active_parameter = regents_can_try_to_overthrow_present_lieges }
## Liege must be physically present to overthrow. You can't coup them whilst they're abroad.
$LIEGE$ = {
is_imprisoned = no
is_travelling = no
is_at_war = no
custom_tooltip = {
text = custom.not_attending_activity
NOT = { exists = involved_activity }
}
age >= 5
}
# Support checks.
## Have you gathered enough support from the realm's powerful vassals and/or councillors?
custom_tooltip = {
text = diarch_attempt_to_overthrow_liege.tt.majority_powerful_vassal_support
subject = root
has_variable_list = coup_pv_supporters_list
any_in_list = {
variable = coup_pv_supporters_list
count >= pv_overthrow_threshold_value
# Double check they're still valid.
diarch_coup_valid_conspiracy_culmination_vassals_trigger = { LIEGE = $LIEGE$ }
}
}
# As a speed-bump, we check how long this diarchy has been on for.
OR = {
# Either, you've been a diarch for a good long ways.
years_as_diarch >= 8
# Or, you haven't been but everyone is kinda used to the concept of a diarch.
AND = {
years_as_diarch >= 4
$LIEGE$ = { years_in_diarchy >= 10 }
}
# OR, you've laid the groundwork for such a coup already
custom_tooltip = {
text = diarch_attempt_to_overthrow_liege_bypass
has_character_flag = laid_coup_groundwork_flag
}
}
# And finally, for ease of sanity, your liege must be of a certain size.
$LIEGE$.sub_realm_size >= minor_realm_size
}
diarch_coup_attempt_is_valid_showing_failure_only_trigger = {
# Diarch must be able to act.
diarch_cannot_be_disabled_trigger = { DIARCH = $DIARCH$ }
# Plus standard checks.
is_available_adult = yes
# Filter this out in advance, else we risk trying to enter a duel later, only to find we're already engaged in one.
custom_description = {
text = ENGAGED_IN_SINGLE_COMBAT
NOT = { exists = var:engaged_in_single_combat }
}
# Liege must have _something_ at the highest tier that isn't a HoF title.
custom_tooltip = {
text = diarch_attempt_to_overthrow_liege.tt.liege_cant_hold_only_hof_highest_title
liege = {
any_held_title = {
tier = prev.highest_held_title_tier
is_head_of_faith = no
}
}
}
}
diarch_coup_attempt_grabbable_kingdom_trigger = {
highest_held_title_tier >= tier_empire
any_held_title = {
diarch_coup_attempt_grabbable_kingdom_guts_trigger = { TARGET = $TARGET$ }
}
}
diarch_coup_attempt_grabbable_kingdom_guts_trigger = {
tier = tier_kingdom
is_head_of_faith = no
any_de_jure_county = {
holder = {
any_liege_or_above = { this = $TARGET$ }
}
}
}
diarch_coup_attempt_grabbable_capital_and_duchies_trigger = {
is_head_of_faith = no
is_landless_type_title = no
OR = {
AND = {
tier = tier_county
this.duchy = $TARGET$.primary_title.title_capital_county.duchy
}
this = $TARGET$.primary_title.title_capital_county.duchy
}
}
##################################################
# Mandates
#TODO_CD_EP2; rig these up to the actual loyalty value.
diarch_loyalty_due_to_hook_trigger = {
$LIEGE$ = {
OR = {
has_hook_of_type = {
target = $DIARCH$
type = loyalty_hook
}
has_hook_of_type = {
target = $DIARCH$
type = predecessor_loyalty_hook
}
}
}
}
diarch_wants_to_engage_with_mandates_trigger = {
save_temporary_scope_value_as = {
name = diarch_loyalty
value = $DIARCH$.diarch_loyalty_score_type_regency_value
}
OR = {
scope:diarch_loyalty >= diarch_loyalty_visibly_loyal_threshold
scope:diarch_loyalty <= diarch_loyalty_visibly_disloyal_threshold
}
}
##################################################
# Events
character_has_regency_diarchy_trigger = {
exists = diarch
OR = {
has_diarchy_active_parameter = diarchy_type_is_temporary_regency
has_diarchy_active_parameter = diarchy_type_is_entrenched_regency
}
}