Minority Community First Draft

This commit is contained in:
Fishedotjpg 2026-02-25 04:40:35 +00:00
parent 51cd212fdd
commit bbd44e2a61
29 changed files with 37281 additions and 184 deletions

View file

@ -0,0 +1,934 @@
###TRIGGER LIST
#has_contagious_deadly_disease_trigger
#is_healthy
#is_available
#is_available_ai
#is_available_adult
#is_available_healthy_adult
#is_available_ai_adult
#is_available_healthy_ai_adult
#is_capable_adult
#is_capable_adult_ai
#liege_is_boss_trigger
#can_select_lifestyle_focus
#can_marry
#can_become_concubine
has_contagious_deadly_disease_trigger = {
has_trait_with_flag = contagious_deadly_disease
}
is_healthy = {
custom_tooltip = {
text = not_poor_health_tt
health >= fine_health
}
NOT = {
has_trait_with_flag = is_healthy_trigger_flag
}
has_contagious_deadly_disease_trigger = no
}
basic_is_available_ai = {
is_available_quick = {
ai = yes
alive = yes
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
}
is_available_allow_travelling = {
is_available_quick = {
alive = yes
imprisoned = no
incapable = no
in_army = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
# Variable set on Mandala succession
custom_tooltip = {
text = busy_in_mandala_succession
NOT = { has_variable = busy_in_mandala_succession }
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available = {
is_available_quick = {
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
# Variable set on Mandala succession
custom_tooltip = {
text = busy_in_mandala_succession
NOT = { has_variable = busy_in_mandala_succession }
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_travelling = {
is_available_quick = {
alive = yes
in_army = no
imprisoned = no
incapable = no
travel = yes
}
has_contagious_deadly_disease_trigger = no
NOR = {
has_character_flag = is_in_task_contract_event_chain
has_variable = gone_adventuring
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_travelling_adult = {
is_available_quick = {
travel = yes
adult = yes
alive = yes
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
NOR = {
has_character_flag = is_in_task_contract_event_chain
has_variable = gone_adventuring
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_travelling_ai_adult = {
is_available_quick = {
travel = yes
adult = yes
ai = yes
alive = yes
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
NOR = {
has_character_flag = is_in_task_contract_event_chain
has_variable = gone_adventuring
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_physically_able = {
is_available_quick = {
alive = yes
imprisoned = no
incapable = no
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_physically_able_ai = {
is_available_quick = {
ai = yes
alive = yes
imprisoned = no
incapable = no
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_physically_able_adult = {
is_available_quick = {
adult = yes
alive = yes
imprisoned = no
incapable = no
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_physically_able_ai_adult = {
is_available_quick = {
ai = yes
adult = yes
alive = yes
imprisoned = no
incapable = no
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_ai = {
is_available_quick = {
ai = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_child = {
is_available_quick = {
adult = no
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_child_allow_travel = {
is_available_quick = {
adult = no
alive = yes
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_ai_child = {
is_available_quick = {
adult = no
ai = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_healthy_child = {
is_available_quick = {
adult = no
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
is_healthy = yes
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_healthy_ai_child = {
is_available_quick = {
ai = yes
adult = no
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
is_healthy = yes
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_adult = {
is_available_quick = {
adult = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_ai_adult = {
is_available_quick = {
ai = yes
adult = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_healthy_adult = {
is_available_quick = {
adult = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
is_healthy = yes
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_healthy_ai_adult = {
is_available_quick = {
ai = yes
adult = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
is_healthy = yes
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
is_available_adult_or_is_commanding = {
OR = {
is_commanding_army = yes
is_available_adult = yes
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_at_peace = {
is_available_quick = {
at_war = no
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_at_peace_adult = {
is_available_quick = {
at_war = no
adult = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_at_peace_ai_adult = {
is_available_quick = {
ai = yes
adult = yes
alive = yes
imprisoned = no
incapable = no
travel = no
in_army = no
at_war = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_available_at_peace_adult_lenient = {
is_available_quick = {
adult = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
at_war = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
# Meaning you may be at war, but you're still located in your capital.
is_available_even_at_war_adult = {
is_available_quick = {
adult = yes
alive = yes
travel = no
in_army = no
imprisoned = no
incapable = no
}
has_contagious_deadly_disease_trigger = no
custom_description = {
text = ALREADY_IN_ACTIVITY
NOR = {
exists = involved_activity
has_variable = {
name = homage_liege_scope
name = meditation_character_flag
name = local_shrine_rite
name = petition_liege_character_flag
name = holding_court_character_flag
}
is_being_visited_on_tour_strict = yes
}
}
custom_description = {
text = ALREADY_PLANNING_ACTIVITY
NOT = { has_character_flag = planning_an_activity }
}
# Variable set within the adventure inspiration events
NOT = { has_variable = gone_adventuring }
}
is_capable_adult = {
is_available_quick = {
adult = yes
incapable = no
}
}
is_capable_adult_ai = {
is_available_quick = {
ai = yes
adult = yes
incapable = no
}
}
can_select_lifestyle_focus = {
is_capable_adult = yes
is_playable_character = yes
}
is_not_hostile_towards_root = {
NOR = {
is_a_faction_member = yes
any_scheme = {
hostile_scheme_trigger = yes
scheme_target_character = root
}
is_at_war_with = root
}
}
player_target_available_for_personal_scheme_ongoing_events_trigger = {
$TARGET$ = {
trigger_if = {
limit = {
is_ai = no
$OWNER$ = { is_ruler = no }
}
is_at_war = no
}
trigger_else = {
always = yes
}
}
}
basic_is_valid_for_yearly_events_trigger = {
is_playable_character = yes
is_available_quick = {
imprisoned = no
incapable = no
}
OR = {
is_travelling = no
has_government = landless_adventurer_government
}
NOR = {
has_character_flag = is_in_task_contract_event_chain
exists = involved_activity
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_valid_for_narrow_yearly_events = {
is_available_quick = {
at_war = no
imprisoned = no
incapable = no
}
is_commanding_army = no
is_playable_character = yes
OR = {
is_travelling = no
has_government = landless_adventurer_government
}
NOR = {
has_character_flag = is_in_task_contract_event_chain
exists = involved_activity
}
}
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
is_valid_for_narrow_yearly_events_adult = {
is_available_quick = {
adult = yes
at_war = no
imprisoned = no
incapable = no
}
is_commanding_army = no
is_playable_character = yes
OR = {
is_travelling = no
has_government = landless_adventurer_government
}
NOR = {
has_character_flag = is_in_task_contract_event_chain
exists = involved_activity
}
}
is_within_diplo_range = {
capital_province ?= {
save_temporary_scope_as = my_capital
$CHARACTER$.capital_province ?= {
squared_distance = {
target = scope:my_capital
value < 200000
}
}
}
}
# This trigger checks if a character is a Nomad
is_nomad = {
government_has_flag = government_is_nomadic
is_ruler = yes
}
# This trigger checks if a character is a landed Nomad
is_landed_nomad = {
government_has_flag = government_is_nomadic
is_available_quick = {
ruler = yes
landed = yes
}
}
# Checks if a character is a landless nomad with a domicile
is_landless_nomad = {
government_has_flag = government_is_nomadic
is_landed = no
has_domicile = yes
}
# This trigger checks if a character is a landless adventurer
is_landless_adventurer = {
OR = {
government_has_flag = government_is_landless_adventurer
government_has_flag = government_is_landless_minority
}
}
# This trigger checks if a character is a governor in an admin realm (implying they are landed)
is_governor = {
government_allows = administrative
is_landed = yes
top_liege != this
OR = {
highest_held_title_tier >= main_administrative_tier
highest_held_title_tier >= min_title_maa_tier
}
tgp_is_ceremonial_liege_trigger = no
}
is_governor_or_admin_count = {
government_allows = administrative
is_landed = yes
top_liege != this
highest_held_title_tier >= tier_county
tgp_is_ceremonial_liege_trigger = no
}
# Checks if a character is a landless house_head within an admin realm
is_landless_administrative = {
government_allows = administrative
is_landed = no
is_house_head = yes
has_domicile = yes
}
# Checks if a character is a landless house_head within a feudal realm
is_landless_soryo = {
government_has_flag = government_is_japan_feudal
is_landed = no
is_house_head = yes
has_domicile = yes
}
# Checks if a character is either landed or an unlanded house head within an admin realm
is_landed_or_landless_administrative = {
OR = {
is_landed = yes
is_landless_administrative = yes
}
}
# Checks if a character is either landed, a landless house head within an admin realm, a landless nomad, a landless adventurer, a landless soryo, or a minister
is_playable_character = {
OR = {
is_landed = yes
is_landless_administrative = yes
is_landless_adventurer = yes
is_landless_nomad = yes
is_landless_soryo = yes
tgp_is_any_minister = yes # To keep ministers playable, regardless of having a nobel family title or not
}
}
roman_restoration_is_valid_roman_empire_trigger = {
is_ai = no
is_roman_emperor_trigger = yes
OR = {
religion = religion:christianity_religion #Either Christian
religion = religion:hellenism_religion #Or Hellenic
}
NOT = { has_ep3_dlc_trigger = yes }
}
is_eunuch_trigger = {
OR = {
has_trait = eunuch_1
has_trait = beardless_eunuch
}
}

View file

@ -0,0 +1,511 @@

character_gender_can_rule_title_trigger = {
trigger_if = {
limit = {
$GENDER$ = { is_male = yes }
exists = $TITLE$
$TITLE$ = {
NOT = {
has_title_law = female_only_law
}
}
}
always = yes
}
trigger_else_if = {
limit = {
$GENDER$ = { is_female = yes }
exists = $TITLE$
$TITLE$ = {
NOT = {
has_title_law = male_only_law
}
}
}
always = yes
}
trigger_else = {
always = no
}
}
character_gender_can_inherit_from_trigger = {
save_temporary_scope_as = heir
trigger_if = {
limit = {
$CHARACTER$ = { exists = primary_title }
}
$CHARACTER$ = {
character_gender_can_rule_title_trigger = {
GENDER = scope:heir
TITLE = primary_title
}
}
}
trigger_else = {
always = no
}
}
has_partition_succession_realm_law_trigger = {
OR = {
has_realm_law = confederate_partition_succession_law
has_realm_law = partition_succession_law
has_realm_law = high_partition_succession_law
has_realm_law = clan_antagonistic_partition_succession_law
has_realm_law = clan_competitive_partition_succession_law
has_realm_law = clan_impassive_partition_succession_law
has_realm_law = clan_friendly_partition_succession_law
has_realm_law = clan_harmonious_partition_succession_law
}
}
realm_law_use_crown_authority = {
government_has_flag = government_uses_crown_authority
}
realm_law_use_tribal_authority = {
government_has_flag = government_is_tribal
}
realm_law_use_camp_purpose = {
government_has_flag = government_is_landless_adventurer
}
realm_law_use_imperial_bureaucracy = {
government_allows = administrative
NOR = {
government_has_flag = government_is_celestial
government_has_flag = government_is_meritocratic
government_has_flag = government_is_steppe_admin
government_has_flag = government_is_japan_administrative
}
}
realm_law_use_nomadic_authority = {
government_has_flag = government_is_nomadic
}
realm_law_use_celestial_bureaucracy = {
government_has_flag = government_is_celestial
}
realm_law_is_mandala = {
government_has_flag = government_is_mandala
}
realm_law_use_meritocratic_bureaucracy = {
OR = {
government_has_flag = government_is_meritocratic
government_has_flag = government_is_steppe_admin
}
}
realm_uses_treasury_laws_trigger = {
government_allows = treasury
}
realm_law_use_japanese_bureaucracy = {
government_is_japanese_trigger = yes
}
can_have_confederate_partition_succession_law_trigger = {
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_tribal
government_has_flag = government_is_minority
# TGP
AND = {
government_has_flag = government_is_japan_feudal
tgp_realm_has_ceremonial_liege_trigger = yes
is_independent_ruler = no
}
}
}
can_keep_partition_succession_law_trigger = {
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
trigger_if = {
limit = {
has_realm_law = partition_succession_law
}
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
}
}
NOT = { government_has_flag = government_is_clan }
}
can_have_partition_succession_law_trigger = {
culture = {
has_innovation = innovation_hereditary_rule
}
custom_description = {
text = succession_laws_must_have_organised_government_tooltip
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_has_flag = government_is_japan_feudal
}
}
}
can_keep_high_partition_succession_law_trigger = {
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
trigger_if = {
limit = {
has_realm_law = high_partition_succession_law
}
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
}
}
NOT = { government_has_flag = government_is_clan}
}
can_have_high_partition_succession_law_trigger = {
trigger_if = {
limit = {
NOT = {
culture = { has_cultural_parameter = can_enact_high_partition_succession_law }
}
}
culture = { has_innovation = innovation_heraldry }
}
custom_description = {
text = succession_laws_must_have_organised_government_tooltip
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_has_flag = government_is_japan_feudal
}
}
}
can_keep_single_heir_succession_law_trigger = {
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
trigger_if = {
limit = {
has_realm_law = single_heir_succession_law
}
OR = {
can_have_single_heir_succession_law_trigger = yes
# Byzantine Empire / Ceremonial Liege
historical_succession_access_single_heir_succession_law_trigger = yes
has_variable = purge_oath_previous_law # ACH Purge Pretenders Oath
}
}
}
can_have_single_heir_succession_law_trigger = {
trigger_if = { # Celestial/Meritocratic/Soryo
limit = {
OR = {
government_allows = merit
government_has_flag = government_is_japan_feudal
}
}
custom_tooltip = { # You are independent, have the innovation or are Ceremonial Monarch
text = can_have_single_heir_succession_law_trigger_merit_or_japan_tt
OR = {
is_independent_ruler = yes
culture = {
has_innovation = innovation_primogeniture
}
tgp_has_ceremonial_liege_title_trigger = yes
}
}
}
trigger_else_if = {
limit = { tgp_realm_has_ceremonial_liege_trigger = yes }
tgp_has_ceremonial_liege_title_trigger = yes
}
trigger_else = {
culture = {
has_innovation = innovation_primogeniture
}
}
# Non-tribals only
trigger_if = { # We split the tooltip into two, to make sure we don't show admin unless you actually have it
limit = {
has_ep3_dlc_trigger = yes
}
custom_tooltip = {
text = must_be_feudal_clan_or_admin
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_allows = administrative
government_has_flag = government_is_japan_feudal
tgp_has_ceremonial_liege_title_trigger = yes
}
}
}
trigger_else = {
custom_description = {
text = succession_laws_must_have_organised_government_tooltip
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_allows = merit
government_has_flag = government_is_japan_feudal
tgp_has_ceremonial_liege_title_trigger = yes
}
}
}
# Admin rules
trigger_if = {
limit = { government_allows = administrative }
trigger_if = {
limit = { tgp_realm_has_ceremonial_liege_trigger = yes }
tgp_has_ceremonial_liege_title_trigger = yes
}
trigger_else = { is_independent_ruler = yes }
}
}
can_keep_single_heir_youngest_succession_law_trigger = {
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
trigger_if = {
limit = {
has_realm_law = single_heir_succession_law_youngest
}
OR = {
can_have_single_heir_youngest_succession_law_trigger = yes
historical_succession_access_single_heir_succession_law_youngest_trigger = yes
}
}
}
can_have_single_heir_youngest_succession_law_trigger = {
culture = {
has_innovation = innovation_primogeniture
}
# Non-tribals only
trigger_if = { # We split the tooltip into two, to make sure we don't show admin unless you actually have it
limit = {
has_ep3_dlc_trigger = yes
}
custom_tooltip = {
text = must_be_feudal_clan_or_admin
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_allows = administrative
government_has_flag = government_is_japan_feudal
}
}
}
trigger_else = {
custom_description = {
text = succession_laws_must_have_organised_government_tooltip
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_has_flag = government_is_japan_feudal
}
}
}
trigger_if = {
limit = {
government_allows = administrative
}
is_independent_ruler = yes
}
}
can_keep_single_heir_dynasty_house_trigger = {
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
trigger_if = {
limit = {
has_realm_law = single_heir_dynasty_house
}
OR = {
can_have_single_heir_dynasty_house_trigger = yes
historical_succession_access_single_heir_dynasty_house_trigger = yes
}
}
}
can_have_single_heir_dynasty_house_trigger = {
exists = house
trigger_if = {
limit = {
culture = {
OR = {
this = culture:czech
this = culture:slovien
any_parent_culture_or_above = {
this = culture:czech
}
any_parent_culture_or_above = {
this = culture:slovien
}
NOT = { has_innovation = innovation_heraldry }
}
}
}
culture = {
has_innovation = innovation_table_of_princes
}
}
trigger_else = {
culture = {
has_innovation = innovation_heraldry
}
}
custom_description = {
text = succession_laws_must_have_organised_government_tooltip
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
government_has_flag = government_is_japan_feudal
}
}
NOT = { government_allows = administrative }
}
can_have_bishop_theocratic_succession_law_trigger = {
OR = {
is_theocratic_lessee = yes
government_has_flag = government_is_theocracy
}
}
is_temporal_head_of_faith_trigger = {
is_head_of_faith = yes
holder.faith = { has_doctrine = doctrine_temporal_head }
}
can_title_have_law_general_trigger = {
tier >= tier_duchy
is_temporal_head_of_faith_trigger = no
}
can_have_holy_order_succession_law_trigger = {
government_has_flag = government_is_holy_order
}
can_have_mercenary_succession_law_trigger = {
government_has_flag = government_is_mercenary
}
can_have_city_succession_law_trigger = {
government_has_flag = government_is_republic
}
can_have_herder_succession_law_trigger = {
government_has_flag = government_is_herder
}
title_can_reduce_partition_law_trigger = {
holder ?= {
OR = {
has_realm_law = single_heir_succession_law
can_have_high_partition_succession_law_trigger = yes
}
OR = {
has_realm_law = high_partition_succession_law
can_have_high_partition_succession_law_trigger = yes
}
OR = {
has_realm_law = partition_succession_law
can_have_confederate_partition_succession_law_trigger = yes
}
}
}
can_pass_law_ca1_trigger = {
culture = { has_innovation = innovation_plenary_assemblies }
}
can_pass_law_ca2_trigger = {
culture = { has_innovation = innovation_royal_prerogative }
}
can_pass_law_ca3_trigger = {
culture = { has_innovation = innovation_royal_prerogative }
}
can_have_acclamation_succession_law_trigger = {
has_ep3_dlc_trigger = yes
top_liege = this
government_allows = administrative
NOR = {
government_has_flag = government_is_celestial
government_has_flag = government_is_japan_administrative
government_has_flag = government_is_meritocratic
government_has_flag = government_is_steppe_admin
}
}
can_keep_acclamation_succession_law_trigger = {
has_ep3_dlc_trigger = yes
trigger_if = {
limit = {
has_realm_law = acclamation_succession_law
}
OR = {
can_have_acclamation_succession_law_trigger = yes
has_title = title:e_byzantium
}
}
}
can_change_acclamation_succession_law_trigger = {
has_ep3_dlc_trigger = yes
}
can_have_appointment_succession_law_trigger = {
has_ep3_dlc_trigger = yes
government_allows = administrative
NOR = {
government_has_flag = government_is_celestial
government_has_flag = government_is_japan_administrative
government_has_flag = government_is_meritocratic
}
is_independent_ruler = no
}
can_keep_appointment_succession_law_trigger = {
has_ep3_dlc_trigger = yes
trigger_if = {
limit = {
has_realm_law = appointment_succession_law
}
can_have_appointment_succession_law_trigger = yes
}
}
can_change_appointment_succession_law_trigger = {
has_ep3_dlc_trigger = yes
}

View file

@ -0,0 +1,176 @@

### Legal trigger list
opposes_succession_law_change_trigger = {
is_imprisoned = no
opinion = {
target = liege
value < 0
}
custom_description = {
text = law_change_approval_is_cowed
has_dread_level_towards = {
target = liege
level < 2
}
}
}
can_change_succession_laws_realm_flag_trigger = {
trigger_if = {
limit = { realm_law_use_tribal_authority = yes }
custom_description = {
text = "has_tribal_law_allowing_succession_law_change"
has_realm_law_flag = can_change_succession_laws
}
}
trigger_else_if = {
limit = { realm_law_use_imperial_bureaucracy = yes }
custom_description = {
text = has_imperial_bureaucracy_law_allowing_succession_law_change
has_realm_law_flag = can_change_succession_laws
}
}
trigger_else = {
custom_description = {
text = "has_crown_law_allowing_succession_law_change"
has_realm_law_flag = can_change_succession_laws
}
}
}
can_change_succession_law_trigger = {
can_change_succession_laws_realm_flag_trigger = yes
custom_description = {
text = "no_powerful_vassal_with_negative_opinion"
NOT = {
any_vassal = {
is_powerful_vassal = yes
opposes_succession_law_change_trigger = yes
}
}
}
}
can_change_single_heir_dynasty_house_succession_law_trigger = {
trigger_if = {
limit = {
culture = {
OR = {
this = culture:czech
this = culture:slovien
any_parent_culture_or_above = {
this = culture:czech
}
any_parent_culture_or_above = {
this = culture:slovien
}
}
}
NOT = {
has_realm_law_flag = can_change_succession_laws
}
}
culture = {
has_innovation = innovation_table_of_princes
}
}
trigger_else = {
can_change_succession_laws_realm_flag_trigger = yes
}
custom_description = {
text = "no_powerful_vassal_with_negative_opinion"
NOT = {
any_vassal = {
is_powerful_vassal = yes
opposes_succession_law_change_trigger = yes
}
}
}
}
can_change_to_equal_succession_law_trigger = {
trigger_if = {
limit = {
NOT = { has_realm_law_flag = can_change_succession_laws }
}
OR = {
culture = { has_cultural_parameter = gender_equal_inheritance }
faith = { has_doctrine = doctrine_gender_equal }
}
}
trigger_else = {
can_change_succession_laws_realm_flag_trigger = yes
}
custom_description = {
text = "no_powerful_vassal_with_negative_opinion"
NOT = {
any_vassal = {
is_powerful_vassal = yes
opposes_succession_law_change_trigger = yes
}
}
}
}
can_change_partition_succession_law_trigger = {
custom_description = {
text = "has_law_allowing_partition_succession_law_change"
OR = {
has_realm_law_flag = can_change_partition_succession_laws
has_realm_law_flag = can_change_succession_laws
}
}
custom_description = {
text = "no_powerful_vassal_with_negative_opinion"
NOT = {
any_vassal = {
is_powerful_vassal = yes
opposes_succession_law_change_trigger = yes
}
}
}
}
## Can this character assign a dedicated heir?
#
# Check if a character can assign some designated heir,
# but not if the heir is a valid candidate.
#
# root: Character that will assign an heir
#
can_designate_heir_trigger = {
trigger_if = {
# Admin always has access to this
limit = { government_allows = administrative }
custom_description = {
text = "has_admin_allowing_designate_heir"
any_held_title = {
is_noble_family_title = yes
}
}
}
trigger_else_if = {
# Feudal and clan can get this by increasing crown authority
limit = { has_realm_law_in_group = crown_authority }
custom_description = {
text = "has_crown_authority_designate_heir"
has_realm_law_flag = can_designate_heirs
}
}
trigger_else = {
# Everyone else also needs a law to gain access to this interaction
custom_description = {
text = "has_law_allowing_designate_heir"
has_realm_law_flag = can_designate_heirs
}
}
}
can_change_title_law_trigger = {
is_at_war = no
}