N3OW/common/scripted_triggers/10_tgp_triggers.txt
2026-03-03 23:03:20 +00:00

929 lines
22 KiB
Text

tgp_distant_realm_marriage_trigger = {
$RECIPIENT_SPOUSE$ = {
culture = { has_cultural_parameter = reduced_marriage_acceptance_distant_realms }
top_liege != $ACTOR_SPOUSE$.top_liege
trigger_if = {
limit = { exists = capital_province }
capital_province = { save_temporary_scope_as = from }
}
trigger_else = {
location = { save_temporary_scope_as = from }
}
trigger_if = {
limit = { exists = $ACTOR_SPOUSE$.capital_province }
$ACTOR_SPOUSE$.capital_province = { save_temporary_scope_as = to }
}
trigger_else = {
$ACTOR_SPOUSE$.location = { save_temporary_scope_as = to }
}
"scope:from.squared_distance(scope:to)" > squared_distance_medium
}
}
tgp_dynastic_realm_name_trigger = {
NOT = {
any_ruler = {
any_held_title = {
has_custom_title_name = yes
custom_title_name = $DYNASTY_REALM_NAME$
}
}
}
domicile.domicile_location = {
geographical_region = $DOMICILE_REGION$
}
}
administrative_tier_allows_independence = {
trigger_if = {
limit = {
administrative_counts_can_be_independent = yes
}
highest_held_title_tier >= tier_county
}
trigger_else = { # Administrative/default
highest_held_title_tier >= tier_kingdom
}
}
administrative_counts_can_be_independent = {
OR = {
government_has_flag = government_is_celestial
government_has_flag = government_is_japan_administrative
}
}
tgp_examination_should_spend_treasury_trigger = {
has_treasury = yes
government_allows = replace_gold_cost_by_treasury
}
# Trigger to enable ministry features in script - Made into a scripted trigger for ease of changing it if needed
tgp_has_access_to_ministry_trigger = {
has_title = title:h_china
government_has_flag = government_is_celestial
}
tgp_is_any_minister = {
liege ?= { tgp_has_access_to_ministry_trigger = yes }
OR = {
has_title = title:e_minister_chancellor
has_title = title:e_minister_censor
has_title = title:e_minister_grand_marshal
has_title = title:e_minister_of_personnel
has_title = title:e_minister_of_revenue
has_title = title:e_minister_of_rites
has_title = title:e_minister_of_war
has_title = title:e_minister_of_justice
has_title = title:e_minister_of_works
}
}
tgp_can_be_a_minister_trigger = {
can_be_councillor_basics_trigger = yes
# Has to be celestial or a non-ruler
OR = {
is_ruler = no
government_has_flag = government_is_celestial
}
# Gender is based on laws of the liege
OR = {
AND = {
is_female = yes
$COURT_OWNER$ = {
NOR = {
has_realm_law = male_only_law
has_realm_law = male_preference_law
}
}
}
AND = {
is_male = yes
$COURT_OWNER$ = {
NOR = {
has_realm_law = female_only_law
has_realm_law = female_preference_law
}
}
}
}
# Players are only allowed if they have enough merit or is a councillor already, unless they are friends or disciples/elders
# We do this to prevent the AI from "randomly" requesting the player to be on their council
trigger_if = {
limit = {
is_ai = no
$COURT_OWNER$ = { is_ai = yes }
NOT = { is_councillor_of = $COURT_OWNER$ }
}
OR = {
merit_level >= merit_level_expected_empire_value
has_relation_friend = $COURT_OWNER$
has_relation_disciple = $COURT_OWNER$
has_relation_elder = $COURT_OWNER$
}
}
}
tgp_can_be_grand_marshal_trigger = {
can_be_councillor_basics_trigger = yes
$COURT_OWNER$ ?= {
NOT = { government_has_flag = government_is_nomadic }
}
NAND = {
has_council_position = councillor_court_chaplain
faith = { has_doctrine_parameter = clerical_appointment_fixed }
}
NOR = {
has_council_position = councillor_spouse
AND = {
this = liege.diarch
liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
}
has_trait = devoted
}
# Has to be celestial or a non-ruler
OR = {
is_ruler = no
government_has_flag = government_is_celestial
}
# Has to be able to lead armies
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $COURT_OWNER$ }
}
tgp_is_above_retirement_age_trigger = {
trigger_if = {
limit = {
$REALM_OWNER$.top_liege ?= { has_realm_law_flag = celestial_retirement_age_4 }
}
custom_tooltip = {
text = tgp_is_above_retirement_age_4
age >= retirement_age_4_value
}
}
trigger_else_if = {
limit = {
$REALM_OWNER$.top_liege ?= { has_realm_law_flag = celestial_retirement_age_3 }
}
custom_tooltip = {
text = tgp_is_above_retirement_age_3
age >= retirement_age_3_value
}
}
trigger_else_if = {
limit = {
$REALM_OWNER$.top_liege ?= { has_realm_law_flag = celestial_retirement_age_2 }
}
custom_tooltip = {
text = tgp_is_above_retirement_age_2
age >= retirement_age_2_value
}
}
trigger_else_if = {
limit = {
$REALM_OWNER$.top_liege ?= { has_realm_law_flag = celestial_retirement_age_1 }
}
custom_tooltip = {
text = tgp_is_above_retirement_age_1
age >= retirement_age_1_value
}
}
trigger_else_if = {
limit = {
$REALM_OWNER$.top_liege ?= { has_realm_law_flag = celestial_retirement_age_0 }
}
custom_tooltip = {
text = tgp_is_above_retirement_age_0
age >= retirement_age_0_value
}
}
trigger_else_if = {
limit = {
$REALM_OWNER$.top_liege ?= { has_realm_law_flag = celestial_retirement_age_5 }
}
custom_tooltip = {
text = tgp_is_above_retirement_age_5
always = no
}
}
trigger_else = {
custom_tooltip = {
text = tgp_is_above_retirement_age_law_not_set
always = yes
}
}
}
# Civilian/military triggers
is_civilian_candidate_trigger = {
trigger_if = {
limit = {
has_variable = appointment_trait_override
}
var:appointment_trait_override = trait:education_stewardship_1
}
trigger_else = {
has_trait_with_flag = civilian_province
}
}
is_military_candidate_trigger = {
trigger_if = {
limit = {
has_variable = appointment_trait_override
}
var:appointment_trait_override = trait:education_martial_1
}
trigger_else = {
has_trait_with_flag = military_province
}
}
# Trigger if scoped character is able to join the war(s) of the target character
# $TARGET_GOVERNOR$ - Target governor in need of troops
# $MINISTER_OF_WAR$ - The Minister of War
tgp_celestial_military_governor_can_join_war_trigger = {
save_temporary_scope_as = joining_governor
OR = {
vassal_contract_has_flag = celestial_military_appointment
vassal_contract_has_flag = meritocratic_military_appointment
has_title = title:e_minister_grand_marshal
}
NOR = {
scope:joining_governor = $TARGET_GOVERNOR$
scope:joining_governor = $MINISTER_OF_WAR$
any_war_ally = { this = $TARGET_GOVERNOR$ }
is_at_war_with = $TARGET_GOVERNOR$
is_at_war_with = $MINISTER_OF_WAR$
$TARGET_GOVERNOR$ = {
any_war_enemy = {
OR = {
is_vassal_of = scope:joining_governor
is_liege_or_above_of = scope:joining_governor
is_allied_to = scope:joining_governor
is_tributary_of = scope:joining_governor
is_at_war_with = scope:joining_governor
}
}
}
}
}
should_be_mandala_tributary_trigger = {
OR = {
AND = {
$SUZERAIN$ = { has_government = mandala_government }
$TRIBUTARY$ = { has_government = mandala_government }
}
AND = {
$SUZERAIN$ = { has_government = mandala_government }
$TRIBUTARY$ = {
OR = {
has_government = tribal_government
has_government = wanua_government
}
}
}
}
}
should_be_wanua_tributary_trigger = {
AND = {
$SUZERAIN$ = { has_government = wanua_government }
$TRIBUTARY$ = { has_government = wanua_government }
}
}
is_valid_for_japan_events_trigger = {
OR = {
religion = religion:shintoism_religion
faith = { has_doctrine = special_doctrine_immaterial_harmony }
}
culture = { has_cultural_pillar = heritage_japonic }
}
# Check if a top liege primary title has a ceremonial liege title
tgp_realm_has_ceremonial_liege_trigger = {
custom_tooltip = {
text = tgp_realm_has_ceremonial_liege_tt
exists = top_liege.primary_title.var:administrative_ui_special_title.holder
}
}
# Check if a character is a ceremonial liege, since they have the title but are a vassal
tgp_is_ceremonial_liege_trigger = {
custom_tooltip = {
text = tgp_is_ceremonial_liege_tt
tgp_has_ceremonial_liege_title_trigger = yes
is_independent_ruler = no
}
}
tgp_portrait_liege_or_ceremonial_liege_emperor_trigger = {
# Ceremonial Liege
trigger_if = {
limit = { tgp_realm_has_ceremonial_liege_trigger = yes }
tgp_has_ceremonial_liege_title_trigger = yes
primary_title.holder.top_liege.highest_held_title_tier >= tier_empire
}
# Standard Liege
trigger_else = {
scope:highest_held_title_tier >= tier_empire
is_independent_ruler = yes
}
}
tgp_portrait_liege_or_ceremonial_liege_king_trigger = {
# Ceremonial Liege
trigger_if = {
limit = { tgp_realm_has_ceremonial_liege_trigger = yes }
tgp_has_ceremonial_liege_title_trigger = yes
primary_title.holder.top_liege.highest_held_title_tier = tier_kingdom
}
# Standard Liege
trigger_else = { highest_held_title_tier = tier_kingdom }
}
# Check if a character has a ceremonial liege title (but not if they are actually a ceremonial liege)
tgp_has_ceremonial_liege_title_trigger = {
trigger_if = {
limit = { tgp_realm_has_ceremonial_liege_trigger = yes }
custom_tooltip = {
text = tgp_has_ceremonial_liege_title_tt
has_title = top_liege.primary_title.var:administrative_ui_special_title
}
}
trigger_else = {
custom_tooltip = {
text = tgp_has_ceremonial_liege_title_no_title_tt
always = no
}
}
}
# Used to save temp scope of the ceremonial liege for other triggers
tgp_ceremonial_liege_scope_trigger = {
top_liege = {
save_temporary_scope_as = ruler_temp
primary_title.var:administrative_ui_special_title.holder ?= {
top_liege ?= scope:ruler_temp.top_liege
this = scope:ruler_temp
save_temporary_scope_as = ceremonial_liege_temp
}
}
is_independent_ruler = no
}
# Check if character is part of their realm's ceremonial liege's house
tgp_is_in_ceremonial_house_trigger = {
custom_tooltip = {
text = tgp_is_in_ceremonial_house_tt
exists = house
top_liege.primary_title.var:administrative_ui_special_title.holder.house ?= house
}
}
# Check if two characters are from the same ceremonial house
tgp_shared_ceremonial_house_trigger = {
exists = $COMPARE_1$.house
$COMPARE_2$.house ?= $COMPARE_1$.house
OR = {
$COMPARE_1$ = { tgp_is_in_ceremonial_house_trigger = yes }
$COMPARE_2$ = { tgp_is_in_ceremonial_house_trigger = yes }
}
}
# Check if a character is a ruler over a ceremonial liege
tgp_is_ceremonial_regent_trigger = {
is_independent_ruler = yes
is_landed = yes
tgp_realm_has_ceremonial_liege_trigger = yes
tgp_has_ceremonial_liege_title_trigger = no
}
tgp_should_become_meritocratic_trigger = {
has_tgp_dlc_trigger = yes
OR = {
top_liege = {
OR = {
has_government = meritocratic_government
any_neighboring_and_across_water_top_liege_realm_owner = { government_allows = merit }
}
}
AND = {
OR = {
is_independent_ruler = yes
liege = {
NOT = {
government_has_flag = government_is_administrative
}
}
}
capital_province = {
OR = {
geographical_region = world_asia
geographical_region = world_tibet
geographical_region = world_burma
geographical_region = world_steppe_east
}
}
}
#Becoming admin with creation of meritocratic great yuan
exists = scope:great_yuan_ruler
}
}
tgp_can_become_japan_administrative_trigger = {
top_liege = {
OR = {
government_is_japanese_trigger = yes
has_character_flag = tgp_japan_restore_japanese_government_flag
culture = culture:japanese
culture = {
any_parent_culture_or_above = { this = culture:japanese }
}
}
}
}
tgp_can_become_celestial_trigger = {
top_liege = {
OR = {
has_government = celestial_government
has_title = title:h_china
culture = culture:han
culture = {
any_parent_culture_or_above = { this = culture:han }
}
}
}
}
tgp_mongol_vassal_will_become_admin = {
highest_held_title_tier > tier_barony
primary_title = {
OR = {
target_is_de_jure_liege_or_above = scope:administrative_liege.primary_title #We only auto convert de jure vassals
target_is_de_jure_liege_or_above = title:h_china
}
}
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_has_flag = government_is_japan_feudal
government_has_flag = government_is_nomadic
}
OR = {
#An admin type
has_trait = governor
faith.religion = religion:confucianism_religion
culture = {
has_cultural_pillar = heritage_chinese
}
culture = {
has_cultural_pillar = heritage_korean
}
#Nomad type
government_has_flag = government_is_nomadic
has_trait = nomadic_philosophy
}
}
tgp_japanese_high_nobility_clothing_trigger = {
tgp_is_ceremonial_liege_trigger = no
trigger_if = {
limit = { has_character_flag = murasaki }
always = yes
}
trigger_else_if = {
limit = { government_has_flag = government_is_japan_feudal }
OR = {
is_independent_ruler = yes
trigger_if = {
limit = { exists = top_liege }
OR = {
is_councillor_of = top_liege
is_spouse_of = top_liege
}
AND = {
is_house_head = yes
has_same_government = top_liege
}
}
}
}
trigger_else_if = {
limit = { government_has_flag = government_is_japan_administrative }
OR = {
highest_held_title_tier >= tier_county
tgp_is_in_ceremonial_house_trigger = yes
}
}
trigger_else = { highest_held_title_tier >= tier_kingdom }
}
tgp_japanese_high_nobility_clothing_family_trigger = {
AND = {
government_has_flag = government_is_japan_administrative
is_lowborn = no
OR = {
highest_held_title_tier >= tier_county
court_owner = { highest_held_title_tier >= tier_county }
}
}
}
tgp_is_chinese_style_emperor_trigger = {
highest_held_title_tier >= tier_empire
is_independent_ruler = yes
government_allows = merit
}
is_valid_for_east_asian_events_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_japonic
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
}
}
}
is_valid_for_east_asian_events_geo_trigger = {
capital_province = {
OR = {
geographical_region = world_asia_china
geographical_region = world_asia_japan
geographical_region = world_asia_korea
geographical_region = world_asia_southeast
}
}
}
shared_raid_estate_participant_valid_trigger = {
is_adult = yes
is_house_head = yes
is_independent_ruler = no
custom_tooltip = {
text = is_house_head_of_noble_family_tt
any_held_title = { is_noble_family_title = yes }
house.house_head ?= this
}
OR = {
government_allows = administrative
government_is_japanese_trigger = yes
}
tgp_is_ceremonial_liege_trigger = no
}
should_use_asian_maa_graphics = {
OR = {
has_unit_gfx = chinese_unit_gfx
has_unit_gfx = japanese_unit_gfx
has_unit_gfx = indian_unit_gfx
has_unit_gfx = southeast_asian_unit_gfx
has_unit_gfx = mongol_unit_gfx
}
}
eligible_for_elder_trigger = {
merit_level > $DISCIPLE$.merit_level
num_of_relation_disciple < disciples_limit_value
NOT = { has_relation_disciple = $DISCIPLE$ }
$DISCIPLE$ = {
is_adult = yes
}
}
# Treasury budget triggers
prefers_salary_favored_budget_trigger = {
$CHARACTER$ = {
OR = {
top_participant_group:dynastic_cycle ?= { participant_group_type = conservative_movement }
has_title = title:e_minister_of_personnel
AND = {
this = top_liege
OR = {
ai_compassion > 75
ai_honor > 75
}
}
ai_greed >= 0
}
trigger_if = {
limit = { this != top_liege }
NOT = { has_trait = loyal }
}
}
}
prefers_ministry_favored_budget_trigger = {
$CHARACTER$ = {
OR = {
top_participant_group:dynastic_cycle ?= { participant_group_type = advancement_movement }
AND = {
this = top_liege
OR = {
ai_greed < 0
ai_rationality > 75
situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement }
}
}
}
trigger_if = {
limit = { this != top_liege }
NOT = { has_trait = loyal }
}
}
}
prefers_military_favored_budget_trigger = {
$CHARACTER$ = {
OR = {
top_participant_group:dynastic_cycle ?= { participant_group_type = expansion_movement }
has_title = title:e_minister_grand_marshal
has_title = title:e_minister_of_war
AND = {
this = top_liege
OR = {
ai_boldness > 90
situation:dynastic_cycle ?= {
OR = {
situation_current_phase = situation_dynastic_cycle_phase_stability_expansion
situation_current_phase = situation_dynastic_cycle_phase_instability_conquest
}
}
}
}
ai_greed < 0
}
trigger_if = {
limit = { this != top_liege }
NOT = { has_trait = loyal }
}
}
}
prefers_hegemon_favored_budget_trigger = {
$CHARACTER$ = {
OR = {
top_participant_group:dynastic_cycle ?= { participant_group_type = pro_hegemon_movement }
has_trait = loyal
AND = {
this = top_liege
ai_greed > 90
}
}
}
}
can_suggest_budget_salary_template_trigger = {
NOT = {
liege = {
has_realm_law = budget_allocation_salary_45
has_realm_law = budget_allocation_ministry_25
has_realm_law = budget_allocation_military_20
}
}
}
can_suggest_budget_ministry_template_trigger = {
NOT = {
liege = {
has_realm_law = budget_allocation_salary_25
has_realm_law = budget_allocation_ministry_45
has_realm_law = budget_allocation_military_20
}
}
}
can_suggest_budget_military_template_trigger = {
NOT = {
liege = {
has_realm_law = budget_allocation_salary_30
has_realm_law = budget_allocation_ministry_20
has_realm_law = budget_allocation_military_40
}
}
}
can_suggest_budget_hegemon_template_trigger = {
NOT = {
liege = {
has_realm_law = budget_allocation_salary_30
has_realm_law = budget_allocation_ministry_25
has_realm_law = budget_allocation_military_25
}
}
}
can_suggest_budget_balanced_template_trigger = {
NOT = {
liege = {
has_realm_law = budget_allocation_salary_35
has_realm_law = budget_allocation_ministry_30
has_realm_law = budget_allocation_military_25
}
}
}
###
peasant_war_should_escalated_trigger = {
has_variable = peasant_war_escalates
}
tgp_gender_can_be_exam_entrant_trigger = {
trigger_if = {
limit = {
scope:host ?= {
OR = {
has_realm_law = female_only_law
has_realm_law = female_preference_law
}
}
}
OR = {
is_female = yes
AND = {
is_ai = no
is_male = yes
}
}
}
trigger_else_if = {
limit = {
scope:host ?= {
OR = {
has_realm_law = male_only_law
has_realm_law = male_preference_law
}
}
}
OR = {
is_male = yes
AND = {
is_ai = no
is_female = yes
}
}
}
trigger_else = {
always = yes
}
}
tgp_root_gender_can_be_exam_entrant_trigger = {
trigger_if = {
limit = {
root ?= {
OR = {
has_realm_law = female_only_law
has_realm_law = female_preference_law
}
}
}
is_female = yes
}
trigger_else_if = {
limit = {
root ?= {
OR = {
has_realm_law = male_only_law
has_realm_law = male_preference_law
}
}
}
is_female = no
}
trigger_else = {
always = yes
}
}
is_merit_based_official = {
government_has_flag = government_has_merit
OR = {
is_governor_or_admin_count = yes
AND = {
is_councillor = yes
NOT = { has_council_position = councillor_spouse }
liege = {
OR = {
is_landed = yes # to exclude councilors of landless noble family heads
highest_held_title_tier >= tier_empire # for councilors of ministers
}
}
}
}
}
has_highest_merit_rank = {
trigger_if = {
limit = { government_has_flag = government_is_celestial }
merit_level = 9
}
trigger_else = { merit_level = 5 }
}
tgp_is_ceremonial_petition_shown_trigger = {
is_playable_character = yes
has_dlc_feature = royal_court
has_tgp_dlc_trigger = yes
tgp_realm_has_ceremonial_liege_trigger = yes
tgp_has_ceremonial_liege_title_trigger = no
top_liege = { tgp_is_ceremonial_regent_trigger = yes } # Not 'actual' ruler
top_liege.primary_title.var:administrative_ui_special_title.holder ?= { has_royal_court = yes }
}
tgp_is_ceremonial_petition_valid_trigger = {
has_dlc_feature = royal_court
has_tgp_dlc_trigger = yes
is_at_war = no
tgp_realm_has_ceremonial_liege_trigger = yes
top_liege.primary_title.var:administrative_ui_special_title.holder ?= {
is_available_adult = yes
has_royal_court = yes
NOT = { is_at_war = yes }
}
}
take_vows_available_trigger = {
OR = {
faith = { has_doctrine_parameter = take_vows_active }
AND = {
religion:buddhism_religion ?= religion
faith = { has_doctrine = special_doctrine_immaterial_harmony }
}
}
}
tgp_capital_not_in_chinese_naming_region = {
capital_county.title_province ?= {
NOR = {
geographical_region = tgp_ba_region
geographical_region = tgp_cai_region
geographical_region = tgp_cao_region
geographical_region = tgp_chen_region
geographical_region = tgp_chu_region
geographical_region = tgp_dai_region
geographical_region = tgp_dian_region
geographical_region = tgp_gan_region
geographical_region = tgp_gui_region
geographical_region = tgp_han_region
geographical_region = tgp_huai_region
geographical_region = tgp_jin_region
geographical_region = tgp_jing_region
geographical_region = tgp_lai_region
geographical_region = tgp_liang_region
geographical_region = tgp_lu_region
geographical_region = tgp_min_region
geographical_region = tgp_qi_region
geographical_region = tgp_qian_region
geographical_region = tgp_shu_region
geographical_region = tgp_song_region
geographical_region = tgp_sui_region
geographical_region = tgp_tang_region
geographical_region = tgp_wei_region
geographical_region = tgp_wu_region
geographical_region = tgp_xia_region
geographical_region = tgp_xiang_region
geographical_region = tgp_xing_region
geographical_region = tgp_xu_region
geographical_region = tgp_yang_region
geographical_region = tgp_yin_region
geographical_region = tgp_yong_region
geographical_region = tgp_yue_region
geographical_region = tgp_zhao_region
geographical_region = tgp_zheng_region
geographical_region = tgp_zhou_region
}
}
}
farm_estates_3_4_trigger = {
custom_tooltip = {
text = farm_estates_3_4_trigger
OR = {
AND = {
building_requirement_castle_city_church = { LEVEL = 02 }
scope:holder.culture = {
has_innovation = innovation_manorialism
}
building_farm_estates_requirement_terrain = yes
}
AND = {
has_building_or_higher = pastures_04
culture = {
has_cultural_parameter = farm_estates_pastures_unlock
}
}
AND = {
building_paddy_fields_requirement_terrain = yes
scope:holder.culture = {
has_innovation = innovation_champa_rice
has_innovation = innovation_manorialism
}
building_requirement_castle_city_church = { LEVEL = 02 }
}
}
}
}