254 lines
9.5 KiB
Text
254 lines
9.5 KiB
Text
############################################
|
|
# Canonizing Saints - scripted triggers
|
|
# pam_can_canonize_saint_trigger
|
|
# pam_is_canonization_candidate_trigger
|
|
# pam_faith_uses_cathedrals_trigger
|
|
# pam_character_has_cathedral_trigger
|
|
# pam_has_consecration_site_trigger
|
|
# pam_site_free_trigger
|
|
# pam_province_is_free_burial_site_trigger
|
|
# pam_has_free_primary_site_trigger
|
|
# pam_county_has_actor_primary_site_trigger
|
|
# pam_has_free_adjacent_site_trigger
|
|
# pam_needs_hof_approval_for_canonization_trigger
|
|
# pam_hof_thinks_well_of_canonizer_trigger
|
|
# pam_saint_is_buried_in_my_lands_trigger
|
|
# pam_can_extract_relic_from_saint_trigger
|
|
# pam_saint_relic_drawable_trigger
|
|
# pam_venerated_the_saints_personally_trigger
|
|
############################################
|
|
has_corpse_trigger = {
|
|
trigger_if = {
|
|
limit = { is_alive = no }
|
|
NOR = {
|
|
has_dead_character_variable = no_corpse_left
|
|
saint_burial_location ?= { has_variable = no_corpse_left }
|
|
death_reason = death_disappearance
|
|
death_reason = death_vanished
|
|
death_reason = death_hunted_by_wild_beast
|
|
death_reason = death_disappeared_into_slave_markets
|
|
death_reason = death_killed_by_monstrous_dog
|
|
death_reason = death_killed_by_monstrous_wolf
|
|
death_reason = death_killed_by_monstrous_hyena
|
|
death_reason = death_killed_by_monstrous_lion
|
|
death_reason = death_killed_by_monstrous_tiger
|
|
death_reason = death_killed_by_monstrous_leopard
|
|
death_reason = death_killed_by_monstrous_panther
|
|
death_reason = death_killed_by_monstrous_lynx
|
|
death_reason = death_killed_by_monstrous_caracal
|
|
death_reason = death_killed_by_monstrous_bear
|
|
death_reason = death_killed_by_monstrous_hippo
|
|
death_reason = death_killed_by_monstrous_crocodile
|
|
}
|
|
}
|
|
}
|
|
# Can this ruler canonize saints at all? (the actor of the decision)
|
|
pam_can_canonize_saint_trigger = {
|
|
has_pam_dlc_trigger = yes
|
|
is_landed_or_landless_administrative_or_theocratic = yes
|
|
is_adult = yes
|
|
is_ruler = yes
|
|
exists = faith
|
|
# Christian sainthood needs Dulia not forbidden or unknown; non-Christian (Venerated Ancestor) faiths are unaffected.
|
|
trigger_if = {
|
|
limit = {
|
|
OR = {
|
|
faith.religion = religion:catholic_religion
|
|
faith.religion = religion:protestant_religion
|
|
faith.religion = religion:eastern_orthodox_religion
|
|
faith.religion = religion:oriental_orthodox_religion
|
|
}
|
|
}
|
|
rite = {
|
|
NOT = { has_tenet_status = { tenet = tenet_dulia status = unknown } }
|
|
NOT = { has_tenet_status = { tenet = tenet_dulia status = prohibited } }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Can this dead ancestor be canonized? CANONIZER is passed in because the picker runs with root = none; virtue/sin are judged by the canonizer's rite.
|
|
pam_is_canonization_candidate_trigger = {
|
|
is_alive = no
|
|
NOT = { has_trait = saint }
|
|
faith ?= $CANONIZER$.faith
|
|
dynasty ?= $CANONIZER$.dynasty
|
|
# Saintly life: at least one virtue and no sins by our rite's reckoning.
|
|
num_virtuous_traits = {
|
|
value >= 1
|
|
target = this.rite
|
|
}
|
|
num_sinful_traits = {
|
|
value = 0
|
|
target = this.rite
|
|
}
|
|
}
|
|
|
|
# Faiths with clerical regions and a temporal/appointed clergy build cathedrals; every other faith, including all non-Christian ones, consecrates at a holy site instead. Mirrors the ecclesiastical_government gate (see 02_theocratic_government_types.txt).
|
|
pam_faith_uses_cathedrals_trigger = {
|
|
faith ?= { has_doctrine_parameter = has_clerical_regions }
|
|
NOT = { rite = { rite_has_doctrine = doctrine_theocracy_lay_clergy } }
|
|
}
|
|
|
|
# We start with government because it is quick, then ecclesiastical_domicile_main_01 or higher
|
|
pam_character_has_cathedral_trigger = {
|
|
has_government = ecclesiastical_government
|
|
domicile ?= { has_domicile_building_or_higher = ecclesiastical_domicile_main_01 }
|
|
}
|
|
|
|
# Does the actor have somewhere to consecrate a saint? A free (unoccupied) cathedral / holy site, or - once those are all taken - a free county-capital barony neighbouring one. Burial is one saint per province, so "free" means the province holds no saint yet.
|
|
pam_has_consecration_site_trigger = {
|
|
OR = {
|
|
pam_has_free_primary_site_trigger = yes
|
|
pam_has_free_adjacent_site_trigger = yes
|
|
}
|
|
}
|
|
|
|
# A consecration barony (barony scope) whose province has no saint buried yet. Burial is province-anchored (the poi_buried_saint marks the province), so one province holds at most one saint.
|
|
pam_site_free_trigger = {
|
|
title_province ?= {
|
|
NOR = {
|
|
has_variable = hide_location_for_saint
|
|
has_travel_point_of_interest = poi_buried_saint
|
|
}
|
|
}
|
|
}
|
|
|
|
# Province can take add_saint: holding present, no buried-saint PoI yet.
|
|
pam_province_is_free_burial_site_trigger = {
|
|
has_holding = yes
|
|
NOR = {
|
|
has_variable = hide_location_for_saint
|
|
has_travel_point_of_interest = poi_buried_saint
|
|
}
|
|
}
|
|
|
|
# Does the actor have a free primary consecration site? Cathedral faiths: an unoccupied cathedral in their realm. Others: an unoccupied holy site of their faith in realm.
|
|
pam_has_free_primary_site_trigger = {
|
|
trigger_if = {
|
|
limit = { pam_faith_uses_cathedrals_trigger = yes }
|
|
OR = {
|
|
AND = {
|
|
pam_character_has_cathedral_trigger = yes
|
|
domicile ?= { domicile_location = { barony ?= { pam_site_free_trigger = yes } } }
|
|
}
|
|
any_realm_province = {
|
|
barony ?= { pam_site_free_trigger = yes }
|
|
any_province_domicile = { owner = { pam_character_has_cathedral_trigger = yes } }
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {
|
|
save_temporary_scope_as = pam_primary_site_actor
|
|
any_realm_province = {
|
|
barony ?= { is_holy_site_of = scope:pam_primary_site_actor.faith }
|
|
NOT = { has_travel_point_of_interest = poi_buried_saint }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Does this county (title scope) hold one of $ACTOR$'s primary consecration sites? Used to find provinces adjacent to a real site. Cathedral faiths: a cathedral (an ecclesiastical domicile) in $ACTOR$'s realm sits in the county, whoever owns it. Others: a holy site of $ACTOR$'s faith sits in the county, in realm. Identified from the province's domicile side (same walk as pam_has_free_primary_site_trigger and setup_items) - a cathedral barony's holder isn't reliably the bishop, so a barony->holder lookup misses them. Intentionally intrinsic (cathedral/holy-site nature, not occupancy) so an adjacency burial never seeds further neighbours.
|
|
pam_county_has_actor_primary_site_trigger = {
|
|
save_temporary_scope_as = pam_primary_site_county
|
|
trigger_if = {
|
|
limit = { $ACTOR$ = { pam_faith_uses_cathedrals_trigger = yes } }
|
|
$ACTOR$ = {
|
|
OR = {
|
|
AND = {
|
|
pam_character_has_cathedral_trigger = yes
|
|
domicile ?= { domicile_location ?= { county = scope:pam_primary_site_county } }
|
|
}
|
|
any_realm_province = {
|
|
county = scope:pam_primary_site_county
|
|
any_province_domicile = { owner = { pam_character_has_cathedral_trigger = yes } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {
|
|
$ACTOR$ = {
|
|
any_realm_province = {
|
|
barony ?= { is_holy_site_of = $ACTOR$.faith }
|
|
county = scope:pam_primary_site_county
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Once every primary site is taken, may the actor consecrate in a neighbouring province instead? True when a free county-capital barony in realm borders a county that holds one of the actor's primary sites (one candidate per county, keeping the picker focused).
|
|
pam_has_free_adjacent_site_trigger = {
|
|
save_temporary_scope_as = pam_adjacency_actor
|
|
any_realm_province = {
|
|
is_county_capital = yes
|
|
NOT = { has_travel_point_of_interest = poi_buried_saint }
|
|
county = {
|
|
any_neighboring_county = {
|
|
pam_county_has_actor_primary_site_trigger = { ACTOR = scope:pam_adjacency_actor }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Approval is needed when a Head of Faith exists and it is not the actor.
|
|
pam_needs_hof_approval_for_canonization_trigger = {
|
|
exists = faith.religious_head
|
|
NOT = { faith.religious_head = root }
|
|
}
|
|
|
|
# A Head of Faith who thinks poorly of the actor will not entertain the petition at all. Vacuously true where approval is not sought anyway - no Head of Faith, or the actor holds the office - and for a puppeted Head of Faith, who cannot refuse their puppeteer (mirrors the certain-approval branch in the canonize decision).
|
|
pam_hof_thinks_well_of_canonizer_trigger = {
|
|
trigger_if = {
|
|
limit = {
|
|
pam_needs_hof_approval_for_canonization_trigger = yes
|
|
NOT = { faith.religious_head.puppeteer ?= root }
|
|
}
|
|
faith.religious_head ?= {
|
|
opinion = {
|
|
target = root
|
|
value >= high_positive_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Is this burial province within $EXTRACTOR$'s realm (held by them or a vassal/sub-vassal)? EXTRACTOR is passed in because the relic picker runs with root = none.
|
|
pam_saint_is_buried_in_my_lands_trigger = {
|
|
county.holder ?= {
|
|
target_is_same_character_or_above = $EXTRACTOR$
|
|
}
|
|
}
|
|
|
|
# Can $EXTRACTOR$ draw another relic from this site? The AI always leaves one relic
|
|
# $SAINT$ is the saint being evaluated
|
|
pam_can_extract_relic_from_saint_trigger = {
|
|
# add_saint deliberately accepts living characters for modders, so the registry can hold one - never offer them as a relic source
|
|
$SAINT$ = { is_alive = no }
|
|
pam_saint_is_buried_in_my_lands_trigger = { EXTRACTOR = $EXTRACTOR$ }
|
|
trigger_if = {
|
|
limit = { $EXTRACTOR$ = { is_ai = yes } }
|
|
$SAINT$ = {
|
|
remaining_saint_relics > 1
|
|
}
|
|
}
|
|
trigger_else = {
|
|
$SAINT$ = {
|
|
remaining_saint_relics > 0
|
|
}
|
|
}
|
|
}
|
|
|
|
# Relic picker is_item_valid helper (scope = picked saint): can $EXTRACTOR$ still draw from this saint? Resolve their burial province, then defer to the shared eligibility trigger (prev = the saint).
|
|
pam_saint_relic_drawable_trigger = {
|
|
saint_burial_location = {
|
|
pam_can_extract_relic_from_saint_trigger = { EXTRACTOR = $EXTRACTOR$ SAINT = prev }
|
|
}
|
|
}
|
|
|
|
pam_venerated_the_saints_personally_trigger = {
|
|
trigger_if = {
|
|
limit = { is_alive = yes }
|
|
has_personal_tenet_flag = tenet_dulia_personal_sainthood_chance
|
|
}
|
|
trigger_else = {
|
|
has_dead_character_variable = pam_dulia_personal_sainthood
|
|
}
|
|
}
|