This commit is contained in:
Heidesommer 2026-05-25 07:54:55 -04:00
parent 26b04f6db4
commit c6eb868ef4
116 changed files with 69758 additions and 26333 deletions

View file

@ -0,0 +1,650 @@

### Cultural trigger list
# drinks_alcohol_trigger - Would this person drink alcohol?
# holder_or_above_is_player_of_culture - Is this county's holder or anyone above them in the de facto hierarchy a player with the same culture?
######################
# Cultural triggers #
######################
drinks_alcohol_trigger = {
is_adult = yes
custom_tooltip = {
text = drinks_alcohol
OR = {
has_trait = drunkard
faith_forbids_alcohol_trigger = no
}
}
}
faith_forbids_alcohol_trigger = {
OR = {
religion = religion:islam_religion # Prohibited by khamr, a prohibition against intoxicants
religion = religion:jainism_religion # Prohibited along with the consumption of any fermented food
AND = {
has_trait = zealous
religion = religion:buddhism_religion # Discouraged as it disrupts progress along the eightfold path
}
# faith = faith:mandeaism # Whoever drinks wine in a tavern, he will be torn to pieces with toothed saws
}
}
# If you need to check if a county drinks alcohol.
faith_only_forbids_alcohol_trigger = {
OR = {
religion = religion:islam_religion # Prohibited by khamr, a prohibition against intoxicants
religion = religion:jainism_religion # Prohibited along with the consumption of any fermented food
religion = religion:buddhism_religion # Discouraged as it disrupts progress along the eightfold path
# faith = faith:mandeaism # Whoever drinks wine in a tavern, he will be torn to pieces with toothed saws
}
}
holder_or_above_is_player_of_culture = {
culture = {
save_temporary_scope_as = this_culture
}
OR = {
holder = {
AND = {
is_ai = no
culture = scope:this_culture
}
any_liege_or_above = {
is_ai = no
culture = scope:this_culture
}
}
}
}
culture_in_winter_geographical_region_trigger = {
custom_description = {
text = culture_in_winter_geographical_region_trigger_desc
any_culture_county = {
any_county_province = {
OR = {
geographical_region = world_europe_north
geographical_region = world_europe_west
geographical_region = world_europe_east
geographical_region = world_steppe
geographical_region = world_tibet
geographical_region = world_asia_china
geographical_region = world_asia_japan
geographical_region = world_asia_sakhalin_hokkaido
geographical_region = world_asia_korea
geographical_region = world_asia_north_east
}
}
}
}
}
culture_in_non_sedentary_geographical_region_trigger = {
custom_description = {
text = culture_in_non_sedentary_geographical_region_trigger_desc
any_culture_county = {
any_county_province = {
geographical_region = world_steppe
}
}
}
}
culture_not_pacifistic_trigger = {
custom_description = {
text = culture_not_pacifist_trigger_desc
NOT = {
culture_tradition:tradition_pacifism = { is_in_list = traits }
}
}
}
culture_not_warlike_trigger = {
custom_description = {
text = culture_not_warlike_trigger_desc
NOR = {
culture_tradition:tradition_winter_warriors = { is_in_list = traits }
culture_tradition:tradition_forest_fighters = { is_in_list = traits }
culture_tradition:tradition_mountaineers = { is_in_list = traits }
culture_tradition:tradition_warriors_of_the_dry = { is_in_list = traits }
culture_tradition:tradition_highland_warriors = { is_in_list = traits }
culture_tradition:tradition_jungle_warriors = { is_in_list = traits }
culture_tradition:tradition_quarrelsome = { is_in_list = traits }
culture_tradition:tradition_malleable_invaders = { is_in_list = traits }
culture_tradition:tradition_hunters = { is_in_list = traits }
culture_tradition:tradition_warrior_culture = { is_in_list = traits }
culture_tradition:tradition_martial_admiration = { is_in_list = traits }
culture_tradition:tradition_tgp_bushido = { is_in_list = traits }
culture_tradition:tradition_tgp_defiant_ambushers = { is_in_list = traits }
culture_tradition:tradition_tgp_warrior_monks = { is_in_list = traits }
culture_tradition:tradition_tgp_art_of_war = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_winter_warriors_desc
NOT = {
culture_tradition:tradition_winter_warriors = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_forest_fighter_desc
NOT = {
culture_tradition:tradition_forest_fighters = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_mountaineers_desc
NOT = {
culture_tradition:tradition_mountaineers = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_warriors_of_the_dry_desc
NOT = {
culture_tradition:tradition_warriors_of_the_dry = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_highland_warriors_desc
NOT = {
culture_tradition:tradition_highland_warriors = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_jungle_warriors_desc
NOT = {
culture_tradition:tradition_jungle_warriors = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_quarrelsome_desc
NOT = {
culture_tradition:tradition_quarrelsome = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_malleable_invaders_desc
NOT = {
culture_tradition:tradition_malleable_invaders = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_hunters_desc
NOT = {
culture_tradition:tradition_hunters = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_warrior_culture_desc
NOT = {
culture_tradition:tradition_warrior_culture = { is_in_list = traits }
}
}
custom_description = {
text = culture_has_martial_admiration_desc
NOT = {
culture_tradition:tradition_martial_admiration = { is_in_list = traits }
}
}
}
should_have_same_faith_succession_trigger = {
culture = {
has_cultural_parameter = same_faith_inheritance_only
}
NOR = {
government_has_flag = government_is_theocracy # Handled separately
government_has_flag = government_is_holy_order # Handled separately
government_has_flag = government_is_mercenary # Irrelevant
}
}
not_tribal_raid_trigger = {
culture = {
has_cultural_parameter = not_tribal_raiding_malus
}
NOT = { government_has_flag = government_is_tribal }
}
culture_is_not_historical_hybrid_trigger = {
#Used to tell if a hybrid culture is one of the historical hybrids or not, mainly in checks for AI hybridization checks related to game rules.
#Expects to be used in culture scope
NOR = {
this = culture:norman
this = culture:maghrebi
this = culture:gaelic
this = culture:anglo_saxon
this = culture:scottish
this = culture:NEOW_andalusian
this = culture:catalan
this = culture:english
this = culture:sicilian
this = culture:cisalpine
}
}
# Cultural MAA triggers - Used in various places for triggers, AI weights, etc.
culture_has_skirmisher_maa = {
OR = {
has_cultural_parameter = unlock_maa_horn_warrior
has_cultural_parameter = unlock_maa_shomer
has_cultural_parameter = unlock_maa_abudrar
has_cultural_parameter = unlock_maa_guinea_warrior
has_cultural_parameter = unlock_maa_pesilat
has_innovation = innovation_adaptive_militia #Goedendag - Later Era MAA
has_cultural_parameter = unlock_maa_akritai
}
}
culture_has_archer_maa = {
OR = {
has_cultural_parameter = unlock_maa_archers_of_the_nile
has_cultural_parameter = unlock_maa_bush_hunter
has_cultural_parameter = unlock_maa_metsanvartija
has_cultural_parameter = unlock_maa_maturkan_warriors
has_cultural_parameter = unlock_maa_longbowmen
has_innovation = innovation_repeating_crossbow #Chu-ko-nu Archers
has_innovation = innovation_bamboo_bows #Paiks
}
}
culture_has_improved_crossbowmen = {
OR = {
has_innovation = innovation_repeating_crossbow #Chu-ko-nu Archers
}
}
culture_has_heavy_infantry_maa = {
OR = {
has_cultural_parameter = unlock_maa_ayyar
has_cultural_parameter = unlock_maa_mubarizun
has_cultural_parameter = unlock_maa_druzhina
has_cultural_parameter = unlock_maa_khandayat
has_cultural_parameter = unlock_maa_garudas
has_cultural_parameter = unlock_maa_palace_guards
has_cultural_parameter = unlock_maa_huscarls
has_cultural_parameter = unlock_maa_mountaineer
has_cultural_parameter = unlock_maa_zbrojnosh
has_cultural_parameter = unlock_infantry_samurai_units
has_cultural_parameter = unlock_zhanmadao
has_cultural_parameter = unlock_burenjia
has_innovation = innovation_sarawit #Sarawit - Later Era MAA
has_innovation = innovation_legionnaires #Praetorian
has_cultural_parameter = unlock_maa_varangian_guards
}
}
culture_has_pikemen_maa = { #I.e. Spearmen
OR = {
has_cultural_parameter = unlock_maa_zupin_warrior
has_cultural_parameter = unlock_warrior_monk_units
has_innovation = innovation_rectilinear_schiltron #Schiltron - Later Era MAA
has_innovation = innovation_pike_columns #Picchieri - Later Era MAA
has_innovation = innovation_zweihanders #Later Era MAA
has_cultural_parameter = unlock_maa_skoutatoi
}
}
culture_has_light_cavalry_maa = {
OR = {
has_cultural_parameter = unlock_maa_mulaththamun
has_cultural_parameter = unlock_maa_hussar #Konni
has_cultural_parameter = unlock_maa_tawashi #Tawashi
has_cultural_parameter = unlock_maa_ayrudzi
has_innovation = innovation_desert_tactics #Chasseur
has_innovation = innovation_caballeros #Caballero
has_innovation = innovation_hobbies #Hobelar
has_innovation = innovation_sahel_horsemen #Sahel Horsemen
}
}
culture_has_heavy_cavalry_maa = {
OR = {
has_cultural_parameter = unlock_maa_cataphract
has_cultural_parameter = unlock_maa_monaspa
has_cultural_parameter = unlock_maa_tarkhan
has_cultural_parameter = unlock_maa_conrois
has_cultural_parameter = unlock_maa_cataphract_archers
has_innovation = innovation_tiefutu
has_cultural_parameter = unlock_maa_black_armor_cavalry
has_innovation = innovation_valets #Gendarme - Later Era MAA
}
}
culture_has_archer_cavalry_maa = {
OR = {
has_cultural_parameter = unlock_maa_horse_archers
has_cultural_parameter = unlock_maa_mangudai
has_cultural_parameter = unlock_emishi_horse_archers_units
has_cultural_parameter = unlock_mounted_samurai_units
culture_head ?= {
mpo_can_recruit_nomad_maa_trigger = yes
}
any_player = {
culture = prev
mpo_can_recruit_nomad_maa_trigger = yes
}
}
}
#Culture specialized in maa type
culture_specializes_in_skirmisher_maa = {
OR = {
has_cultural_tradition = tradition_forest_folk
has_cultural_tradition = tradition_jungle_dwellers
has_cultural_tradition = tradition_polders
has_cultural_tradition = tradition_adaptive_skirmishing
has_cultural_tradition = tradition_hit_and_run
has_cultural_tradition = tradition_forest_wardens
has_cultural_tradition = tradition_hussar
has_cultural_tradition = tradition_fp3_pragmatic_creed
culture_has_skirmisher_maa = yes
}
}
culture_specializes_in_archer_maa = {
OR = {
has_cultural_tradition = tradition_forest_folk
has_cultural_tradition = tradition_jungle_dwellers
has_cultural_tradition = tradition_adaptive_skirmishing
has_cultural_tradition = tradition_formation_fighting
culture_has_archer_maa = yes
}
}
culture_specializes_in_heavy_infantry_maa = {
OR = {
has_cultural_tradition = tradition_roman_legacy
has_cultural_tradition = tradition_metal_craftsmanship
has_cultural_tradition = tradition_mountain_homes
has_cultural_tradition = tradition_stand_and_fight
has_cultural_tradition = tradition_mobile_guards
has_cultural_tradition = tradition_mountaineer_ruralism
has_cultural_tradition = tradition_tgp_art_of_war
has_cultural_tradition = tradition_tgp_bushido
culture_has_heavy_infantry_maa = yes
}
}
culture_specializes_in_pikemen_maa = {
OR = {
has_cultural_tradition = tradition_mountaineer_ruralism
has_cultural_tradition = tradition_metal_craftsmanship
has_cultural_tradition = tradition_mountain_homes
has_cultural_tradition = tradition_formation_fighting
has_cultural_tradition = tradition_stand_and_fight
has_cultural_tradition = tradition_mobile_guards
has_cultural_tradition = tradition_tgp_warrior_monks
culture_has_pikemen_maa = yes
}
}
culture_specializes_in_light_cavalry_maa = {
OR = {
has_cultural_tradition = tradition_dryland_dwellers
has_cultural_tradition = tradition_pastoralists
has_cultural_tradition = tradition_hit_and_run
has_cultural_tradition = tradition_horse_breeder
has_cultural_tradition = tradition_saharan_nomads
culture_has_light_cavalry_maa = yes
}
}
culture_specializes_in_heavy_cavalry_maa = {
OR = {
has_cultural_tradition = tradition_roman_legacy
has_cultural_tradition = tradition_mountain_homes
has_cultural_tradition = tradition_horse_breeder
has_cultural_tradition = tradition_stand_and_fight
has_cultural_tradition = tradition_mobile_guards
has_cultural_tradition = tradition_ep3_indomitable_azatani
has_cultural_tradition = tradition_mountaineer_ruralism
has_cultural_tradition = tradition_tgp_art_of_war
culture_has_heavy_cavalry_maa = yes
}
}
culture_specializes_in_archer_cavalry_maa = {
OR = {
has_cultural_tradition = tradition_ep3_indomitable_azatani
has_cultural_tradition = tradition_horse_breeder
has_cultural_tradition = tradition_mpo_iron_cavalry
has_cultural_tradition = tradition_devoted_horsemanship
has_cultural_tradition = tradition_tgp_bushido
has_cultural_tradition = tradition_tgp_defiant_ambushers
culture_has_archer_cavalry_maa = yes
}
}
# Language trigger - Makes languages available when you diverge your culture
language_is_shown_trigger = {
scope:character = {
OR = {
AND = {
exists = var:legendary_culture
var:legendary_culture = { has_cultural_pillar = $LANGUAGE$ }
}
AND = {
# The target language needs to fulfill ALL of the following:
any_sub_realm_county = { # Language needs to be well-represented within your realm
percent >= 0.1
culture = { has_cultural_pillar = $LANGUAGE$ }
}
any_sub_realm_county = { # Language needs to border your own culture
culture = { has_cultural_pillar = $LANGUAGE$ }
any_neighboring_county = {
culture = { this = scope:character.culture }
}
}
any_sub_realm_county = { # You need a minimum acceptance with any culture speaking the language
culture = {
has_cultural_pillar = $LANGUAGE$
cultural_acceptance = {
target = scope:character.culture
value >= 25
}
}
}
}
}
}
}
# Language trigger - Makes heritages available when you diverge your culture
heritage_is_shown_trigger = {
scope:character = {
OR = {
AND = {
exists = var:legendary_culture
var:legendary_culture = { has_cultural_pillar = $HERITAGE$ }
}
culture = { has_cultural_pillar = $HERITAGE$ }
}
}
}
# Checks if you could Hybridise with the culture without checking for acceptance
is_valid_for_hybridising_trigger = {
$CHARACTER$ = {
culture = {
NOT = { has_same_culture_heritage = $CULTURE$ }
culture_age >= culture_hybrid_cooldown
}
trigger_if = {
limit = {
NAND = {
exists = var:special_culture
var:special_culture = $CULTURE$
}
}
custom_description = {
text = culture_present_in_realm_for_hybridization
any_sub_realm_county = {
culture = $CULTURE$
}
}
}
custom_description = {
text = culture_is_not_parent_culture
culture = {
NOT = {
any_parent_culture = {
this = $CULTURE$
}
}
}
}
custom_description = {
text = culture_is_not_child_culture
$CULTURE$ = {
NOT = {
any_parent_culture = {
this = $CHARACTER$.culture
}
}
}
}
}
}
# Checks if you can currently hybridise with the culture
can_hybridize_culture_trigger = {
is_valid_for_hybridising_trigger = {
CHARACTER = $CHARACTER$
CULTURE = $CULTURE$
}
$CHARACTER$ = {
culture = {
cultural_acceptance = { target = $CULTURE$ value >= hybridization_threshold_value }
}
}
}
# Uses current scope and scope:culture
cultures_share_relevant_region_trigger = {
OR = {
AND = {
culture_overlaps_geographical_region = world_europe
scope:culture = {
culture_overlaps_geographical_region = world_europe
}
}
AND = {
culture_overlaps_geographical_region = world_asia_minor
scope:culture = {
culture_overlaps_geographical_region = world_asia_minor
}
}
AND = {
OR = {
culture_overlaps_geographical_region = world_middle_east
culture_overlaps_geographical_region = world_middle_east_persia
}
scope:culture = {
OR = {
culture_overlaps_geographical_region = world_middle_east
culture_overlaps_geographical_region = world_middle_east_persia
}
}
}
AND = {
culture_overlaps_geographical_region = world_steppe
scope:culture = {
culture_overlaps_geographical_region = world_steppe
}
}
AND = {
culture_overlaps_geographical_region = world_tibet
scope:culture = {
culture_overlaps_geographical_region = world_tibet
}
}
AND = {
OR = {
culture_overlaps_geographical_region = world_india
culture_overlaps_geographical_region = world_burma
}
scope:culture = {
OR = {
culture_overlaps_geographical_region = world_india
culture_overlaps_geographical_region = world_burma
}
}
}
AND = {
culture_overlaps_geographical_region = world_africa
scope:culture = {
culture_overlaps_geographical_region = world_africa
}
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:culture = {
culture_overlaps_geographical_region = world_asia_china
}
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:culture = {
culture_overlaps_geographical_region = world_asia_korea
}
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:culture = {
culture_overlaps_geographical_region = world_asia_southeast
}
}
AND = {
culture_overlaps_geographical_region = world_asia_japan
scope:culture = {
culture_overlaps_geographical_region = world_asia_japan
}
}
}
}
is_vegetarian_trigger = {
OR = {
culture = {
has_cultural_parameter = cannot_hunt
}
faith_is_vegetarian_trigger = yes
}
}
faith_is_vegetarian_trigger = {
faith = {
OR = {
religion = religion:buddhism_religion
religion = religion:jainism_religion
religion = religion:bon_religion
this = faith:mazdakism
this = faith:manichean
}
}
}
culture_tradition_reduction_trigger = {
scope:character = {
has_variable_list = culture_tradition_reduction
is_target_in_variable_list = {
name = culture_tradition_reduction
target = culture_tradition:$TRADITION$
}
}
}
culture_is_or_has_ancestor_trigger = {
OR = {
this = $CULTURE$
any_parent_culture_or_above = { this = $CULTURE$ }
}
}

View file

@ -0,0 +1,301 @@
#hungarian_migration_valid_ai_mogyer_ruler_trigger = {
# culture = culture:mogyer
# is_ai = yes
# OR = {
# government_has_flag = government_is_tribal
# government_has_flag = government_is_nomadic
# }
# is_at_war = no
# highest_held_title_tier <= tier_kingdom
# OR = {
# top_liege = this
# liege.culture != culture:mogyer
# }
#}
#
#hungarian_migration_valid_pannonian_target_trigger = {
# NOR = {
# culture = culture:mogyer
# any_liege_or_above = {sre = culture:mogyer }
# }
# is_ai = yes
# any_realm_county = {
# count >= $COUNT$
# title_province = { geographical_region = custom_hungary }
# }
#}
exclave_independence_trigger = {
top_liege = this
NOT = { has_title = title:k_papal_state }
exists = root.capital_province
any_sub_realm_title = {
tier = tier_county
NOT = {
is_connected_to = {
target = root.capital_province.county
}
}
}
trigger_if = {
limit = {
exists = primary_heir
}
primary_heir = {
NOR = {
top_liege = this # Disallow this when the heir is independent, lest we risk breaking up realms that should be connected
is_ai = no # Players always inherit everything
}
}
}
}
# Sometimes we disable these events for specific characters.
harm_game_rule_enablement_trigger = {
# Disable entirely if harm_safe.
trigger_if = {
limit = { has_game_rule = harm_safe }
always = no
}
# harm_target_player_only
trigger_else_if = {
limit = { has_game_rule = harm_target_player_only }
is_ai = no
}
# harm_target_ai_only
trigger_else_if = {
limit = { has_game_rule = harm_target_ai_only }
is_ai = yes
}
# harm_target_all
trigger_else = { always = yes }
# Never just kill the player if it'd utterly game-over them.
trigger_if = {
limit = { is_ai = no }
# Either because they have no heir.
exists = player_heir
# Or because they have an heir they can't survive with.
player_heir.dynasty ?= dynasty
}
# Immortals do not receive harm events, as they would be inevitably killed by them over a long enough period of time.
NOT = { has_trait_with_flag = is_immortal }
}
# Who do we care about when recording variable logs for harm events?
harm_game_rule_valid_for_logging_trigger = {
OR = {
AND = {
highest_held_title_tier >= tier_duchy
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_has_flag = government_is_theocracy
}
}
any_close_family_member = {
highest_held_title_tier >= tier_duchy
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_has_flag = government_is_theocracy
}
}
}
}
rule_title_creation_imperial_power_projection_title_creation_targeting_trigger = {
trigger_if = {
limit = { has_game_rule = title_creation_imperial_power_projection_targeting_ai_only }
is_ai = yes
}
trigger_else_if = {
limit = { has_game_rule = title_creation_imperial_power_projection_targeting_player_only }
is_ai = no
}
trigger_else = { always = yes }
}
rule_title_creation_imperial_power_projection_title_creation_trigger = {
trigger_if = {
limit = {
has_game_rule = title_creation_imperial_power_projection_any_power_advantage
rule_title_creation_imperial_power_projection_title_creation_targeting_trigger = yes
highest_held_title_tier <= tier_kingdom
}
custom_tooltip = {
text = rule_title_creation_imperial_power_projection_title_creation_trigger.tt.any_power_advantage
any_neighboring_top_liege_realm_owner = {
count = all
trigger_if = {
limit = { highest_held_title_tier >= tier_empire }
save_temporary_scope_as = char_temp
OR = {
any_close_family_member = { is_spouse_of = root }
root = { has_strong_hook = scope:char_temp }
root.current_military_strength >= scope:char_temp.fifty_percent_more_of_current_military_strength
}
}
trigger_else = { always = yes }
}
}
}
trigger_else_if = {
limit = {
has_game_rule = title_creation_imperial_power_projection_hard_power_only
rule_title_creation_imperial_power_projection_title_creation_targeting_trigger = yes
highest_held_title_tier <= tier_kingdom
}
custom_tooltip = {
text = rule_title_creation_imperial_power_projection_title_creation_trigger.tt.hard_power_only
any_neighboring_top_liege_realm_owner = {
count = all
trigger_if = {
limit = { highest_held_title_tier >= tier_empire }
save_temporary_scope_as = char_temp
root.current_military_strength >= scope:char_temp.fifty_percent_more_of_current_military_strength
}
trigger_else = { always = yes }
}
}
}
trigger_else_if = {
limit = {
has_game_rule = title_creation_imperial_power_projection_soft_power_only
rule_title_creation_imperial_power_projection_title_creation_targeting_trigger = yes
highest_held_title_tier <= tier_kingdom
}
custom_tooltip = {
text = rule_title_creation_imperial_power_projection_title_creation_trigger.tt.soft_power_only
any_neighboring_top_liege_realm_owner = {
count = all
trigger_if = {
limit = { highest_held_title_tier >= tier_empire }
save_temporary_scope_as = char_temp
OR = {
any_close_family_member = { is_spouse_of = root }
root = { has_strong_hook = scope:char_temp }
}
}
trigger_else = { always = yes }
}
}
}
trigger_else_if = {
limit = {
has_game_rule = title_creation_imperial_power_projection_hard_power_only_strict
rule_title_creation_imperial_power_projection_title_creation_targeting_trigger = yes
highest_held_title_tier <= tier_kingdom
}
custom_tooltip = {
text = rule_title_creation_imperial_power_projection_title_creation_trigger.tt.hard_power_only_strict.neighbours
any_neighboring_top_liege_realm_owner = {
count = all
trigger_if = {
limit = { highest_held_title_tier >= tier_empire }
save_temporary_scope_as = char_temp
root.current_military_strength >= scope:char_temp.fifty_percent_more_of_current_military_strength
}
trigger_else = { always = yes }
}
}
custom_tooltip = {
text = rule_title_creation_imperial_power_projection_title_creation_trigger.tt.hard_power_only_strict.de_jure_sharers
any_sub_realm_county = {
count = all
empire = {
OR = {
is_title_created = no
holder = {
save_temporary_scope_as = char_temp
root.current_military_strength >= scope:char_temp.fifty_percent_more_of_current_military_strength
}
}
}
}
}
}
trigger_else_if = {
limit = {
has_game_rule = title_creation_imperial_power_projection_any_power_strict
rule_title_creation_imperial_power_projection_title_creation_targeting_trigger = yes
highest_held_title_tier <= tier_kingdom
}
custom_tooltip = {
text = rule_title_creation_imperial_power_projection_title_creation_trigger.tt.any_power_strict.neighbours
any_neighboring_top_liege_realm_owner = {
count = all
trigger_if = {
limit = { highest_held_title_tier >= tier_empire }
save_temporary_scope_as = char_temp
OR = {
any_close_family_member = { is_spouse_of = root }
root = { has_strong_hook = scope:char_temp }
root.current_military_strength >= scope:char_temp.fifty_percent_more_of_current_military_strength
}
}
trigger_else = { always = yes }
}
}
custom_tooltip = {
text = rule_title_creation_imperial_power_projection_title_creation_trigger.tt.any_power_strict.de_jure_sharers
any_sub_realm_county = {
count = all
empire = {
OR = {
is_title_created = no
holder = {
save_temporary_scope_as = char_temp
OR = {
any_close_family_member = { is_spouse_of = root }
root = { has_strong_hook = scope:char_temp }
root.current_military_strength >= scope:char_temp.fifty_percent_more_of_current_military_strength
}
}
}
}
}
}
}
trigger_else = { always = yes }
}
game_rule_rig_norman_conquest_for_hereward_trigger = {
OR = {
has_game_rule = historicity_norman_conquest_determined_william
# We also rig it for William if we have a player Hereward and no other input.
AND = {
has_game_rule = historicity_norman_conquest_default_random
character:90028 ?= { is_ai = no }
NOT = {
any_player = {
NOT = { this = character:90028 }
any_character_war = {
OR = {
using_cb = norman_conquest_cb
using_cb = norwegian_invasion_cb
}
}
}
}
}
}
}
game_rule_can_create_hybird_culture_trigger = {
trigger_if = {
limit = { is_ai = yes }
NOR = {
has_game_rule = none_hybrid_culture_ai_frequency
has_global_variable = has_ai_hybrid_event_cooldown
}
}
}
game_rule_unrestricted_dynasty_legacies_trigger = {
switch = {
trigger = has_game_rule
unrestricted_dynasty_legacies_all = { always = yes }
unrestricted_dynasty_legacies_player_only = { is_ai = no }
fallback = { always = no }
}
}

View file

@ -756,12 +756,11 @@ byzantine_governor_trigger = {
government_allows = administrative
liege ?= {
OR = {
is_roman_emperor_primary_title_trigger = yes
# is_roman_emperor_primary_title_trigger = yes
AND = {
culture = {
OR = {
has_cultural_pillar = heritage_byzantine
has_cultural_pillar = heritage_caucasian
has_cultural_pillar = heritage_greek
}
}
primary_title.tier >= tier_empire
@ -777,12 +776,11 @@ byzantine_governor_close_family_trigger = {
exists = top_liege
top_liege = {
OR = {
is_roman_emperor_primary_title_trigger = yes
# is_roman_emperor_primary_title_trigger = yes
AND = {
culture = {
OR = {
has_cultural_pillar = heritage_byzantine
has_cultural_pillar = heritage_caucasian
has_cultural_pillar = heritage_greek
}
}
primary_title.tier >= tier_empire

View file

@ -0,0 +1,403 @@
remove_guardian_interaction_visible_ward_trigger = {
OR = {
#If I am the child
this = scope:actor
#The ward has actor as its liege
employer ?= scope:actor
#The guardian is actor
any_relation = {
type = guardian
this = scope:actor
}
#The guardian is actor's courtier
any_relation = {
type = guardian
is_courtier_of = scope:actor
}
}
}
remove_guardian_interaction_available_ward_trigger = {
#is_imprisoned = no
}
kick_from_court_validity_trigger = {
NOR = {
is_spouse_of = scope:actor
is_concubine_of = scope:actor
is_close_family_of = scope:actor
has_council_position = councillor_court_chaplain
is_diarch = yes
# Marriage major partners of diarchs.
## Female.
AND = {
is_married = yes
is_female = yes
matrilinear_marriage = yes
any_consort = { is_diarch = yes }
}
## Male.
AND = {
is_married = yes
is_male = yes
patrilinear_marriage = yes
any_consort = { is_diarch = yes }
}
}
}
ask_for_pardon_available_trigger = {
$ACTOR$ = {
top_liege != this
any_liege_or_above = {
OR = {
has_imprisonment_reason = $ACTOR$
has_banish_reason = $ACTOR$
has_execute_reason = $ACTOR$
has_revoke_title_reason = $ACTOR$
}
}
}
}
has_extra_criminal_reason_against_trigger = {
OR = {
has_banish_reason = $CRIMINAL$
has_execute_reason = $CRIMINAL$
has_revoke_title_reason = $CRIMINAL$
}
}
title_revocation_standard_valid_showing_failures_only_trigger = {
scope:actor = {
NOR = {
is_at_war_with = scope:recipient
has_truce = scope:recipient
}
custom_description = {
text = "character_interactions_revoke_title_from_ally_without_reason"
object = scope:recipient
OR = {
NOT = {
is_allied_to = scope:recipient
}
has_revoke_title_reason = scope:recipient
}
}
}
scope:recipient = {
NOT = { has_strong_hook = scope:actor }
}
}
title_revocation_standard_can_pick_title_trigger = {
is_contested = no
custom_description = {
text = "revoke_title_not_noble_family_title"
is_noble_family_title = no
}
NOT = {
recent_history = {
type = granted
years = 1
}
}
custom_description = {
text = "character_interactions_not_rel_head_title"
is_head_of_faith = no
}
}
diarch_revocation_has_claim_check_trigger = {
custom_description = {
text = diarch_has_claim_on_revokable_title
object = scope:recipient
scope:actor = {
any_claim = {
holder ?= scope:recipient
}
}
}
}
title_revocation_is_admin_governor_trigger = {
government_allows = administrative
top_liege = this
save_temporary_scope_as = liege_temp
$VASSAL$ = {
is_landed_or_landless_administrative = yes
target_is_liege_or_above = scope:liege_temp
}
}
title_revocation_is_tyrannical_trigger = {
NOR = {
exists = scope:administrative_revocation
has_revoke_title_reason = $VASSAL$
trigger_if = {
limit = { exists = scope:landed_title }
has_claim_on = scope:landed_title
}
title_revocation_is_admin_governor_trigger = { VASSAL = $VASSAL$ }
faith = {
$VASSAL$ = {
NOT = { vassal_contract_has_flag = religiously_protected}
}
OR = {
AND = {
has_doctrine_parameter = pluralism_righteous_revocation_tyranny_reduced
faith_hostility_level = {
target = $VASSAL$.faith
value = faith_evil_level
}
}
AND = {
has_doctrine_parameter = pluralism_fundamentalist_revocation_tyranny_minimal
faith_hostility_level = {
target = $VASSAL$.faith
value >= faith_hostile_level
}
}
}
}
}
}
vassal_revocation_is_tyrannical_trigger = {
NOR = {
exists = scope:administrative_revocation
AND = {
government_allows = administrative
$VASSAL$ = {
government_allows = administrative
}
}
has_revoke_title_reason = $VASSAL$
faith = {
OR = {
AND = {
has_doctrine_parameter = pluralism_righteous_revocation_tyranny_reduced
faith_hostility_level = {
target = $VASSAL$.faith
value = faith_evil_level
}
}
AND = {
has_doctrine_parameter = pluralism_fundamentalist_revocation_tyranny_minimal
faith_hostility_level = {
target = $VASSAL$.faith
value >= faith_hostile_level
}
}
}
}
}
}
vassal_retraction_standard_valid_showing_failures_only_trigger = {
NOT = {
scope:actor = { is_at_war_with = scope:recipient }
}
scope:recipient = {
NOT = { has_strong_hook = scope:actor }
}
}
diarch_retraction_is_de_jure_liege_trigger = {
custom_description = {
text = "diarch_is_de_jure_liege_of_retractable_vassal"
object = scope:recipient
scope:actor = {
any_held_title = {
any_direct_de_jure_vassal_title = { holder.liege = scope:recipient }
}
}
}
}
is_de_jure_vassal_of_liege_trigger = {
liege = {
save_temporary_scope_as = my_liege
}
primary_title = {
OR = {
de_jure_liege = {
holder ?= scope:my_liege
}
trigger_if = {
limit = {
tier = tier_duchy
}
de_jure_liege = {
de_jure_liege = {
holder ?= scope:my_liege
}
}
}
}
}
}
send_poem_positive_poem_lock_trigger = {
OR = {
is_ai = no
NOT = { has_relation_rival = scope:recipient }
NOT = { has_relation_nemesis = scope:recipient }
}
}
send_poem_negative_poem_lock_trigger = {
OR = {
is_ai = no
has_relation_rival = scope:recipient
has_relation_nemesis = scope:recipient
}
}
can_any_traveling_family_members_travel_trigger = {
NOR = {
this = scope:recipient
is_in_pool_at = scope:actor.capital_province
}
is_ruler = no
trigger_if = {
limit = {
exists = scope:recipient.host
is_child_of = scope:recipient.host
is_adult = no
}
dynasty != scope:recipient.host.dynasty
}
}
imprison_neutral_is_valid_showing_failures_only_triggers_trigger = {
scope:actor.liege = {
trigger_if = {
limit = { has_realm_law_flag = imprisonment_toggle_enable }
# TIT-43801
#has_realm_law_flag = imprisonment_toggle_on
NOT = { has_realm_law = tribal_authority_0 }
}
}
scope:actor = { is_imprisoned = no }
custom_description = {
text = cannot_imprison_almohad_leader
subject = scope:recipient
NOT = {
scope:recipient = { has_character_modifier = almohad_leader_modifier }
}
}
}
grant_title_rivalry_trigger = {
is_ai = yes
is_playable_character = yes
top_liege = scope:actor
faith = scope:actor.faith
reverse_opinion = {
target = top_liege
value > -50
}
opinion = {
target = top_liege
value > -50
}
trigger_if = {
limit = {
is_female = yes
faith_dominant_gender_female_or_equal = no
}
scope:recipient = { is_female = yes }
}
trigger_if = {
limit = {
is_male = yes
faith_dominant_gender_male_or_equal = no
}
scope:recipient = { is_male = yes }
}
has_dread_level_towards = {
target = scope:actor
level < 1
}
is_eunuch_trigger = no
NOR = {
this = scope:actor
this = scope:recipient
has_trait = content
has_trait = humble
has_trait = blind
has_trait = devoted
is_close_family_of = scope:recipient
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:actor }
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:actor }
}
}
should_prioritise_hostile_action_against_due_to_personal_relations_trigger = {
$ACTOR$ = {
OR = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = $RECIPIENT$ }
opinion = {
target = $RECIPIENT$
value <= very_high_negative_opinion
}
}
}
}
should_avoid_hostile_action_against_due_to_personal_relations_trigger = {
$ACTOR$ = {
OR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = $RECIPIENT$ }
is_allied_to = $RECIPIENT$
opinion = {
target = $RECIPIENT$
value >= very_high_positive_opinion
}
# Plus filter out heirs & other family, unless we hate 'em.
AND = {
OR = {
is_close_or_extended_family_of = $RECIPIENT$
any_spouse = { this = $RECIPIENT$ }
is_heir_of = $RECIPIENT$
}
NOR = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = $RECIPIENT$ }
exposed_cheating_on_spouse_trigger = { SPOUSE = $RECIPIENT$ }
AND = {
is_ai = yes
opinion = {
target = $RECIPIENT$
value <= low_negative_opinion
}
}
}
}
}
}
}
should_avoid_hostile_action_against_due_to_liege_relations_trigger = {
$ACTOR$ = {
liege ?= {
OR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = $RECIPIENT$ }
is_allied_to = $RECIPIENT$
opinion = {
target = $RECIPIENT$
value >= very_high_positive_opinion
}
}
}
}
}
is_asking_for_gold_in_ransom_trigger = {
OR = {
scope:extortionate_gold ?= yes
scope:extortionate_current_gold ?= yes
scope:gold ?= yes
scope:current_gold ?= yes
}
}

View file

@ -84,31 +84,31 @@ character_is_valid_for_harrying_of_the_north_trigger = {
}
}
character_is_valid_anglo_saxon_for_harrying_of_the_north_trigger = {
culture = {
OR = {
this = culture:anglo_saxon
any_parent_culture_or_above = { this = culture:anglo_saxon }
}
NOR = {
this = culture:norman
any_parent_culture_or_above = { this = culture:norman }
}
}
}
#character_is_valid_anglo_saxon_for_harrying_of_the_north_trigger = {
# culture = {
# OR = {
# this = culture:anglo_saxon
# any_parent_culture_or_above = { this = culture:anglo_saxon }
# }
# NOR = {
# this = culture:norman
# any_parent_culture_or_above = { this = culture:norman }
# }
# }
#}
character_is_valid_norman_for_harrying_of_the_north_trigger = {
culture = {
OR = {
this = culture:norman
any_parent_culture_or_above = { this = culture:norman }
}
NOR = {
this = culture:anglo_saxon
any_parent_culture_or_above = { this = culture:anglo_saxon }
}
}
}
#character_is_valid_norman_for_harrying_of_the_north_trigger = {
# culture = {
# OR = {
# this = culture:norman
# any_parent_culture_or_above = { this = culture:norman }
# }
# NOR = {
# this = culture:anglo_saxon
# any_parent_culture_or_above = { this = culture:anglo_saxon }
# }
# }
#}
disable_interaction_for_hereward_trigger = {
trigger_if = {

View file

@ -133,19 +133,19 @@ can_keep_partition_succession_law_trigger = {
OR = {
can_have_partition_succession_law_trigger = yes
# Mongol Empires
has_title = title:e_mongol_empire
has_title = title:e_ilkhanate
has_title = title:e_golden_horde
has_title = title:e_chagatai
has_title = title:e_red_horde
has_title = title:e_white_horde
has_title = title:e_aarlud_khanate
has_title = title:e_togskol_khanate
has_title = title:e_baruun_khanate
has_title = title:e_great_yuan
has_title = title:e_blue_horde
has_title = title:e_omnod_dalai_khanate
# # Mongol Empires
# has_title = title:e_mongol_empire
# has_title = title:e_ilkhanate
# has_title = title:e_golden_horde
# has_title = title:e_chagatai
# has_title = title:e_red_horde
# has_title = title:e_white_horde
# has_title = title:e_aarlud_khanate
# has_title = title:e_togskol_khanate
# has_title = title:e_baruun_khanate
# has_title = title:e_great_yuan
# has_title = title:e_blue_horde
# has_title = title:e_omnod_dalai_khanate
}
}
NOT = { government_has_flag = government_is_clan }
@ -174,19 +174,19 @@ can_keep_high_partition_succession_law_trigger = {
OR = {
can_have_high_partition_succession_law_trigger = yes
# Mongol Empires
has_title = title:e_mongol_empire
has_title = title:e_ilkhanate
has_title = title:e_golden_horde
has_title = title:e_chagatai
has_title = title:e_red_horde
has_title = title:e_white_horde
has_title = title:e_aarlud_khanate
has_title = title:e_togskol_khanate
has_title = title:e_baruun_khanate
has_title = title:e_great_yuan
has_title = title:e_blue_horde
has_title = title:e_omnod_dalai_khanate
# # Mongol Empires
# has_title = title:e_mongol_empire
# has_title = title:e_ilkhanate
# has_title = title:e_golden_horde
# has_title = title:e_chagatai
# has_title = title:e_red_horde
# has_title = title:e_white_horde
# has_title = title:e_aarlud_khanate
# has_title = title:e_togskol_khanate
# has_title = title:e_baruun_khanate
# has_title = title:e_great_yuan
# has_title = title:e_blue_horde
# has_title = title:e_omnod_dalai_khanate
}
}
NOT = { government_has_flag = government_is_clan}
@ -474,6 +474,7 @@ can_keep_acclamation_succession_law_trigger = {
limit = {
has_realm_law = acclamation_succession_law
}
always = no
OR = {
can_have_acclamation_succession_law_trigger = yes
has_title = title:e_byzantium

View file

@ -0,0 +1,245 @@
###Accuse the Krstjani of Heresy
accuse_krstjani_of_heresy_decision_suitable_krstjani_realm_owner_trigger = {
faith = faith:bosnian_church
realm_size >= 8
primary_title.tier >= tier_duchy
}
###Launch the Hungarian Migration
launch_hungarian_migration_ducal_processing_trigger = {
#We're currently processing dukes.
highest_held_title_tier = tier_duchy
#Doesn't hold a valid duchy-tier title in Pannonia.
NOT = {
any_held_title = {
title_tier = duchy
title_capital_county.title_province = { geographical_region = custom_hungary }
}
}
}
launch_hungarian_migration_count_processing_trigger = {
#Doesn't hold a valid county-tier title in Pannonia.
NOT = {
any_held_title = {
title_tier = county
title_province = { geographical_region = custom_hungary }
}
}
}
launch_hungarian_migration_sub_vassal_liege_pairing_trigger = {
tier = tier_county
#Liege should be a suitable duke within Pannonia.
holder = scope:receiving_vassal.liege
#Double-check that the duke can afford to give a title away.
scope:receiving_vassal.liege = {
any_held_title = {
count >= 2
title_tier = county
title_province = { geographical_region = custom_hungary }
}
}
}
launch_hungarian_migration_direct_vassal_requirements_trigger = {
tier = tier_county
holder = $INVADER$
}
launch_hungarian_migration_county_is_within_custom_hungary_trigger = {
tier = tier_county
title_province = { geographical_region = custom_hungary }
}
launch_hungarian_migration_misplaced_count_suitable_liege_trigger = {
launch_hungarian_migration_county_is_within_custom_hungary_trigger = yes
duchy = {
holder ?= {
NOT = { this = $INVADER$ }
liege = $INVADER$
}
}
}
###################################################
## Danelaw Triggers
#
### Colonial Sides
#### The decision requires one lowland British party & one colonial Norse party.
#negotiate_the_danelaw_british_side_trigger = {
# OR = {
# culture = { has_cultural_pillar = heritage_west_germanic }
# culture = { has_cultural_pillar = heritage_brythonic }
# }
# NOT = { religion = religion:germanic_religion }
#}
#negotiate_the_danelaw_norse_side_trigger = {
# OR = {
# culture = { has_cultural_pillar = heritage_north_germanic }
# culture = culture:norman
# religion = religion:germanic_religion
# }
#}
#
### Standard Filters
#### Does this character meet the basic eligibility requirements?
#negotiate_the_danelaw_basic_filter_trigger = {
# # Standard filter checks.
# is_playable_character = yes
# exists = dynasty
# OR = {
# government_has_flag = government_is_tribal
# government_has_flag = government_is_feudal
# government_has_flag = government_is_clan
# }
# # Must be one of the two valid sides.
# OR = {
# negotiate_the_danelaw_british_side_trigger = yes
# negotiate_the_danelaw_norse_side_trigger = yes
# }
#}
#negotiate_the_danelaw_additional_filter_trigger = {
# # Independent only, please.
# top_liege = this
# # Kings & Emperors are too high a rank to make concessions.
# highest_held_title_tier <= tier_duchy
# # Plus, a capital inside title:k_england. Not strictly necessary, but removes *so* many edge-cases.
# capital_county.kingdom = title:k_england
#}
#negotiate_the_danelaw_standard_filter_trigger = {
# negotiate_the_danelaw_basic_filter_trigger = yes
# negotiate_the_danelaw_additional_filter_trigger = yes
#}
#
### Valid Opponent
#### Assuming that we have a character who can take the decision (which has stricter requirements), do they have an opponent to negotiate with?
#negotiate_the_danelaw_valid_danelaw_opponent_trigger = {
# # Standard filter checks.
# negotiate_the_danelaw_standard_filter_trigger = yes
# # Ensure they match the opposing side.
# trigger_if = {
# limit = {
# root = { negotiate_the_danelaw_british_side_trigger = yes }
# }
# negotiate_the_danelaw_norse_side_trigger = yes
# }
# trigger_if = {
# limit = {
# root = { negotiate_the_danelaw_norse_side_trigger = yes }
# }
# negotiate_the_danelaw_british_side_trigger = yes
# }
# # Holds a certain amount of de jure counties within k_england.
# save_temporary_scope_as = valid_opponent
# title:k_england = {
# any_in_de_jure_hierarchy = {
# count >= 10
# tier = tier_county
# holder = {
# OR = {
# this = scope:valid_opponent
# any_liege_or_above = { this = scope:valid_opponent }
# }
# }
# }
# }
#}
#
##################################################
# Favour the Countryside Basques Triggers
favour_the_countryside_basques_counts_as_basque_trigger = {
culture = {
OR = {
this = culture:basque
any_parent_culture = { this = culture:basque }
}
}
}
## We keep these isolated so that we can maintain easy parity between the decision rationales & the event desc rationales.
favour_the_countryside_basques_rationale_negative_piety_level_trigger = {
piety_level < low_piety_level
}
favour_the_countryside_basques_rationale_sinful_traits_trigger = {
num_sinful_traits >= 2
}
favour_the_countryside_basques_rationale_virtuous_basque_pagan_traits_trigger = {
num_virtuous_traits = {
value >= favour_the_countryside_basques_decision_basque_pagan_virtues_tally_value
target = faith:basque_pagan
}
}
favour_the_countryside_basques_rationale_excommunicated_trigger = {
has_trait = excommunicated
}
favour_the_countryside_basques_rationale_naked_cynicism_trigger = {
trigger_if = {
limit = { is_ai = no }
has_trait = cynical
}
}
favour_the_countryside_basques_rationale_hof_rivalry_trigger = {
AND = {
exists = faith.religious_head
has_relation_rival = faith.religious_head
}
}
##################################################
# Rebuke Roman Revanchism Triggers
rebuke_roman_revanchism_counties_controlled_trigger = {
holder = {
OR = {
this = root
top_liege = root
}
}
}
rebuke_roman_revanchism_counties_controlled_by_ere_trigger = {
exists = title:e_byzantium.holder
holder = {
OR = {
this = title:e_byzantium.holder
top_liege = title:e_byzantium.holder
}
}
}
rebuke_roman_revanchism_sicily_controls_unlisted_empire_trigger = {
highest_held_title_tier >= tier_empire
primary_title = {
NOR = {
this = title:e_italy
this = title:e_maghreb
}
}
}
restore_roman_empire_decision_religion_culture_trigger = {
custom_tooltip = {
text = restore_roman_empire_decision_religion_culture_tt
OR = {
religion = {
OR = {
is_in_family = rf_abrahamic
this = religion:hellenism_religion
}
}
culture = {
OR = {
has_cultural_pillar = heritage_latin
has_cultural_pillar = heritage_byzantine
}
}
}
}
}

View file

@ -0,0 +1,192 @@
##########################################################################################################################
#
# These triggers all check for character flags which can be applied by the effects in '00_personality_trait_effects.txt'
# Used to determine if those effects successfully ran, and if they are still valid.
personality_has_any_trait_flag_trigger = {
OR = {
scope:has_opposing_trait = flag:arrogant
scope:has_opposing_trait = flag:humble
scope:has_opposing_trait = flag:lustful
scope:has_opposing_trait = flag:chaste
scope:has_opposing_trait = flag:gregarious
scope:has_opposing_trait = flag:shy
scope:has_opposing_trait = flag:generous
scope:has_opposing_trait = flag:greedy
scope:has_opposing_trait = flag:ambitious
scope:has_opposing_trait = flag:content
scope:has_opposing_trait = flag:impatient
scope:has_opposing_trait = flag:patient
scope:has_opposing_trait = flag:temperate
scope:has_opposing_trait = flag:gluttonous
scope:has_opposing_trait = flag:diligent
scope:has_opposing_trait = flag:lazy
scope:has_opposing_trait = flag:wrathful
scope:has_opposing_trait = flag:calm
scope:has_opposing_trait = flag:deceitful
scope:has_opposing_trait = flag:honest
scope:has_opposing_trait = flag:craven
scope:has_opposing_trait = flag:brave
scope:has_opposing_trait = flag:arbitrary
scope:has_opposing_trait = flag:just
scope:has_opposing_trait = flag:cynical
scope:has_opposing_trait = flag:zealous
scope:has_opposing_trait = flag:paranoid
scope:has_opposing_trait = flag:trusting
scope:has_opposing_trait = flag:compassionate
scope:has_opposing_trait = flag:callous
scope:has_opposing_trait = flag:sadistic
scope:has_opposing_trait = flag:forgiving
scope:has_opposing_trait = flag:vengeful
scope:has_opposing_trait = flag:stubborn
scope:has_opposing_trait = flag:fickle
}
}
#Checks if we can safely run the
personality_can_trait_shift = {
OR = {
AND = {
scope:has_opposing_trait = flag:arrogant
has_trait = arrogant
}
AND = {
scope:has_opposing_trait = flag:humble
has_trait = humble
}
AND = {
scope:has_opposing_trait = flag:lustful
has_trait = lustful
}
AND = {
scope:has_opposing_trait = flag:chaste
has_trait = chaste
}
AND = {
scope:has_opposing_trait = flag:gregarious
has_trait = gregarious
}
AND = {
scope:has_opposing_trait = flag:shy
has_trait = shy
}
AND = {
scope:has_opposing_trait = flag:generous
has_trait = generous
}
AND = {
scope:has_opposing_trait = flag:greedy
has_trait = greedy
}
AND = {
scope:has_opposing_trait = flag:ambitious
has_trait = ambitious
}
AND = {
scope:has_opposing_trait = flag:content
has_trait = content
}
AND = {
scope:has_opposing_trait = flag:impatient
has_trait = impatient
}
AND = {
scope:has_opposing_trait = flag:patient
has_trait = patient
}
AND = {
scope:has_opposing_trait = flag:temperate
has_trait = temperate
}
AND = {
scope:has_opposing_trait = flag:gluttonous
has_trait = gluttonous
}
AND = {
scope:has_opposing_trait = flag:diligent
has_trait = diligent
}
AND = {
scope:has_opposing_trait = flag:lazy
has_trait = lazy
}
AND = {
scope:has_opposing_trait = flag:wrathful
has_trait = wrathful
}
AND = {
scope:has_opposing_trait = flag:calm
has_trait = calm
}
AND = {
scope:has_opposing_trait = flag:deceitful
has_trait = deceitful
}
AND = {
scope:has_opposing_trait = flag:honest
has_trait = honest
}
AND = {
scope:has_opposing_trait = flag:craven
has_trait = craven
}
AND = {
scope:has_opposing_trait = flag:brave
has_trait = brave
}
AND = {
scope:has_opposing_trait = flag:arbitrary
has_trait = arbitrary
}
AND = {
scope:has_opposing_trait = flag:just
has_trait = just
}
AND = {
scope:has_opposing_trait = flag:cynical
has_trait = cynical
}
AND = {
scope:has_opposing_trait = flag:zealous
has_trait = zealous
}
AND = {
scope:has_opposing_trait = flag:paranoid
has_trait = paranoid
}
AND = {
scope:has_opposing_trait = flag:trusting
has_trait = trusting
}
AND = {
scope:has_opposing_trait = flag:compassionate
has_trait = compassionate
}
AND = {
scope:has_opposing_trait = flag:callous
has_trait = callous
}
AND = {
scope:has_opposing_trait = flag:sadistic
has_trait = sadistic
}
AND = {
scope:has_opposing_trait = flag:forgiving
has_trait = forgiving
}
AND = {
scope:has_opposing_trait = flag:vengeful
has_trait = vengeful
}
AND = {
scope:has_opposing_trait = flag:stubborn
has_trait = stubborn
}
AND = {
scope:has_opposing_trait = flag:fickle
has_trait = fickle
}
}
}

View file

@ -60,10 +60,10 @@ historical_succession_access_single_heir_succession_law_trigger = {
historical_succession_access_single_heir_succession_law_youngest_trigger = {
NOT = { government_allows = administrative }
OR = {
#has_title = title:e_byzantium
#Add any subsequent exceptions here.
}
# OR = {
# #has_title = title:e_byzantium
# #Add any subsequent exceptions here.
# }
}
historical_succession_access_single_heir_dynasty_house_trigger = {

View file

@ -0,0 +1,87 @@

#########################
# Triggers for Province Terrain
#########################
is_wooded_trigger = {
OR = {
terrain = forest
terrain = jungle
terrain = taiga
}
}
is_mountainous_trigger = {
OR = {
terrain = mountains
terrain = desert_mountains
}
}
is_mountainous_or_hilly_trigger = {
OR = {
terrain = mountains
terrain = desert_mountains
terrain = hills
}
}
is_drylands_trigger = {
OR = {
terrain = drylands
terrain = steppe
}
}
is_desert_trigger = {
OR = {
terrain = desert
terrain = desert_mountains
terrain = oasis
}
}
is_drylands_or_desert_trigger = {
OR = {
terrain = drylands
terrain = steppe
terrain = desert
terrain = desert_mountains
terrain = oasis
}
}
is_wetland_trigger = {
OR = {
terrain = wetlands
terrain = floodplains
terrain = oasis
}
}
is_flatlands_trigger = {
OR = {
terrain = steppe
terrain = plains
terrain = farmlands
}
}
is_likely_to_contain_trees_trigger = {
OR = {
is_wooded_trigger = yes
is_wetland_trigger = yes
is_flatlands_trigger = yes
terrain = hills
}
}
holds_county_with_water_trigger = {
any_held_county = {
any_county_province = {
NOR = {
terrain = desert
terrain = desert_mountains
}
}
}
}

View file

@ -15,88 +15,88 @@ has_mythical_founder_trigger = {
}
current_date > 1000.1.1
}
OR = { # Alexander
this = title:k_thessalonika
this = title:k_hellas
this = title:k_egypt
AND = {
OR = {
this = title:k_persia
this = title:e_persia
}
NOR = {
root.faith.religion = religion:islam_religion
root.faith.religion = religion:zoroastrianism_religion
}
}
this = title:k_anatolia
}
this = title:k_poland # Lech
this = title:k_bohemia # Czech
OR = { # Rus
this = title:k_white_rus
this = title:k_ruthenia
this = title:e_russia
}
OR = { # Arthur
this = title:k_england
this = title:e_britannia
}
AND = {
OR = { # Belisarius
this = title:k_italy
this = title:k_romagna
this = title:k_sardinia
this = title:k_naples
this = title:e_italy
}
root.faith = faith:orthodox
}
OR = { # Romulus
this = title:k_italy
this = title:k_romagna
this = title:k_sardinia
this = title:e_italy
this = title:h_roman_empire
this = title:h_eastern_roman_empire
}
OR = { # Ardashir
this = title:k_persia
this = title:e_persia
}
AND = { # Pharaohs
this = title:k_egypt
NOT = { root.faith.religion = religion:islam_religion }
}
AND = { # Visigothic Kings
OR = {
this = title:k_castille
this = title:k_aragon
this = title:k_navarra
this = title:k_andalusia
this = title:k_portugal
this = title:e_spain
}
NOT = { root.faith.religion = religion:islam_religion }
}
AND = { # Abd al-Rahman
OR = {
this = title:k_castille
this = title:k_aragon
this = title:k_navarra
this = title:k_andalusia
this = title:k_portugal
this = title:e_spain
}
root.faith.religion = religion:islam_religion
}
AND = { # Zenobia
OR = {
this = title:k_syria
this = title:k_mesopotamia
}
NOT = { root.faith.religion = religion:islam_religion }
}
# OR = { # Alexander
# this = title:k_thessalonika
# this = title:k_hellas
# this = title:k_egypt
# AND = {
# OR = {
# this = title:k_persia
# this = title:e_persia
# }
# NOR = {
# root.faith.religion = religion:islam_religion
# root.faith.religion = religion:zoroastrianism_religion
# }
# }
# this = title:k_anatolia
# }
# this = title:k_poland # Lech
# this = title:k_bohemia # Czech
# OR = { # Rus
# this = title:k_white_rus
# this = title:k_ruthenia
# this = title:e_russia
# }
# OR = { # Arthur
# this = title:k_england
# this = title:e_britannia
# }
# AND = {
# OR = { # Belisarius
# this = title:k_italy
# this = title:k_romagna
# this = title:k_sardinia
# this = title:k_naples
# this = title:e_italy
# }
# root.faith = faith:orthodox
# }
# OR = { # Romulus
# this = title:k_italy
# this = title:k_romagna
# this = title:k_sardinia
# this = title:e_italy
# this = title:h_roman_empire
# this = title:h_eastern_roman_empire
# }
# OR = { # Ardashir
# this = title:k_persia
# this = title:e_persia
# }
# AND = { # Pharaohs
# this = title:k_egypt
# NOT = { root.faith.religion = religion:islam_religion }
# }
# AND = { # Visigothic Kings
# OR = {
# this = title:k_castille
# this = title:k_aragon
# this = title:k_navarra
# this = title:k_andalusia
# this = title:k_portugal
# this = title:e_spain
# }
# NOT = { root.faith.religion = religion:islam_religion }
# }
# AND = { # Abd al-Rahman
# OR = {
# this = title:k_castille
# this = title:k_aragon
# this = title:k_navarra
# this = title:k_andalusia
# this = title:k_portugal
# this = title:e_spain
# }
# root.faith.religion = religion:islam_religion
# }
# AND = { # Zenobia
# OR = {
# this = title:k_syria
# this = title:k_mesopotamia
# }
# NOT = { root.faith.religion = religion:islam_religion }
# }
}
}

View file

@ -517,10 +517,10 @@ using_de_jure_cb_trigger = {
using_cb = individual_county_de_jure_cb
using_cb = individual_duchy_de_jure_cb
using_cb = imperial_reconquest_cb
using_cb = dismantle_holy_pretender_cb
using_cb = dismantle_byz_pretender_cb
using_cb = norman_conquest_cb
using_cb = norwegian_invasion_cb
# using_cb = dismantle_holy_pretender_cb
# using_cb = dismantle_byz_pretender_cb
# using_cb = norman_conquest_cb
# using_cb = norwegian_invasion_cb
}
}

View file

@ -0,0 +1,509 @@

##################################################
# Winter Triggers
county_has_winter_trigger = {
title_province = {
has_winter_trigger = yes
}
}
character_capital_has_winter_trigger = {
capital_county = { county_has_winter_trigger = yes }
}
culture_uses_frequent_winter_transportation_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_balto_finnic
has_cultural_pillar = heritage_north_germanic
# We exclude Normans as being pretty distant from this part of their heritage.
has_cultural_parameter = winter_trait_bonuses
}
}
}
location_has_harsh_winter_trigger = {
location = { has_province_modifier = winter_harsh_modifier }
}
location_has_normal_or_worse_winter_trigger = {
location = {
OR = {
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
location_has_winter_trigger = {
location = {
has_winter_trigger = yes
}
}
has_winter_trigger = {
OR = {
has_province_modifier = winter_mild_modifier
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
AND = {
exists = county
county = { save_temporary_scope_as = winter_county }
county.holder = { has_zud_season_in_county_trigger = { COUNTY = scope:winter_county } }
}
}
}
has_winter_combat_trigger = {
OR = {
has_province_modifier = winter_mild_modifier
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
##################################################
# Seasonal Triggers
middle_of_year_season_trigger = {
current_month >= 4
current_month <= 9
}
end_of_year_season_trigger = {
OR = {
current_month >= 10
current_month <= 3
}
}
temperate_seasons_trigger = {
$LOCATION$ = {
OR = {
geographical_region = world_europe
geographical_region = world_asia_minor
geographical_region = world_middle_east
geographical_region = world_india_rajastan
geographical_region = world_india_bengal
geographical_region = world_africa_north
geographical_region = world_steppe
geographical_region = world_tibet
geographical_region = world_asia_china
geographical_region = world_asia_japan
geographical_region = world_asia_korea
}
}
}
tropical_seasons_trigger = {
$LOCATION$ = {
tropical_seasons_region_trigger = yes
}
}
tropical_seasons_region_trigger = {
OR = {
geographical_region = world_africa_west
geographical_region = world_africa_east
geographical_region = world_india_deccan
geographical_region = world_burma
geographical_region = world_asia_china
geographical_region = world_asia_southeast
}
}
is_nice_season_to_be_outside_trigger = {
OR = {
# Temperate zones like to be out in summer.
AND = {
temperate_seasons_trigger = { LOCATION = $LOCATION$ }
middle_of_year_season_trigger = yes
}
# Tropical zones like to be out in winter.
AND = {
tropical_seasons_trigger = { LOCATION = $LOCATION$ }
end_of_year_season_trigger = yes
}
}
}
is_nice_season_to_be_inside_trigger = {
OR = {
# Temperate zones like to be inside in winter.
AND = {
temperate_seasons_trigger = { LOCATION = $LOCATION$ }
end_of_year_season_trigger = yes
}
# Tropical zones like to be inside in summer.
AND = {
tropical_seasons_trigger = { LOCATION = $LOCATION$ }
middle_of_year_season_trigger = yes
}
}
}
#Season scripted trigger tied into custom loc, can be used for backgrounds and VFX
#Format like current_season_winter = yes
current_season_trigger = {
current_season_$SEASON$ = yes
}
current_season_winter = {
#southern region with rainy/dry seasons
trigger_if = {
limit = {
location = {
geographical_region = seasonal_region_deccan
}
}
OR = {
current_month >= 11
current_month < 3
}
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_rajasthan
}
}
OR = {
current_month >= 12
current_month < 4
}
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_bengal
}
}
OR = {
current_month >= 11
current_month < 2
}
}
trigger_else = {
#Generic Northern Hemisphere
OR = {
current_month >= 12
current_month < 3
}
#Not present/has different name in these regions
location = {
NOR = {
geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_maritime_southeast_asia
geographical_region = seasonal_region_peninsular_southeast_asia
}
}
}
}
current_season_autumn = {
#southern region with rainy/dry seasons
trigger_if = {
limit = {
location = {
geographical_region = seasonal_region_rajasthan
}
}
current_month >= 10
current_month < 12
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_bengal
}
}
current_month >= 8
current_month < 11
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_east_africa
}
}
current_month >= 9
current_month < 11
}
trigger_else = {
#Generic Northern Hemisphere
current_month >= 9
current_month < 12
#Not present/has different name in these regions
location = {
NOR = {
geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_deccan
geographical_region = seasonal_region_peninsular_southeast_asia
geographicaL_region = seasonal_region_maritime_southeast_asia
}
}
}
}
current_season_summer = {
#southern region with rainy/dry seasons
trigger_if = {
limit = {
location = {
geographical_region = seasonal_region_deccan
}
}
current_month >= 3
current_month < 6
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_rajasthan
}
}
current_month >= 4
current_month < 7
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_bengal
}
}
current_month >= 4
current_month < 6
}
trigger_else = {
#Generic Northern Hemisphere
current_month >= 6
current_month < 9
#Not present/has different name in these regions
location = {
NOR = {
geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_peninsular_southeast_asia
geographical_region = seasonal_region_maritime_southeast_asia
}
}
}
}
current_season_spring = {
#southern region with rainy/dry seasons
trigger_if = {
limit = {
location = {
geographical_region = seasonal_region_bengal
}
}
current_month >= 2
current_month < 4
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_east_africa
}
}
current_month >= 3
current_month < 6
}
trigger_else = {
#Generic Northern Hemisphere
current_month >= 3
current_month < 6
#Not present/has different name in these regions
location = {
NOR = {
geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_rajasthan
geographical_region = seasonal_region_deccan
geographical_region = seasonal_region_peninsular_southeast_asia
geographical_region = seasonal_region_maritime_southeast_asia
}
}
}
}
current_season_dry_season = {
#southern region with rainy/dry seasons
location = {
OR = {
geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_peninsular_southeast_asia
geographical_region = seasonal_region_maritime_southeast_asia
geographical_region = seasonal_region_bengal
geographical_region = seasonal_region_deccan
}
}
trigger_if = {
limit = {
location = { geographical_region = seasonal_region_west_africa }
}
OR = {
current_month >= 11
current_month < 5
}
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_east_africa
}
}
OR = {
current_month >= 12
current_month < 3
}
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_maritime_southeast_asia
}#April to September
}
current_month >= 4
current_month < 10
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_peninsular_southeast_asia
}
}
OR = { #November to May
current_month >= 11
current_month < 6
}
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_bengal
}
}
OR = {
current_month >= 12
current_month < 3
}
}
trigger_else = {
location = {
geographical_region = seasonal_region_deccan
}
OR = {
current_month >= 12
current_month < 3
}
}
}
current_season_rainy_season = {
#Jasons triggers here
location = {
OR = {
geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_peninsular_southeast_asia
geographical_region = seasonal_region_maritime_southeast_asia
geographical_region = seasonal_region_bengal
geographical_region = seasonal_region_deccan
geographical_region = seasonal_region_rajasthan
}
}
#southern region with rainy/dry seasons
trigger_if = {
limit = {
location = {
geographical_region = seasonal_region_deccan
}
}
current_month >= 6
current_month < 11
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_rajasthan
}
}
current_month >= 7
current_month < 10
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_bengal
}
}
current_month >= 6
current_month < 8
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_peninsular_southeast_asia
}
} #June to October
current_month >= 6
current_month < 11
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_maritime_southeast_asia
}
} #October to March
OR = {
current_month >= 10
current_month < 4
}
}
trigger_else = {
location = {
geographical_region = seasonal_region_east_africa
}
current_month >= 6
current_month < 9
}
}
current_season_hot_season = {
OR = {
AND = {
location = {
OR = {
geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_west_africa
}
}
current_season_rainy_season = yes
}
current_season_summer = yes
}
}
current_season_cold_season = {
OR = {
current_season_winter = yes
current_season_dry_season = yes
}
}
current_season_wet = {
OR = {
current_season_spring = yes
current_season_rainy_season = yes
}
}
current_season_dry = {
OR = {
current_season_summer = yes
current_season_dry_season = yes
}
}

