N3OW/common/scripted_triggers/01_fp1_scripted_triggers.txt

360 lines
10 KiB
Text

##################################################
# General Triggers
eligible_for_fp1_dynasty_legacies_trigger = {
has_fp1_dlc_trigger = yes
OR = {
# Technically, we could hardscript this to North Germanics/Normans/Estonians, but eh.
culture = { has_innovation = innovation_longboats }
# Converts should also get a chance to get in on the fun.
religion = religion:germanic_religion
}
}
fp1_can_raise_stele_trigger = {
OR = {
culture = { has_cultural_parameter = has_access_to_runestones }
has_character_modifier = embraced_local_traditions_modifier
}
culture = {
NOT = { has_cultural_era_or_later = culture_era_high_medieval }
}
}
fp1_can_raise_stele_title_scope_trigger = {
culture = {
has_cultural_pillar = heritage_north_germanic
NOT = { has_cultural_era_or_later = culture_era_high_medieval }
}
}
fp1_county_has_stele_trigger = {
OR = {
has_county_modifier = fp1_stele_ancestors_strong
has_county_modifier = fp1_stele_ancestors_weak
has_county_modifier = fp1_stele_conquest_strong
has_county_modifier = fp1_stele_conquest_weak
has_county_modifier = fp1_stele_promotion_strong
has_county_modifier = fp1_stele_promotion_weak
}
}
fp1_eligible_for_yearly_events_trigger = {
has_fp1_dlc_trigger = yes
OR = {
culture = { has_cultural_pillar = heritage_north_germanic }
religion = religion:germanic_religion
}
}
##################################################
# Cultural & Regional Triggers
fp1_is_norse = {
OR = {
culture = { has_cultural_pillar = heritage_north_germanic }
culture = culture:norman
}
}
fp1_is_norse_tribal = {
fp1_is_norse = yes
government_has_flag = government_is_tribal
}
fp1_is_coastal_norse_tribal = {
# Standard checks.
fp1_is_norse_tribal = yes
# Do you have a relevant coastal county somewhere?
any_sub_realm_county = { is_coastal_county = yes }
}
fp1_is_in_scandinavia = {
capital_county.title_province = { geographical_region = world_europe_north }
}
fp1_is_in_scandinavian_colonies = {
capital_county.title_province = {
OR = {
geographical_region = world_europe_west_britannia
geographical_region = dlc_fp1_region_colonial_eastern_europe
}
}
}
fp1_is_in_scandinavia_or_colonies = {
OR = {
fp1_is_in_scandinavia = yes
fp1_is_in_scandinavian_colonies = yes
}
}
fp1_remove_stele_new_holder_trigger = {
# Is there a rogue stone around?
$TITLE$ = { exists = var:stele_commissioner }
# And would the new holder want to tear down the stele?
$NEW_HOLDER$ = {
OR = {
AND = {
exists = dynasty
# E.g., because they're a different family and won't maintain it.
NOT = { dynasty = $PREVIOUS_HOLDER$.dynasty }
}
# Or because they're a subject of the runestone, which means it's memorialising their defeat.
## ... Unless they're a ghost. Damned proctors, I guess.
AND = {
exists = $TITLE$.var:stele_container
exists = $TITLE$.var:stele_scope_type
# Remember not to compare a character with a title.
$TITLE$.var:stele_scope_type = flag:character
this = $TITLE$.var:stele_container
}
}
}
}
is_vaguely_danish_bhakti_trigger = {
OR = {
has_culture = culture:danish
culture = { has_name_list = name_list_danish }
# We deliberately use the de jure rather than the geographical area to make this at least a *little* more fluid.
AND = {
is_playable_character = yes
capital_county.kingdom = title:k_denmark
}
}
}
##################################################
# Varangian Adventure Triggers
fp1_va_eligible_for_scandinavian_troops_trigger = {
# We only give these to North Germanics. I realise we check this elsewhere, but it makes it a bit easier to hijack the CB for other cultures via modding without weirdness.
culture = {
OR = {
has_cultural_pillar = heritage_north_germanic
this = culture:estonian
any_parent_culture_or_above = {
this = culture:estonian #Estonian
}
}
}
# Who hold at least one county in the initial de jure of the mainland Norse kingdoms.
any_sub_realm_county = {
OR = {
title_province = { geographical_region = dlc_fp1_region_core_mainland_scandinavia }
title:k_esthonia = {
is_de_jure_liege_or_above_target = prev
}
}
culture = scope:attacker.culture
faith = scope:attacker.faith
}
}
##################################################
# Illustration Triggers
fp1_should_use_norse_graphics_trigger = {
culture = { has_building_gfx = norse_building_gfx }
}
fp1_should_use_extra_tribal_graphics_trigger = {
should_use_tribal_realm_palace_graphics_trigger = yes
}
##################################################
# Shieldmaiden Triggers
suitable_shieldmaiden_gaoler_trigger = {
#Must be a shieldmaiden.
has_trait = shieldmaiden
NOR = {
#Filter out prisoners that the shieldmaiden would want to see freed.
has_friendly_relationship_trigger = { CHARACTER = root }
#And require that they don't hate their liege.
has_relation_rival = scope:imprisoner
#Make sure they don't really like root, in which case they'd let the escape slide.
opinion = {
target = root
value >= high_positive_opinion
}
#Aaaaand the inverse for actually really hating their host, in which case they don't care about escapees.
opinion = {
target = scope:imprisoner
value <= high_negative_opinion
}
}
}
##################################################
# Interaction Triggers
basic_can_have_trial_by_combat_trigger = {
# This is referenced elsewhere, so we keep it separate in order to allow justification for TbCs outside of interactions.
culture = { has_cultural_parameter = has_access_to_trials_by_combat }
}
can_have_trial_by_combat_trigger = {
# First, evaluate culture to trim down our potentials list.
scope:actor = { basic_can_have_trial_by_combat_trigger = yes }
scope:recipient = { basic_can_have_trial_by_combat_trigger = yes }
}
eligible_knight_to_champion_trial_by_combat_trigger = {
is_available_ai = yes
can_start_single_combat_trigger = yes
}
trial_by_combat_shown_and_not_invalid_trigger = {
# Scope:actor must be able to fight personally.
scope:actor = { can_start_single_combat_trigger = yes }
# Scope:actor cannot challenge someone they have a ceasefire against.
scope:actor = {
NOT = { has_truce = scope:recipient }
}
# Scope:actor *definitely* cannot challenge someone they're at war with.
scope:actor = {
NOT = { is_at_war_with = scope:recipient }
}
}
trial_by_combat_is_valid_trigger = {
# Calc some stuff that might invalidate elsewhere before the bout is sorted.
trial_by_combat_shown_and_not_invalid_trigger = yes
# Must have an imprisonment reason on the character.
scope:actor = { has_imprisonment_reason = scope:recipient }
# Scope:recipient must be able to fight or else have at least *one* designatable champion.
scope:recipient = {
trigger_if = {
limit = {
OR = {
can_start_single_combat_eligibility_checks_trigger = no
NOT = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:recipient }
}
}
}
custom_description = {
text = "fp1_tbc_no_available_champions"
OR = {
any_knight = { eligible_knight_to_champion_trial_by_combat_trigger = yes }
# Can use champion court position too if available
AND = {
employs_court_position = champion_court_position
any_court_position_holder = {
type = champion_court_position
eligible_knight_to_champion_trial_by_combat_trigger = yes #trigger checks for prowess, and while its not mandatory that the champ has a high value, we don't want to trap them into having to use their prowess 3 champ to defend their life
}
}
}
}
}
}
# Scope:recipient must not be banned from single combat.
scope:recipient = {
custom_description = {
text = "fp1_tbc_recipient_banned_from_combat"
can_start_single_combat_banned_checks_trigger = no
}
}
# Neither of the characters can be imprisoned.
scope:actor = { is_imprisoned = no }
scope:recipient = { is_imprisoned = no }
}
##################################################
# Religious Triggers
gruesome_sacrifices_grand_blot_can_continue_trigger = {
# Standard checks. Using a more lenient trigger here because we don't want to cancel the blot if you're in events or go on a hunt
#is_available_at_peace_adult_lenient = yes
scope:activity ?= {
has_activity_type = activity_gruesome_festival
}
}
fp1_valid_norse_faith_for_jomsvikings_trigger = {
religion = religion:germanic_religion
has_doctrine_parameter = unreformed
}
fp1_jomsvikings_have_not_existed_trigger = {
# They've already been destroyed in 1066.
game_start_date < 1000.1.1
NOR = {
# And otherwise can't currently be created.
exists = global_var:jomsvikings_title
# Nor should they have been made via decision or event.
is_target_in_global_variable_list = {
name = unavailable_unique_decisions
target = flag:flag_forged_jomvikings
}
}
}
fp1_valid_county_for_jomsvikings_trigger = {
tier = tier_county
is_coastal_county = yes
custom_description = {
text = forge_the_jomsvikings_decision.tt.is_in_correct_region
title_province = { geographical_region = dlc_fp1_region_non_scandinavian_southern_baltic }
}
any_county_province = {
custom_description = {
text = forge_the_jomsvikings_decision.tt.empty_castle_or_city
OR = {
has_holding = no
has_holding_type = castle_holding
has_holding_type = city_holding
}
}
}
}
##################################################
# Achievement Triggers
fp1_achievement_culture_norse_trigger = {
OR = {
culture = { has_cultural_pillar = heritage_north_germanic }
culture = culture:norman
}
}
fp1_achievement_culture_norse_or_rus_trigger = {
OR = {
fp1_achievement_culture_norse_trigger = yes
culture = culture:russian
}
}
fp1_achievement_religious_norse_trigger = {
religion = religion:germanic_religion
}
fp1_achievement_culture_plus_religion_norse_trigger = {
fp1_achievement_culture_norse_trigger = yes
fp1_achievement_religious_norse_trigger = yes
}
###################################################
# Jomsviking Triggers
fp1_ruler_eligible_for_jomsviking_coup = {
# We never want to coup realms with players who might be affected, so just flat-out ban them.
NOR = {
is_ai = no
any_vassal_or_below = { is_ai = no }
any_liege_or_above = { is_ai = no }
}
# And anyone that's close family to/married to a player.
NOR = {
any_spouse = { is_ai = no }
any_close_or_extended_family_member = { is_ai = no }
}
# Veto anyone following the unreformed Norse pagan faith.
NOT = { faith = faith:norse_pagan }
# For simplicity, exclude wars.
is_at_war = no
}