N3OW/common/scripted_triggers/00_generic_struggle_scripted_triggers.txt

508 lines
14 KiB
Text

##################################################
# Debug Triggers
# Do we want to gather global variable tallies for the Persian struggle?
## Toggled off for release, toggle back on to check how often we change phases & which catalysts are firing.
gather_debug_variables_for_persian_struggle_trigger = { always = no }
##################################################
# General Triggers
## Miscellaneous assorted triggers related to bits of neutral struggle content.
# Characters of some note within the struggle.
is_important_struggle_character = {
highest_held_title_tier = tier_duchy
}
# Characters who are very important within the struggle (generally enough that they matter for catalysts).
is_vip_struggle_character = {
OR = {
highest_held_title_tier >= tier_kingdom
AND = {
exists = faith.religious_head
this = faith.religious_head
}
this = culture.culture_head
}
}
is_important_or_vip_struggle_character = {
OR = {
is_important_struggle_character = yes
is_vip_struggle_character = yes
}
}
is_semi_important_ruler_struggle_character = {
OR = {
highest_held_title_tier >= tier_county
is_important_or_vip_struggle_character = yes
}
}
is_secondary_character_involvement_involved_trigger = {
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = {
involvement = involved
this = scope:struggle_temp
}
}
}
is_secondary_character_involvement_interloper_trigger = {
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = {
involvement = interloper
this = scope:struggle_temp
}
}
}
is_secondary_character_involvement_either_trigger = {
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = { this = scope:struggle_temp }
}
}
is_secondary_character_involvement_neither_trigger = {
save_temporary_scope_as = struggle_temp
$CHAR$ = {
NOT = {
any_character_struggle = { this = scope:struggle_temp }
}
}
}
is_diff_faith_or_culture_trigger = {
NAND = {
culture = $CHAR$.culture
faith = $CHAR$.faith
}
$CHAR$ = { any_character_struggle = { involvement = $STATUS$ } }
# Removed the check for what struggle it is
}
is_same_faith_or_culture_trigger = {
OR = {
culture = $CHAR$.culture
faith = $CHAR$.faith
}
$CHAR$ = { any_character_struggle = { involvement = $STATUS$ } }
# Removed the check for what struggle it is
}
is_same_culture_trigger = {
culture = $CHAR$.culture
$CHAR$ = { any_character_struggle = { involvement = $STATUS$ } }
# Removed the check for what struggle it is
}
is_same_faith_trigger = {
culture = $CHAR$.culture
$CHAR$ = { any_character_struggle = { involvement = $STATUS$ } }
# Removed the check for what struggle it is
}
##################################################
# Catalyst Phase Triggers
## Should a catalyst be activating in this phase?
### Remember, that means it should activate in the phase _before_ the one that has it as a valid transitionary catalyst.
##################################################
# Catalyst Triggers
## Some common rump triggers used in catalysts activation, plus preliminaries for catalysts triggered in multiple locations.
catalyst_gave_independence_to_powerful_diff_faith_culture_vassal_preliminary_trigger = {
$CHAR1$ = {
NAND = {
culture = $CHAR2$.culture
faith = $CHAR2$.faith
}
}
$CHAR2$ = { is_powerful_vassal_of = $CHAR1$ }
}
catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = {
$CHAR$ = {
any_in_list = {
list = changed_obligations
vassal_contract_type = {
OR = {
this = vassal_contract:religious_rights
this = vassal_contract:jizya_special_rights
}
}
obligation_level_score >= 1
}
is_powerful_vassal = yes
}
}
catalyst_revoked_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = {
$CHAR$ = {
any_in_list = {
list = changed_obligations
vassal_contract_type = {
OR = {
this = vassal_contract:religious_rights
this = vassal_contract:jizya_special_rights
}
}
obligation_level_score >= 1
}
is_powerful_vassal = yes
}
}
catalyst_hybridise_or_diverge_regional_cultures_preliminary_trigger = {
phase_has_catalyst = catalyst_hybridise_or_diverge_regional_cultures
save_temporary_scope_as = struggle_temp
OR = {
AND = {
exists = scope:parent_culture_2
scope:struggle_temp = {
is_culture_involved_in_struggle = scope:parent_culture_1
is_culture_involved_in_struggle = scope:parent_culture_2
}
}
is_culture_involved_in_struggle = scope:parent_culture_1
}
}
catalyst_very_important_child_change_culture_or_faith_preliminary_trigger = {
any_character_struggle = {
phase_has_catalyst = catalyst_very_important_child_change_culture_or_faith
}
is_adult = no
any_parent = {
any_character_struggle ={
involvement = involved
}
is_vip_struggle_character = yes
}
}
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
phase_has_catalyst = $CATALYST$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = {
involvement = involved
this = scope:struggle_temp
}
}
}
activate_struggle_catalyst_secondary_character_involvement_interloper_trigger = {
phase_has_catalyst = $CATALYST$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = {
involvement = interloper
this = scope:struggle_temp
}
}
}
activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
phase_has_catalyst = $CATALYST$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = { this = scope:struggle_temp }
}
}
activate_struggle_catalyst_secondary_character_involvement_neither_trigger = {
phase_has_catalyst = $CATALYST$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
NOT = {
any_character_struggle = { this = scope:struggle_temp }
}
}
}
activate_struggle_catalyst_secondary_character_involvement_interloper_or_uninvolved_trigger = {
phase_has_catalyst = $CATALYST$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
OR = {
any_character_struggle = {
involvement = interloper
this = scope:struggle_temp
}
NOT = {
any_character_struggle = { this = scope:struggle_temp }
}
}
}
}
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
phase_has_catalyst = $CATALYST$
save_temporary_scope_as = struggle_temp
$VAR_SCOPE$ = {
trigger_if = {
limit = { scope:attacker = scope:loser }
has_variable = struggle_involvement_attacker
has_variable = struggle_scope_attacker
var:struggle_involvement_attacker = flag:$INVOLVEMENT$
var:struggle_scope_attacker = scope:struggle_temp
}
trigger_else = {
has_variable = struggle_involvement_defender
has_variable = struggle_scope_defender
var:struggle_involvement_defender = flag:$INVOLVEMENT$
var:struggle_scope_defender = scope:struggle_temp
}
}
}
##################################################
# Parameter Triggers
## If a parameter is triggered in multiple places, we use a scripted trigger to keep things unified.
is_struggle_parameter_active_interfaith_marriages_available_between_involved_characters_trigger = {
scope:actor = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = interfaith_marriages_available_between_involved_characters
save_temporary_scope_as = struggle_temp
scope:recipient = {
any_character_struggle = {
involvement = involved
this = scope:struggle_temp
}
}
}
}
}
is_struggle_parameter_active_cheaper_to_convert_to_struggle_culture_trigger = {
capital_county = {
any_county_struggle = { has_struggle_phase_parameter = cheaper_to_convert_to_struggle_culture }
}
}
is_struggle_parameter_active_secondary_character_involvement_involved_trigger = {
has_struggle_phase_parameter = $PARAMETER$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = {
involvement = involved
this = scope:struggle_temp
}
}
}
is_struggle_parameter_active_secondary_character_involvement_interloper_trigger = {
has_struggle_phase_parameter = $PARAMETER$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = {
involvement = interloper
this = scope:struggle_temp
}
}
}
is_struggle_parameter_active_secondary_character_involvement_either_trigger = {
has_struggle_phase_parameter = $PARAMETER$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
any_character_struggle = { this = scope:struggle_temp }
}
}
is_struggle_parameter_active_secondary_character_involvement_neither_trigger = {
has_struggle_phase_parameter = $PARAMETER$
save_temporary_scope_as = struggle_temp
$CHAR$ = {
NOT = {
any_character_struggle = { this = scope:struggle_temp }
}
}
}
is_struggle_parameter_active_secondary_county_trigger = {
has_struggle_phase_parameter = $PARAMETER$
save_temporary_scope_as = struggle_temp
$COUNTY$ = {
any_county_struggle = { this = scope:struggle_temp }
}
}
is_struggle_parameter_active_variable_cb_target_secondary_county_trigger = {
has_struggle_phase_parameter = $PARAMETER$
save_temporary_scope_as = struggle_temp
any_in_list = {
list = target_titles
count >= 1
tier = tier_county
any_county_struggle = { this = scope:struggle_temp }
}
}
##################################################
# Casus Belli Triggers
## Struggle triggers related to wars & similar.
# Is the scoped war using a CB we consider important enough to be a catalyst-worthy CB within the struggle?
is_large_conquest_war_for_struggle_trigger = {
$WAR$ = {
OR = {
# Large claim wars.
AND = {
using_cb = claim_cb
any_in_list = {
list = target_titles
tier >= tier_kingdom
}
}
using_cb = duchy_conquest_cb
using_cb = individual_duchy_de_jure_cb
using_cb = imperial_reconquest_cb
using_cb = invasion_war
using_cb = clan_invasion_war
using_cb = mongol_invasion_war
using_cb = mongol_realm_invasion_war
using_cb = mpo_gok_onslaught_cb
using_cb = major_religious_war
using_cb = undirected_great_holy_war
using_cb = directed_great_holy_war
using_cb = tribal_subjugation_cb
}
}
}
# Can conquest holy wars be accessed in the current phase of the struggle?
are_holy_wars_disabled_in_struggle_phase_trigger = {
exists = scope:target
trigger_if = {
scope:target.tier = tier_county
scope:target = {
any_county_struggle = {
NOT = { has_struggle_phase_parameter = holy_wars_in_region_cannot_be_declared }
}
}
}
trigger_else = { # For Duchy and Kingdom Holy War
scope:target = {
any_in_de_facto_hierarchy = { # We only consider county within the realm of the target's holder
tier = tier_county
any_county_struggle = {
NOT = { has_struggle_phase_parameter = holy_wars_in_region_cannot_be_declared }
}
}
}
}
}
# Can the struggle conquest CB be used?
## Currently, we're generous with this. Rather than tying it to a parameter, you just need to be involved in a struggle.
## This should sync neatly with the various struggle_conquest_cb_is_XYZ_phase_triggers, but due to parameter requirements, can't easily be made to do so automagically.
can_use_struggle_cbs_trigger = {
OR = {
any_character_struggle = { involvement = involved }
# Execption if taking hostility ending
AND = {
exists = scope:attacker.house
scope:attacker.house = {
OR ={
has_house_modifier = fp2_struggle_hostility_house_combined_modifier
has_house_modifier = fp2_struggle_hostility_house_faith_modifier
has_house_modifier = fp2_struggle_hostility_house_culture_modifier
}
}
}
}
}
# These triggers govern the relative costs for the struggle conquest CB.
## These should sync neatly with can_use_struggle_cbs_trigger, but due to parameter requirements, can't easily be made to do so automagically.
## Cheap.
struggle_conquest_cb_is_warlike_phase_trigger = {
$CHAR1$ = {
any_character_struggle = {
involvement = involved
is_struggle_type = iberian_struggle
is_struggle_phase = struggle_iberia_phase_hostility
is_secondary_character_involvement_either_trigger = { CHAR = $CHAR2$ }
}
}
}
## Average.
struggle_conquest_cb_is_average_phase_trigger = {
$CHAR1$ = {
any_character_struggle = {
involvement = involved
is_struggle_type = iberian_struggle
is_struggle_phase = struggle_iberia_phase_opportunity
is_secondary_character_involvement_either_trigger = { CHAR = $CHAR2$ }
}
}
}
## Pricey.
struggle_conquest_cb_is_peaceful_phase_trigger = {
$CHAR1$ = {
any_character_struggle = {
involvement = involved
is_struggle_type = iberian_struggle
OR = {
is_struggle_phase = struggle_iberia_phase_compromise
is_struggle_phase = struggle_iberia_phase_conciliation
}
is_secondary_character_involvement_either_trigger = { CHAR = $CHAR2$ }
}
}
}
# Work out whether we need to vassalise someone vs. taking some of their stuff.
struggle_conquest_cb_target_is_ocm_trigger = {
any_in_list = {
list = target_titles
# Should only ever be one title, but just in case...
count = all
holder = {
any_held_title = {
count = 1
tier = tier_county
}
NOT = {
any_vassal = { highest_held_title_tier >= tier_county }
}
}
}
}
struggle_blocks_invasion_conquest_cb_trigger = {
trigger_if = {
limit = {
scope:attacker = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = invasion_conquest_war_cannot_be_declared
}
}
exists = scope:defender
}
scope:defender = {
NOR = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = invasion_conquest_war_cannot_be_declared
}
any_character_struggle = {
involvement = interloper
has_struggle_phase_parameter = invasion_conquest_war_cannot_be_declared
}
}
}
}
trigger_else = { always = yes }
}