From cf10d0505256065c0f1c30c940e01ef452eeeddc Mon Sep 17 00:00:00 2001 From: Heidesommer Date: Thu, 28 May 2026 09:09:00 -0400 Subject: [PATCH] Fixing things --- .../coat_of_arms/01_landed_titles.txt | 8 +- .../council_tasks/00_court_chaplain_tasks.txt | 12 + common/culture/creation_names/00_names.txt | 8 +- .../creation_names/00_names_hybrid.txt | 2 +- .../innovations/01_fp1_innovations.txt | 25 +- common/culture/name_lists/NEOW_serbian.txt | 1 + .../culture/traditions/07_ep3_traditions.txt | 677 +++++ .../00_es_custom_loc.txt | 12 +- .../00_pl_custom_loc.txt | 4 +- .../10_culture_conversion_decisions.txt | 190 +- common/decisions/10_nomad_other_decisions.txt | 6 +- common/decisions/80_major_decisions_roman.txt | 732 ++--- common/decisions/90_minor_decisions.txt | 247 +- .../bp3/00_bp3_other_decisions.txt | 8 +- .../decisions/dlc_decisions/ep3_decisions.txt | 342 +-- .../06_ep3_hasan_story_cycle_decisions.txt | 979 +++---- .../06_ep3_separatist_uprising_decision.txt | 8 +- common/landed_titles/greece.txt | 48 - .../legends/legend_seeds/00_legend_seeds.txt | 2 +- common/men_at_arms_types/NEOW_maa_types.txt | 6 +- common/on_action/combat_on_actions.txt | 743 ++++++ common/on_action/death.txt | 44 +- common/on_action/travel_on_actions.txt | 2 +- .../01_province_properties.txt | 20 +- .../scripted_effects/00_decisions_effects.txt | 6 +- .../06_dlc_ce1_legend_effects.txt | 6 +- .../00_major_decision_triggers.txt | 4 +- .../01_fp1_scripted_triggers.txt | 361 +++ .../artifacts/historical_artifacts_events.txt | 4 +- events/dlc/ep3/ep3_decisions_events.txt | 24 +- events/dlc/ep3/ep3_laamp_events.txt | 404 +++ events/dlc/fp1/fp1_jomsvikings_events.txt | 20 +- events/dlc/fp1/fp1_major_decision_events.txt | 2 +- events/dlc/fp1/fp1_yearly_events_oltner.txt | 4 +- .../fp3_story_cycle_zanj_rebellion_events.txt | 1452 +++++----- .../dlc/fp3/fp3_yearly_events_ola_batch_1.txt | 2 +- events/war_events/combat_events.txt | 2376 +++++++++++++++++ events/war_events/raid_events.txt | 1488 +++++++++++ .../scripted_illustrations/ingame.txt | 62 +- history/provinces/e_makedon.txt | 2 +- history/provinces/e_nistrenia.txt | 6 +- .../common/landed_titles/0.15_MAP.txt | 2 +- .../common/landed_titles/greece.txt | 2 +- .../common/landed_titles/nistrenia.txt | 16 +- .../geographical_region.txt | 94 +- 45 files changed, 8242 insertions(+), 2221 deletions(-) create mode 100644 common/culture/traditions/07_ep3_traditions.txt create mode 100644 common/on_action/combat_on_actions.txt create mode 100644 common/scripted_triggers/01_fp1_scripted_triggers.txt create mode 100644 events/war_events/combat_events.txt create mode 100644 events/war_events/raid_events.txt diff --git a/common/coat_of_arms/coat_of_arms/01_landed_titles.txt b/common/coat_of_arms/coat_of_arms/01_landed_titles.txt index 05101963..0f200857 100644 --- a/common/coat_of_arms/coat_of_arms/01_landed_titles.txt +++ b/common/coat_of_arms/coat_of_arms/01_landed_titles.txt @@ -13813,7 +13813,7 @@ d_wielkopolska = { } } -d_augsburg = { +d_bavarian_swabia = { pattern = "pattern_solid.dds" color1 = "red" color2 = "white" @@ -13825,7 +13825,7 @@ d_augsburg = { } } -d_nordgau = { +d_east_franconia = { pattern = "pattern_solid.dds" color1 = "blue" color2 = "yellow" @@ -15168,7 +15168,7 @@ d_epirus = { } } -d_achaia = { +d_peloponnese = { pattern = "pattern_solid.dds" color1 = "yellow" color2 = "black" @@ -23848,7 +23848,7 @@ c_viennois = { } } -d_augsburg = { +d_bavarian_swabia = { pattern = "pattern_solid.dds" color1 = "red" color2 = "white" diff --git a/common/council_tasks/00_court_chaplain_tasks.txt b/common/council_tasks/00_court_chaplain_tasks.txt index e5251b98..5a509c07 100644 --- a/common/council_tasks/00_court_chaplain_tasks.txt +++ b/common/council_tasks/00_court_chaplain_tasks.txt @@ -978,6 +978,18 @@ task_conversion = { scope:councillor_liege.religion = { is_in_family = rf_abrahamic } scope:county.religion = { is_in_family = rf_abrahamic } } + AND = { + scope:councillor_liege.religion = { is_in_family = rf_esoteric } + scope:county.religion = { is_in_family = rf_esoteric } + } + AND = { + scope:councillor_liege.religion = { is_in_family = rf_antediluvianist } + scope:county.religion = { is_in_family = rf_antediluvianist } + } + AND = { + scope:councillor_liege.religion = { is_in_family = rf_sinitic } + scope:county.religion = { is_in_family = rf_sinitic } + } } } OR = { diff --git a/common/culture/creation_names/00_names.txt b/common/culture/creation_names/00_names.txt index a5cea73e..43c35bad 100644 --- a/common/culture/creation_names/00_names.txt +++ b/common/culture/creation_names/00_names.txt @@ -839,7 +839,7 @@ nomadic_house_name = { # any_sub_realm_county = { # culture = culture:russian # OR = { -# duchy = title:d_kiev +# duchy = title:d_kyiv # duchy = title:d_halych # duchy = title:d_cherven_cities # duchy = title:d_volhynia @@ -848,9 +848,9 @@ nomadic_house_name = { # duchy = title:d_minsk # duchy = title:d_grodno # duchy = title:d_chernigov -# duchy = title:d_pereyaslavl -# duchy = title:d_yedisan -# duchy = title:d_levedia +# duchy = title:d_poltava +# duchy = title:d_dnipro +# duchy = title:d_kharkiv # duchy = title:d_voronezh # duchy = title:d_khopyor # duchy = title:d_don_valley diff --git a/common/culture/creation_names/00_names_hybrid.txt b/common/culture/creation_names/00_names_hybrid.txt index 3a7202dc..18ed3e43 100644 --- a/common/culture/creation_names/00_names_hybrid.txt +++ b/common/culture/creation_names/00_names_hybrid.txt @@ -119,7 +119,7 @@ nomadic_house_name_hybrid = { # scope:other_culture = culture:anglo_saxon # } # } -# NOT = { religion = religion:germanic_religion } # Norse followers should become Anglo-Norse +# NOT = { religion = religion:folkgerman_religion } # Norse followers should become Anglo-Norse # } # hybrid = yes #} diff --git a/common/culture/innovations/01_fp1_innovations.txt b/common/culture/innovations/01_fp1_innovations.txt index fe4899df..e4aa3b38 100644 --- a/common/culture/innovations/01_fp1_innovations.txt +++ b/common/culture/innovations/01_fp1_innovations.txt @@ -44,20 +44,21 @@ innovation_varangian_adventurers = { potential = { has_fp1_dlc_trigger = yes - OR = { - has_innovation = innovation_varangian_adventurers - has_cultural_pillar = heritage_north_germanic - -# # Frankish -# this = culture:norman + always = no +# OR = { +# has_innovation = innovation_varangian_adventurers +# has_cultural_pillar = heritage_north_germanic +# +## # Frankish +## this = culture:norman +## any_parent_culture_or_above = { +## this = culture:norse #Norman +## } +# this = culture:estonian # any_parent_culture_or_above = { -# this = culture:norse #Norman +# this = culture:estonian #Estonian # } - this = culture:estonian - any_parent_culture_or_above = { - this = culture:estonian #Estonian - } - } +# } NOT = { has_cultural_era_or_later = culture_era_early_medieval } } diff --git a/common/culture/name_lists/NEOW_serbian.txt b/common/culture/name_lists/NEOW_serbian.txt index dba1fcc1..81d0e2b3 100644 --- a/common/culture/name_lists/NEOW_serbian.txt +++ b/common/culture/name_lists/NEOW_serbian.txt @@ -170,6 +170,7 @@ name_list_NEOW_serbian = { Uro_s_crn_ Uglje_s_crn_a Vojislav Vladan Vuka_s_crn_in Vasilije Vuk Zlatan Zoran + } } female_names = { 3 = { diff --git a/common/culture/traditions/07_ep3_traditions.txt b/common/culture/traditions/07_ep3_traditions.txt new file mode 100644 index 00000000..d886b3a2 --- /dev/null +++ b/common/culture/traditions/07_ep3_traditions.txt @@ -0,0 +1,677 @@ +####################### +# CULTURAL TRADITIONS # +####################### + +###################### +# EP3 Traditions # +###################### + +tradition_ep3_indomitable_azatani = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = indomitable_azatani.dds + } + + is_shown = { + OR = { + this = culture:armenian + any_parent_culture_or_above = { + this = culture:armenian + } + } + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_horse_breeder + } + } + can_pick = { + culture_not_pacifistic_trigger = yes + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOT = { scope:replacing = culture_tradition:tradition_horse_breeder } + } + } + NOT = { has_cultural_tradition = tradition_horse_breeder } #To prevent stacking after hybridization + } + } + + parameters = { + unlock_maa_ayrudzi = yes + house_hostility_more_common = yes + vassals_more_likely_to_refuse_demands = yes + } + character_modifier = { + light_cavalry_maintenance_mult = -0.15 + heavy_cavalry_maintenance_mult = -0.15 + archer_cavalry_maintenance_mult = -0.15 + light_cavalry_damage_mult = 0.2 + heavy_cavalry_damage_mult = 0.2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + scope:character = { + NOR = { # Culture Head need to have a 8 sized regiment of either Light/Heavy/Archer Cavalry + number_maa_soldiers_of_base_type = { + type = light_cavalry + value >= 800 + } + number_maa_soldiers_of_base_type = { + type = heavy_cavalry + value >= 400 + } + number_maa_soldiers_of_base_type = { + type = archer_cavalry + value >= 800 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_cavalry_desc + } + } + + if = { + limit = { + culture_tradition_reduction_trigger = { TRADITION = tradition_ep3_indomitable_azatani } + } + multiply = { + value = 0.5 + desc = inspired_by_culture_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Reduce chance slightly if the culture has access to other "cavalry" types + OR = { + has_innovation = innovation_war_camels + has_innovation = innovation_elephantry + } + } + multiply = 0.4 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_ep3_audacious_cadets = { + category = regional + + layers = { + 0 = martial + 1 = western + 4 = audacious_cadets.dds + } + + is_shown = { + OR = { + this = culture:norman + any_parent_culture_or_above = { + this = culture:norman + } + } + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_swords_for_hire + } + } + can_pick = { + culture_not_pacifistic_trigger = yes + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOT = { scope:replacing = culture_tradition:tradition_swords_for_hire } + } + } + NOT = { has_cultural_tradition = tradition_swords_for_hire } #To prevent stacking after hybridization + } + } + + parameters = { + unlock_maa_conrois = yes + unlock_voluntary_laampdom = yes + much_more_likely_to_be_laamps = yes + ambitious_trait_more_common = yes + wanderers_gain_extra_combat_skills = yes + mercenary_courtiers_gain_extra_skills = yes + more_likely_to_leave_court = yes + } + character_modifier = { + heavy_cavalry_damage_mult = 0.2 + heavy_cavalry_pursuit_mult = 0.2 + heavy_cavalry_max_size_add = 2 + siege_phase_time = -0.1 + ai_honor = -20 + ai_war_chance = 0.5 + ai_war_cooldown = -0.25 + same_culture_mercenary_hire_cost_mult = -0.15 + character_travel_speed_mult = 0.1 + character_travel_safety_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_desc + } + } + if = { + limit = { + scope:character = { + NOR = { # Culture Head need to have a 8 sized regiment of either Light/Heavy/Archer Cavalry + number_maa_soldiers_of_base_type = { + type = heavy_cavalry + value >= 400 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_heavy_cavalry_desc + } + } + + if = { + limit = { + culture_tradition_reduction_trigger = { TRADITION = tradition_ep3_audacious_cadets } + } + multiply = { + value = 0.5 + desc = inspired_by_culture_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + culture_has_heavy_cavalry_maa = yes + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_ep3_imperial_tagmata = { + category = regional + + layers = { + 0 = martial + 1 = mediterranean + 4 = imperial_tagmata.dds + } + + is_shown = { + has_cultural_pillar = heritage_greek + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_roman_legacy + } + } + can_pick = { + } + + parameters = { + unlock_maa_cataphract = yes + unlock_maa_akritai = yes + unlock_maa_ballistrai = yes + unlock_maa_skoutatoi = yes + frontier_themes_borrow_neighbor_troops = yes + } + character_modifier = { + heavy_cavalry_max_size_add = 2 + counter_efficiency = 0.1 + knight_effectiveness_mult = -0.25 + men_at_arms_title_limit = 1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_bureaucratic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_held_title = { + tier = tier_county + count >= 8 + any_county_province = { + has_building_or_higher = stables_01 + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = domain_counties_with_stables_desc + } + } + + if = { + limit = { + culture_tradition_reduction_trigger = { TRADITION = tradition_ep3_imperial_tagmata } + } + multiply = { + value = 0.5 + desc = inspired_by_culture_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { # Admin should be more into this + scope:character = { + government_allows = administrative + } + } + multiply = 2 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_ep3_roman_ceremonies = { + category = regional + + layers = { + 0 = diplo + 1 = mediterranean + 4 = roman_ceremonies.dds + } + + is_shown = { + has_cultural_pillar = heritage_greek + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_byzantine_succession + } + } + can_pick = { + } + + parameters = { + holds_triumphs = yes + hosts_chariot_races = yes + children_can_be_born_in_the_purple = yes + # We use the co-emperors parameter for most things... + unlock_co_emperors = yes + # ... which means the junior emperor parameter is _mostly_ just here for the loc. + unlock_junior_emperors = yes + #byzantine_faction_preffered_claimants = yes + } + county_modifier = { + county_opinion_add = -10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_courtly_or_egalitarian_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 50 + any_county_province = { + geographical_region = custom_eastern_roman_empire + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_roman_empire_desc + } + } + + if = { + limit = { + culture_tradition_reduction_trigger = { TRADITION = tradition_ep3_roman_ceremonies } + } + multiply = { + value = 0.5 + desc = inspired_by_culture_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Admin should be more into this + scope:character = { + government_allows = administrative + } + } + multiply = 2 + } + } +} + +tradition_ep3_palace_politics = { + category = regional + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = palace_politics.dds + } + + is_shown = { + has_cultural_pillar = heritage_greek + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_byzantine_succession + } + } + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_court_eunuchs + NOT = { culture_tradition:tradition_court_eunuchs = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_tradition_merciful_blindings + NOT = { culture_tradition:tradition_merciful_blindings = { is_in_list = traits } } + } + } + + parameters = { + unlock_maa_varangian_guards = yes + unlock_akolouthos = yes + reduced_bodyguard_aptitude = yes + can_blind_prisoners = yes + can_castrate_prisoners = yes + eunuch_trait_bonuses = yes + can_appoint_chief_eunuch = yes + family_castration = yes + ambitious_trait_more_common = yes + physical_disfigurement_blocks_inheritance = yes # Blocks claimant factions, claim wars, and reduce score in elective and acclamation. Also includes infertility for tooltip reasons. + cultrad_unlocks_t2_countermeasures = yes + palace_politics_trait_bonuses = yes + palace_politics_trait_maluses = yes + } + character_modifier = { + monthly_court_grandeur_change_mult = 0.2 + political_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + personal_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_courtly_or_spiritual_desc + } + } + if = { + limit = { + has_dlc_feature = royal_court + OR = { + scope:character = { has_royal_court = no } + NOT = { + scope:character = { + court_grandeur_current_level >= very_high_court_grandeur_level + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_court_grandeur_desc + } + } + + if = { + limit = { + culture_tradition_reduction_trigger = { TRADITION = tradition_ep3_palace_politics } + } + multiply = { + value = 0.5 + desc = inspired_by_culture_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Admin should be more into this + scope:character = { + government_allows = administrative + } + } + multiply = 2 + } + } +} + +tradition_ep3_cultivated_sophistication = { + category = societal + + layers = { + 0 = learning + 1 = mediterranean + 4 = cultivated_sophistication.dds + } + + is_shown = { + # DLC check. + has_ep3_dlc_trigger = yes + } + can_pick = { + custom_tooltip = { + text = must_have_administrative_government_tt + scope:character = { government_allows = administrative } + } + } + + parameters = { + less_likely_to_culture_convert = yes + other_cultures_more_likely_to_hybridize = yes + estate_building_upgrade_development_gain = yes + allows_noble_family_adoption = yes + } + character_modifier = { + monthly_influence_mult = 0.1 + diplomatic_range_mult = 0.2 + cultural_head_fascination_mult = -0.10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_courtly_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + capital_county ?= { + tier = tier_county + development_level >= 30 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = capital_province_development_level_desc + } + } + + if = { + limit = { + culture_tradition_reduction_trigger = { TRADITION = tradition_ep3_cultivated_sophistication } + } + multiply = { + value = 0.5 + desc = inspired_by_culture_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Admin should be more into this + has_cultural_pillar = heritage_greek + } + multiply = 2 + } + } +} diff --git a/common/customizable_localization/00_es_custom_loc.txt b/common/customizable_localization/00_es_custom_loc.txt index 9f126c25..09fedf98 100644 --- a/common/customizable_localization/00_es_custom_loc.txt +++ b/common/customizable_localization/00_es_custom_loc.txt @@ -2624,7 +2624,7 @@ # religion = religion:paganism_religion # religion = religion:taoism_religion # religion = religion:bon_religion -# religion = religion:germanic_religion +# religion = religion:folkgerman_religion # religion = religion:tengrism_religion # religion = religion:west_african_religion # religion = religion:west_african_bori_religion @@ -2826,7 +2826,7 @@ # religion = religion:paganism_religion # religion = religion:taoism_religion # religion = religion:bon_religion -# religion = religion:germanic_religion +# religion = religion:folkgerman_religion # religion = religion:tengrism_religion # religion = religion:west_african_religion # religion = religion:west_african_bori_religion @@ -3028,7 +3028,7 @@ # religion = religion:paganism_religion # religion = religion:taoism_religion # religion = religion:bon_religion -# religion = religion:germanic_religion +# religion = religion:folkgerman_religion # religion = religion:tengrism_religion # religion = religion:west_african_religion # religion = religion:west_african_bori_religion @@ -3236,7 +3236,7 @@ # religion = religion:paganism_religion # religion = religion:taoism_religion # religion = religion:bon_religion -# religion = religion:germanic_religion +# religion = religion:folkgerman_religion # religion = religion:tengrism_religion # religion = religion:west_african_religion # religion = religion:west_african_bori_religion @@ -3444,7 +3444,7 @@ # religion = religion:paganism_religion # religion = religion:taoism_religion # religion = religion:bon_religion -# religion = religion:germanic_religion +# religion = religion:folkgerman_religion # religion = religion:tengrism_religion # religion = religion:west_african_religion # religion = religion:west_african_bori_religion @@ -3652,7 +3652,7 @@ # religion = religion:paganism_religion # religion = religion:taoism_religion # religion = religion:bon_religion -# religion = religion:germanic_religion +# religion = religion:folkgerman_religion # religion = religion:tengrism_religion # religion = religion:west_african_religion # religion = religion:west_african_bori_religion diff --git a/common/customizable_localization/00_pl_custom_loc.txt b/common/customizable_localization/00_pl_custom_loc.txt index 33acf26d..12fc048d 100644 --- a/common/customizable_localization/00_pl_custom_loc.txt +++ b/common/customizable_localization/00_pl_custom_loc.txt @@ -101,13 +101,13 @@ # # text = { # localization_key = gruesomefestivalname_blot -# trigger = { faith.religion = religion:germanic_religion } +# trigger = { faith.religion = religion:folkgerman_religion } # } # # text = { # localization_key = gruesomefestivalname_festival # trigger = { -# NOT = { faith.religion = religion:germanic_religion } +# NOT = { faith.religion = religion:folkgerman_religion } # } # fallback = yes # } diff --git a/common/decisions/10_culture_conversion_decisions.txt b/common/decisions/10_culture_conversion_decisions.txt index c9f8d73d..e074f6a7 100644 --- a/common/decisions/10_culture_conversion_decisions.txt +++ b/common/decisions/10_culture_conversion_decisions.txt @@ -139,23 +139,23 @@ convert_to_local_culture_decision = { } add_stress = major_stress_gain } - # Struggle Catalysts - if = { - limit = { - any_character_struggle = { - involvement = involved - phase_has_catalyst = catalyst_convert_local_culture_faith - is_culture_involved_in_struggle = root.capital_province.culture - } - } - every_character_struggle = { - involvement = involved - activate_struggle_catalyst = { - catalyst = catalyst_convert_local_culture_faith - character = root - } - } - } +# # Struggle Catalysts +# if = { +# limit = { +# any_character_struggle = { +# involvement = involved +# phase_has_catalyst = catalyst_convert_local_culture_faith +# is_culture_involved_in_struggle = root.capital_province.culture +# } +# } +# every_character_struggle = { +# involvement = involved +# activate_struggle_catalyst = { +# catalyst = catalyst_convert_local_culture_faith +# character = root +# } +# } +# } convert_family_culture_and_notify_vassals_effect = { CONVERTER = root @@ -252,28 +252,28 @@ convert_to_local_culture_decision = { } } - modifier = { # Farewell, norse culture (unless the player is running a norse empire) - add = 200 - OR = { - top_liege = this - AND = { - top_liege != this - NOT = { - any_liege_or_above = { - culture = culture:norse - } - } - } - } - culture = culture:norse - capital_province.culture = { - OR = { - this = culture:swedish - this = culture:norwegian - this = culture:danish - } - } - } +# modifier = { # Farewell, norse culture (unless the player is running a norse empire) +# add = 200 +# OR = { +# top_liege = this +# AND = { +# top_liege != this +# NOT = { +# any_liege_or_above = { +# culture = culture:norse +# } +# } +# } +# } +# culture = culture:norse +# capital_province.culture = { +# OR = { +# this = culture:swedish +# this = culture:norwegian +# this = culture:danish +# } +# } +# } # modifier = { # Iberian Struggle modifiers # any_character_struggle = { @@ -341,29 +341,29 @@ convert_to_local_culture_decision = { } } - # Some cultures should not assimilate to certain others - modifier = { - factor = 0 - has_culture = culture:andalusian - capital_province = { - culture = { has_cultural_pillar = heritage_iberian } - } - NOT = { - capital_province = { - culture = { - is_hybrid_culture = yes - any_parent_culture_or_above = { - this = root.culture - } - } - } - } - } - modifier = { - factor = 0 - culture = { has_cultural_pillar = heritage_iberian } - capital_province.culture = culture:andalusian - } +# # Some cultures should not assimilate to certain others +# modifier = { +# factor = 0 +# has_culture = culture:andalusian +# capital_province = { +# culture = { has_cultural_pillar = heritage_iberian } +# } +# NOT = { +# capital_province = { +# culture = { +# is_hybrid_culture = yes +# any_parent_culture_or_above = { +# this = root.culture +# } +# } +# } +# } +# } +# modifier = { +# factor = 0 +# culture = { has_cultural_pillar = heritage_iberian } +# capital_province.culture = culture:andalusian +# } # # Don't overwrite historically scripted developments # modifier = { @@ -374,33 +374,33 @@ convert_to_local_culture_decision = { # } # capital_province.culture = culture:anglo_saxon # } - modifier = { - factor = 0 - has_culture = culture:turkish - capital_province = { - culture = { - OR = { - has_cultural_pillar = heritage_byzantine - has_cultural_pillar = heritage_caucasian - } - } - } - NOT = { - capital_province = { - culture = { - is_hybrid_culture = yes - any_parent_culture_or_above = { - this = root.culture - } - } - } - } - } - modifier = { - factor = 0 - has_culture = culture:turkish - primary_title.tier >= tier_empire - } +# modifier = { +# factor = 0 +# has_culture = culture:turkish +# capital_province = { +# culture = { +# OR = { +# has_cultural_pillar = heritage_byzantine +# has_cultural_pillar = heritage_caucasian +# } +# } +# } +# NOT = { +# capital_province = { +# culture = { +# is_hybrid_culture = yes +# any_parent_culture_or_above = { +# this = root.culture +# } +# } +# } +# } +# } +# modifier = { +# factor = 0 +# has_culture = culture:turkish +# primary_title.tier >= tier_empire +# } # modifier = { # factor = 0 # OR = { @@ -444,12 +444,12 @@ convert_to_local_culture_decision = { # } # } - # Scots needs a bit of help to dominate as it did historically - modifier = { - factor = 0 - has_culture = culture:scottish - capital_province.culture = culture:gaelic - } +# # Scots needs a bit of help to dominate as it did historically +# modifier = { +# factor = 0 +# has_culture = culture:scottish +# capital_province.culture = culture:gaelic +# } # # Pictish should usually disappear # modifier = { diff --git a/common/decisions/10_nomad_other_decisions.txt b/common/decisions/10_nomad_other_decisions.txt index 56a9acf9..d2624a78 100644 --- a/common/decisions/10_nomad_other_decisions.txt +++ b/common/decisions/10_nomad_other_decisions.txt @@ -361,9 +361,9 @@ summon_fair_courtiers_decision = { # completely_controls = title:d_tana # completely_controls = title:d_don_valley # OR = { -# completely_controls = title:d_itil -# completely_controls = title:d_red_levedia -# completely_controls = title:d_levedia +# completely_controls = title:d_astrakhan +# completely_controls = title:d_zaporizhzhia +# completely_controls = title:d_kharkiv # } # } # } diff --git a/common/decisions/80_major_decisions_roman.txt b/common/decisions/80_major_decisions_roman.txt index 4a4cf5af..fde53f4b 100644 --- a/common/decisions/80_major_decisions_roman.txt +++ b/common/decisions/80_major_decisions_roman.txt @@ -413,100 +413,100 @@ # } #} # -### Mend the Great Schism ### -mend_the_great_schism_decision = { - picture = { - reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" - } - desc = mend_the_great_schism_decision_desc - selection_tooltip = mend_the_great_schism_decision_tooltip - decision_group_type = major - - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 0 - kingdom = 0 - empire = 120 - hegemony = 120 - } - - is_shown = { - is_ruler = yes - is_playable_character = yes - faith.religion = faith:roman_catholic.religion #Christian Only - NOT = { #Can only do it once. - is_target_in_global_variable_list = { - name = unavailable_unique_decisions - target = flag:flag_mended_great_schism - } - } - highest_held_title_tier > 4 #Only Emperors - } - - is_valid = { - piety_level >= max_piety_level - completely_controls = title:c_byzantion - completely_controls = title:c_antiocheia - completely_controls = title:c_jerusalem - completely_controls = title:c_alexandria - completely_controls = title:c_roma - custom_description = { - text = "mend_schism_byzantion_bishop" - title:c_byzantion.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. - } - custom_description = { - text = "mend_schism_antiocheia_bishop" - title:c_antiocheia.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. - } - custom_description = { - text = "mend_schism_jerusalem_bishop" - title:c_jerusalem.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. - } - custom_description = { - text = "mend_schism_alexandria_bishop" - title:c_alexandria.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. - } - custom_description = { - text = "mend_schism_roma_bishop" - title:c_roma.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. - } - custom_description = { - text = "mend_schism_no_rite" - root.faith = { NOT = { has_doctrine_parameter = maintains_head_of_faith_on_creation } } - } - } - - is_valid_showing_failures_only = { - is_landed = yes - is_capable_adult = yes - is_imprisoned = no - top_liege = this - } - - effect = { - gain_holy_legend_seed_tooltip_effect = yes - custom_tooltip = mend_the_great_schism_decision_effect_tooltip - show_as_tooltip = { - mend_great_schism_scripted_effect = yes - } - trigger_event = roman_restoration.0100 - hidden_effect = { - add_to_global_variable_list = { - name = unavailable_unique_decisions - target = flag:flag_mended_great_schism - } - } - } - - ai_potential = { - always = yes - } - - ai_will_do = { - base = 100 - } -} +#### Mend the Great Schism ### +#mend_the_great_schism_decision = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" +# } +# desc = mend_the_great_schism_decision_desc +# selection_tooltip = mend_the_great_schism_decision_tooltip +# decision_group_type = major +# +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 0 +# kingdom = 0 +# empire = 120 +# hegemony = 120 +# } +# +# is_shown = { +# is_ruler = yes +# is_playable_character = yes +# faith.religion = faith:roman_catholic.religion #Christian Only +# NOT = { #Can only do it once. +# is_target_in_global_variable_list = { +# name = unavailable_unique_decisions +# target = flag:flag_mended_great_schism +# } +# } +# highest_held_title_tier > 4 #Only Emperors +# } +# +# is_valid = { +# piety_level >= max_piety_level +# completely_controls = title:c_byzantion +# completely_controls = title:c_antiocheia +# completely_controls = title:c_jerusalem +# completely_controls = title:c_alexandria +# completely_controls = title:c_roma +# custom_description = { +# text = "mend_schism_byzantion_bishop" +# title:c_byzantion.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. +# } +# custom_description = { +# text = "mend_schism_antiocheia_bishop" +# title:c_antiocheia.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. +# } +# custom_description = { +# text = "mend_schism_jerusalem_bishop" +# title:c_jerusalem.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. +# } +# custom_description = { +# text = "mend_schism_alexandria_bishop" +# title:c_alexandria.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. +# } +# custom_description = { +# text = "mend_schism_roma_bishop" +# title:c_roma.holder.faith = root.faith #Either own County directly, or have a vassal of same religion. +# } +# custom_description = { +# text = "mend_schism_no_rite" +# root.faith = { NOT = { has_doctrine_parameter = maintains_head_of_faith_on_creation } } +# } +# } +# +# is_valid_showing_failures_only = { +# is_landed = yes +# is_capable_adult = yes +# is_imprisoned = no +# top_liege = this +# } +# +# effect = { +# gain_holy_legend_seed_tooltip_effect = yes +# custom_tooltip = mend_the_great_schism_decision_effect_tooltip +# show_as_tooltip = { +# mend_great_schism_scripted_effect = yes +# } +# trigger_event = roman_restoration.0100 +# hidden_effect = { +# add_to_global_variable_list = { +# name = unavailable_unique_decisions +# target = flag:flag_mended_great_schism +# } +# } +# } +# +# ai_potential = { +# always = yes +# } +# +# ai_will_do = { +# base = 100 +# } +#} # #### Reclaim Constantinople ### #set_capital_constantinople_decision = { @@ -789,277 +789,277 @@ mend_the_great_schism_decision = { # } #} # -### Restore the Papacy ### -restore_papacy_decision = { - picture = { - reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" - } - desc = restore_papacy_decision_desc - selection_tooltip = restore_papacy_decision_tooltip - decision_group_type = major - - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 0 - kingdom = 12 - empire = 12 - hegemony = 12 - } - - is_shown = { - is_ruler = yes - is_playable_character = yes - religion = religion:catholic_religion - NOT = { faith = { exists = religious_head } } - highest_held_title_tier > 3 #Only Kings and Emperors - } - - is_valid = { - completely_controls = title:c_roma - completely_controls = title:d_latium - completely_controls = title:d_spoleto - completely_controls = title:d_ancona - completely_controls = title:d_romagna - piety_level >= high_piety_level - } - - is_valid_showing_failures_only = { - is_landed = yes - is_capable_adult = yes - is_imprisoned = no - top_liege = this - } - - effect = { - custom_tooltip = restore_papacy_decision_effect_tooltip - show_as_tooltip = { - restore_papacy_scripted_effect = yes - } - trigger_event = { - id = roman_restoration.0124 - } - } - - ai_potential = { - religion = religion:catholic_religion - highest_held_title_tier > 3 #Only Kings and Emperors - NOT = { faith = { exists = religious_head } } - } - - ai_will_do = { #Always do it when possible. - base = 100 - ai_value_modifier = { - ai_zeal = 1.0 - } - modifier = { - factor = 0 - has_trait = cynical - } - } -} - -### Restore Pope in Rome ### -restore_pope_in_rome_decision = { - picture = { - reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" - } - desc = restore_pope_in_rome_decision_desc - selection_tooltip = restore_pope_in_rome_decision_tooltip - decision_group_type = major - - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 0 - kingdom = 12 - empire = 12 - hegemony = 12 - } - - is_shown = { - is_ruler = yes - is_playable_character = yes - religion = religion:catholic_religion - NOR = { - has_title = title:k_papal_state - is_roman_emperor_excluding_byzantium_trigger = yes - } - NOT = { title:c_roma.holder = { has_title = title:k_papal_state } } - NOT = { capital_county = { this = title:c_roma } } - title:k_papal_state.holder ?= { - NOT = { - has_opinion_modifier = { #Not accepting it if you conquered it yourself. - target = root - modifier = declared_war - } - } - NOT = { - has_opinion_modifier = { #Not accepting it if you conquered it yourself. - target = root - modifier = revoked_title - } - } - } - NOT = { has_character_flag = flag_already_given_rome_once } - } - - is_valid_showing_failures_only = { - is_landed = yes - is_capable_adult = yes - is_imprisoned = no - top_liege = this - highest_held_title_tier > 3 #Only Kings and Emperors - custom_tooltip = { - text = hof_exists_tt - faith = { exists = religious_head } - } - custom_tooltip = { - text = rome_held_by_you_or_vassal_tt - OR = { - title:c_roma.holder = { - any_liege_or_above = { this = root } - } - title:c_roma.holder = { this = root } - } - } - } - - effect = { - add_piety = 1000 - add_character_flag = flag_already_given_rome_once - create_title_and_vassal_change = { - type = returned - save_scope_as = change - add_claim_on_loss = no - } - title:c_roma = { - change_title_holder = { - holder = title:k_papal_state.holder - change = scope:change - } - } - resolve_title_and_vassal_change = scope:change - - title:k_papal_state.holder = { - set_realm_capital = title:c_roma - add_opinion = { - target = prev - modifier = restored_papacy_opinion - } - } - } - - ai_potential = { - religion = religion:catholic_religion - highest_held_title_tier > 3 #Only Kings and Emperors - } - - ai_will_do = { #Do it always, for coherence. - base = 100 - modifier = { - factor = 0 - title:c_roma.holder = { - OR = { - is_ai = no - any_liege_or_above = { is_ai = no } # AI will never take Rome province away from a player. - } - } - } - modifier = { - factor = 0 - has_trait = cynical - } - modifier = { - factor = 0 - has_title = title:e_italy - } - } -} - -### Dismantle the Papacy ### -dismantle_papacy_decision = { #For Muslims and Pagans. - picture = { - reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" - } - desc = dismantle_papacy_decision_desc - selection_tooltip = dismantle_papacy_decision_tooltip - decision_group_type = major - - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 0 - kingdom = 60 - empire = 60 - hegemony = 60 - } - - is_shown = { - is_ruler = yes - is_playable_character = yes - faith:roman_catholic = { - has_doctrine = doctrine_spiritual_head - } - faith:roman_catholic = { - faith_hostility_level = { - target = root.faith - value >= faith_hostile_level - } - } - highest_held_title_tier > 3 #Only Kings and Emperors - capital_province = { #Indians could not possibly care... - OR = { - geographical_region = world_europe - geographical_region = world_middle_east - geographical_region = world_africa_north - } - } - } - - is_valid = { - trigger_if = { - limit = { - exists = title:k_papal_state.holder - } - title:k_papal_state.holder = { is_landed = no } #If he fled elsewhere, it cannot be done, the Pope must be landless. - title:k_papal_state.holder = { is_at_war = no } #Shouldn't be possible during a Crusade - } - completely_controls_region = world_europe_south_italy - } - - is_valid_showing_failures_only = { - is_landed = yes - is_capable_adult = yes - is_imprisoned = no - top_liege = this - } - - effect = { - custom_tooltip = dismantle_papacy_decision_effect_tooltip - gain_holy_legend_seed_tooltip_effect = yes - hidden_effect = { - legend_seed_great_deed_faith_effect = { - ANTAGONIST = title:k_papal_state.holder - OLD_FAITH = title:k_papal_state.holder.faith - } - } - show_as_tooltip = { - destroy_papacy_scripted_effect = yes - } - trigger_event = { - id = roman_restoration.0130 - } - } - - ai_potential = { - always = yes - } - - ai_will_do = { #Do it always. - base = 100 - } -} +#### Restore the Papacy ### +#restore_papacy_decision = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" +# } +# desc = restore_papacy_decision_desc +# selection_tooltip = restore_papacy_decision_tooltip +# decision_group_type = major +# +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 0 +# kingdom = 12 +# empire = 12 +# hegemony = 12 +# } +# +# is_shown = { +# is_ruler = yes +# is_playable_character = yes +# religion = religion:catholic_religion +# NOT = { faith = { exists = religious_head } } +# highest_held_title_tier > 3 #Only Kings and Emperors +# } +# +# is_valid = { +# completely_controls = title:c_roma +# completely_controls = title:d_latium +# completely_controls = title:d_spoleto +# completely_controls = title:d_ancona +# completely_controls = title:d_romagna +# piety_level >= high_piety_level +# } +# +# is_valid_showing_failures_only = { +# is_landed = yes +# is_capable_adult = yes +# is_imprisoned = no +# top_liege = this +# } +# +# effect = { +# custom_tooltip = restore_papacy_decision_effect_tooltip +# show_as_tooltip = { +# restore_papacy_scripted_effect = yes +# } +# trigger_event = { +# id = roman_restoration.0124 +# } +# } +# +# ai_potential = { +# religion = religion:catholic_religion +# highest_held_title_tier > 3 #Only Kings and Emperors +# NOT = { faith = { exists = religious_head } } +# } +# +# ai_will_do = { #Always do it when possible. +# base = 100 +# ai_value_modifier = { +# ai_zeal = 1.0 +# } +# modifier = { +# factor = 0 +# has_trait = cynical +# } +# } +#} +# +#### Restore Pope in Rome ### +#restore_pope_in_rome_decision = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" +# } +# desc = restore_pope_in_rome_decision_desc +# selection_tooltip = restore_pope_in_rome_decision_tooltip +# decision_group_type = major +# +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 0 +# kingdom = 12 +# empire = 12 +# hegemony = 12 +# } +# +# is_shown = { +# is_ruler = yes +# is_playable_character = yes +# religion = religion:catholic_religion +# NOR = { +# has_title = title:k_papal_state +# is_roman_emperor_excluding_byzantium_trigger = yes +# } +# NOT = { title:c_roma.holder = { has_title = title:k_papal_state } } +# NOT = { capital_county = { this = title:c_roma } } +# title:k_papal_state.holder ?= { +# NOT = { +# has_opinion_modifier = { #Not accepting it if you conquered it yourself. +# target = root +# modifier = declared_war +# } +# } +# NOT = { +# has_opinion_modifier = { #Not accepting it if you conquered it yourself. +# target = root +# modifier = revoked_title +# } +# } +# } +# NOT = { has_character_flag = flag_already_given_rome_once } +# } +# +# is_valid_showing_failures_only = { +# is_landed = yes +# is_capable_adult = yes +# is_imprisoned = no +# top_liege = this +# highest_held_title_tier > 3 #Only Kings and Emperors +# custom_tooltip = { +# text = hof_exists_tt +# faith = { exists = religious_head } +# } +# custom_tooltip = { +# text = rome_held_by_you_or_vassal_tt +# OR = { +# title:c_roma.holder = { +# any_liege_or_above = { this = root } +# } +# title:c_roma.holder = { this = root } +# } +# } +# } +# +# effect = { +# add_piety = 1000 +# add_character_flag = flag_already_given_rome_once +# create_title_and_vassal_change = { +# type = returned +# save_scope_as = change +# add_claim_on_loss = no +# } +# title:c_roma = { +# change_title_holder = { +# holder = title:k_papal_state.holder +# change = scope:change +# } +# } +# resolve_title_and_vassal_change = scope:change +# +# title:k_papal_state.holder = { +# set_realm_capital = title:c_roma +# add_opinion = { +# target = prev +# modifier = restored_papacy_opinion +# } +# } +# } +# +# ai_potential = { +# religion = religion:catholic_religion +# highest_held_title_tier > 3 #Only Kings and Emperors +# } +# +# ai_will_do = { #Do it always, for coherence. +# base = 100 +# modifier = { +# factor = 0 +# title:c_roma.holder = { +# OR = { +# is_ai = no +# any_liege_or_above = { is_ai = no } # AI will never take Rome province away from a player. +# } +# } +# } +# modifier = { +# factor = 0 +# has_trait = cynical +# } +# modifier = { +# factor = 0 +# has_title = title:e_italy +# } +# } +#} +# +#### Dismantle the Papacy ### +#dismantle_papacy_decision = { #For Muslims and Pagans. +# picture = { +# reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" +# } +# desc = dismantle_papacy_decision_desc +# selection_tooltip = dismantle_papacy_decision_tooltip +# decision_group_type = major +# +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 0 +# kingdom = 60 +# empire = 60 +# hegemony = 60 +# } +# +# is_shown = { +# is_ruler = yes +# is_playable_character = yes +# faith:roman_catholic = { +# has_doctrine = doctrine_spiritual_head +# } +# faith:roman_catholic = { +# faith_hostility_level = { +# target = root.faith +# value >= faith_hostile_level +# } +# } +# highest_held_title_tier > 3 #Only Kings and Emperors +# capital_province = { #Indians could not possibly care... +# OR = { +# geographical_region = world_europe +# geographical_region = world_middle_east +# geographical_region = world_africa_north +# } +# } +# } +# +# is_valid = { +# trigger_if = { +# limit = { +# exists = title:k_papal_state.holder +# } +# title:k_papal_state.holder = { is_landed = no } #If he fled elsewhere, it cannot be done, the Pope must be landless. +# title:k_papal_state.holder = { is_at_war = no } #Shouldn't be possible during a Crusade +# } +# completely_controls_region = world_europe_south_italy +# } +# +# is_valid_showing_failures_only = { +# is_landed = yes +# is_capable_adult = yes +# is_imprisoned = no +# top_liege = this +# } +# +# effect = { +# custom_tooltip = dismantle_papacy_decision_effect_tooltip +# gain_holy_legend_seed_tooltip_effect = yes +# hidden_effect = { +# legend_seed_great_deed_faith_effect = { +# ANTAGONIST = title:k_papal_state.holder +# OLD_FAITH = title:k_papal_state.holder.faith +# } +# } +# show_as_tooltip = { +# destroy_papacy_scripted_effect = yes +# } +# trigger_event = { +# id = roman_restoration.0130 +# } +# } +# +# ai_potential = { +# always = yes +# } +# +# ai_will_do = { #Do it always. +# base = 100 +# } +#} # ##Uniting Italy #### Unify Italy ### @@ -1276,7 +1276,7 @@ dismantle_papacy_decision = { #For Muslims and Pagans. # completely_controls = title:d_cephalonia # completely_controls = title:d_epirus # completely_controls = title:d_athens -# completely_controls = title:d_achaia +# completely_controls = title:d_peloponnese # } # # is_valid_showing_failures_only = { diff --git a/common/decisions/90_minor_decisions.txt b/common/decisions/90_minor_decisions.txt index a0d687be..2eb41e69 100644 --- a/common/decisions/90_minor_decisions.txt +++ b/common/decisions/90_minor_decisions.txt @@ -2443,126 +2443,127 @@ stress_loss_athletic_decision = { #by Linnéa Thimrén } } -### Write Muwashshah Poem ### -write_muwashshah_poem_decision = { - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 37 - kingdom = 0 - empire = 0 - hegemony = 0 - } - picture = { - reference = "gfx/interface/illustrations/decisions/decision_misc.dds" - } - sort_order = 10 - decision_group_type = adventurer_minor - - cooldown = { years = 3 } - - is_shown = { - has_trait = violet_poet - } - - is_valid_showing_failures_only = { - is_imprisoned = no - } - - widget = { - gui = "decision_view_widget_option_list_generic" - controller = decision_option_list_controller - decision_to_second_step_button = "CHOOSE_POEM_DECISION_NEXT_STEP_BUTTON" - - - item = { # To sell - value = sell_poem_decision - is_shown = { - has_trait = violet_poet - } - is_valid = { - has_trait = violet_poet - } - current_description = sell_poem_decision - localization = sell_poem_decision - icon = "gfx/interface/icons/court_position_types/bookmaker_court_position.dds" - ai_chance = { #Keep the poet afloat - value = 10 - if = { - limit = { - gold < 25 - } - add = 50 - } - } - } - item = { #To keep - value = keep_poem_decision - is_shown = { - has_trait = violet_poet - any_character_artifact = { - has_artifact_modifier = double_moon_modifier - } - } - is_valid = { - has_trait = violet_poet - any_character_artifact = { - has_artifact_modifier = double_moon_modifier - } - } - current_description = keep_poem_decision - localization = keep_poem_decision - icon = "gfx/interface/icons/court_position_types/court_poet_court_position.dds" - ai_chance = { value = 10 } - } - item = { #To distribute - value = distribute_poem_decision - is_shown = { - has_trait = violet_poet - } - is_valid = { - has_trait = violet_poet - } - current_description = distribute_poem_decision - localization = distribute_poem_decision - icon = "gfx/interface/icons/court_position_types/chief_qadi_court_position.dds" - ai_chance = { value = 10 } - } - } - - effect = { - add_trait_xp = { - trait = violet_poet - value = 5 - } - custom_tooltip = write_muwashshah_poem_decision_tooltip - hidden_effect = { - - if = { # Sell Poem - limit = { scope:sell_poem_decision = yes } - trigger_event = { - id = ep3_story_cycle_violet_poet.0010 - days = { 15 30 } - } - } - else_if = { # Keep Poem - limit = { scope:keep_poem_decision = yes } - trigger_event = { - id = ep3_story_cycle_violet_poet.0011 - days = { 15 30 } - } - } - else = { # Distribute Poem - trigger_event = { - id = ep3_story_cycle_violet_poet.0012 - days = { 15 30 } - } - } - } - } - - ai_potential = { - is_playable_character = yes - gold < 50 - } -} +#### Write Muwashshah Poem ### +#write_muwashshah_poem_decision = { +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 37 +# kingdom = 0 +# empire = 0 +# hegemony = 0 +# } +# picture = { +# reference = "gfx/interface/illustrations/decisions/decision_misc.dds" +# } +# sort_order = 10 +# decision_group_type = adventurer_minor +# +# cooldown = { years = 3 } +# +# is_shown = { +# has_trait = violet_poet +# } +# +# is_valid_showing_failures_only = { +# is_imprisoned = no +# } +# +# widget = { +# gui = "decision_view_widget_option_list_generic" +# controller = decision_option_list_controller +# decision_to_second_step_button = "CHOOSE_POEM_DECISION_NEXT_STEP_BUTTON" +# +# +# item = { # To sell +# value = sell_poem_decision +# is_shown = { +# has_trait = violet_poet +# } +# is_valid = { +# has_trait = violet_poet +# } +# current_description = sell_poem_decision +# localization = sell_poem_decision +# icon = "gfx/interface/icons/court_position_types/bookmaker_court_position.dds" +# ai_chance = { #Keep the poet afloat +# value = 10 +# if = { +# limit = { +# gold < 25 +# } +# add = 50 +# } +# } +# } +# item = { #To keep +# value = keep_poem_decision +# is_shown = { +# has_trait = violet_poet +# any_character_artifact = { +# has_artifact_modifier = double_moon_modifier +# } +# } +# is_valid = { +# has_trait = violet_poet +# any_character_artifact = { +# has_artifact_modifier = double_moon_modifier +# } +# } +# current_description = keep_poem_decision +# localization = keep_poem_decision +# icon = "gfx/interface/icons/court_position_types/court_poet_court_position.dds" +# ai_chance = { value = 10 } +# } +# item = { #To distribute +# value = distribute_poem_decision +# is_shown = { +# has_trait = violet_poet +# } +# is_valid = { +# has_trait = violet_poet +# } +# current_description = distribute_poem_decision +# localization = distribute_poem_decision +# icon = "gfx/interface/icons/court_position_types/chief_qadi_court_position.dds" +# ai_chance = { value = 10 } +# } +# } +# +# effect = { +# add_trait_xp = { +# trait = violet_poet +# value = 5 +# } +# custom_tooltip = write_muwashshah_poem_decision_tooltip +# hidden_effect = { +# +# if = { # Sell Poem +# limit = { scope:sell_poem_decision = yes } +# trigger_event = { +# id = ep3_story_cycle_violet_poet.0010 +# days = { 15 30 } +# } +# } +# else_if = { # Keep Poem +# limit = { scope:keep_poem_decision = yes } +# trigger_event = { +# id = ep3_story_cycle_violet_poet.0011 +# days = { 15 30 } +# } +# } +# else = { # Distribute Poem +# trigger_event = { +# id = ep3_story_cycle_violet_poet.0012 +# days = { 15 30 } +# } +# } +# } +# } +# +# ai_potential = { +# is_playable_character = yes +# gold < 50 +# } +#} +# \ No newline at end of file diff --git a/common/decisions/dlc_decisions/bp3/00_bp3_other_decisions.txt b/common/decisions/dlc_decisions/bp3/00_bp3_other_decisions.txt index 26a617fc..d5fa5a75 100644 --- a/common/decisions/dlc_decisions/bp3/00_bp3_other_decisions.txt +++ b/common/decisions/dlc_decisions/bp3/00_bp3_other_decisions.txt @@ -672,11 +672,11 @@ choose_master_terrain_decision = { # DE_JURE = title:k_bosporan_kingdom # } # adjust_de_jure_effect = { -# TITLE = title:d_yedisan +# TITLE = title:d_dnipro # DE_JURE = title:k_bosporan_kingdom # } # adjust_de_jure_effect = { -# TITLE = title:d_levedia +# TITLE = title:d_kharkiv # DE_JURE = title:k_bosporan_kingdom # } # adjust_de_jure_effect = { @@ -684,11 +684,11 @@ choose_master_terrain_decision = { # DE_JURE = title:k_bosporan_kingdom # } # adjust_de_jure_effect = { -# TITLE = title:d_kizilyedisan +# TITLE = title:d_kherson # DE_JURE = title:k_bosporan_kingdom # } # adjust_de_jure_effect = { -# TITLE = title:d_red_levedia +# TITLE = title:d_zaporizhzhia # DE_JURE = title:k_bosporan_kingdom # } # adjust_de_jure_effect = { diff --git a/common/decisions/dlc_decisions/ep3_decisions.txt b/common/decisions/dlc_decisions/ep3_decisions.txt index fbd295d6..54d8a44c 100644 --- a/common/decisions/dlc_decisions/ep3_decisions.txt +++ b/common/decisions/dlc_decisions/ep3_decisions.txt @@ -104,177 +104,177 @@ hold_triumph_decision = { } } -### Restore [ROOT.Char.GetPrimaryTitle.GetNameNoTierNoTooltip] ### -restore_backwater_counties_decision = { - picture = { - reference = "gfx/interface/illustrations/decisions/ep3_decision_estate.dds" - } - decision_group_type = major - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 120 - kingdom = 120 - empire = 0 - hegemony = 0 - } - - sort_order = 70 - - desc = restore_backwater_counties_decision_desc - selection_tooltip = restore_backwater_counties_decision_tooltip - decision_group_type = roman - - is_shown = { - has_ep3_dlc_trigger = yes - primary_title ?= { - OR = { - tier = tier_duchy - tier = tier_kingdom - } - } - any_sub_realm_county = { - has_county_modifier = backwater_county_modifier - } - } - - is_valid = { - is_at_war = no - custom_tooltip = { - text = backwater_county_eligible_modifier_removal_tt - any_sub_realm_county = { - count >= 1 - has_county_modifier = backwater_county_modifier - development_level >= 50 - } - } - } - - is_valid_showing_failures_only = { - is_alive = yes - is_available = yes - NOT = { exists = involved_activity } - is_imprisoned = no - } - - cost = { - gold = { - value = 0 - if = { - limit = { - has_treasury = no - } - add = medium_gold_value - multiply = { - value = 1 - every_sub_realm_county = { - limit = { - title_province = { - geographical_region = greek_backwater_modifier_region - } - has_county_modifier = backwater_county_modifier - development_level >= 50 - } - add = 1 - } - } - } - } - treasury = { - value = 0 - if = { - limit = { - has_treasury = yes - } - add = medium_gold_value - multiply = { - value = 1 - every_sub_realm_county = { - limit = { - title_province = { - geographical_region = greek_backwater_modifier_region - } - has_county_modifier = backwater_county_modifier - development_level >= 50 - } - add = 1 - } - } - } - } - } - - effect = { - custom_tooltip = greek_backwater_modifier_removal_tt - if = { - limit = { - NOT = { - any_sub_realm_county = { - title_province = { - geographical_region = greek_backwater_modifier_region - } - has_county_modifier = backwater_county_modifier - development_level >= 50 - } - } - } - custom_tooltip = no_backwater_counties_meet_criteria_tt - } - else = { - every_sub_realm_county = { - limit = { - title_province = { - geographical_region = greek_backwater_modifier_region - } - has_county_modifier = backwater_county_modifier - development_level >= 50 - } - add_to_list = frontwater_counties - } - } - primary_title = { save_scope_as = target_theme } - # Toast for the Governor confirming which counties got the modifier removed - send_interface_message = { - type = event_generic_good - title = ep3_theme_not_backwater.t - left_icon = root - right_icon = root.primary_title - every_in_list = { - list = frontwater_counties - remove_county_modifier = backwater_county_modifier - } - } - - if = { # If we remove the modifier from the last county belonging to this governor, we fire a celebration event for some narrative flavor - limit = { - any_sub_realm_county = { - count = 0 - title_province = { - geographical_region = greek_backwater_modifier_region - } - has_county_modifier = backwater_county_modifier - } - } - # Event for the Governor if all counties are restored - trigger_event = { - id = ep3_decisions_event.3000 - days = 1 - } - - # Once all the counties have been brought up to speed, we notify the emperor - liege = { - send_interface_message = { - type = event_generic_good_text - title = ep3_theme_not_backwater.t - desc = ep3_theme_not_backwater.desc - left_icon = root - } - # Trigger the event for the emperor to see if all the counties have been cleared - trigger_event = ep3_decisions_event.3001 - } - } - } -} +#### Restore [ROOT.Char.GetPrimaryTitle.GetNameNoTierNoTooltip] ### +#restore_backwater_counties_decision = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/ep3_decision_estate.dds" +# } +# decision_group_type = major +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 120 +# kingdom = 120 +# empire = 0 +# hegemony = 0 +# } +# +# sort_order = 70 +# +# desc = restore_backwater_counties_decision_desc +# selection_tooltip = restore_backwater_counties_decision_tooltip +# decision_group_type = roman +# +# is_shown = { +# has_ep3_dlc_trigger = yes +# primary_title ?= { +# OR = { +# tier = tier_duchy +# tier = tier_kingdom +# } +# } +# any_sub_realm_county = { +# has_county_modifier = backwater_county_modifier +# } +# } +# +# is_valid = { +# is_at_war = no +# custom_tooltip = { +# text = backwater_county_eligible_modifier_removal_tt +# any_sub_realm_county = { +# count >= 1 +# has_county_modifier = backwater_county_modifier +# development_level >= 50 +# } +# } +# } +# +# is_valid_showing_failures_only = { +# is_alive = yes +# is_available = yes +# NOT = { exists = involved_activity } +# is_imprisoned = no +# } +# +# cost = { +# gold = { +# value = 0 +# if = { +# limit = { +# has_treasury = no +# } +# add = medium_gold_value +# multiply = { +# value = 1 +# every_sub_realm_county = { +# limit = { +# title_province = { +# geographical_region = greek_backwater_modifier_region +# } +# has_county_modifier = backwater_county_modifier +# development_level >= 50 +# } +# add = 1 +# } +# } +# } +# } +# treasury = { +# value = 0 +# if = { +# limit = { +# has_treasury = yes +# } +# add = medium_gold_value +# multiply = { +# value = 1 +# every_sub_realm_county = { +# limit = { +# title_province = { +# geographical_region = greek_backwater_modifier_region +# } +# has_county_modifier = backwater_county_modifier +# development_level >= 50 +# } +# add = 1 +# } +# } +# } +# } +# } +# +# effect = { +# custom_tooltip = greek_backwater_modifier_removal_tt +# if = { +# limit = { +# NOT = { +# any_sub_realm_county = { +# title_province = { +# geographical_region = greek_backwater_modifier_region +# } +# has_county_modifier = backwater_county_modifier +# development_level >= 50 +# } +# } +# } +# custom_tooltip = no_backwater_counties_meet_criteria_tt +# } +# else = { +# every_sub_realm_county = { +# limit = { +# title_province = { +# geographical_region = greek_backwater_modifier_region +# } +# has_county_modifier = backwater_county_modifier +# development_level >= 50 +# } +# add_to_list = frontwater_counties +# } +# } +# primary_title = { save_scope_as = target_theme } +# # Toast for the Governor confirming which counties got the modifier removed +# send_interface_message = { +# type = event_generic_good +# title = ep3_theme_not_backwater.t +# left_icon = root +# right_icon = root.primary_title +# every_in_list = { +# list = frontwater_counties +# remove_county_modifier = backwater_county_modifier +# } +# } +# +# if = { # If we remove the modifier from the last county belonging to this governor, we fire a celebration event for some narrative flavor +# limit = { +# any_sub_realm_county = { +# count = 0 +# title_province = { +# geographical_region = greek_backwater_modifier_region +# } +# has_county_modifier = backwater_county_modifier +# } +# } +# # Event for the Governor if all counties are restored +# trigger_event = { +# id = ep3_decisions_event.3000 +# days = 1 +# } +# +# # Once all the counties have been brought up to speed, we notify the emperor +# liege = { +# send_interface_message = { +# type = event_generic_good_text +# title = ep3_theme_not_backwater.t +# desc = ep3_theme_not_backwater.desc +# left_icon = root +# } +# # Trigger the event for the emperor to see if all the counties have been cleared +# trigger_event = ep3_decisions_event.3001 +# } +# } +# } +#} # #### Prepare Greek Fire Dromons ### #prepare_greek_fire_dromons_decision = { diff --git a/common/decisions/dlc_decisions/ep_3/06_ep3_hasan_story_cycle_decisions.txt b/common/decisions/dlc_decisions/ep_3/06_ep3_hasan_story_cycle_decisions.txt index aead318f..8e2b63cb 100644 --- a/common/decisions/dlc_decisions/ep_3/06_ep3_hasan_story_cycle_decisions.txt +++ b/common/decisions/dlc_decisions/ep_3/06_ep3_hasan_story_cycle_decisions.txt @@ -1,489 +1,490 @@ - -############################################# -# Do some basic missionary work # -# by James Beaumont # -############################################# - -hasan_evangelize_the_faith = { - picture = { - reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_secret_faith.dds" - } - sort_order = 500 - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 36 - kingdom = 0 - empire = 0 - hegemony = 0 - } - - desc = hasan_evangelize_the_faith_desc - selection_tooltip = hasan_evangelize_the_faith_tooltip - decision_group_type = story_cycle_hasan - - cooldown = { months = 1 } - - is_shown = { - #DLC check. - has_ep3_dlc_trigger = yes - is_landed = no - any_owned_story = { - type = story_hasan - } - } - - is_valid = { - domicile.domicile_location.county ?= { - OR = { - hasan_evangelize_province_trigger = yes - custom_tooltip = { - text = or_a_neigbouring_county_tt - save_temporary_scope_as = county_check - any_neighboring_county = { - hasan_evangelize_province_trigger = yes - holder.top_liege = scope:county_check.holder.top_liege - } - } - } - } - } - - is_valid_showing_failures_only = { - is_alive = yes - is_available_adult = yes - has_contagious_deadly_disease_trigger = no - } - - cost = { piety = 250 } - - effect = { - domicile.domicile_location.county ?= { - if = { - limit = { hasan_evangelize_province_trigger = yes } - save_scope_as = location - } - else = { - save_temporary_scope_as = county_check - random_neighboring_county = { - limit = { - hasan_evangelize_province_trigger = yes - holder.top_liege = scope:county_check.holder.top_liege - } - save_scope_as = location - } - } - } - trigger_event = hasan_sabbah.1010 - custom_tooltip = chance_to_advance_to_the_assassins_tt - } - - ai_potential = { this = character:41702 } - - ai_will_do = { - base = 200 - } -} -############################################# -# Do some RADICAL missionary work 🕶🤙 # -# by James Beaumont # -############################################# - -hasan_agitate_the_populace = { - picture = { - reference = "gfx/interface/illustrations/decisions/fp3/antagonistic.dds" - } - sort_order = 500 - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 36 - kingdom = 0 - empire = 0 - hegemony = 0 - } - - desc = hasan_agitate_the_populace_desc - selection_tooltip = hasan_agitate_the_populace_tooltip - decision_group_type = story_cycle_hasan - - cooldown = { months = 1 } - - is_shown = { - #DLC check. - has_ep3_dlc_trigger = yes - is_landed = no - any_owned_story = { - type = story_hasan - } - } - - is_valid = { - hasan_camp_in_foes_realm_trigger = yes - OR = { - domicile.domicile_location.county = { - faith != root.faith - NOT = { has_county_modifier = ep3_agitated_populace } - NOT = { has_county_modifier = tougher_to_convert } - } - custom_tooltip = { - text = or_a_neigbouring_county_tt - domicile.domicile_location.county = { - save_temporary_scope_as = county_check - any_neighboring_county = { - faith != root.faith - NOT = { has_county_modifier = ep3_agitated_populace } - NOT = { has_county_modifier = tougher_to_convert } - holder.top_liege = scope:county_check.holder.top_liege - } - } - } - } - } - - is_valid_showing_failures_only = { - is_alive = yes - is_available_adult = yes - has_contagious_deadly_disease_trigger = no - } - - cost = { prestige = 250 } - - effect = { - if = { - limit = { - domicile.domicile_location.county = { - faith != root.faith - NOT = { has_county_modifier = ep3_agitated_populace } - NOT = { has_county_modifier = tougher_to_convert } - } - } - domicile.domicile_location.county = { save_scope_as = location } - } - else = { - domicile.domicile_location.county = { - save_temporary_scope_as = county_check - random_neighboring_county = { - limit = { - faith != root.faith - NOT = { has_county_modifier = ep3_agitated_populace } - NOT = { has_county_modifier = tougher_to_convert } - holder.top_liege = scope:county_check.holder.top_liege - } - save_scope_as = location - } - } - } - trigger_event = hasan_sabbah.1040 - } - - ai_potential = { this = character:41702 } - - ai_will_do = { - base = 200 - } -} -############################################# -# Become death, destroyer of Seljuks # -# by James Beaumont # -############################################# -hasan_ignite_the_flames = { - picture = { - reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_strength.dds" - } - sort_order = 500 - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 36 - kingdom = 0 - empire = 0 - hegemony = 0 - } - - desc = hasan_ignite_the_flames_desc - selection_tooltip = hasan_ignite_the_flames_tooltip - decision_group_type = story_cycle_hasan - - cooldown = { months = 1 } - - is_shown = { - #DLC check. - has_ep3_dlc_trigger = yes - any_owned_story = { - type = story_hasan - } - } - - is_valid = { - hasan_camp_in_foes_realm_trigger = yes - is_at_war = no - custom_tooltip = { - text = at_least_5_counties_are_nizari - domicile.domicile_location.county.holder.top_liege = { - any_sub_realm_county = { - count >= 5 - faith = root.faith - } - } - } - } - - is_valid_showing_failures_only = { - is_alive = yes - is_available_adult = yes - has_contagious_deadly_disease_trigger = no - } - - cost = { - prestige = 250 - } - - effect = { - random_owned_story = { - type = story_hasan - var:ultimate_foe = { save_scope_as = ultimate_foe } - } - hasan_sabbah_ignite_decision_effect = yes - } - - ai_potential = { this = character:41702 } - - ai_will_do = { - base = 200 - } -} - -############################################# -# Found the Assassins # -# by James Beaumont # -############################################# -hasan_found_the_assassins = { - picture = { - reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_sunder.dds" - } - sort_order = 500 - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 36 - kingdom = 0 - empire = 0 - hegemony = 0 - } - - desc = hasan_found_the_assassins_desc - selection_tooltip = hasan_found_the_assassins_tooltip - decision_group_type = story_cycle_hasan - - is_shown = { - #DLC check. - has_ep3_dlc_trigger = yes - any_owned_story = { - type = story_hasan - NOT = { exists = var:assassins } - } - is_landed = no - faith = faith:nizari - NOT = { - has_character_flag = founded_assassins_already - } - } - - is_valid = { - hasan_camp_in_foes_realm_trigger = yes - domicile.domicile_location.barony = { is_leased_out = no } - domicile.domicile_location.county.faith = root.faith - custom_tooltip = { - text = is_mountainous_desc - domicile.domicile_location = { is_mountainous_trigger = yes } - } - domicile.domicile_location = { - is_county_capital = no - } - } - - is_valid_showing_failures_only = { - is_alive = yes - is_available_adult = yes - has_contagious_deadly_disease_trigger = no - } - - cost = { piety = 1500 } - - effect = { - domicile.domicile_location = { save_scope_as = location } - if = { - limit = { - scope:location = { - has_holding = no - } - } - if = { - limit = { - scope:location.county.holder = { - government_has_flag = government_is_tribal - } - } - scope:location = { - set_holding_type = church_holding - } - } - else = { - scope:location = { - set_holding_type = castle_holding - } - } - } - create_character = { - template = holy_order_leader_character - location = scope:location - save_scope_as = leader - } - hidden_effect = { - create_title_and_vassal_change = { - type = leased_out - save_scope_as = change - add_claim_on_loss = no - } - scope:location.barony = { - change_title_holder_include_vassals = { - holder = scope:location.barony.holder.top_liege - change = scope:change - } - } - resolve_title_and_vassal_change = scope:change - } - create_holy_order = { - leader = scope:leader - capital = scope:location.barony - save_scope_as = new_holy_order - } - scope:new_holy_order ?= { - title = { set_title_name = holy_order_hashshashin } - } - create_holy_order_effect = yes - random_owned_story = { - type = story_hasan - set_variable = { - name = assassins - value = scope:new_holy_order - } - } - add_character_flag = founded_assassins_already - scope:location = { - if = { - limit = { - has_special_building = no - } - add_special_building = assassin_castle_01 - } - else_if = { - limit = { - has_building_or_higher = alamut_castle_01 - } - hidden_effect = { - remove_building = alamut_castle_01 - } - add_special_building = alamut_castle_02 - } - } - add_intrigue_skill = 2 - give_nickname = nick_old_man_of_the_mountain - } - - ai_potential = { this = character:41702 } - - ai_will_do = { - base = 200 - } -} - -############################################# -# Expand the Assassins # -# by James Beaumont # -############################################# -hasan_expand_the_assassins = { - picture = { - reference = "gfx/interface/illustrations/decisions/decision_legitimacy.dds" - } - sort_order = 500 - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 36 - kingdom = 0 - empire = 0 - hegemony = 0 - } - - desc = hasan_expand_the_assassins_desc - selection_tooltip = hasan_expand_the_assassins_tooltip - decision_group_type = story_cycle_hasan - - is_shown = { - #DLC check. - has_ep3_dlc_trigger = yes - any_owned_story = { - type = story_hasan - has_variable = assassins - } - is_landed = no - faith = faith:nizari - } - - is_valid = { - hasan_camp_in_foes_realm_trigger = yes - domicile.domicile_location.barony = { is_leased_out = no } - domicile.domicile_location.county.faith = root.faith - custom_tooltip = { - text = is_mountainous_desc - domicile.domicile_location = { is_mountainous_trigger = yes } - } - } - - is_valid_showing_failures_only = { - is_alive = yes - is_available_adult = yes - has_contagious_deadly_disease_trigger = no - domicile.domicile_location = { is_county_capital = no } - } - - cost = { piety = 250 } - - effect = { - random_owned_story = { - type = story_hasan - var:assassins = { save_scope_as = assassins } - } - show_as_tooltip = { - domicile.domicile_location.barony = { lease_out_to = scope:assassins } - } - hidden_effect = { - if = { - limit = { domicile.domicile_location.barony.holder != root } - create_title_and_vassal_change = { - type = leased_out - save_scope_as = change - add_claim_on_loss = no - } - domicile.domicile_location.barony = { - change_title_holder_include_vassals = { - holder = holder.top_liege - change = scope:change - } - } - resolve_title_and_vassal_change = scope:change - domicile.domicile_location.barony = { lease_out_to = scope:assassins } - } - } - } - - ai_potential = { this = character:41702 } - - ai_will_do = { - base = 200 - } -} - - +# +############################################## +## Do some basic missionary work # +## by James Beaumont # +############################################## +# +#hasan_evangelize_the_faith = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_secret_faith.dds" +# } +# sort_order = 500 +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 36 +# kingdom = 0 +# empire = 0 +# hegemony = 0 +# } +# +# desc = hasan_evangelize_the_faith_desc +# selection_tooltip = hasan_evangelize_the_faith_tooltip +# decision_group_type = story_cycle_hasan +# +# cooldown = { months = 1 } +# +# is_shown = { +# #DLC check. +# has_ep3_dlc_trigger = yes +# is_landed = no +# any_owned_story = { +# type = story_hasan +# } +# } +# +# is_valid = { +# domicile.domicile_location.county ?= { +# OR = { +# hasan_evangelize_province_trigger = yes +# custom_tooltip = { +# text = or_a_neigbouring_county_tt +# save_temporary_scope_as = county_check +# any_neighboring_county = { +# hasan_evangelize_province_trigger = yes +# holder.top_liege = scope:county_check.holder.top_liege +# } +# } +# } +# } +# } +# +# is_valid_showing_failures_only = { +# is_alive = yes +# is_available_adult = yes +# has_contagious_deadly_disease_trigger = no +# } +# +# cost = { piety = 250 } +# +# effect = { +# domicile.domicile_location.county ?= { +# if = { +# limit = { hasan_evangelize_province_trigger = yes } +# save_scope_as = location +# } +# else = { +# save_temporary_scope_as = county_check +# random_neighboring_county = { +# limit = { +# hasan_evangelize_province_trigger = yes +# holder.top_liege = scope:county_check.holder.top_liege +# } +# save_scope_as = location +# } +# } +# } +# trigger_event = hasan_sabbah.1010 +# custom_tooltip = chance_to_advance_to_the_assassins_tt +# } +# +# ai_potential = { this = character:41702 } +# +# ai_will_do = { +# base = 200 +# } +#} +############################################## +## Do some RADICAL missionary work 🕶🤙 # +## by James Beaumont # +############################################## +# +#hasan_agitate_the_populace = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/fp3/antagonistic.dds" +# } +# sort_order = 500 +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 36 +# kingdom = 0 +# empire = 0 +# hegemony = 0 +# } +# +# desc = hasan_agitate_the_populace_desc +# selection_tooltip = hasan_agitate_the_populace_tooltip +# decision_group_type = story_cycle_hasan +# +# cooldown = { months = 1 } +# +# is_shown = { +# #DLC check. +# has_ep3_dlc_trigger = yes +# is_landed = no +# any_owned_story = { +# type = story_hasan +# } +# } +# +# is_valid = { +# hasan_camp_in_foes_realm_trigger = yes +# OR = { +# domicile.domicile_location.county = { +# faith != root.faith +# NOT = { has_county_modifier = ep3_agitated_populace } +# NOT = { has_county_modifier = tougher_to_convert } +# } +# custom_tooltip = { +# text = or_a_neigbouring_county_tt +# domicile.domicile_location.county = { +# save_temporary_scope_as = county_check +# any_neighboring_county = { +# faith != root.faith +# NOT = { has_county_modifier = ep3_agitated_populace } +# NOT = { has_county_modifier = tougher_to_convert } +# holder.top_liege = scope:county_check.holder.top_liege +# } +# } +# } +# } +# } +# +# is_valid_showing_failures_only = { +# is_alive = yes +# is_available_adult = yes +# has_contagious_deadly_disease_trigger = no +# } +# +# cost = { prestige = 250 } +# +# effect = { +# if = { +# limit = { +# domicile.domicile_location.county = { +# faith != root.faith +# NOT = { has_county_modifier = ep3_agitated_populace } +# NOT = { has_county_modifier = tougher_to_convert } +# } +# } +# domicile.domicile_location.county = { save_scope_as = location } +# } +# else = { +# domicile.domicile_location.county = { +# save_temporary_scope_as = county_check +# random_neighboring_county = { +# limit = { +# faith != root.faith +# NOT = { has_county_modifier = ep3_agitated_populace } +# NOT = { has_county_modifier = tougher_to_convert } +# holder.top_liege = scope:county_check.holder.top_liege +# } +# save_scope_as = location +# } +# } +# } +# trigger_event = hasan_sabbah.1040 +# } +# +# ai_potential = { this = character:41702 } +# +# ai_will_do = { +# base = 200 +# } +#} +############################################## +## Become death, destroyer of Seljuks # +## by James Beaumont # +############################################## +#hasan_ignite_the_flames = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_strength.dds" +# } +# sort_order = 500 +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 36 +# kingdom = 0 +# empire = 0 +# hegemony = 0 +# } +# +# desc = hasan_ignite_the_flames_desc +# selection_tooltip = hasan_ignite_the_flames_tooltip +# decision_group_type = story_cycle_hasan +# +# cooldown = { months = 1 } +# +# is_shown = { +# #DLC check. +# has_ep3_dlc_trigger = yes +# any_owned_story = { +# type = story_hasan +# } +# } +# +# is_valid = { +# hasan_camp_in_foes_realm_trigger = yes +# is_at_war = no +# custom_tooltip = { +# text = at_least_5_counties_are_nizari +# domicile.domicile_location.county.holder.top_liege = { +# any_sub_realm_county = { +# count >= 5 +# faith = root.faith +# } +# } +# } +# } +# +# is_valid_showing_failures_only = { +# is_alive = yes +# is_available_adult = yes +# has_contagious_deadly_disease_trigger = no +# } +# +# cost = { +# prestige = 250 +# } +# +# effect = { +# random_owned_story = { +# type = story_hasan +# var:ultimate_foe = { save_scope_as = ultimate_foe } +# } +# hasan_sabbah_ignite_decision_effect = yes +# } +# +# ai_potential = { this = character:41702 } +# +# ai_will_do = { +# base = 200 +# } +#} +# +############################################## +## Found the Assassins # +## by James Beaumont # +############################################## +#hasan_found_the_assassins = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_sunder.dds" +# } +# sort_order = 500 +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 36 +# kingdom = 0 +# empire = 0 +# hegemony = 0 +# } +# +# desc = hasan_found_the_assassins_desc +# selection_tooltip = hasan_found_the_assassins_tooltip +# decision_group_type = story_cycle_hasan +# +# is_shown = { +# #DLC check. +# has_ep3_dlc_trigger = yes +# any_owned_story = { +# type = story_hasan +# NOT = { exists = var:assassins } +# } +# is_landed = no +# faith = faith:nizari +# NOT = { +# has_character_flag = founded_assassins_already +# } +# } +# +# is_valid = { +# hasan_camp_in_foes_realm_trigger = yes +# domicile.domicile_location.barony = { is_leased_out = no } +# domicile.domicile_location.county.faith = root.faith +# custom_tooltip = { +# text = is_mountainous_desc +# domicile.domicile_location = { is_mountainous_trigger = yes } +# } +# domicile.domicile_location = { +# is_county_capital = no +# } +# } +# +# is_valid_showing_failures_only = { +# is_alive = yes +# is_available_adult = yes +# has_contagious_deadly_disease_trigger = no +# } +# +# cost = { piety = 1500 } +# +# effect = { +# domicile.domicile_location = { save_scope_as = location } +# if = { +# limit = { +# scope:location = { +# has_holding = no +# } +# } +# if = { +# limit = { +# scope:location.county.holder = { +# government_has_flag = government_is_tribal +# } +# } +# scope:location = { +# set_holding_type = church_holding +# } +# } +# else = { +# scope:location = { +# set_holding_type = castle_holding +# } +# } +# } +# create_character = { +# template = holy_order_leader_character +# location = scope:location +# save_scope_as = leader +# } +# hidden_effect = { +# create_title_and_vassal_change = { +# type = leased_out +# save_scope_as = change +# add_claim_on_loss = no +# } +# scope:location.barony = { +# change_title_holder_include_vassals = { +# holder = scope:location.barony.holder.top_liege +# change = scope:change +# } +# } +# resolve_title_and_vassal_change = scope:change +# } +# create_holy_order = { +# leader = scope:leader +# capital = scope:location.barony +# save_scope_as = new_holy_order +# } +# scope:new_holy_order ?= { +# title = { set_title_name = holy_order_hashshashin } +# } +# create_holy_order_effect = yes +# random_owned_story = { +# type = story_hasan +# set_variable = { +# name = assassins +# value = scope:new_holy_order +# } +# } +# add_character_flag = founded_assassins_already +# scope:location = { +# if = { +# limit = { +# has_special_building = no +# } +# add_special_building = assassin_castle_01 +# } +# else_if = { +# limit = { +# has_building_or_higher = alamut_castle_01 +# } +# hidden_effect = { +# remove_building = alamut_castle_01 +# } +# add_special_building = alamut_castle_02 +# } +# } +# add_intrigue_skill = 2 +# give_nickname = nick_old_man_of_the_mountain +# } +# +# ai_potential = { this = character:41702 } +# +# ai_will_do = { +# base = 200 +# } +#} +# +############################################## +## Expand the Assassins # +## by James Beaumont # +############################################## +#hasan_expand_the_assassins = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/decision_legitimacy.dds" +# } +# sort_order = 500 +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 36 +# kingdom = 0 +# empire = 0 +# hegemony = 0 +# } +# +# desc = hasan_expand_the_assassins_desc +# selection_tooltip = hasan_expand_the_assassins_tooltip +# decision_group_type = story_cycle_hasan +# +# is_shown = { +# #DLC check. +# has_ep3_dlc_trigger = yes +# any_owned_story = { +# type = story_hasan +# has_variable = assassins +# } +# is_landed = no +# faith = faith:nizari +# } +# +# is_valid = { +# hasan_camp_in_foes_realm_trigger = yes +# domicile.domicile_location.barony = { is_leased_out = no } +# domicile.domicile_location.county.faith = root.faith +# custom_tooltip = { +# text = is_mountainous_desc +# domicile.domicile_location = { is_mountainous_trigger = yes } +# } +# } +# +# is_valid_showing_failures_only = { +# is_alive = yes +# is_available_adult = yes +# has_contagious_deadly_disease_trigger = no +# domicile.domicile_location = { is_county_capital = no } +# } +# +# cost = { piety = 250 } +# +# effect = { +# random_owned_story = { +# type = story_hasan +# var:assassins = { save_scope_as = assassins } +# } +# show_as_tooltip = { +# domicile.domicile_location.barony = { lease_out_to = scope:assassins } +# } +# hidden_effect = { +# if = { +# limit = { domicile.domicile_location.barony.holder != root } +# create_title_and_vassal_change = { +# type = leased_out +# save_scope_as = change +# add_claim_on_loss = no +# } +# domicile.domicile_location.barony = { +# change_title_holder_include_vassals = { +# holder = holder.top_liege +# change = scope:change +# } +# } +# resolve_title_and_vassal_change = scope:change +# domicile.domicile_location.barony = { lease_out_to = scope:assassins } +# } +# } +# } +# +# ai_potential = { this = character:41702 } +# +# ai_will_do = { +# base = 200 +# } +#} +# +# +# \ No newline at end of file diff --git a/common/decisions/dlc_decisions/ep_3/06_ep3_separatist_uprising_decision.txt b/common/decisions/dlc_decisions/ep_3/06_ep3_separatist_uprising_decision.txt index 8765e395..fa17c365 100644 --- a/common/decisions/dlc_decisions/ep_3/06_ep3_separatist_uprising_decision.txt +++ b/common/decisions/dlc_decisions/ep_3/06_ep3_separatist_uprising_decision.txt @@ -94,9 +94,9 @@ separatist_uprising_decision = { prestige <= 300 gold <= 150 } - modifier = { # Asen and Peter always try to do this - add = 1000 - primary_title = title:d_laamp_asen - } +# modifier = { # Asen and Peter always try to do this +# add = 1000 +# primary_title = title:d_laamp_asen +# } } } diff --git a/common/landed_titles/greece.txt b/common/landed_titles/greece.txt index 197a8910..4897b619 100644 --- a/common/landed_titles/greece.txt +++ b/common/landed_titles/greece.txt @@ -22,18 +22,6 @@ e_greece = { } add = @correct_culture_primary_score } - if = { - limit = { - NOT = { culture = culture:greek } - culture = { - OR = { - has_cultural_pillar = heritage_byzantine - has_cultural_pillar = heritage_caucasian - } - } - } - add = @better_than_the_alternatives_score - } } cultural_names = { @@ -209,18 +197,6 @@ e_greece = { } add = @correct_culture_primary_score } - if = { - limit = { - NOT = { culture = culture:greek } - culture = { - OR = { - has_cultural_pillar = heritage_byzantine - has_cultural_pillar = heritage_caucasian - } - } - } - add = @better_than_the_alternatives_score - } } cultural_names = { @@ -320,18 +296,6 @@ e_greece = { } add = @correct_culture_primary_score } - if = { - limit = { - NOT = { culture = culture:greek } - culture = { - OR = { - has_cultural_pillar = heritage_byzantine - has_cultural_pillar = heritage_caucasian - } - } - } - add = @better_than_the_alternatives_score - } } d_kosovo = { # Kosovo color = { 229 66 34 } @@ -810,18 +774,6 @@ e_greece = { } add = @correct_culture_primary_score } - if = { - limit = { - NOT = { culture = culture:greek } - culture = { - OR = { - has_cultural_pillar = heritage_byzantine - has_cultural_pillar = heritage_caucasian - } - } - } - add = @better_than_the_alternatives_score - } } diff --git a/common/legends/legend_seeds/00_legend_seeds.txt b/common/legends/legend_seeds/00_legend_seeds.txt index c19f79bb..2bf37943 100644 --- a/common/legends/legend_seeds/00_legend_seeds.txt +++ b/common/legends/legend_seeds/00_legend_seeds.txt @@ -931,7 +931,7 @@ # dynasty = dynasty:499 # OR = { # You must still be in an era where Nordic gods are still seen as kinda cool # culture = culture:norse -# religion = religion:germanic_religion +# religion = religion:folkgerman_religion # } # } # is_valid = { diff --git a/common/men_at_arms_types/NEOW_maa_types.txt b/common/men_at_arms_types/NEOW_maa_types.txt index 078e95be..604eef69 100644 --- a/common/men_at_arms_types/NEOW_maa_types.txt +++ b/common/men_at_arms_types/NEOW_maa_types.txt @@ -403,10 +403,14 @@ NEOW_militia = { has_trait = populist_leader has_lifestyle = martial_lifestyle has_martial_lifestyle_trait_trigger = yes - cp:councillor_marshal = { martial = 13 } + trigger_if = { + limit = { exists = cp:councillor_marshal } + cp:councillor_marshal = { martial = 13 } + } faith = { has_doctrine_parameter = allows_communal_settlement } } } + trigger_if = { limit = { government_has_flag = government_is_landless_minority diff --git a/common/on_action/combat_on_actions.txt b/common/on_action/combat_on_actions.txt new file mode 100644 index 00000000..36f16567 --- /dev/null +++ b/common/on_action/combat_on_actions.txt @@ -0,0 +1,743 @@ +# Root = Combat +# Executed on combat start, when all starting armies have already been added to relevant sides +on_combat_start = { +} + +# Root = Combat side +# scope:army = army joining side +# Executed after an army joins combat, after the combat has already started +on_combat_unit_join_side = { +} + +# Root = Winning combat side +# scope:wipe - Was this a wipe? +on_combat_end_winner = { + events = { + combat_event.0001 # Victorious commander gains progress towards earning "The Undefeated" nickname (obtained after winning 100 victories without a loss). + combat_event.1001 # Winner imprisons commanders/knights on the losing side. + combat_event.2001 # # Commander may become known as a Gajapati if you have the prerequisites + fp1_shieldmaiden.0031 # Track shieldmaiden levelling. + historical_artifacts.0100 # #Save a memorable battle as potential topic for artifacts + combat_event.2101 # Battle Won: glory goes up. +# combat_event.2200 # Hereward beat a Norman + combat_event.3000 # Battle PoI Creation + } + random_events = { + 1000 = 0 + + 20 = artifact.6000 # Chance to loot an enemy banner after winning a battle + 1 = harm.0012 # A conk on the noggin' renders you a-foggin'. + 20 = legend_spread_events.8140 # Make this part of your legend? + } + effect = { + #If you are el Cid you get a special events + if = { + limit = { + side_primary_participant = { has_variable = ongoing_cid_story_cycle } + enemy_side.side_commander.primary_title = title:k_valencia + } + enemy_side.side_commander ?= { save_scope_as = loser } + side_primary_participant = { + set_variable = { + name = cid_title_to_give + value = prev.enemy_side.side_commander.primary_title + } + trigger_event = cid.2000 #Tizona + } + } + else_if = { + limit = { + side_primary_participant = { has_variable = ongoing_cid_story_cycle } + OR = { + enemy_side.side_commander.primary_title = title:c_barcelona + enemy_side.side_commander.primary_title = title:d_barcelona + } + } + enemy_side.side_commander ?= { save_scope_as = loser } + side_primary_participant = { + set_variable = { + name = cid_title_to_give + value = prev.enemy_side.side_commander.primary_title + } + trigger_event = cid.2001 #Colada + } + } + else_if = { + limit = { + side_primary_participant = { has_variable = ongoing_cid_story_cycle } + } + random = { + chance = 10 + enemy_side.side_commander ?= { save_scope_as = loser } + side_primary_participant = { + set_variable = { + name = cid_title_to_give + value = prev.enemy_side.side_commander.primary_title + } + trigger_event = cid.2000 + } + } + } + if = { + limit = { + exists = side_commander + exists = enemy_side.side_commander + } + random = { + chance = { + value = 10 + if = { + limit = { + exists = scope:wipe + } + add = 90 + } + if = { + limit = { + exists = enemy_side.side_commander.primary_title + exists = side_commander.primary_title + enemy_side.side_commander.primary_title.tier >= side_commander.primary_title.tier + } + add = 90 + } + } + combat.location = { + save_scope_as = battle_province + } + side_commander = { + create_character_memory = { + type = battle_won_memory + + participants = { + loser = root.enemy_side.side_commander + ruler = root.enemy_side.side_primary_participant + } + + } + + scope:new_memory = { + save_scope_as = battle_memory + } + + scope:battle_memory = { + set_variable = { + name = battle_location + value = scope:battle_province + } + } + } + } + } + # setup for artifact.4010 + if = { + limit = { + side_commander ?= { + any_character_artifact = { + is_equipped = yes + artifact_slot_type = primary_armament + NOT = { has_variable = artifact_battles_won_var } + } + } + } + side_commander = { + random_character_artifact = { + limit = { + is_equipped = yes + artifact_slot_type = primary_armament + NOT = { has_variable = artifact_battles_won_var } + } + set_variable = { + name = artifact_battles_won_var + value = 1 + } + } + } + } + else_if = { + limit = { + side_commander ?= { + any_character_artifact = { + is_equipped = yes + artifact_slot_type = primary_armament + has_variable = artifact_battles_won_var + } + } + } + side_commander = { + random_character_artifact = { + limit = { + is_equipped = yes + artifact_slot_type = primary_armament + has_variable = artifact_battles_won_var + } + change_variable = { + name = artifact_battles_won_var + add = 1 + } + } + } + } + if = { + limit = { + any_side_knight = { + any_character_artifact = { + is_equipped = yes + artifact_slot_type = primary_armament + NOT = { has_variable = artifact_battles_won_var } + } + } + } + every_side_knight = { + random_character_artifact = { + limit = { + is_equipped = yes + artifact_slot_type = primary_armament + NOT = { has_variable = artifact_battles_won_var } + } + set_variable = { + name = artifact_battles_won_var + value = 1 + } + } + } + } + else_if = { + limit = { + any_side_knight = { + any_character_artifact = { + is_equipped = yes + artifact_slot_type = primary_armament + has_variable = artifact_battles_won_var + } + } + } + every_side_knight = { + random_character_artifact = { + limit = { + is_equipped = yes + artifact_slot_type = primary_armament + has_variable = artifact_battles_won_var + } + change_variable = { + name = artifact_battles_won_var + add = 1 + } + } + } + } + #setup for artifact.4020 + if = { + limit = { + side_commander ?= { + any_character_artifact = { + is_equipped = yes + artifact_slot_type = armor + NOT = { has_variable = artifact_battles_won_var } + } + } + } + side_commander = { + random_character_artifact = { + limit = { + is_equipped = yes + artifact_slot_type = armor + NOT = { has_variable = artifact_battles_won_var } + } + set_variable = { + name = artifact_battles_won_var + value = 1 + } + } + } + } + else_if = { + limit = { + side_commander ?= { + any_character_artifact = { + is_equipped = yes + artifact_slot_type = armor + has_variable = artifact_battles_won_var + } + } + } + side_commander = { + random_character_artifact = { + limit = { + is_equipped = yes + artifact_slot_type = armor + has_variable = artifact_battles_won_var + } + change_variable = { + name = artifact_battles_won_var + add = 1 + } + } + } + } + if = { + limit = { + any_side_knight = { + any_character_artifact = { + is_equipped = yes + artifact_slot_type = armor + NOT = { has_variable = artifact_battles_won_var } + } + } + } + every_side_knight = { + random_character_artifact = { + limit = { + is_equipped = yes + artifact_slot_type = armor + NOT = { has_variable = artifact_battles_won_var } + } + set_variable = { + name = artifact_battles_won_var + value = 1 + } + } + } + } + else_if = { + limit = { + any_side_knight = { + any_character_artifact = { + is_equipped = yes + artifact_slot_type = armor + has_variable = artifact_battles_won_var + } + } + } + every_side_knight = { + random_character_artifact = { + limit = { + is_equipped = yes + artifact_slot_type = armor + has_variable = artifact_battles_won_var + } + change_variable = { + name = artifact_battles_won_var + add = 1 + } + } + } + } + # Acclaimed reveller victory party!!!!! LADS LADS LADS! + if = { + limit = { + OR = { + any_side_knight = { + is_acclaimed = yes + accolade = { + has_accolade_parameter = acclaimed_knight_prestige_from_victory + } + } + any_side_commander = { + is_acclaimed = yes + accolade = { + has_accolade_parameter = acclaimed_knight_prestige_from_victory + } + } + } + } + every_side_knight = { + limit = { + is_acclaimed = yes + accolade = { + has_accolade_parameter = acclaimed_knight_prestige_from_victory + } + } + knight_army.army_owner = { + add_prestige = acclaimed_knight_prestige_from_victory_value + } + } + every_side_commander = { + limit = { + is_acclaimed = yes + accolade = { + has_accolade_parameter = acclaimed_knight_prestige_from_victory + } + } + commanding_army.army_owner = { + add_prestige = acclaimed_knight_prestige_from_victory_value + } + } + } + else_if = { + limit = { + OR = { + any_side_knight = { + is_acclaimed = yes + accolade = { + has_accolade_parameter = acclaimed_knight_prestige_from_victory_high + } + } + any_side_commander = { + is_acclaimed = yes + accolade = { + has_accolade_parameter = acclaimed_knight_prestige_from_victory_high + } + } + } + } + every_side_knight = { + limit = { + is_acclaimed = yes + accolade = { + has_accolade_parameter = acclaimed_knight_prestige_from_victory_high + } + } + knight_army.army_owner = { + add_prestige = acclaimed_knight_prestige_from_victory_value_high + } + } + every_side_commander = { + limit = { + is_acclaimed = yes + accolade = { + has_accolade_parameter = acclaimed_knight_prestige_from_victory_high + } + } + commanding_army.army_owner = { + add_prestige = acclaimed_knight_prestige_from_victory_value_high + } + } + } + # combat gold reward from Camp Mortifican's Tools upgrade: own victories + side_primary_participant = { add_to_list = potential_spoil_claimers } + every_side_commander = { + limit = { + this != root.side_primary_participant + trigger_if = { + limit = { exists = root.combat.combat_war } + is_participant_in_war = root.combat.combat_war + } + } + add_to_list = potential_spoil_claimers + } + every_in_list = { + list = potential_spoil_claimers + limit = { + domicile ?= { has_domicile_parameter = camp_gold_from_victories_or_nearby_battles } + } + root.enemy_side.side_primary_participant = { save_scope_as = losing_side_owner } + send_interface_message = { + type = msg_landless_adventurer_battle_gold + title = camp_gold_from_victories_or_nearby_battles_message_title + desc = camp_gold_from_victories_or_nearby_battles_message_desc_victory + left_icon = root.side_commander + right_icon = root.enemy_side.side_commander + add_short_term_gold = { + value = { + value = 0 + add = root.enemy_side.side_max_army_size + divide = 100 + min = 5 + } + } + } + } + # combat gold reward from Camp Mortifican's Tools upgrade: nearby battles + combat.location.county = { + every_county_province = { + every_province_domicile = { + limit = { + has_domicile_parameter = camp_gold_from_victories_or_nearby_battles + save_temporary_scope_as = domicile_temp + NOR = { + root = { + any_side_commander = { this = scope:domicile_temp.owner } + enemy_side = { + any_side_commander = { this = scope:domicile_temp.owner } + } + } + } + } + root.enemy_side.side_primary_participant = { save_scope_as = losing_side_owner } + owner = { + send_interface_message = { + type = msg_landless_adventurer_battle_gold + title = camp_gold_from_victories_or_nearby_battles_message_title + desc = camp_gold_from_victories_or_nearby_battles_message_desc_nearby + left_icon = root.side_commander + right_icon = root.enemy_side.side_commander + add_short_term_gold = { + value = { + value = 0 + add = root.enemy_side.side_max_army_size + divide = 100 + min = 5 + } + } + } + } + } + } + } + + #Nomads recover head of fallen warrior + mpo_mongol_recovered_head_content_effect = yes + + # Commander trait leveling + every_side_commander = { + commander_trait_leveling_leveling_effect = { XP = 1 } + } + if = { + limit = { + any_side_participant = { + has_character_modifier = boasted_of_victories_modifier + } + } + every_side_participant = { + limit = { + has_character_modifier = boasted_of_victories_modifier + } + add_stress = miniscule_stress_loss + add_prestige = miniscule_prestige_gain + } + } + every_side_participant = { + if = { + limit = { has_variable = accolade_progress } + change_variable = { + name = accolade_progress + add = 1 + } + } + else = { + set_variable = { + name = accolade_progress + value = 1 + } + } + } + } +} + +# Root = Losing combat side +# scope:wipe - Was this a wipe? +on_combat_end_loser = { + events = { + combat_event.0002 # Defeated commander loses shot at getting 'The Undefeated' nickname. + almohad.0003 # Check whether Ibn Tumert should die + fp1_shieldmaiden.0031 # Track shieldmaiden levelling. + combat_event.2111 # Battle Lost: glory goes down. + } + random_events = { + 1000 = 0 + + 1 = harm.0012 # A conk on the noggin' renders you a-foggin'. + } + effect = { + if = { + limit = { + exists = side_commander + exists = enemy_side.side_commander + } + combat.location = { save_scope_as = battle_province } + + side_commander = { + create_character_memory = { + type = battle_lost_memory + + participants = { + winner = root.enemy_side.side_commander + ruler = root.enemy_side.side_primary_participant + } + } + + scope:new_memory = { + save_scope_as = battle_memory + } + + scope:battle_memory = { + set_variable = { + name = battle_location + value = scope:battle_province + } + } + } + } + if = { + limit = { + combat = { warscore_value >= 15 } + } + combat.location = { save_scope_as = battle_province } + side_primary_participant = { + if = { + limit = { is_valid_for_legitimacy_change = yes } + send_interface_toast = { + type = msg_legitimacy_loss + title = legitimacy_loss_toast + left_icon = root.side_primary_participant + right_icon = root.enemy_side.side_primary_participant + custom_tooltip = legitimacy_loss_battle_tt + add_legitimacy = minor_legitimacy_loss + } + } + } + #BP4 marshal offers help event + if = { + limit = { + side_primary_participant = { + is_landed = yes + is_at_war = yes + any_character_war = { + NOT = { + using_cb = peasant_war + } + OR = { + AND = { + primary_defender = prev + defender_war_score <= -25 + } + AND = { + primary_attacker = prev + attacker_war_score <= -25 + } + } + } + NOT = { has_character_flag = had_ach_yearly_events_1003 } + any_councillor = { + has_council_position = councillor_marshal + basic_is_valid_for_yearly_events_trigger = yes + is_at_war = no + NOT = { + is_allied_to = root.enemy_side.side_primary_participant + } + } + } + } + if = { + limit = { + exists = side_commander + } + side_commander = { + save_scope_as = commander + } + } + enemy_side.side_primary_participant = { + save_scope_as = foe + } + side_primary_participant = { + random_character_war = { + limit = { + NOR = { + using_cb = peasant_war + using_cb = nomadic_war + } + OR = { + AND = { + primary_defender = prev + any_war_attacker = { + this = scope:foe + } + defender_war_score <= -25 + } + AND = { + primary_attacker = prev + any_war_defender = { + this = scope:foe + } + attacker_war_score <= -25 + } + } + } + save_scope_as = liege_war + } + random_councillor = { + limit = { + has_council_position = councillor_marshal + } + random = { + chance = 50 + modifier = { + add = 50 + is_ai = no + } + trigger_event = ach_yearly_events.1003 + } + } + } + } + } + + #Nomads recover head of fallen warrior + mpo_mongol_recovered_head_content_effect = yes + + # Commander trait leveling + every_side_commander = { + commander_trait_leveling_leveling_effect = { XP = 0.5 } + } + + if = { + limit = { + any_side_participant = { + has_character_modifier = boasted_of_victories_modifier + } + } + every_side_participant = { + limit = { + has_character_modifier = boasted_of_victories_modifier + } + add_stress = miniscule_stress_gain + add_prestige = miniscule_prestige_gain + } + } + side_primary_participant = { + random = { # chance of inspiring a knight to become eligible for disciplinarian accolade + chance = 2 + modifier = { + factor = accolade_progress # scales with accolade progress + } + modifier = { # must have an eligible knight + NOT = { + root = { + any_side_knight = { + can_unlock_accolade_attribute_trigger = { + ATTRIBUTE = disciplinarian + } + } + } + } + factor = 0 + } + save_scope_as = accolade_liege + set_variable = { + name = accolade_progress + value = 0 + } + root = { + random_side_knight = { + limit = { + can_unlock_accolade_attribute_trigger = { + ATTRIBUTE = disciplinarian + } + } + weight = { + base = 1 + modifier = { + add = 50 + is_acclaimed = yes + } + } + save_scope_as = accolade_knight + } + } + send_interface_message = { + type = msg_accolade_eligibility + title = accolade_disciplinarian_unlock.t + left_icon = scope:accolade_knight + right_icon = scope:accolade_liege + custom_tooltip = accolade_disciplinarian_unlock.tt + scope:accolade_knight = { + set_variable = { + name = disciplinarian_attribute_unlock + value = yes + } + } + } + } + } + } +} diff --git a/common/on_action/death.txt b/common/on_action/death.txt index 99e87690..cb723154 100644 --- a/common/on_action/death.txt +++ b/common/on_action/death.txt @@ -1627,28 +1627,28 @@ on_death = { end_diarchy = yes } - # EP3, Wallada transfers possessions to her heir - if = { - limit = { - root = character:andalusian_0003 - exists = player_heir - } - # save Wallada's scope - save_scope_as = wallada - random_character_artifact = { - limit = { - has_artifact_modifier = double_moon_modifier - } - set_owner = scope:wallada.primary_heir - save_scope_as = double_moon_book - } - primary_heir = { - trigger_event = { - id = ep3_story_cycle_violet_poet.0004 - days = 1 - } - } - } +# # EP3, Wallada transfers possessions to her heir +# if = { +# limit = { +# root = character:andalusian_0003 +# exists = player_heir +# } +# # save Wallada's scope +# save_scope_as = wallada +# random_character_artifact = { +# limit = { +# has_artifact_modifier = double_moon_modifier +# } +# set_owner = scope:wallada.primary_heir +# save_scope_as = double_moon_book +# } +# primary_heir = { +# trigger_event = { +# id = ep3_story_cycle_violet_poet.0004 +# days = 1 +# } +# } +# } # Populate new contracts for laamp heirs. player_heir ?= { diff --git a/common/on_action/travel_on_actions.txt b/common/on_action/travel_on_actions.txt index 7097b755..9ea14c06 100644 --- a/common/on_action/travel_on_actions.txt +++ b/common/on_action/travel_on_actions.txt @@ -917,7 +917,7 @@ travel_events_on_action = { 300 = ep3_laamp_flavor.0060 # Dead Weight 200 = ep3_travel_events.8000 #To Belong Somewhere 200 = ep3_travel_events.8010 #Won't Be Missed - 1000 = ep3_story_cycle_violet_poet.1000 #Nature's Bounty +# 1000 = ep3_story_cycle_violet_poet.1000 #Nature's Bounty #MPO Travel Events 100 = mpo_events_tova.0003 #A Jest Too Far diff --git a/common/province_terrain/01_province_properties.txt b/common/province_terrain/01_province_properties.txt index b3896d7d..ca6c93b1 100644 --- a/common/province_terrain/01_province_properties.txt +++ b/common/province_terrain/01_province_properties.txt @@ -2497,7 +2497,7 @@ } #### k_bavaria -### d_bavaria +### d_upper_bavaria ## c_regensburg # b_regensburg 2964 ={ @@ -2615,7 +2615,7 @@ 2968 ={ winter_severity_bias = 0.55 } -### d_nordgau +### d_east_franconia ## c_eichstadt # b_eichtstad 2878 ={ @@ -2746,7 +2746,7 @@ 2972 ={ winter_severity_bias = 0.55 } -### d_augsburg +### d_bavarian_swabia ## c_augsburg # b_augsburg 2778 ={ @@ -4347,7 +4347,7 @@ 3726 ={ winter_severity_bias = 0.0 } -### d_achaia +### d_peloponnese ## c_achaia # b_patras 476 ={ @@ -10722,7 +10722,7 @@ } #### k_ruthenia -### d_kiev +### d_kyiv ## c_kiev # b_kiev 547 ={ @@ -10865,7 +10865,7 @@ 5111 ={ winter_severity_bias = 0.60 } -### d_pereyaslavl +### d_poltava ## c_pereyaslavl # b_pereyaslavl 555 ={ @@ -11911,7 +11911,7 @@ ##### e_caspian-pontic_steppe #### k_pontic_steppe -### d_yedisan +### d_dnipro ## c_odessa # b_odessa 5268 ={ @@ -12002,7 +12002,7 @@ 5275 ={ winter_severity_bias = 0.50 } -### d_levedia +### d_kharkiv ## c_khortytsia # b_khortytsia 557 ={ @@ -12178,7 +12178,7 @@ } #### k_caucasus -### d_khazaria +### d_volgograd ## c_sarkel # b_sarkel 607 ={ @@ -12368,7 +12368,7 @@ } #### k_caspian_steppe -### d_itil +### d_astrakhan ## c_itil # b_itil 620 ={ diff --git a/common/scripted_effects/00_decisions_effects.txt b/common/scripted_effects/00_decisions_effects.txt index 7953d5e2..33231762 100644 --- a/common/scripted_effects/00_decisions_effects.txt +++ b/common/scripted_effects/00_decisions_effects.txt @@ -3761,10 +3761,10 @@ flagellation_decision_effect = { # text = cossack_custom_de_jure # title:k_cossack = { set_de_jure_liege_title = title:e_caspian-pontic_steppe } # title:d_tana = { set_de_jure_liege_title = title:k_cossack } -# title:d_red_levedia = { set_de_jure_liege_title = title:k_cossack } -# title:d_levedia = { set_de_jure_liege_title = title:k_cossack } +# title:d_zaporizhzhia = { set_de_jure_liege_title = title:k_cossack } +# title:d_kharkiv = { set_de_jure_liege_title = title:k_cossack } # title:d_don_valley = { set_de_jure_liege_title = title:k_cossack } -# title:d_itil = { set_de_jure_liege_title = title:k_cossack } +# title:d_astrakhan = { set_de_jure_liege_title = title:k_cossack } # } # # ##Add Cossack Culture to all de jure duchies in the Cossack Kingdom diff --git a/common/scripted_effects/06_dlc_ce1_legend_effects.txt b/common/scripted_effects/06_dlc_ce1_legend_effects.txt index 7af519be..d36efa0e 100644 --- a/common/scripted_effects/06_dlc_ce1_legend_effects.txt +++ b/common/scripted_effects/06_dlc_ce1_legend_effects.txt @@ -617,7 +617,7 @@ grab_mythical_founder_effect = { # } # 10 = { # Odin # trigger = { -# root.faith = faith:norse_pagan +# root.faith = faith:folketro # OR = { # root.primary_title = title:k_norway # root.primary_title = title:k_sweden @@ -1621,7 +1621,7 @@ get_appropriate_exotic_location = { 999 = { # Vinland, must be into vikings and adventures and all that trigger = { OR = { - religion = religion:germanic_religion + religion = religion:folkgerman_religion culture = { has_cultural_pillar = heritage_north_germanic } culture = { has_innovation = innovation_varangian_adventurers } } @@ -1634,7 +1634,7 @@ get_appropriate_exotic_location = { 999 = { # Sunset invasion memes trigger = { OR = { - religion = religion:germanic_religion + religion = religion:folkgerman_religion culture = { has_cultural_pillar = heritage_north_germanic } culture = { has_innovation = innovation_varangian_adventurers } } diff --git a/common/scripted_triggers/00_major_decision_triggers.txt b/common/scripted_triggers/00_major_decision_triggers.txt index e4c07e0e..94fb6085 100644 --- a/common/scripted_triggers/00_major_decision_triggers.txt +++ b/common/scripted_triggers/00_major_decision_triggers.txt @@ -72,13 +72,13 @@ launch_hungarian_migration_misplaced_count_suitable_liege_trigger = { # culture = { has_cultural_pillar = heritage_west_germanic } # culture = { has_cultural_pillar = heritage_brythonic } # } -# NOT = { religion = religion:germanic_religion } +# NOT = { religion = religion:folkgerman_religion } #} #negotiate_the_danelaw_norse_side_trigger = { # OR = { # culture = { has_cultural_pillar = heritage_north_germanic } # culture = culture:norman -# religion = religion:germanic_religion +# religion = religion:folkgerman_religion # } #} # diff --git a/common/scripted_triggers/01_fp1_scripted_triggers.txt b/common/scripted_triggers/01_fp1_scripted_triggers.txt new file mode 100644 index 00000000..c9e1e15f --- /dev/null +++ b/common/scripted_triggers/01_fp1_scripted_triggers.txt @@ -0,0 +1,361 @@ + +################################################## +# General Triggers + +eligible_for_fp1_dynasty_legacies_trigger = { + has_fp1_dlc_trigger = yes + OR = { + game_rule_unrestricted_dynasty_legacies_trigger = yes + # 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:folkgerman_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:folkgerman_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:folkgerman_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:folketro } + # For simplicity, exclude wars. + is_at_war = no +} diff --git a/events/artifacts/historical_artifacts_events.txt b/events/artifacts/historical_artifacts_events.txt index 7443702e..6cbd3132 100644 --- a/events/artifacts/historical_artifacts_events.txt +++ b/events/artifacts/historical_artifacts_events.txt @@ -400,9 +400,9 @@ historical_artifacts.0023 = { # limit = { # has_dlc_feature = royal_court # current_date >= 1064.1.1 -# exists = title:d_bavaria.holder +# exists = title:d_upper_bavaria.holder # } -# title:d_bavaria.holder = { +# title:d_upper_bavaria.holder = { # create_artifact_wall_sword_attila_effect = { OWNER = this } # dynasty:708 = { # random_dynasty_member = { diff --git a/events/dlc/ep3/ep3_decisions_events.txt b/events/dlc/ep3/ep3_decisions_events.txt index ca6e888e..82e81a45 100644 --- a/events/dlc/ep3/ep3_decisions_events.txt +++ b/events/dlc/ep3/ep3_decisions_events.txt @@ -7358,10 +7358,10 @@ ep3_decisions_event.6001 = { has_trait = craven } } - modifier = { # Asen and Peter always try to go to war with you - add = 1000 - primary_title = title:d_laamp_asen - } +# modifier = { # Asen and Peter always try to go to war with you +# add = 1000 +# primary_title = title:d_laamp_asen +# } } } @@ -7383,10 +7383,10 @@ ep3_decisions_event.6001 = { factor = 2 root_military_strength_higher_than_military_target_value < target_military_strength_root_value } - modifier = { # Asen and Peter always try to go to war with you - factor = 0 - primary_title = title:d_laamp_asen - } +# modifier = { # Asen and Peter always try to go to war with you +# factor = 0 +# primary_title = title:d_laamp_asen +# } } } @@ -7609,10 +7609,10 @@ ep3_decisions_event.6001 = { has_trait = callous } } - modifier = { # Asen and Peter always try to go to war with you - factor = 0 - primary_title = title:d_laamp_asen - } +# modifier = { # Asen and Peter always try to go to war with you +# factor = 0 +# primary_title = title:d_laamp_asen +# } } } diff --git a/events/dlc/ep3/ep3_laamp_events.txt b/events/dlc/ep3/ep3_laamp_events.txt index dfda93d9..9ed4d6d1 100644 --- a/events/dlc/ep3/ep3_laamp_events.txt +++ b/events/dlc/ep3/ep3_laamp_events.txt @@ -1186,6 +1186,410 @@ ep3_laamps.0032 = { } } +ep3_laamps.1030 = { + type = character_event + window = fullscreen_event + title = ep3_laamps.1030.t + desc = { + desc = ep3_laamps.1030.desc + first_valid = { + triggered_desc = { + trigger = { exists = scope:laamp_heir } + desc = ep3_laamps.1030.heir + } + triggered_desc = { + trigger = { exists = scope:laamp_liege } + desc = ep3_laamps.1030.liege + } + desc = ep3_laamps.1030.new + } + } + theme = realm + left_portrait = { + character = root + animation = marshal + } + lower_right_portrait = scope:laamp_inheritor + override_background = { reference = ep3_fullscreen_adventurer_positive } + cooldown = { days = 5 } + + trigger = { exists = scope:laamp_inheritor } + + immediate = { + # Save scopes for loc + primary_title = { save_scope_as = old_primary_title } + capital_province = { save_scope_as = old_capital_province } + if = { + limit = { top_liege != this } + liege = { save_scope_as = old_liege } + } + # Transfer landed titles + every_held_title = { + title_tier > barony + limit = { + OR = { + is_landless_type_title = no + is_nomad_title = yes + } + } + add_to_list = target_titles + } + create_title_and_vassal_change = { + type = conquest + save_scope_as = change + add_claim_on_loss = no + } + hidden_effect = { + every_in_list = { + list = target_titles + change_title_holder_include_vassals = { + holder = scope:laamp_inheritor + change = scope:change + } + } + resolve_title_and_vassal_change = scope:change + } + # Create Adventurer + create_landless_minority_title_effect = { + REASON = flag:voluntary + FLAVOR_CHAR = scope:laamp_inheritor + } + scope:laamp_inheritor = { + # Tooltip for player + custom_tooltip = become_landless_adventurer_decision_title_scope_tt + # Create a loving family so inheritance isn't so borked + if = { + limit = { has_character_flag = new_laamp_inheritor } + trigger_event = game_rule.1001 + remove_character_flag = new_laamp_inheritor + } + } + scope:old_liege ?= { trigger_event = ep3_laamps.1032 } + adventurer_prestige_reset_effect = yes + hidden_effect = { + every_held_title = { + limit = { + is_noble_family_title = yes + } + root = { destroy_title = prev } + } + } + } + + option = { + name = ep3_laamps.1030.a + create_landless_minority_title_tooltip_effect = yes + add_prestige = medium_prestige_gain + add_character_modifier = { + modifier = ep3_voluntary_laamp_character_modifier + years = 5 + } + } + } + + # Liege event + ep3_laamps.1032 = { + type = letter_event + opening = ep3_laamps.1032.opening + desc = ep3_laamps.1032.desc + sender = scope:minority_leader + + trigger = { is_ai = no } + + immediate = { + scope:minority_leader = { create_landless_minority_title_tooltip_effect = yes } + } + + option = { + name = ep3_laamps.1032.a + } + } + ################################################## + # Become Adventurer - Revocation + # by Joe Parkin + # 0040-0041 + ################################################## + + # Come back + + scripted_trigger ep3_laamp_revoked_title_trigger = { + recent_history = { type = revoked days = 1 } + previous_holder = root + } + + ep3_laamps.0040 = { + type = character_event + window = fullscreen_event + title = ep3_laamps.0040.t + desc = { + first_valid = { + triggered_desc = { + trigger = { + scope:actor = { is_close_family_of = root } + } + desc = ep3_laamps.0040.family + } + desc = ep3_laamps.0040.other + } + desc = ep3_laamps.0040.desc + } + theme = realm + left_portrait = { + character = root + animation = marshal + } + lower_left_portrait = scope:alt_1 + lower_center_portrait = scope:alt_2 + lower_right_portrait = scope:alt_3 + override_background = { reference = ep3_fullscreen_adventurer_negative } + cooldown = { days = 5 } + + # The AI was managing to get this event somehow. + trigger = { + is_ai = no + NOT = { has_character_flag = become_laamp_event_cooldown } + } + + immediate = { + add_character_flag = { + flag = become_laamp_event_cooldown + days = 5 + } + # Find alternative rulers to play as + find_playable_relatives_effect = yes + # Portrait scopes + if = { + limit = { + NOR = { + exists = scope:alt_3 + scope:alt_1 ?= scope:actor + scope:alt_2 ?= scope:actor + } + } + scope:actor = { save_scope_as = alt_3 } + } + # Create Adventurer + hidden_effect = { + create_landless_adventurer_title_effect = { + REASON = flag:revocation + FLAVOR_CHAR = scope:actor + } + } + adventurer_prestige_reset_effect = yes + } + + option = { + name = ep3_laamps.0040.a + create_landless_adventurer_title_tooltip_effect = yes + add_internal_flag = special + scope:actor = { trigger_event = ep3_laamps.0042 } + } + + option = { + name = ep3_laamps.0001.b + trigger = { exists = scope:alt_1 } + laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_1 } + } + option = { + name = ep3_laamps.0001.c + trigger = { exists = scope:alt_2 } + laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_2 } + } + option = { + name = ep3_laamps.0001.d + trigger = { + exists = scope:alt_3 + scope:alt_3 = { playable_relative_trigger = yes } + } + laamp_switch_playable_character_effect = { NEW_CHARACTER = scope:alt_3 } + } + option = { + name = ep3_laamps.0001.e + laamp_game_over_option_effect = yes + } + } + + # Setup event + ep3_laamps.0041 = { + type = character_event + hidden = yes + + trigger = { + has_ep3_dlc_trigger = yes + is_landed = no + is_valid_for_laampdom = yes + } + + immediate = { + save_scope_as = adventurer + # AI chance + if = { + limit = { + is_ai = yes + ai_can_valid_to_create_laamp_trigger = yes + trigger_if = { # Don't fill the adventurer pool with revoked counts + limit = { + scope:lost_primary_title.tier <= tier_county + } + global_variable_list_size = { + name = laamps_tally + value < seventyfive_percent_of_max_desired_laamps_value + } + } + } + random = { + chance = 0 + modifier = { add = ep3_laamp_chance_score_value } + create_landless_adventurer_title_effect = { + REASON = flag:revocation + FLAVOR_CHAR = scope:actor + } + scope:actor = { trigger_event = ep3_laamps.0042 } + } + } + # Player event + else = { + trigger_event = { id = ep3_laamps.0040 } + } + } + } + + # Revoker event + ep3_laamps.0042 = { + type = letter_event + opening = ep3_laamps.0003.opening + desc = ep3_laamps.0042.desc + sender = scope:adventurer + + trigger = { is_ai = no } + + immediate = { + create_landless_adventurer_title_tooltip_effect = yes + } + + option = { + name = ep3_laamps.0042.a + } + } +ep3_laamps.1030 = { + type = character_event + window = fullscreen_event + title = ep3_laamps.1030.t + desc = { + desc = ep3_laamps.1030.desc + first_valid = { + triggered_desc = { + trigger = { exists = scope:laamp_heir } + desc = ep3_laamps.1030.heir + } + triggered_desc = { + trigger = { exists = scope:laamp_liege } + desc = ep3_laamps.1030.liege + } + desc = ep3_laamps.1030.new + } + } + theme = realm + left_portrait = { + character = root + animation = marshal + } + lower_right_portrait = scope:laamp_inheritor + override_background = { reference = ep3_fullscreen_adventurer_positive } + cooldown = { days = 5 } + + trigger = { exists = scope:laamp_inheritor } + + immediate = { + # Save scopes for loc + primary_title = { save_scope_as = old_primary_title } + capital_province = { save_scope_as = old_capital_province } + if = { + limit = { top_liege != this } + liege = { save_scope_as = old_liege } + } + # Transfer landed titles + every_held_title = { + title_tier > barony + limit = { + OR = { + is_landless_type_title = no + is_nomad_title = yes + } + } + add_to_list = target_titles + } + create_title_and_vassal_change = { + type = conquest + save_scope_as = change + add_claim_on_loss = no + } + hidden_effect = { + every_in_list = { + list = target_titles + change_title_holder_include_vassals = { + holder = scope:laamp_inheritor + change = scope:change + } + } + resolve_title_and_vassal_change = scope:change + } + # Create Adventurer + create_landless_minority_title_effect = { + REASON = flag:voluntary + FLAVOR_CHAR = scope:laamp_inheritor + } + scope:laamp_inheritor = { + # Tooltip for player + custom_tooltip = become_landless_adventurer_decision_title_scope_tt + # Create a loving family so inheritance isn't so borked + if = { + limit = { has_character_flag = new_laamp_inheritor } + trigger_event = game_rule.1001 + remove_character_flag = new_laamp_inheritor + } + } + scope:old_liege ?= { trigger_event = ep3_laamps.1032 } + adventurer_prestige_reset_effect = yes + hidden_effect = { + every_held_title = { + limit = { + is_noble_family_title = yes + } + root = { destroy_title = prev } + } + } + } + + option = { + name = ep3_laamps.1030.a + create_landless_minority_title_tooltip_effect = yes + add_prestige = medium_prestige_gain + add_character_modifier = { + modifier = ep3_voluntary_laamp_character_modifier + years = 5 + } + } + } + + # Liege event + ep3_laamps.1032 = { + type = letter_event + opening = ep3_laamps.1032.opening + desc = ep3_laamps.1032.desc + sender = scope:minority_leader + + trigger = { is_ai = no } + + immediate = { + scope:minority_leader = { create_landless_minority_title_tooltip_effect = yes } + } + + option = { + name = ep3_laamps.1032.a + } + } + ################################################## # Become Adventurer - Revocation # by Joe Parkin diff --git a/events/dlc/fp1/fp1_jomsvikings_events.txt b/events/dlc/fp1/fp1_jomsvikings_events.txt index 43e85089..18354641 100644 --- a/events/dlc/fp1/fp1_jomsvikings_events.txt +++ b/events/dlc/fp1/fp1_jomsvikings_events.txt @@ -620,7 +620,7 @@ scripted_trigger fp1_viable_target_for_jomsviking_aggression_trigger = { holder = root # The Jomsvikings won't pillage faithful non-reformist Asatru. Much. - NOT = { faith = faith:norse_pagan } + NOT = { faith = faith:folketro } # Otherwise, they need something coastal or nearby. OR = { @@ -684,7 +684,7 @@ fp1_jomsvikings.0011 = { # Reformed Asatruans. triggered_desc = { trigger = { - religion = religion:germanic_religion + religion = religion:folkgerman_religion faith = { NOT = { has_doctrine_parameter = unreformed } } @@ -695,7 +695,7 @@ fp1_jomsvikings.0011 = { triggered_desc = { trigger = { NAND = { - religion = religion:germanic_religion + religion = religion:folkgerman_religion faith = { has_doctrine_parameter = unreformed } } } @@ -712,7 +712,7 @@ fp1_jomsvikings.0011 = { # Ideological, reformist. triggered_desc = { trigger = { - religion = religion:germanic_religion + religion = religion:folkgerman_religion faith = { NOT = { has_doctrine_parameter = unreformed } } @@ -767,7 +767,7 @@ fp1_jomsvikings.0011 = { # Extra rage is reserved for Germanic reformists, as they're the traitoriest traitors. modifier = { add = 1 - religion = religion:germanic_religion + religion = religion:folkgerman_religion faith = { NOT = { has_doctrine_parameter = unreformed } } @@ -780,7 +780,7 @@ fp1_jomsvikings.0011 = { ## Reformed Germanics get a shorter cooldown. if = { limit = { - religion = religion:germanic_religion + religion = religion:folkgerman_religion faith = { NOT = { has_doctrine_parameter = unreformed } } @@ -2074,7 +2074,7 @@ fp1_jomsvikings.1001 = { # The gods forsake us! option = { name = fp1_jomsvikings.1001.a - trigger = { faith = faith:norse_pagan } + trigger = { faith = faith:folketro } # No more benefits for pious Norse pagans. custom_tooltip = fp1_jomsvikings.1001.a.tt @@ -2090,7 +2090,7 @@ fp1_jomsvikings.1001 = { option = { name = fp1_jomsvikings.1001.b trigger = { - NOT = { faith = faith:norse_pagan } + NOT = { faith = faith:folketro } } # No more Jomsviking piracy! @@ -2107,7 +2107,7 @@ fp1_jomsvikings.1001 = { option = { name = fp1_jomsvikings.1001.c trigger = { - NOT = { faith = faith:norse_pagan } + NOT = { faith = faith:folketro } } # No more Jomsviking piracy! @@ -2208,7 +2208,7 @@ fp1_jomsvikings.1011 = { every_player = { limit = { OR = { - religion = religion:germanic_religion + religion = religion:folkgerman_religion save_temporary_scope_as = neighbouring_players scope:founder = { any_neighboring_and_across_water_top_liege_realm_owner = { this = scope:neighbouring_players } diff --git a/events/dlc/fp1/fp1_major_decision_events.txt b/events/dlc/fp1/fp1_major_decision_events.txt index 6fe9489d..0704890c 100644 --- a/events/dlc/fp1/fp1_major_decision_events.txt +++ b/events/dlc/fp1/fp1_major_decision_events.txt @@ -543,7 +543,7 @@ fp1_major_decisions.0031 = { every_player = { limit = { OR = { - religion = religion:germanic_religion + religion = religion:folkgerman_religion save_temporary_scope_as = neighbouring_players scope:founder = { any_neighboring_and_across_water_top_liege_realm_owner = { this = scope:neighbouring_players } diff --git a/events/dlc/fp1/fp1_yearly_events_oltner.txt b/events/dlc/fp1/fp1_yearly_events_oltner.txt index 26496be8..55f7c62c 100644 --- a/events/dlc/fp1/fp1_yearly_events_oltner.txt +++ b/events/dlc/fp1/fp1_yearly_events_oltner.txt @@ -1141,7 +1141,7 @@ fp1_yearly.2200 = { OR = { culture = { has_cultural_pillar = heritage_north_germanic } - religion = religion:germanic_religion + religion = religion:folkgerman_religion } OR = { @@ -2230,7 +2230,7 @@ fp1_yearly.2600 = { OR = { culture = { has_cultural_pillar = heritage_north_germanic } - religion = religion:germanic_religion + religion = religion:folkgerman_religion } faith = { diff --git a/events/dlc/fp3/fp3_story_cycle_zanj_rebellion_events.txt b/events/dlc/fp3/fp3_story_cycle_zanj_rebellion_events.txt index 335509e4..22f8e62a 100644 --- a/events/dlc/fp3/fp3_story_cycle_zanj_rebellion_events.txt +++ b/events/dlc/fp3/fp3_story_cycle_zanj_rebellion_events.txt @@ -1,726 +1,726 @@ -namespace = fp3_story_cycle_zanj_rebellion_events - -### Ali Ibn Muhammad and Zanj Rebellion Setup -fp3_story_cycle_zanj_rebellion_events.0001 = { - scope = none - hidden = yes - - immediate = { - spawn_zanj_leader_character_effect = yes - scope:zanj_leader = { - save_scope_as = story_owner - create_story = story_zanj_rebellion - give_nickname = nick_albaghid - } - - title:c_basra.holder = { - add_visiting_courtier = scope:zanj_leader - } - title:c_basra.holder.top_liege = { - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0002 - } - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0005 - days = { 60 120 } - } - } - } -} - -### Ali Ibn Muhammad riling up locals in Basra -fp3_story_cycle_zanj_rebellion_events.0002 = { - type = character_event - theme = intrigue - override_background = { reference = wilderness_wetlands } - title = fp3_story_cycle_zanj_rebellion_events.0002.t - desc = fp3_story_cycle_zanj_rebellion_events.0002.desc - - left_portrait = { - character = root - animation = marshal - } - right_portrait = { - character = scope:zanj_leader - animation = scheme - } - - immediate = { - scope:zanj_leader = { - save_scope_as = outspoken_rebel - } - } - - #Try to arrest Ali - option = { - name = fp3_story_cycle_zanj_rebellion_events.0002.a - duel = { - skill = intrigue - target = scope:outspoken_rebel - 50 = { - # You arrest Ali Ibn Muhammad - desc = fp3_story_cycle_zanj_rebellion_events.0002.a.success - compare_modifier = { - value = scope:duel_value - multiplier = 3.5 - min = -49 - } - send_interface_toast = { - title = fp3_story_cycle_zanj_rebellion_events.0002.a.success - left_icon = root - right_icon = scope:outspoken_rebel - rightfully_imprison_character_effect = { - TARGET = scope:outspoken_rebel - IMPRISONER = root - } - } - inherit_zanj_rebellion_effect = yes - } - 50 = { - # Ali Ibn Muhammad escapes - desc = fp3_story_cycle_zanj_rebellion_events.0002.a.failure - compare_modifier = { - value = scope:duel_value - multiplier = -3.5 - min = -49 - } - send_interface_toast = { - title = fp3_story_cycle_zanj_rebellion_events.0002.a.failure - custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt - custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad - left_icon = root - right_icon = scope:outspoken_rebel - } - hidden_effect = { - scope:zanj_leader = { - change_variable = { - name = zanj_rebellion_strength_score - add = 4 - } - } - title:c_baghdad.holder = { - hidden_effect = { - title:c_baghdad.holder = { - add_visiting_courtier = scope:outspoken_rebel - } - } - } - title:c_basra.holder.top_liege = { - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0003 - days = { 30 60 } - } - } - } - } - } - root = { - progress_towards_rival_effect = { - REASON = fp3_zanj_rebellion_opressed_me - CHARACTER = scope:outspoken_rebel - OPINION = default_rival_opinion - } - } - stress_impact = { - paranoid = medium_stress_impact_loss - just = minor_stress_impact_loss - callous = minor_stress_impact_loss - sadistic = minor_stress_impact_loss - trusting = medium_stress_impact_gain - forgiving = medium_stress_impact_gain - compassionate = medium_stress_impact_gain - } - ai_chance = { - base = 100 - modifier = { - factor = 0.5 - OR = { - has_trait = trusting - has_trait = forgiving - has_trait = compassionate - } - } - } - } - - #Ignore Ali - option = { - name = fp3_story_cycle_zanj_rebellion_events.0002.c - custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt - scope:zanj_leader = { - change_variable = { - name = zanj_rebellion_strength_score - add = 2 - } - } - custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad - hidden_effect = { - title:c_baghdad.holder = { - add_visiting_courtier = scope:outspoken_rebel - } - } - title:c_basra.holder.top_liege = { - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0003 - days = { 30 60 } - } - } - stress_impact = { - paranoid = medium_stress_impact_gain - just = minor_stress_impact_gain - callous = minor_stress_impact_gain - sadistic = medium_stress_impact_gain - trusting = medium_stress_impact_loss - forgiving = medium_stress_impact_loss - compassionate = medium_stress_impact_loss - } - ai_chance = { - base = 100 - modifier = { - factor = 0.5 - OR = { - has_trait = paranoid - has_trait = just - has_trait = callous - has_trait = sadistic - } - } - } - } -} - -### Setup to find correct scope for event 0004 and check if Ali is dead or imprisoned -fp3_story_cycle_zanj_rebellion_events.0003 = { - scope = none - hidden = yes - - immediate = { - if ={ - #check if Ali is still alive and not in prison and is not an inheritor of the rebellion - limit = { - scope:zanj_leader = { - AND = { - is_alive = yes - is_imprisoned = no - NOT = { has_character_flag = new_zanj_leader } - } - } - } - title:c_baghdad.holder.top_liege = { - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0004 - } - } - } - } -} - -### Ali Ibn Muhammad claims divinity -fp3_story_cycle_zanj_rebellion_events.0004 = { - type = character_event - theme = faith - title = fp3_story_cycle_zanj_rebellion_events.0004.t - desc = fp3_story_cycle_zanj_rebellion_events.0004.desc - - left_portrait = { - character = root - animation = dismissal - } - right_portrait = { - character = scope:zanj_leader - animation = personality_zealous - } - - #Contest Ali Ibn Muhammad's claims - option = { - name = fp3_story_cycle_zanj_rebellion_events.0004.a - duel = { - skill = learning - target = scope:zanj_leader - 50 = { - # You disprove Ali's claims - desc = fp3_story_cycle_zanj_rebellion_events.0004.a.success - compare_modifier = { - value = scope:duel_value - multiplier = 3.5 - min = -49 - } - send_interface_toast = { - title = fp3_story_cycle_zanj_rebellion_events.0004.a.success - add_piety = medium_piety_gain - add_prestige = minor_prestige_gain - left_icon = root - right_icon = scope:zanj_leader - } - } - 50 = { - # Ali Ibn Muhammad validates his claims - desc = fp3_story_cycle_zanj_rebellion_events.0004.a.failure - compare_modifier = { - value = scope:duel_value - multiplier = -3.5 - min = -49 - } - custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt - send_interface_toast = { - title = fp3_story_cycle_zanj_rebellion_events.0004.a.failure - left_icon = root - right_icon = scope:zanj_leader - - scope:zanj_leader = { - add_trait = sayyid - add_pressed_claim = title:e_arabia - change_variable = { - name = zanj_rebellion_strength_score - add = 4 - } - } - } - } - } - root = { - progress_towards_rival_effect = { - REASON = fp3_zanj_rebellion_opressed_me - CHARACTER = scope:zanj_leader - OPINION = default_rival_opinion - } - } - stress_impact = { - paranoid = minor_stress_impact_loss - just = minor_stress_impact_loss - zealous = medium_stress_impact_loss - trusting = medium_stress_impact_gain - forgiving = medium_stress_impact_gain - cynical = medium_stress_impact_gain - } - ai_chance = { - base = 100 - modifier = { - factor = 0.5 - OR = { - has_trait = cynical - has_trait = trusting - has_trait = forgiving - } - } - } - } - - #Ignore Ali - option = { - name = fp3_story_cycle_zanj_rebellion_events.0004.b - custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt - - scope:zanj_leader = { - add_trait = sayyid - add_pressed_claim = title:e_arabia - change_variable = { - name = zanj_rebellion_strength_score - add = 2 - } - } - stress_impact = { - paranoid = minor_stress_impact_gain - just = minor_stress_impact_gain - zealous = medium_stress_impact_gain - trusting = minor_stress_impact_loss - forgiving = medium_stress_impact_loss - cynical = medium_stress_impact_loss - } - ai_chance = { - base = 100 - modifier = { - factor = 0.5 - OR = { - has_trait = paranoid - has_trait = just - has_trait = zealous - } - } - } - } -} - -### Setup event to find the correct scope and check if Ali or the current Zanj Leader is dead or imprisoned -fp3_story_cycle_zanj_rebellion_events.0005 = { - scope = none - hidden = yes - immediate = { - if = { - limit = { - scope:zanj_leader = { - OR = { - is_imprisoned = yes - is_alive = no - is_landed = yes - } - } - } - inherit_zanj_rebellion_effect = yes - } - title:c_basra.holder.top_liege = { - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0006 - } - } - } -} - -### A Zanj Steps Forth -fp3_story_cycle_zanj_rebellion_events.0006 = { - type = character_event - theme = corruption - title = fp3_story_cycle_zanj_rebellion_events.0006.t - desc = { - desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.a - - triggered_desc = { - trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } } - desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.b - } - - desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.c - } - - left_portrait = { - character = root - animation = eyeroll - } - - right_portrait = { - character = scope:outspoken_rebel - animation = worry - } - - lower_left_portrait = { - trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } } - character = scope:zanj_leader - } - - immediate = { - if = { - limit = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } } - spawn_zanj_representative_character_effect = yes - scope:zanj_representative = { save_scope_as = outspoken_rebel } - } - else = { - scope:zanj_leader = { save_scope_as = outspoken_rebel } - } - } - #Give Basra to the Zanj - option = { - name = fp3_story_cycle_zanj_rebellion_events.0006.a - - create_title_and_vassal_change = { - type = independency - save_scope_as = change - add_claim_on_loss = no - } - - title:c_basra = { - set_county_culture = culture:east_bantu - set_county_faith = faith:azariqa - } - - show_as_tooltip = { # UI/UX - title:c_basra = { - change_title_holder = { - holder = scope:outspoken_rebel - change = scope:change - } - } - } - - scope:outspoken_rebel = { - becomes_independent = { - change = scope:change - } - add_truce_both_ways = { - character = root - years = 10 - name = fp3_landed_zanj_reason - } - } - - if = { - limit = { - NOT = { title:c_basra.holder = root } - } - add_tyranny = 30 - set_relation_rival = { - reason = fp3_rival_gave_title_away - target = title:c_basra.holder - } - } - - hidden_effect = { - title:c_basra = { - change_title_holder = { - holder = scope:outspoken_rebel - change = scope:change - } - every_de_jure_county = { - change_title_holder = { - holder = scope:outspoken_rebel - change = scope:change - } - } - } - scope:zanj_leader = { - random_owned_story = { - type = story_zanj_rebellion - end_story = yes - } - } - } - resolve_title_and_vassal_change = scope:change - - stress_impact = { - compassionate = medium_stress_impact_loss - just = minor_stress_impact_loss - forgiving = minor_stress_impact_loss - generous = medium_stress_impact_loss - content = medium_stress_impact_loss - callous = medium_stress_impact_gain - sadistic = major_stress_impact_gain - ambitious = medium_stress_impact_gain - greedy = medium_stress_impact_gain - } - ai_chance = { - base = 100 - modifier = { - factor = 0.5 - OR = { - has_trait = callous - has_trait = sadistic - has_trait = ambitious - has_trait = greedy - } - } - } - } - - #Make minor concessions to the Zanj - option = { - name = fp3_story_cycle_zanj_rebellion_events.0006.b - - scope:zanj_leader = { - change_variable = { - name = zanj_rebellion_strength_score - add = 3 - } - } - custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt - hidden_effect = { - title:c_basra.holder = { - if = { - limit = { scope:zanj_leader != scope:outspoken_rebel} - add_visiting_courtier = scope:zanj_leader - } - add_visiting_courtier = scope:outspoken_rebel - } - } - - if = { - limit = { - NOT = { title:c_basra.holder = root } - } - progress_towards_rival_effect = { - REASON = fp3_zanj_rebellion_interfered_with_my_workers - CHARACTER = title:c_basra.holder - OPINION = default_rival_opinion - } - } - - title:c_basra = { - add_county_modifier = { - modifier = fp3_zanj_rebellion_work_concessions_modifier - years = 5 - } - } - - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0007 - days = { 30 60 } - } - stress_impact = { - compassionate = minor_stress_impact_loss - just = minor_stress_impact_loss - forgiving = minor_stress_impact_loss - generous = minor_stress_impact_loss - content = minor_stress_impact_loss - callous = minor_stress_impact_gain - sadistic = medium_stress_impact_gain - ambitious = minor_stress_impact_gain - greedy = minor_stress_impact_gain - } - ai_chance = { - base = 100 - modifier = { - factor = 0.5 - OR = { - has_trait = callous - has_trait = sadistic - has_trait = ambitious - has_trait = greedy - } - } - } - } - - #Ignore the Zanj - option = { - name = fp3_story_cycle_zanj_rebellion_events.0006.c - - scope:zanj_leader = { - change_variable = { - name = zanj_rebellion_strength_score - add = 5 - } - } - custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt - hidden_effect = { - title:c_basra.holder = { - add_visiting_courtier = scope:zanj_leader - add_visiting_courtier = scope:zanj_representative - } - } - - if = { - limit = { - NOT = { title:c_basra.holder = root } - } - - progress_towards_friend_effect = { - REASON = fp3_rival_stayed_out_of_my_business - CHARACTER = title:c_basra.holder - OPINION = default_friend_opinion - } - } - - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0007 - days = { 30 60 } - } - - stress_impact = { - compassionate = minor_stress_impact_gain - just = minor_stress_impact_gain - forgiving = minor_stress_impact_gain - generous = minor_stress_impact_gain - content = minor_stress_impact_gain - callous = minor_stress_impact_loss - sadistic = medium_stress_impact_loss - ambitious = minor_stress_impact_loss - greedy = minor_stress_impact_loss - } - ai_chance = { - base = 100 - modifier = { - factor = 0.5 - OR = { - has_trait = compassionate - has_trait = just - has_trait = forgiving - has_trait = generous - } - } - } - } -} - -fp3_story_cycle_zanj_rebellion_events.0007 = { - scope = none - hidden = yes - immediate = { - if = { - limit = { - scope:zanj_leader = { - OR = { - is_imprisoned = yes - is_alive = no - is_landed = yes - } - } - } - inherit_zanj_rebellion_effect = yes - } - title:c_basra.holder.top_liege = { - trigger_event = { - id = fp3_story_cycle_zanj_rebellion_events.0008 - - } - } - } -} - -### The Zanj Rebellion -fp3_story_cycle_zanj_rebellion_events.0008 = { - type = character_event - theme = battle - override_background = { reference = wilderness_wetlands } - title = fp3_story_cycle_zanj_rebellion_events.0008.t - desc = { - desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.a - triggered_desc = { - trigger = { - scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader}} - } - desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.b - } - triggered_desc = { - trigger = { - scope:zanj_leader = { has_character_flag = new_zanj_leader } - } - desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.c - } - desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.d - } - - left_portrait = { - character = root - animation = shock - } - right_portrait = { - character = scope:zanj_leader - animation = celebrate_sword - } - - immediate = { - scope:zanj_leader = { - give_nickname = nick_chief_of_the_zanj - hidden_effect = { - random_owned_story = { - type = story_zanj_rebellion - end_story = yes - } - } - } - hidden_effect = { - fp3_start_zanj_rebellion_effect = { - TARGET_COUNTY = title:c_basra - REBEL_LEADER = scope:zanj_leader - } - create_zanj_courtier_effect = { - EMPLOYER = scope:zanj_leader - LOCATION = scope:zanj_leader.location - } - create_zanj_courtier_effect = { - EMPLOYER = scope:zanj_leader - LOCATION = scope:zanj_leader.location - } - create_zanj_courtier_effect = { - EMPLOYER = scope:zanj_leader - LOCATION = scope:zanj_leader.location - } - create_zanj_courtier_effect = { - EMPLOYER = scope:zanj_leader - LOCATION = scope:zanj_leader.location - } - } - } - - option = { - name = fp3_story_cycle_zanj_rebellion_events.0008.a - } -} \ No newline at end of file +#namespace = fp3_story_cycle_zanj_rebellion_events +# +#### Ali Ibn Muhammad and Zanj Rebellion Setup +#fp3_story_cycle_zanj_rebellion_events.0001 = { +# scope = none +# hidden = yes +# +# immediate = { +# spawn_zanj_leader_character_effect = yes +# scope:zanj_leader = { +# save_scope_as = story_owner +# create_story = story_zanj_rebellion +# give_nickname = nick_albaghid +# } +# +# title:c_basra.holder = { +# add_visiting_courtier = scope:zanj_leader +# } +# title:c_basra.holder.top_liege = { +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0002 +# } +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0005 +# days = { 60 120 } +# } +# } +# } +#} +# +#### Ali Ibn Muhammad riling up locals in Basra +#fp3_story_cycle_zanj_rebellion_events.0002 = { +# type = character_event +# theme = intrigue +# override_background = { reference = wilderness_wetlands } +# title = fp3_story_cycle_zanj_rebellion_events.0002.t +# desc = fp3_story_cycle_zanj_rebellion_events.0002.desc +# +# left_portrait = { +# character = root +# animation = marshal +# } +# right_portrait = { +# character = scope:zanj_leader +# animation = scheme +# } +# +# immediate = { +# scope:zanj_leader = { +# save_scope_as = outspoken_rebel +# } +# } +# +# #Try to arrest Ali +# option = { +# name = fp3_story_cycle_zanj_rebellion_events.0002.a +# duel = { +# skill = intrigue +# target = scope:outspoken_rebel +# 50 = { +# # You arrest Ali Ibn Muhammad +# desc = fp3_story_cycle_zanj_rebellion_events.0002.a.success +# compare_modifier = { +# value = scope:duel_value +# multiplier = 3.5 +# min = -49 +# } +# send_interface_toast = { +# title = fp3_story_cycle_zanj_rebellion_events.0002.a.success +# left_icon = root +# right_icon = scope:outspoken_rebel +# rightfully_imprison_character_effect = { +# TARGET = scope:outspoken_rebel +# IMPRISONER = root +# } +# } +# inherit_zanj_rebellion_effect = yes +# } +# 50 = { +# # Ali Ibn Muhammad escapes +# desc = fp3_story_cycle_zanj_rebellion_events.0002.a.failure +# compare_modifier = { +# value = scope:duel_value +# multiplier = -3.5 +# min = -49 +# } +# send_interface_toast = { +# title = fp3_story_cycle_zanj_rebellion_events.0002.a.failure +# custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt +# custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad +# left_icon = root +# right_icon = scope:outspoken_rebel +# } +# hidden_effect = { +# scope:zanj_leader = { +# change_variable = { +# name = zanj_rebellion_strength_score +# add = 4 +# } +# } +# title:c_baghdad.holder = { +# hidden_effect = { +# title:c_baghdad.holder = { +# add_visiting_courtier = scope:outspoken_rebel +# } +# } +# } +# title:c_basra.holder.top_liege = { +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0003 +# days = { 30 60 } +# } +# } +# } +# } +# } +# root = { +# progress_towards_rival_effect = { +# REASON = fp3_zanj_rebellion_opressed_me +# CHARACTER = scope:outspoken_rebel +# OPINION = default_rival_opinion +# } +# } +# stress_impact = { +# paranoid = medium_stress_impact_loss +# just = minor_stress_impact_loss +# callous = minor_stress_impact_loss +# sadistic = minor_stress_impact_loss +# trusting = medium_stress_impact_gain +# forgiving = medium_stress_impact_gain +# compassionate = medium_stress_impact_gain +# } +# ai_chance = { +# base = 100 +# modifier = { +# factor = 0.5 +# OR = { +# has_trait = trusting +# has_trait = forgiving +# has_trait = compassionate +# } +# } +# } +# } +# +# #Ignore Ali +# option = { +# name = fp3_story_cycle_zanj_rebellion_events.0002.c +# custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt +# scope:zanj_leader = { +# change_variable = { +# name = zanj_rebellion_strength_score +# add = 2 +# } +# } +# custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad +# hidden_effect = { +# title:c_baghdad.holder = { +# add_visiting_courtier = scope:outspoken_rebel +# } +# } +# title:c_basra.holder.top_liege = { +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0003 +# days = { 30 60 } +# } +# } +# stress_impact = { +# paranoid = medium_stress_impact_gain +# just = minor_stress_impact_gain +# callous = minor_stress_impact_gain +# sadistic = medium_stress_impact_gain +# trusting = medium_stress_impact_loss +# forgiving = medium_stress_impact_loss +# compassionate = medium_stress_impact_loss +# } +# ai_chance = { +# base = 100 +# modifier = { +# factor = 0.5 +# OR = { +# has_trait = paranoid +# has_trait = just +# has_trait = callous +# has_trait = sadistic +# } +# } +# } +# } +#} +# +#### Setup to find correct scope for event 0004 and check if Ali is dead or imprisoned +#fp3_story_cycle_zanj_rebellion_events.0003 = { +# scope = none +# hidden = yes +# +# immediate = { +# if ={ +# #check if Ali is still alive and not in prison and is not an inheritor of the rebellion +# limit = { +# scope:zanj_leader = { +# AND = { +# is_alive = yes +# is_imprisoned = no +# NOT = { has_character_flag = new_zanj_leader } +# } +# } +# } +# title:c_baghdad.holder.top_liege = { +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0004 +# } +# } +# } +# } +#} +# +#### Ali Ibn Muhammad claims divinity +#fp3_story_cycle_zanj_rebellion_events.0004 = { +# type = character_event +# theme = faith +# title = fp3_story_cycle_zanj_rebellion_events.0004.t +# desc = fp3_story_cycle_zanj_rebellion_events.0004.desc +# +# left_portrait = { +# character = root +# animation = dismissal +# } +# right_portrait = { +# character = scope:zanj_leader +# animation = personality_zealous +# } +# +# #Contest Ali Ibn Muhammad's claims +# option = { +# name = fp3_story_cycle_zanj_rebellion_events.0004.a +# duel = { +# skill = learning +# target = scope:zanj_leader +# 50 = { +# # You disprove Ali's claims +# desc = fp3_story_cycle_zanj_rebellion_events.0004.a.success +# compare_modifier = { +# value = scope:duel_value +# multiplier = 3.5 +# min = -49 +# } +# send_interface_toast = { +# title = fp3_story_cycle_zanj_rebellion_events.0004.a.success +# add_piety = medium_piety_gain +# add_prestige = minor_prestige_gain +# left_icon = root +# right_icon = scope:zanj_leader +# } +# } +# 50 = { +# # Ali Ibn Muhammad validates his claims +# desc = fp3_story_cycle_zanj_rebellion_events.0004.a.failure +# compare_modifier = { +# value = scope:duel_value +# multiplier = -3.5 +# min = -49 +# } +# custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt +# send_interface_toast = { +# title = fp3_story_cycle_zanj_rebellion_events.0004.a.failure +# left_icon = root +# right_icon = scope:zanj_leader +# +# scope:zanj_leader = { +# add_trait = sayyid +# add_pressed_claim = title:e_arabia +# change_variable = { +# name = zanj_rebellion_strength_score +# add = 4 +# } +# } +# } +# } +# } +# root = { +# progress_towards_rival_effect = { +# REASON = fp3_zanj_rebellion_opressed_me +# CHARACTER = scope:zanj_leader +# OPINION = default_rival_opinion +# } +# } +# stress_impact = { +# paranoid = minor_stress_impact_loss +# just = minor_stress_impact_loss +# zealous = medium_stress_impact_loss +# trusting = medium_stress_impact_gain +# forgiving = medium_stress_impact_gain +# cynical = medium_stress_impact_gain +# } +# ai_chance = { +# base = 100 +# modifier = { +# factor = 0.5 +# OR = { +# has_trait = cynical +# has_trait = trusting +# has_trait = forgiving +# } +# } +# } +# } +# +# #Ignore Ali +# option = { +# name = fp3_story_cycle_zanj_rebellion_events.0004.b +# custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt +# +# scope:zanj_leader = { +# add_trait = sayyid +# add_pressed_claim = title:e_arabia +# change_variable = { +# name = zanj_rebellion_strength_score +# add = 2 +# } +# } +# stress_impact = { +# paranoid = minor_stress_impact_gain +# just = minor_stress_impact_gain +# zealous = medium_stress_impact_gain +# trusting = minor_stress_impact_loss +# forgiving = medium_stress_impact_loss +# cynical = medium_stress_impact_loss +# } +# ai_chance = { +# base = 100 +# modifier = { +# factor = 0.5 +# OR = { +# has_trait = paranoid +# has_trait = just +# has_trait = zealous +# } +# } +# } +# } +#} +# +#### Setup event to find the correct scope and check if Ali or the current Zanj Leader is dead or imprisoned +#fp3_story_cycle_zanj_rebellion_events.0005 = { +# scope = none +# hidden = yes +# immediate = { +# if = { +# limit = { +# scope:zanj_leader = { +# OR = { +# is_imprisoned = yes +# is_alive = no +# is_landed = yes +# } +# } +# } +# inherit_zanj_rebellion_effect = yes +# } +# title:c_basra.holder.top_liege = { +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0006 +# } +# } +# } +#} +# +#### A Zanj Steps Forth +#fp3_story_cycle_zanj_rebellion_events.0006 = { +# type = character_event +# theme = corruption +# title = fp3_story_cycle_zanj_rebellion_events.0006.t +# desc = { +# desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.a +# +# triggered_desc = { +# trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } } +# desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.b +# } +# +# desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.c +# } +# +# left_portrait = { +# character = root +# animation = eyeroll +# } +# +# right_portrait = { +# character = scope:outspoken_rebel +# animation = worry +# } +# +# lower_left_portrait = { +# trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } } +# character = scope:zanj_leader +# } +# +# immediate = { +# if = { +# limit = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } } +# spawn_zanj_representative_character_effect = yes +# scope:zanj_representative = { save_scope_as = outspoken_rebel } +# } +# else = { +# scope:zanj_leader = { save_scope_as = outspoken_rebel } +# } +# } +# #Give Basra to the Zanj +# option = { +# name = fp3_story_cycle_zanj_rebellion_events.0006.a +# +# create_title_and_vassal_change = { +# type = independency +# save_scope_as = change +# add_claim_on_loss = no +# } +# +# title:c_basra = { +# set_county_culture = culture:east_bantu +# set_county_faith = faith:azariqa +# } +# +# show_as_tooltip = { # UI/UX +# title:c_basra = { +# change_title_holder = { +# holder = scope:outspoken_rebel +# change = scope:change +# } +# } +# } +# +# scope:outspoken_rebel = { +# becomes_independent = { +# change = scope:change +# } +# add_truce_both_ways = { +# character = root +# years = 10 +# name = fp3_landed_zanj_reason +# } +# } +# +# if = { +# limit = { +# NOT = { title:c_basra.holder = root } +# } +# add_tyranny = 30 +# set_relation_rival = { +# reason = fp3_rival_gave_title_away +# target = title:c_basra.holder +# } +# } +# +# hidden_effect = { +# title:c_basra = { +# change_title_holder = { +# holder = scope:outspoken_rebel +# change = scope:change +# } +# every_de_jure_county = { +# change_title_holder = { +# holder = scope:outspoken_rebel +# change = scope:change +# } +# } +# } +# scope:zanj_leader = { +# random_owned_story = { +# type = story_zanj_rebellion +# end_story = yes +# } +# } +# } +# resolve_title_and_vassal_change = scope:change +# +# stress_impact = { +# compassionate = medium_stress_impact_loss +# just = minor_stress_impact_loss +# forgiving = minor_stress_impact_loss +# generous = medium_stress_impact_loss +# content = medium_stress_impact_loss +# callous = medium_stress_impact_gain +# sadistic = major_stress_impact_gain +# ambitious = medium_stress_impact_gain +# greedy = medium_stress_impact_gain +# } +# ai_chance = { +# base = 100 +# modifier = { +# factor = 0.5 +# OR = { +# has_trait = callous +# has_trait = sadistic +# has_trait = ambitious +# has_trait = greedy +# } +# } +# } +# } +# +# #Make minor concessions to the Zanj +# option = { +# name = fp3_story_cycle_zanj_rebellion_events.0006.b +# +# scope:zanj_leader = { +# change_variable = { +# name = zanj_rebellion_strength_score +# add = 3 +# } +# } +# custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt +# hidden_effect = { +# title:c_basra.holder = { +# if = { +# limit = { scope:zanj_leader != scope:outspoken_rebel} +# add_visiting_courtier = scope:zanj_leader +# } +# add_visiting_courtier = scope:outspoken_rebel +# } +# } +# +# if = { +# limit = { +# NOT = { title:c_basra.holder = root } +# } +# progress_towards_rival_effect = { +# REASON = fp3_zanj_rebellion_interfered_with_my_workers +# CHARACTER = title:c_basra.holder +# OPINION = default_rival_opinion +# } +# } +# +# title:c_basra = { +# add_county_modifier = { +# modifier = fp3_zanj_rebellion_work_concessions_modifier +# years = 5 +# } +# } +# +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0007 +# days = { 30 60 } +# } +# stress_impact = { +# compassionate = minor_stress_impact_loss +# just = minor_stress_impact_loss +# forgiving = minor_stress_impact_loss +# generous = minor_stress_impact_loss +# content = minor_stress_impact_loss +# callous = minor_stress_impact_gain +# sadistic = medium_stress_impact_gain +# ambitious = minor_stress_impact_gain +# greedy = minor_stress_impact_gain +# } +# ai_chance = { +# base = 100 +# modifier = { +# factor = 0.5 +# OR = { +# has_trait = callous +# has_trait = sadistic +# has_trait = ambitious +# has_trait = greedy +# } +# } +# } +# } +# +# #Ignore the Zanj +# option = { +# name = fp3_story_cycle_zanj_rebellion_events.0006.c +# +# scope:zanj_leader = { +# change_variable = { +# name = zanj_rebellion_strength_score +# add = 5 +# } +# } +# custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt +# hidden_effect = { +# title:c_basra.holder = { +# add_visiting_courtier = scope:zanj_leader +# add_visiting_courtier = scope:zanj_representative +# } +# } +# +# if = { +# limit = { +# NOT = { title:c_basra.holder = root } +# } +# +# progress_towards_friend_effect = { +# REASON = fp3_rival_stayed_out_of_my_business +# CHARACTER = title:c_basra.holder +# OPINION = default_friend_opinion +# } +# } +# +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0007 +# days = { 30 60 } +# } +# +# stress_impact = { +# compassionate = minor_stress_impact_gain +# just = minor_stress_impact_gain +# forgiving = minor_stress_impact_gain +# generous = minor_stress_impact_gain +# content = minor_stress_impact_gain +# callous = minor_stress_impact_loss +# sadistic = medium_stress_impact_loss +# ambitious = minor_stress_impact_loss +# greedy = minor_stress_impact_loss +# } +# ai_chance = { +# base = 100 +# modifier = { +# factor = 0.5 +# OR = { +# has_trait = compassionate +# has_trait = just +# has_trait = forgiving +# has_trait = generous +# } +# } +# } +# } +#} +# +#fp3_story_cycle_zanj_rebellion_events.0007 = { +# scope = none +# hidden = yes +# immediate = { +# if = { +# limit = { +# scope:zanj_leader = { +# OR = { +# is_imprisoned = yes +# is_alive = no +# is_landed = yes +# } +# } +# } +# inherit_zanj_rebellion_effect = yes +# } +# title:c_basra.holder.top_liege = { +# trigger_event = { +# id = fp3_story_cycle_zanj_rebellion_events.0008 +# +# } +# } +# } +#} +# +#### The Zanj Rebellion +#fp3_story_cycle_zanj_rebellion_events.0008 = { +# type = character_event +# theme = battle +# override_background = { reference = wilderness_wetlands } +# title = fp3_story_cycle_zanj_rebellion_events.0008.t +# desc = { +# desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.a +# triggered_desc = { +# trigger = { +# scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader}} +# } +# desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.b +# } +# triggered_desc = { +# trigger = { +# scope:zanj_leader = { has_character_flag = new_zanj_leader } +# } +# desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.c +# } +# desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.d +# } +# +# left_portrait = { +# character = root +# animation = shock +# } +# right_portrait = { +# character = scope:zanj_leader +# animation = celebrate_sword +# } +# +# immediate = { +# scope:zanj_leader = { +# give_nickname = nick_chief_of_the_zanj +# hidden_effect = { +# random_owned_story = { +# type = story_zanj_rebellion +# end_story = yes +# } +# } +# } +# hidden_effect = { +# fp3_start_zanj_rebellion_effect = { +# TARGET_COUNTY = title:c_basra +# REBEL_LEADER = scope:zanj_leader +# } +# create_zanj_courtier_effect = { +# EMPLOYER = scope:zanj_leader +# LOCATION = scope:zanj_leader.location +# } +# create_zanj_courtier_effect = { +# EMPLOYER = scope:zanj_leader +# LOCATION = scope:zanj_leader.location +# } +# create_zanj_courtier_effect = { +# EMPLOYER = scope:zanj_leader +# LOCATION = scope:zanj_leader.location +# } +# create_zanj_courtier_effect = { +# EMPLOYER = scope:zanj_leader +# LOCATION = scope:zanj_leader.location +# } +# } +# } +# +# option = { +# name = fp3_story_cycle_zanj_rebellion_events.0008.a +# } +#} \ No newline at end of file diff --git a/events/dlc/fp3/fp3_yearly_events_ola_batch_1.txt b/events/dlc/fp3/fp3_yearly_events_ola_batch_1.txt index 331e3d98..3c2ed910 100644 --- a/events/dlc/fp3/fp3_yearly_events_ola_batch_1.txt +++ b/events/dlc/fp3/fp3_yearly_events_ola_batch_1.txt @@ -3456,7 +3456,7 @@ scripted_trigger fp3_not_norse_trigger = { NOR = { culture = { has_cultural_pillar = heritage_north_germanic } culture = { has_cultural_tradition = tradition_fp1_northern_stories } - has_religion = religion:germanic_religion + has_religion = religion:folkgerman_religion } } diff --git a/events/war_events/combat_events.txt b/events/war_events/combat_events.txt new file mode 100644 index 00000000..6057b5c5 --- /dev/null +++ b/events/war_events/combat_events.txt @@ -0,0 +1,2376 @@ +# Events fired upon resolution of a combat. +# +# Event List: +# 0001-0005: 'The Undefeated' - a commander has won 100 battles without losing a single one! By Sean Hughes +# 1001-1003: 'Prisoners of War' - one or more characters were imprisoned at the end of a battle (notifications sent to concerned parties). By Sean Hughes +# +# + +namespace = combat_event + +##################### +# The Undefeatable # +# by Sean Hughes # +# 0001-0005 # +##################### + +#Event for Winning Side: Keeps track of total number of victories the side's commander has (if they have never lost a battle). At 100 victories, they earn the nickname 'the Undefeatable'. +combat_event.0001 = { + hidden = yes + scope = combat_side + + trigger = { + side_commander ?= { is_alive = yes } + side_commander = { is_ai = no } # Too expensive performance-wise to track for all commanders in the game. Substantial savings on cycles to only track for players. + OR = { + side_commander = { + # Event will only occur if this character has never lost a battle. + OR = { + NOT = { has_variable = combat_event_0001_tracker } + trigger_if = { + limit = { + has_variable = combat_event_0001_tracker + } + var:combat_event_0001_tracker > 0 + } + } + } + AND = { + # However, as a special case we will fire this event if we defeat 'the Undefeatable'... + exists = enemy_side.side_commander + enemy_side.side_commander = { + has_character_flag = combat_event_undefeatable_flag + } + # ...But only if we haven't already defeated 'the Undefeatable' before! + side_commander = { + NOT = { has_character_flag = combat_event_triumphant_flag } + } + } + } + } + + immediate = { + if = { + #If we have defeated 'the Undefeatable', execute a special use case (skipping the rest of this event's effects). + limit = { + exists = enemy_side.side_commander + enemy_side.side_commander = { + has_character_flag = combat_event_undefeatable_flag + } + } + + # Save the enemy commander's scope for localization. + enemy_side.side_commander = { + save_scope_as = enemy_commander + } + + # Gain special recognition for defeating 'the Undefeatable.' + side_commander = { + # Save this scope for localization. + save_scope_as = friendly_commander + + # So we don't get this outcome more than once per character. + add_character_flag = combat_event_triumphant_flag + + # Trigger the event. + trigger_event = { + id = combat_event.0004 + days = 1 + } + } + } + else = { + # In almost all situations, add to our victory tracker. Once we reach 100, fire the special Undefeatable event. + side_commander = { + if = { + limit = { + is_alive = yes # Can be killed in combat + } + # If the victory tracking variable does not yet exist, create it. + if = { + limit = { + NOT = { + has_variable = combat_event_0001_tracker + } + } + set_variable = { + name = combat_event_0001_tracker + value = 1 + } + } + # Otherwise, increment it. + else = { + change_variable = { + name = combat_event_0001_tracker + add = 1 + } + } + + #If the commander has accumulateed 100 victories, fire the event which gives them the nickname 'the Undefeatable'. + if = { + limit = { + var:combat_event_0001_tracker = 100 + } + + # If there is an enemy commander, save their scope for portraits/localization in the following event. + if = { + limit = { + exists = root.enemy_side.side_commander + } + root.enemy_side.side_commander = { + save_scope_as = enemy_commander + } + } + + # Fire the event which gives the victorious commander the nickname 'the Undefeatable'. + trigger_event = { + id = combat_event.0003 + days = 1 + } + } + } + } + } + } +} + +# Event for Losing Side: Disqualifies the side's commander from ever earning the nickname 'the Undefeatable'. +combat_event.0002 = { + hidden = yes + scope = combat_side + + trigger = { + side_commander ?= { + is_alive = yes + } + } + + immediate = { + side_commander = { + #If we ever lose a battle, we are disqualified from achieving 'the Undefeatable' nickname. + set_variable = { + name = combat_event_0001_tracker + value = 0 + } + } + } +} + +#Once a commander wins 100 battles with 0 defeats, they get a special 'the Undefeatable' nickname. +combat_event.0003 = { + type = character_event + title = combat_event.0003.t + desc = { + desc = combat_event.0003.desc.opening + first_valid = { + triggered_desc = { + trigger = { + exists = scope:enemy_commander + } + desc = combat_event.0003.desc.commander + } + desc = combat_event.0003.desc.no_commander + } + first_valid = { + triggered_desc = { + trigger = { + NOR = { + has_trait = shy + has_trait = humble + has_trait = craven + has_trait = content + has_trait = paranoid + has_trait = cautious_leader + } + } + desc = combat_event.0003.desc.alt_ending + } + desc = combat_event.0003.desc.ending + } + } + theme = battle + left_portrait = { + character = root + animation = war_over_win + } + right_portrait = { + character = scope:enemy_commander + animation = war_over_loss + } + + immediate = { + add_character_flag = combat_event_undefeatable_flag + set_signature_weapon_effect = yes + } + + #Option A: Accept the title "the Undefeatable", gain prestige. + option = { + name = combat_event.0003.a + give_nickname = nick_the_undefeated # We don't use 'set_nick_effect' here because this is important enough we want it to override event 'good' nicknames. Plus it's an opt-in. + add_prestige = massive_prestige_gain + + add_martial_skill = 3 + + #AI will always pick this unless Humble. + stress_impact = { + humble = medium_stress_gain + } + ai_chance = { + base = 100 + + modifier = { + has_trait = humble + add = -100 + } + } + } + + #Option B: Reject the title "the Undefeatable", gain piety. + option = { + name = { + trigger = { has_trait = zealous } + text = combat_event.0003.b.zealous + } + name = { + trigger = { NOT = { has_trait = zealous }} + text = combat_event.0003.b + } + + if = { + limit = { + has_trait = zealous + } + add_piety = massive_piety_gain + } + else = { + add_prestige = medium_prestige_gain + add_piety = medium_piety_gain + } + + add_martial_skill = 3 + + #AI will only pick this if Humble. + stress_impact = { + arrogant = medium_stress_gain + } + ai_chance = { + base = 0 + + modifier = { + has_trait = humble + add = 100 + } + } + } +} + +#If 'the Undefeatable' is ever defeated, the commander who defeated them gets a special title. +combat_event.0004 = { + type = character_event + title = combat_event.0004.t + desc = combat_event.0004.desc + theme = battle + left_portrait = { + character = root + animation = war_over_win + } + right_portrait = { + character = scope:enemy_commander + animation = war_over_loss + } + + immediate = { + set_signature_weapon_effect = yes + } + + #Option A: Accept the title "the Triumphant", gain prestige. + option = { + name = combat_event.0004.a + give_nickname = nick_the_triumphant + add_prestige = massive_prestige_gain + + add_martial_skill = 3 + + #AI will always pick this unless Humble + stress_impact = { + humble = medium_stress_gain + } + ai_chance = { + base = 100 + + modifier = { + has_trait = humble + add = -100 + } + } + } + + #Option B: Reject the title "the Triumphant", gain piety. + option = { + name = { + trigger = { has_trait = zealous } + text = combat_event.0004.b.zealous + } + name = { + trigger = { NOT = { has_trait = zealous }} + text = combat_event.0004.b + } + + if = { + limit = { + has_trait = zealous + } + add_piety = massive_piety_gain + } + else = { + add_prestige = medium_prestige_gain + add_piety = medium_piety_gain + } + + add_martial_skill = 3 + + #AI will never pick this unless Humble + stress_impact = { + arrogant = medium_stress_gain + } + ai_chance = { + base = 0 + + modifier = { + has_trait = humble + add = 100 + } + } + } + + after = { + #Inform 'the Undefeatable' that they have, in fact, been defeated. + scope:enemy_commander = { + remove_character_flag = combat_event_undefeatable_flag + trigger_event = { + id = combat_event.0005 + days = 1 + } + show_as_tooltip = { + add_prestige_level = -1 + } + } + } +} + +#'The Undefeatable' is informed that they have, in fact, been defeated. +combat_event.0005 = { + type = character_event + title = combat_event.0005.t + desc = combat_event.0005.desc + theme = battle + left_portrait = { + character = scope:friendly_commander + animation = war_over_win + } + + immediate = { + if = { + limit = { + scope:friendly_commander = { + has_nickname = nick_the_triumphant + } + } + show_as_tooltip = { + scope:friendly_commander = { + give_nickname = nick_the_triumphant + } + } + } + } + + #Option A: Accept that they have defeated you. + option = { + name = combat_event.0005.a + + add_prestige_level = -1 + + stress_impact = { + vengeful = medium_stress_gain + arrogant = medium_stress_gain + wrathful = minor_stress_gain + } + ai_chance = { + base = 50 + + ai_value_modifier = { + ai_vengefulness = -5 + } + } + } + + #Option B: Declare them your rival! + option = { + name = combat_event.0005.b + + add_prestige_level = -1 + + if = { + limit = { + NOT = { has_relation_rival = scope:friendly_commander } + } + scope:friendly_commander = { + send_interface_toast = { + title = combat_event.0005.message + set_relation_rival = { + target = root + reason = rival_undefeated_defeated + } + } + } + } + + stress_impact = { + forgiving = medium_stress_gain + humble = medium_stress_gain + calm = minor_stress_gain + } + ai_chance = { + base = 5000 + + ai_value_modifier = { + ai_vengefulness = 5 + } + } + } +} + +##################### +# Battle Aftermath # +# by Sean Hughes # +# 1001-1014 # +##################### + +# Used for determining both who should be notifiied about captured/slain combatants. +scripted_trigger combat_event_1001_character_is_relevant_to_target_trigger = { + OR = { + # Character is of major or minor interest. + is_of_major_interest_trigger = {CHARACTER = $TARGET$ } + is_of_minor_interest_trigger = {CHARACTER = $TARGET$ } + + # Courtiers normally aren't very interesting, but if one got captured in battle there has to be a reason why they were there in the first place! + is_courtier_of = $TARGET$ + is_knight_of = $TARGET$ + } +} + +# Used for checking if a captured combatant is worth war-score. +scripted_trigger combat_event_1001_character_is_important_combatant = { + OR = { + this = scope:primary_combat_winner + this = scope:primary_combat_loser + is_heir_of = scope:primary_combat_winner + is_heir_of = scope:primary_combat_loser + } +} + +# Used to transfer equipped battle gear to slayer/capturer +scripted_effect combat_transfer_equipped_artifact_effect = { + if = { + limit = { + any_equipped_character_artifact = { artifact_slot_type = $TYPE$ } + } + save_scope_as = artifact_knight + random_equipped_character_artifact = { + limit = { artifact_slot_type = $TYPE$ } + if = { + limit = { artifact_durability >= define:NInventory|ARTIFACT_LOW_DURABILITY } + save_scope_as = knight_artifact + if = { + limit = { exists = artifact_owner.house } + artifact_owner.house = { save_scope_as = artifact_house } + } + set_owner = { + target = $OWNER$ + history = { + type = taken_in_battle + actor = scope:artifact_knight + recipient = $OWNER$ + location = scope:artifact_knight.location + } + } + if = { + limit = { + exists = scope:artifact_house + NOT = { + any_artifact_house_claimant = { + this = scope:artifact_house + } + } + } + scope:artifact_house = { add_house_artifact_claim = prev } + } + scope:artifact_knight = { + if = { + limit = { + NOT = { + has_personal_artifact_claim = prev + } + } + add_personal_artifact_claim = prev + } + } + #debug_log = "ART_TRAN" + } + else = { + destroy_artifact = this + #debug_log = "ART_DEST" + } + } + } +} + +# Used to check if a knight has fought in a battle recently. +scripted_effect petition_knight_battle_history_effect = { + if = { + limit = { + is_alive = yes + age >= 35 + is_landed = no + employer.highest_held_title_tier >= tier_kingdom # No need to set variables for knights of dukes/counts + } + if = { + limit = { has_variable = hc_8170_fought_battle_for } + remove_variable = hc_8170_fought_battle_for + } + if = { + limit = { has_variable = hc_8170_fought_battle_where } + remove_variable = hc_8170_fought_battle_where + } + if = { + limit = { has_variable = hc_8170_fought_battle_against } + remove_variable = hc_8170_fought_battle_against + } + set_variable = { + name = hc_8170_fought_battle_for + value = employer + years = 15 + } + set_variable = { + name = hc_8170_fought_battle_where + value = location + years = 15 + } + save_scope_as = knight_scope + if = { # For winner side knights + limit = { + scope:winning_side = { + any_side_knight = { THIS = scope:knight_scope } # this knight + } + } + set_variable = { + name = hc_8170_fought_battle_against + value = scope:winning_side.enemy_side.side_primary_participant + years = 15 + } + } + else = { # For loser side knights + set_variable = { + name = hc_8170_fought_battle_against + value = scope:winning_side.side_primary_participant + years = 15 + } + } + } +} + +# Combat Side event which handles the combatant imprisonment and death logic. +# Also determines which characters need to be notified about these occurances, and triggers notification events for them (combat_event.1002-1004 and 1012-1014). +combat_event.1001 = { + scope = combat_side + hidden = yes + + trigger = { + # Prisoners of war can only be taken during an actual war. + # Non-war battles (such as from engaging Hostile forces) do not take prisoners, since PoWs cannot be released on war end if there is no war! + side_primary_participant = { + is_at_war_with = root.enemy_side.side_primary_participant + } + + #Cannot happen in the tutorial + NOT = { has_global_variable = lesson_chain_war_tutorial_started } + } + + immediate = { + # Save necessary scopes for later usage. + save_scope_as = winning_side + side_primary_participant = { + random_character_war = { + limit = { + OR = { + is_attacker = root.enemy_side.side_primary_participant + is_defender = root.enemy_side.side_primary_participant + } + } + save_scope_as = combat_war + if = { + limit = { + is_attacker = root.side_primary_participant + } + primary_attacker = { + save_scope_as = primary_combat_winner + } + primary_defender = { + save_scope_as = primary_combat_loser + } + } + else = { + primary_defender = { + save_scope_as = primary_combat_winner + } + primary_attacker = { + save_scope_as = primary_combat_loser + } + } + } + save_scope_as = combat_winner + } + enemy_side.side_primary_participant = { + save_scope_as = combat_loser + } + combat.location = { + save_scope_as = combat_location + } + + # If there is a Commander on the losing side, check if they should be imprisoned. + if = { + limit = { + exists = enemy_side.side_commander + } + + enemy_side.side_commander = { + random_list = { + # No Effect + 90 = { + # Reduced risk for characters with the Stalwart Leader perk. + modifier = { + add = 100 + has_perk = stalwart_leader_perk + is_ai = no + } + modifier = { + add = 30 + has_perk = stalwart_leader_perk + is_ai = yes + } + #Acclaimed knights being captured has weird results, we are giving them essentially a pass + modifier = { + add = 500 + is_acclaimed = yes + } + + #Reduced risk for character with Bodyguard(s) that are fighting by their side + modifier = { + add = 50 + employs_court_position = bodyguard_court_position + any_court_position_holder = { + type = bodyguard_court_position + save_temporary_scope_as = bodyguard + root.enemy_side = { + any_side_knight = { this = scope:bodyguard } + } + } + } + + #Reduced risk for character with Garuda that are fighting by their side + modifier = { + add = 50 + employs_court_position = garuda_court_position + any_court_position_holder = { + type = garuda_court_position + save_temporary_scope_as = garuda + root.enemy_side = { + any_side_knight = { this = scope:garuda } + } + } + } + + # Being stackwiped greatly increases the chance of capture. + modifier = { + scope:wipe = yes + factor = 0.20 + } + } + # Captured in battle. + 10 = { + trigger = { + is_alive = yes + } + modifier = { + factor = { # Prowess directly reduces chance of capture. + value = 30 # Value at which 'immunity' happens. + subtract = prowess + divide = 30 + min = 0.1 # Everyone makes mistakes. + } + } + + # Craven characters are more likey to flee earlier and elude capture. + modifier = { + factor = 0.5 + has_trait = craven + } + modifier = { + factor = 2 + has_trait = brave + } + + # Certain injuries increase the chances of being caught. + modifier = { + factor = 3 + OR = { + has_trait = one_legged + has_trait = maimed + } + } + + # State Ransoms: characters are more likely to surrender if their liege will pay their ransom. + modifier = { + factor = 2 + liege.culture = { has_cultural_parameter = knights_die_less_but_are_captured_more } + NOT = { top_liege = this } + } + + add_to_list = prisoners_of_war + + # Log a battle event so that the imprisonment shows up in the battle summary screen. + save_temporary_scope_as = this_combatant + root = { + battle_event = { + key = "combatant_captured_in_battle" + left_portrait = scope:combat_winner + right_portrait = scope:this_combatant + type = imprison + } + } + } + # Commanders cannot be slain in the retreat phase, since we don't want to punish players for retreating from combat after they get wounded. + } + } + } + + # Set history variables for petition events + every_side_knight = { petition_knight_battle_history_effect = yes } + + # For each Knight on the losing side, check if they should be imprisoned/slain. + enemy_side = { + every_side_knight = { + random_list = { + 85 = { # Nothing Happens + trigger = { + is_alive = yes + } + modifier = { + add = 50 + has_perk = stalwart_leader_perk + is_ai = no + } + modifier = { + add = 15 + has_perk = stalwart_leader_perk + is_ai = yes + } + + #Reduced risk for character with bodyguards that are fighting by their side + modifier = { + add = 25 + employs_court_position = bodyguard_court_position + any_court_position_holder = { + type = bodyguard_court_position + save_temporary_scope_as = bodyguard + root.enemy_side = { + any_side_knight = { this = scope:bodyguard } + } + } + } + + #Reduced risk for character with Garuda that are fighting by their side + modifier = { + add = 25 + employs_court_position = garuda_court_position + any_court_position_holder = { + type = garuda_court_position + save_temporary_scope_as = garuda + root.enemy_side = { + any_side_knight = { this = scope:garuda } + } + } + } + + # Being stackwiped greatly increases the chance of capture and/or death. + modifier = { + scope:wipe = yes + factor = 0.20 + } + } + 10 = { # Imprisonment + trigger = { + is_alive = yes + } + + modifier = { + factor = { # Prowess directly reduces chance of capture + value = 30 # Value at which 'immunity' happens + subtract = prowess + divide = 30 + min = 0.1 # Everyone makes mistakes. + } + } + modifier = { + factor = 2 + has_trait = brave + } + modifier = { + factor = 0.5 + has_trait = craven + } + modifier = { + factor = 2 + OR = { + has_trait = one_legged + has_trait = disfigured + has_trait = one_eyed + has_trait = maimed + } + } + # State Ransoms: characters are more likely to surrender if their liege will pay their ransom. + modifier = { + factor = 2 + liege.culture = { has_cultural_parameter = knights_die_less_but_are_captured_more } + } + # House Blocs + modifier = { + factor = 1.25 + scope:combat_winner.confederation ?= { has_cohesion_level_parameter = any_member_extra_capture_chance } + } + #Acclaimed knights being captured has weird results, we are giving them essentially a pass + modifier = { + factor = 0.1 + is_acclaimed = yes + } + + # Transfer equipped armor and weapon to winner if durability not too low + combat_transfer_equipped_artifact_effect = { TYPE = primary_armament OWNER = scope:combat_winner } + combat_transfer_equipped_artifact_effect = { TYPE = armor OWNER = scope:combat_winner } + + add_to_list = prisoners_of_war + + # Log a battle event so that the imprisonment shows up in the battle summary screen. + save_temporary_scope_as = this_combatant + root = { + battle_event = { + key = "combatant_captured_in_battle" + left_portrait = scope:combat_winner + right_portrait = scope:this_combatant + type = imprison + target_right = yes + } + } + } + 5 = { # Death + trigger = { + is_alive = yes # Don't kill knights who are already dead! They will be accounted for later. + } + + # Modifiers influencing chance to occur. + modifier = { + factor = { # Prowess directly reduces chance of capture + value = 40 # Value at which 'immunity' happens + subtract = prowess + divide = 40 + min = 0.1 # Everyone makes mistakes. + } + } + + # Craven characters are more likely to flee before they can be slain. + modifier = { + factor = 0.5 + has_trait = craven + } + modifier = { + factor = 2 + has_trait = brave + } + + # Increased chance of dying the more wounded a character is. + modifier = { + factor = 2 + OR = { + has_trait = one_legged + has_trait = disfigured + has_trait = one_eyed + has_trait = maimed + } + } + modifier = { + factor = 1.5 + has_trait_rank = { + trait = wounded + rank = 1 + } + } + modifier = { + factor = 2 + has_trait_rank = { + trait = wounded + rank = 2 + } + } + modifier = { + factor = 3 + has_trait_rank = { + trait = wounded + rank = 3 + } + } + + save_died_in_battle_variables_effect = { + ENEMY = scope:combat_winner + LEADER = scope:combat_loser + LOCATION = scope:combat_location + } + + # State Ransoms: characters are more likely to surrender if their liege will pay their ransom, which makes them less likely to die. + modifier = { + factor = 0.5 + liege.culture = { has_cultural_parameter = knights_die_less_but_are_captured_more } + } + modifier = { + factor = 0.5 + is_acclaimed = yes + } + + # For messaging purposes. + add_to_list = slain_combatants + + # Log a battle event so that the imprisonment shows up in the battle summary screen. + save_temporary_scope_as = this_combatant + + # Get a random valid knight to be the killer. + scope:winning_side = { + random_side_knight = { + limit = { + this.prowess >= scope:this_combatant.prowess_for_combat_event_opponent + } + + weight = { + base = 1 + + compare_modifier = { + value = this.prowess + } + + modifier = { + factor = 10 + this.prowess > scope:this_combatant.prowess + } + } + + save_scope_as = enemy_knight + } + } + + # Log the battle event and then kill the knight + if = { + limit = { + exists = scope:enemy_knight + } + # Transfer equipped armor and weapon to killer if durability not too low + combat_transfer_equipped_artifact_effect = { TYPE = primary_armament OWNER = scope:enemy_knight } + combat_transfer_equipped_artifact_effect = { TYPE = armor OWNER = scope:enemy_knight } + root = { + battle_event = { + key = "combatant_killed_in_battle" + left_portrait = scope:enemy_knight + right_portrait = scope:this_combatant + type = death + target_right = yes + } + } + + death = { + death_reason = death_battle + killer = scope:enemy_knight + } + } + else = { + root = { + battle_event = { + key = "combatant_killed_in_battle_no_killer" + left_portrait = scope:combat_winner + right_portrait = scope:this_combatant + type = death + target_right = yes + } + } + + death = { + death_reason = death_battle + } + } + clear_saved_scope = enemy_knight + } + 0 = { + # If the knight is already dead, don't do anything (yet). + } + } + petition_knight_battle_history_effect = yes # Set history variables for petition events + } + # Add the enemy knights which were killed before the end of the battle to the casualties list. + every_in_list = { + variable = slain_side_knights + add_to_list = slain_combatants + } + clear_variable_list = slain_side_knights + } + + # Also record who already died on the winning side, so the victor knows their own casualty count. + scope:winning_side = { + every_in_list = { + variable = slain_side_knights + add_to_list = victorious_slain_combatants + } + clear_variable_list = slain_side_knights + } + + + # Handle effects & messaging for any slain combatants. + if = { + limit = { + OR = { + any_in_list = { + list = slain_combatants + exists = this + } + any_in_list = { + list = victorious_slain_combatants + exists = this + } + } + } + # If anyone was slain after the battle, send a message to both the winner and loser of the combat to inform them of this. + scope:combat_winner = { + trigger_event = combat_event.1012 + } + scope:combat_loser = { + trigger_event = combat_event.1013 + } + + # Send a message to all other players who may be concerned about the fate of the slain combatants. + every_player = { + limit = { + NOR = { + this = scope:combat_winner + this = scope:combat_loser + } + + save_temporary_scope_as = notification_target + + OR = { + any_in_list = { + list = slain_combatants + combat_event_1001_character_is_relevant_to_target_trigger = { TARGET = scope:notification_target } + } + any_in_list = { + list = victorious_slain_combatants + combat_event_1001_character_is_relevant_to_target_trigger = { TARGET = scope:notification_target } + } + } + } + trigger_event = combat_event.1014 + } + } + + # Handle effects & messaging for any captured combatants (must be done after slain combatants for order-of-operations reasons!). + if = { + limit = { + any_in_list = { + list = prisoners_of_war + exists = this + } + } + # If anyone was captured after the battle, send a message to both the winner and loser of the combat to inform them of this. + scope:combat_winner = { + trigger_event = combat_event.1002 + } + scope:combat_loser = { + trigger_event = combat_event.1003 + } + # Send a message to all other players who may be concerned about the fate of the captured prisoners. + every_player = { + limit = { + NOR = { + this = scope:combat_winner + this = scope:combat_loser + } + + save_temporary_scope_as = notification_target + any_in_list = { + list = prisoners_of_war + + combat_event_1001_character_is_relevant_to_target_trigger = { TARGET = scope:notification_target } + } + } + trigger_event = combat_event.1004 + } + } + every_side_participant = { + random = { # chance of inspiring a knight to become eligible for thug accolade + chance = 2 + modifier = { + factor = accolade_progress # scales with accolade progress + } + modifier = { # must have an eligible knight + NOT = { + root = { + any_side_knight = { + can_unlock_accolade_attribute_trigger = { + ATTRIBUTE = thug + } + any_killed_character = { + OR = { + is_in_list = slain_combatants + is_in_list = victorious_slain_combatants + } + } + } + } + } + factor = 0 + } + save_scope_as = accolade_liege + set_variable = { + name = accolade_progress + value = 0 + } + root = { + random_side_knight = { + limit = { + can_unlock_accolade_attribute_trigger = { + ATTRIBUTE = thug + } + any_killed_character = { + OR = { + is_in_list = slain_combatants + is_in_list = victorious_slain_combatants + } + } + } + weight = { + base = 1 + modifier = { + add = 50 + is_acclaimed = yes + } + } + save_scope_as = accolade_knight + } + } + send_interface_message = { + type = msg_accolade_eligibility + title = accolade_thug_unlock.t + left_icon = scope:accolade_knight + right_icon = scope:accolade_liege + custom_tooltip = accolade_thug_unlock.tt + scope:accolade_knight = { + set_variable = { + name = thug_attribute_unlock + value = yes + } + } + } + } + } + } +} + +##################### +# Prisoners of War + +# Prisoner notification event for combat winner. +combat_event.1002 = { + type = character_event + hidden = yes + + immediate = { + # Initialize the variable we will use to keep track of how many relevant prisoners there are. + set_variable = { + name = num_other_relevant_captured_combatants + value = 0 + } + + # Re-order the combatant list based on who we care about the most. + ordered_in_list = { + list = prisoners_of_war + max = 99 + check_range_bounds = no + + order_by = { + value = captured_combatant_weights_for_root_participant + } + + # Add the prisoners to a new list tailored to be more relevant to this character. + add_to_list = relevant_prisoners_of_war + root = { + change_variable = { + name = num_other_relevant_captured_combatants + add = 1 + } + } + + # Since we will send custom imprisonment events, block the default ones. + hidden_effect = { + if = { + limit = { is_alive = yes } + add_character_flag = { + flag = block_imprisonment_event + days = 1 + } + } + } + + # The first two prisoners on this list (i.e., the most important people to us) should be have their individual scopes saved for use in portraits & localization. + if = { + limit = { + NOT = { exists = scope:primary_prisoner } + } + save_scope_as = primary_prisoner + } + else_if = { + limit = { + NOT = { exists = scope:secondary_prisoner } + } + save_scope_as = secondary_prisoner + } + } + + # Decrement the number of relevant captured combatants, to exclude the primary prisoner from the count (for localization). + change_variable = { + name = num_other_relevant_captured_combatants + add = -1 + } + + # Send a message telling us about the prisoners we have captured. + send_interface_message = { + type = event_captured_combatants_good + title = combat_event.1002.pow_message.t + desc = { + first_valid = { + # Only one relevant prisoner. + triggered_desc = { + trigger = { + var:num_other_relevant_captured_combatants = 0 + } + desc = combat_event.1002.pow_message.desc.single + } + # Exactly two relevant prisoners. + triggered_desc = { + trigger = { + var:num_other_relevant_captured_combatants = 1 + } + desc = combat_event.1002.pow_message.desc.double + } + # Three or more relevant prisoners. + desc = combat_event.1002.pow_message.desc.multiple + } + desc = combat_event.1002.pow_message.desc.end + } + tooltip = event_message_effect + left_icon = scope:primary_prisoner + + # Imprison all prisoners of war + every_in_list = { + list = relevant_prisoners_of_war + limit = { is_alive = yes } + + save_temporary_scope_as = this_prisoner + scope:combat_winner = { + if = { + limit = { scope:this_prisoner = { is_imprisoned = no } } + imprison = { + target = scope:this_prisoner + type = house_arrest + } + } + } + hidden_effect = { + ####################### + # If necessary, send toasts about the captured prisoner to the war leaders. + + # Check if this prisoner is important enough (worth war score) that it is worth sending a toast about them in the first place. + if = { + limit = { + exists = scope:primary_combat_winner + exists = scope:primary_combat_loser + + combat_event_1001_character_is_important_combatant = yes + } + save_scope_as = valuable_prisoner + + # The imprisoner must be informed that they captured an important hostage. + scope:combat_winner = { + trigger_event = combat_event.1005 + } + + # The losing primary participant must be informed that they will/have lost warscore because a hostage was captured. + if = { + limit = { + # But not if they themselves are the prisoner! (they will get an event already upon being imprisoned). + scope:valuable_prisoner != scope:primary_combat_loser + } + scope:primary_combat_loser = { + trigger_event = combat_event.1006 + } + } + + # If the combat winner is different from the winning war leader, we also need to send a message to the war leader. + if = { + limit = { + scope:combat_winner != scope:primary_combat_winner + } + scope:primary_combat_winner = { + trigger_event = combat_event.1007 + } + } + } + } + } + if = { + limit = { + scope:combat_winner = { is_in_army = yes } + any_in_list = { + list = relevant_prisoners_of_war + is_alive = yes + is_imprisoned_by = scope:combat_winner + has_relation_rival = scope:combat_winner + } + } + every_in_list = { + list = relevant_prisoners_of_war + limit = { + is_alive = yes + is_imprisoned_by = scope:combat_winner + has_relation_rival = scope:combat_winner + } + add_to_list = captured_rivals + } + scope:combat_winner = { trigger_event = bp1_yearly.8060 } + } + } + + remove_variable = num_other_relevant_captured_combatants + } +} + +# Prisoner notification event for combat loser. +combat_event.1003 = { + type = character_event + hidden = yes + + immediate = { + # Initialize the variable we will use to keep track of how many relevant prisoners there are. + set_variable = { + name = num_other_relevant_captured_combatants + value = 0 + } + + # Re-order the combatant list based on who we care about the most. + ordered_in_list = { + list = prisoners_of_war + max = 99 + check_range_bounds = no + + limit = { + this != root + } + + order_by = { + value = captured_combatant_weights_for_root_participant + } + + # Add the prisoners to a new list tailored to be more relevant to this character. + add_to_list = relevant_prisoners_of_war + root = { + change_variable = { + name = num_other_relevant_captured_combatants + add = 1 + } + } + + # The first two prisoners on this list (i.e., the most important people to us) should be have their individual scopes saved for use in portraits & localization. + if = { + limit = { + NOT = { exists = scope:primary_prisoner } + } + save_scope_as = primary_prisoner + } + else_if = { + limit = { + NOT = { exists = scope:secondary_prisoner } + } + save_scope_as = secondary_prisoner + } + } + + # Decrement the number of relevant captured combatants, to exclude the primary prisoner from the count (for localization). + change_variable = { + name = num_other_relevant_captured_combatants + add = -1 + } + + # Send a message telling us about the prisoners our enemy captured. + send_interface_message = { + type = event_captured_combatants_bad + title = combat_event.1003.pow_message.t + desc = { + first_valid = { + # Only one relevant prisoner. + triggered_desc = { + trigger = { + var:num_other_relevant_captured_combatants = 0 + } + desc = combat_event.1003.pow_message.desc.single + } + # Exactly two relevant prisoners. + triggered_desc = { + trigger = { + var:num_other_relevant_captured_combatants = 1 + } + desc = combat_event.1003.pow_message.desc.double + } + # Three or more relevant prisoners. + desc = combat_event.1003.pow_message.desc.multiple + } + desc = combat_event.1003.pow_message.desc.end + } + tooltip = event_message_effect + left_icon = scope:primary_prisoner + right_icon = scope:combat_winner + + # Imprison all prisoners of war + every_in_list = { + list = relevant_prisoners_of_war + limit = { is_alive = yes } + + save_temporary_scope_as = this_prisoner + show_as_tooltip = { + scope:combat_winner = { + imprison = { + target = scope:this_prisoner + type = house_arrest + } + } + } + } + } + + remove_variable = num_other_relevant_captured_combatants + } +} + +# Prisoner notification event for other relevant characters (sends a personalized notification to a player about characters of interest who were captured in battle.) +combat_event.1004 = { + type = character_event + hidden = yes + + immediate = { + # Initialize the variable we will use to keep track of how many relevant prisoners there are. + set_variable = { + name = num_other_relevant_captured_combatants + value = 0 + } + + # Transform the list of all prisoners of war into a list of prisoners that we specifically care about. + ordered_in_list = { + list = prisoners_of_war + max = 99 + check_range_bounds = no + + limit = { + this != root # Do not send a message about ourselves. + combat_event_1001_character_is_relevant_to_target_trigger = { TARGET = root } + } + + order_by = { + value = captured_combatant_weights_for_root_nonparticipant + } + + # Add the prisoners to a new list tailored to be more relevant to this character. + add_to_list = relevant_prisoners_of_war + root = { + change_variable = { + name = num_other_relevant_captured_combatants + add = 1 + } + } + + # The first two prisoners on this list (i.e., the most important people to us) should be have their individual scopes saved for use in portraits & localization. + if = { + limit = { + NOT = { exists = scope:primary_prisoner } + } + save_scope_as = primary_prisoner + } + else_if = { + limit = { + NOT = { exists = scope:secondary_prisoner } + } + save_scope_as = secondary_prisoner + } + } + + # Decrement the number of relevant captured combatants, to exclude the primary prisoner from the count (for localization). + change_variable = { + name = num_other_relevant_captured_combatants + add = -1 + } + + # Send a message to the player informing them of the captured combatants. + send_interface_message = { + type = event_captured_combatants_neutral + title = combat_event.1004.pow_message.t + desc = { + first_valid = { + # Only one relevant prisoner. + triggered_desc = { + trigger = { + var:num_other_relevant_captured_combatants = 0 + } + desc = combat_event.1003.pow_message.desc.single + } + # Exactly two relevant prisoners. + triggered_desc = { + trigger = { + var:num_other_relevant_captured_combatants = 1 + } + desc = combat_event.1003.pow_message.desc.double + } + # Three or more relevant prisoners. + desc = combat_event.1003.pow_message.desc.multiple + } + desc = combat_event.1004.pow_message.desc.end + } + tooltip = event_message_effect + left_icon = scope:primary_prisoner + right_icon = scope:combat_winner + + show_as_tooltip = { + every_in_list = { + list = relevant_prisoners_of_war + limit = { is_alive = yes } + + save_temporary_scope_as = this_prisoner + scope:combat_winner = { + imprison = { + target = scope:this_prisoner + type = house_arrest + } + } + } + } + } + + remove_variable = num_other_relevant_captured_combatants + } +} + +# Sents a toast about a captured hostage to the winning commander. +combat_event.1005 = { + type = character_event + hidden = yes + + immediate = { + if = { + limit = { + scope:valuable_prisoner = scope:primary_combat_loser + } + send_interface_toast = { + type = msg_character_captured_by_me + title = combat_event.1005.pow_toast.t + desc = combat_event.1005.pow_toast.desc.primary + left_icon = scope:combat_winner + right_icon = scope:valuable_prisoner + } + } + else = { + send_interface_toast = { + type = msg_character_captured_by_me + title = combat_event.1005.pow_toast.t + desc = combat_event.1005.pow_toast.desc + left_icon = scope:combat_winner + right_icon = scope:valuable_prisoner + } + } + } +} + +# Sents a toast about a captured hostage to the losing primary participant. +combat_event.1006 = { + type = character_event + hidden = yes + + immediate = { + send_interface_toast = { + type = msg_character_captured_by_other_side + title = combat_event.1006.pow_toast.t + desc = combat_event.1006.pow_toast.desc + left_icon = scope:combat_winner + right_icon = scope:valuable_prisoner + } + } +} + +# Sents a toast about a captured hostage to the winning primary participant. +combat_event.1007 = { + type = character_event + hidden = yes + + immediate = { + if = { + limit = { + scope:valuable_prisoner = scope:primary_combat_loser + } + send_interface_toast = { + type = msg_character_captured_by_me + title = combat_event.1007.pow_toast_primary.t + desc = combat_event.1007.pow_toast.desc.primary + left_icon = scope:combat_winner + right_icon = scope:valuable_prisoner + } + } + else = { + send_interface_toast = { + type = msg_character_captured_by_me + title = combat_event.1007.pow_toast.t + desc = combat_event.1007.pow_toast.desc + left_icon = scope:combat_winner + right_icon = scope:valuable_prisoner + } + } + } +} + +scripted_effect generate_relevant_slain_combatants_list_effect = { + # Initialize the variable we will use to keep track of how many relevant casualties there are. + set_variable = { + name = num_other_relevant_slain_combatants + value = 0 + } + + # Re-order the combatant list based on who we care about the most. + ordered_in_list = { + list = $LIST_OF_SLAIN_COMBATANTS$ + max = 99 + check_range_bounds = no + + limit = { # We only care about people on the enemy side who matter to us, not generic knights. + this != root # Do not send a message about ourselves. + trigger_if = { + limit = { + $LIST_ALL_CHARACTERS$ = no + } + # Must be relevant to root in some way. + OR = { + AND = { + exists = scope:combat_war + root = { is_attacker_in_war = scope:combat_war } + this = scope:combat_war.primary_defender + } + AND = { + exists = scope:combat_war + root = { is_defender_in_war = scope:combat_war } + this = scope:combat_war.primary_attacker + } + combat_event_1001_character_is_relevant_to_target_trigger = { TARGET = root } + } + } + } + + order_by = { + value = 0 + if = { + limit = { + OR = { + AND = { + exists = scope:combat_war + root = { is_attacker_in_war = scope:combat_war } + this = scope:combat_war.primary_defender + } + AND = { + exists = scope:combat_war + root = { is_defender_in_war = scope:combat_war } + this = scope:combat_war.primary_attacker + } + } + } + add = 1000 + } + add = slain_combatant_weights_for_root_participant + } + + # Add the casualties to a new list tailored to be more relevant to this character. + add_to_list = relevant_slain_combatants + root = { + change_variable = { + name = num_other_relevant_slain_combatants + add = 1 + } + } + + # The first two casualties on this list (i.e., the most important people to us) should be have their individual scopes saved for use in portraits & localization. + if = { + limit = { + NOT = { exists = scope:primary_deceased } + } + save_scope_as = primary_deceased + + # Decrement the number of relevant slain combatants, to exclude the primary deceased from the count (for localization). + root = { + change_variable = { + name = num_other_relevant_slain_combatants + add = -1 + } + } + } + else_if = { + limit = { + NOT = { exists = scope:secondary_deceased } + } + save_scope_as = secondary_deceased + } + } +} + +scripted_effect clear_relevant_slain_combatants_list_effect = { + every_in_list = { + list = relevant_slain_combatants + remove_from_list = relevant_slain_combatants + } + remove_variable = num_other_relevant_slain_combatants + clear_saved_scope = primary_deceased + clear_saved_scope = secondary_deceased +} + +##################### +# Slain Combatants + +# Casualty notification event for combat winner. +combat_event.1012 = { + type = character_event + hidden = yes + + immediate = { + # Generate a list of relevant slain characters on the enemy's side. + generate_relevant_slain_combatants_list_effect = { + LIST_OF_SLAIN_COMBATANTS = slain_combatants + LIST_ALL_CHARACTERS = no + } + if = { + limit = { + any_in_list = { + list = relevant_slain_combatants + } + } + # Send a message telling us about the casualties we inflicted after the battle + send_interface_message = { + type = event_slain_combatants_good + title = combat_event.1012.slain_message.t + desc = { + first_valid = { + triggered_desc = { + trigger = { var:num_other_relevant_slain_combatants = 0 } + desc = combat_event.1012.slain_message.desc.single + } + triggered_desc = { + trigger = { var:num_other_relevant_slain_combatants = 1 } + desc = combat_event.1012.slain_message.desc.double + } + desc = combat_event.1012.slain_message.desc.multiple + } + desc = combat_event.1012.slain_message.desc.end + } + tooltip = event_message_effect + left_icon = scope:primary_deceased + + # Show all slain combatants. + every_in_list = { + list = relevant_slain_combatants + + show_as_tooltip = { + death = { + death_reason = death_battle + } + } + } + } + } + clear_relevant_slain_combatants_list_effect = yes + + # Repeat the above, but for casualties on our own side. + generate_relevant_slain_combatants_list_effect = { + LIST_OF_SLAIN_COMBATANTS = victorious_slain_combatants + LIST_ALL_CHARACTERS = yes + } + if = { + limit = { + any_in_list = { + list = relevant_slain_combatants + } + } + # Send a message telling us about the casualties we inflicted after the battle + send_interface_message = { + type = event_slain_combatants_bad + title = combat_event.1013.slain_message.t + desc = { + first_valid = { + triggered_desc = { + trigger = { var:num_other_relevant_slain_combatants = 0 } + desc = combat_event.1013.slain_message.desc.single + } + triggered_desc = { + trigger = { var:num_other_relevant_slain_combatants = 1 } + desc = combat_event.1013.slain_message.desc.double + } + desc = combat_event.1013.slain_message.desc.multiple + } + desc = combat_event.1013.slain_message.desc.end + } + tooltip = event_message_effect + left_icon = scope:primary_deceased + + # Show all slain combatants. + every_in_list = { + list = relevant_slain_combatants + + show_as_tooltip = { + death = { + death_reason = death_battle + } + } + } + } + } + clear_relevant_slain_combatants_list_effect = yes + } +} + +# Casualty notification event for combat loser. +combat_event.1013 = { + type = character_event + hidden = yes + + immediate = { + # Generate a list of relevant slain characters on the enemy's side. + generate_relevant_slain_combatants_list_effect = { + LIST_OF_SLAIN_COMBATANTS = victorious_slain_combatants + LIST_ALL_CHARACTERS = no + } + if = { + limit = { + any_in_list = { + list = relevant_slain_combatants + } + } + # Send a message telling us about the casualties we inflicted after the battle + send_interface_message = { + type = event_slain_combatants_good + title = combat_event.1012.slain_message.t + desc = { + first_valid = { + triggered_desc = { + trigger = { var:num_other_relevant_slain_combatants = 0 } + desc = combat_event.1012.slain_message.desc.single + } + triggered_desc = { + trigger = { var:num_other_relevant_slain_combatants = 1 } + desc = combat_event.1012.slain_message.desc.double + } + desc = combat_event.1012.slain_message.desc.multiple + } + desc = combat_event.1012.slain_message.desc.end + } + tooltip = event_message_effect + left_icon = scope:primary_deceased + + # Show all slain combatants. + every_in_list = { + list = relevant_slain_combatants + + show_as_tooltip = { + death = { + death_reason = death_battle + } + } + } + } + } + clear_relevant_slain_combatants_list_effect = yes + + # Repeat the above, but for casualties on our own side. + generate_relevant_slain_combatants_list_effect = { + LIST_OF_SLAIN_COMBATANTS = slain_combatants + LIST_ALL_CHARACTERS = yes + } + if = { + limit = { + any_in_list = { + list = relevant_slain_combatants + } + } + # Send a message telling us about the casualties we inflicted after the battle + send_interface_message = { + type = event_slain_combatants_bad + title = combat_event.1013.slain_message.t + desc = { + first_valid = { + triggered_desc = { + trigger = { var:num_other_relevant_slain_combatants = 0 } + desc = combat_event.1013.slain_message.desc.single + } + triggered_desc = { + trigger = { var:num_other_relevant_slain_combatants = 1 } + desc = combat_event.1013.slain_message.desc.double + } + desc = combat_event.1013.slain_message.desc.multiple + } + desc = combat_event.1013.slain_message.desc.end + } + tooltip = event_message_effect + left_icon = scope:primary_deceased + + # Show all slain combatants. + every_in_list = { + list = relevant_slain_combatants + + show_as_tooltip = { + death = { + death_reason = death_battle + } + } + } + } + } + clear_relevant_slain_combatants_list_effect = yes + } +} + +# Casualty notification event for other relevant characters (sends a personalized notification to a player about characters of interest who were captured in battle.) +combat_event.1014 = { + type = character_event + hidden = yes + + immediate = { + every_in_list = { + list = slain_combatants + add_to_list = all_slain_combatants + } + every_in_list = { + list = victorious_slain_combatants + add_to_list = all_slain_combatants + } + + # Generate a list of all relevant slain combatants on both sides. + generate_relevant_slain_combatants_list_effect = { + LIST_OF_SLAIN_COMBATANTS = all_slain_combatants + LIST_ALL_CHARACTERS = no + } + + if = { + limit = { + any_in_list = { + list = relevant_slain_combatants + } + } + # Send a message to the player informing them of the slain combatants. + send_interface_message = { + type = event_slain_combatants_neutral + title = combat_event.1014.slain_message.t + desc = { + first_valid = { + triggered_desc = { + trigger = { + var:num_other_relevant_slain_combatants = 0 + } + desc = combat_event.1013.slain_message.desc.single + } + triggered_desc = { + trigger = { + var:num_other_relevant_slain_combatants = 1 + } + desc = combat_event.1013.slain_message.desc.double + } + desc = combat_event.1013.slain_message.desc.multiple + } + desc = combat_event.1013.slain_message.desc.end + } + tooltip = event_message_effect + left_icon = scope:primary_deceased + + # Show all slain combatants. + show_as_tooltip = { + every_in_list = { + list = relevant_slain_combatants + + death = { + death_reason = death_battle + } + } + } + } + } + + clear_relevant_slain_combatants_list_effect = yes + } +} + +# Become known as a Gajapati if you have the prerequisites +combat_event.2001 = { + hidden = yes + scope = combat_side + + trigger = { + has_maa_of_type = war_elephant + side_commander ?= { + is_alive = yes + culture = { + has_cultural_parameter = elephant_bonuses_for_rank_4_education + } + OR = { + has_trait = education_diplomacy_4 + has_trait = education_stewardship_4 + has_trait = education_martial_4 + has_trait = education_learning_4 + has_trait = education_diplomacy_5 + has_trait = education_stewardship_5 + has_trait = education_martial_5 + has_trait = education_learning_5 + } + NOT = { + has_nickname = nick_gajapati + } + } + } + + immediate = { + random = { + chance = 15 + side_commander = { set_nickname_effect = { NICKNAME = nick_gajapati } } + } + } +} + +##################### +# Accolade Glory Changes + +# Battle Won: glory goes up. +combat_event.2101 = { + hidden = yes + scope = combat_side + + trigger = { + OR = { + any_side_knight = { + is_acclaimed = yes + } + any_side_commander = { + is_acclaimed = yes + } + } + } + + immediate = { + every_side_knight = { + limit = { + is_acclaimed = yes + } + accolade = { add_glory = minor_glory_gain } + } + every_side_commander = { + limit = { + is_acclaimed = yes + } + accolade = { add_glory = minor_glory_gain } + } + } +} + +# Battle Lost: glory goes down [sad trombone noises]. +combat_event.2111 = { + hidden = yes + scope = combat_side + + trigger = { + OR = { + any_side_knight = { + is_acclaimed = yes + } + any_side_commander = { + is_acclaimed = yes + } + } + } + + immediate = { + every_side_knight = { + limit = { + is_acclaimed = yes + } + accolade = { add_glory = minimal_glory_loss } + } + every_side_commander = { + limit = { + is_acclaimed = yes + } + accolade = { add_glory = minimal_glory_loss } + } + } +} +# +###################### +## Hereward the Wake +# +## You beat a Norman! Gain XP. +#combat_event.2200 = { +# hidden = yes +# scope = combat_side +# +# trigger = { +# exists = side_commander +# exists = enemy_side.side_commander +# enemy_side.side_commander = { +# has_culture = culture:norman +# } +# side_commander = { +# has_trait = the_wake +# } +# } +# +# immediate = { +# if = { #Hereward should always have the trait, but just in case +# limit = { +# side_commander = { +# has_trait = the_wake +# } +# } +# side_commander = { +# add_trait_xp = { +# trait = the_wake +# value = { 10 15 } +# } +# } +# } +# } +#} + +############## +# Battle PoI # +############## +combat_event.3000 = { + hidden = yes + scope = combat_side + + trigger = { + # Check to ensure all needed scopes are valid + exists = combat.location + exists = side_primary_participant + exists = enemy_side.side_primary_participant + + combat.location = { # Check if the region has gotten one the last 25 years already + switch = { + trigger = geographical_region + graphical_western = { battle_poi_region_trigger = { REGION = graphical_western } } + graphical_mena = { battle_poi_region_trigger = { REGION = graphical_mena } } + graphical_india = { battle_poi_region_trigger = { REGION = graphical_india } } + graphical_mediterranean = { battle_poi_region_trigger = { REGION = graphical_mediterranean } } + graphical_steppe = { battle_poi_region_trigger = { REGION = graphical_steppe } } + } + NOR = { # Check that it doesn't already have any of the key data variables on the province, or a historical battle + has_travel_point_of_interest = poi_battles_historical + has_variable = battle_poi_winner + has_variable = battle_poi_loser + has_variable = battle_poi_date_day + has_variable = battle_poi_date_month + has_variable = battle_poi_date_year + } + } + + # Check if this battle was important enough + calc_true_if = { + amount >= 3 + any_in_list = { + list = slain_combatants + OR = { + this = root.enemy_side.side_primary_participant + is_heir_of = root.enemy_side.side_primary_participant + is_consort_of = root.enemy_side.side_primary_participant + } + } + any_in_list = { + list = prisoners_of_war + OR = { + this = root.enemy_side.side_primary_participant + is_heir_of = root.enemy_side.side_primary_participant + is_consort_of = root.enemy_side.side_primary_participant + } + } + troops_ratio <= 0.5 + num_enemies_killed >= battle_poi_number_value # Scaling the later it gets, starts with 3000 before 1000 and then multiplies by 2 in 1000, 3 in 1100, etc + AND = { + percent_enemies_killed >= 65 + combat = { + num_total_troops >= { + add = battle_poi_number_value + multiply = 2 + } + } + } + combat = { + num_total_troops >= { + add = battle_poi_number_value + multiply = 3 + } + } + combat = { warscore_value >= 15 } + side_primary_participant = { is_ai = no } + enemy_side.side_primary_participant = { is_ai = no } + } + } + + immediate = { + combat.location = { + save_scope_as = combat_location + + switch = { ### Setting a cooldown for the region, so we don't get too many + trigger = geographical_region + graphical_western = { battle_poi_region_cooldown_effect = { REGION = graphical_western } } + graphical_mena = { battle_poi_region_cooldown_effect = { REGION = graphical_mena } } + graphical_india = { battle_poi_region_cooldown_effect = { REGION = graphical_india } } + graphical_mediterranean = { battle_poi_region_cooldown_effect = { REGION = graphical_mediterranean } } + graphical_steppe = { battle_poi_region_cooldown_effect = { REGION = graphical_steppe } } + } + + ### Key data + add_to_global_variable_list = { # Add to list so it can be found by the PoI + name = battle_poi_list + target = this + } + set_variable = { # Winning Commander + name = battle_poi_winner + value = root.side_primary_participant + } + root.side_primary_participant = { + if = { + limit = { + has_dynasty = no + } + make_unprunable = yes + } + } + set_variable = { # Losing Commander + name = battle_poi_loser + value = root.enemy_side.side_primary_participant + } + root.enemy_side.side_primary_participant = { + if = { + limit = { + has_dynasty = no + } + make_unprunable = yes + } + } + set_variable = { # Day + name = battle_poi_date_day + value = current_day + } + set_variable = { # Month + name = battle_poi_date_month + value = current_month + } + set_variable = { # Year + name = battle_poi_date_year + value = current_year + } + random_list = { # Set a randomized variable, so we don't need the same desc every time + 10 = { battle_poi_randomizer_effect = { NAME = 1 } } + 10 = { battle_poi_randomizer_effect = { NAME = 2 } } + 10 = { battle_poi_randomizer_effect = { NAME = 3 } } + } + ### Extra (optional) data + if = { # Attacker + limit = { + root = { is_combat_side_attacker = yes } + } + set_variable = { name = battle_poi_attacker } + } + else = { # Defender + set_variable = { name = battle_poi_defender } + } + set_variable = { # Slain enemies (Percentage) + name = battle_poi_slain + value = root.percent_enemies_killed + } + if = { # Slay the opposing Commander + limit = { + any_in_list = { + list = slain_combatants + this = root.enemy_side.side_primary_participant + } + } + set_variable = { name = battle_poi_enemy_commander_slain } + } + if = { # Imprison the opposing Commander + limit = { + any_in_list = { + list = prisoners_of_war + this = root.enemy_side.side_primary_participant + } + } + set_variable = { name = battle_poi_enemy_commander_imprisoned } + } + root = { + random_side_knight = { # Check for particularly brave knight + limit = { + OR = { + prowess >= 20 + has_trait = brave + has_trait = lifestyle_blademaster + has_trait = varangian + has_trait = berserker + } + } + scope:combat_location = { + set_variable = { + name = battle_poi_brave_knight + value = prev + } + } + } + side_primary_participant.commanding_army = { # Find a Unit Type that was in the battle + random_army_maa_regiment = { + limit = { + NOR = { + is_unit_type = siege_weapon + is_unit_type = skirmishers + } + } + switch = { + trigger = is_unit_type + archers = { battle_poi_maa_regiment_effect = { NAME = archers } } + light_cavalry = { battle_poi_maa_regiment_effect = { NAME = light_cavalry } } + archer_cavalry = { battle_poi_maa_regiment_effect = { NAME = light_cavalry } } + pikemen = { battle_poi_maa_regiment_effect = { NAME = pikemen } } + heavy_infantry = { battle_poi_maa_regiment_effect = { NAME = heavy_infantry } } + heavy_cavalry = { battle_poi_maa_regiment_effect = { NAME = heavy_cavalry } } + elephant_cavalry = { battle_poi_maa_regiment_effect = { NAME = heavy_cavalry } } + } + } + } + } + } + } +} diff --git a/events/war_events/raid_events.txt b/events/war_events/raid_events.txt new file mode 100644 index 00000000..2485d9e0 --- /dev/null +++ b/events/war_events/raid_events.txt @@ -0,0 +1,1488 @@ +namespace = raiding + +################################################## +#Raiding CB events + + #0001-0002 - You have the chance to sack a holding. + #0003 - Your holding may have been sacked (liege or vassal). + #0004 - Your vassal's holding may have been sacked. + #0011 - Raiding notification event, received upon delivering army loot. + #0012 - Raiding notification event, telling involved parties how much loot a defending army stole. + #0021 - Increase raid tally. + #0022 - Chance to fire viking/raider trait acquisition event. + #0023 - Acquire viking/raider trait. + +################################################## + +################################################## +# Fire and Blood +# by Ewan Cowhig Croft +# #0001-0004 +################################################## + +# You have the chance to sack a holding. +raiding.0001 = { #Hidden event: do I get a sacking? + hidden = yes + scope = army + + trigger = { + #You must be leading your own forces. + scope:raider = { is_at_location = scope:barony.title_province } + scope:barony.title_province = { fort_level > 0 } + #The county must not have recently been sacked. + NOR = { + scope:county = { has_county_modifier = recently_sacked_modifier } + scope:county.title_province = { has_holding_type = herder_holding } + } + } + + immediate = { + save_scope_as = raid_army + random = { + chance = 20 + modifier = { + add = 20 + scope:raider = { has_trait = viking } + } + modifier = { + add = 30 + scope:raid_army = { raid_intent = raze_intent } + } + scope:raider = { + # Grab some loc things. + scope:county = { save_scope_as = sacked_county } + scope:barony = { save_scope_as = sacked_barony } + scope:raider.capital_province = { save_scope_as = raider_capital } + trigger_event = raiding.0002 + } + } + } +} + +raiding.0002 = { #Less hidden event: I do get a sacking! + type = character_event + title = raiding.0002.t + desc = raiding.0002.desc + theme = raid + override_background = { reference = burning_building } + left_portrait = { + character = root + animation = menacing + } + right_portrait = { + character = scope:sacked_county_owner + animation = fear + triggered_animation = { + trigger = { + ai_vengefulness >= medium_positive_ai_value + ai_boldness > high_negative_ai_value + } + animation = rage + } + } + + trigger = { + NOT = { has_character_flag = had_event_raiding_0002 } + } + + immediate = { + add_character_flag = { + flag = had_event_raiding_0002 + days = 365 + } + #For loc. + scope:sacked_county.holder = { save_scope_as = sacked_county_owner } + } + + #Bring me slaves and scrolls! + option = { + name = raiding.0002.a + trigger = { + NOT = { government_has_flag = government_is_nomadic } + root.capital_county = { development_level < 15 } #If you have a certain amount of development, you can't gain anything from this. + OR = { + scope:county = { development_level > 15 } #The county must actually have enough development to be worth sacking. + scope:county.holder = { #Or at least be a non-tribal place. + NOR = { + government_has_flag = government_is_tribal + government_has_flag = government_is_nomadic + government_has_flag = government_is_herder + } + } + } + } + scope:sacked_county = { + add_county_modifier = { #Prevent the county from being sacked again, by anyone, for quite a while. + modifier = recently_sacked_modifier + years = 20 + } + change_county_control = -10 + change_development_progress = major_development_progress_loss #Always deduct progress. + if = { #If they don't have enough progress made, burn a level of development. + limit = { development_towards_level_increase < major_development_progress_gain } + change_development_level = -1 + } + save_scope_value_as = { + name = sack_status + value = flag:admin_plundered + } + holder = { + trigger_event = raiding.0003 + if = { + limit = { top_liege != this } + liege = { trigger_event = raiding.0004 } + } + } + } + root.capital_county = { + change_development_progress = medium_development_progress_gain + } + stress_impact = { + compassionate = minor_stress_impact_gain + forgiving = minor_stress_impact_gain + } + ai_chance = { + base = 50 + ai_value_modifier = { + ai_greed = 0.5 + ai_compassion = -0.5 + } + modifier = { #Weight down for stress. + add = -20 + has_trait = compassionate + } + modifier = { #Weight down for stress. + add = -20 + has_trait = forgiving + } + } + } + + option = { + name = raiding.0002.a_nomad + trigger = { + government_has_flag = government_is_nomadic + } + scope:sacked_county = { + add_county_modifier = { #Prevent the county from being sacked again, by anyone, for quite a while. + modifier = recently_sacked_modifier + years = 20 + } + change_county_control = -10 + change_development_progress = major_development_progress_loss #Always deduct progress. + if = { #If they don't have enough progress made, burn a level of development. + limit = { development_towards_level_increase < major_development_progress_gain } + change_development_level = -1 + } + save_scope_value_as = { + name = sack_status + value = flag:admin_plundered + } + holder = { + trigger_event = raiding.0003 + if = { + limit = { is_independent_ruler = no } + liege = { trigger_event = raiding.0004 } + } + } + } + root.capital_county = { + add_county_modifier = { + modifier = stolen_ewes_and_mares_modifier + years = 10 + } + } + stress_impact = { + compassionate = minor_stress_impact_gain + forgiving = minor_stress_impact_gain + } + ai_chance = { + base = 50 + ai_value_modifier = { + ai_greed = 0.5 + ai_compassion = -0.5 + } + modifier = { #Weight down for stress. + add = -20 + has_trait = compassionate + } + modifier = { #Weight down for stress. + add = -20 + has_trait = forgiving + } + } + } + + #Bring me bounteous plunder! + option = { + name = raiding.0002.b + scope:sacked_county = { + add_county_modifier = { #Prevent the county from being sacked again for quite a while. + modifier = recently_sacked_modifier + years = 20 + } + if = { #If they have enough progress gain to take the hit, then they just lose some progress. + limit = { + development_towards_level_increase > medium_development_progress_loss + } + change_development_progress = medium_development_progress_loss + } + else = { #If they don't, then they lose the progress, and a level of development is burned away. + change_development_progress = medium_development_progress_loss + change_development_level = -1 + } + save_scope_value_as = { + name = sack_status + value = flag:gold_plundered + } + holder = { + if = { + limit = { top_liege = this } + trigger_event = raiding.0003 + } + else = { + trigger_event = raiding.0003 + liege = { trigger_event = raiding.0004 } + } + } + } + scope:raid_army = { add_loot = scope:sacked_barony.county.title_province.raid_gold_value } + add_prestige = minor_prestige_value + stress_impact = { + compassionate = minor_stress_impact_gain + forgiving = minor_stress_impact_gain + } + ai_chance = { + base = 50 + ai_value_modifier = { + ai_greed = 0.75 + ai_compassion = -0.25 #It's more ethical to steal stuff than people, right? + } + modifier = { #Weight down for stress. + add = -20 + has_trait = compassionate + } + modifier = { #Weight down for stress. + add = -20 + has_trait = forgiving + } + } + } + #I want no part of these shenanigans. + option = { + name = raiding.0002.c + scope:sacked_county = { + #Opinion gain if not primary defender. + save_scope_value_as = { + name = sack_status + value = flag:spared_plundered + } + holder = { + if = { + limit = { top_liege = this } + trigger_event = raiding.0003 + } + else = { + trigger_event = raiding.0003 + liege = { trigger_event = raiding.0004 } + } + } + } + if = { + limit = { + faith = { + OR = { + trait_is_sin = compassionate + trait_is_sin = forgiving + trait_is_sin = calm + } + } + } + add_piety = minor_piety_loss + } + else = { add_piety = medium_piety_gain } + stress_impact = { + sadistic = minor_stress_impact_gain + vengeful = minor_stress_impact_gain + wrathful = minor_stress_impact_gain + greedy = minor_stress_impact_gain + } + ai_chance = { + base = 50 + ai_value_modifier = { + ai_compassion = 0.5 + ai_honor = 0.25 + ai_greed = -0.25 + } + modifier = { #Weight down for stress. + add = -20 + has_trait = sadistic + } + modifier = { #Weight down for stress. + add = -20 + has_trait = vengeful + } + modifier = { #Weight down for stress. + add = -20 + has_trait = wrathful + } + } + } +} + +# Your holding may have been sacked (liege or vassal). +raiding.0003 = { + type = character_event + title = { + first_valid = { + triggered_desc = { + trigger = { scope:sack_status = flag:spared_plundered } + desc = raiding.0003.t_spared + } + desc = raiding.0003.t_attacked + } + } + desc = { + first_valid = { + triggered_desc = { #If the holding was raided for skilled slaves, let us know of such. + trigger = { + scope:sack_status = flag:admin_plundered + top_liege = this + } + desc = raiding.0003.desc.admin_plundered_independent + } + triggered_desc = { #If the holding was raided for gold, then tell us our shinies are gone. + trigger = { + scope:sack_status = flag:gold_plundered + top_liege = this + } + desc = raiding.0003.desc.gold_plundered_independent + } + triggered_desc = { #If the holding was spared, we have a lukewarm one response. + trigger = { + scope:sack_status = flag:spared_plundered + top_liege = this + } + desc = raiding.0003.desc.spared_plundered_independent + } + triggered_desc = { + trigger = { scope:sack_status = flag:admin_plundered } + desc = raiding.0003.desc.admin_plundered_vassal + } + triggered_desc = { + trigger = { scope:sack_status = flag:gold_plundered } + desc = raiding.0003.desc.gold_plundered_vassal + } + desc = raiding.0003.desc.spared_plundered_vassal + } + } + theme = raid + override_background = { + reference = burning_building + } + left_portrait = { + character = scope:raider + animation = war_over_win + } + + #Oh no! + option = { + name = raiding.0003.a + add_prestige = minor_prestige_loss + ai_chance = { + base = 50 + ai_value_modifier = { + ai_energy = -0.25 #I am too lazy to do much more than lament. + ai_vengefulness = -0.25 #I will not stand for this. + } + } + } + + #I will avenge this slight! + option = { + name = raiding.0003.b + trigger = { + NOT = { scope:sack_status = flag:spared_plundered } + } + if = { + limit = { has_relation_rival = scope:raider } + add_prestige = miniscule_prestige_gain + } + else = { + progress_towards_rival_effect = { + REASON = rival_raided_me + CHARACTER = scope:raider + OPINION = 0 + } + } + stress_impact = { forgiving = minor_stress_impact_gain } + ai_chance = { + base = 0 #Otherwise every raiding culture will have a million rivals. + ai_value_modifier = { #Vengeful characters may do this, though. + ai_vengefulness = 0.2 + } + modifier = { #Angry characters can also struggle to get over these things. + add = 10 + has_trait = wrathful + } + modifier = { #Vengeful characters are, by definition, not going to let things go. + add = 10 + has_trait = vengeful + } + modifier = { #Dead peasants happen, y'know? + add = -20 + has_trait = forgiving + } + } + } + + #I will pay for the reconstruction. + option = { + name = raiding.0003.c + trigger = { + top_liege = this + NOT = { scope:sack_status = flag:spared_plundered } + NOT = { government_has_flag = government_is_tribal } #Tribes don't care about development. + NOT = { government_has_flag = government_is_nomadic } + OR = { + is_ai = no + short_term_gold >= scope:sacked_barony.county.title_province.raid_gold_value + } + } + remove_treasury_or_gold = scope:sacked_barony.county.title_province.raid_gold_value + scope:sacked_county = { + add_county_modifier = { + modifier = rebuilding_after_sacking_modifier + years = 10 + } + } + stress_impact = { lazy = minor_stress_impact_gain } + ai_chance = { + base = 50 + ai_value_modifier = { + ai_compassion = 0.5 + ai_greed = -0.5 + } + modifier = { #Weight down for stress. + add = -20 + has_trait = lazy + } + } + } +} + +# Your vassal's holding may have been sacked. +raiding.0004 = { + type = character_event + title = { + first_valid = { + triggered_desc = { + trigger = { scope:sack_status = flag:spared_plundered } + desc = raiding.0003.t_spared + } + desc = raiding.0003.t_attacked + } + } + desc = { + first_valid = { + triggered_desc = { #If the holding was raided for skilled slaves, let us know of such. + trigger = { scope:sack_status = flag:admin_plundered } + desc = raiding.0004.desc.admin_plundered + } + triggered_desc = { #If the holding was raided for gold, then tell us our vassal's shinies are gone. + trigger = { scope:sack_status = flag:gold_plundered } + desc = raiding.0004.desc.gold_plundered + } + desc = raiding.0004.desc.spared_plundered #If the holding was spared, we have a lukewarm one response. + } + } + theme = raid + override_background = { + reference = burning_building + } + left_portrait = { + character = scope:raider + animation = anger + } + right_portrait = { + character = scope:sacked_county_owner + animation = fear + triggered_animation = { + trigger = { + ai_vengefulness >= medium_positive_ai_value + ai_boldness > high_negative_ai_value + } + animation = rage + } + } + + #Oh no! + option = { + name = { + text = raiding.0004.a + trigger = { + NOT = { government_has_flag = government_is_tribal } + } + } + name = { + text = raiding.0004.a.tribal + trigger = { government_has_flag = government_is_tribal } + } + add_prestige = miniscule_prestige_loss + ai_chance = { + base = 50 + ai_value_modifier = { + ai_energy = -0.25 #Too lazy to care. + ai_compassion = -0.25 #But wouldn't care anyway. + } + } + } + + #Send some cash-monies. + option = { + name = raiding.0004.b + trigger = { + NOT = { scope:sack_status = flag:spared_plundered } + OR = { + is_ai = no + short_term_gold >= medium_gold_value + } + } + pay_treasury_or_gold = { + target = scope:sacked_county.holder + value = scope:sacked_barony.county.title_province.raid_gold_value + } + scope:sacked_county.holder = { + add_opinion = { + target = liege + modifier = grateful_opinion + opinion = 20 + } + } + stress_impact = { greedy = medium_stress_impact_gain } + ai_chance = { + base = 20 #Reduced base chance: the AI shouldn't bankrupt itself helping vassals. + ai_value_modifier = { + ai_compassion = 0.25 + ai_greed = -0.25 + } + modifier = { #Weight down for stress. + add = -20 + has_trait = greedy + } + } + } + + #I will pay for the reconstruction. + option = { + name = raiding.0004.c + trigger = { + NOR = { + scope:sack_status = flag:spared_plundered + government_has_flag = government_is_tribal #Tribes don't care about development. + government_has_flag = government_is_nomadic + } + OR = { + is_ai = no + short_term_gold >= scope:sacked_barony.county.title_province.raid_gold_value + } + } + remove_treasury_or_gold = scope:sacked_barony.county.title_province.raid_gold_value + scope:sacked_county.holder = { + add_opinion = { + target = liege + modifier = grateful_opinion + opinion = 30 + } + } + scope:sacked_county = { + add_county_modifier = { + modifier = rebuilding_after_sacking_modifier + years = 10 + } + } + if = { + limit = { + employs_court_position = royal_architect_court_position + any_court_position_holder = { + type = royal_architect_court_position + } + } + random_court_position_holder = { + type = royal_architect_court_position + save_scope_as = architect + } + custom_tooltip = raiding.0004.c.architect + scope:sacked_county.holder = { + send_interface_message = { + type = event_raid_good + title = raiding.0004.c.feed.t + desc = raiding.0004.c.feed.desc2 + right_icon = liege + } + } + } + else = { + scope:sacked_county.holder = { + send_interface_message = { + type = event_raid_bad + title = raiding.0004.c.feed.t + desc = raiding.0004.c.feed.desc + right_icon = liege + } + } + } + stress_impact = { greedy = medium_stress_impact_gain } + ai_chance = { + base = 10 #Reduced base chance: the AI shouldn't bankrupt itself helping vassals. + ai_value_modifier = { + ai_compassion = 0.5 + ai_greed = -0.5 + } + modifier = { #Weight down for stress. + add = -20 + has_trait = greedy + } + } + } +} + +################################################## +# Raiding Notification Events +# by Ewan Cowhig Croft +# #0011-0012 +################################################## + +### DEPRECATED ### +# Now the interface message is sent out by raid intents instead +raiding.0011 = { + hidden = yes + orphan = yes + scope = army + + immediate = { + set_variable = { + name = raid_loot + value = root.raid_loot + } + if = { + limit = { + scope:raider = { + not_tribal_raid_trigger = yes + } + } + scope:raider = { + send_interface_message = { + type = event_raid_good + title = raiding.0011.t + desc = raiding.0011.desc_non_tribal + right_icon = root.army_commander + hidden_effect = { + add_prestige = { + value = root.var:raid_loot + multiply = not_tribal_raid_prestige_multiplier + multiply = -1 + } + } + } + } + } + else = { + scope:raider = { + send_interface_message = { + type = event_raid_good + title = raiding.0011.t + desc = raiding.0011.desc + right_icon = root.army_commander + hidden_effect = { add_prestige = root.var:raid_loot } + } + } + } + } +} + +# Loot lost to defending army. +raiding.0012 = { + hidden = yes + scope = army + + immediate = { + set_variable = { + name = raid_loot + value = root.raid_loot + } + set_variable = { + name = raid_prestige + value = { + value = root.raid_loot + multiply = 0.5 + ceiling = yes + } + } + if = { + limit = { + OR = { + var:raid_loot >= 1 + var:raid_prestige >= 1 + } + } + scope:raider = { + send_interface_message = { + type = event_raid_bad_text + title = raiding.0012.a.t + desc = raiding.0012.a.desc + left_icon = root.army_commander + right_icon = scope:recipient + } + } + scope:recipient = { + send_interface_message = { + type = event_raid_good_text + title = raiding.0012.b.t + desc = raiding.0012.b.desc + right_icon = root.army_commander + hidden_effect = { add_prestige = root.var:raid_prestige } + } + } + } + } +} + + +# Prisoner-taking script beyond this point. Much of this is transcribed from work done by Sean Hughes & Mathilda Bjarnehed for siege events. +scripted_trigger raiding_0012_can_be_captured = { + # Captured characters must be located in the raided barony itself. + location = scope:barony.title_province + + # Reasons to exclude characters from the capture pool: + NOR = { + # If the raiders have defeated the holder's army, but the army has not yet retreated to a different province, shield them from capture by the raid. + exists = commanding_army + exists = knight_army + + # Is imprisoned in the barony stay prisoners (special case, any courtiers/vassals of the raider will get released elsewhere). + is_imprisoned = yes + } +} + +# Chance to kidnap prisoners from the holding holder. +raiding.0013 = { + hidden = yes + scope = army + + trigger = { # Only take prisoners if this barony is the holder's capital (where their family/courtiers live), or there is an estate + OR = { + scope:barony.holder.capital_barony = scope:barony + location = { + any_province_domicile = { + is_domicile_type = estate + } + } + } + } + + immediate = { + # For localization. + scope:raider = { save_scope_as = occupant } + scope:barony.holder = { save_scope_as = holder } + location = { + random_province_domicile = { + limit = { + is_domicile_type = estate + } + owner ?= { save_scope_as = estate_holder } + } + } + + #BUILD CAPTURE ATTEMPT LIST + scope:barony.holder = { + if = { + limit = { raiding_0012_can_be_captured = yes } + add_to_list = capture_attempt_targets + } + every_courtier_or_guest = { + limit = { raiding_0012_can_be_captured = yes } + add_to_list = capture_attempt_targets + } + } + scope:estate_holder ?= { + if = { + limit = { + raiding_0012_can_be_captured = yes + is_landed = no # they are at the estate + } + add_to_list = capture_attempt_targets + } + every_courtier_or_guest = { + limit = { + raiding_0012_can_be_captured = yes + location = scope:barony.title_province + } + add_to_list = capture_attempt_targets + } + } + + #CALCULATE CAPTURE CHANCE + every_in_list = { + list = capture_attempt_targets + random = { + # Base chance handled in a modifier due to the chance parameter tending to quietly fail to parse scripted values. + chance = 0 + + # Base chance starts at 20%, before value modifiers & target modifiers. + modifier = { add = raid_base_capture_chance } + + # Add -0.5 chance per 1pt of Intrigue, averaging out at -5% chance for 10pts of Intrigue. + modifier = { + add = { + value = this.intrigue + multiply = -0.5 + min = -10 + } + # Requiring a certain base level to be at all effective. + intrigue > low_skill_rating + } + # Add -0.5 chance per 1pt of Prowess, averaging out at -5% chance for 10pts of Prowess. + modifier = { + add = { + value = this.prowess + multiply = -0.5 + min = -10 + } + # Requiring a certain base level to be at all effective. + prowess > low_skill_rating + } + # Less likely to capture the ruler themselves in a raid + modifier = { + is_landed = yes + add = -10 + } + # Less likely to capture the estate owner themselves + modifier = { + scope:estate_holder ?= this + add = -10 + } + # If there is an estate, Watchtowers and Guardhouses make captures less likely + modifier = { + location = { + any_province_domicile = { + is_domicile_type = estate + has_domicile_parameter = raids_less_likely_to_make_prisoners_1 + } + } + add = -10 + } + modifier = { + location = { + any_province_domicile = { + is_domicile_type = estate + has_domicile_parameter = raids_less_likely_to_make_prisoners_2 + } + } + add = -15 + } + modifier = { + location = { + any_province_domicile = { + is_domicile_type = estate + has_domicile_parameter = raids_less_likely_to_make_prisoners_3 + } + } + add = -20 + } + + modifier = { + root = { + OR = { + raid_intent = capture_intent_nomadic + raid_intent = capture_intent_norse + } + } + has_raid_intent_immunity = no + add = { + value = 15 + if = { + limit = { + has_raid_intent_protection = yes + } + subtract = 10 + } + if = { + limit = { + scope:raider = { has_perk = kidnapper_perk } + } + add = 10 + } + if = { + limit = { + scope:raider.culture ?= { has_innovation = innovation_motte } + } + add = 5 + } + } + } + + # Capture Effects + if = { + limit = { desirable_for_capture_trigger = yes } + add_to_list = captured_targets_effects + } + else = { add_to_list = killed_targets } + } + } + + #NOTIFY CONCERNED PARTIES + #Inform about captures. + if = { + limit = { + any_in_list = { + list = captured_targets_effects + count >= 1 + } + } + #Inform raider. + scope:raider = { + trigger_event = siege.0002 + } + #Inform affected holder about captures. + scope:barony.holder = { + if = { + limit = { + save_temporary_scope_as = notification_target + any_in_list = { + list = captured_targets_effects + this != scope:notification_target + } + } + trigger_event = siege.0003 + } + } + #Inform concerned players about captures. + every_player = { + limit = { + NOR = { + this = scope:raider + this = scope:barony.holder + } + save_temporary_scope_as = notification_target + any_in_list = { + list = captured_targets_effects + has_any_relation_trigger = { CHARACTER = scope:notification_target } + } + } + trigger_event = siege.0004 + } + } + #Inform about kills. + if = { + limit = { + any_in_list = { + list = killed_targets + count >= 1 + } + } + # Inform affected holder about kills. + scope:barony.holder = { + trigger_event = siege.0013 + } + #Inform concerned players about kills. + every_player = { + limit = { + NOR = { + this = scope:raider + this = scope:barony.holder + } + save_temporary_scope_as = notification_target + any_in_list = { + list = killed_targets + has_any_relation_trigger = { CHARACTER = scope:notification_target } + } + } + trigger_event = siege.0014 + } + } + + + #IMPRISON & KILL EFFECTS + every_in_list = { + list = captured_targets_effects + + hidden_effect = { + add_character_flag = { + flag = block_imprisonment_event + days = 1 + } + } + + prisoner_of_war_capture_effect = { + TARGET = this + IMPRISONER = scope:raider + } + } + every_in_list = { + list = killed_targets + limit = { is_alive = yes } + death = { + death_reason = death_raid + } + } + } +} + +scripted_trigger raiding_0014_artifact_can_be_stolen = { + exists = this + OR = { + scope:barony.holder = { # If the character is in the province and not leading an army, their stuff is probably valid to steal + location = scope:barony.title_province + NOR = { + exists = commanding_army + exists = knight_army + is_imprisoned = yes + } + } + is_equipped = no + ep1_artifact_is_court_artifact_trigger = yes + } +} + +# Chance to steal an artifact from the holding holder. +raiding.0014 = { + hidden = yes + scope = army + + trigger = { + scope:barony.holder = { + # Can only steal an artifact if this barony is the holder's capital (where they have their treasury/royal court. + capital_barony = scope:barony + + # Holder also needs to actually possess an artifact to steal. + any_character_artifact = { + raiding_0014_artifact_can_be_stolen = yes + } + } + } + + immediate = { + scope:barony.holder = { + random_character_artifact = { + limit = { raiding_0014_artifact_can_be_stolen = yes } + weight = { + base = 1 + modifier = { + add = 4 + is_equipped = no + } + modifier = { + add = 4 + scope:raider = { + can_equip_artifact = prev + } + } + modifier = { # Nudge towards taking non-Court artifacts if you don't have a court yourself + add = 2 + scope:raider = { + has_royal_court = no + } + ep1_artifact_is_court_artifact_trigger = no + } + } + save_scope_as = stolen_artifact + } + } + + random = { + chance = { + value = 5 + scope:barony.holder = { + every_character_artifact = { + limit = { + OR = { + is_equipped = no + ep1_artifact_is_court_artifact_trigger = yes + } + } + add = 1 + } + } + # Lower chances based on Antiquarian aptitude + multiply = { + value = 1 + scope:barony.holder = { + every_court_position_holder = { + type = antiquarian_court_position + limit = { + is_available_ai_adult = yes + aptitude:antiquarian_court_position > 0 + } + divide = aptitude:antiquarian_court_position + } + } + } + } + steal_artifact_in_siege_effect = { + LOCATION = root.location + ATTACKER = scope:raider + DEFENDER = scope:barony.holder + ARTIFACT = scope:stolen_artifact + IS_RAID = yes + } + } + } +} + + +################################################## +# Becoming a Raider/Viking +# by Ewan Cowhig Croft +# #0021-0022 +################################################## + +# Increase raid tally +raiding.0021 = { + hidden = yes + scope = army + + trigger = { + exists = army_commander + } + + immediate = { + root.army_commander = { + if = { + limit = { + NOT = { has_variable = raid_counter } + } + set_variable = { + name = raid_counter + value = 1 + } + } + else = { + change_variable = { + name = raid_counter + add = 1 + } + } + } + } +} + +# Chance to fire viking/raider trait acquisition event +raiding.0022 = { + hidden = yes + scope = army + + trigger = { + army_commander ?= { + has_variable = raid_counter + var:raid_counter >= 20 + NOT = { has_trait = viking } + } + } + + immediate = { + root.army_commander = { save_scope_as = raid_leader } + scope:raid_leader = { + random = { + chance = 20 + trigger_event = { + id = raiding.0023 + days = { 180 545 } + } + modifier = { + add = 10 + var:raid_counter >= 30 + } + modifier = { + add = 10 + var:raid_counter >= 40 + } + modifier = { + add = 10 + var:raid_counter >= 50 + } + } + } + } +} + +# Acquire viking/raider trait +raiding.0023 = { + type = character_event + title = raiding.0023.t + desc = raiding.0023.desc + theme = raid + override_background = { + reference = burning_building + } + left_portrait = { + character = root + animation = war_over_win + } + + trigger = { + scope:raid_leader = { + is_alive = yes + NOT = { has_trait = viking } + } + } + + immediate = { + if = { + limit = { + OR = { + has_any_nickname = no + has_bad_nickname = yes + } + } + if = { + limit = { + culture = { has_cultural_pillar = heritage_north_germanic } + } + give_nickname = nick_the_viking + } + else_if = { + limit = { + is_male = yes + } + give_nickname = nick_the_bandit_king + } + else_if = { + limit = { + is_female = yes + } + give_nickname = nick_the_bandit_queen + } + } + if = { + limit = { is_landed = no } + liege.capital_province = { save_scope_as = capital_province } + } + else = { + capital_province = { save_scope_as = capital_province } + } + } + + #Accept the trait. + option = { + name = raiding.0023.a + add_trait = viking + } +} + +################################# +# Hereward special raiding event +# by Nick Meredith +################################# + +## You have the chance to sack a holding. +#raiding.0031 = { +# hidden = yes +# scope = army +# +# trigger = { +# #You need to be Hereward, plus leading your own forces. +# army_commander ?= { +# has_trait = the_wake +# } +# +# #The province must be ruled by a Norman, or Norman culture itself +# OR = { +# scope:barony.culture = culture:norman +# scope:barony.holder.culture = culture:norman +# } +# } +# +# immediate = { +# root.army_commander = { save_scope_as = raid_leader } +# scope:raid_leader = { +# add_trait_xp = { +# trait = the_wake +# value = { 1 3 } +# } +# } +# } +#} + +# Raid Intent Effects +raiding.0040 = { + hidden = yes + scope = army + + immediate = { + if = { + limit = { + raid_intent = raze_intent + has_raid_intent_immunity = no + } + scope:barony.title_province ?= { + random_list = { + 10 = { + modifier = { + has_raid_intent_protection = yes + add = 10 + } + } # Nothing happens + 5 = { + modifier = { + scope:raider.culture ?= { has_innovation = innovation_motte } + add = 2 + } + scope:raider = { + send_interface_message = { + type = event_raid_good + title = raze_intent_message + + left_icon = scope:barony.holder + right_icon = root.army_commander + show_as_tooltip = { + scope:barony.title_province = { + add_province_modifier = { + modifier = shattered_defenses_modifier + years = 5 + } + } + } + } + } + scope:barony.holder = { + send_interface_message = { + type = event_raid_bad + title = raze_intent_message + + left_icon = scope:barony.holder + right_icon = root.army_commander + scope:barony.title_province = { + add_province_modifier = { + modifier = shattered_defenses_modifier + years = 5 + } + } + } + } + } + 5 = { + trigger = { + county = { development_level > 0 } + } + modifier = { + scope:raider.culture ?= { has_innovation = innovation_motte } + add = 2 + } + scope:raider = { + send_interface_message = { + type = event_raid_good + title = raze_intent_message + + left_icon = scope:barony.holder + right_icon = root.army_commander + show_as_tooltip = { + scope:county = { change_development_level = -1 } + } + } + } + scope:barony.holder = { + send_interface_message = { + type = event_raid_bad + title = raze_intent_message + + left_icon = scope:barony.holder + right_icon = root.army_commander + scope:county = { change_development_level = -1 } + } + } + } + 5 = { + trigger = { + num_buildings > 1 + } + modifier = { + scope:raider.culture ?= { has_innovation = innovation_motte } + add = 2 + } + destroy_random_building_variable_effect = yes + scope:raider = { + send_interface_message = { + type = event_raid_good + title = raze_intent_message + + left_icon = scope:barony.holder + right_icon = root.army_commander + show_as_tooltip = { + scope:barony.title_province = { + destroy_random_building_effect = yes + } + } + } + } + scope:barony.holder = { + send_interface_message = { + type = event_raid_bad + title = raze_intent_message + + left_icon = scope:barony.holder + right_icon = root.army_commander + scope:barony.title_province = { + destroy_random_building_effect = yes + } + } + } + } + } + } + } + else_if = { + limit = { + raid_intent = plunder_intent_nomadic + scope:raider.culture = { can_get_innovation_from = scope:county.culture } + has_raid_intent_immunity = no + } + random = { + chance = { + value = 2 + if = { + limit = { + has_raid_intent_protection = yes + } + divide = 2 + } + if = { + limit = { + scope:raider.culture ?= { has_innovation = innovation_motte } + } + add = 1 + } + } + scope:raider = { + send_interface_message = { + type = event_raid_good + title = raze_intent_message + + left_icon = scope:barony.holder + right_icon = root.army_commander + scope:raider.culture = { + get_random_innovation_from = scope:county.culture + } + } + } + } + } + scope:barony.holder ?= { + if = { + limit = { + government_has_flag = government_is_nomadic + } + send_interface_message = { + type = event_raid_bad + title = raid_herd_message + + left_icon = scope:barony.holder + right_icon = root.army_commander + scope:barony.holder.domicile ?= { + change_herd = -100 + } + } + } + } + } +} diff --git a/gfx/interface/illustrations/scripted_illustrations/ingame.txt b/gfx/interface/illustrations/scripted_illustrations/ingame.txt index 9c3a43ff..c2500ec0 100644 --- a/gfx/interface/illustrations/scripted_illustrations/ingame.txt +++ b/gfx/interface/illustrations/scripted_illustrations/ingame.txt @@ -96,7 +96,7 @@ character_view_bg = { trigger = { is_alive = no - religion = religion:germanic_religion + religion = religion:folkgerman_religion } } @@ -9016,7 +9016,7 @@ character_view_bg = { trigger = { should_use_temple_character_background_trigger = yes - religion = religion:germanic_religion + religion = religion:folkgerman_religion } } @@ -9025,7 +9025,7 @@ character_view_bg = { trigger = { should_use_temple_character_background_trigger = yes - religion = religion:germanic_religion + religion = religion:folkgerman_religion is_character_window_main_character = yes } } @@ -9037,17 +9037,17 @@ character_view_bg = { OR = { primary_spouse ?= { should_use_temple_character_background_trigger = yes - religion = religion:germanic_religion + religion = religion:folkgerman_religion } betrothed ?= { should_use_temple_character_background_trigger = yes - religion = religion:germanic_religion + religion = religion:folkgerman_religion } AND = { liege.diarch ?= this liege ?= { should_use_temple_character_background_trigger = yes - religion = religion:germanic_religion + religion = religion:folkgerman_religion } } } @@ -9701,7 +9701,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -9717,7 +9717,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -9734,7 +9734,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -9762,7 +9762,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -9778,7 +9778,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -9795,7 +9795,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -9821,7 +9821,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -9838,7 +9838,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -9855,7 +9855,7 @@ character_view_bg = { } OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -10057,7 +10057,7 @@ character_view_bg = { government_has_flag = government_is_tribal OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -10068,7 +10068,7 @@ character_view_bg = { government_has_flag = government_is_tribal OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -10080,7 +10080,7 @@ character_view_bg = { government_has_flag = government_is_tribal OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion } } } @@ -10102,7 +10102,7 @@ character_view_bg = { government_has_flag = government_is_tribal OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -10113,7 +10113,7 @@ character_view_bg = { government_has_flag = government_is_tribal OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -10125,7 +10125,7 @@ character_view_bg = { government_has_flag = government_is_tribal OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion } } } @@ -10145,7 +10145,7 @@ character_view_bg = { has_fp1_dlc_trigger = yes OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion } } } @@ -10156,7 +10156,7 @@ character_view_bg = { has_fp1_dlc_trigger = yes OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion } } } @@ -10167,7 +10167,7 @@ character_view_bg = { has_fp1_dlc_trigger = yes OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion } } } @@ -11565,12 +11565,12 @@ character_religion_interior = { # FP1 texture = { # FP1 - trigger = { religion = religion:germanic_religion } + trigger = { religion = religion:folkgerman_religion } reference = "event_scenes/fp1_tribal_temple.dds" } environment = { # FP1 - trigger = { religion = religion:germanic_religion } + trigger = { religion = religion:folkgerman_religion } reference = "environment_event_fp1_tribal_temple" } @@ -11862,12 +11862,12 @@ religion_interior = { # FP1 texture = { # FP1 - trigger = { religion = religion:germanic_religion } + trigger = { religion = religion:folkgerman_religion } reference = "event_scenes/fp1_tribal_temple.dds" } environment = { # FP1 - trigger = { religion = religion:germanic_religion } + trigger = { religion = religion:folkgerman_religion } reference = "environment_event_fp1_tribal_temple" } @@ -12197,7 +12197,7 @@ title_holding = { OR = { faith.religion = religion:baltic_religion faith.religion = religion:finno_ugric_religion - faith.religion = religion:germanic_religion + faith.religion = religion:folkgerman_religion faith.religion = religion:paganism_religion faith.religion = religion:slavic_religion } @@ -12507,7 +12507,7 @@ character_private = { exists = primary_title OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } @@ -12520,7 +12520,7 @@ character_private = { trigger = { OR = { culture = culture:norse - religion = religion:germanic_religion + religion = religion:folkgerman_religion has_graphical_scandinavia_region_trigger = yes } } diff --git a/history/provinces/e_makedon.txt b/history/provinces/e_makedon.txt index 3b3f3700..0add3ca2 100644 --- a/history/provinces/e_makedon.txt +++ b/history/provinces/e_makedon.txt @@ -591,7 +591,7 @@ holding = none } -##d_achaia ################################### +##d_peloponnese ################################### ###c_achaia 476 = { #Patras culture = NEOW_peloponnesian diff --git a/history/provinces/e_nistrenia.txt b/history/provinces/e_nistrenia.txt index 57e76591..92d10a1d 100644 --- a/history/provinces/e_nistrenia.txt +++ b/history/provinces/e_nistrenia.txt @@ -1013,7 +1013,7 @@ } #k_pontic_steppe -##d_yedisan #Karayedisan ################################### +##d_dnipro #Karayedisan ################################### ###c_ladyzyn @@ -1445,7 +1445,7 @@ holding = none #k_ruthenia -##d_kiev ################################### +##d_kyiv ################################### ###c_kiev 547 = { #Kiev culture = NEOW_kievan @@ -1668,7 +1668,7 @@ holding = none holding = none } -##d_pereyaslavl ################################### +##d_poltava ################################### ###c_pereyaslavl 555 = { #Pereyaslavl culture = NEOW_kievan diff --git a/holder for later/common/landed_titles/0.15_MAP.txt b/holder for later/common/landed_titles/0.15_MAP.txt index 4448636c..59569d84 100644 --- a/holder for later/common/landed_titles/0.15_MAP.txt +++ b/holder for later/common/landed_titles/0.15_MAP.txt @@ -6222,7 +6222,7 @@ e_greece = { } } - d_achaia = { + d_peloponnese = { color = { 185 55 200 } capital = c_achaia # Patras diff --git a/holder for later/common/landed_titles/greece.txt b/holder for later/common/landed_titles/greece.txt index 4368b5f5..374a1d79 100644 --- a/holder for later/common/landed_titles/greece.txt +++ b/holder for later/common/landed_titles/greece.txt @@ -1024,7 +1024,7 @@ e_greece = { } } - d_achaia = { + d_peloponnese = { color = { 185 55 200 } capital = c_achaia # Patras diff --git a/holder for later/common/landed_titles/nistrenia.txt b/holder for later/common/landed_titles/nistrenia.txt index b7d840f6..455d4e67 100644 --- a/holder for later/common/landed_titles/nistrenia.txt +++ b/holder for later/common/landed_titles/nistrenia.txt @@ -1487,7 +1487,7 @@ e_nistrenia = { } } - d_kiev = { + d_kyiv = { color = { 52 120 69 } capital = c_kiev # Kiev @@ -1697,7 +1697,7 @@ e_nistrenia = { } } - d_pereyaslavl = { + d_poltava = { color = { 37 143 71 } capital = c_pereyaslavl # Pereyaslavl @@ -1855,7 +1855,7 @@ e_nistrenia = { } - d_yedisan = { #Karayedisan + d_dnipro = { #Karayedisan color = { 156 82 22 } capital = c_cherkassy @@ -1930,7 +1930,7 @@ e_nistrenia = { } } - d_kizilyedisan = { + d_kherson = { color = { 117 49 0 } capital = c_kherson # Odessa @@ -1979,7 +1979,7 @@ e_nistrenia = { } } - d_levedia = { + d_kharkiv = { color = { 210 160 69 } capital = c_samar @@ -2058,7 +2058,7 @@ e_nistrenia = { } } - d_red_levedia = { + d_zaporizhzhia = { color = { 196 140 49 } capital = c_khortytsia # Khortytsia @@ -2771,7 +2771,7 @@ e_nistrenia = { capital = c_sarkel # Sarkel - d_khazaria = { + d_volgograd = { color = { 143 92 21 } capital = c_sarkel # Sarkel @@ -2872,7 +2872,7 @@ e_nistrenia = { } } } - d_itil = { + d_astrakhan = { color = { 196 118 27 } capital = c_itil #Itil diff --git a/map_data/geographical_regions/geographical_region.txt b/map_data/geographical_regions/geographical_region.txt index b0a4d7e9..bb075f69 100644 --- a/map_data/geographical_regions/geographical_region.txt +++ b/map_data/geographical_regions/geographical_region.txt @@ -800,9 +800,9 @@ material_wood_maple = { #Kabulistan d_kabul d_zabulistan #Zaporizhia - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_crimea + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbass d_tana d_sevastopol d_simferopol #Caucasus - d_khazaria d_azov d_sochi d_alania d_ciscaucasia d_vainakhia + d_volgograd d_azov d_sochi d_alania d_ciscaucasia d_vainakhia #Punjab d_multan d_lahore d_gandhara #Delhi @@ -1214,7 +1214,7 @@ material_hsb_tortoiseshell = { duchies = { d_thrace d_strymon d_thessalonika d_thessaly d_epirus d_dyrrachion d_kosovo d_kastrioti d_gjirokaster d_cephalonia - d_athens d_achaia d_cyprus d_mallorca d_krete + d_athens d_peloponnese d_cyprus d_mallorca d_krete } } @@ -1236,7 +1236,7 @@ material_hsb_seashell = { duchies = { d_thrace d_strymon d_thessalonika d_thessaly d_epirus d_dyrrachion d_kosovo d_kastrioti d_gjirokaster d_cephalonia - d_athens d_achaia d_cyprus d_krete + d_athens d_peloponnese d_cyprus d_krete } } @@ -1289,7 +1289,7 @@ custom_lotharingia = { } custom_bavaria = { duchies = { - d_bavaria d_nordgau d_salzburg d_augsburg d_steyermark d_lower_austria d_upper_austria d_tyrol d_carinthia d_slovenia d_istria + d_upper_bavaria d_east_franconia d_salzburg d_bavarian_swabia d_steyermark d_lower_austria d_upper_austria d_tyrol d_carinthia d_slovenia d_istria } } custom_germany = { @@ -1330,7 +1330,7 @@ custom_wales = { } custom_castilian = { duchies = { - d_castilla d_cantabria + d_castilla } } custom_asturleonese = { @@ -1468,7 +1468,7 @@ custom_roman_illyricum = { custom_roman_hispania = { duchies = { d_castilla - d_cantabria + d_asturias d_aragon d_barcelona d_valencia @@ -1628,7 +1628,7 @@ custom_europe_western_germany = { d_west_franconia d_east_franconia d_hesse d_thuringia d_mittelland d_alsace d_swabia # Bavaria - d_nordgau d_bavaria d_augsburg d_salzburg d_tyrol + d_east_franconia d_upper_bavaria d_bavarian_swabia d_salzburg d_tyrol } } custom_europe_eastern_germany = { @@ -1746,7 +1746,7 @@ custom_slavia = { #Galicia-Volhynia d_volhynia d_halych #Ruthenia - d_kiev d_turov d_pereyaslavl d_chernigov d_ryazan d_karachev d_novosil + d_kyiv d_turov d_poltava d_chernigov d_ryazan d_karachev d_novosil #Novgorod d_novgorod d_vepsia d_luki #sorbians @@ -1850,7 +1850,7 @@ custom_k_thessalonika = { custom_k_hellas = { duchies = { #Hellas - d_athens d_achaia + d_athens d_peloponnese } } @@ -2214,7 +2214,7 @@ world_horse_buildings_in_hills_and_mountains = { d_ostyaki d_konda d_pelym d_kazym d_sibir d_ishim d_tara d_lanikaz d_salair d_aley d_altaishan d_ala_tau d_vasyugan_mire d_baraba_steppe d_kulyndy_steppe #Pontic Steppe - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_khazaria d_ciscaucasia d_vainakhia d_itil d_crimea d_alania d_azov d_sochi d_pecheneg + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_volgograd d_ciscaucasia d_vainakhia d_astrakhan d_sevastopol d_simferopol d_alania d_azov d_sochi d_pecheneg #Turkestan d_transcaspiana d_garabogazkol d_barsuki d_aral_karakum d_zhetysu d_tarbagatai d_jemba d_aral_il d_chah d_syr_darya d_muyunkum d_talas_alatau d_alakol d_ili-alatau #Cumania @@ -2429,7 +2429,7 @@ special_mongol_empire_conquest_region_prio_2 = { # k_bashkiria d_bashkiria d_sakmara d_uraltau d_vogulia #k_caspian_steppe - d_itil d_pecheneg d_mugodzhar_hills d_aqtobe d_atyrau d_manatau + d_astrakhan d_pecheneg d_mugodzhar_hills d_aqtobe d_atyrau d_manatau # k_oghuz_il d_transcaspiana d_garabogazkol d_jemba d_aral_il d_barsuki d_aral_karakum @@ -2490,9 +2490,9 @@ special_mongol_empire_conquest_region_prio_4 = { #Western Steppe # k_caucasus - d_khazaria d_azov d_sochi d_alania d_ciscaucasia d_vainakhia + d_volgograd d_azov d_sochi d_alania d_ciscaucasia d_vainakhia # k_pontic_steppe - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_crimea + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_sevastopol d_simferopol # k_mordvinia d_mordvinia d_saran d_voronezh d_chuvashia d_khopyor d_tambov # k_moldavia @@ -2845,7 +2845,7 @@ special_sicilian_culture_region = { ### Special Cagot region special_cagot_region = { duchies = { - d_navarra d_gascogne d_armagnac d_aragon d_viscaya d_cantabria d_asturias d_castilla d_leon + d_navarra d_gascogne d_armagnac d_aragon d_viscaya d_asturias d_castilla d_leon } } @@ -2887,7 +2887,7 @@ ghw_region_germany = { #Germany d_west_franconia d_east_franconia d_hesse d_mittelland d_alsace d_swabia #Bavaria - d_bavaria d_nordgau d_salzburg d_augsburg d_steyermark d_lower_austria d_upper_austria d_tyrol d_carinthia d_slovenia d_istria + d_upper_bavaria d_east_franconia d_salzburg d_bavarian_swabia d_steyermark d_lower_austria d_upper_austria d_tyrol d_carinthia d_slovenia d_istria } } ghw_region_greece = { @@ -2895,7 +2895,7 @@ ghw_region_greece = { #Epirus d_epirus d_dyrrachion d_kosovo d_kastrioti d_gjirokaster d_cephalonia #Hellas - d_athens d_achaia + d_athens d_peloponnese } } ghw_region_england = { @@ -2913,7 +2913,7 @@ ghw_region_caucasus = { #Western Daylam d_shirvan d_azerbaijan d_daylam #Caucasus - d_khazaria d_azov d_sochi d_alania d_ciscaucasia d_vainakhia + d_volgograd d_azov d_sochi d_alania d_ciscaucasia d_vainakhia } } ghw_region_anatolia = { @@ -2985,7 +2985,7 @@ ghw_region_iberia = { #Leon d_leon d_asturias #Castille - d_castilla d_cantabria + d_castilla #Navarra d_navarra d_viscaya #Aragon @@ -3312,7 +3312,7 @@ ghw_region_russia = { #Galicia-Volhynia d_volhynia d_halych #Ruthenia - d_kiev d_turov d_pereyaslavl d_chernigov d_karachev d_novosil + d_kyiv d_turov d_poltava d_chernigov d_karachev d_novosil #Vladimir d_opolye d_ryazan d_nizhny_novgorod } @@ -3326,7 +3326,7 @@ ghw_region_poland = { ghw_region_steppe = { duchies = { #Zaporizhia - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_crimea + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_sevastopol d_simferopol #Mordvinia d_mordvinia d_saran d_voronezh d_chuvashia d_khopyor d_tambov #Volga Bulgaria @@ -3334,7 +3334,7 @@ ghw_region_steppe = { #Permia d_perm d_ural d_udmurtia #Caspian Steppe - d_itil d_pecheneg + d_astrakhan d_pecheneg } } ghw_region_hungary = { @@ -3364,7 +3364,7 @@ ghw_region_mainland_greece = { #Epirus d_epirus d_dyrrachion d_kosovo d_kastrioti d_gjirokaster d_cephalonia #Hellas - d_athens d_achaia + d_athens d_peloponnese } } ghw_region_italy = { @@ -3406,7 +3406,7 @@ ghw_region_southern_russia = { #Galicia-Volhynia d_volhynia d_halych #Ruthenia - d_kiev d_turov d_pereyaslavl d_chernigov d_karachev d_novosil + d_kyiv d_turov d_poltava d_chernigov d_karachev d_novosil } } ghw_region_siberia = { @@ -3464,9 +3464,9 @@ ghw_region_tibet = { ghw_region_crimea = { duchies = { #Zaporizhia - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_crimea + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_sevastopol d_simferopol #Caucasus - d_khazaria d_azov d_sochi d_alania d_ciscaucasia d_vainakhia + d_volgograd d_azov d_sochi d_alania d_ciscaucasia d_vainakhia } } ghw_region_poland_bohemia_bavaria = { @@ -3476,7 +3476,7 @@ ghw_region_poland_bohemia_bavaria = { #Poland d_lubusz d_lesser_poland d_wielkopolska d_mazovia d_podlachia d_lubelia d_upper_silesia d_lower_silesia d_imperial_silesia d_kuyavia #Bavaria - d_bavaria d_nordgau d_salzburg d_augsburg d_steyermark d_lower_austria d_upper_austria d_tyrol d_carinthia d_slovenia d_istria + d_upper_bavaria d_east_franconia d_salzburg d_bavarian_swabia d_steyermark d_lower_austria d_upper_austria d_tyrol d_carinthia d_slovenia d_istria } } ghw_region_northern_india = { @@ -3753,7 +3753,7 @@ dlc_fp1_region_mysterious_stranger_locations = { #k_estonia d_esthonia d_livonia #k_ruthenia - d_kiev d_turov d_pereyaslavl d_chernigov d_karachev d_novosil + d_kyiv d_turov d_poltava d_chernigov d_karachev d_novosil #k_white_rus d_grodno d_pinsk d_minsk d_polotsk d_smolensk #k_novgorod @@ -3834,7 +3834,7 @@ dlc_fp1_region_eastern_adventure_targets_vladimir = { dlc_fp1_region_eastern_adventure_targets_ruthenia = { duchies = { #k_ruthenia - d_kiev d_turov d_pereyaslavl d_chernigov d_ryazan d_karachev d_novosil + d_kyiv d_turov d_poltava d_chernigov d_ryazan d_karachev d_novosil } } dlc_fp1_region_eastern_adventure_targets_estonia = { @@ -3846,7 +3846,7 @@ dlc_fp1_region_eastern_adventure_targets_estonia = { dlc_fp1_region_eastern_adventure_targets_zaporizhia = { duchies = { #k_zaporizhia - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_crimea + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_sevastopol d_simferopol } } @@ -3878,7 +3878,7 @@ dlc_fp1_region_russian_steppe = { #k_white_rus d_grodno d_pinsk d_minsk d_polotsk d_smolensk #k_ruthenia - d_kiev d_turov d_pereyaslavl d_chernigov d_karachev d_novosil + d_kyiv d_turov d_poltava d_chernigov d_karachev d_novosil } } @@ -3913,7 +3913,7 @@ dlc_fp1_region_colonial_eastern_europe = { # Wendish Lands d_lubusz d_mazovia d_podlachia d_lubelia d_upper_silesia d_lower_silesia d_imperial_silesia d_lesser_poland d_wielkopolska d_kuyavia d_livonia d_prussia d_masuria d_grodno d_pinsk d_minsk d_polotsk d_smolensk d_lithuanians d_courland d_latgalia d_samogitia d_pommerania d_nordmark d_pomerelia d_ostmark #Russia - d_novgorod d_vepsia d_luki d_kiev d_karachev d_novosil d_opolye d_nizhny_novgorod d_turov d_chernigov d_ryazan d_pereyaslavl + d_novgorod d_vepsia d_luki d_kyiv d_karachev d_novosil d_opolye d_nizhny_novgorod d_turov d_chernigov d_ryazan d_poltava #Bjarmaland d_arkhangelsk d_vologda d_kargopol d_ustyug #Galicia-Volhynia @@ -3984,7 +3984,7 @@ dlc_fp1_achievement_vladimirs_second_choice = { #k_galicia_volhynia d_volhynia d_halych #k_ruthenia - d_kiev d_turov d_pereyaslavl d_chernigov d_karachev d_novosil + d_kyiv d_turov d_poltava d_chernigov d_karachev d_novosil #k_white_rus d_grodno d_pinsk d_minsk d_polotsk d_smolensk #k_novgorod @@ -4024,7 +4024,7 @@ dlc_fp2_mediterranean_shoreline = { # Then check is_coastal_county = yes d_sevilla d_granada d_murcia d_valencia d_barcelona d_languedoc d_istria d_croatia d_dalmatia d_usora d_ragusa d_crna_gora d_dyrrachion d_kosovo d_kastrioti d_gjirokaster d_cephalonia - d_epirus d_achaia d_krete d_aegean_islands d_athens + d_epirus d_peloponnese d_krete d_aegean_islands d_athens d_thessaly d_thessalonika d_strymon d_thrace d_ephese d_cibyrrhaeot d_cilicia d_antioch d_lebanon d_cyprus d_urdunn d_palestine d_sinai d_delta d_alexandria @@ -4149,7 +4149,7 @@ dlc_ep1_achievement_rise_of_the_ghurids = { dlc_ep1_region_south_east_europe = { duchies = { # k_bavaria - d_istria d_slovenia d_carinthia d_steyermark d_salzburg d_lower_austria d_upper_austria d_bavaria d_augsburg d_nordgau d_tyrol + d_istria d_slovenia d_carinthia d_steyermark d_salzburg d_lower_austria d_upper_austria d_upper_bavaria d_bavarian_swabia d_east_franconia d_tyrol # k_croatia d_croatia d_slavonia d_lower_bosna d_bosna d_dalmatia d_usora d_ragusa # k_hungary @@ -4282,9 +4282,9 @@ dlc_mpo_1178_herders = { dlc_mpo_867_nomads = { duchies = { #Pontic Steppe - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_khazaria d_azov d_sochi + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_volgograd d_azov d_sochi #Volga Bulgaria - d_bashkiria d_sakmara d_uraltau d_aqtobe d_bugurslan d_vogulia d_itil d_pecheneg d_jalmat d_chuvashia d_volga_bulgaria + d_bashkiria d_sakmara d_uraltau d_aqtobe d_bugurslan d_vogulia d_astrakhan d_pecheneg d_jalmat d_chuvashia d_volga_bulgaria #Turkestan d_transcaspiana d_garabogazkol d_barsuki d_aral_karakum d_zhetysu d_tarbagatai d_jemba d_aral_il d_muyunkum d_talas_alatau d_alakol d_ili-alatau d_syr_darya @@ -4310,7 +4310,7 @@ dlc_mpo_867_nomads = { dlc_mpo_1066_nomads = { duchies = { #Pontic Steppe - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_khazaria + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_volgograd #Volga Bulgaria d_bashkiria d_sakmara d_uraltau d_aqtobe d_bugurslan d_vogulia @@ -4330,10 +4330,10 @@ dlc_mpo_1066_nomads = { d_lanikaz d_kulyndy_steppe d_baraba_steppe d_ala_tau d_salair d_aley } counties = { - # d_pecheneg and d_itil, omitting counties controlled by Volga Bulgaria + # d_pecheneg and d_astrakhan, omitting counties controlled by Volga Bulgaria # d_pecheneg c_yaitsk c_qyzylyaitsk - # d_itil + # d_astrakhan c_itil c_saqsin # d_azov d_sochi , omitting counties controlled by Ruthenia c_khumar c_azov @@ -4345,9 +4345,9 @@ dlc_mpo_1066_nomads = { dlc_mpo_1178_nomads = { duchies = { # Pontic Steppe - starting to become sedentary. - d_levedia d_red_levedia d_don_valley d_tana d_khazaria + d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_volgograd # Volga Bulgaria - d_bashkiria d_sakmara d_uraltau d_aqtobe d_bugurslan d_vogulia d_itil + d_bashkiria d_sakmara d_uraltau d_aqtobe d_bugurslan d_vogulia d_astrakhan #Turkestan d_aral_karakum d_zhetysu d_tarbagatai d_muyunkum d_talas_alatau d_alakol d_ili-alatau d_syr_darya @@ -4504,7 +4504,7 @@ dlc_mpo_steppe_central_china_expansion = { heritage_area_pontic_steppe = { duchies = { #Pontic Steppe - d_yedisan d_kizilyedisan d_levedia d_red_levedia d_don_valley d_tana d_khazaria d_ciscaucasia d_vainakhia d_itil d_crimea d_alania d_azov d_sochi d_pecheneg + d_dnipro d_kherson d_kharkiv d_zaporizhzhia d_don_valley d_donbas d_tana d_volgograd d_ciscaucasia d_vainakhia d_astrakhan d_sevastopol d_simferopol d_alania d_azov d_sochi d_pecheneg } } @@ -4897,7 +4897,7 @@ tgp_silk_road_transcaspia_region = { duchies = { d_chah d_syr_darya - d_khazaria + d_volgograd d_azov d_sochi d_ciscaucasia d_vainakhia d_alania d_sochi @@ -5500,7 +5500,7 @@ world_central_asia = { world_atlantic = { duchies = { #Iberia - d_galicia d_asturias d_cantabria d_viscaya + d_galicia d_asturias d_viscaya #Frenches d_gascogne d_aquitaine d_poitou d_brittany d_normandy } @@ -5530,7 +5530,7 @@ israel_region = { # Mediteranean Coastal Provinces mediteranean_coast = { duchies = { - d_antioch d_lebanon d_urdunn d_palestine d_delta d_alexandria d_cyrenaica d_syrte d_tripolitania d_gabes d_tunis d_kroumerie d_bejaia d_alger d_tlemcen d_rif d_sevilla d_granada d_murcia d_valencia d_barcelona d_languedoc d_provence d_genoa d_pisa d_toscana d_latium d_capua d_salerno d_calabria d_sicily d_corsica d_sardinia d_mallorca d_apulia d_benevento d_spoleto d_ancona d_romagna d_verona d_venice d_friuli d_istria d_dalmatia d_usora d_ragusa d_crna_gora d_dyrrachion d_kosovo d_kastrioti d_gjirokaster d_cephalonia d_epirus d_achaia d_krete d_aegean_islands d_athens d_thessaly d_thessalonika d_strymon d_thrace d_optimatoi d_opsikion d_ephese d_cibyrrhaeot d_cilicia d_cyprus + d_antioch d_lebanon d_urdunn d_palestine d_delta d_alexandria d_cyrenaica d_syrte d_tripolitania d_gabes d_tunis d_kroumerie d_bejaia d_alger d_tlemcen d_rif d_sevilla d_granada d_murcia d_valencia d_barcelona d_languedoc d_provence d_genoa d_pisa d_toscana d_latium d_capua d_salerno d_calabria d_sicily d_corsica d_sardinia d_mallorca d_apulia d_benevento d_spoleto d_ancona d_romagna d_verona d_venice d_friuli d_istria d_dalmatia d_usora d_ragusa d_crna_gora d_dyrrachion d_kosovo d_kastrioti d_gjirokaster d_cephalonia d_epirus d_peloponnese d_krete d_aegean_islands d_athens d_thessaly d_thessalonika d_strymon d_thrace d_optimatoi d_opsikion d_ephese d_cibyrrhaeot d_cilicia d_cyprus } counties = { c_farama @@ -5557,7 +5557,7 @@ custom_ep3_restore_rome_eastern_empire = { black_sea_coast_region = { generate_modifiers = yes duchies = { - d_crimea d_azov d_sochi + d_sevastopol d_simferopol d_azov d_sochi } counties = { c_oleshye c_kherson c_odessa c_cetatea_alba c_chilia c_constanta c_burgas c_brysis c_byzantion c_bithynia c_tarsos c_honorias c_paphlagonia c_sinope c_helenopontus c_cerasus c_trebizond c_acampse c_guria c_odishi c_abkhazia c_zichia c_tana c_khortytsia