View file

@ -21,33 +21,19 @@ ep3_should_use_byzantine_graphics_trigger = {
}
is_roman_emperor_trigger = {
OR = {
has_title = title:e_byzantium
has_title = title:h_roman_empire
has_title = title:h_eastern_roman_empire
}
always = no
}
is_roman_emperor_excluding_byzantium_trigger = {
OR = {
has_title = title:h_roman_empire
has_title = title:h_eastern_roman_empire
}
always = no
}
is_roman_emperor_primary_title_trigger = {
OR = {
primary_title ?= title:e_byzantium
primary_title ?= title:h_roman_empire
primary_title ?= title:h_eastern_roman_empire
}
always = no
}
is_roman_emperor_primary_title_excluding_byzantium_trigger = {
OR = {
primary_title ?= title:h_roman_empire
primary_title ?= title:h_eastern_roman_empire
}
always = no
}
#valid_for_byz_emperor_content_trigger = {
@ -1169,16 +1155,16 @@ has_any_gallowsbait_xp_trigger = {
}
}
ep3_restored_rome_hard_mode_trigger = {
OR = {
this = title:h_roman_empire.holder
this = title:h_eastern_roman_empire.holder
}
any_owned_story = {
type = ep3_story_cycle_restoring_rome
has_variable = roman_empire_hard_mode
}
}
#ep3_restored_rome_hard_mode_trigger = {
# OR = {
# this = title:h_roman_empire.holder
# this = title:h_eastern_roman_empire.holder
# }
# any_owned_story = {
# type = ep3_story_cycle_restoring_rome
# has_variable = roman_empire_hard_mode
# }
#}
faith_is_interesting_heresy_to_state_faith_trigger = {
religion = root.top_liege.primary_title.state_faith.religion

View file

@ -0,0 +1,854 @@

tgp_is_japanese_kampaku_trigger = {
has_title = title:e_japan
NOR = {
has_title = title:k_chrysanthemum_throne
has_global_variable = tenno_restored
has_global_variable = shogunate_established
}
}
tgp_is_japanese_governor_trigger = {
custom_tooltip = {
text = tgp_is_japanese_governor_trigger
government_has_flag = government_is_japan_administrative
is_landed = yes
is_ruler = yes
highest_held_title_tier >= tier_county
is_independent_ruler = no
tgp_is_ceremonial_liege_trigger = no
}
}
can_have_kampaku_acclamation_succession_law_trigger = {
has_tgp_dlc_trigger = yes
government_allows = administrative
is_independent_ruler = yes
}
can_keep_kampaku_acclamation_succession_law_trigger = {
has_tgp_dlc_trigger = yes
trigger_if = {
limit = {
has_realm_law = japanese_regency_succession_law
}
OR = {
can_have_kampaku_acclamation_succession_law_trigger = yes
has_title = title:e_japan
}
}
}
any_descendants_are_governors = {
# A direct descendant is currently a Governor
any_child = { # Children
OR = {
tgp_is_japanese_governor_trigger = yes
any_child = { # Grandchildren
OR = {
tgp_is_japanese_governor_trigger = yes
any_child = { # Great-grandchildren
OR = {
tgp_is_japanese_governor_trigger = yes
any_child = { # Great-great-grandchildren
tgp_is_japanese_governor_trigger = yes
}
}
}
}
}
}
}
}
any_liege_or_above_is_descendant = {
any_liege_or_above = {
is_liege_or_above_of = root
OR = {
is_child_of = root
is_grandchild_of = root
is_great_grandchild_of = root
}
}
}
is_a_previous_title_holder_trigger = {
save_temporary_scope_as = previous_holder_compare
$TITLE$ ?= {
# Easy out
trigger_if = {
limit = { previous_holder ?= scope:previous_holder_compare }
always = yes
}
# Hard out
trigger_else = {
any_past_holder = { this = scope:previous_holder_compare }
}
}
}
# Filter out dynasties of Emperors further away from you
# e.g. your father's brother's son
target_shares_nearest_related_title_holder_trigger = {
trigger_if = {
limit = {
any_parent = {
even_if_dead = yes
is_a_previous_title_holder_trigger = { TITLE = $TITLE$ }
}
}
is_child_of = $COMPARE$
}
trigger_else_if = {
limit = {
any_parent = {
even_if_dead = yes
any_parent = {
even_if_dead = yes
is_a_previous_title_holder_trigger = { TITLE = $TITLE$ }
}
}
}
is_grandchild_of = $COMPARE$
}
trigger_else = { is_great_grandchild_of = $COMPARE$ }
}
is_culture_or_descended_from_trigger = {
culture = {
OR = {
this = $CULTURE$
any_parent_culture_or_above = { this = $CULTURE$ }
}
}
}
tgp_japan_offensive_wars_ban_trigger = {
trigger_if = {
limit = {
exists = scope:defender.top_liege
scope:attacker.top_liege ?= {
has_title = title:e_japan
scope:defender.top_liege != this
government_is_japanese_trigger = yes
realm_law_use_imperial_policy_trigger = yes
}
}
custom_tooltip = {
text = japan_offensive_wars_ban_tt
scope:attacker.top_liege = { has_realm_law = imperial_expansion_law }
}
}
}
tgp_is_ceremonial_liege_or_direct_heir_trigger = {
save_temporary_scope_as = char_temp
top_liege.primary_title.var:administrative_ui_special_title ?= {
OR = {
holder ?= {
OR = {
this = scope:char_temp
is_parent_of = scope:char_temp
}
}
place_in_line_of_succession = {
target = scope:char_temp
value <= 5
}
}
}
}
tgp_ceremonial_candidacy_restriction_trigger = {
trigger_if = {
limit = {
exists = scope:target
scope:actor ?= { tgp_realm_has_ceremonial_liege_trigger = yes }
scope:secondary_recipient ?= { tgp_is_in_ceremonial_house_trigger = yes }
}
trigger_if = { # Top title only valid for ceremonial liege
limit = {
exists = scope:target.var:administrative_ui_special_title
scope:target.holder = {
OR = {
has_realm_law = japanese_regency_succession_law
has_realm_law = meritocratic_regency_succession_law
}
}
}
trigger_if = {
limit = {
top_liege.primary_title.var:administrative_ui_special_title.holder = { tgp_has_ceremonial_liege_title_trigger = yes }
}
custom_tooltip = {
text = ceremonial_liege_only_heir_can_be_ruler_trigger
scope:secondary_recipient = { tgp_is_ceremonial_liege_or_direct_heir_trigger = yes }
}
}
trigger_else_if = {
limit = {
scope:actor = { is_independent_ruler = yes }
}
custom_tooltip = {
text = ceremonial_liege_only_heir_can_be_ruler_trigger
scope:secondary_recipient = scope:actor.player_heir
}
}
trigger_else = {
custom_tooltip = {
text = ceremonial_liege_house_can_not_be_ruler_trigger
scope:secondary_recipient = { tgp_is_ceremonial_liege_trigger = yes }
}
}
}
trigger_else = { # Governor titles only valid for non-ceremonial liege
custom_tooltip = {
text = ceremonial_liege_cannot_be_governor_trigger
scope:secondary_recipient = { tgp_is_ceremonial_liege_trigger = no }
}
}
}
}
tgp_japan_grant_titles_restriction_trigger = {
trigger_if = {
limit = {
$GRANTER$ ?= { tgp_realm_has_ceremonial_liege_trigger = yes }
exists = $GRANTEE$.house
}
custom_tooltip = {
text = ceremonial_liege_cannot_be_governor_trigger
$GRANTEE$ = { tgp_is_ceremonial_liege_trigger = no }
}
}
}
tgp_ceremonial_title_revoke_restriction_trigger = {
trigger_if = {
limit = {
exists = scope:recipient.house
scope:actor.top_liege.primary_title.var:administrative_ui_special_title.holder ?= scope:recipient
}
custom_tooltip = {
text = tgp_blocked_ceremonial_title_revocation_trigger
NOT = { scope:target ?= scope:actor.top_liege.primary_title.var:administrative_ui_special_title }
}
}
}
can_have_japanese_regency_succession_law_trigger = {
has_tgp_dlc_trigger = yes
is_independent_ruler = yes
government_has_flag = government_is_japan_administrative
OR = {
has_title = title:k_chrysanthemum_throne
any_vassal_or_below = { has_title = title:k_chrysanthemum_throne }
}
NOT = {
has_global_variable = tenno_restored
}
}
can_have_japanese_appointment_succession_law_trigger = {
has_tgp_dlc_trigger = yes
government_has_flag = government_is_japan_administrative
is_independent_ruler = no
NOT = { has_title = title:k_chrysanthemum_throne }
}
can_keep_japanese_appointment_succession_law_trigger = {
has_tgp_dlc_trigger = yes
trigger_if = {
limit = { has_realm_law = japanese_appointment_succession_law }
can_have_japanese_appointment_succession_law_trigger = yes
}
}
can_change_japanese_appointment_succession_law_trigger = {
has_tgp_dlc_trigger = yes
}
tgp_japan_single_heir_succession_override_trigger = {
save_temporary_scope_as = holder_temp
OR = {
title:k_chrysanthemum_throne.holder ?= scope:holder_temp
AND = {
has_global_variable = tenno_restored
title:e_japan.holder ?= scope:holder_temp
}
}
}
tgp_blocked_action_against_tenno_trigger = {
custom_description = {
text = tgp_blocked_ruler_against_ceremonial_action_trigger
NAND = {
$TARGET$ = { has_title = title:k_chrysanthemum_throne }
$TARGET$.top_liege = $ACTOR$.top_liege
}
}
}
tgp_blocked_ruler_against_ceremonial_action_trigger = {
custom_description = {
text = tgp_blocked_ruler_against_ceremonial_action_trigger
NAND = {
$TENNO$ = { has_title = title:k_chrysanthemum_throne }
$REGENT$ = $TENNO$.liege
}
}
}
#japan_house_name_county_trigger = {
# exists = $TITLE$
# save_temporary_scope_as = new_head_temp
# trigger_if = {
# limit = {
# OR = {
# $TITLE$.holder ?= scope:new_head_temp
# scope:new_head_temp.domicile.domicile_location.county ?= $TITLE$
# }
# }
# always = yes
# }
# trigger_else_if = {
# limit = { exists = scope:old_head }
# OR = {
# $TITLE$.holder ?= scope:old_head
# scope:old_head.domicile.domicile_location.county ?= $TITLE$
# }
# }
# trigger_else_if = {
# limit = { exists = scope:new_head_temp.house.house_head }
# OR = {
# $TITLE$.holder ?= scope:new_head_temp.house.house_head
# scope:new_head_temp.house.house_head.domicile.domicile_location.county ?= $TITLE$
# }
# }
# trigger_else_if = {
# limit = { exists = scope:old_head.house.house_head }
# OR = {
# $TITLE$.holder ?= scope:old_head.house.house_head
# scope:old_head.house.house_head.domicile.domicile_location.county ?= $TITLE$
# }
# }
# trigger_else = { always = yes }
# NOT = {
# is_target_in_variable_list = { name = japanese_house_names target = $FLAG$ }
# }
#}
#
japan_house_name_trigger = {
NOT = {
is_target_in_variable_list = { name = japanese_house_names target = $FLAG$ }
}
}
tgp_japan_internal_soryo_war_is_crime_trigger = {
scope:defender = {
government_has_flag = government_is_japan_administrative
top_liege = {
government_has_flag = government_is_japan_administrative
this = scope:attacker.top_liege
}
}
}
japan_imperial_expansion_cb_allowed_for_character_trigger = {
# DLC check
has_tgp_dlc_trigger = yes
# Must have a Japanese government form with policies
realm_law_use_imperial_policy_trigger = yes
# Must be part of Japan with functional imperial family
tgp_realm_has_ceremonial_liege_trigger = yes
}
government_is_japanese_trigger = {
OR = {
government_has_flag = government_is_japan_administrative
government_has_flag = government_is_japan_feudal
}
}
japan_imperial_expansion_cb_allowed_against_character_trigger = {
# Cannot also be part of Japan
NOT = { top_liege ?= scope:attacker.top_liege }
# Must own Japanese non-de-jure land
any_sub_realm_county = {
NOT = { empire = title:e_japan }
title_province = {
OR = {
geographical_region = world_asia_japan
geographical_region = world_asia_sakhalin_hokkaido
}
}
}
}
japan_imperial_reconquest_cb_allowed_for_character_trigger = {
# DLC check
has_tgp_dlc_trigger = yes
# Must have a Japanese government form with policies
realm_law_use_imperial_policy_trigger = yes
# Must be part of Japan with functional imperial family
tgp_realm_has_ceremonial_liege_trigger = yes
}
japan_imperial_reconquest_cb_allowed_against_character_trigger = {
# Cannot also be part of Japan
scope:defender.top_liege != scope:attacker.top_liege
# Must own Japanese de-jure land
any_sub_realm_county = { empire = title:e_japan }
}
realm_law_use_imperial_policy_trigger = {
top_liege = {
highest_held_title_tier >= tier_empire
government_is_japanese_trigger = yes
}
}
tgp_japan_defense_mobilization_valid_trigger = {
custom_tooltip = {
text = defense_mobilization_law_valid_trigger
OR = {
AND = {
is_at_war = yes
save_temporary_scope_as = liege_temp
any_character_war = {
is_civil_war = no
save_temporary_scope_as = war_temp
scope:liege_temp = {
is_leader_in_war = scope:war_temp
is_defender_in_war = scope:war_temp
}
OR = {
# CURRENT ATTACKERS COMBINED ARE A THREAT
war_attacker_total_strength_value > scope:liege_temp.max_strength_fifty_percent_value
# PRIMARY ATTACKER WITH ALLIES IS A THREAT
primary_attacker.max_strength_with_allies_value > scope:liege_temp.max_strength_fifty_percent_value
}
primary_attacker = {
OR = {
capital_county.empire != scope:liege_temp.capital_county.empire
NOT = { government_is_japanese_trigger = yes }
}
}
}
}
capital_county.empire = {
any_de_jure_county = { holder.top_liege != root.top_liege }
}
}
}
}
tgp_japan_valid_restore_monarchy_scion_trigger = {
is_landed = no
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:kampaku }
is_healthy = yes
}
tgp_japan_imperial_expansion_internal_peace_trigger = {
custom_tooltip = {
text = imperial_expansion_internal_peace_trigger
top_liege = {
NOT = {
any_vassal_or_below = {
any_primary_war_enemy = {
top_liege = prev.top_liege
}
}
}
}
}
}
tgp_install_regent_faction_target_valid_trigger = {
is_independent_ruler = yes
tgp_realm_has_ceremonial_liege_trigger = yes
}
tgp_install_regent_faction_can_create_trigger = {
has_tgp_dlc_trigger = yes
scope:target ?= { tgp_install_regent_faction_target_valid_trigger = yes }
custom_tooltip = {
text = replace_ceremonial_regent_faction_kampaku_trigger
NOR = {
has_global_variable = shogunate_established
has_global_variable = tenno_restored
}
}
is_adult = yes
custom_tooltip = {
text = is_faith_dominant_gender_tt
is_faith_dominant_gender = yes
}
japan_faction_cohesion_hard_trigger = yes
trigger_if = {
limit = {
scope:target ?= {
government_is_japanese_trigger = yes # am I a compatible government type?
}
}
government_is_japanese_trigger = yes
}
trigger_if = {
limit = {
scope:target ?= {
has_government = meritocratic_government # am I a compatible government type?
}
}
has_government = meritocratic_government
}
}
japan_faction_cohesion_trigger = {
trigger_if = {
limit = {
government_has_flag = government_has_house_blocs
is_confederation_member = yes
}
custom_tooltip = {
text = house_head_create_faction_cohesion_tt
OR = {
house.house_confederation ?= { cohesion >= 50 }
joined_faction ?= {
OR = {
faction_is_at_war = yes
any_faction_member = {
OR = {
this = root.house.house_confederation.leading_house.house_head
is_ai = no
}
}
}
}
}
}
}
}
japan_faction_cohesion_hard_trigger = {
trigger_if = {
limit = {
government_has_flag = government_has_house_blocs
is_confederation_member = yes
}
custom_tooltip = {
text = house_head_create_faction_cohesion_hard_tt
OR = {
house.house_confederation ?= { cohesion >= 75 }
joined_faction ?= {
OR = {
faction_is_at_war = yes
any_faction_member = {
OR = {
this = root.house.house_confederation.leading_house.house_head
is_ai = no
}
}
}
}
}
}
}
}
restore_ceremonial_liege_faction_can_create_trigger = {
tgp_realm_has_ceremonial_liege_trigger = yes
trigger_if = {
limit = { government_is_japanese_trigger = yes }
custom_tooltip = {
text = house_head_create_faction_cohesion_hard_tt
OR = {
house.house_confederation ?= { cohesion >= 75 }
joined_faction ?= {
faction_is_at_war = yes
}
}
}
custom_tooltip = {
text = bloc_leader_unlocks_restore_emperor_faction_tt
OR = {
house.house_confederation ?= { has_cohesion_level_parameter = bloc_leader_unlocks_restore_emperor_faction }
joined_faction ?= {
faction_is_at_war = yes
}
}
}
}
OR = {
custom_tooltip = {
text = is_house_head_of_noble_family_tt
is_house_head = yes
any_held_title = { is_noble_family_title = yes }
}
is_landed = yes
}
scope:target ?= {
is_independent_ruler = yes
tgp_realm_has_ceremonial_liege_trigger = yes
tgp_has_ceremonial_liege_title_trigger = no
}
}
ceremonial_claimant_faction_can_create_trigger = {
scope:target ?= {
is_independent_ruler = yes
tgp_realm_has_ceremonial_liege_trigger = yes
tgp_has_ceremonial_liege_title_trigger = no
}
japan_faction_cohesion_hard_trigger = yes
}
imperial_policy_faction_can_create_trigger = {
realm_law_use_imperial_policy_trigger = yes
scope:target = {
is_independent_ruler = yes
this = root.liege
}
japan_faction_cohesion_trigger = yes
}
tgp_ritsuryo_bloc_house_head_trigger = {
top_liege = root.top_liege
government_has_flag = government_is_japan_administrative
}
tgp_house_bloc_interaction_valid_trigger = {
is_ruler = yes
tgp_uses_house_blocs_trigger = yes
highest_held_title_tier >= tier_county
top_liege = { tgp_uses_house_blocs_trigger = yes }
}
tgp_house_bloc_interaction_valid_showing_failures_trigger = {
custom_tooltip = {
text = tgp_house_bloc_house_head_tt
is_house_head = yes
any_held_title = { is_noble_family_title = yes }
}
}
tgp_has_house_relation_level_trigger = {
exists = $HOUSE_1_MEMBER$.house
exists = $HOUSE_2_MEMBER$.house
$HOUSE_1_MEMBER$.house != $HOUSE_2_MEMBER$.house
$HOUSE_1_MEMBER$.house = {
any_house_relation = {
has_house_relation_level = $LEVEL$
any_relation_house = { this = $HOUSE_2_MEMBER$.house }
}
}
}
## Check who can join a House Bloc
#
# TODO_TGP_CD: Remove this? Functionality (if any) would do better on house confederation type).
#
# root: possibly viable character
#
tgp_should_join_house_bloc_trigger = {
# Not in a Bloc
NOT = { exists = confederation }
# Not vassal - TODO_CD_TGP
#NOT = { liege ?= house.house_head }
# Same liege
$BLOC$.leading_house.house_head.liege ?= liege
# General checks
tgp_house_bloc_interaction_valid_trigger = yes
is_landed = yes # TODO_CD_TGP UNLANDED CANNOT JOIN YET
# Government TODO_CD_TGP disabled for now
#trigger_if = {
# limit = {
# $BLOC$.leading_house.house_head ?= { government_has_flag = government_is_japan_administrative }
# }
# government_has_flag = government_is_japan_administrative
#}
#trigger_else = { government_has_flag = government_is_japan_feudal }
}
tgp_house_bloc_inviter_or_leader_trigger = {
$JOINER$ = { save_temporary_scope_as = joiner_temp }
trigger_if = {
limit = { exists = $INVITER$.confederation.leading_house.house_head }
$INVITER$.confederation.leading_house.house_head = { save_temporary_scope_as = inviter_temp }
}
trigger_else = { $INVITER$ = { save_temporary_scope_as = inviter_temp } }
}
tgp_japan_cadet_creates_dynasty_trigger = {
NOR = {
this = dynasty.dynast
this = house.house_head
}
dynasty.dynast ?= { government_allows = administrative }
}
tgp_soryo_or_bushido_trigger = {
custom_tooltip = {
text = soryo_or_bushido_trigger
OR = {
government_has_flag = government_is_japan_feudal
culture = { has_cultural_tradition = tradition_tgp_bushido }
}
}
}
has_house_aspiration_trigger = {
OR = {
has_house_aspiration_parameter = aspiration_level_1
has_house_aspiration_parameter = aspiration_level_2
has_house_aspiration_parameter = aspiration_level_3
}
}
should_learn_chinese_trigger = {
save_temporary_scope_as = child_learned_chinese
#Make sure they don't already know Chinese
NOT = {
knows_language = language_chinese
}
num_of_known_languages < language_soft_cap
exists = house
age >= 10
is_faith_dominant_gender = yes
probably_unintelligent_trigger = no
house.house_head ?= {
OR = {
government_is_japanese_trigger = yes
#This will account for korea and friends
government_allows = merit
}
OR = {
#Cultural acceptance will be our guiding light for teaching young, noblemen (dominate gender) adults Chinese. These values will be set in game_start.txt
culture = {
OR = {
cultural_acceptance = {
target = culture:han
value >= 65
}
any_parent_culture_or_above = { this = culture:han }
}
}
top_liege = {
highest_held_title_tier >= tier_kingdom
has_dlc_feature = royal_court
has_court_language_of_culture = culture:han
}
}
}
}
japan_government_japan_kingdom_restriction_trigger = {
trigger_if = {
limit = {
government_is_japanese_trigger = yes
OR = {
is_independent_ruler = no
AND = {
NOT = { highest_held_title_tier = tier_kingdom }
has_title = title:e_japan
}
}
}
custom_tooltip = {
text = japan_government_japan_kingdom_restriction_tt
has_global_variable = tenno_restored
}
}
}
japan_government_japan_duchy_restriction_trigger = {
trigger_if = {
limit = {
OR = {
government_has_flag = government_is_japan_administrative
AND = { # Soryo can create duchies if they're already a duke
government_has_flag = government_is_japan_feudal
primary_title.tier = tier_county
}
}
NAND = {
is_independent_ruler = yes
government_has_flag = government_is_japan_feudal
}
}
custom_tooltip = {
text = japan_government_japan_duchy_restriction_tt
has_global_variable = tenno_restored
}
}
}
can_upgrade_house_aspiration_trigger = {
is_house_head = yes
trigger_if = {
limit = {
exists = house.house_confederation.leading_house
house.house_confederation.leading_house != house
}
custom_tooltip = {
text = cannot_upgrade_mismatched_bloc_aspiration_tt
house.house_confederation.leading_house = { has_same_house_aspiration_as = root.house }
}
}
}
japan_castle_construction_trigger = {
trigger_if = {
limit = {
county.holder ?= {
government_has_flag = government_is_japan_administrative
realm_law_use_imperial_policy_trigger = yes
}
}
custom_tooltip = {
text = japan_castle_construction_trigger_tt
county.holder.top_liege ?= { has_realm_law_flag = disarmament_law }
}
}
}
tgp_bloc_war_transfer_trigger = {
$BLOC_LEADER$ = { save_temporary_scope_as = leader_temp }
save_temporary_scope_as = member_head_temp
NOR = {
# Not leading house
scope:leader_temp.house.house_confederation.leading_house ?= house
# Not sub vassal
trigger_if = {
limit = {
scope:leader_temp = { is_independent_ruler = no }
}
is_vassal_or_below_of = scope:leader_temp
}
# Not friend
has_relation_friend = scope:leader_temp
# Not ally
is_allied_to = scope:leader_temp
# Not hooked
scope:leader_temp = { has_hook = scope:member_head_temp }
# Not terrified
has_dread_level_towards = {
target = scope:leader_temp
level >= 2
}
# Not loyal
has_trait = loyal
}
}
has_japanese_house_aspiration_trigger = {
house ?= {
OR = {
has_house_aspiration_parameter = aspiration_ceremony
has_house_aspiration_parameter = aspiration_determination
has_house_aspiration_parameter = aspiration_humility
has_house_aspiration_parameter = aspiration_prosperity
has_house_aspiration_parameter = aspiration_service
has_house_aspiration_parameter = aspiration_strength
}
}
}