From 734d526ca9b92c454ff38545629ca9f8bebcc7fa Mon Sep 17 00:00:00 2001 From: Heidesommer Date: Fri, 29 May 2026 05:24:40 -0400 Subject: [PATCH] Fixes --- .../00_modifiy_vassal_contract.txt | 418 +- common/decisions/80_major_decisions.txt | 154 +- common/decisions/NEOW_artifact_decisions.txt | 2 +- common/modifiers/07_ep3_modifiers.txt | 3064 ++++++++ common/on_action/army_on_actions.txt | 172 +- .../dlc/ep3/el_cid_story_cycle_on_action.txt | 34 + .../ep3/harrying_of_the_north_on_action.txt | 42 + .../dlc/ep3/violet_poet_on_action.txt | 18 + common/on_action/fp2_on_actions.txt | 168 + common/on_action/knight_on_actions.txt | 74 + common/on_action/province_on_actions.txt | 875 +++ common/on_action/struggle_on_actions.txt | 53 + common/on_action/title_on_actions.txt | 14 +- common/on_action/yearly_groups_on_actions.txt | 425 ++ .../script_values/06_ce1_legends_values.txt | 1541 ++++ .../scripted_effects/00_nickname_effects.txt | 6410 +++++++++++++++++ .../07_dlc_ep3_scripted_effects.txt | 84 +- .../scripted_triggers/00_laamp_triggers.txt | 106 +- .../03_fp2_scripted_triggers.txt | 224 +- .../ce1_story_cycle_black_death.txt | 193 + .../ce1_story_cycle_plague_witch_hunt.txt | 92 + .../story_cycles/ep3_story_cycle_el_cid.txt | 214 + .../ep3_story_cycle_frankokratia.txt | 581 ++ .../ep3_story_cycle_grand_ambitions.txt | 217 + .../ep3_story_cycle_harrying_of_the_north.txt | 692 ++ .../ep3_story_cycle_hasan_sabbah.txt | 156 + .../ep3_story_cycle_restoring_rome.txt | 81 + .../ep3_story_cycle_violet_poet.txt | 78 + .../fp3_story_cycle_turkic_tribe.txt | 132 + .../fp3_story_cycle_zanj_rebellion.txt | 34 + .../mpo_story_cycle_greatest_of_khans.txt | 265 + .../mpo_story_cycle_temujin_flavor.txt | 22 + .../story_cycle_almohad_invasion.txt | 168 + .../story_cycles/story_cycle_lyonese_monk.txt | 89 + .../story_cycle_mongol_invasion.txt | 537 ++ .../story_cycle_restored_roman_provinces.txt | 52 + .../story_cycle_seljuk_invasion.txt | 177 + .../story_cycle_take_mandate_of_heaven.txt | 189 + .../tgp_story_cycle_tai_migrations.txt | 147 + .../major_decisions_events.txt | 384 +- events/dlc/ep3/ep3_laamp_events.txt | 285 - 41 files changed, 17594 insertions(+), 1069 deletions(-) create mode 100644 common/modifiers/07_ep3_modifiers.txt create mode 100644 common/on_action/dlc/ep3/el_cid_story_cycle_on_action.txt create mode 100644 common/on_action/dlc/ep3/harrying_of_the_north_on_action.txt create mode 100644 common/on_action/dlc/ep3/violet_poet_on_action.txt create mode 100644 common/on_action/fp2_on_actions.txt create mode 100644 common/on_action/knight_on_actions.txt create mode 100644 common/on_action/province_on_actions.txt create mode 100644 common/on_action/struggle_on_actions.txt create mode 100644 common/on_action/yearly_groups_on_actions.txt create mode 100644 common/script_values/06_ce1_legends_values.txt create mode 100644 common/scripted_effects/00_nickname_effects.txt create mode 100644 common/story_cycles/ce1_story_cycle_black_death.txt create mode 100644 common/story_cycles/ce1_story_cycle_plague_witch_hunt.txt create mode 100644 common/story_cycles/ep3_story_cycle_el_cid.txt create mode 100644 common/story_cycles/ep3_story_cycle_frankokratia.txt create mode 100644 common/story_cycles/ep3_story_cycle_grand_ambitions.txt create mode 100644 common/story_cycles/ep3_story_cycle_harrying_of_the_north.txt create mode 100644 common/story_cycles/ep3_story_cycle_hasan_sabbah.txt create mode 100644 common/story_cycles/ep3_story_cycle_restoring_rome.txt create mode 100644 common/story_cycles/ep3_story_cycle_violet_poet.txt create mode 100644 common/story_cycles/fp3_story_cycle_turkic_tribe.txt create mode 100644 common/story_cycles/fp3_story_cycle_zanj_rebellion.txt create mode 100644 common/story_cycles/mpo_story_cycle_greatest_of_khans.txt create mode 100644 common/story_cycles/mpo_story_cycle_temujin_flavor.txt create mode 100644 common/story_cycles/story_cycle_almohad_invasion.txt create mode 100644 common/story_cycles/story_cycle_lyonese_monk.txt create mode 100644 common/story_cycles/story_cycle_mongol_invasion.txt create mode 100644 common/story_cycles/story_cycle_restored_roman_provinces.txt create mode 100644 common/story_cycles/story_cycle_seljuk_invasion.txt create mode 100644 common/story_cycles/story_cycle_take_mandate_of_heaven.txt create mode 100644 common/story_cycles/tgp_story_cycle_tai_migrations.txt diff --git a/common/character_interactions/00_modifiy_vassal_contract.txt b/common/character_interactions/00_modifiy_vassal_contract.txt index 7081278c..bb6cbe59 100644 --- a/common/character_interactions/00_modifiy_vassal_contract.txt +++ b/common/character_interactions/00_modifiy_vassal_contract.txt @@ -142,69 +142,69 @@ auto_accept = yes on_accept = { - hidden_effect = { - # Struggle Catalysts - ## We work these out first so they're not invalidated by the actual effect block. - if = { - limit = { - catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } - scope:actor = { - any_character_struggle = { - involvement = involved - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - } - } - scope:actor = { - every_character_struggle = { - involvement = involved - limit = { - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - activate_struggle_catalyst = { - catalyst = catalyst_granted_powerful_diff_faith_vassal_religious_protection - character = scope:actor - } - } - } - } - if = { - limit = { - catalyst_revoked_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } - scope:actor = { - any_character_struggle = { - involvement = involved - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - } - } - scope:actor = { - every_character_struggle = { - involvement = involved - limit = { - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - activate_struggle_catalyst = { - catalyst = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - character = scope:actor - } - } - } - } - - # Improving contract catalyst +# hidden_effect = { +# # Struggle Catalysts +# ## We work these out first so they're not invalidated by the actual effect block. +# if = { +# limit = { +# catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } +# scope:actor = { +# any_character_struggle = { +# involvement = involved +# activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +# CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection +# CHAR = scope:recipient +# } +# } +# } +# } +# scope:actor = { +# every_character_struggle = { +# involvement = involved +# limit = { +# activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +# CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection +# CHAR = scope:recipient +# } +# } +# activate_struggle_catalyst = { +# catalyst = catalyst_granted_powerful_diff_faith_vassal_religious_protection +# character = scope:actor +# } +# } +# } +# } +# if = { +# limit = { +# catalyst_revoked_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } +# scope:actor = { +# any_character_struggle = { +# involvement = involved +# activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +# CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# CHAR = scope:recipient +# } +# } +# } +# } +# scope:actor = { +# every_character_struggle = { +# involvement = involved +# limit = { +# activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +# CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# CHAR = scope:recipient +# } +# } +# activate_struggle_catalyst = { +# catalyst = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# character = scope:actor +# } +# } +# } +# } +# +# # Improving contract catalyst # if = { # limit = { # scope:recipient.count_obligation_improvements_for_vassal > 0 @@ -238,7 +238,7 @@ # } # } # } - } +# } # Enact changes. scope:actor = { @@ -892,81 +892,17 @@ admin_liege_modify_vassal_contract_interaction = { auto_accept = yes on_accept = { - hidden_effect = { - # Struggle Catalysts - ## We work these out first so they're not invalidated by the actual effect block. - if = { - limit = { - catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } - scope:actor = { - any_character_struggle = { - involvement = involved - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - } - } - scope:actor = { - every_character_struggle = { - involvement = involved - limit = { - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - activate_struggle_catalyst = { - catalyst = catalyst_granted_powerful_diff_faith_vassal_religious_protection - character = scope:actor - } - } - } - } - if = { - limit = { - catalyst_revoked_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } - scope:actor = { - any_character_struggle = { - involvement = involved - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - } - } - scope:actor = { - every_character_struggle = { - involvement = involved - limit = { - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - activate_struggle_catalyst = { - catalyst = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - character = scope:actor - } - } - } - } - - # Improving contract catalyst - if = { +# hidden_effect = { +# # Struggle Catalysts +# ## We work these out first so they're not invalidated by the actual effect block. +# if = { # limit = { -# scope:recipient.count_obligation_improvements_for_vassal > 0 +# catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } # scope:actor = { -# is_diff_faith_or_culture_trigger = { -# CHAR = scope:recipient -# STATUS = involved -# } # any_character_struggle = { # involvement = involved # activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { -# CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal +# CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection # CHAR = scope:recipient # } # } @@ -977,18 +913,82 @@ admin_liege_modify_vassal_contract_interaction = { # involvement = involved # limit = { # activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { -# CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal +# CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection # CHAR = scope:recipient # } # } # activate_struggle_catalyst = { -# catalyst = catalyst_grant_privilege_to_diff_faith_culture_vassal +# catalyst = catalyst_granted_powerful_diff_faith_vassal_religious_protection # character = scope:actor # } # } # } # } - } +# if = { +# limit = { +# catalyst_revoked_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } +# scope:actor = { +# any_character_struggle = { +# involvement = involved +# activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +# CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# CHAR = scope:recipient +# } +# } +# } +# } +# scope:actor = { +# every_character_struggle = { +# involvement = involved +# limit = { +# activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +# CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# CHAR = scope:recipient +# } +# } +# activate_struggle_catalyst = { +# catalyst = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# character = scope:actor +# } +# } +# } +# } +# +# # Improving contract catalyst +# if = { +## limit = { +## scope:recipient.count_obligation_improvements_for_vassal > 0 +## scope:actor = { +## is_diff_faith_or_culture_trigger = { +## CHAR = scope:recipient +## STATUS = involved +## } +## any_character_struggle = { +## involvement = involved +## activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +## CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal +## CHAR = scope:recipient +## } +## } +## } +## } +## scope:actor = { +## every_character_struggle = { +## involvement = involved +## limit = { +## activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +## CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal +## CHAR = scope:recipient +## } +## } +## activate_struggle_catalyst = { +## catalyst = catalyst_grant_privilege_to_diff_faith_culture_vassal +## character = scope:actor +## } +## } +## } +## } +# } # Enact changes. scope:actor = { @@ -1596,81 +1596,17 @@ nomad_liege_modify_vassal_contract_interaction = { auto_accept = yes on_accept = { - hidden_effect = { - # Struggle Catalysts - ## We work these out first so they're not invalidated by the actual effect block. - if = { - limit = { - catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } - scope:actor = { - any_character_struggle = { - involvement = involved - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - } - } - scope:actor = { - every_character_struggle = { - involvement = involved - limit = { - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - activate_struggle_catalyst = { - catalyst = catalyst_granted_powerful_diff_faith_vassal_religious_protection - character = scope:actor - } - } - } - } - if = { - limit = { - catalyst_revoked_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } - scope:actor = { - any_character_struggle = { - involvement = involved - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - } - } - scope:actor = { - every_character_struggle = { - involvement = involved - limit = { - activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { - CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - CHAR = scope:recipient - } - } - activate_struggle_catalyst = { - catalyst = catalyst_revoked_powerful_diff_faith_vassal_religious_protection - character = scope:actor - } - } - } - } - - # Improving contract catalyst +# hidden_effect = { +# # Struggle Catalysts +# ## We work these out first so they're not invalidated by the actual effect block. # if = { # limit = { -# scope:recipient.count_obligation_improvements_for_vassal > 0 +# catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } # scope:actor = { -# is_diff_faith_or_culture_trigger = { -# CHAR = scope:recipient -# STATUS = involved -# } # any_character_struggle = { # involvement = involved # activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { -# CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal +# CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection # CHAR = scope:recipient # } # } @@ -1681,18 +1617,82 @@ nomad_liege_modify_vassal_contract_interaction = { # involvement = involved # limit = { # activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { -# CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal +# CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection # CHAR = scope:recipient # } # } # activate_struggle_catalyst = { -# catalyst = catalyst_grant_privilege_to_diff_faith_culture_vassal +# catalyst = catalyst_granted_powerful_diff_faith_vassal_religious_protection # character = scope:actor # } # } # } # } - } +# if = { +# limit = { +# catalyst_revoked_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = { CHAR = scope:recipient } +# scope:actor = { +# any_character_struggle = { +# involvement = involved +# activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +# CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# CHAR = scope:recipient +# } +# } +# } +# } +# scope:actor = { +# every_character_struggle = { +# involvement = involved +# limit = { +# activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +# CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# CHAR = scope:recipient +# } +# } +# activate_struggle_catalyst = { +# catalyst = catalyst_revoked_powerful_diff_faith_vassal_religious_protection +# character = scope:actor +# } +# } +# } +# } +# +# # Improving contract catalyst +## if = { +## limit = { +## scope:recipient.count_obligation_improvements_for_vassal > 0 +## scope:actor = { +## is_diff_faith_or_culture_trigger = { +## CHAR = scope:recipient +## STATUS = involved +## } +## any_character_struggle = { +## involvement = involved +## activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +## CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal +## CHAR = scope:recipient +## } +## } +## } +## } +## scope:actor = { +## every_character_struggle = { +## involvement = involved +## limit = { +## activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { +## CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal +## CHAR = scope:recipient +## } +## } +## activate_struggle_catalyst = { +## catalyst = catalyst_grant_privilege_to_diff_faith_culture_vassal +## character = scope:actor +## } +## } +## } +## } +# } # Enact changes. scope:actor = { diff --git a/common/decisions/80_major_decisions.txt b/common/decisions/80_major_decisions.txt index b4840257..9b70473e 100644 --- a/common/decisions/80_major_decisions.txt +++ b/common/decisions/80_major_decisions.txt @@ -3214,80 +3214,80 @@ set_de_jure_capital_decision = { base = 100 } } - -# Restore Carthage - -restore_carthage_decision = { - picture = { - reference = "gfx/interface/illustrations/decisions/decision_dynasty_house.dds" - } - decision_group_type = major - - ai_check_interval_by_tier = { - barony = 0 - county = 0 - duchy = 0 - kingdom = 120 - empire = 0 - hegemony = 0 - } - - desc = restore_carthage_decision_desc - selection_tooltip = restore_carthage_decision_tooltip - - is_shown = { - is_ruler = yes - is_playable_character = yes - - OR = { - culture = { has_cultural_pillar = heritage_syriac } - culture = culture:levantine - } - - # Not repeatable. - NOT = { - is_target_in_global_variable_list = { - name = unavailable_unique_decisions - target = flag:flag_restored_carthage - } - } - } - - is_valid = { - is_independent_ruler = yes - highest_held_title_tier < tier_empire - - prestige_level >= 4 - - completely_controls_region = custom_carthage - completely_controls_region = custom_tripolitania - completely_controls_region = custom_mauretania - completely_controls_region = custom_carthago_nova - - } - - is_valid_showing_failures_only = { - top_liege = this - is_available_adult = yes - } - - cost = { - gold = { - value = 1200 - } - } - - effect = { - save_scope_as = founder - show_as_tooltip = { restore_carthage_scripted_effect = yes } - - hidden_effect = { - add_to_global_variable_list = { - name = unavailable_unique_decisions - target = flag:flag_restored_carthage - } - } - - trigger_event = major_decisions.3300 - } -} +# +## Restore Carthage +# +#restore_carthage_decision = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/decision_dynasty_house.dds" +# } +# decision_group_type = major +# +# ai_check_interval_by_tier = { +# barony = 0 +# county = 0 +# duchy = 0 +# kingdom = 120 +# empire = 0 +# hegemony = 0 +# } +# +# desc = restore_carthage_decision_desc +# selection_tooltip = restore_carthage_decision_tooltip +# +# is_shown = { +# is_ruler = yes +# is_playable_character = yes +# +# OR = { +# culture = { has_cultural_pillar = heritage_syriac } +# culture = culture:levantine +# } +# +# # Not repeatable. +# NOT = { +# is_target_in_global_variable_list = { +# name = unavailable_unique_decisions +# target = flag:flag_restored_carthage +# } +# } +# } +# +# is_valid = { +# is_independent_ruler = yes +# highest_held_title_tier < tier_empire +# +# prestige_level >= 4 +# +# completely_controls_region = custom_carthage +# completely_controls_region = custom_tripolitania +# completely_controls_region = custom_mauretania +# completely_controls_region = custom_carthago_nova +# +# } +# +# is_valid_showing_failures_only = { +# top_liege = this +# is_available_adult = yes +# } +# +# cost = { +# gold = { +# value = 1200 +# } +# } +# +# effect = { +# save_scope_as = founder +# show_as_tooltip = { restore_carthage_scripted_effect = yes } +# +# hidden_effect = { +# add_to_global_variable_list = { +# name = unavailable_unique_decisions +# target = flag:flag_restored_carthage +# } +# } +# +# trigger_event = major_decisions.3300 +# } +#} diff --git a/common/decisions/NEOW_artifact_decisions.txt b/common/decisions/NEOW_artifact_decisions.txt index 6a173a7f..ff001c8e 100644 --- a/common/decisions/NEOW_artifact_decisions.txt +++ b/common/decisions/NEOW_artifact_decisions.txt @@ -70,7 +70,7 @@ reforge_crown_wenceslas_decision = { } } - ai_check_interval = { 500 } + ai_check_interval = 500 ai_will_do = { value = 15 } diff --git a/common/modifiers/07_ep3_modifiers.txt b/common/modifiers/07_ep3_modifiers.txt new file mode 100644 index 00000000..002627d3 --- /dev/null +++ b/common/modifiers/07_ep3_modifiers.txt @@ -0,0 +1,3064 @@ +############################################### +# #Estate modifiers + +ep3_estate_hired_agents_modifier = { + icon = intrigue_positive + + owned_hostile_scheme_success_chance_max_add = 3 + owned_hostile_scheme_success_chance_growth_add = 3 + hostile_scheme_phase_duration_add = microscopic_scheme_phase_duration_bonus_value + + scale = { + value = influence_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_PER_INFLUENCE_LEVEL + display_mode = scaled + } +} + +ep3_estate_bolster_security_modifier = { + icon = intrigue_positive + + enemy_hostile_scheme_success_chance_add = -4 + enemy_hostile_scheme_phase_duration_add = microscopic_scheme_phase_duration_malus_value + + scale = { + value = influence_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_PER_INFLUENCE_LEVEL + display_mode = scaled + } +} + +ep3_estate_governor_patrols_modifier = { + icon = martial_positive + + defender_holding_advantage = 10 + monthly_county_control_growth_add = 0.5 +} + +ep3_estate_granary_modifier = { + icon = treat_positive + + monthly_income = 0.1 + + scale = { + value = granary_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_ESTATE_FACTORS + display_mode = scaled + } +} + +############################################### +# Eparch modifiers + +ep3_eparch_county_opinion_modifier = { + icon = county_modifier_opinion_positive + + county_opinion_add = 10 + + scale = { + value = eparch_aptitude_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_EPARCH_APTITUDE + display_mode = scaled + } +} + +ep3_eparch_troops_modifier = { + icon = martial_positive + + stationed_maa_damage_mult = 0.1 + stationed_maa_toughness_mult = 0.05 + stationed_maa_siege_value_mult = 0.12 + + scale = { + value = eparch_aptitude_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_EPARCH_APTITUDE + display_mode = scaled + } +} + +ep3_eparch_control_modifier = { + icon = county_modifier_control_positive + + monthly_county_control_growth_add = 0.3 + + scale = { + value = eparch_aptitude_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_EPARCH_APTITUDE + display_mode = scaled + } +} + +ep3_eparch_development_modifier = { + icon = county_modifier_development_positive + + development_growth = 0.1 + + scale = { + value = eparch_aptitude_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_EPARCH_APTITUDE + display_mode = scaled + } +} + +ep3_eparch_fortified_capital_modifier = { + icon = travel_safety_positive + + fort_level = 1 + garrison_size = 0.05 + + scale = { + value = eparch_aptitude_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_EPARCH_APTITUDE + display_mode = scaled + } +} + +ep3_eparch_somewhat_fortified_capital_modifier = { + icon = travel_safety_positive + + fort_level = 2 +} + +ep3_eparch_plague_protection_modifier = { + icon = treatment_positive + + epidemic_resistance = 5 + epidemic_travel_danger = -2 + + scale = { + value = eparch_aptitude_modifier_scaling_value + desc = MODIFIER_DEFINITION_VALUE_EPARCH_APTITUDE + display_mode = scaled + } +} + +ep3_eparch_physician_at_work_modifier = { + icon = treatment_positive + + epidemic_resistance = 5 + development_decline_factor = -0.15 + + scale = { + value = { + value = 1 + if = { + limit = { + exists = scope:physician + } + add = scope:physician.aptitude:court_physician_court_position + } + desc = MODIFIER_DEFINITION_MAIN_DESC_EPARCH_APTITUDE + } + desc = MODIFIER_DEFINITION_VALUE_EPARCH_APTITUDE + display_mode = scaled + } +} + +ep3_eparch_university_influence_modifier = { + icon = influence_positive + + monthly_influence_mult = 0.1 + # Has custom effects +} + +############################################### +# #Governance modifiers + +ep3_governance_tax_relief = { + icon = stewardship_mixed + + tax_mult = -0.1 + development_growth_factor = 0.25 + county_opinion_add = 20 +} + +ep3_governance_stationed_troops = { + icon = martial_positive + + tax_mult = 0.1 + monthly_county_control_growth_factor = 0.2 + stationed_maa_damage_mult = 0.1 + fort_level = 2 +} + +ep3_governance_festivities = { + icon = county_modifier_opinion_positive + + tax_mult = 0.05 + monthly_county_control_growth_factor = 0.1 + county_opinion_add = 25 +} + +ep3_governance_infrastructure = { + icon = economy_positive + + build_gold_cost = -0.15 + build_speed = -0.15 + holding_build_gold_cost = -0.1 + holding_build_speed = -0.1 +} + +ep3_governance_harvest = { + icon = food_positive + + county_opinion_add = 10 + development_growth_factor = 0.05 + travel_danger = -4 + epidemic_resistance = 2 +} + +ep3_governance_great_harvest = { + icon = food_positive + + county_opinion_add = 20 + development_growth_factor = 0.1 + travel_danger = -8 + epidemic_resistance = 6 +} + +ep3_governance_mercenary_troops = { + icon = martial_mixed + + men_at_arms_maintenance = -0.2 + knight_effectiveness_mult = 0.2 + maa_damage_mult = 0.1 + county_opinion_add = -15 + monthly_prestige_gain_mult = -0.2 +} + +ep3_governance_workforce = { + icon = economy_positive + + county_opinion_add = 10 + development_growth_factor = 0.1 + build_gold_cost = -0.1 + build_speed = -0.1 +} + +ep3_governance_rampant_bandits = { + icon = travel_safety_negative + + county_opinion_add = -10 + travel_danger = 20 + monthly_county_control_decline_add = -0.2 +} + +ep3_settled_troops_province_modifier = { + icon = martial_positive + stationed_maa_damage_mult = 0.3 + stationed_maa_toughness_mult = 0.3 + stationed_maa_siege_value_mult = 0.3 +} + +ep3_longer_breaks_province_modifier = { + icon = martial_negative + stationed_maa_damage_mult = -0.1 + stationed_maa_toughness_mult = -0.1 +} + +ep3_better_paid_soldiers_modifier = { + icon = martial_mixed + men_at_arms_maintenance = 0.1 + maa_damage_mult = 0.15 +} + +ep3_mismanaged_administration_modifier = { + icon = economy_negative + tax_mult = -0.1 + monthly_county_control_decline_add = -0.2 +} + +ep3_contract_infrastructure_modifier = { + icon = county_modifier_development_positive + development_growth_factor = 0.2 + travel_danger = -10 +} + +ep3_invested_military_modifier = { + icon = martial_positive + stationed_maa_damage_mult = 0.1 + stationed_maa_toughness_mult = 0.1 +} + +ep3_food_distribution_modifier = { + icon = food_positive + county_opinion_add = 20 + monthly_county_control_growth_add = 0.15 +} + +ep3_peasant_border_raids_modifier = { + icon = goods_mixed + monthly_county_control_decline_add = -0.2 + garrison_size = 0.2 + hostile_raid_time = 0.4 +} + +ep3_peasant_workers_modifier = { + icon = food_mixed + tax_mult = 0.2 + county_opinion_add = -20 + development_growth_factor = 0.1 +} + +ep3_abundant_game_modifier = { + icon = hunt_positive + development_growth_factor = 0.15 +} + +ep3_wild_predators_modifier = { + icon = hunt_negative + development_growth_factor = -0.25 +} + +ep3_ferocious_pets_modifier = { + icon = beast_mixed + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + dread_gain_mult = 0.25 + monthly_influence_mult = 0.1 + tax_mult = -0.15 +} + +ep3_church_investigation_modifier = { + icon = flame_mixed + holding_build_piety_cost = -0.5 + church_holding_build_speed = -0.3 + county_opinion_add = -25 + tax_mult = 0.2 +} + +ep3_rationalist_gov_modifier = { + icon = learning_mixed + learning = 2 + county_opinion_add = -10 + monthly_piety_gain_mult = -0.1 +} + +ep3_local_practices_modifier = { + icon = county_modifier_control_positive + county_opinion_add = 20 + monthly_county_control_growth_factor = 0.2 +} + +ep3_treasure_invest_modifier = { + icon = county_modifier_development_positive + development_growth_factor = 0.2 + build_gold_cost = -0.1 + travel_danger = -5 +} + +ep3_treasure_distributed_modifier = { + icon = county_modifier_development_positive + development_growth_factor = 0.2 +} + +ep3_lands_reinstated_modifier = { + icon = administrative_positive + levy_size = 0.2 + tax_mult = 0.1 + county_opinion_add = 10 +} + +ep3_land_confiscate_modifier = { + icon = goods_positive + domicile_build_speed = -0.1 + domicile_build_gold_cost = -0.1 +} + +ep3_religiously_pacified_modifier = { + icon = piety_positive + county_opinion_add = 20 + supply_limit_mult = 0.25 + levy_reinforcement_rate = 0.25 + travel_danger = -10 +} + +ep3_doom_repressed_modifier = { + icon = county_modifier_opinion_mixed + county_opinion_add = -20 + monthly_county_control_growth_factor = 0.2 +} + +ep3_religious_debate_modifier = { + icon = learning_positive + learning = 2 + monthly_influence_mult = 0.1 +} + +ep3_repayed_church_titles_modifier = { + icon = piety_positive + holding_build_piety_cost = -0.25 + church_holding_build_speed = -0.25 + church_holding_build_gold_cost = -0.25 +} + +ep3_rebuild_effort_modifier = { + icon = rat_positive + epidemic_resistance = 5 + supply_limit_mult = 0.15 + development_growth_factor = 0.2 + county_opinion_add = 10 +} + +ep3_tight_control_modifier = { + icon = county_modifier_opinion_mixed + county_opinion_add = -20 + development_growth_factor = -0.2 + monthly_county_control_growth_factor = 0.2 + epidemic_resistance = 10 + travel_danger = -10 +} + +ep3_war_support_modifier = { + icon = martial_mixed + tax_mult = -0.2 + fort_level = 1 + garrison_size = 0.5 +} + +ep3_war_supplies_modifier = { + icon = goods_mixed + tax_mult = -0.1 + supply_limit_mult = 0.5 + levy_reinforcement_rate_friendly_territory = 0.5 +} + +ep3_war_lodgings_modifier = { + icon = martial_mixed + tax_mult = -0.1 + supply_limit_mult = 0.25 + defender_holding_advantage = 5 +} + +ep3_war_lookout_modifier = { + icon = martial_mixed + tax_mult = -0.1 + travel_danger = -10 + defender_holding_advantage = 10 +} + +ep3_war_compensations_modifier = { + icon = stewardship_positive + tax_mult = 0.1 + monthly_county_control_growth_at_war_factor = 0.25 + development_growth_factor = 0.25 +} + +############################################### +# #Character modifiers + +ep3_restored_pentarchy_seat_county_modifier = { + icon = byzantine_eagle_positive + tax_mult = 0.2 + levy_size = 0.3 +} + +ep3_restored_pentarchy_seat_modifier = { + icon = byzantine_eagle_positive + monthly_piety = 0.3 + learning = 2 + religious_head_opinion = 25 + same_faith_opinion = 10 +} + +ep3_maximum_border_county_modifier = { + icon = byzantine_eagle_positive + development_growth = 0.2 + levy_size = 0.1 + castle_holding_build_gold_cost = -0.1 +} + +ep3_maximum_border_modifier = { + icon = byzantine_eagle_positive + martial = 2 + monthly_prestige = 0.3 + glory_hound_levy_contribution_mult = 0.03 +} + +ep3_new_justinian_county_modifier = { + icon = byzantine_eagle_positive + tax_mult = 0.2 + city_holding_build_gold_cost = -0.2 +} + +ep3_new_justinian_modifier = { + icon = byzantine_eagle_positive + diplomacy = 2 + monthly_influence = 0.3 +} + +ep3_western_tetrarch_county_modifier = { + icon = byzantine_eagle_positive + monthly_county_control_growth_add = 1 + travel_danger = -10 +} + +ep3_western_tetrarch_modifier = { + icon = byzantine_eagle_positive + intrigue = 2 + monthly_lifestyle_xp_gain_mult = 0.2 + men_at_arms_maintenance = -0.03 +} + +ep3_long_lost_province_county_modifier = { + icon = byzantine_eagle_positive + development_growth_factor = 0.1 + city_holding_build_gold_cost = -0.3 +} + +ep3_long_lost_province_modifier = { + icon = byzantine_eagle_positive + diplomacy = 2 + direct_vassal_opinion = 10 + mercenary_hire_cost_mult = -0.1 +} + +ep3_long_contested_province_county_modifier = { + icon = byzantine_eagle_positive + build_speed = -0.15 + defender_holding_advantage = 5 + levy_reinforcement_rate = 0.5 +} + +ep3_long_contested_province_modifier = { + icon = byzantine_eagle_positive + martial = 2 + stress_gain_mult = -0.2 + army_maintenance_mult = -0.1 +} + +ep3_medi_gem_county_modifier = { + icon = byzantine_eagle_positive + build_gold_cost = -0.2 + development_growth_factor = medium_development_growth_gain +} + +ep3_medi_gem_modifier = { + icon = byzantine_eagle_positive + stewardship = 2 + monthly_income_mult = 0.1 + courtly_tax_contribution_mult = 0.03 +} + +ep3_politics_before_all_modifier = { + icon = diplomacy_mixed + diplomacy = 1 + courtly_opinion = -5 + parochial_opinion = -10 + different_culture_opinion = 5 + minority_opinion = 5 +} + +ep3_everything_for_byz_modifier = { + icon = byzantine_eagle_mixed + zealot_opinion = 5 + glory_hound_opinion = 5 + clergy_opinion = 10 + different_culture_opinion = -5 +} + +vast_tracts_of_land_modifier = { + icon = stewardship_positive + stacking = yes + monthly_income = 0.8 + monthly_influence = 0.4 +} + +productive_lands_modifier = { + icon = stewardship_positive + monthly_income = 0.3 + monthly_influence = 0.2 +} + +some_smallholds_modifier = { + icon = stewardship_positive + monthly_income = 0.1 + monthly_influence = 0.1 +} + +holy_water_mortal_stomach_modifier = { + icon = health_negative + health = -0.25 +} + +haunted_by_hostile_troops_modifier = { + icon = stress_mixed + stress_gain_mult = 0.25 + character_travel_speed_mult = 0.1 +} + +ep3_triumph_of_god_modifier = { + icon = piety_positive + zealot_opinion = 15 + same_faith_opinion = 5 + zealot_tax_contribution_mult = 0.25 + monthly_piety = 0.3 +} + +ep3_blessed_in_triumph_modifier = { + icon = piety_positive + zealot_opinion = 5 + same_faith_opinion = 5 + diplomacy_per_piety_level = 1 + monthly_prestige = 0.2 +} + +ep3_triumph_traditional_punishments_modifier = { + icon = medical_scissors_positive + councillor_opinion = 10 + monthly_legitimacy_add = 1 + monthly_prestige_gain_per_legitimacy_level_add = 0.2 + diplomacy_per_prestige_level = 1 +} + +ep3_triumph_public_executioner_modifier = { + icon = dread_positive + monthly_dread = 0.25 + monthly_county_control_growth_add = 0.3 + intimidated_vassal_tax_contribution_mult = 0.1 + cowed_vassal_tax_contribution_mult = 0.2 +} + +ep3_triumph_promised_victories_modifier = { + icon = martial_positive + martial = 1 + glory_hound_opinion = 10 + men_at_arms_maintenance = -0.2 + happy_powerful_vassal_levy_contribution_mult = 0.2 +} + +ep3_triumph_promised_stability_modifier = { + icon = diplomacy_positive + diplomacy = 1 + courtly_opinion = 10 + monthly_prestige_gain_per_happy_powerful_vassal_add = 0.2 + monthly_county_control_growth_add = 0.2 +} + +ep3_triumph_promised_prosperity_modifier = { + icon = stewardship_positive + stewardship = 1 + parochial_opinion = 10 + development_growth_factor = 0.2 + monthly_income_mult = 0.1 +} + +ep3_voluntary_laamp_character_modifier = { + icon = prestige_positive + same_culture_opinion = 10 + same_faith_opinion = 10 + travel_companion_opinion = 10 +} + +ep3_guide_from_the_borderlands_modifier = { + icon = travel_positive + hills_travel_danger = -20 + mountains_travel_danger = -20 + steppe_travel_danger = -20 + character_travel_speed_mult = 0.1 +} + +ep3_emperor_proving_themselves_modifier = { + icon = signet_ring_mixed + legitimacy_gain_mult = 0.05 + religious_head_opinion = -15 + zealot_opinion = -5 +} + +ep3_blessed_union_modifier = { + icon = wedding_positive + zealot_opinion = 5 + monthly_piety_gain_mult = 0.15 + zealot_tax_contribution_mult = 0.1 +} + +ep3_non_blessed_union_modifier = { + icon = wedding_negative + zealot_opinion = -5 + monthly_piety_gain_mult = -0.15 + zealot_tax_contribution_mult = -0.1 +} + +ep3_ennobled_adventurer_modifier_1 = { + icon = legitimacy_negative + fellow_vassal_opinion = -15 + vassal_opinion = -15 + legitimacy_gain_mult = -0.25 +} + +ep3_ennobled_adventurer_modifier_2 = { + icon = legitimacy_negative + fellow_vassal_opinion = -20 + vassal_opinion = -20 + legitimacy_gain_mult = -0.3 +} + +ep3_ennobled_adventurer_modifier_3 = { + icon = legitimacy_negative + fellow_vassal_opinion = -25 + vassal_opinion = -25 + legitimacy_gain_mult = -0.4 +} + +disrespected_varangians_modifier = { + icon = intrigue_negative + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + heavy_infantry_damage_mult = -0.1 + heavy_infantry_toughness_mult = -0.1 +} + +loyal_varangians_modifier = { + icon = martial_positive + heavy_infantry_damage_mult = 0.25 + heavy_infantry_toughness_mult = 0.25 + heavy_infantry_recruitment_cost_mult = -0.25 +} + +attentive_varangians_modifier = { + icon = intrigue_positive + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + courtier_and_guest_opinion = 10 +} + +ep3_exotic_giraffe_modifier = { + icon = horse_positive + monthly_county_control_growth_factor = 0.2 + monthly_court_grandeur_change_mult = 0.2 + court_grandeur_baseline_add = 2 +} + +defender_of_values_modifier = { + icon = signet_ring_positive + same_culture_opinion = 10 + parochial_same_culture_opinion = 5 +} + +ep3_mercenaries_abroad_modifier = { + icon = martial_negative + men_at_arms_maintenance = 0.3 + men_at_arms_recruitment_cost = 0.3 +} + +ep3_mercenaries_from_abroad_modifier = { + icon = martial_positive + men_at_arms_maintenance = -0.3 + men_at_arms_recruitment_cost = -0.3 +} + +ep3_bought_the_purple_modifier = { + icon = byzantine_eagle_positive + monthly_influence = 0.1 + general_opinion = 10 +} + +ep3_leviathan_success_character_modifier = { + icon = beast_positive + general_opinion = 5 + county_opinion_add = 20 +} + +ep3_leviathan_failure_character_modifier = { + icon = beast_negative + embarkation_cost_mult = 0.15 +} + +ep3_iconoclast_modifier = { + icon = piety_mixed + county_opinion_add = -20 + same_faith_opinion = 15 +} + +ep3_grave_robber_modifier = { + icon = influence_mixed + county_opinion_add = -20 + monthly_influence_mult = -0.05 + dread_gain_mult = 0.05 +} + +ep3_construction_contract_modifier = { + icon = county_modifier_development_positive + monthly_income = 1 +} + +ep3_pilgrim_protector_same_modifier = { + icon = piety_positive + same_faith_opinion = 10 + zealot_opinion = 10 + church_holding_build_gold_cost = -0.3 + church_holding_build_speed = -0.3 +} + +ep3_pilgrim_protector_other_modifier = { + icon = piety_positive + different_faith_county_opinion_mult = -0.3 + different_faith_opinion = 15 + faith_conversion_piety_cost_mult = -0.5 + domain_tax_different_faith_mult = 0.1 +} + +ep3_friendly_host_modifier = { + icon = influence_positive + county_opinion_add = 15 + zealot_opinion = 10 +} + +ep3_unbeliever_in_signs_modifier = { + icon = wit_mixed + monthly_piety_gain_mult = -0.15 + stress_gain_mult = -0.15 + diplomacy = 1 + learning = -1 +} + +ep3_law_and_order_modifier = { + icon = signet_ring_mixed + martial = 1 + dread_gain_mult = 0.2 + county_opinion_add = -15 +} + +ep3_crowd_bender_modifier = { + icon = diplomacy_positive + diplomacy = 1 + monthly_influence_mult = 0.2 +} + +ep3_bolstered_governor_treasury_modifier = { + icon = administrative_positive + monthly_influence_mult = 0.1 + development_growth_factor = 0.05 +} + +ep3_governor_yearly_8080_tense_bureaucracy_modifier = { + icon = administrative_mixed + county_opinion_add = 10 + dread_baseline_add = 5 + tax_mult = -0.1 +} + +ep3_governor_yearly_8080_jumpy_bureaucracy_modifier = { + icon = administrative_mixed + county_opinion_add = 25 + dread_baseline_add = 10 + tax_mult = -0.15 +} + +ep3_governor_yearly_8080_corrupt_bureaucracy_modifier = { + icon = administrative_negative + county_opinion_add = -25 + dread_baseline_add = -10 +} + +ep3_governor_yearly_8050_imperial_recruiter_modifier = { + icon = administrative_positive + liege_opinion = 10 + monthly_influence_mult = 0.1 +} + +ep3_governor_yearly_8050_imperial_fortification_modifier = { + icon = administrative_mixed + additional_fort_level = 1 + garrison_size = 0.1 + liege_opinion = -10 + monthly_influence_mult = -0.1 +} + +ep3_governor_yearly_8050_imperial_resources_modifier = { + icon = administrative_negative + liege_opinion = -15 +} + +ep3_governor_yearly_8040_province_development_modifier = { + icon = administrative_mixed + build_gold_cost = -0.25 + holding_build_gold_cost = -0.25 + domicile_build_gold_cost = 0.25 +} + +ep3_governor_yearly_8040_domicile_development_modifier = { + icon = administrative_mixed + domicile_build_gold_cost = -0.25 + build_gold_cost = 0.25 + holding_build_gold_cost = 0.25 +} + +ep3_governor_yearly_8040_across_things_modifier = { + icon = administrative_positive + domicile_build_gold_cost = -0.1 + build_gold_cost = -0.1 + holding_build_gold_cost = -0.1 + vassal_opinion = 10 +} + +ep3_governor_yearly_8040_overwhelmed_modifier = { + icon = administrative_negative + stewardship = -2 + domicile_build_gold_cost = 0.10 + build_gold_cost = 0.10 + holding_build_gold_cost = 0.10 + stress_gain_mult = 0.15 +} + +ep3_governor_yearly_8040_shirker_modifier = { + icon = administrative_mixed + vassal_opinion = -10 + monthly_influence_mult = -0.2 + stress_gain_mult = -0.15 +} + +laamp_prepping_for_invasion = { + icon = martial_positive + men_at_arms_maintenance = -0.1 + men_at_arms_recruitment_cost = -0.1 +} + +laamp_familiar_lands = { + icon = travel_positive + character_travel_speed_mult = 0.1 + character_travel_safety_mult = 0.1 +} + +ep3_governor_yearly_8120_relief_leader_modifier = { + icon = county_modifier_opinion_positive + county_opinion_add = 25 + monthly_influence_mult = 0.1 +} + +ep3_governor_yearly_8120_relief_botched_modifier = { + icon = county_modifier_opinion_negative + county_opinion_add = -25 + monthly_influence_mult = -0.1 +} + +ep3_governor_yearly_8120_relief_rejected_modifier = { + icon = county_modifier_opinion_negative + county_opinion_add = -30 +} + +ep3_governor_yearly_8130_raised_taxes_modifier = { + icon = byzantine_eagle_mixed + tax_mult = 0.2 + county_opinion_add = -30 +} + +ep3_governor_yearly_8130_special_levy_modifier = { + icon = byzantine_eagle_negative + county_opinion_add = -15 +} + +ep3_governor_yearly_8130_raised_almonage_modifier = { + icon = byzantine_eagle_mixed + development_growth_factor = 0.1 + epidemic_resistance = 5 + county_opinion_add = 10 + vassal_opinion = -15 +} + +ep3_sent_help_to_east_modifier = { + icon = martial_negative + vassal_levy_contribution_mult = -0.2 + levy_size = -0.2 +} + +ep3_efforts_recognized_modifier = { + icon = signet_ring_positive + monthly_influence_mult = 0.2 + monthly_prestige_gain_mult = 0.2 + stress_gain_mult = -0.2 +} + +ep3_publicly_recognized_modifier = { + icon = signet_ring_positive + monthly_influence_mult = 0.15 + fellow_vassal_opinion = 10 + dynasty_opinion = 10 +} + +ep3_integration_promoter_modifier = { + icon = administrative_positive + domicile_build_speed = -0.25 + monthly_influence = 0.5 +} + +# #County modifiers +taxed_and_pressganged_tenants_modifier = { + icon = county_modifier_opinion_negative + county_opinion_add = -25 + development_growth = -0.25 +} + +ep3_century_celebration_county_modifier = { + icon = byzantine_eagle_positive + development_growth_factor = medium_development_growth_gain + development_growth = 0.2 + tax_mult = 0.3 + county_opinion_add = 25 +} + +ep3_foundation_celebration_county_modifier = { + icon = byzantine_eagle_positive + development_growth_factor = small_development_growth_gain +} + +ep3_development_sacrifice_modifier = { + icon = county_modifier_development_negative + development_growth_factor = tiny_development_growth_loss + tax_mult = -0.1 + county_opinion_add = -10 +} + +ep3_development_waning_modifier = { + icon = county_modifier_development_negative + development_growth_factor = small_development_growth_loss + tax_mult = -0.15 + county_opinion_add = -15 +} + +ep3_school_building_county_modifier = { + icon = learning_negative + build_speed = 0.5 +} + +ep3_grammar_school_county_modifier = { + icon = learning_positive + county_opinion_add = 20 + development_growth_factor = small_development_growth_gain +} + +ep3_leviathan_loose_county_modifier = { + icon = county_modifier_development_negative + development_growth_factor = small_development_growth_loss + tax_mult = -0.2 + county_opinion_add = -25 +} + +ep3_leviathan_mandate_county_modifier = { + icon = county_modifier_development_mixed + development_growth_factor = tiny_development_growth_loss + tax_mult = -0.1 + county_opinion_add = 10 +} + +ep3_raider_unchecked_modifier = { + icon = county_modifier_development_negative + development_growth_factor = small_development_growth_loss + tax_mult = -0.2 + county_opinion_add = -25 +} + +land_of_holy_county_modifier = { + icon = signet_ring_positive + county_opinion_add = 20 + monthly_county_control_growth_factor = 0.2 + levy_reinforcement_rate = 0.1 +} + +no_crooks_county_modifier = { + icon = signet_ring_positive + development_growth_factor = small_development_growth_gain + tax_mult = 0.15 +} + +ep3_persecuting_saints_county_modifier = { + icon = signet_ring_negative + development_growth_factor = small_development_growth_loss +} + +ep3_conmen_among_us_county_modifier = { + icon = signet_ring_negative + tax_mult = -0.1 +} + +ep3_settling_nomads_county_modifier = { + icon = horse_mixed + development_growth_factor = small_development_growth_gain + monthly_county_control_growth_factor = -0.1 + epidemic_resistance = -5 +} + +ep3_tunnels_encouraged_county_modifier = { + icon = goods_mixed + hostile_raid_time = 0.75 + defender_holding_advantage = 10 + fort_level = 1 + travel_danger = 10 + tax_mult = -0.3 +} + +ep3_population_control_county_modifier = { + icon = county_modifier_control_mixed + county_opinion_add = -30 + hostile_raid_time = -0.25 + monthly_county_control_growth_factor = 0.2 + tax_mult = 0.1 +} + +ep3_open_granary_county_modifier = { + icon = county_modifier_development_positive + development_growth_factor = small_development_growth_gain + county_opinion_add = 10 +} + +ep3_roaming_shepherds_county_modifier = { + icon = horse_mixed + development_growth_factor = small_development_growth_gain + travel_danger = -10 + monthly_county_control_growth_add = -0.15 +} + +ep3_monastic_quiet_county_modifier = { + icon = learning_mixed + development_growth_factor = small_development_growth_loss + epidemic_resistance = 10 + tax_mult = 0.1 +} + +ep3_rampaging_disorders_county_modifier = { + icon = blood_negative + development_growth_factor = medium_development_growth_loss +} + +ep3_governor_yearly_8030_stifled_modifier = { + icon = county_modifier_development_negative + development_growth_factor = small_development_growth_loss + county_opinion_add = -25 +} + +ep3_governor_yearly_8030_benign_modifier = { + icon = county_modifier_development_positive + development_growth_factor = small_development_growth_gain + county_opinion_add = 15 +} + +ep3_governor_yearly_8030_benign_char_modifier = { + icon = estate_positive + domicile_build_gold_cost = -0.15 +} + +ep3_governor_yearly_8170_warning_system_modifier = { + icon = byzantine_eagle_positive + hostile_raid_time = 0.25 + development_growth_factor = 0.05 + county_opinion_add = 15 +} + +ep3_governor_yearly_8170_success_modifier = { + icon = byzantine_eagle_positive + hostile_raid_time = 0.5 + additional_fort_level = 1 + county_opinion_add = 25 +} + +ep3_governor_yearly_8170_failure_modifier = { + icon = byzantine_eagle_negative + hostile_raid_time = -0.5 + development_growth_factor = -0.1 + county_opinion_add = -25 +} + +ep3_governor_yearly_8160_promoted_modifier = { + icon = county_modifier_opinion_positive + county_opinion_add = 25 +} + +ep3_governor_yearly_8160_suppressed_modifier = { + icon = county_modifier_opinion_negative + county_opinion_add = -25 +} + +ep3_governor_yearly_8140_negotiated_modifier = { + icon = byzantine_eagle_positive + development_growth_factor = 0.1 + county_opinion_add = 25 +} + +ep3_governor_yearly_8140_defended_modifier = { + icon = byzantine_eagle_negative + development_decline = -0.2 + county_opinion_add = -40 +} + +ep3_governor_yearly_8140_ignored_modifier = { + icon = byzantine_eagle_negative + development_decline = -0.1 + county_opinion_add = -20 +} + +ep3_governor_yearly_8120_relief_aid_modifier = { + icon = county_modifier_opinion_positive + county_opinion_add = 50 + monthly_county_control_growth_add = 0.1 + development_growth = 0.5 +} + +ep3_governor_yearly_8150_placated_modifier = { + icon = county_modifier_opinion_positive + county_opinion_add = 25 +} + +ep3_governor_yearly_8150_insulted_modifier = { + icon = county_modifier_opinion_negative + county_opinion_add = -50 + tax_mult = -0.1 +} + +ep3_governor_yearly_8150_concession_modifier = { + icon = county_modifier_opinion_mixed + county_opinion_add = 25 + tax_mult = -0.1 + levy_size = -0.1 +} + +ep3_governor_yearly_8150_crackdown_modifier = { + icon = county_modifier_opinion_mixed + county_opinion_add = 25 + development_growth_factor = -0.2 +} + +ep3_governor_yearly_8150_minority_crackdown_modifier = { + icon = county_modifier_opinion_mixed + minority_opinion = -20 + dread_baseline_add = 20 + levy_toughness = -5 +} + +ep3_governor_yearly_8150_peasant_crackdown_modifier = { + icon = county_modifier_opinion_mixed + dread_baseline_add = 20 + levy_toughness = -5 + levy_reinforcement_rate_even_if_baron = -0.2 +} + +pandidakterion_university_modifier = { + icon = byzantine_eagle_positive + development_growth_factor = 0.15 +} + +grain_providers_county_modifier = { + icon = economy_positive + tax_mult = 0.2 +} + +panem_et_circenses_county_modifier = { + icon = treat_positive + county_opinion_add = 10 + development_growth_factor = 0.05 + epidemic_resistance = 3 + + scale = { + value = number_of_granaries_in_egypt_value + desc = MODIFIER_DEFINITION_VALUE_PER_EGYPT_GRANARY + display_mode = scaled + } +} + +improve_de_jure_integration_modifier = { + icon = diplomacy_positive +} + +improve_promote_culture_modifier = { + icon = stewardship_positive +} + +# Province modifiers +ep3_leviathan_loose_province_modifier = { + icon = beast_negative + coastal_sea_travel_danger = 20 +} + +ep3_leviathan_mandate_province_modifier = { + icon = beast_negative + coastal_sea_travel_danger = 10 +} + +ep3_governor_yearly_8070_ignore_modifier = { + icon = stewardship_mixed + stewardship = -2 + stress_gain_mult = -0.2 +} + +ep3_imperial_tombs_violated_province_modifier = { + icon = byzantine_crown_mixed + monthly_income = 0.1 + build_speed = 0.2 +} + +# Travel modifiers +ep3_guides_and_guards_modifier = { + icon = compass_positive + travel_safety = 10 + travel_speed = 5 +} + +ep3_lay_of_the_land_modifier = { + icon = compass_positive + travel_speed = 5 +} + +########################################################### +# Schemes Modifiers + +scheme_slandered_modifier = { + icon = influence_negative +} + +scheme_promoted_modifier = { + icon = influence_positive +} + +admin_emperor_scheme_modifier = { + icon = intrigue_positive + scheme_success_chance_max = 20 + scheme_success_chance_growth = 2 + scheme_phase_duration = -10 + scheme_secrecy = 10 +} + +admin_dominant_family_scheme_modifier = { + icon = intrigue_positive + scheme_success_chance_max = 25 + scheme_success_chance_growth = 3 + scheme_phase_duration = -15 + scheme_secrecy = 15 +} + +admin_powerful_family_scheme_modifier = { + icon = intrigue_positive + scheme_success_chance_max = 10 + scheme_success_chance_growth = 1 + scheme_phase_duration = -5 + scheme_secrecy = 5 +} + +admin_target_emperor_scheme_modifier = { + icon = intrigue_negative + scheme_success_chance_max = -15 + scheme_phase_duration = 10 + scheme_secrecy = -10 +} +admin_target_dominant_family_scheme_modifier = { + icon = intrigue_negative + scheme_success_chance_max = -20 + scheme_phase_duration = 15 + scheme_secrecy = -15 +} +admin_target_powerful_family_scheme_modifier = { + icon = intrigue_negative + scheme_success_chance_max = -10 + scheme_phase_duration = 5 + scheme_secrecy = -5 +} + +hostile_schemes_distracted_modifier = { + icon = intrigue_negative + intrigue = -1 +} + +personal_schemes_distracted_modifier = { + icon = intrigue_negative + diplomacy = -1 +} + +political_schemes_distracted_modifier = { + icon = intrigue_negative + monthly_influence_mult = -0.1 +} + +estate_supporting_buildings_modifier = { + icon = goods_positive + domicile_build_speed = -0.1 + + scale = { + value = { + value = 0 + every_in_list = { + variable = supporting_building + add = 1 + } + min = 1 + } + desc = MODIFIER_DEFINITION_VALUE_PER_SUPPORTER + display_mode = scaled + } +} + + +########################################################### +# CHARIOT RACE +emperor_chariot_race_speech_appeasing_populace_modifier = { + icon = county_modifier_opinion_mixed + county_opinion_add = 30 + tax_mult = -0.2 + monthly_county_control_growth_factor = 0.25 +} + +emperor_chariot_race_war_speech_modifier = { + icon = martial_positive + monthly_war_income_mult = 0.1 + levy_reinforcement_rate = 0.25 + levy_size = 0.1 +} + +emperor_chariot_race_legend_speech_modifier = { + icon = legend_positive + owned_legend_spread_mult = 0.2 + influence_level_impact_mult = 0.2 +} + +emperor_chariot_race_speech_neutral_county_modifier = { + icon = county_modifier_opinion_positive + county_opinion_add = 20 +} + +soused_at_the_races_modifier = { + icon = stress_mixed + stress_loss_mult = 0.5 + stress_gain_mult = -0.5 + monthly_influence_mult = -0.75 +} + +mercantile_contacts_modifier = { + icon = county_modifier_development_positive + tax_mult = 0.2 + build_gold_cost = -0.1 + build_speed = -0.1 +} + +powerful_loyal_deme_modifier = { + icon = county_modifier_opinion_positive + county_opinion_add = 15 +} + +sizable_loyal_deme_modifier = { + icon = county_modifier_opinion_positive + county_opinion_add = 10 +} + +flourishing_local_deme_modifier = { + icon = county_modifier_development_mixed + county_opinion_add = 10 + development_growth_factor = medium_development_growth_gain + monthly_county_control_growth_factor = -0.2 +} + +chariot_race_blues_statue_county_modifier = { + icon = county_modifier_development_positive + county_opinion_add = 10 + monthly_county_control_growth_add = 0.15 +} +chariot_race_greens_statue_county_modifier = { + icon = county_modifier_development_positive + county_opinion_add = 10 + monthly_county_control_growth_add = 0.15 +} +chariot_race_whites_statue_county_modifier = { + icon = county_modifier_development_positive + county_opinion_add = 10 + monthly_county_control_growth_add = 0.15 +} +chariot_race_reds_statue_county_modifier = { + icon = county_modifier_development_positive + county_opinion_add = 10 + monthly_county_control_growth_add = 0.15 +} +calmed_after_charioteer_died_spectator = { + icon = county_modifier_opinion_negative + county_opinion_add = -20 +} + +restored_greek_theme_modifier = { + icon = signet_ring_positive + stewardship = 1 + county_opinion_add = 15 +} + +brutal_castration_modifier = { + icon = health_negative + health = -0.75 + stress_gain_mult = 0.2 +} + +ravaged_by_greek_fire_modifier = { + icon = flame_negative + advantage = -2 + coastal_advantage = -3 + embarkation_cost_mult = 3 +} + +defenders_immolated_modifier = { + icon = flame_negative + fort_level = -3 + garrison_size = -0.5 + county_opinion_add = -20 +} + +defensive_fire_dromons_modifier = { + icon = flame_mixed + fort_level = 1 + county_opinion_add = 5 + tax_mult = -0.05 +} + +assaulted_by_greek_fire_modifier = { + icon = flame_negative + advantage = -1 + coastal_advantage = -2 + embarkation_cost_mult = 1.5 +} + +noble_administrators_modifier = { + icon = byzantine_eagle_positive + monthly_influence_mult = 0.1 +} + +#Dynasty - House +retaken_eastern_provinces_modifier = { + icon = byzantine_eagle_positive + monthly_influence_mult = 0.2 +} + +ep3_unlocked_silk = { + icon = byzantine_eagle_positive +} + +# Admin Eunuch + +admin_eunuch_liege_1_modifier = { + icon = social_negative + stewardship = -3 + tax_mult = -0.15 + enemy_hostile_scheme_success_chance_add = 15 +} + +admin_eunuch_liege_2_modifier = { + icon = social_negative + stewardship = -2 + tax_mult = -0.10 + enemy_hostile_scheme_success_chance_add = 10 +} + +admin_eunuch_liege_3_modifier = { + icon = social_negative + stewardship = -1 + tax_mult = -0.05 + enemy_hostile_scheme_success_chance_add = 5 +} + +admin_eunuch_liege_4_modifier = { + icon = stewardship_mixed + stewardship = 2 + stress_gain_mult = -0.1 + intrigue = -1 +} + +admin_eunuch_liege_5_modifier = { + icon = stewardship_mixed + stewardship = 3 + domain_limit = 1 + stress_gain_mult = -0.2 + vassal_opinion = -10 + intrigue = -2 + +} + +admin_eunuch_liege_6_modifier = { + icon = stewardship_mixed + stewardship = 4 + domain_limit = 1 + stress_gain_mult = -0.3 + vassal_opinion = -15 + intrigue = -3 +} + +admin_eunuch_liege_7_modifier = { + icon = stewardship_mixed + stewardship = 5 + domain_limit = 1 + stress_gain_mult = -0.4 + vassal_opinion = -20 + intrigue = -4 +} + +admin_eunuch_liege_8_modifier = { + icon = stewardship_mixed + stewardship = 6 + domain_limit = 2 + stress_gain_mult = -0.5 + vassal_opinion = -25 + intrigue = -5 +} + +admin_eunuch_eunuch_1_modifier = { + icon = social_negative + opinion_of_liege = -45 +} + +admin_eunuch_eunuch_2_modifier = { + icon = social_negative + opinion_of_liege = -30 +} + +admin_eunuch_eunuch_3_modifier = { + icon = social_negative + opinion_of_liege = -15 +} + +admin_eunuch_eunuch_4_modifier = { + icon = intrigue_mixed + intrigue = 2 + monthly_influence = 0.1 + monthly_income = 0.25 + stress_gain_mult = 0.1 +} + +admin_eunuch_eunuch_5_modifier = { + icon = intrigue_mixed + intrigue = 3 + monthly_influence = 0.2 + owned_hostile_scheme_success_chance_add = 5 + monthly_income = 0.5 + max_hostile_schemes_add = 1 + general_opinion = -10 + stress_gain_mult = 0.2 +} + +admin_eunuch_eunuch_6_modifier = { + icon = intrigue_mixed + intrigue = 4 + monthly_influence = 0.3 + owned_hostile_scheme_success_chance_add = 10 + monthly_income = 0.75 + max_hostile_schemes_add = 1 + general_opinion = -15 + stress_gain_mult = 0.3 + +} + +admin_eunuch_eunuch_7_modifier = { + icon = intrigue_mixed + intrigue = 5 + monthly_influence = 0.4 + owned_hostile_scheme_success_chance_add = 15 + monthly_income = 1 + max_hostile_schemes_add = 1 + general_opinion = -20 + stress_gain_mult = 0.4 +} + +admin_eunuch_eunuch_8_modifier = { + icon = intrigue_mixed + intrigue = 6 + monthly_influence = 0.5 + owned_hostile_scheme_success_chance_add = 25 + monthly_income = 1.5 + max_hostile_schemes_add = 2 + general_opinion = -25 + stress_gain_mult = 0.5 +} + +admin_eunuch_raise_taxes_modifier = { + icon = economy_mixed + tax_mult = 0.15 + county_opinion_add = -50 +} + +admin_eunuch_puppet_modifier = { + icon = social_positive + stewardship = 2 + monthly_influence = 1.0 +} + +ep3_consolidated_rule_modifier = { + icon = legitimacy_positive + legitimacy_gain_mult = 0.25 +} + +### GRAND AMBITIONS STORY CYCLE MODIFIERS + +# SCHEME MODIFIERS +scheme_grand_ambitions_modifier = { + icon = signet_ring_positive + scheme_secrecy = 40 + scheme_success_chance = 50 +} + +scheme_grand_ambitions_bribed_functionaries_modifier = { + icon = signet_ring_positive + scheme_success_chance = 10 +} + +scheme_grand_ambitions_bribed_merchants_modifier = { + icon = signet_ring_positive + scheme_phase_duration = -10 +} + +scheme_grand_ambitions_bribed_scribes_modifier = { + icon = signet_ring_positive + scheme_secrecy = 10 +} + +scheme_grand_ambitions_embezzling_modifier = { + icon = stewardship_positive + scheme_success_chance = 5 +} + +scheme_grand_ambitions_powerful_family_modifier = { + icon = signet_ring_positive + scheme_success_chance = 30 + scheme_secrecy = 30 +} + +ep3_grand_ambitions_cheaper_maa_modifier = { + icon = martial_mixed + men_at_arms_recruitment_cost = -0.3 + maa_damage_mult = 0.05 + monthly_county_control_growth_factor = -0.20 +} + +ep3_grand_ambitions_local_labor_modifier = { + icon = signet_ring_positive + domicile_build_speed = -0.2 + men_at_arms_recruitment_cost = -0.1 +} + +ep3_grand_ambitions_rioting_county_modifier = { + icon = byzantine_eagle_negative + county_opinion_add = -25 + monthly_county_control_decline_add = -5 +} + +ep3_grand_ambitions_hushed_rumors = { + icon = byzantine_eagle_mixed + county_opinion_add = -10 + monthly_county_control_decline_add = 1 +} + +### END GRAND AMBITIONS MODIFIERS + +prepared_for_daring_deeds_modifier = { + icon = martial_positive + mercenary_hire_cost_mult = -0.5 + supply_capacity_add = 200 + glory_hound_opinion = 20 +} + +eager_for_empire_modifier = { + icon = byzantine_eagle_positive + prowess = 2 + health = 0.5 + enemy_hostile_scheme_success_chance_add = -30 +} + +crippled_by_imperial_debt_modifier = { + icon = county_modifier_development_negative + development_decline = -1 + garrison_size = -0.5 + levy_size = -0.5 + tax_mult = -0.33 +} + +bent_before_crusaders_modifier = { + icon = byzantine_eagle_negative + glory_hound_opinion = -20 + parochial_opinion = -20 + county_opinion_add = -25 + monthly_prestige_gain_mult = -0.25 + levy_size = -0.2 +} + +grand_crusader_fleet_modifier = { + icon = compass_positive + embarkation_cost_mult = -0.7 + naval_movement_speed_mult = 0.33 +} + +ep3_agitated_populace = { + icon = county_modifier_opinion_negative + county_opinion_add = -25 +} + +ep3_religious_doubts = { + icon = county_modifier_opinion_negative + county_opinion_add = -25 +} + +ep3_gave_out_provisions = { + icon = county_modifier_opinion_negative + stacking = yes + county_opinion_add = -15 + supply_limit_mult = -0.2 +} + +laamp_decision_church_health_modifier = { + icon = treatment_positive + health = 0.1 + fertility = 0.1 + + scale = { + value = { + value = 0 + if = { + limit = { exists = var:1041_healer_aptitude } + if = { + limit = { var:1041_healer_aptitude = 5 } # 50% + add = 5 + } + else_if = { + limit = { var:1041_healer_aptitude >= 4 } # 40% + add = 4 + } + else_if = { + limit = { var:1041_healer_aptitude >= 3 } # 30% + add = 3 + } + else_if = { + limit = { var:1041_healer_aptitude >= 2 } # 20% + add = 2 + } + else = { add = 1 } # No change, 10% + } + } + desc = MODIFIER_DEFINITION_VALUE_PER_PHYSICIAN_APTITUDE + display_mode = scaled + } +} + +laamp_decision_church_health_partner_modifier = { + icon = treatment_positive + health = 0.1 + fertility = 0.1 + + scale = { + value = { + value = 0 + if = { + limit = { exists = var:1041_partner_healer_aptitude } + if = { + limit = { var:1041_partner_healer_aptitude = 5 } + add = 4.5 + } + else_if = { + limit = { var:1041_partner_healer_aptitude >= 4 } + add = 3.6 + } + else_if = { + limit = { var:1041_partner_healer_aptitude >= 3 } + add = 2.7 + } + else_if = { + limit = { var:1041_partner_healer_aptitude >= 2 } + add = 1.8 + } + else = { add = 0.9 } + } + } + desc = MODIFIER_DEFINITION_VALUE_PER_PHYSICIAN_APTITUDE + display_mode = scaled + } +} + +laamp_decision_church_blessing_stress_loss_modifier = { + icon = piety_positive + stress_loss_mult = 0.1 + monthly_piety = 2 + life_expectancy = 5 + + scale = { + value = { + value = 0 + if = { + limit = { piety_level >= max_piety_level } + add = 5 + } + else_if = { + limit = { piety_level >= very_high_piety_level } + add = 4 + } + else_if = { + limit = { piety_level >= high_piety_level } + add = 3 + } + else_if = { + limit = { piety_level >= medium_piety_level } + add = 2 + } + else = { add = 1 } + } + desc = MODIFIER_DEFINITION_VALUE_BASED_ON_PIETY_LEVEL + display_mode = scaled + } +} + +laamp_decision_church_blessing_stress_gain_modifier = { + icon = piety_positive + stress_gain_mult = -0.1 + monthly_piety = 2 + life_expectancy = 5 + + scale = { + value = { + value = 0 + if = { + limit = { piety_level >= max_piety_level } + add = 5 + } + else_if = { + limit = { piety_level >= very_high_piety_level } + add = 4 + } + else_if = { + limit = { piety_level >= high_piety_level } + add = 3 + } + else_if = { + limit = { piety_level >= medium_piety_level } + add = 2 + } + else = { add = 1 } + } + desc = MODIFIER_DEFINITION_VALUE_BASED_ON_PIETY_LEVEL + display_mode = scaled + } +} + +ep3_exploited_weak_master_modifier = { + icon = economy_mixed + domain_tax_mult = 0.05 + domicile_build_speed = -0.33 + county_opinion_add = -10 + monthly_county_control_growth_factor = -0.2 +} + +emperor_repented_for_flaws_modifier = { + icon = piety_positive + monthly_piety_gain_mult = 0.1 + zealot_opinion = 15 +} + +ep3_loyal_troops_raid_modifier = { + icon = martial_positive + men_at_arms_recruitment_cost = -0.1 + maa_toughness_add = 2 +} + +ep3_loyal_troops_2_raid_modifier = { + icon = martial_positive + men_at_arms_recruitment_cost = -0.15 + maa_toughness_add = 4 +} + +ep3_loyal_troops_3_raid_modifier = { + icon = martial_positive + men_at_arms_recruitment_cost = -0.2 + maa_toughness_add = 6 +} + +ep3_loyal_troops_4_raid_modifier = { + icon = martial_positive + men_at_arms_recruitment_cost = -0.3 + maa_toughness_add = 8 +} + +ep3_loyal_troops_5_raid_modifier = { + icon = martial_positive + men_at_arms_recruitment_cost = -0.4 + maa_toughness_add = 10 +} + +ep3_peaceful_administrator_modifier = { + icon = signet_ring_mixed + county_opinion_add = 10 + development_growth_factor = 0.25 + domain_tax_mult = 0.25 + levy_size = -0.25 + men_at_arms_maintenance = 0.25 +} + +independent_administrator_modifier = { + icon = stewardship_mixed + fort_level = 1 + vassal_tax_contribution_mult = 0.1 + domicile_build_speed = -0.1 + liege_opinion = -20 +} + +ep3_neglecting_house_head_duties_modifier = { + icon = influence_mixed + monthly_influence_mult = 0.2 + dynasty_house_opinion = -10 + liege_opinion = -5 + domicile_build_speed = 0.15 +} + +### RESTORE ROME MODIFIERS + +restore_rome_devastated_county_opinion_modifier = { + icon = county_modifier_opinion_negative + county_opinion_add = -75 +} + +restore_rome_lowered_county_opinion_modifier = { + icon = county_modifier_opinion_negative + county_opinion_add = -40 +} + +restore_rome_recuperated_county_opinion_modifier = { + icon = county_modifier_opinion_positive + county_opinion_add = 10 +} + +### END RESTORE ROME + +ep3_foraged_plants = { + icon = health_positive + health = 0.25 + negate_health_penalty_add = 0.25 +} + +ep3_tuition_paid = { + icon = prestige_positive + monthly_prestige_gain_mult = 0.15 + monthly_lifestyle_xp_gain_mult = 0.05 +} + +ep3_from_far_and_wide = { + icon = prestige_positive + monthly_prestige_gain_mult = 0.15 + different_culture_opinion = 15 + travel_danger = -4 +} + +ep3_refreshed_and_relaxed = { + icon = learning_positive + stress_gain_mult = -0.2 + learning = 1 +} + +ep3_pushed_too_hard = { + icon = health_negative + health = -0.15 + stress_gain_mult = 0.1 +} + +ep3_star_crossed_modifier = { + icon = magic_negative + courting_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value + stress_gain_mult = 0.05 +} + +ep3_reunited_modifier = { + icon = love_positive + stress_gain_mult = -0.05 + health = 0.1 + diplomacy = 1 +} + +ep3_famous_connections_modifier = { + icon = love_mixed + stress_gain_mult = 0.15 + intrigue = 1 + courtier_and_guest_opinion = 15 +} + +ep3_quality_control_modifier = { + icon = diplomacy_positive + monthly_prestige_gain_mult = 0.05 +} + +ep3_power_couple_modifier = { + icon = love_positive + health = 0.05 + stress_loss_per_prestige_level = 0.25 +} + +ep3_poets_salon_modifier = { + icon = camp_positive + tax_mult = 0.25 + development_growth_factor = 0.5 + county_opinion_add = 35 +} + +ep3_founded_salon_modifier = { + icon = letter_positive + monthly_prestige = 1 + monthly_lifestyle_xp_gain_mult = 0.25 + max_personal_schemes_add = 1 + monthly_income_mult = 0.02 +} + +ep3_friend_to_orphans = { + icon = family_positive + child_opinion = 45 + general_opinion = 5 +} + +ep3_healthy_orphanages_modifier = { + icon = county_modifier_opinion_positive + development_growth_factor = 0.1 + county_opinion_add = 25 +} + +ep3_tutoring_noblewoman_modifier = { + icon = learning_mixed + learning = -1 + diplomacy = -1 + independent_ruler_opinion = 15 +} + +ep3_focused_on_studies_modifier = { + icon = learning_positive + learning = 1 +} + +ep3_renounced_governorship = { + icon = intrigue_positive + intrigue = 3 + owned_hostile_scheme_success_chance_growth_add = 2 + owned_personal_scheme_success_chance_growth_add = 2 + owned_political_scheme_success_chance_growth_add = 2 + owned_scheme_secrecy_add = 10 +} + +ep3_renounced_governorship_merit = { + icon = learning_positive + monthly_learning_lifestyle_xp_gain_mult = 0.1 + confucian_education_xp_gain_mult = 0.25 + study_confucian_classics_scheme_phase_duration_add = -75 +} + +renounced_governorship_japan = { + icon = intrigue_positive + monthly_influence_mult = 0.15 + intrigue = 3 + owned_hostile_scheme_success_chance_growth_add = 2 + owned_personal_scheme_success_chance_growth_add = 2 + owned_political_scheme_success_chance_growth_add = 2 +} + +ep3_renounced_estate = { + icon = stress_positive + stress_loss_mult = 0.25 +} + +ep3_good_estate_modifier = { + icon = administrative_positive + monthly_income_mult = 0.1 + + scale = { + value = { + value = 0.1 + if = { + limit = { domicile ?= { has_domicile_building = estate_main_01 } } + add = 0.1 + } + else_if = { + limit = { domicile ?= { has_domicile_building = estate_main_02 } } + add = 0.2 + } + else_if = { + limit = { domicile ?= { has_domicile_building = estate_main_03 } } + add = 0.5 + } + else_if = { + limit = { domicile ?= { has_domicile_building = estate_main_04 } } + add = 1 + } + else_if = { + limit = { domicile ?= { has_domicile_building = estate_main_05 } } + add = 1.5 + } + min = 0.1 + } + desc = MODIFIER_DEFINITION_VALUE_PER_ESTATE_BUILDING + display_mode = scaled + } +} + +ep3_extra_security_modifier = { + icon = intrigue_positive + enemy_hostile_scheme_success_chance_add = -10 +} + +ep3_no_secrets_modifier = { + icon = intrigue_positive + owned_scheme_secrecy_add = 10 +} + +ep3_boost_efficiency_modifier = { + icon = administrative_positive + stacking = yes +} + +ep3_damage_efficiency_modifier = { + icon = administrative_negative + stacking = yes +} + +ep3_well_rested_modifier = { + icon = health_positive + health = 1 +} + +ep3_tunnel_investigation_modifier = { + icon = intrigue_positive + enemy_hostile_scheme_success_chance_add = -10 +} + +ep3_tunnel_prison_modifier = { + icon = dread_positive + dread_gain_mult = 0.5 +} + +ep3_tunnel_servants_modifier = { + icon = intrigue_positive + hostile_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value +} + +laamp_decision_exotic_story_diplomacy_gain_modifier = { + icon = diplomacy_positive + diplomacy = 1 + + scale = { + value = { + value = 0 + if = { + limit = { diplomacy < extremely_high_skill_rating } + add = 1 + } + if = { + limit = { diplomacy < very_high_skill_rating } + add = 1 + } + if = { + limit = { diplomacy < high_skill_rating } + add = 1 + } + if = { + limit = { diplomacy < medium_skill_rating } + add = 1 + } + if = { + limit = { diplomacy < average_skill_rating } + add = 1 + } + if = { + limit = { diplomacy < low_skill_rating } + add = 1 + } + } + } +} + +laamp_decision_exotic_story_martial_gain_modifier = { + icon = martial_positive + martial = 1 + + scale = { + value = { + value = 0 + if = { + limit = { martial < extremely_high_skill_rating } + add = 1 + } + if = { + limit = { martial < very_high_skill_rating } + add = 1 + } + if = { + limit = { martial < high_skill_rating } + add = 1 + } + if = { + limit = { martial < medium_skill_rating } + add = 1 + } + if = { + limit = { martial < average_skill_rating } + add = 1 + } + if = { + limit = { martial < low_skill_rating } + add = 1 + } + } + } +} + +laamp_decision_exotic_story_stewardship_gain_modifier = { + icon = stewardship_positive + stewardship = 1 + + scale = { + value = { + value = 0 + if = { + limit = { stewardship < extremely_high_skill_rating } + add = 1 + } + if = { + limit = { stewardship < very_high_skill_rating } + add = 1 + } + if = { + limit = { stewardship < high_skill_rating } + add = 1 + } + if = { + limit = { stewardship < medium_skill_rating } + add = 1 + } + if = { + limit = { stewardship < average_skill_rating } + add = 1 + } + if = { + limit = { stewardship < low_skill_rating } + add = 1 + } + } + } +} + +laamp_decision_exotic_story_intrigue_gain_modifier = { + icon = intrigue_positive + intrigue = 1 + + scale = { + value = { + value = 0 + if = { + limit = { intrigue < extremely_high_skill_rating } + add = 1 + } + if = { + limit = { intrigue < very_high_skill_rating } + add = 1 + } + if = { + limit = { intrigue < high_skill_rating } + add = 1 + } + if = { + limit = { intrigue < medium_skill_rating } + add = 1 + } + if = { + limit = { intrigue < average_skill_rating } + add = 1 + } + if = { + limit = { intrigue < low_skill_rating } + add = 1 + } + } + } +} + +laamp_decision_exotic_story_learning_gain_modifier = { + icon = learning_positive + learning = 1 + + scale = { + value = { + value = 0 + if = { + limit = { learning < extremely_high_skill_rating } + add = 1 + } + if = { + limit = { learning < very_high_skill_rating } + add = 1 + } + if = { + limit = { learning < high_skill_rating } + add = 1 + } + if = { + limit = { learning < medium_skill_rating } + add = 1 + } + if = { + limit = { learning < average_skill_rating } + add = 1 + } + if = { + limit = { learning < low_skill_rating } + add = 1 + } + } + } +} + +ep3_head_of_opposition_modifier = { + icon = intrigue_positive + glory_hound_opinion = 25 + monthly_prestige_gain_mult = 0.2 + hostile_scheme_phase_duration_add = -3 + maa_damage_mult = 0.2 + same_culture_mercenary_hire_cost_mult = -0.2 +} + +contented_governing_countrymen_modifier = { + icon = social_positive + same_culture_opinion = 10 +} + +ep3_face_of_empire_modifier = { + icon = martial_positive + men_at_arms_maintenance = -0.1 + revolting_siege_morale_loss_mult = 0.25 +} + +ep3_anxious_for_new_assignment_modifier = { + icon = administrative_mixed + monthly_county_control_growth_factor = -0.25 + monthly_influence_mult = 0.5 + intrigue_per_influence_level = 1 + diplomacy_per_influence_level = 1 + development_growth_factor = -0.25 + county_opinion_add = -10 +} + +ep3_invested_in_power_center_modifier = { + icon = administrative_positive + monthly_income = 0.2 +} + +ep3_cosmopolitan_domicile_modifier = { + icon = administrative_positive + domicile_build_gold_cost = -0.2 + domicile_build_speed = -0.2 +} + +ep3_ignoring_realm_decline_modifier = { + icon = administrative_mixed + stress_loss_mult = 0.25 + parochial_opinion = -20 + courtly_opinion = 20 +} + +ep3_supply_issues_modifier = { + icon = food_negative + provisions_loss_mult = 0.05 + courtier_and_guest_opinion = -10 +} + +ep3_priest_friend_same_modifier = { + icon = piety_positive + same_faith_opinion = 10 + clergy_opinion = 10 + monthly_piety_gain_mult = 0.1 +} + +ep3_priest_friend_different_modifier = { + icon = piety_mixed + same_faith_opinion = -10 + clergy_opinion = -10 + faith_conversion_piety_cost_mult = -0.25 + different_faith_opinion = 15 +} + +ep3_inflexible_worshipper_modifier = { + icon = piety_mixed + different_faith_opinion = -20 + zealot_opinion = 15 +} + +ep3_ungodly_hospitality_modifier = { + icon = piety_negative + same_faith_opinion = -5 + clergy_opinion = -5 + monthly_piety_gain_mult = -0.1 +} + +ep3_rested_and_refreshed_modifier = { + icon = health_positive + health = 0.25 + prowess = 1 + stress_gain_mult = -0.15 +} + +ep3_cricked_neck_modifier = { + icon = health_negative + health = -0.15 + prowess = -2 + stress_gain_mult = 0.05 +} + +ep3_friend_to_old_soldiers_modifier = { + icon = martial_positive + martial = 1 + monthly_prestige_gain_mult = 0.05 +} + +ep3_expanded_culinary_horizons_modifier = { + icon = food_positive + stress_gain_mult = -0.05 + provisions_gain_mult = 0.1 + provisions_capacity_mult = 0.25 +} + +ep3_new_tastes_modifier = { + icon = food_positive + stress_gain_mult = -0.1 + prowess = 1 +} + +ep3_new_tastes_cannibal_modifier = { + icon = food_mixed + stress_gain_mult = -0.75 + courtier_and_guest_opinion = -20 +} + +ep3_knight_of_the_swan_house_modifier = { + icon = bird_positive + monthly_prestige_gain_per_knight_mult = 0.01 + tourney_participant_xp_gain_mult = 0.2 + accolade_glory_gain_mult = 0.1 +} + +ep3_courteous_knight_modifier = { + icon = fertility_positive + attraction_opinion = 20 + courting_scheme_phase_duration_add = major_scheme_phase_duration_bonus_value +} + +ep3_valiant_knight_modifier = { + icon = county_modifier_opinion_positive + barons_and_minor_landholders_opinion = 20 + parochial_opinion = 5 + barons_and_minor_landholders_tax_contribution_mult = 0.1 + parochial_tax_contribution_mult = 0.05 +} + +ep3_black_sheep = { + icon = dread_mixed + dread_baseline_add = 10 + dread_gain_mult = 0.25 + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value +} + +ep3_estate_raided_modifier = { + icon = flame_negative + domicile_build_speed = 0.25 + domicile_monthly_gold_mult = -0.25 +} + +ep3_manor_raided_modifier = { # Same as above, different loc only + icon = flame_negative + domicile_build_speed = 0.25 + domicile_monthly_gold_mult = -0.25 +} + +ep3_comfortable_bed_modifier = { + icon = health_positive + health = 0.2 + stress_gain_mult = -0.1 + provisions_capacity_mult = 0.25 +} + +ep3_well_guided_modifier = { + icon = travel_positive + provisions_gain_mult = 0.1 + travel_danger = -5 + character_travel_safety_mult = 0.1 +} + +ep3_sketchy_guides_modifier = { + icon = travel_negative + travel_danger = 15 + character_travel_safety_mult = -0.1 +} +ep3_ingratiated_family_modifier = { + icon = influence_positive + monthly_influence_mult = 0.05 + stacking = yes +} +ep3_recently_mentored_governor = { + icon = administrative_positive + stewardship = 1 + monthly_influence_mult = 0.1 +} +ep3_lust_for_land_modifier = { + icon = prestige_positive + siege_phase_time = -0.1 + martial = 1 +} + +ep3_administrative_outsider_modifier = { + icon = administrative_negative + fellow_vassal_opinion = -15 + vassal_opinion = -15 + liege_opinion = -15 +} + +ep3_separatist_uprising = { + icon = martial_positive + siege_phase_time = -0.5 + maa_damage_mult = 0.1 +} + +ep3_master_todor_modifier = { + icon = prestige_positive + monthly_prestige = 0.5 +} + +strong_sow_discord_modifier = { + icon = county_modifier_opinion_negative + stacking = yes + county_opinion_add = -5 +} +normal_sow_discord_modifier = { + icon = county_modifier_opinion_negative + stacking = yes + county_opinion_add = -2 +} +weak_sow_discord_modifier = { + icon = county_modifier_opinion_negative + stacking = yes + county_opinion_add = -1 +} +ep3_chariot_race_strong_appeasement_modifier = { + icon = county_modifier_opinion_positive + stacking = yes + county_opinion_add = 10 +} +ep3_chariot_race_weak_appeasement_modifier = { + icon = county_modifier_opinion_positive + stacking = yes + county_opinion_add = 5 +} +united_political_agents_modifier = { + icon = intrigue_mixed + hostile_scheme_phase_duration_add = -5 + liege_opinion = -10 +} + +ep3_master_of_ceremonies = { + icon = camp_positive + stress_gain_mult = -0.15 + courtier_and_guest_opinion = 15 + monthly_prestige_gain_mult = 0.15 + provisions_gain_mult = 0.15 + domicile_build_speed = -0.15 +} + +ep3_uneasy_modifier = { + icon = stress_negative + stress_gain_mult = 0.05 + health = -0.05 +} + +ep3_sensible_provisions = { + icon = camp_mixed + provisions_capacity_mult = 0.1 + courtier_and_guest_opinion = -5 + stress_gain_mult = 0.05 +} + +ep3_life_of_the_party = { + icon = camp_positive + courtier_and_guest_opinion = 10 + stress_loss_mult = 0.15 +} + +ep3_warm_and_content = { + icon = camp_positive + stress_loss_mult = 0.2 + health = 0.25 +} + +ep3_foreign_affairs_modifier = { + icon = diplomacy_positive + diplomacy = 1 + provisions_capacity_mult = 0.15 + character_travel_speed_mult = 0.15 +} + +ep3_the_restful_modifier = { + icon = stress_mixed + stress_gain_mult = -0.2 + monthly_lifestyle_xp_gain_mult = -0.1 +} + +ep3_harried_modifier = { + icon = county_modifier_development_negative + development_decline = -0.25 +} + +#ep3_the_conqueror_modifier = { +# icon = signet_ring_mixed +# anglo_saxon_opinion = -45 +# county_opinion_add = -15 +# minority_different_culture_opinion = -30 +# monthly_county_control_growth_add = 0.5 +# monthly_dread = 0.2 +#} + +ep3_dangerous_fenland_modifier = { + icon = county_modifier_development_negative + travel_danger = 25 + monthly_county_control_decline_add = -0.5 + county_opinion_add = -5 +} + +ep3_plundered_modifier = { + icon = county_modifier_development_negative + tax_mult = -0.05 +} + +ep3_hereward_caution_modifier = { + icon = county_modifier_development_mixed + domicile_build_speed = 0.15 + domicile_build_gold_cost = -0.1 +} + +all_crops_burned = { + icon = county_modifier_development_negative + development_decline_factor = 0.2 + development_decline = -0.05 +} + +crops_burned = { + icon = county_modifier_development_negative + development_decline_factor = 0.1 +} + +crop_levy = { + icon = county_modifier_development_mixed + tax_mult = 0.1 + county_opinion_add = -10 +} + +ep3_gnr_guards_modifier = { + icon = county_modifier_development_positive + travel_danger = -15 + development_growth_factor = 0.1 + county_opinion_add = 5 + levy_reinforcement_rate = 0.2 +} + +ep3_gnr_modifier = { + icon = county_modifier_development_positive + travel_danger = -10 + development_growth_factor = 0.05 + levy_reinforcement_rate = 0.1 +} + +ep3_gnr_negative_modifier = { + icon = county_modifier_development_negative + travel_danger = 15 + levy_reinforcement_rate = -0.15 +} + +ep3_honourable_jailor_modifier = { + icon = prestige_positive + courtly_opinion = 15 + monthly_prestige_gain_mult = 0.1 + hostile_scheme_phase_duration_add = -1 +} + +ep3_resettled_village = { + icon = county_modifier_development_negative + development_decline = -1 + levy_size = -0.75 + supply_limit_mult = -0.75 + tax_mult = -0.1 +} + +ep3_population_boost = { + icon = county_modifier_development_mixed + development_growth = 0.1 + levy_size = 0.15 + supply_limit_mult = 0.15 + county_opinion_add = -5 +} + +ep3_smouldering_village = { + icon = flame_negative + development_growth = -0.1 + county_opinion_add = -10 + holding_build_speed = 0.25 +} + +ep3_church_bereft = { + icon = piety_negative + build_piety_cost = 0.25 + monthly_county_control_growth_add = -0.25 + tax_mult = -0.1 +} + +ep3_man_of_god = { + icon = piety_positive + monthly_piety_gain_mult = 0.15 + clergy_opinion = 15 + monthly_prestige_gain_mult = 0.1 +} + +ep3_missing_supplies = { + icon = martial_negative + levy_reinforcement_rate = -0.15 + levy_size = -0.15 + garrison_size = -0.25 +} + +ep3_redistributed_equipment = { + icon = martial_positive + men_at_arms_recruitment_cost = -0.5 + men_at_arms_maintenance = -0.5 +} + +ep3_stolen_equipment = { + icon = martial_positive + knight_effectiveness_mult = 0.25 + maa_damage_mult = 0.15 +} + +ep3_sabotaged_roads = { + icon = county_modifier_development_negative + travel_danger = 10 +} + +ep3_delayed_supplies = { + icon = martial_negative + levy_reinforcement_rate = -0.05 + levy_size = -0.05 + garrison_size = -0.15 +} + +ep3_defender_of_families = { + icon = prestige_positive + parochial_opinion = 20 + knight_effectiveness_mult = 0.1 + prowess_per_piety_level = 1 +} + +ep3_paid_grains = { + icon = county_modifier_development_positive + development_growth_factor = 0.1 + county_opinion_add = 20 + epidemic_resistance = 2 +} + +ep3_innovative_farming_techniques = { + icon = county_modifier_development_positive + tax_mult = 0.05 + development_growth_factor = 0.1 +} + +ep3_surplus_manpower = { + icon = county_modifier_development_positive + development_growth_factor = 0.15 + levy_size = 0.3 +} + +ep3_counties_restless_modifier = { + icon = county_modifier_opinion_negative + county_opinion_add = -20 + monthly_county_control_growth_add = -0.5 +} +ep3_requested_faith_support_modifier = { + icon = influence_positive + monthly_influence_mult = 0.2 +} + +ep3_murderers_loose = { + icon = county_modifier_opinion_negative + county_opinion_add = -25 + supply_limit_mult = -0.2 +} + +ep3_responsible_with_money = { + icon = stewardship_positive + stewardship = 1 + domicile_monthly_gold_mult = 0.1 +} + +ep3_standing_alone_modifier = { + icon = camp_positive + provisions_capacity_mult = 0.1 + provisions_gain_mult = 0.1 + domicile_build_speed = -0.1 + monthly_prestige_gain_per_knight_mult = 0.01 +} + +ep3_disgruntled_vassals_modifier = { + icon = county_modifier_opinion_mixed + hostile_scheme_phase_duration_add = -25 + vassal_opinion = -10 +} + +ep3_life_threatened_modifier = { + icon = stress_negative + stress_gain_mult = 0.2 + short_reign_duration_mult = 0.5 +} + +ep3_impassioned_populace_modifier = { + icon = stewardship_negative + tax_mult = -0.1 + development_growth_factor = -0.1 + county_opinion_add = -40 +} + +ep3_expanded_power_base_minor_modifier = { + icon = administrative_positive +} +ep3_expanded_power_base_medium_modifier = { + icon = administrative_positive +} +ep3_expanded_power_base_major_modifier = { + icon = administrative_positive +} + +egregious_trading_rights_modifier = { + icon = county_modifier_development_negative + development_growth_factor = -0.25 + tax_mult = -0.1 +} + +greek_spoils_imports_modifier = { + icon = county_modifier_development_positive + development_growth_factor = 0.75 + tax_mult = 0.25 +} + +ep3_harassed_at_sea_modifier = { + icon = compass_negative + embarkation_cost_mult = 1 + naval_movement_speed_mult = -0.5 +} + +ascendant_byz_reclaimant_ortho_modifier = { + icon = byzantine_eagle_positive + stacking = yes + legitimacy_gain_mult = 0.05 + same_faith_opinion = 5 + monthly_influence_mult = 0.05 + hostage_prestige_mult = 0.1 + development_growth_factor = 0.05 + court_grandeur_baseline_add = 5 +} + +ascendant_byz_reclaimant_modifier = { + icon = byzantine_eagle_positive + stacking = yes + legitimacy_gain_mult = 0.05 + monthly_influence_mult = 0.05 + hostage_prestige_mult = 0.05 + development_growth_factor = 0.05 + court_grandeur_baseline_add = 5 +} + +ep3_clumsy_rescuer_modifier = { + icon = intrigue_negative + intrigue = -1 + general_opinion = -5 +} + +ep3_under_suspicion_modifier = { + icon = intrigue_negative + intrigue = -1 + dynasty_opinion = -10 + stress_gain_mult = 0.1 +} + +#latin_emp_simp_modifier = { +# icon = byzantine_eagle_mixed +# vassal_opinion = -25 +# greek_opinion = 25 +# knight_effectiveness_mult = -0.25 +# maa_damage_mult = -0.25 +#} + +ep3_fireside_chat_modifier_1 = { + icon = camp_positive + martial = 1 + diplomacy = 1 + stewardship = 1 + intrigue = 1 + learning = 1 +} + +ep3_fireside_chat_modifier_2 = { + icon = camp_positive + martial = 2 + diplomacy = 2 + stewardship = 2 + intrigue = 2 + learning = 2 +} + +ep3_fireside_chat_modifier_3 = { + icon = camp_positive + martial = 3 + diplomacy = 3 + stewardship = 3 + intrigue = 3 + learning = 3 +} + +#ep3_culturally_greek_modifier = { +# icon = byzantine_eagle_positive +# greek_opinion = 20 +# different_culture_opinion = 10 +# learning = 1 +#} + +ep3_fireside_chat_stewardship = { + icon = stewardship_positive + stewardship = 3 +} + +ep3_fireside_chat_martial = { + icon = martial_positive + martial = 3 +} + +ep3_fireside_chat_learning = { + icon = learning_positive + learning = 3 +} + +ep3_fireside_chat_diplomacy = { + icon = stewardship_positive + diplomacy = 3 +} + +ep3_fireside_chat_intrigue = { + icon = intrigue_positive + intrigue = 3 +} + +ep3_camp_party_sad_lonesome = { + icon = stress_negative + stress_gain_mult = 0.1 + stress_loss_mult = -0.1 +} + +ep3_camp_party_shadows_in_the_dark = { + icon = stress_mixed + stress_gain_mult = 0.2 + stress_loss_mult = -0.2 + intrigue_per_stress_level = 1 +} + +camp_party_fortress_of_solitude = { + icon = stress_positive + stress_gain_mult = -0.2 + stress_loss_mult = 0.2 +} + +unflappable_boudoir_confidence_modifier = { + icon = fertility_mixed + fertility = 0.2 + attraction_opinion = 10 + glory_hound_opinion = 10 + courtly_opinion = -10 + parochial_opinion = -10 +} + +possessed_by_lust_demon_modifier = { + icon = fertility_positive + fertility = 0.1 +} diff --git a/common/on_action/army_on_actions.txt b/common/on_action/army_on_actions.txt index 5c64279f..55d1a9c2 100644 --- a/common/on_action/army_on_actions.txt +++ b/common/on_action/army_on_actions.txt @@ -279,91 +279,91 @@ on_county_occupied = { } } # Mongol Devastation - if = { - limit = { - # Check that it's relevant so we don't fire it *all* the time - OR = { - AND = { - exists = global_var:mongol_empire_has_spawned - NOT = { exists = global_var:mongol_story_has_ended } - any_owned_story = { - type = story_mongol_invasion - } - } - any_owned_story = { - type = story_greatest_of_khans - } - } - NOT = { exists = scope:county.var:looted_by_mongols } - } - # Each County should only be devastated once - scope:county = { - set_variable = { - name = looted_by_mongols - value = yes - years = 25 - } - } - # Send a message (and gold!) to the Mongol Emperor - send_interface_message = { - type = event_war_good - title = mongols_sieged_county.t - left_icon = scope:previous_controller - right_icon = scope:county - #Herd from nomad counties if nomadic - if = { - limit = { - scope:county = { - any_county_province = { - OR = { - has_holding_type = nomad_holding - has_holding_type = herder_holding - } - } - } - government_has_flag = government_is_nomadic - } - domicile = { - change_herd = miniscule_herd_gain - } - } - else = { - if = { - limit = { - scope:county.development_level >= 1 - } - add_gold = { - add = scope:county.development_level - multiply = 5 - } - } - } - if = { - limit = { - dread < 150 - } - add_dread = 2 - } - show_as_tooltip = { - scope:county = { - mongols_devastate_county_effect = yes - } - } - } - save_scope_as = mongol_emperor - # Send a message to the County's owner - scope:county.holder = { - send_interface_message = { - type = event_war_bad - title = mongols_sieged_county.t - left_icon = scope:mongol_emperor - right_icon = scope:county - scope:county = { - mongols_devastate_county_effect = yes - } - } - } - } +# if = { +# limit = { +# # Check that it's relevant so we don't fire it *all* the time +# OR = { +# AND = { +# exists = global_var:mongol_empire_has_spawned +# NOT = { exists = global_var:mongol_story_has_ended } +# any_owned_story = { +# type = story_mongol_invasion +# } +# } +# any_owned_story = { +# type = story_greatest_of_khans +# } +# } +# NOT = { exists = scope:county.var:looted_by_mongols } +# } +# # Each County should only be devastated once +# scope:county = { +# set_variable = { +# name = looted_by_mongols +# value = yes +# years = 25 +# } +# } +# # Send a message (and gold!) to the Mongol Emperor +# send_interface_message = { +# type = event_war_good +# title = mongols_sieged_county.t +# left_icon = scope:previous_controller +# right_icon = scope:county +# #Herd from nomad counties if nomadic +# if = { +# limit = { +# scope:county = { +# any_county_province = { +# OR = { +# has_holding_type = nomad_holding +# has_holding_type = herder_holding +# } +# } +# } +# government_has_flag = government_is_nomadic +# } +# domicile = { +# change_herd = miniscule_herd_gain +# } +# } +# else = { +# if = { +# limit = { +# scope:county.development_level >= 1 +# } +# add_gold = { +# add = scope:county.development_level +# multiply = 5 +# } +# } +# } +# if = { +# limit = { +# dread < 150 +# } +# add_dread = 2 +# } +# show_as_tooltip = { +# scope:county = { +# mongols_devastate_county_effect = yes +# } +# } +# } +# save_scope_as = mongol_emperor +# # Send a message to the County's owner +# scope:county.holder = { +# send_interface_message = { +# type = event_war_bad +# title = mongols_sieged_county.t +# left_icon = scope:mongol_emperor +# right_icon = scope:county +# scope:county = { +# mongols_devastate_county_effect = yes +# } +# } +# } +# } # Admin house power bonus for getting influence if = { limit = { @@ -789,7 +789,7 @@ on_raid_action_completion = { raiding.0013 # Chance to kidnap prisoners raiding.0014 # Chance to steal an artifact bp2_yearly.8031 # Steal a doll - raiding.0031 # Hereward adds XP +# raiding.0031 # Hereward adds XP raiding.0040 # Raid Intent Effects } effect = { diff --git a/common/on_action/dlc/ep3/el_cid_story_cycle_on_action.txt b/common/on_action/dlc/ep3/el_cid_story_cycle_on_action.txt new file mode 100644 index 00000000..8b78f3b3 --- /dev/null +++ b/common/on_action/dlc/ep3/el_cid_story_cycle_on_action.txt @@ -0,0 +1,34 @@ +###################################################### +#### +#### El Cid Story Cycle On-Actions +#### +#### el_cid_landless_on_action +#### el_cid_landless_or_landed_on_action +#### +###################################################### +# +## Landless +#el_cid_landless_on_action = { +# random_events = { +# # No one opens the door to you +# 200 = cid.1000 +# # You have no money to pay your men +# 100 = cid.1010 +# # You have to leave your spouse/children behind +# 200 = cid.1020 +# } +#} +# +## Landless or Landed +#el_cid_landless_or_landed_on_action = { +# random_events = { +# # You have some money - send gift? +# 100 = cid.1030 +# # You pray for your liege +# 100 = cid.1040 +# # cid.2000 triggered from the combat on_action +# # cid.2001 triggered from the combat on_action +# # Your liege offers you a favourable marriage +# 250 = cid.2010 +# } +#} \ No newline at end of file diff --git a/common/on_action/dlc/ep3/harrying_of_the_north_on_action.txt b/common/on_action/dlc/ep3/harrying_of_the_north_on_action.txt new file mode 100644 index 00000000..0362db84 --- /dev/null +++ b/common/on_action/dlc/ep3/harrying_of_the_north_on_action.txt @@ -0,0 +1,42 @@ +##Events for William/Norman King of England +#ongoing_harrying_owner_events = { +# random_events = { +# chance_of_no_event = 90 +# delay = { days = { 60 90 } } +# +# 100 = ep3_story_cycle_harrying.1000 +# 100 = ep3_story_cycle_harrying.1005 +# 100 = ep3_story_cycle_harrying.1010 +# 100 = ep3_story_cycle_harrying.1015 +# } +#} +# +##Events for Anglo-Saxon lords in England +#ongoing_harrying_aetheling_events = { +# random_events = { +# chance_of_no_event = 90 +# delay = { days = { 60 90 } } +# +# 100 = ep3_story_cycle_harrying.2000 +# 100 = ep3_story_cycle_harrying.2005 +# 100 = ep3_story_cycle_harrying.2010 +# 100 = ep3_story_cycle_harrying.2015 +# } +#} +# +##Events specifically for Hereward the Wake +#ongoing_harrying_hereward_events = { +# random_events = { +# chance_of_no_event = 90 +# delay = { days = { 60 90 } } +# +# 100 = ep3_story_cycle_harrying.3000 +# 100 = ep3_story_cycle_harrying.3005 +# 100 = ep3_story_cycle_harrying.3010 +# 100 = ep3_story_cycle_harrying.3015 +# 100 = ep3_story_cycle_harrying.3020 +# 50 = ep3_story_cycle_harrying.3050 +# 100 = ep3_laamps.7001 +# } +#} +# \ No newline at end of file diff --git a/common/on_action/dlc/ep3/violet_poet_on_action.txt b/common/on_action/dlc/ep3/violet_poet_on_action.txt new file mode 100644 index 00000000..5b05e29c --- /dev/null +++ b/common/on_action/dlc/ep3/violet_poet_on_action.txt @@ -0,0 +1,18 @@ +##Events for Violet Poet +#ongoing_violet_poet_owner_events = { +# random_events = { +# chance_of_no_event = 50 +# delay = { days = { 40 80 } } +# +# 100 = ep3_story_cycle_violet_poet.1005% +# 100 = ep3_story_cycle_violet_poet.1010 +# 100 = ep3_story_cycle_violet_poet.1015 +# 100 = ep3_story_cycle_violet_poet.1020 +# 100 = ep3_story_cycle_violet_poet.1025 +# 100 = ep3_story_cycle_violet_poet.1030 +# +# #Ibn Zaydun chain +# 100 = ep3_story_cycle_violet_poet.2000 +# } +#} +# \ No newline at end of file diff --git a/common/on_action/fp2_on_actions.txt b/common/on_action/fp2_on_actions.txt new file mode 100644 index 00000000..30531c61 --- /dev/null +++ b/common/on_action/fp2_on_actions.txt @@ -0,0 +1,168 @@ +#fp2_lyonese_monk_events_cycle = { +# effect = { +# # Should things invalidate? +# if = { +# limit = { fp2_lyonese_monk_0000_valid_for_events_trigger = no } +# # Scope:acolyte has died or is no longer your courtier or vassal. +# if = { +# limit = { fp2_lyonese_monk_0000_out_of_realm_trigger = yes } +# trigger_event = fp2_lyonese_monk.0021 +# } +# # Your incarceration causes scope:acolyte to disappear - and the story along with HerHim. +# else_if = { +# limit = { fp2_lyonese_monk_0000_out_of_freedom_trigger = yes } +# trigger_event = fp2_lyonese_monk.0051 +# } +# # The destruction of the Papacy leaves little room in everyone's hearts for the minutiae of doctrine. +# else_if = { +# limit = { fp2_lyonese_monk_0000_out_of_popes_trigger = yes } +# trigger_event = fp2_lyonese_monk.0041 +# } +# # You or scope:acolyte are no longer the correct faith. +# else_if = { +# limit = { fp2_lyonese_monk_0000_out_of_faith_trigger = yes } +# trigger_event = fp2_lyonese_monk.0031 +# } +# } +# # If not, run the usual. +# else = { +# # Phase: Private Teachings +# ## Gateway event +# if = { +# limit = { scope:story.var:lm_phase_tally = 0 } +# trigger_event = fp2_lyonese_monk.0201 +# } +# ## Random events +# else_if = { +# limit = { +# scope:story.var:lm_phase_tally >= 1 +# scope:story.var:lm_phase_tally <= 3 +# } +# trigger_event = { on_action = fp2_lyonese_monk_events_phase_teachings_events } +# } +# ## Gateway event +# else_if = { +# limit = { scope:story.var:lm_phase_tally = 4 } +# trigger_event = fp2_lyonese_monk.0241 +# } +# # Phase: Public Controversy +# ## Gateway event +# else_if = { +# limit = { scope:story.var:lm_phase_tally = 5 } +# trigger_event = fp2_lyonese_monk.0401 +# } +# ## Random events +# else_if = { +# limit = { +# scope:story.var:lm_phase_tally >= 6 +# scope:story.var:lm_phase_tally <= 8 +# } +# trigger_event = { on_action = fp2_lyonese_monk_events_phase_controversy_events } +# } +# ## Gateway event +# else_if = { +# limit = { scope:story.var:lm_phase_tally = 9 } +# trigger_event = fp2_lyonese_monk.0441 +# } +# # Phase: Schism +# ## Gateway event +# else_if = { +# limit = { scope:story.var:lm_phase_tally = 10 } +# trigger_event = fp2_lyonese_monk.0601 +# } +# ## Random events +# else_if = { +# limit = { +# scope:story.var:lm_phase_tally >= 11 +# scope:story.var:lm_phase_tally <= 13 +# } +# trigger_event = { on_action = fp2_lyonese_monk_events_phase_schism_events } +# } +# ## Gateway event +# else = { trigger_event = fp2_lyonese_monk.0641 } +# } +# } +#} +# +#fp2_lyonese_monk_events_phase_teachings_events = { +# random_events = { +# 100 = fp2_lyonese_monk.0211 +# 100 = fp2_lyonese_monk.0221 +# 100 = fp2_lyonese_monk.0231 +# } +# fallback = fp2_lyonese_monk_events_cycle_no_valid_events_fallback +#} +# +#fp2_lyonese_monk_events_phase_controversy_events = { +# random_events = { +# 100 = fp2_lyonese_monk.0411 +# 100 = fp2_lyonese_monk.0421 +# 100 = fp2_lyonese_monk.0431 +# } +# fallback = fp2_lyonese_monk_events_cycle_no_valid_events_fallback +#} +# +#fp2_lyonese_monk_events_phase_schism_events = { +# random_events = { +# 100 = fp2_lyonese_monk.0611 +# 100 = fp2_lyonese_monk.0621 +# 100 = fp2_lyonese_monk.0631 +# } +# fallback = fp2_lyonese_monk_events_cycle_no_valid_events_fallback +#} +# +#fp2_lyonese_monk_events_cycle_no_valid_events_fallback = { +# effect = { +# # Should things invalidate? +# if = { +# limit = { fp2_lyonese_monk_0000_valid_for_events_trigger = no } +# # Scope:acolyte has died or is no longer your courtier or vassal. +# if = { +# limit = { fp2_lyonese_monk_0000_out_of_realm_trigger = yes } +# trigger_event = fp2_lyonese_monk.0021 +# } +# # Your incarceration causes scope:acolyte to disappear - and the story along with HerHim. +# else_if = { +# limit = { fp2_lyonese_monk_0000_out_of_freedom_trigger = yes } +# trigger_event = fp2_lyonese_monk.0051 +# } +# # The destruction of the Papacy leaves little room in everyone's hearts for the minutiae of doctrine. +# else_if = { +# limit = { fp2_lyonese_monk_0000_out_of_popes_trigger = yes } +# trigger_event = fp2_lyonese_monk.0041 +# } +# # You or scope:acolyte are no longer the correct faith. +# else_if = { +# limit = { fp2_lyonese_monk_0000_out_of_faith_trigger = yes } +# trigger_event = fp2_lyonese_monk.0031 +# } +# } +# # If not, run the usual. +# else = { +# # Increment the incident tally by 1 if we're not at a cap event. +# if = { +# limit = { +# NOR = { +# scope:story.var:lm_phase_tally = 0 +# scope:story.var:lm_phase_tally = 4 +# scope:story.var:lm_phase_tally = 5 +# scope:story.var:lm_phase_tally = 9 +# scope:story.var:lm_phase_tally = 10 +# } +# } +# scope:story = { +# change_variable = { +# name = lm_phase_tally +# add = 1 +# } +# } +# } +# # Run the cycle again. +# trigger_event = { +# on_action = fp2_lyonese_monk_events_cycle +# months = { 2 5 } +# } +# } +# } +#} +# \ No newline at end of file diff --git a/common/on_action/knight_on_actions.txt b/common/on_action/knight_on_actions.txt new file mode 100644 index 00000000..771b2c04 --- /dev/null +++ b/common/on_action/knight_on_actions.txt @@ -0,0 +1,74 @@ +# On actions for knight events, triggered automatically by the game + +# Called for commanders when combat ends +# root is the commander +# scope:combat_side is the side of combat the commander is on +# scope:victory is whether the commander's side won + +on_commander_combat_finished = { + trigger = { + scope:victory = no + } + + events = { + # DISABLED as how this is handled is undergoing a rework. + #commanders.0011 # Commander captured after combat. + } +} + +# called on every unique owner of an army on combat end +# root is the owning character +# scope:combat_side is the side of combat the commander is on +# scope:victory is whether the commander's side won +# commanders is a list of all commanders in the combat +# knights is a list of all knights in the combat +on_army_combat_finished = { + +} + +# Used for handling the Varangian guard +varangian_ongoing = { + trigger = { + has_character_flag = is_currently_varangian + } + effect = { + + #Verify if the character became landed: in that case, remove the flag + if = { + limit = { + is_ruler = yes + } + remove_character_flag = is_currently_varangian + } + else = { + #debug_log = "Fired the varangian_ongoing pulse" + #debug_log_scopes = yes + change_variable = { # NOTE: Will *not* be relevant to non-delayed trigger evaluations for the events below + name = years_as_varangian + add = 1 + } + trigger_event = { + on_action = varangian_ongoing + days = { 340 380 } + } + } + } + random_events = { + 500 = 0 +# 500 = varangian.1001 # Return home +# 100 = varangian.2001 # Become Best Friends with another Varangian +# 100 = varangian.2002 # Become Lover with another Varangian +# 100 = varangian.2003 # Become Friends with a local ruler +# 100 = varangian.2004 # Become Rival with a local ruler +# 300 = varangian.2005 # Marry Lover +# 100 = varangian.2008 # Get wounded +# 100 = varangian.2011 # Get local Lover +# 200 = varangian.2012 # Increase Prowess +# 200 = varangian.2013 # Increase Martial +# 200 = varangian.2014 # Increase Learning +# 200 = varangian.2015 # Increase Diplomacy +# 50 = varangian.2016 # Become Brave +# 50 = varangian.2017 # Become Ambitious +# 50 = varangian.2018 # Become Diligent + } +} diff --git a/common/on_action/province_on_actions.txt b/common/on_action/province_on_actions.txt new file mode 100644 index 00000000..ac51fd54 --- /dev/null +++ b/common/on_action/province_on_actions.txt @@ -0,0 +1,875 @@ +# root: The province in which the building was completed +# scope:character: The character that paid for the construction, if available +on_building_completed = { + effect = { + #save the county holder as the character in case the construction wasn't started through GUI or by the AI + if = { + limit = { + NOT = { exists = scope:character } + } + root.county.holder = { + save_scope_as = character + } + } + root = { + # Preservation tenet + if = { + limit = { + scope:character.faith = { has_doctrine_parameter = building_temples_gives_development } + OR = { + has_holding_type = church_holding + has_holding_type = temple_citadel_holding + } + NOT = { county = { has_variable = dev_gain_cooldown } } + } + scope:character = { + send_interface_toast = { + title = building_temples_gives_development_toast + left_icon = root + root.county = { + change_development_progress_with_overflow = minor_development_progress_gain + set_variable = { + name = dev_gain_cooldown + value = yes + days = 365 + } + } + } + } + } + + # Hard working Tradition + if = { + limit = { + culture = { has_cultural_parameter = development_gain_on_building_complete } + NOT = { county = { has_variable = dev_gain_cooldown } } + } + county = { + change_development_progress_with_overflow = 25 + set_variable = { + name = dev_gain_cooldown + value = yes + days = 365 + } + } + } + + # Metal crafting Tradition + if = { + limit = { + culture = { has_cultural_parameter = prestige_gain_on_building_complete_in_mountains } + OR = { + terrain = mountains + terrain = desert_mountains + } + } + scope:character = { + if = { + limit = { + is_alive = yes + } + add_prestige = medium_prestige_value + } + } + } + + # Yashima + if = { + limit = { + culture = { has_cultural_parameter = prestige_gain_on_building_complete_in_mountains_forest } + OR = { + terrain = mountains + terrain = forest + } + } + scope:character = { + if = { + limit = { + is_alive = yes + } + add_prestige = medium_prestige_value + } + } + } + + # Sacred Mountains Tradition + if = { + limit = { + scope:character.culture = { has_cultural_parameter = piety_gain_on_building_complete_in_mountains } + OR = { + terrain = mountains + terrain = desert_mountains + } + } + scope:character = { + if = { + limit = { + is_alive = yes + } + add_piety = minor_piety_value + } + } + } + + # Sacred Groves Tradition + if = { + limit = { + scope:character.culture = { has_cultural_parameter = piety_gain_on_building_complete_in_forest_taiga } + OR = { + terrain = forest + terrain = taiga + terrain = jungle + } + } + scope:character = { + if = { + limit = { + is_alive = yes + } + add_piety = minor_piety_value + } + } + } + + # FP2 Dynasty perk + if = { + limit = { + has_holding_type = city_holding + exists = scope:character.dynasty + scope:character.dynasty = { + has_dynasty_perk = fp2_urbanism_legacy_4 + } + } + county = { + holder = { + if = { + limit = { + is_alive = yes + } + send_interface_toast = { + type = event_toast_effect_good + title = prestige_gained_from_building_completion + left_icon = root.barony + add_prestige = medium_prestige_gain + } + } + } + #### Chance to add super guest! + # Set variables + random = { + chance = 10 + modifier = { + add = county.development_level + } + set_variable = { + name = number_prestigious_new_guests + value = 1 + } + if = { + limit = { county.development_level >= max_development_level } + + set_variable = { + name = holding_quality + value = 3 + } + } + else_if = { + limit = { county.development_level >= great_development_level } + set_variable = { + name = holding_quality + value = 3 + } + } + else_if = { + limit = { county.development_level >= good_development_level } + set_variable = { + name = holding_quality + value = 2 + } + } + else_if = { + limit = { county.development_level >= medium_development_level } + set_variable = { + name = holding_quality + value = 2 + } + } + else_if = { + limit = { county.development_level >= bad_development_level } + set_variable = { + name = holding_quality + value = 1 + } + } + else = { + set_variable = { + name = holding_quality + value = 1 + } + } + } + + holder = { + # Trigger the hidden event + if = { + limit = { + is_alive = yes + } + trigger_event = fp2_other_decisions.0001 + } + } + } + } + + # Struggle parameters + if = { + limit = { + has_holding_type = castle_holding + scope:character = { + any_character_struggle = { + involvement = involved + has_struggle_phase_parameter = completing_building_in_castle_gives_development + } + } + } + county = { change_development_progress_with_overflow = 10 } + } + + if = { + limit = { + has_holding_type = church_holding + scope:character = { + any_character_struggle = { + involvement = involved + has_struggle_phase_parameter = completing_building_in_temple_gives_piety + } + } + } + scope:character = { add_piety = medium_piety_gain } + } + + # Struggle catalysts + if = { + limit = { + has_holding_type = castle_holding + scope:character = { + any_character_struggle = { + involvement = involved + phase_has_catalyst = catalyst_new_building_in_castle + } + } + } + scope:character = { + every_character_struggle = { + involvement = involved + activate_struggle_catalyst = { + catalyst = catalyst_new_building_in_castle + character = scope:character + } + } + } + } + else_if = { + limit = { + has_holding_type = city_holding + scope:character = { + any_character_struggle = { + involvement = involved + phase_has_catalyst = catalyst_new_building_in_city + } + } + } + scope:character = { + every_character_struggle = { + involvement = involved + activate_struggle_catalyst = { + catalyst = catalyst_new_building_in_city + character = scope:character + } + } + } + } + else_if = { + limit = { + has_holding_type = church_holding + scope:character = { + any_character_struggle = { + involvement = involved + phase_has_catalyst = catalyst_new_building_in_temple + } + } + } + scope:character = { + every_character_struggle = { + involvement = involved + activate_struggle_catalyst = { + catalyst = catalyst_new_building_in_temple + character = scope:character + } + } + } + } + + if = { + limit = { + has_holding_type = church_holding + county.faith.religion = religion:islam_religion + scope:character = { + any_character_struggle = { + involvement = involved + phase_has_catalyst = catalyst_new_islamic_temple_construction + } + } + } + scope:character = { + every_character_struggle = { + involvement = involved + activate_struggle_catalyst = { + catalyst = catalyst_new_islamic_temple_construction + character = scope:character + } + } + } + } + + if = { + limit = { + scope:character = { + any_character_struggle = { + involvement = involved + phase_has_catalyst = catalyst_new_building_in_holdings + } + } + } + scope:character = { + every_character_struggle = { + involvement = involved + activate_struggle_catalyst = { + catalyst = catalyst_new_building_in_holdings + character = scope:character + } + } + } + } + + # Points of Interest + # Apply them here directly so they are more promptly added than monthly via the POI update + if = { + limit = { + has_special_building = no + } + } + else_if = { + limit = { + OR = { + has_building_with_flag = { flag = travel_point_of_interest_martial } + has_building_with_flag = { flag = travel_point_of_interest_martial_minor } + } + NOT = { has_travel_point_of_interest = poi_special_buildings_martial } + } + add_travel_point_of_interest = poi_special_buildings_martial + } + else_if = { + limit = { + has_building_with_flag = { flag = travel_point_of_interest_learning } + NOT = { has_travel_point_of_interest = poi_special_buildings_learning } + } + add_travel_point_of_interest = poi_special_buildings_learning + } + else_if = { + limit = { + has_building_with_flag = { flag = travel_point_of_interest_religious } + NOT = { has_travel_point_of_interest = poi_special_buildings_religious } + } + add_travel_point_of_interest = poi_special_buildings_religious + } + else_if = { + limit = { + has_building_with_flag = { flag = travel_point_of_interest_diplomatic } + NOT = { has_travel_point_of_interest = poi_special_buildings_diplomatic } + } + add_travel_point_of_interest = poi_special_buildings_diplomatic + } + else_if = { + limit = { + has_building_with_flag = { flag = travel_point_of_interest_wonder } + NOT = { has_travel_point_of_interest = poi_special_buildings_wonder } + } + add_travel_point_of_interest = poi_special_buildings_wonder + } + else_if = { + limit = { + has_building_with_flag = { flag = travel_point_of_interest_economic } + NOT = { has_travel_point_of_interest = poi_special_buildings_economic } + } + add_travel_point_of_interest = poi_special_buildings_economic + } + + # The Builder event chain + if = { + limit = { + has_variable = the_builder_holding + NOT = { has_variable = the_builder_finished } + } + var:the_builder_holding = { save_scope_as = holding_initiator } + #Did the Builder actually finish the holding, or was it cancelled? + scope:holding_initiator = { + if = { + limit = { + is_alive = yes + is_landed_or_landless_administrative = yes + is_available = yes + } + #Then remove the safeguard event that would clean up the Builder + if = { + limit = { has_variable = the_builder_holding_cancelled_safeguard } + remove_variable = the_builder_holding_cancelled_safeguard + } + #And trigger reward event + trigger_event = bp2_yearly.1071 + } + } + set_variable = { name = the_builder_finished } + } + # Every time the Builder builds in their holding... + if = { + limit = { + scope:character ?= { + OR = { + has_character_modifier = the_city_builder_modifier + has_character_modifier = the_castle_builder_modifier + has_character_modifier = the_temple_builder_modifier + } + } + } + county = { change_development_progress = minor_development_progress_gain } + if = { + limit = { + scope:character ?= { has_character_modifier = the_city_builder_modifier } + } + scope:character = { add_gold = minor_gold_value } + } + if = { + limit = { + scope:character ?= { has_character_modifier = the_castle_builder_modifier } + } + scope:character = { add_prestige = minor_prestige_gain } + } + if = { + limit = { + scope:character ?= { has_character_modifier = the_temple_builder_modifier } + } + scope:character = { add_piety = minor_piety_gain } + } + } + #end any landless adventurer's construction task contract + if = { + limit = { + any_player = { + any_character_active_contract = { + task_contract_type = laamp_construction_contract + task_contract_employer = scope:character + save_temporary_scope_as = construction_contract + } + } + } + scope:construction_contract = { + if = { + limit = { + task_contract_taker.capital_province.county = root.county + } + complete_task_contract = success_critical + } + else = { + complete_task_contract = failure_standard + } + } + } + + # Inspection - Has Holding Modifier + if = { + limit = { + has_province_modifier = inspection_empty_lands_domain_modifier + } + remove_province_modifier = inspection_empty_lands_domain_modifier + add_random_economic_building_effect = yes + } + else_if = { + limit = { + has_province_modifier = inspection_empty_lands_border_modifier + } + remove_province_modifier = inspection_empty_lands_border_modifier + add_random_fortification_building_effect = yes + } + + # Admin - Governors get rewards for constructing buildings in governed counties + if = { + limit = { + scope:character = { + OR = { + is_governor = yes + AND = { + min_appointment_tier = tier_county + is_governor_or_admin_count = yes + } + tgp_is_any_minister = yes + } + } + } + scope:character = { + send_interface_message = { + type = msg_governor_duties + title = msg_governor_duties_t + desc = admin_construction_completed_desc + right_icon = root.barony + + if = { + limit = { + government_allows = merit + } + change_merit = building_construction_merit_gain_value + if = { + limit = { + tgp_is_any_minister = yes + government_has_flag = government_has_influence + } + change_influence = estate_construction_influence_gain_value + } + } + else = { + change_influence = estate_construction_influence_gain_value + } + if = { + limit = { + building_construction_dynasty_prestige_gain_value > 0 + } + dynasty = { + add_dynasty_prestige = building_construction_dynasty_prestige_gain_value + } + } + increase_governance_effect = { VALUE = 4 } + } + } + } + +# # Harrying of the North - Pacification Gain +# if = { +# limit = { +# scope:character.culture = culture:norman +# has_global_variable = harrying_of_the_north +# exists = global_var:harrying_of_the_north.story_owner.var:pacification +# } +# global_var:harrying_of_the_north.story_owner = { +# change_variable = { +# name = pacification +# add = 2 +# } +# } +# } + + # Devaraja consecration event + if = { + limit = { + OR = { + has_building_with_flag = { flag = temple_citadel } + has_building_with_flag = { flag = temple } + has_building_with_flag = { flag = mandala_capital_building } + } + NOT = { has_variable = mandala_consecrated_walls } + scope:character = { + is_available_for_activity_trigger = yes + government_has_flag = government_is_mandala + has_mandala_aspect_trigger = yes + } + } + scope:character = { + trigger_event = devaraja.0005 + } + set_variable = { + name = mandala_consecrated_walls + years = 30 + } + } + + # Brewery counter + brewery_counter_effect = yes + + # Coronation Promise + if = { + limit = { + scope:character = root.province_owner.liege + scope:character = { has_character_modifier = coronation_vassal_building_modifier } + } + scope:character = { + send_interface_toast = { + title = coronation_vassal_building_tt + left_icon = root + add_prestige = medium_prestige_gain + } + } + } + } + + ##################### + # Mandala Government + ##################### + + scope:character = { + if = { + limit = { government_has_flag = government_is_mandala } + if = { + limit = { + exists = house + house = { has_house_aspiration_parameter = aspect_of_creation } + } + mandala_upgrade_creator_effect = yes + house = { + increment_variable_effect = { + VAR = num_buildings_built + VAL = 1 + } + } + } + } + } + + # Building Oath + scope:character = { + if = { + limit = { + is_alive = yes + has_variable = stewardship_oath_2_buildings + } + change_variable = { + name = stewardship_oath_2_buildings + add = 1 + } + add_to_variable_list = { + name = stewardship_oath_2_building_list + target = root + } + } + } + } +} + +# root: The province in which the building was started +# scope:character: The character that paid for the construction, if available +on_building_started = { + effect = { + #save the county holder as the character in case the construction wasn't started through GUI or by the AI + if = { + limit = { + NOT = { exists = scope:character } + } + root.county.holder = { + save_scope_as = character + } + } + if = { + limit = { + OR = { + has_construction_with_flag = temple + has_construction_with_flag = castle + has_construction_with_flag = city + } + any_player = { + has_government = landless_adventurer_government + in_diplomatic_range = scope:character + can_create_task_contract = { + type_name = laamp_construction_contract + employer = scope:character + } + save_temporary_scope_as = player_laamp + } + } + scope:player_laamp = { + create_task_contract = { + task_contract_employer = scope:character + task_contract_type = laamp_construction_contract + task_contract_tier = scope:character.task_contract_tier_value + location = scope:character.capital_province + save_scope_as = new_contract + } + scope:new_contract = { + set_variable = { + name = task_contract_employer + value = scope:character + } + set_variable = { + name = task_contract_destination + value = root + } + } + } + } + if = { + limit = { + has_province_modifier = travel_extra_building_resources_modifier + } + if = { + limit = { + has_variable = extra_building_resources + var:extra_building_resources > 1 + } + change_variable = { + name = extra_building_resources + subtract = 1 + } + remove_province_modifier = travel_extra_building_resources_modifier + add_province_modifier = travel_extra_building_resources_modifier + } + else = { + remove_province_modifier = travel_extra_building_resources_modifier + remove_variable = extra_building_resources + } + } + } +} + +# root: The province in which the building was cancelled +# scope:character: The character that paid for the construction, if available +on_building_cancelled = { + effect = {} +} + +# root: The holder of the province doing the razing +# province: The province in which the holding exists +on_holding_razed = { + effect = { + scope:province.county = { set_variable = was_razed } + send_interface_toast = { + title = province_razed_toast_title + left_icon = scope:province.barony + add_gold = { + value = minor_gold_value + add = scope:province.county.development_level + } + scope:province = { + if = { + limit = { + this = county.title_province + county.development_level >= 1 + } + county = { + change_development_progress_with_overflow = { + value = scope:province.county.development_level + multiply = 10 + multiply = -1 + } + } + } + if = { + limit = { + this = county.title_province + county = { + uses_county_fertility = yes + } + } + county = { + change_county_fertility = medium_county_fertility_level_gain + } + } + if = { + limit = { + has_university_building_trigger = yes + } + if = { + limit = { + has_building_or_higher = generic_university + } + remove_building = generic_university + } + else_if = { + limit = { + has_building_or_higher = al_azhar_university + } + remove_building = al_azhar_university + } + else_if = { + limit = { + has_building_or_higher = sankore_university + } + remove_building = sankore_university + } + else_if = { + limit = { + has_building_or_higher = siena_university + } + remove_building = siena_university + } + else_if = { + limit = { + has_building_or_higher = nalanda_university + } + remove_building = nalanda_university + } + else_if = { + limit = { + has_building_or_higher = house_of_wisdom_01 + } + remove_building = house_of_wisdom_01 + } + else_if = { + limit = { + has_building_or_higher = al_qarawiyyin_university_01 + } + remove_building = al_qarawiyyin_university_01 + } + else_if = { + limit = { + has_building_or_higher = somapura_university_01 + } + remove_building = somapura_university_01 + } + else_if = { + limit = { + has_building_or_higher = cluny_abbey_01 + } + remove_building = cluny_abbey_01 + } + } + } + } + } +} + +# root: The holder of the province doing the rebuilding +# province: The province in which the great building exists +on_great_building_rebuilt = { + effect = { + add_piety_experience = { + add = minor_piety_gain + multiply = piety_level + } + hidden_effect = { + if = { + limit = { has_character_modifier = mandala_rise_from_the_ashes_modifier } + remove_character_modifier = mandala_rise_from_the_ashes_modifier + } + if = { + limit = { + NOT = { has_character_flag = devaraja_flag } + has_mandala_aspect_trigger = yes + } + add_character_flag = devaraja_flag + } + } + add_character_modifier = { + modifier = mandala_rise_from_the_ashes_modifier + years = 10 + } + #Memory + create_character_memory = { type = rebuilt_mandala_temple_memory } + scope:new_memory ?= { + set_variable = { + name = mandala_capital_rebuilt_location + value = scope:province + } + if = { + limit = { exists = var:mandala_capital_rebuilt_location } + #To prevent 'unused except in loc' errors :catto: + } + } + } +} diff --git a/common/on_action/struggle_on_actions.txt b/common/on_action/struggle_on_actions.txt new file mode 100644 index 00000000..fc0e9c26 --- /dev/null +++ b/common/on_action/struggle_on_actions.txt @@ -0,0 +1,53 @@ +# root: is involved (or interloper) character +# Scope:struggle is the currently pulsing struggle. +yearly_struggle_playable_pulse = { + effect = { + } +} + +# root: is involved (or interloper) character +# Scope:struggle is the currently pulsing struggle. +five_year_struggle_playable_pulse = { + trigger = { + basic_is_valid_for_yearly_events_trigger = yes + OR = { + fp2_character_interloper_in_struggle_trigger = yes + fp2_character_involved_in_struggle_trigger = yes + } + } + on_actions = { + fp2_iberian_struggle_random_events + } +} + +fp2_iberian_struggle_random_events = { + trigger = { + alwasys = no +# fp2_character_involved_in_struggle_trigger = yes + } + random_events = { + chance_to_happen = 95 + 1 = 0 + +# 80 = fp2_struggle.1000 #Stoking the Fire +# 50 = fp2_struggle.1001 #War Widows +# 50 = fp2_struggle.1010 #Soul of Iron +# 45 = fp2_struggle.1020 #Death of a Councilman +# 70 = fp2_struggle.2001 #Desperate Villagers Seek New Lord +# #80 = fp2_struggle.2003 #Band of Lost Birds removed for FP3 +# 25 = fp2_struggle.2004 #The weights inside this event are a bit high, but since the event is struggle-exclusive it will probably not be an issue +# 70 = fp2_struggle.2006 #The Borders of Faith +# 70 = fp2_struggle.2007 #Castle Worthy of Iberia +# 5 = fp2_struggle.2009 #Catching Thieves of Myth +# 90 = fp2_struggle.3001 #The Price of War Not particularly struggle related, but making it only appear during the struggle makes it more unique and special +# 50 = fp2_struggle.3011 #Order of the Hatchet +# 25 = fp2_struggle.3021 #The Wrath of Heaven Usually the lower chance is because the effects are too great, in this case it is to ensure people don't think every other iberian had discovered han powder. + } +} + +fp2_iberian_struggle_starting_events = { + events = { +# neutral_struggle.0001 +# fp2_struggle.0003 + } +} diff --git a/common/on_action/title_on_actions.txt b/common/on_action/title_on_actions.txt index a41f9a9a..c3c4d0cd 100644 --- a/common/on_action/title_on_actions.txt +++ b/common/on_action/title_on_actions.txt @@ -3058,7 +3058,7 @@ on_title_gain_usurpation = { } } trigger_event = NEOW_dynamic_titles.0014 - } + } ###################################################### @@ -3080,18 +3080,8 @@ on_title_gain_usurpation = { } } scope:title = { - limit = { - is_nomad_title = no - tier = tier_county scope:title.title_province = { - NOR = { - has_holding_type = monotown_holding - has_holding_type = city_holding - } - } - } - scope:title.title_province = { - set_holding_type = city_holding + set_holding_type = city_holding } } } diff --git a/common/on_action/yearly_groups_on_actions.txt b/common/on_action/yearly_groups_on_actions.txt new file mode 100644 index 00000000..f3144f2b --- /dev/null +++ b/common/on_action/yearly_groups_on_actions.txt @@ -0,0 +1,425 @@ +fp1_yearly_events = { + trigger = { fp1_eligible_for_yearly_events_trigger = yes } + weight_multiplier = { + base = 1 + modifier = { # Reduces frequency for characters with non-matching cultures + factor = 0.33 + religion = religion:germanic_religion + + NOT = { + culture = { has_cultural_pillar = heritage_north_germanic } + } + } + modifier = { # Reduces frequency for having both sets of FP events valid + factor = 0.5 + OR = { + fp2_eligible_for_yearly_events_trigger = yes + fp3_eligible_for_yearly_events_trigger = yes + } + } + } + + random_events = { + chance_to_happen = 65 + 200 = 0 + + # Other Events +# 100 = varangian.0001 + 200 = trait_specific.9001 # Become Poet + + #FP1 Events + ## Shieldmaidens + 100 = fp1_shieldmaiden.0001 # A wrong-gender courtier wishes to fight for you. + 400 = fp1_shieldmaiden.0032 # Your shieldmaiden improves their skills. + ## General Yearlies + 200 = fp1_yearly.0001 # Escaped Thrall - A thrall leaves your court in the night. + 200 = fp1_yearly.0011 # Calls for Courtier to be Declared Nithing - Locals call for one of your courtiers to be exiled. + 200 = fp1_yearly.0021 # A Matter of Life and Death - Two knights fight to the death over nothing. + 200 = fp1_yearly.0031 # Tall Tales at the Table - A deceitful warrior is telling tall-tales at court. + 100 = fp1_yearly.0041 # Explorers from the South - An Islamic explorer stops by for a visit. + 200 = fp1_yearly.0051 # The Unquiet Dead - You are informed of a reputed-draugr. + 200 = fp1_yearly.0071 # In the Deep Places of the World - locals in your Scandi capital report a troll. + 200 = fp1_yearly.0091 # A Vessel fit for a Ruler - commissioning a personal longship. + 200 = fp1_yearly.0101 # A Game of Riddles - a courtier challenges you to a game of riddles. + 200 = fp1_yearly.0111 # Accursed - one of your courtiers is the victim of a nithing pole. + 200 = fp1_yearly.2000 # A Child wants to run away to marry their beloved + 300 = fp1_yearly.2100 # Two lovers duel for your love + 200 = fp1_yearly.2200 # Berserker rampages though court + 200 = fp1_yearly.2300 # Convince a group of soldiers to join you + 200 = fp1_yearly.2400 # Invest in something that'll aid in your hunts + 200 = fp1_yearly.2600 # Become a Berserker + ## Flavour Yearlies + 200 = fp1_yearly.0501 # Out for a Sail - you spot a ship in distress. + 200 = fp1_yearly.0511 # The Stench of Success - a courtier won't let an old trophy go. + 200 = fp1_yearly.0521 # Blood on the Snow - your child wishes to snowball fight. + 200 = fp1_yearly.0531 # [Dynasty] on Ice - your child wants to learn how to ice skate. + 200 = fp1_yearly.0541 # The Beast of [Capital] - your child is playing pranks on courtiers. + 200 = fp1_yearly.0551 # Fishy Business - a courtier won't stop eating rotten fish. + 200 = fp1_yearly.0561 # My Arm Against Yours - a knight challenges you to arm-wrestling. + 200 = fp1_yearly.0571 # Petty Vandalism - your child has vandalised a runestone. + 200 = fp1_yearly.0581 # When I Grow Up - your child wishes to be a shieldperson. + 200 = fp1_yearly.0591 # Raised Voices at the Thing - two of your counties are fighting at a regional thing. + 200 = fp1_yearly.0601 # The Hardest Part of Ruling - you're incredibly bored in a protracted thing session. + 200 = fp1_yearly.0611 # Leading by Example - one of your children hurts another whilst imitating you. + 200 = fp1_yearly.0641 # Worthy of the Ocean - your longships are in disrepair. + 200 = fp1_yearly.0651 # Leviathan - you spot a whale whilst sailing. + 200 = fp1_yearly.0661 # A Novel Challenge - a knight challenges you to skiing. + 200 = fp1_yearly.0671 # A Slippery Slope - your child wants to go sledding. + 200 = fp1_yearly.0681 # Why Can't I Come? - your child wants to come raiding. + 200 = fp1_yearly.0691 # Attempted Atonement - a knight has converted after raiding a reformed faith. + ## Special Yearlies + 50 = fp1_yearly.1001 # You notice a stranger has been hanging around the court. + 50 = fp1_yearly.1071 # Sparklingly Clean + 50 = fp1_yearly.1081 # An explorer of the Atlantic wishes to share their tales with you. + 5 = fp1_yearly.2500 # What's that deviant up to this time!? + 1000 = fp1_major_decisions.1001 # Canute & the Tide + ## Jomsvikings +# 500 = fp1_jomsvikings.0001 # FP1 - Jomsvikings offer a Retainer +# 500 = fp1_jomsvikings.0021 # FP1 - Jomsvikings send Event Troops +# 1000 = fp1_jomsvikings.0041 # FP1 - Jomsvikings move to execute a stain on the faith. + } +} + +fp2_yearly_events = { + trigger = { +# has_fp2_dlc_trigger = yes + always = no + # Most events are geographical in nature +# capital_province ?= { geographical_region = world_europe_west_iberia } + } + weight_multiplier = { + base = 1 + modifier = { # Reduces frequency for characters with non-matching cultures + factor = 0.33 + + NOT = { + culture = { has_cultural_pillar = heritage_iberian } + } + } + modifier = { # Reduces chance after recently having had an event from this pulse + factor = 0.2 + has_character_flag = recently_got_fp2_event + } + modifier = { # Reduces frequency for having both sets of FP events valid + factor = 0.5 + OR = { + fp1_eligible_for_yearly_events_trigger = yes + fp3_eligible_for_yearly_events_trigger = yes + } + } + } + + random_events = { + 200 = 0 + + # FP2 - Fate of Iberia Events +# 160 = fp2_yearly.1001 # Chess Two +# 10 = fp2_yearly.1002 # A Compromising Position +# 160 = fp2_yearly.1003 # Tilting at...Giants? +# 160 = fp2_yearly.1004 # The Hawk of Quraysh +# 160 = fp2_yearly.1005 # Lost Viking +# 80 = fp2_yearly.1006 # Viking Cheese? +# 180 = fp2_yearly.2020 # Horchata colonialism event +# 160 = fp2_yearly.4004 # The Wandering Master +# 160 = fp2_yearly.4005 # Establishing Enclaves +# 160 = fp2_yearly.4006 # God's Architect +# 160 = fp2_yearly.8000 # Burning the Vineyards +# 180 = fp2_yearly.8001 # Assembling the Cortes +# 160 = fp2_yearly.8002 # A Dietary Dilemma +# 160 = fp2_yearly.8003 # Flight of Fancy +# 160 = fp2_yearly.8004 # The Toledo School of Translation +# 160 = fp2_yearly.8005 # Under the Stone Pine +# 160 = fp2_yearly.8006 # Saqaliba Settlers +# 180 = fp2_struggle.1002 # Xenophilic Advancment +# 160 = fp2_struggle.1050 # Dreams of Destruction +# 150 = fp2_struggle.2000 # Disorderly Market +# 140 = fp2_struggle.2008 # Misdeeds of the Councillor +# 350 = fp2_struggle.2013 # The Secret to Freedom +# 130 = fp2_struggle.2015 # Letter on the Back +# 180 = fp2_yearly.2025 # Suffering from Success +# 150 = fp2_yearly.4001 # You fancy a little siesta +# 150 = fp2_yearly.4002 # A county is increasingly religiously intertwined +# 150 = fp2_yearly.4003 # The road to Santiago is under threat from bandits +# 150 = fp2_yearly.4007 # Finding a shell on the road to Santiago +# 150 = fp2_yearly.4008 # Folk stories around the fireside +# 300 = fp2_yearly.4009 # Visiting the Malato Tree +# 150 = fp2_yearly.4010 # Finding a Verraco +# 300 = fp2_yearly.3000 # Neighboring Muslims are growing rice, adopt the practice yourself? +# 100 = bell_special_yearly.1000 # The bell of Huesca yearly +# 150 = fp2_yearly.9000 # Thriving Jewish Community +# 150 = fp2_yearly.9001 # Suspect Conversos of secretly praciticing Judaism +# 150 = fp2_yearly.9002 # Jewish people come fleeing persecution from a nearby realm +# 150 = fp2_yearly.9005 # Toledan Nights +# 50 = fp2_yearly.9006 # Local bishop mad his church faces the wrong way + } + + effect = { + root = { + add_character_flag = { + flag = recently_got_fp2_event + days = 1095 # 3 years + } + } + } +} + +bp1_yearly_events = { # Disabled in yearly_on_actions + trigger = { + has_dlc_feature = friends_and_foes + OR = { + any_relation = { type = friend } + any_relation = { type = rival } + } + } + weight_multiplier = { + base = 1 + modifier = { # Increase frequency the more you fit the conditions + add = 0.25 + any_relation = { type = friend } + } + modifier = { # Increase frequency the more you fit the conditions + add = 0.25 + any_relation = { type = rival } + } + modifier = { # Increase frequency the more you fit the conditions + add = 0.25 + any_relation = { type = best_friend } + } + modifier = { # Increase frequency the more you fit the conditions + add = 0.25 + any_relation = { type = nemesis } + } + } + + random_events = { + 200 = 0 + + #BP1 Events + 100 = bp1_yearly.1000 # Best friend introduces you to a new hobby + 200 = bp1_yearly.1010 # A friend offers to mediate with your HoF who has excommunicated you + 500 = bp1_yearly.1020 # A friend visits you on your dying bed + 500 = bp1_yearly.1021 # You visit a friend on their dying bed + 500 = bp1_yearly.1030 # A rival visits you on your dying bed + 500 = bp1_yearly.1031 # You visit a rival on their dying bed + 100 = bp1_yearly.1040 # You make a new friend at the bathhouse + 50 = bp1_yearly.1050 # You make a new rival at the bathhouse + 100 = bp1_yearly.1060 # React to a superstitious friend + 150 = bp1_yearly.1061 # Make someone superstitious - hidden + 100 = bp1_yearly.1070 # Rival is superstitious - take advantage? + 100 = bp1_yearly.1080 # Married off relative writes home + 400 = bp1_yearly.1082 # Married off relative writes home to share a secret + 100 = bp1_yearly.2000 # Spoil your partner(s), learn a secret/hook followup + 400 = bp1_yearly.2010 # Two of your spouses/concubines are lovers! + 100 = bp1_yearly.2020 # A consort attempts to influence you into changing your heir + 100 = bp1_yearly.2030 # Mopey consort wants some guidance + 100 = bp1_yearly.2040 # Consort is upset with other consort + 100 = bp1_yearly.2050 # Friendly consorts wants to start a study circle + 200 = bp1_yearly.2060 # Friendly consorts want to tutor other consort's child + 100 = bp1_yearly.2070 # Childless older soulmate spouse ponders your relationship + 100 = bp1_yearly.3001 # Friend spots you some cash + 100 = bp1_yearly.3002 # You spot your friend some cash + 100 = bp1_yearly.3007 # Spouse's family member wants you to sponsor their inspiration + 100 = bp1_yearly.3100 # Your vassal/friend/family member offers you a skilled courtier + 20 = bp1_yearly.3101 # Friend offers to sell you a county you have a claim on + 100 = bp1_yearly.3201 # Fake feast invite from rival/nemesis + 100 = bp1_yearly.3300 # Remembering a pilgrimage + 200 = bp1_yearly.3301 # Remembering a pilgrimage w/ a friend + 100 = bp1_yearly.4000 # Reflect over a family memory + 100 = bp1_yearly.4010 # Spouse demands their child gets a better guardian + 100 = bp1_yearly.4020 # Friend writes poetry about a war memory + 250 = bp1_yearly.4030 # Rival nestles their way into marrying one of your vassals, turns them disloyal + 10 = bp1_yearly.4040 # Kindly grandmother won't stop feeding you snacks; suffer the consequences of overeating, or break her heart? + 50 = bp1_yearly.5301 # Your friend is concerned about your physique + 150 = bp1_yearly.5100 # Chadsplaining to a plain courtier + 150 = bp1_yearly.5701 # Your Friend's Spouse Is Keeping Them Away From You + 100 = bp1_yearly.5702 # You ask a friend for help with skill + 200 = bp1_yearly.5703 # Your lover/rival threatens you in bed + 100 = bp1_yearly.5704 # Your rival seems strangely... attractive? + 200 = bp1_yearly.5705 # Your friend tries to talk you out of a bad relationship + 100 = bp1_yearly.5706 # You sleep with your rival's offspring + 400 = bp1_yearly.5707 # Your rival catches you sleeping with their offspring + 100 = bp1_yearly.5708 # You empathise with a friend's faith + 100 = bp1_yearly.5709 # Tempers flare between you and your rival + 70 = bp1_yearly.5713 # Your lover asks for money + 100 = bp1_yearly.5715 # You and a friend argue about pronunciation + 100 = bp1_yearly.5716 # Your zealous wife burns books + 100 = bp1_yearly.5717 # Your rival and your friend get into a drunken brawl + 100 = bp1_yearly.5719 # Your disloyal vassal is trying to embezzle + 100 = bp1_yearly.5720 # You and your rival armwrestle + 200 = bp1_yearly.5722 # Your nemesis launches your pet out of a catapult + 100 = bp1_yearly.5725 # You search for Khutulun + 50 = bp1_yearly.5728 # Rival steals and burns one of your artifacts + 10 = bp1_yearly.5740 # Scrambling for Answers + 80 = bp1_yearly.5800 # You make a perfume + 125 = bp1_yearly.6000 # Attacked by Rival's Child / Family Feud + 100 = bp1_yearly.7000 # Go on a picnic + 100 = bp1_yearly.7001 # Go fishing + 10 = bp1_yearly.7002 # Throw chamberpot at rival + 25 = bp1_yearly.7003 # Orgy Tapestry + 100 = bp1_yearly.7004 # Friend offers to talk about bad memory + 100 = bp1_yearly.7010 # Loyalty test + 100 = bp1_yearly.7050 # Memory of a war + 100 = bp1_yearly.7051 # Memory of Battle + 100 = bp1_yearly.7052 # Telling a story of a memory + 100 = bp1_yearly.7053 # A memory of revenge + 100 = bp1_yearly.7054 # Forgetting a memory + 100 = bp1_yearly.7055 # Recording a memory + 100 = bp1_yearly.7056 # Intimidating someone + 150 = bp1_yearly.7057 # Yearning + 100 = bp1_yearly.7058 # Friend eats all your food + 100 = bp1_yearly.8000 # Claimant moving towards rivalry + 200 = bp1_yearly.8010 # Best friend offers you a negotiated alliance + 100 = bp1_yearly.8020 # Rival of your rival offers friendship + 100 = bp1_yearly.8040 # Friend with conflicting personality falls out with you + 100 = bp1_yearly.9001 # Bully/guardian destroys your favourite toy + 100 = bp1_yearly.9005 # You get revenge for your destroyed toy + 100 = bp1_yearly.9006 # Becoming friends over a common sin + 10 = bp1_yearly.9007 # You find a peasant who looks exactly like you + 50 = bp1_yearly.9016 # Uppity second-in-line wants the throne + 50 = bp1_yearly.9017 # Uppity child is insecure about culture + 200 = bp1_yearly.9018 # Illegitimate child feels excluded + 100 = bp1_yearly.9019 # Spouse proposes a gay threesome + 200 = bp1_yearly.9020 # Spouse wants to do something kinky + 100 = bp1_yearly.9021 # Rival spouse is good in the bedroom + 100 = bp1_yearly.9022 # Friend holds an intervention + 200 = bp1_yearly.9023 # You realise you don't speak the same language + 100 = bp1_yearly.9024 # A friend visits you while you're sick + 150 = bp1_yearly.9025 # You realise you hate your friend + 100 = bp1_yearly.9026 # You're haunted by an old friend who convinces you to make amends before you die + 100 = bp1_yearly.9040 # The ghost of your dead lover wants to have sex again + 100 = bp1_yearly.9042 # Your chaplain finds a dessert that looks like HealthGodName + 100 = bp1_yearly.9043 # Your chaplain admits to being a deviant and a cannibal who eats babies + 100 = bp1_yearly.9047 # Lover wants you to wear their hair + 100 = bp1_yearly.9048 # Nemesis wants to end your rivalry by wrestling + 100 = bp1_yearly.9050 # You and a friend share war stories + 20 = bp1_yearly.7100 # Excreta incident, gain Nemesis + + # Family Feud + 5 = bp1_house_feud.0001 # Consider starting feud against own rival's house + 5 = bp1_house_feud.0002 # Consider starting feud against house family member rivals + 5 = bp1_house_feud.0003 # Consider starting feud against house who killed close family + 5 = bp1_house_feud.0006 # Consider starting feud against house with competing claims + 5 = bp1_house_feud.0007 # Consider starting feud against house who imprisoned you a while + 5 = bp1_house_feud.0008 # Consider starting feud against house who imprisoned family a while + 5 = bp1_house_feud.0012 # Consider starting feud against house who cuckolded you + } +} + +fp3_yearly_events = { + trigger = { + has_fp3_dlc_trigger = yes + + # Most events are geographical in nature + capital_province = { geographical_region = world_persian_empire } + } + weight_multiplier = { + base = 1 + modifier = { # Reduces frequency for characters with non-matching cultures + factor = 0.33 + + NOR = { + culture = { has_cultural_pillar = heritage_iranian } + culture = { has_cultural_pillar = heritage_turkic } + culture = { has_cultural_pillar = heritage_mongolic } + culture = { has_cultural_pillar = heritage_arabic } + } + } + modifier = { # Reduces chance after recently having had an event from this pulse + factor = 0.2 + has_character_flag = recently_got_fp3_event + } + modifier = { # Reduces frequency for having other sets of FP events valid + factor = 0.5 + OR = { + fp1_eligible_for_yearly_events_trigger = yes + fp2_eligible_for_yearly_events_trigger = yes + } + } + } + + random_events = { + 200 = 0 + + # Frontier Events + 250 = fp3_yearly.8000 # Ghazi Gone Bad + 250 = fp3_yearly.8001 # Frontier Fortress Benefactor + 250 = fp3_yearly.8002 # Faith at the Frontier + 350 = fp3_yearly.8003 # Exotic Espand + 350 = fp3_yearly.8004 # The Frontier Beckons + 350 = fp3_yearly.8009 # Caliphal Concerns + 250 = fp3_yearly.8010 # Abode of War + 250 = fp3_yearly.8014 # Secrets of the Teapot + 250 = fp3_yearly.8016 # Forgotten Stones & Hyrcanian Havoc + 500 = fp3_yearly.8018 # Heavenly Horses + + # The Nomads Story Cycle + 100 = fp3_yearly.8888 #Grazing Grievances + + # Heritage Events + 250 = fp3_yearly.8019 # Refuge of Light + 250 = fp3_yearly.8020 # The Lady of the Land + 350 = fp3_yearly.8021 # An Acidic Accident + 500 = fp3_yearly.8024 # The Return to the Sky + 350 = fp3_yearly.8027 # Nine-Hundred Ninety Chapters of Gold + 250 = fp3_yearly.8033 # Frozen Delights + 550 = fp3_yearly.8034 # The Hephthalite Hoard + 250 = fp3_yearly.8035 # The Heart and the Creator + 250 = fp3_yearly.8036 # The City of the Mouthless + 500 = fp3_yearly.8037 # A Cure for Acedia (the Melancholia Chain) + + #FP3 - Extra Yearly Events + 150 = fp3_yearly.8045 #The Mysterious Bundle (the Buzina Chain) + + # Zoroastrian Events + 200 = fp3_yearly.8050 #The Fate of the Dead + 200 = fp3_yearly.8051 #The Purest Fire + + # Guardianship Events + 200 = childhood.2400 # Ward approaches guardian with theological doubts + + # Clan Events + 250 = fp3_clan.8000 # Usury against Unity + 250 = fp3_clan.8001 # Clan Quarrel + 250 = fp3_clan.8002 # Bonds of Faith + 250 = fp3_clan.8003 # The Power of a Name + 250 = fp3_clan.8004 # Bonds of Fear + 250 = fp3_clan.8005 # A Proper Position + 250 = fp3_clan.8006 # Small Spies + 125 = fp3_clan.3000 # Ravaged Tulips + + # Tax Collector / Clan Events + 250 = fp3_clan.1000 # Worth more than Gold? + 250 = fp3_clan.1010 # GetHerHis Cup Runneth Over + 250 = fp3_clan.1020 # Practical Learning + 250 = fp3_clan.1030 # Tax Dispute + 250 = fp3_clan.1040 # Mismanaged Land + + 250 = fp3_clan.8008 #Bleeding them Dry + 250 = fp3_clan.8009 #Popular with the People + 250 = fp3_clan.8010 #Competent Qadis / More Magistrates + 250 = fp3_clan.8011 #A Proper Paymaster + 250 = fp3_clan.8012 #Auspicious Avarice + 240 = fp3_clan.8013 #The Burden of Tax Farming + 250 = fp3_clan.8015 #Scandalous Scion + 250 = fp3_clan.8016 #Hammam Havoc + 250 = fp3_clan.8017 #A Questionable Position + + # Eren events + 250 = fp3_yearly.2000 # Daylight Censors + 250 = fp3_yearly.2001 # Public Intoxication + 100 = fp3_yearly.2011 # Maunds of Wheat for non-royal court users + 250 = fp3_yearly.2020 # Set the Scale, Vassal Version + 500 = fp3_yearly.2040 # Commander of the Faithful + 500 = false_conversion.2000 # A Moment of Weakness + 250 = fp3_scholarship.1000 # A Second Aryabhata + } + + effect = { + root = { + add_character_flag = { + flag = recently_got_fp3_event + days = 1095 + } + } + } +} diff --git a/common/script_values/06_ce1_legends_values.txt b/common/script_values/06_ce1_legends_values.txt new file mode 100644 index 00000000..2d4fc095 --- /dev/null +++ b/common/script_values/06_ce1_legends_values.txt @@ -0,0 +1,1541 @@ +###################### +# Legends +###################### + +#### SPREAD CHANCE ### +# Chance for an legend of this quality to spread to an adjacent province per month +# % from 0-100 inclusive +# root = potential province +# scope:legend = the legend + +### CONTROL VALUES ### +# These should be enough to change the balance of legends + +# legend seed drop chance + +legend_seed_chance_very_low = 5 +legend_seed_chance_low = 15 +legend_seed_chance_medium = 40 +legend_seed_chance_high = 75 + +# Spread + +legend_spread_chance_base = 0.5 + +legend_spread_increase_add_miniscule = 0.06 +legend_spread_increase_add_very_low = 0.12 +legend_spread_increase_add_low = 0.25 +legend_spread_increase_add_medium = 0.5 +legend_spread_increase_add_high = 1 +legend_spread_increase_add_very_high = 1.5 + +legend_spread_decrease_add_very_low = -0.12 +legend_spread_decrease_add_low = -0.25 +legend_spread_decrease_add_medium = -0.5 +legend_spread_decrease_add_high = -1 + +legend_spread_increase_mult_low = 0.25 +legend_spread_increase_mult_medium = 0.75 +legend_spread_increase_mult_high = 1.5 + +legend_spread_decrease_mult_low = -0.15 +legend_spread_decrease_mult_medium = -0.25 +legend_spread_decrease_mult_high = -0.5 +legend_spread_decrease_mult_unlikely = -0.99 + + + +spread_chance_legends_default_value = { + value = legend_spread_chance_base + + scope:legend = { + if = { + limit = { + legend_quality = illustrious + } + add = legend_spread_increase_add_low + } + else_if = { + limit = { + legend_quality = mythical + } + add = legend_spread_increase_add_medium + } + + #prestige levels + legend_owner = { + if = { + limit = { + prestige_level > 4 + } + add = legend_spread_increase_add_low + } + else_if = { + limit = { + prestige_level > 3 + } + add = legend_spread_increase_add_very_low + } + } + } + + #Buildings in which people gossip + if = { + limit = { + has_building_or_higher = common_tradeport_07 + } + add = legend_spread_increase_add_low + add = legend_spread_increase_add_low + add = legend_spread_increase_add_very_low + add = legend_spread_increase_add_miniscule + } + else_if = { + limit = { + has_building_or_higher = common_tradeport_05 + } + add = legend_spread_increase_add_low + add = legend_spread_increase_add_very_low + add = legend_spread_increase_add_miniscule + } + else_if = { + limit = { + has_building_or_higher = common_tradeport_03 + } + add = legend_spread_increase_add_very_low + add = legend_spread_increase_add_miniscule + } + else_if = { + limit = { + has_building_or_higher = common_tradeport_01 + } + add = legend_spread_increase_add_miniscule + } + + if = { + limit = { + has_building_or_higher = city_03 + } + add = legend_spread_increase_add_low + add = legend_spread_increase_add_miniscule + } + else_if = { + limit = { + has_building_or_higher = city_02 + } + add = legend_spread_increase_add_miniscule + } + + # This can be else_if because market villages and cities are exclusive and cannot be in the same province + else_if = { + limit = { + has_building_or_higher = market_villages_02 + } + add = legend_spread_increase_add_low + add = legend_spread_increase_add_miniscule + } + else_if = { + limit = { + has_building_or_higher = market_villages_01 + } + add = legend_spread_increase_add_miniscule + } + + # Legend type bonuses + + if = { + limit = { + has_building_or_higher = warrior_lodges_05 + scope:legend.legend_type = legend_type:heroic + } + add = legend_spread_increase_add_low + add = legend_spread_increase_add_low + } + else_if = { + limit = { + has_building_or_higher = warrior_lodges_03 + scope:legend.legend_type = legend_type:heroic + } + add = legend_spread_increase_add_low + } + + if = { + limit = { + faith = scope:legend.legend_owner.faith + scope:legend.legend_type = legend_type:holy + } + add = legend_spread_increase_add_very_low + } + else_if = { + limit = { + scope:legend.legend_type = legend_type:holy + faith = { + faith_hostility_level = { + target = scope:legend.legend_owner.faith + value >= faith_astray_level + } + } + } + add = legend_spread_decrease_add_medium + } + else_if = { + limit = { + scope:legend.legend_type = legend_type:holy + faith = { + faith_hostility_level = { + target = scope:legend.legend_owner.faith + value > faith_astray_level + } + } + } + add = legend_spread_decrease_add_high + } + + if = { + limit = { + scope:legend.legend_type = legend_type:legitimizing + county.holder = { + OR = { + dynasty = scope:legend.legend_owner.dynasty + top_liege.dynasty = scope:legend.legend_owner.dynasty + } + } + } + add = legend_spread_increase_add_very_low + } + else_if = { + limit = { + scope:legend.legend_type = legend_type:legitimizing + } + add = legend_spread_decrease_add_low + } + + + #Terrain + if = { + limit = { + OR = { + terrain = hills + terrain = drylands + terrain = forest + terrain = floodplains + terrain = wetlands + } + } + add = legend_spread_decrease_add_low + } + else_if = { + limit = { + OR = { + terrain = jungle + terrain = taiga + } + } + add = legend_spread_decrease_add_medium + } + else_if = { + limit = { + OR = { + terrain = desert + terrain = desert_mountains + terrain = mountains + } + } + add = legend_spread_decrease_add_high + } + #Island? + if = { + limit = { + geographical_region = divergence_island_regions + } + add = legend_spread_decrease_add_medium + } + + #Less patchy + if = { + limit = { + county = { + any_county_province = { + any_province_legend = { + this = scope:legend + } + } + } + } + add = legend_spread_increase_add_very_low + } + + + #Is this in your realm? + county.holder = { + if = { + limit = { this = scope:legend.legend_owner } + add = legend_spread_increase_add_very_high + } + else_if = { + limit = { promoted_legend ?= scope:legend } + add = legend_spread_increase_add_high + } + else_if = { + limit = { top_liege = scope:legend.legend_owner } + add = legend_spread_increase_add_medium + } + else_if = { + limit = { top_liege.promoted_legend ?= scope:legend } + add = legend_spread_increase_add_low + } + else = { + add = legend_spread_decrease_add_low + } + + #County holder opinion of legend owner + if = { + limit = { + has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:legend.legend_owner } + } + add = legend_spread_increase_add_medium + } + else_if = { + limit = { + has_relation_rival = scope:legend.legend_owner + } + add = legend_spread_decrease_add_high + } + else = { + add = legend_spread_decrease_add_low + } + } + + #Languages + + if = { + limit = { + culture = { has_same_culture_language = scope:legend.legend_owner.culture } + } + add = legend_spread_increase_add_low + } + else_if = { + limit = { + county.holder = { knows_language_of_culture = scope:legend.legend_owner.culture } + } + add = legend_spread_increase_add_very_low + } + else_if = { + limit = { + scope:legend.legend_owner = { + has_royal_court = yes + has_dlc_feature = royal_court + } + county.holder = { knows_court_language_of = scope:legend.legend_owner } + } + add = legend_spread_increase_add_very_low + } + else_if = { + limit = { + culture = { has_same_culture_heritage = scope:legend.legend_owner.culture } + } + add = legend_spread_increase_add_miniscule + } + else_if = { + limit = { + scope:legend.legend_owner = { + has_royal_court = yes + has_dlc_feature = royal_court + } + OR = { + county.holder.top_liege = { + has_royal_court = yes + has_same_court_language = scope:legend.legend_owner + } + county.holder = { + has_royal_court = yes + has_same_court_language = scope:legend.legend_owner + } + } + } + add = legend_spread_decrease_add_very_low + } + else_if = { + limit = { + culture = { + cultural_acceptance = { target = scope:legend.legend_owner.culture value > 40 } + } + } + add = legend_spread_decrease_add_low + } + else_if = { + limit = { + culture = { + cultural_acceptance = { target = scope:legend.legend_owner.culture value > 20 } + } + } + add = legend_spread_decrease_add_medium + } + + else = { + add = legend_spread_decrease_add_high + } + + #Coastal Statistics Squash + if = { + limit = { + OR = { + is_coastal = yes + is_riverside_province = yes + } + NOR = { + county = { + any_county_province = { + any_province_legend = { + this = scope:legend + } + } + } + culture = { has_same_culture_language = scope:legend.legend_owner.culture } + } + } + add = legend_spread_decrease_add_high + } +} + +spread_chance_legends_mult_value = { + #NO ADD AFTER THIS POINT + #NO ADD ONLY MULT + value = 1 + min = 0.001 + + #Coastal Statistics Squash + if = { + limit = { + OR = { + is_coastal = yes + is_riverside_province = yes + } + NOR = { + county = { + any_county_province = { + any_province_legend = { + this = scope:legend + } + } + } + } + } + add = legend_spread_decrease_mult_high + } + + county = { + #Is this in your realm? + holder = { + if = { + limit = { + this = scope:legend.legend_owner + } + add = legend_spread_increase_mult_medium + } + else_if = { + limit = { + OR = { + top_liege = scope:legend.legend_owner + promoted_legend ?= scope:legend + top_liege.promoted_legend ?= scope:legend + } + } + add = legend_spread_increase_mult_low + } + else = { + add = legend_spread_decrease_mult_medium + } + + #County holder and top liege opinion of legend owner + if = { + limit = { #slight mult increase for owner and promoter domain + OR = { + this = scope:legend.legend_owner + promoted_legend ?= scope:legend + } + } + add = legend_spread_increase_mult_medium + } + else_if = { + limit = { + OR = { + has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:legend.legend_owner } + top_liege = { has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:legend.legend_owner } } + } + } + add = legend_spread_increase_mult_low + } + else_if = { + limit = { + OR = { + has_relation_rival = scope:legend.legend_owner + top_liege = { has_relation_rival = scope:legend.legend_owner } + } + } + add = legend_spread_decrease_mult_high + } + else = { + add = legend_spread_decrease_mult_low + } + } + + #Cultural Traditions + culture = { + if = { + limit = { + OR = { + has_cultural_tradition = tradition_chanson_de_geste + has_cultural_tradition = tradition_fp1_northern_stories + has_cultural_tradition = tradition_storytellers + has_cultural_tradition = tradition_poetry + } + } + add = legend_spread_increase_mult_medium + } + else_if = { + limit = { + OR = { + has_cultural_tradition = tradition_esteemed_hospitality + has_cultural_tradition = tradition_horse_lords + has_cultural_tradition = tradition_caravaneers + has_cultural_tradition = tradition_seafaring + has_cultural_tradition = tradition_city_keepers + has_cultural_tradition = tradition_maritime_mercantilism + } + } + add = legend_spread_increase_mult_low + } + else_if = { + limit = { + OR = { + has_cultural_tradition = tradition_practiced_pirates + has_cultural_tradition = tradition_parochialism + } + } + add = legend_spread_increase_mult_low + } + } + + #Development + if = { + limit = { + development_level >= good_development_level + } + add = legend_spread_decrease_mult_medium + } + else_if = { + limit = { + development_level >= medium_development_level + } + add = legend_spread_decrease_mult_low + } + } + + # Game rules + if = { + limit = { + has_game_rule = legend_spread_chance_high + } + add = legend_spread_increase_mult_low + } + else_if = { + limit = { + has_game_rule = legend_spread_chance_very_high + } + add = legend_spread_increase_mult_medium + } + else_if = { + limit = { + has_game_rule = legend_spread_chance_low + } + add = legend_spread_decrease_mult_low + } + else_if = { + limit = { + has_game_rule = legend_spread_chance_very_low + } + add = legend_spread_decrease_mult_medium + } +} + +### GOLD COSTS ### + +legend_base_cost_value = { + value = 200 +} + +legend_base_cost = { + value = legend_base_cost_value + #Scale by tier + multiply = { + value = root.primary_title.tier + subtract = 1 + multiply = 0.5 + min = 1 + } + if = { + limit = { + root = { + government_has_flag = government_is_tribal + } + } + multiply = 0.8 + } + #Scale by era + add = { + value = legend_base_cost_value + multiply = legend_cost_scale_by_era + subtract = legend_base_cost_value + desc = legend_cost_scale_by_era_desc + } + #Legends Dynasty Track discounts + add = legend_cost_dynasty_discounts + + # Game rules + if = { + limit = { + has_game_rule = legend_cost_high + } + multiply = 2 + } + else_if = { + limit = { + has_game_rule = legend_cost_very_high + } + multiply = 4 + } + else_if = { + limit = { + has_game_rule = legend_cost_low + } + divide = 2 + } + else_if = { + limit = { + has_game_rule = legend_cost_very_low + } + divide = 4 + } +} + +legend_cost_scale_by_era = { + value = 0 + if = { + limit = { + exists = culture + } + culture ?= { + if = { + limit = { + has_cultural_era_or_later = culture_era_late_medieval + } + add = 1.6 + } + else_if = { + limit = { + has_cultural_era_or_later = culture_era_high_medieval + } + add = 1.4 + } + else_if = { + limit = { + has_cultural_era_or_later = culture_era_early_medieval + } + add = 1.2 + } + else = { + add = 1 + } + } + } +} + +legend_cost_dynasty_discounts = { + if = { + limit = { + dynasty ?= { + ce1_heroic_track_perks >= 4 + } + } + multiply = 0.75 + } + else_if = { + limit = { + dynasty ?= { + ce1_heroic_track_perks >= 3 + } + } + multiply = 0.85 + } +} + +legend_upgrade_cost = { + value = legend_base_cost #includes scaling by era, tier and game rules + multiply = 0.8 + if = { + limit = { + promoted_legend ?= { has_variable = legend_quality_progress } + } + subtract = { + #Legend costs until now + value = legend_base_cost + multiply = 0.6 + #We give you 50% discount max based on your progress + multiply = { + value = promoted_legend.var:legend_quality_progress + divide = 200 + } + } + } +} + +legend_era_cost = { + value = monthly_character_income + multiply = legend_cost_scale_by_era + subtract = monthly_character_income + desc = legend_cost_scale_by_era_desc +} + +legend_game_rule_multiplier = { + value = 1 + + # Game rules + if = { + limit = { + has_game_rule = legend_cost_high + } + value = 2 + } + else_if = { + limit = { + has_game_rule = legend_cost_very_high + } + value = 4 + } + else_if = { + limit = { + has_game_rule = legend_cost_low + } + value = 0.5 + } + else_if = { + limit = { + has_game_rule = legend_cost_very_low + } + value = 0.25 + } +} + +famed_legend_owner_cost = { + value = monthly_character_income + multiply = 0.1 + min = 3 + add = 1 + multiply = legend_cost_scale_by_era + multiply = legend_game_rule_multiplier + max = 300 +} + +illustrious_legend_owner_cost = { + value = monthly_character_income + multiply = 0.15 + min = 4.5 + add = 2 + multiply = legend_cost_scale_by_era + multiply = legend_game_rule_multiplier + max = 450 +} + +mythical_legend_owner_cost = { + value = monthly_character_income + multiply = 0.25 + min = 8 + add = 4 + multiply = legend_cost_scale_by_era + multiply = legend_game_rule_multiplier + max = 800 +} + +# Promoter costs + +famed_legend_promoter_cost = { + value = monthly_character_income + multiply = 0.05 + add = 0.5 + multiply = legend_cost_scale_by_era + multiply = legend_game_rule_multiplier +} + +illustrious_legend_promoter_cost = { + value = monthly_character_income + multiply = 0.1 + add = 1 + multiply = legend_cost_scale_by_era + multiply = legend_game_rule_multiplier +} + +mythical_legend_promoter_cost = { + value = monthly_character_income + multiply = 0.2 + add = 1.5 + multiply = legend_cost_scale_by_era + multiply = legend_game_rule_multiplier +} + +# We want higher AI income than cost when starting promoting, so we do not toggle start/stop promoting too much, or spend all their income on it + +ai_famed_legend_promoter_start_required_income = { + value = famed_legend_promoter_cost + multiply = 1.4 +} + +ai_illustrious_legend_promoter_start_required_income = { + value = illustrious_legend_promoter_cost + multiply = 1.4 +} + +ai_mythical_legend_promoter_start_required_income = { + value = mythical_legend_promoter_cost + multiply = 1.4 +} + +### Prestige costs ### + +legend_prestige_cost = { + value = 200 + #Scale by tier + multiply = { + value = root.primary_title.tier + subtract = 1 + multiply = 0.5 + min = 1 + } + if = { + limit = { + root = { + government_has_flag = government_is_tribal + } + } + multiply = 0.8 + } + #Scale by era + add = { + value = legend_base_cost_value + multiply = legend_cost_scale_by_era + subtract = legend_base_cost_value + desc = legend_cost_scale_by_era_desc + } + + # Game rules + if = { + limit = { + has_game_rule = legend_cost_high + } + multiply = 2 + } + else_if = { + limit = { + has_game_rule = legend_cost_very_high + } + multiply = 4 + } + else_if = { + limit = { + has_game_rule = legend_cost_low + } + divide = 2 + } + else_if = { + limit = { + has_game_rule = legend_cost_very_low + } + divide = 4 + } +} + +### Piety costs ### + +legend_piety_cost = { + value = 200 + #Scale by tier + multiply = { + value = root.primary_title.tier + subtract = 1 + multiply = 0.5 + min = 1 + } + if = { + limit = { + root = { + government_has_flag = government_is_tribal + } + } + multiply = 0.8 + } + #Scale by era + add = { + value = legend_base_cost_value + multiply = legend_cost_scale_by_era + subtract = legend_base_cost_value + desc = legend_cost_scale_by_era_desc + } + + # Game rules + if = { + limit = { + has_game_rule = legend_cost_high + } + multiply = 2 + } + else_if = { + limit = { + has_game_rule = legend_cost_very_high + } + multiply = 4 + } + else_if = { + limit = { + has_game_rule = legend_cost_low + } + divide = 2 + } + else_if = { + limit = { + has_game_rule = legend_cost_very_low + } + divide = 4 + } +} + +### COURT POSITION TASKS ### + +monthly_court_position_task_cost_value = { + value = 0.05 +} + +monthly_court_position_task_cost = { + value = monthly_court_position_task_cost_value + scope:liege = { + #Scale by tier + multiply = { + value = primary_title.tier + subtract = 1 + min = 1 + } + # Performance-heavy, so we let the AI cheat very lightly here + if = { + limit = { + is_ai = no + } + #Scale by era + if = { + limit = { + scope:liege.culture ?= { has_cultural_era_or_later = culture_era_late_medieval } + } + multiply = { + value = 1.75 + desc = culture_era_late_medieval_salary_mod + format = "BASE_VALUE_FORMAT_DECIMALS_PLUS_NEGATIVE" + } + } + else_if = { + limit = { + scope:liege.culture ?= { has_cultural_era_or_later = culture_era_high_medieval } + } + multiply = { + value = 1.5 + desc = culture_era_high_medieval_salary_mod + format = "BASE_VALUE_FORMAT_DECIMALS_PLUS_NEGATIVE" + } + } + else_if = { + limit = { + scope:liege.culture ?= { has_cultural_era_or_later = culture_era_early_medieval } + } + multiply = { + value = 1.25 + desc = culture_era_early_medieval_salary_mod + format = "BASE_VALUE_FORMAT_DECIMALS_PLUS_NEGATIVE" + } + } + } + } + if = { + limit = { + OR = { + has_game_rule = hard_difficulty + has_game_rule = very_hard_difficulty + } + scope:liege = { + is_ai = yes + } + } + multiply = 0 + } +} + +monthly_court_position_task_cost_double = { + value = monthly_court_position_task_cost + multiply = 2 +} + +monthly_court_position_task_cost_triple = { + value = monthly_court_position_task_cost + multiply = 3 +} + +monthly_court_position_task_cost_quadruple = { + value = monthly_court_position_task_cost + multiply = 4 +} + +### DYNAMIC VALUES ### +legend_piety_gain = { + value = 0 + if = { + limit = { root = { legend_quality = famed } } + value = minor_piety_gain + } + else_if = { + limit = { root = { legend_quality = illustrious } } + value = medium_piety_gain + } + else = { #mythical + value = major_piety_gain + } +} + +legend_prestige_gain = { + value = 0 + if = { + limit = { root = { legend_quality = famed } } + value = minor_prestige_gain + } + else_if = { + limit = { root = { legend_quality = illustrious } } + value = medium_prestige_gain + } + else = { #mythical + value = major_prestige_gain + } +} + +legend_dynasty_prestige_gain = { + value = 0 + if = { + limit = { root = { legend_quality = famed } } + value = miniscule_dynasty_prestige_gain + } + else_if = { + limit = { root = { legend_quality = illustrious } } + value = minor_dynasty_prestige_gain + } + else = { #mythical + value = major_dynasty_prestige_gain + } +} + +major_legend_quality_increase = 50 +medium_legend_quality_increase = 20 +minor_legend_quality_increase = 10 +minor_legend_quality_decrease = { + value = 0 + subtract = minor_legend_quality_increase +} +medium_legend_quality_decrease = { + value = 0 + subtract = medium_legend_quality_increase +} +major_legend_quality_decrease = { + value = 0 + subtract = major_legend_quality_increase +} + +base_legend_create_ai = { + value = 10 + + add = { + value = ai_greed + multiply = -1 + } + + if = { + limit = { + highest_held_title_tier <= tier_duchy + } + add = -10 + } + + if = { + limit = { + monthly_character_income < mythical_legend_owner_cost + } + multiply = 0.2 + } + if = { + limit = { + monthly_character_income <= monthly_character_expenses + } + multiply = 0 + } + if = { + limit = { + has_trait = arrogant + } + multiply = 2 + } + if = { + limit = { + has_trait = ambitious + } + multiply = 2 + } + + #you need to be this rich to create legends + if = { + limit = { + OR = { + is_at_war = yes + monthly_character_income < illustrious_legend_owner_cost + } + } + value = 0 + } + if = { + limit = { + has_variable = conqueror + gold < 2500 + } + multiply = 0 + } + if = { + limit = { + ai_should_focus_on_building_in_their_capital = yes + } + multiply = 0 + } + if = { + limit = { + this != top_liege + } + multiply = 0 + } + if = { + limit = { + has_global_variable_list = active_legends_tally + global_variable_list_size = { + name = active_legends_tally + value >= 10 + } + } + multiply = 0 + add = -5000 + } +} + +heroic_legend_create_ai = { + value = base_legend_create_ai + add = ai_honor + if = { + limit = { + highest_held_title_tier <= tier_duchy + } + add = -150 + } + if = { + limit = { + ai_has_warlike_personality = yes + } + multiply = 2 + } + if = { + limit = { + ai_has_cautious_personality = yes + } + multiply = 0.1 + } + if = { + limit = { + ai_has_economical_boom_personality = yes + } + multiply = 0.75 + } + if = { + limit = { + has_variable = conqueror + gold < 2500 + } + multiply = 0 + } + if = { + limit = { + ai_should_focus_on_building_in_their_capital = yes + } + multiply = 0 + } +} + +holy_legend_create_ai = { + value = base_legend_create_ai + add = ai_zeal + if = { + limit = { + highest_held_title_tier <= tier_duchy + } + add = -150 + } + if = { + limit = { + ai_has_pious_builder_personality = yes + } + multiply = 1.3 + } + if = { + limit = { + ai_has_warlike_personality = yes + } + multiply = 1.1 + } + if = { + limit = { + ai_has_cautious_personality = yes + } + multiply = 0.9 + } + if = { + limit = { + ai_has_economical_boom_personality = yes + } + multiply = 0.75 + } + if = { + limit = { + has_variable = conqueror + gold < 2500 + } + multiply = 0 + } + if = { + limit = { + ai_should_focus_on_building_in_their_capital = yes + } + multiply = 0 + } +} + +legitimizing_legend_create_ai = { + value = base_legend_create_ai + add = ai_rationality + if = { + limit = { + highest_held_title_tier <= tier_duchy + } + add = -150 + } + if = { + limit = { + ai_has_warlike_personality = yes + } + multiply = 1.1 + } + if = { + limit = { + ai_has_cautious_personality = yes + } + multiply = 0.1 + } + if = { + limit = { + ai_has_economical_boom_personality = yes + } + multiply = 0.9 + } + if = { + limit = { + has_variable = conqueror + gold < 2500 + } + multiply = 0 + } + if = { + limit = { + ai_should_focus_on_building_in_their_capital = yes + } + multiply = 0 + } +} + +illustrious_legend_create_ai = { + add = 25 + if = { + limit = { + monthly_character_income < illustrious_legend_promoter_cost + } + value = 0 + } +} + +mythical_legend_create_ai = { + add = 50 + if = { + limit = { + monthly_character_income < mythical_legend_promoter_cost + } + value = 0 + } +} + + +base_legend_promote_ai = { + value = 0 + if = { + limit = { + has_any_best_good_relationship_with_character_trigger = { CHARACTER = scope:legend.legend_owner } + } + add = 20 + } + else_if = { + limit = { + has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:legend.legend_owner } + } + add = 8 + } + else_if = { + limit = { + likes_character_trigger = { CHARACTER = scope:legend.legend_owner } + } + add = 2 + } + if = { + limit = { + culture = { + OR = { + has_cultural_tradition = tradition_chanson_de_geste + has_cultural_tradition = tradition_fp1_northern_stories + has_cultural_tradition = tradition_storytellers + has_cultural_parameter = poet_trait_gives_bonuses + } + } + } + add = 2 + } + if = { # The protag is my relative + limit = { + is_close_or_extended_family_of = scope:legend.legend_owner + } + add = 2 + } + + if = { + limit = { + has_trait = arrogant # I want to create my own legend >:( + } + add = -4 + } + if = { + limit = { + has_trait = cynical + } + add = -4 + } + + if = { + limit = { + top_liege != this + } + add = -4 + } + + add = { + value = "opinion(scope:legend.legend_owner)" + multiply = 0.05 + } + + if = { + limit = { + any_character_to_title_neighboring_county = { + any_county_province = { + any_province_legend = { + this = scope:legend + } + } + } + } + add = 2 + } + else = { + add = -8 + } + + if = { #no free meals + limit = { + primary_title.tier = tier_empire + } + add = -16 + } + else_if = { + limit = { + primary_title.tier = tier_kingdom + } + add = -8 + } + else_if = { #you need to be this tall to promote legends + limit = { + primary_title.tier < tier_duchy + } + value = 0 + } + + if = { + limit = { + scope:legend = { + legend_quality = illustrious + } + } + multiply = 1.2 + } + else_if = { + limit = { + scope:legend = { + legend_quality = mythical + } + } + multiply = 1.4 + } + + if = { + limit = { + OR = { + # War is no time for idle spending + is_at_war = yes + + # Opt out if we do not have enough income to promote this legend + # (only for legends we're not currently promoting - stopping the currently promoting legend is handled by code) + AND = { + NOT = { promoted_legend ?= scope:legend } + OR = { + AND = { + scope:legend = { + legend_quality = famed + } + monthly_character_income < ai_famed_legend_promoter_start_required_income + } + AND = { + scope:legend = { + legend_quality = illustrious + } + monthly_character_income < ai_illustrious_legend_promoter_start_required_income + } + AND = { + scope:legend = { + legend_quality = mythical + } + monthly_character_income < ai_mythical_legend_promoter_start_required_income + } + } + } + } + } + value = 0 + } + #to prevent AI switching promoters too often + if = { + limit = { + exists = promoted_legend + } + multiply = 0.4 + } + if = { + limit = { + has_variable = conqueror + gold < 2500 + } + multiply = 0 + } + if = { + limit = { + ai_should_focus_on_building_in_their_capital = yes + } + multiply = 0 + } +} + +base_legend_complete_ai = { + value = 0 + if = { # I cannot afford the current levels monthly cost anymore + limit = { + scope:can_afford_current_level = no + } + add = 100 + } + if = { # My legend is done + limit = { + scope:legend = { legend_quality = mythical } + } + add = 100 + } + if = { # This legend is going nowhere :( + limit = { + current_year >= { + value = scope:legend.legend_start_date + add = 100 + } + } + add = 10 + } + if = { + limit = { + current_year >= { + value = scope:legend.legend_start_date + add = 200 + } + } + add = 20 + } + if = { + limit = { + scope:legend = { + any_spread_province > { count = 350 } + } + } + add = 40 + } + if = { + limit = { + monthly_character_income <= monthly_character_expenses + debt_level = 2 #Is one year in debt. + } + add = 10 + } + else_if = { + limit = { + monthly_character_income <= monthly_character_expenses + debt_level > 2 # Is two years in debt. + } + add = 25 + } + if = { + limit = { + debt_level = 5 # Is four years in debt + } + add = 40 + } +} + +base_chronicler_promote_legend_realm_cost = { + value = 0 + if = { + limit = { + scope:liege ?= { + promoted_legend ?= { + legend_owner = scope:liege + } + } + } + add = scope:liege.famed_legend_owner_cost + } + else = { + add = scope:liege.famed_legend_promoter_cost + } + multiply = 0.8 +} diff --git a/common/scripted_effects/00_nickname_effects.txt b/common/scripted_effects/00_nickname_effects.txt new file mode 100644 index 00000000..108f5053 --- /dev/null +++ b/common/scripted_effects/00_nickname_effects.txt @@ -0,0 +1,6410 @@ +set_nickname_effect = { + if = { + limit = { + NAND = { # I cannot already have a bad nickname if the nickname I'm getting is also bad + has_bad_nickname = yes + is_bad_nickname = $NICKNAME$ + } + OR = { # Has no nickname or a bad nickname + NOT = { has_any_nickname = yes } + has_bad_nickname = yes + } + } + give_nickname = $NICKNAME$ + } +} + +chance_for_random_nickname_effect = { + random = { + chance = random_nickname_chance + #chance = 100 # For testing + save_scope_value_as = { + name = toggle_null_result + value = yes + } + assign_random_nickname_effect = yes + } +} + +flag_random_nickname_as_taken_in_batch_effect = { + save_scope_value_as = { + name = had_$NICK$ + value = yes + } +} + +assign_random_nickname_effect = { + save_scope_as = nickname_root_scope + if = { + limit = { + is_adult = yes + has_any_nickname = no + NOT = { government_has_flag = government_is_mercenary } + NOT = { has_game_rule = random_nickname_frequency_none } + } + random_list = { + 100 = { + trigger = { + exists = scope:toggle_null_result + } + # To make rare nicknames even rarer + } + 100 = { + trigger = { + is_male = yes + has_trait = stubborn + has_trait = impatient + NOR = { + prestige_level >= 3 + portrait_shared_clothing_contents_trigger = { # They have a chance to be bald normally; it's not weird or tease-worthy + CULTURE_SCOPE = culture + CULTURE_FLAG = african + } + is_bald_trigger = yes + exists = scope:had_nick_the_actually_bald + } + } + modifier = { + prestige_level < 2 + factor = 2 + } + give_nickname = nick_the_bald_ironic + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bald_ironic } + trigger_event = lifestyle_nicknames.1000 + } + 10 = { + trigger = { + is_male = yes + age >= 30 + stress >= 100 + NOR = { + portrait_shared_clothing_contents_trigger = { # They have a chance to be bald normally; it's not weird or tease-worthy + CULTURE_SCOPE = culture + CULTURE_FLAG = african + } + is_bald_trigger = yes + exists = scope:had_nick_the_actually_bald + } + } + modifier = { + add = age + } + give_nickname = nick_the_actually_bald + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_actually_bald } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + NOR = { + has_trait = crusader_king + mpo_has_gok_mongol_empire_trigger = yes + } + has_personality_extroverted_trigger = yes + NOT = { + any_realm_county = { + culture = scope:nickname_root_scope.culture + } + } + NOT = { + primary_title ?= { + any_past_holder = { + has_nickname = nick_the_stranger + } + } + } + is_landed = yes + NOT = { exists = scope:had_nick_the_stranger } + } + modifier = { + NOT = { + any_realm_county = { + culture = { + cultural_acceptance = { target = scope:nickname_root_scope.culture value >= 40 } + } + } + } + factor = 2 + } + give_nickname = nick_the_stranger + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_stranger } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_playable_character = yes + NOR = { + any_sub_realm_county = { + faith = scope:nickname_root_scope.faith + } + AND = { + top_liege != this + faith = liege.faith + } + government_has_flag = government_is_theocracy + government_has_flag = government_is_landless_adventurer + } + NOT = { exists = scope:had_nick_the_faith } + } + modifier = { + has_trait = zealous + factor = 2 + } + give_nickname = nick_the_faith + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_faith } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = deceitful + has_trait = fickle + has_trait = ambitious + has_trait = greedy + } + NOR = { + has_trait = shy + has_trait = calm + } + ai_boldness >= 75 + ai_honor < -75 + NOT = { exists = scope:had_nick_troublemaker } + } + modifier = { + ai_honor <= -100 + factor = 2 + } + give_nickname = nick_troublemaker + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_troublemaker } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait_extroverted_trigger = no + has_trait_levelheaded_trigger = yes + OR = { + has_trait = calm + has_trait = patient + has_trait = content + has_trait = compassionate + } + days_of_continuous_peace >= 3650 + NOT = { exists = scope:had_nick_the_peaceful } + } + modifier = { + calc_true_if = { + amount >= 2 + has_trait = calm + has_trait = patient + has_trait = content + has_trait = compassionate + } + factor = 2 + } + give_nickname = nick_the_peaceful + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_peaceful } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + days_of_continuous_peace >= 700 + ai_has_economical_boom_personality = yes + any_held_title = { + count >= 4 + title_tier = county + title_province = { + has_ongoing_construction = yes + } + } + NOT = { exists = scope:had_nick_the_builder } + } + modifier = { + any_held_title = { + count = all + title_tier = county + title_province = { + has_ongoing_construction = yes + } + } + factor = 2 + } + give_nickname = nick_the_builder + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_builder } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + has_trait = lazy + OR = { + has_trait = drunkard + has_trait = hashishiyah + } + NOT = { + prestige_level >= 3 + } + is_bald_trigger = no + NOT = { exists = scope:had_nick_the_hairy } + } + modifier = { + prestige_level < 2 + factor = 2 + } + give_nickname = nick_the_hairy + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_hairy } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_in_civil_war = yes + tyranny > 0 + diplomacy <= 8 + NOT = { exists = scope:had_nick_the_unready } + } + modifier = { + diplomacy <= 4 + factor = 2 + } + give_nickname = nick_the_unready + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_unready } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = wrathful + has_trait = irritable + has_trait = impatient + has_trait = ambitious + } + is_at_war = yes + any_character_war = { + primary_attacker = scope:nickname_root_scope + } + ai_boldness >= 50 + NOT = { exists = scope:had_nick_the_quarreller } + } + modifier = { + calc_true_if = { + amount >= 2 + has_trait = wrathful + has_trait = irritable + has_trait = impatient + has_trait = ambitious + } + factor = 2 + } + give_nickname = nick_the_quarreller + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_quarreller } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_dominant_trigger = yes + has_trait = stubborn + is_at_war = yes + any_character_war = { + primary_attacker = scope:nickname_root_scope + OR = { + using_cb = claimant_faction_war + using_cb = claim_cb + } + } + NOT = { exists = scope:had_nick_the_determined } + } + modifier = { + ai_boldness >= 50 + factor = 2 + } + give_nickname = nick_the_determined + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_determined } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = wrathful + has_trait = irritable + has_trait = impatient + } + is_at_war = yes + any_character_war = { + primary_attacker = scope:nickname_root_scope + attacker_war_score <= -50 + } + NOT = { exists = scope:had_nick_the_rash } + } + modifier = { + calc_true_if = { + amount >= 2 + has_trait = wrathful + has_trait = irritable + has_trait = impatient + } + factor = 2 + } + give_nickname = nick_the_rash + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_rash } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = arrogant + OR = { + has_trait = wrathful + has_trait = irritable + has_trait = impatient + } + is_at_war_as_attacker = yes + NOT = { exists = scope:had_nick_the_hotspur } + } + modifier = { + calc_true_if = { + amount >= 2 + has_trait = wrathful + has_trait = irritable + has_trait = impatient + } + factor = 2 + } + give_nickname = nick_the_hotspur + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_hotspur } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = deceitful + has_trait = arbitrary + has_trait = ambitious + has_trait = callous + has_trait = sadistic + has_trait = disloyal + } + any_killed_character = { + is_close_family_of = scope:nickname_root_scope + } + NOT = { exists = scope:had_nick_the_traitor } + } + modifier = { + is_at_war_with_liege = yes + factor = 2 + } + give_nickname = nick_the_traitor + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_traitor } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + any_killed_character = { + count >= 10 + death_reason = death_execution + } + NOT = { exists = scope:had_nick_the_executioner } + } + give_nickname = nick_the_executioner + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_executioner } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + prestige_level >= 5 + piety_level >= 3 + realm_size >= 30 + top_liege = this + NOT = { exists = scope:had_nick_the_great } + } + modifier = { + has_trait = conqueror + factor = 20 + } + modifier = { + piety_level >= 5 + factor = 2 + } + give_nickname = nick_the_great + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_great } + trigger_event = lifestyle_nicknames.1000 + } + 50 = { + trigger = { + NEOW_religion_is_broadly_christian_trigger = yes + has_trait = faith_warrior + NOT = { exists = scope:had_nick_the_crusader } + } + modifier = { + has_education_martial_trigger = yes + factor = 4 + } + give_nickname = nick_the_crusader + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_crusader } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + martial >= 16 + is_at_war = yes + any_character_war = { + primary_attacker = { + this = scope:nickname_root_scope + current_military_strength >= prev.primary_defender.current_military_strength + } + attacker_war_score >= 50 + } + ai_boldness >= 50 + NOT = { exists = scope:had_nick_the_hammer } + } + modifier = { + has_trait = conqueror + factor = 10 + } + modifier = { + ai_boldness >= 100 + factor = 2 + } + give_nickname = nick_the_hammer + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_hammer } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = brave + is_in_army = yes + martial >= 12 + prowess >= 12 + has_trait_submissive_trigger = no + NOT = { exists = scope:had_nick_the_lionheart } + } + modifier = { + martial >= 16 + prowess >= 16 + factor = 2 + } + modifier = { + has_trait = conqueror + factor = 10 + } + give_nickname = nick_the_lionheart + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lionheart } + trigger_event = lifestyle_nicknames.1000 + } + 50 = { + trigger = { + learning >= 20 + has_personality_dominant_trigger = yes + has_personality_extroverted_trigger = yes + NOT = { exists = scope:had_nick_the_turbulent } + } + modifier = { + is_clergy = yes + factor = 2 + } + give_nickname = nick_the_turbulent + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_turbulent } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = witch + NOT = { faith = { has_doctrine = doctrine_witchcraft_accepted } } + NOT = { exists = scope:had_nick_the_witch } + } + modifier = { + piety_level <= 1 + factor = 2 + } + give_nickname = nick_the_witch + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_witch } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + piety_level <= 0 + ai_rationality <= -50 + NOT = { exists = scope:had_nick_the_bewitched } + } + give_nickname = nick_the_bewitched + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bewitched } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = drunkard + prestige_level <= 2 + NOT = { exists = scope:had_nick_the_drunkard } + } + modifier = { + prestige_level <= 1 + factor = 2 + } + give_nickname = nick_the_drunkard + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_drunkard } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = drunkard + prestige_level <= 2 + faith.religion = religion:folkgerman.religion + NOT = { exists = scope:had_nick_ale_lover } + } + modifier = { + prestige_level <= 1 + factor = 2 + } + give_nickname = nick_ale_lover + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_ale_lover } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + culture = { has_cultural_tradition = tradition_seafaring } + location = { is_sea_province = yes } + NOT = { exists = scope:had_nick_the_navigator } + } + modifier = { + prestige_level >= 1 + factor = 2 + } + give_nickname = nick_the_navigator + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_navigator } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lifestyle_poet + has_trait = gregarious + NOT = { exists = scope:had_nick_the_troubadour } + } + modifier = { + has_trait_extroverted_trigger = yes + factor = 2 + } + give_nickname = nick_the_troubadour + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_troubadour } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = greedy + has_trait = avaricious + has_trait = gluttonous + } + ai_greed >= 50 + gold >= 200 + NOT = { exists = scope:had_nick_the_greedy } + } + modifier = { + has_trait = greedy + factor = 2 + } + give_nickname = nick_the_greedy + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_greedy } + trigger_event = lifestyle_nicknames.1000 + } +# 100 = { +# trigger = { +# culture = culture:anglo_saxon +# is_male = yes +# OR = { +# has_trait = greedy +# has_trait = avaricious +# has_trait = gluttonous +# } +# ai_greed >= 50 +# gold >= 200 +# NOT = { exists = scope:had_nick_pennyfather } +# } +# modifier = { +# has_trait = greedy +# factor = 2 +# } +# give_nickname = nick_pennyfather +# # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. +# flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_pennyfather } +# trigger_event = lifestyle_nicknames.1000 +# } + 100 = { + trigger = { + OR = { + has_trait = comfort_eater + has_trait = gluttonous + } + has_personality_introverted_trigger = no + faith = faith:^ + NOT = { exists = scope:had_nick_foul_fart } + } + modifier = { + has_personality_extroverted_trigger = yes + factor = 2 + } + give_nickname = nick_foul_fart + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_foul_fart } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_submissive_trigger = yes + has_personality_introverted_trigger = yes + is_at_war = no + NOT = { exists = scope:had_nick_the_timid } + } + modifier = { + has_trait = craven + factor = 2 + } + give_nickname = nick_the_timid + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_timid } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + prestige_level >= 1 + any_powerful_vassal = { + count >= 5 + } + any_powerful_vassal = { + count = all + opinion = { + target = scope:nickname_root_scope + value >= 25 + } + } + NOT = { exists = scope:had_nick_the_worthy } + } + modifier = { + prestige_level >= 3 + factor = 2 + } + give_nickname = nick_the_worthy + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_worthy } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + any_powerful_vassal = { + count >= 5 + } + any_powerful_vassal = { + count = all + opinion = { + target = scope:nickname_root_scope + value <= -25 + } + } + NOT = { exists = scope:had_nick_the_unworthy } + } + modifier = { + prestige_level <= 0 + factor = 2 + } + give_nickname = nick_the_unworthy + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_unworthy } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + NOT = { exists = scope:had_nick_the_unfaithful } + any_relation = { type = lover } + any_child = { + OR = { + has_trait = bastard + has_trait = legitimized_bastard + } + } + exists = primary_spouse + exposed_cheating_on_spouse_trigger = { SPOUSE = primary_spouse } + } + give_nickname = nick_the_unfaithful + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_unfaithful } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + any_child = { + count >= 5 + mother ?= { + is_married = yes + NOT = { + is_consort_of = scope:nickname_root_scope + } + } + } + any_child = { + count = all + mother ?= { + is_married = yes + NOT = { + is_consort_of = scope:nickname_root_scope + } + add_to_temporary_list = cuckoo + } + } + any_in_list = { + list = cuckoo + count >= 5 + } + NOT = { exists = scope:had_nick_cuckoo } + } + give_nickname = nick_cuckoo + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_cuckoo } + trigger_event = lifestyle_nicknames.1000 + } +# 50 = { +# trigger = { +# is_male = yes +# culture = culture:anglo_saxon +# any_child = { +# count >= 10 +# } +# NOT = { exists = scope:had_nick_aurei_testiculi } +# } +# give_nickname = nick_aurei_testiculi +# # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. +# flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_aurei_testiculi } +# trigger_event = lifestyle_nicknames.1000 +# } + 100 = { + trigger = { + NOT = { exists = scope:had_nick_the_unchaste } + any_relation = { type = lover } + any_child = { + OR = { + has_trait = bastard + has_trait = legitimized_bastard + } + } + exists = primary_spouse + exposed_cheating_on_spouse_trigger = { SPOUSE = primary_spouse } + } + give_nickname = nick_the_unchaste + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_unchaste } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + num_of_relation_lover >= 3 + NOT = { exists = scope:had_nick_the_beguiling } + } + modifier = { + OR = { + has_trait = beauty_good + has_trait = seducer + has_trait = rakish + } + factor = 2 + } + give_nickname = nick_the_beguiling + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_beguiling } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_female = yes + any_relation = { type = lover } + OR = { + has_trait = lustful + has_trait = beauty_good + attraction >= 50 + } + NOT = { exists = scope:had_nick_the_temptress } + } + modifier = { + num_of_relation_lover >= 2 + factor = 2 + } + give_nickname = nick_the_temptress + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_temptress } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_female = yes + any_relation = { type = lover } + attraction >= 50 + OR = { + has_trait = seducer + has_focus = intrigue_temptation_focus + } + NOT = { exists = scope:had_nick_the_seductress } + } + modifier = { + num_of_relation_lover >= 2 + factor = 2 + } + give_nickname = nick_the_seductress + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_seductress } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lustful + OR = { + has_trait = lovers_pox + has_trait = early_great_pox + has_trait = great_pox + has_trait = deviant + } + NOT = { exists = scope:had_nick_the_lewd } + } + modifier = { + any_relation = { type = lover } + factor = 2 + } + give_nickname = nick_the_lewd + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lewd } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + any_relation = { type = lover } + OR = { + has_trait = lustful + has_trait = beauty_good + attraction >= 50 + } + NOT = { exists = scope:had_nick_the_lecher } + } + modifier = { + num_of_relation_lover >= 2 + factor = 2 + } + give_nickname = nick_the_lecher + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lecher } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + any_relation = { type = lover } + attraction >= 50 + OR = { + has_trait = seducer + has_focus = intrigue_temptation_focus + } + NOT = { exists = scope:had_nick_the_seducer } + } + modifier = { + num_of_relation_lover >= 2 + factor = 2 + } + give_nickname = nick_the_seducer + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_seducer } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = deceitful + intrigue >= 16 + NOT = { exists = scope:had_nick_the_trickster } + } + modifier = { + intrigue >= 20 + factor = 2 + } + give_nickname = nick_the_trickster + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_trickster } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + intrigue >= 10 + martial >= 10 + ai_boldness >= 25 + ai_rationality >= 50 + ai_honor < 0 + NOT = { exists = scope:had_nick_the_fox } + } + modifier = { + stewardship >= 10 + factor = 2 + } + give_nickname = nick_the_fox + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_fox } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + diplomacy >= 10 + intrigue >= 10 + learning >= 10 + martial >= 10 + stewardship >= 10 + ai_rationality >= 25 + NOT = { exists = scope:had_nick_the_shrewd } + } + modifier = { + prestige_level >= 3 + factor = 2 + } + give_nickname = nick_the_shrewd + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_shrewd } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_benevolent_trigger = yes + has_personality_emotional_trigger = yes + prestige_level >= 2 + piety_level >= 2 + NOT = { exists = scope:had_nick_the_gracious } + } + modifier = { + prestige_level >= 3 + piety_level >= 3 + factor = 2 + } + give_nickname = nick_the_gracious + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_gracious } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_rationality <= -25 + has_personality_emotional_trigger = yes + has_personality_extroverted_trigger = yes + prestige_level <= 1 + NOT = { exists = scope:had_nick_the_silly } + } + modifier = { + ai_rationality <= -75 + factor = 2 + } + give_nickname = nick_the_silly + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_silly } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_benevolent_trigger = yes + has_personality_extroverted_trigger = yes + has_personality_levelheaded_trigger = yes + NOT = { exists = scope:had_nick_the_affable } + } + modifier = { + ai_compassion >= 100 + factor = 2 + } + give_nickname = nick_the_affable + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_affable } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lifestyle_poet + has_trait = gregarious + NOT = { exists = scope:had_nick_the_bard } + } + modifier = { + has_trait_extroverted_trigger = yes + factor = 2 + } + give_nickname = nick_the_bard + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bard } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_benevolent_trigger = yes + OR = { + has_trait = generous + has_trait = improvident + } + tyranny <= 0 + prestige_level >= 2 + NOT = { exists = scope:had_nick_the_generous } + } + modifier = { + prestige_level >= 3 + factor = 2 + } + give_nickname = nick_the_generous + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_generous } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_greed <= 0 + ai_honor >= 100 + tyranny <= 0 + prestige_level >= 2 + NOT = { exists = scope:had_nick_the_just } + } + modifier = { + prestige_level >= 3 + factor = 2 + } + give_nickname = nick_the_just + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_just } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + gold >= 1000 + ai_greed >= 100 + NOT = { exists = scope:had_nick_moneybags } + } + modifier = { + gold >= 3000 + factor = 2 + } + give_nickname = nick_moneybags + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_moneybags } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lifestyle_poet + diplomacy >= 10 + NOT = { exists = scope:had_nick_the_poet } + } + modifier = { + prestige_level >= 2 + factor = 2 + } + give_nickname = nick_the_poet + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_poet } + trigger_event = lifestyle_nicknames.1000 + } + 500 = { + trigger = { + has_personality_dominant_trigger = yes + is_at_war = yes + any_character_war = { + primary_defender = scope:nickname_root_scope + defender_war_score >= 50 + } + prestige_level >= 2 + NOT = { exists = scope:had_nick_the_ironside } + } + modifier = { + has_trait = unyielding_defender + factor = 2 + } + give_nickname = nick_the_ironside + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_ironside } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + has_education_martial_trigger = yes + ai_boldness >= 50 + any_killed_character = { + count >= 1 + always = yes + } + NOT = { exists = scope:had_nick_the_ruthless } + } + modifier = { + any_killed_character = { + count >= 3 + always = yes + } + factor = 2 + } + give_nickname = nick_the_ruthless + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_ruthless } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + NOT = { exists = scope:had_nick_the_brute } + has_personality_dominant_trigger = yes + has_personality_malicious_trigger = yes + prowess >= 16 + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + } + give_nickname = nick_the_brute + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_brute } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + NOT = { exists = scope:had_nick_the_berserker } + has_trait = berserker + prowess >= 16 + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + } + give_nickname = nick_the_berserker + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_berserker } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + NOT = { exists = scope:had_nick_the_bear } + is_male = yes + has_personality_dominant_trigger = yes + has_personality_extroverted_trigger = yes + prowess >= 12 + martial >= 12 + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + } + give_nickname = nick_the_bear + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bear } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + ai_boldness >= 50 + OR = { + has_trait = brave + has_trait = strong + has_trait = physique_good + } + has_education_martial_trigger = yes + NOT = { exists = scope:had_nick_the_lion } + } + give_nickname = nick_the_lion + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lion } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + martial >= 10 + intrigue >= 10 + OR = { + has_trait = shrewd + has_trait = intellect_good + has_trait = lifestyle_hunter + } + NOT = { exists = scope:had_nick_the_wolf } + } + modifier = { + prestige_level >= 3 + factor = 2 + } + give_nickname = nick_the_wolf + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_wolf } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_extroverted_trigger = yes + ai_boldness >= 100 + prestige_level >= 2 + NOT = { exists = scope:had_nick_the_bold } + } + give_nickname = nick_the_bold + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bold } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + NOT = { exists = scope:had_nick_the_brave } + has_trait = brave + has_personality_dominant_trigger = yes + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + } + modifier = { + prestige_level >= 3 + factor = 2 + } + give_nickname = nick_the_brave + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_brave } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait_xp = { + trait = lifestyle_hunter + track = hunter + value >= trait_second_level + } + NOT = { exists = scope:had_nick_the_hunter } + } + modifier = { + has_trait_xp = { + trait = lifestyle_hunter + track = hunter + value >= trait_third_level + } + factor = 2 + } + give_nickname = nick_the_hunter + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_hunter } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_boldness >= 100 + has_personality_dominant_trigger = yes + has_personality_introverted_trigger = yes + NOT = { exists = scope:had_nick_the_fearless } + } + modifier = { + stress <= 0 + factor = 2 + } + give_nickname = nick_the_fearless + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_fearless } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait_xp = { + trait = lifestyle_hunter + track = falconer + value >= trait_second_level + } + NOT = { exists = scope:had_nick_the_fowler } + } + modifier = { + has_trait_xp = { + trait = lifestyle_hunter + track = falconer + value >= trait_third_level + } + factor = 2 + } + give_nickname = nick_the_fowler + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_fowler } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = sadistic + has_trait = torturer + has_trait = murderer + } + any_killed_character = { + count >= 3 + always = yes + } + NOT = { exists = scope:had_nick_the_butcher } + } + modifier = { + any_killed_character = { + count >= 5 + always = yes + } + factor = 2 + } + give_nickname = nick_the_butcher + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_butcher } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = lifestyle_blademaster + is_knight = yes + is_in_army = yes + } + any_killed_character = { + count >= 3 + always = yes + } + NOT = { exists = scope:had_nick_the_bloody } + } + modifier = { + any_killed_character = { + count >= 5 + always = yes + } + factor = 2 + } + give_nickname = nick_the_bloody + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bloody } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + intrigue >= 10 + prowess >= 12 + martial >= 12 + has_education_martial_trigger = yes + NOT = { exists = scope:had_nick_the_hawk } + } + modifier = { + intrigue >= 16 + factor = 2 + } + give_nickname = nick_the_hawk + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_hawk } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = intellect_good + has_trait = shrewd + has_trait = theologian + has_trait = scholar + learning >= 16 + } + has_personality_introverted_trigger = yes + has_personality_levelheaded_trigger = yes + prestige_level >= 1 + NOT = { exists = scope:had_nick_the_wise } + } + modifier = { + prestige_level >= 3 + factor = 2 + } + give_nickname = nick_the_wise + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_wise } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_submissive_trigger = yes + learning >= 16 + num_of_relation_ward >= 2 + NOT = { exists = scope:had_nick_the_sage } + } + give_nickname = nick_the_sage + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_sage } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = shy + has_trait = reclusive + has_trait = content + } + has_personality_introverted_trigger = yes + has_personality_submissive_trigger = yes + NOT = { exists = scope:had_nick_the_silent } + } + give_nickname = nick_the_silent + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_silent } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + has_personality_emotional_trigger = yes + OR = { + has_trait = deviant + has_trait = cannibal + has_trait = lustful + has_trait = sadistic + } + NOT = { exists = scope:had_nick_the_depraved } + } + give_nickname = nick_the_depraved + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_depraved } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + OR = { + any_prisoner = { + count >= 2 + always = yes + } + tyranny > 0 + dread >= 75 + } + NOT = { exists = scope:had_nick_the_cruel } + } + give_nickname = nick_the_cruel + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_cruel } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + OR = { + has_trait = giant + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + has_trait = scaly + } + OR = { + tyranny > 0 + dread >= 75 + } + NOT = { exists = scope:had_nick_the_abominable } + } + give_nickname = nick_the_abominable + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_abominable } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + piety_level <= 0 + has_trait = excommunicated + } + OR = { + has_personality_malicious_trigger = yes + num_sinful_traits >= 1 + } + NOT = { exists = scope:had_nick_the_wicked } + } + modifier = { + num_sinful_traits >= 2 + factor = 2 + } + give_nickname = nick_the_wicked + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_wicked } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + piety_level <= 0 + has_trait = excommunicated + } + OR = { + has_personality_malicious_trigger = yes + num_sinful_traits >= 1 + } + NOT = { exists = scope:had_nick_the_accursed } + } + modifier = { + num_sinful_traits >= 2 + factor = 2 + } + give_nickname = nick_the_accursed + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_accursed } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + exists = cp:councillor_court_chaplain + opinion = { + target = cp:councillor_court_chaplain + value <= -30 + } + OR = { + num_sinful_traits >= 1 + piety_level <= 0 + } + NOT = { exists = scope:had_nick_priest_hater } + } + modifier = { + num_sinful_traits >= 2 + factor = 2 + } + give_nickname = nick_priest_hater + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_priest_hater } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_zeal >= 25 + top_liege != this + NOR = { + religion = liege.religion + faith = { has_doctrine = doctrine_pluralism_pluralistic } + } + NOT = { exists = scope:had_nick_the_heathen } + } + give_nickname = nick_the_heathen + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_heathen } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + faith.religion = { is_in_family = rf_abrahamic } + OR = { + num_sinful_traits >= 2 + piety_level <= 0 + has_trait = excommunicated + } + has_personality_malicious_trigger = yes + NOT = { exists = scope:had_nick_the_devil } + } + modifier = { + num_sinful_traits >= 3 + factor = 2 + } + give_nickname = nick_the_devil + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_devil } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + faith.religion = { is_in_family = rf_abrahamic } + OR = { + num_sinful_traits >= 2 + piety_level <= 0 + has_trait = excommunicated + } + has_personality_dominant_trigger = yes + NOT = { exists = scope:had_nick_the_black } + } + give_nickname = nick_the_black + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_black } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + piety_level >= 4 + has_personality_submissive_trigger = yes + num_sinful_traits <= 0 + NOT = { exists = scope:had_nick_the_pious } + } + modifier = { + piety_level >= 5 + factor = 2 + } + give_nickname = nick_the_pious + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_pious } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + piety_level >= 3 + has_trait = humble + num_sinful_traits <= 0 + ai_boldness < 0 + NOT = { exists = scope:had_nick_the_humble } + } + modifier = { + piety_level >= 4 + factor = 2 + } + give_nickname = nick_the_humble + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_humble } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + faith.religion = { is_in_family = rf_abrahamic } + piety_level >= 4 + has_personality_extroverted_trigger = yes + num_sinful_traits <= 0 + NOT = { exists = scope:had_nick_the_blessed } + } + modifier = { + piety_level >= 5 + factor = 2 + } + give_nickname = nick_the_blessed + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_blessed } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + faith.religion = { is_in_family = rf_abrahamic } + piety_level >= 3 + has_trait = theologian + has_trait_extroverted_trigger = no + num_sinful_traits <= 0 + NOT = { exists = scope:had_nick_the_theologian } + } + modifier = { + piety_level >= 4 + factor = 2 + } + give_nickname = nick_the_theologian + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_theologian } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + religion = { is_in_family = rf_eastern } + piety_level >= 4 + has_personality_extroverted_trigger = yes + num_sinful_traits <= 0 + NOT = { exists = scope:had_nick_the_enlightened } + } + modifier = { + piety_level >= 5 + factor = 2 + } + give_nickname = nick_the_enlightened + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_enlightened } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + num_virtuous_traits >= 2 + piety_level >= 4 + } + has_personality_introverted_trigger = yes + num_sinful_traits <= 0 + NOT = { exists = scope:had_nick_the_holy } + } + modifier = { + piety_level >= 5 + factor = 2 + } + give_nickname = nick_the_holy + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_holy } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + faith.religion = { is_in_family = rf_abrahamic } + OR = { + num_virtuous_traits >= 2 + piety_level >= 4 + } + has_personality_submissive_trigger = yes + has_personality_extroverted_trigger = yes + num_sinful_traits <= 0 + NOT = { exists = scope:had_nick_the_confessor } + } + modifier = { + top_liege = this + factor = 2 + } + give_nickname = nick_the_confessor + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_confessor } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + is_married = no + can_have_children = no + } + OR = { + has_trait = chaste + has_trait = celibate + } + NOT = { exists = scope:had_nick_the_chaste } + } + give_nickname = nick_the_chaste + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_chaste } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + faith = { has_doctrine = doctrine_theocracy_temporal } + has_personality_levelheaded_trigger = yes + has_personality_introverted_trigger = yes + has_personality_submissive_trigger = yes + piety_level >= 2 + num_sinful_traits <= 0 + NOT = { exists = scope:had_nick_the_monk } + } + give_nickname = nick_the_monk + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_monk } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + piety_level >= 2 + has_trait_xp = { + trait = pilgrim + value >= trait_second_level + } + NOT = { exists = scope:had_nick_the_pilgrim } + } + modifier = { + has_trait_xp = { + trait = pilgrim + value >= trait_third_level + } + factor = 2 + } + give_nickname = nick_the_pilgrim + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_pilgrim } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = diligent + has_trait = ambitious + is_at_war = no + NOT = { exists = scope:had_nick_the_able } + } + modifier = { + prestige_level >= 3 + factor = 2 + } + give_nickname = nick_the_able + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_able } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_compassion >= 100 + has_personality_benevolent_trigger = yes + has_personality_emotional_trigger = yes + NOR = { + any_prisoner = { + count >= 1 + always = yes + } + any_killed_character = { + count >= 1 + always = yes + } + } + NOT = { exists = scope:had_nick_the_compassionate } + } + give_nickname = nick_the_compassionate + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_compassionate } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_levelheaded_trigger = yes + ai_honor >= 75 + ai_greed <= 0 + NOT = { exists = scope:had_nick_the_noble } + } + modifier = { + prestige_level >= 2 + factor = 2 + } + give_nickname = nick_the_noble + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_noble } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_boldness <= 0 + has_personality_emotional_trigger = yes + has_personality_benevolent_trigger = yes + NOT = { exists = scope:had_nick_the_gentle } + } + give_nickname = nick_the_gentle + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_gentle } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_benevolent_trigger = yes + prestige_level >= 3 + tyranny <= 0 + NOT = { exists = scope:had_nick_the_good } + } + modifier = { + prestige_level >= 2 + factor = 2 + } + give_nickname = nick_the_good + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_good } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_compassion >= 75 + has_personality_benevolent_trigger = yes + has_personality_extroverted_trigger = yes + NOT = { exists = scope:had_nick_the_kind } + } + give_nickname = nick_the_kind + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_kind } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_extroverted_trigger = yes + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + has_trait_malicious_trigger = no + NOT = { exists = scope:had_nick_the_merry } + } + give_nickname = nick_the_merry + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_merry } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_honor >= 100 + has_personality_levelheaded_trigger = yes + has_personality_benevolent_trigger = yes + NOT = { exists = scope:had_nick_the_honorable } + } + give_nickname = nick_the_honorable + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_honorable } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = loyal + untrustworthy_trigger = no + NOT = { exists = scope:had_nick_the_loyal } + } + give_nickname = nick_the_loyal + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_loyal } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = honest + has_trait_malicious_trigger = no + NOT = { exists = scope:had_nick_the_honest } + } + give_nickname = nick_the_honest + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_honest } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_personality_malicious_trigger = yes + tyranny >= 50 + dread >= 75 + } + tyranny >= 10 + NOT = { exists = scope:had_nick_the_terrible } + } + modifier = { + tyranny >= 50 + factor = 2 + } + give_nickname = nick_the_terrible + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_terrible } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_personality_dominant_trigger = yes + tyranny >= 50 + } + tyranny >= 10 + NOT = { exists = scope:had_nick_the_tyrant } + } + modifier = { + tyranny >= 30 + factor = 2 + } + give_nickname = nick_the_tyrant + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_tyrant } + trigger_event = lifestyle_nicknames.1000 + } + 50 = { + trigger = { + age >= 60 + NOT = { exists = scope:had_nick_the_old } + } + modifier = { + age >= 80 + factor = 5 + } + give_nickname = nick_the_old + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_old } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = shy + has_trait = reclusive + } + has_personality_introverted_trigger = yes + has_trait_dominant_trigger = no + NOT = { exists = scope:had_nick_the_shy } + } + modifier = { + has_personality_submissive_trigger = yes + factor = 2 + } + give_nickname = nick_the_shy + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_shy } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + prestige_level >= 4 + age <= 23 + NOT = { exists = scope:had_nick_the_young } + } + modifier = { + prestige_level >= 5 + factor = 2 + } + give_nickname = nick_the_young + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_young } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + OR = { + has_trait = bastard + has_trait = legitimized_bastard + has_trait = bastard_founder + } + NOT = { exists = scope:had_nick_the_bastard } + } + modifier = { + prestige_level <= 1 + factor = 2 + } + give_nickname = nick_the_bastard + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bastard } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_boldness >= 50 + has_personality_extroverted_trigger = yes + has_personality_dominant_trigger = yes + prestige_level >= 1 + NOT = { exists = scope:had_nick_the_proud } + } + modifier = { + prestige_level >= 2 + factor = 2 + } + give_nickname = nick_the_proud + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_proud } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + NOT = { exists = scope:had_nick_the_strong } + OR = { + has_trait = strong + has_trait = physique_good + } + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + } + modifier = { + OR = { + has_trait = physique_good_2 + has_trait = physique_good_3 + } + factor = 2 + } + give_nickname = nick_the_strong + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_strong } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + has_conventionally_attractive_trigger = yes + NOR = { + has_trait = disfigured + has_trait = leper + has_trait = scaly + has_trait = beauty_bad + } + NOT = { exists = scope:had_nick_the_handsome } + } + modifier = { + OR = { + has_trait = beauty_good_2 + has_trait = beauty_good_3 + } + factor = 2 + } + give_nickname = nick_the_handsome + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_handsome } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_female = yes + has_conventionally_attractive_trigger = yes + age <= 40 + NOR = { + has_trait = disfigured + has_trait = leper + has_trait = scaly + has_trait = beauty_bad + } + NOT = { exists = scope:had_nick_the_fair } + } + modifier = { + OR = { + has_trait = beauty_good_2 + has_trait = beauty_good_3 + } + factor = 2 + } + give_nickname = nick_the_fair + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_fair } + trigger_event = lifestyle_nicknames.1000 + } +# 100 = { +# trigger = { +# culture = culture:anglo_saxon +# is_female = yes +# has_conventionally_attractive_trigger = yes +# age <= 40 +# NOR = { +# has_trait = disfigured +# has_trait = leper +# has_trait = scaly +# has_trait = beauty_bad +# } +# NOT = { exists = scope:had_nick_swan_neck } +# } +# modifier = { +# OR = { +# has_trait = beauty_good_2 +# has_trait = beauty_good_3 +# } +# factor = 2 +# } +# give_nickname = nick_swan_neck +# # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. +# flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_swan_neck } +# trigger_event = lifestyle_nicknames.1000 +# } + 100 = { + trigger = { + OR = { + has_conventionally_attractive_trigger = yes + has_trait = lustful + } + NOR = { + has_trait = disfigured + has_trait = leper + has_trait = scaly + has_trait = beauty_bad + } + any_targeting_scheme = { + OR = { + scheme_type = seduce + scheme_type = courting + } + } + NOT = { exists = scope:had_nick_the_desired } + } + modifier = { + OR = { + has_trait = beauty_good_2 + has_trait = beauty_good_3 + } + factor = 2 + } + give_nickname = nick_the_desired + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_desired } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = beauty_good + age <= 40 + NOR = { + has_trait = disfigured + has_trait = leper + has_trait = scaly + has_trait = beauty_bad + } + NOT = { exists = scope:had_nick_the_beautiful } + } + modifier = { + OR = { + has_trait = beauty_good_2 + has_trait = beauty_good_3 + } + factor = 2 + } + give_nickname = nick_the_beautiful + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_beautiful } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = giant + NOT = { exists = scope:had_nick_the_giant } + } + give_nickname = nick_the_giant + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_giant } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + prowess >= 10 + current_weight >= 50 + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + NOT = { exists = scope:had_nick_the_girthy } + } + modifier = { + current_weight >= 75 + factor = 2 + } + give_nickname = nick_the_girthy + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_girthy } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + ai_rationality <= -75 + has_trait = lunatic + has_trait = possessed + AND = { + tyranny >= 50 + has_personality_emotional_trigger = yes + has_personality_malicious_trigger = yes + } + } + NOT = { exists = scope:had_nick_the_mad } + } + give_nickname = nick_the_mad + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_mad } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + probably_unintelligent_trigger = yes + NOT = { exists = scope:had_nick_the_simple } + } + give_nickname = nick_the_simple + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_simple } + trigger_event = lifestyle_nicknames.1000 + } + 500 = { + trigger = { + has_trait = leper + NOT = { exists = scope:had_nick_the_leper } + } + give_nickname = nick_the_leper + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_leper } + trigger_event = lifestyle_nicknames.1000 + } + 300 = { + trigger = { + has_trait = maimed + NOT = { exists = scope:had_nick_half_hand } + } + give_nickname = nick_half_hand + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_half_hand } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = beauty_bad + has_trait = hunchbacked + has_trait = scaly + has_trait = disfigured + has_trait = inbred + scarred_trait_activation_3 = yes + } + NOT = { + has_trait = beauty_good + } + NOT = { exists = scope:had_nick_the_hideous } + } + modifier = { + OR = { + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + } + factor = 2 + } + give_nickname = nick_the_hideous + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_hideous } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = beauty_bad + has_trait = hunchbacked + has_trait = scaly + has_trait = inbred + } + NOT = { + has_trait = beauty_good + } + NOT = { exists = scope:had_nick_the_frog } + } + modifier = { + OR = { + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + } + factor = 2 + } + give_nickname = nick_the_frog + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_frog } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = beauty_bad + has_trait = hunchbacked + has_trait = scaly + has_trait = inbred + scarred_trait_activation_3 = yes + } + NOT = { + has_trait = beauty_good + } + NOT = { exists = scope:had_nick_the_repulsive } + } + modifier = { + OR = { + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + } + factor = 2 + } + give_nickname = nick_the_repulsive + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_repulsive } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = fragile_bones + has_trait = infirm + has_trait = weak + has_trait = spindly + has_trait = physique_bad + has_trait = bleeder + has_trait = inbred + } + NOT = { + has_trait = physique_good + } + NOT = { exists = scope:had_nick_the_frail } + } + modifier = { + OR = { + has_trait = physique_bad_2 + has_trait = physique_bad_3 + } + factor = 2 + } + give_nickname = nick_the_frail + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_frail } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + prowess < 8 + OR = { + has_trait = faltering_heart + has_trait = infirm + has_trait = spindly + has_trait = weak + has_trait = physique_bad + has_trait = bleeder + has_trait = inbred + } + NOT = { + has_trait = physique_good + } + NOT = { exists = scope:had_nick_the_weak } + } + modifier = { + OR = { + has_trait = physique_bad_2 + has_trait = physique_bad_3 + } + factor = 2 + } + give_nickname = nick_the_weak + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_weak } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = clubfooted + has_trait = weak + has_trait = spindly + has_trait = physique_bad + } + NOT = { + has_trait = physique_good + } + NOT = { exists = scope:had_nick_the_lame } + } + modifier = { + has_trait = clubfooted + factor = 2 + } + give_nickname = nick_the_lame + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lame } + trigger_event = lifestyle_nicknames.1000 + } + 1000 = { + trigger = { + has_trait = lisping + has_trait = clubfooted + NOT = { exists = scope:had_nick_the_lisp_and_lame } + } + give_nickname = nick_the_lisp_and_lame + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lisp_and_lame } + trigger_event = lifestyle_nicknames.1000 + } + 300 = { + trigger = { + has_trait = hunchbacked + NOT = { exists = scope:had_nick_the_hunchback } + } + give_nickname = nick_the_hunchback + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_hunchback } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + current_weight >= 50 + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + NOT = { exists = scope:had_nick_the_fat } + } + modifier = { + current_weight >= 75 + factor = 2 + } + give_nickname = nick_the_fat + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_fat } + trigger_event = lifestyle_nicknames.1000 + } +# 100 = { +# trigger = { +# culture = culture:anglo_saxon +# current_weight >= 50 +# OR = { +# loves_food_trigger = yes +# has_trait = lifestyle_reveler +# } +# NOT = { exists = scope:had_nick_chubbycheeks } +# } +# modifier = { +# current_weight >= 75 +# factor = 2 +# } +# give_nickname = nick_chubbycheeks +# # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. +# flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_chubbycheeks } +# trigger_event = lifestyle_nicknames.1000 +# } + 50 = { + trigger = { + current_weight >= 50 + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + diplomacy <= 2 + NOT = { exists = scope:had_nick_the_slobberer } + } + modifier = { + current_weight >= 75 + factor = 2 + } + give_nickname = nick_the_slobberer + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_slobberer } + trigger_event = lifestyle_nicknames.1000 + } + 50 = { + trigger = { + current_weight >= 50 + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + NOT = { exists = scope:had_nick_the_rotund } + } + modifier = { + current_weight >= 75 + factor = 2 + } + give_nickname = nick_the_rotund + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_rotund } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { + trigger = { + current_weight >= 50 + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + NOT = { exists = scope:had_nick_the_plump } + } + modifier = { + current_weight >= 75 + factor = 2 + } + give_nickname = nick_the_plump + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_plump } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = blind + NOT = { exists = scope:had_nick_the_blind } + } + give_nickname = nick_the_blind + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_blind } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = stuttering + NOT = { exists = scope:had_nick_the_stammerer } + } + give_nickname = nick_the_stammerer + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_stammerer } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = gout_ridden + NOT = { exists = scope:had_nick_the_gouty } + } + give_nickname = nick_the_gouty + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_gouty } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = consumption + has_trait = cancer + has_trait = pneumonic + has_trait = typhus + has_trait = smallpox + has_trait = measles + has_trait = dysentery + has_trait = ergotism + has_trait = bubonic_plague + } + prestige_level <= 1 + NOT = { exists = scope:had_nick_the_diseased } + } + give_nickname = nick_the_diseased + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_diseased } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { + trigger = { + dynasty ?= { dynasty_prestige_level >= 5 } + prestige_level <= 1 + NOT = { exists = scope:had_nick_the_disgraceful } + } + give_nickname = nick_the_disgraceful + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_disgraceful } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + NOT = { exists = scope:had_nick_bad_hand } + has_trait = maimed + AND = { + has_trait = scarred + prowess < 8 + } + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + } + give_nickname = nick_bad_hand + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_bad_hand } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = one_eyed + NOT = { exists = scope:had_nick_the_one_eyed } + } + give_nickname = nick_the_one_eyed + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_one_eyed } + trigger_event = lifestyle_nicknames.1000 + } + 50 = { + trigger = { + has_trait = craven + prestige_level <= 2 + has_personality_submissive_trigger = yes + NOT = { exists = scope:had_nick_the_trembling } + } + modifier = { + prestige_level <= 1 + factor = 2 + } + give_nickname = nick_the_trembling + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_trembling } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = craven + prestige_level <= 2 + has_personality_submissive_trigger = yes + NOT = { exists = scope:had_nick_the_craven } + } + modifier = { + prestige_level <= 1 + factor = 2 + } + give_nickname = nick_the_craven + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_craven } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + ai_rationality <= -75 + has_trait = lunatic + has_trait = possessed + AND = { + tyranny >= 50 + has_personality_emotional_trigger = yes + has_personality_malicious_trigger = yes + } + } + NOT = { exists = scope:had_nick_the_insane } + } + give_nickname = nick_the_insane + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_insane } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_introverted_trigger = yes + has_personality_dominant_trigger = yes + has_personality_levelheaded_trigger = yes + NOT = { exists = scope:had_nick_the_joyless } + } + give_nickname = nick_the_joyless + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_joyless } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = viking + martial >= 10 + prowess >= 10 + NOT = { exists = scope:had_nick_the_viking } + } + give_nickname = nick_the_viking + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_viking } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + culture = { has_cultural_tradition = tradition_horse_lords } + martial >= 10 + prowess >= 10 + number_maa_regiments_of_base_type = { + type = archer_cavalry + value > 1 + } + any_raid_target = { + always = yes + } + NOT = { exists = scope:had_nick_the_horse } + } + give_nickname = nick_the_horse + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_horse } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + probably_unintelligent_trigger = yes + has_personality_introverted_trigger = yes + has_personality_levelheaded_trigger = yes + NOT = { exists = scope:had_nick_the_dull } + } + give_nickname = nick_the_dull + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_dull } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_dominant_trigger = yes + has_personality_extroverted_trigger = yes + prowess >= 16 + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + NOT = { exists = scope:had_nick_strongarm } + } + give_nickname = nick_strongarm + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_strongarm } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = one_eyed + NOT = { exists = scope:had_nick_one_eye } + } + give_nickname = nick_one_eye + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_one_eye } + trigger_event = lifestyle_nicknames.1000 + } + 300 = { + trigger = { + has_trait = maimed + NOT = { exists = scope:had_nick_one_hand } + } + give_nickname = nick_one_hand + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_one_hand } + trigger_event = lifestyle_nicknames.1000 + } + 300 = { + trigger = { + has_education_intrigue_trigger = yes + intrigue >= 16 + has_trait = disfigured + NOT = { exists = scope:had_nick_of_a_thousand_faces } + } + give_nickname = nick_of_a_thousand_faces + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_of_a_thousand_faces } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = consumption + has_trait = cancer + has_trait = pneumonic + has_trait = typhus + has_trait = smallpox + has_trait = measles + has_trait = dysentery + has_trait = ergotism + has_trait = bubonic_plague + } + prestige_level <= 1 + NOT = { exists = scope:had_nick_the_plaguebearer } + } + give_nickname = nick_the_plaguebearer + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_plaguebearer } + trigger_event = lifestyle_nicknames.1000 + } + 500 = { + trigger = { + calc_true_if = { + amount >= 2 + has_trait = maimed + has_trait = one_eyed + has_trait = one_legged + has_trait = disfigured + } + stress < 100 + health >= medium_health + NOT = { exists = scope:had_nick_the_persevering } + } + give_nickname = nick_the_persevering + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_persevering } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = physique_good_2 + has_trait = physique_good_3 + has_trait = beauty_good_2 + has_trait = beauty_good_3 + } + OR = { + has_trait = physique_bad_2 + has_trait = physique_bad_3 + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + has_trait = giant + has_trait = albino + has_trait = scaly + } + NOT = { exists = scope:had_nick_the_chimera } + } + give_nickname = nick_the_chimera + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_chimera } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + highest_held_title_tier <= tier_duchy + realm_size >= 5 + any_vassal = { + count >= 3 + } + has_personality_benevolent_trigger = yes + prestige_level >= 2 + diplomacy >= 12 + NOT = { exists = scope:had_nick_the_lord_of_realm } + } + give_nickname = nick_the_lord_of_realm + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lord_of_realm } + trigger_event = lifestyle_nicknames.1000 + } + 50 = { + trigger = { + highest_held_title_tier <= tier_duchy + domain_size <= 2 + any_sibling = { + highest_held_title_tier >= tier_kingdom + domain_size >= 4 + prestige_level >= scope:nickname_root_scope.prestige_level + } + NOT = { exists = scope:had_nick_lackland } + } + give_nickname = nick_lackland + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_lackland } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + culture = { + OR = { + this = culture:breton + any_parent_culture_or_above = { + this = culture:breton + } + } + } + is_at_war = yes + martial >= 12 + NOT = { exists = scope:had_nick_twistedbeard } + } + give_nickname = nick_twistedbeard + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_twistedbeard } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { # Will make the character grow a beautiful beard + trigger = { + is_male = yes + age >= 30 + learning >= 16 + OR = { + has_trait = lifestyle_mystic + has_trait = scholar + has_trait = theologian + } + NOR = { + exists = scope:had_nick_the_bearded + has_trait = beardless_eunuch + } + } + give_nickname = nick_the_bearded + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bearded } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = strong + has_trait = physique_good + } + OR = { + has_trait = beauty_bad + has_trait = hunchbacked + has_trait = scaly + has_trait = disfigured + } + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + NOT = { exists = scope:had_nick_the_boar } + } + give_nickname = nick_the_boar + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_boar } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = disfigured + has_personality_introverted_trigger = yes + NOT = { exists = scope:had_nick_the_faceless } + } + give_nickname = nick_the_faceless + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_faceless } + trigger_event = lifestyle_nicknames.1000 + } + 300 = { + trigger = { + has_trait = giant + has_trait = one_eyed + NOT = { exists = scope:had_nick_the_cyclops } + } + give_nickname = nick_the_cyclops + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_cyclops } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = giant + OR = { + has_trait = weak + has_trait = spindly + has_trait = physique_bad + } + NOT = { exists = scope:had_nick_the_beanstalk } + } + give_nickname = nick_the_beanstalk + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_beanstalk } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_female = yes + faith = { has_doctrine = doctrine_theocracy_temporal } + has_personality_levelheaded_trigger = yes + has_personality_introverted_trigger = yes + has_personality_submissive_trigger = yes + piety_level >= 2 + num_sinful_traits <= 0 + NOT = { exists = scope:had_nick_the_nun } + } + give_nickname = nick_the_nun + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_nun } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_in_civil_war = yes + tyranny > 0 + diplomacy <= 8 + NOT = { exists = scope:had_nick_the_ill_ruler } + } + modifier = { + diplomacy <= 4 + factor = 2 + } + give_nickname = nick_the_ill_ruler + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_ill_ruler } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_in_civil_war = yes + tyranny > 0 + diplomacy <= 8 + NOT = { exists = scope:had_nick_the_careless } + } + modifier = { + diplomacy <= 4 + factor = 2 + } + give_nickname = nick_the_careless + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_careless } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { + trigger = { + age >= 60 + health >= good_health + NOT = { exists = scope:had_nick_the_undying } + } + give_nickname = nick_the_undying + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_undying } + trigger_event = lifestyle_nicknames.1000 + } + 50 = { + trigger = { + OR = { + debt_level >= 1 + treasury_debt_level >= 1 + } + NOT = { exists = scope:had_nick_of_the_empty_pockets } + } + modifier = { + factor = debt_level + } + modifier = { + factor = treasury_debt_level + } + give_nickname = nick_of_the_empty_pockets + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_of_the_empty_pockets } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = giant + prowess >= 20 + NOT = { exists = scope:had_nick_the_goliath } + } + give_nickname = nick_the_goliath + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_goliath } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_education_martial_trigger = yes + exists = capital_county + capital_county.county_opinion >= 50 + NOT = { exists = scope:had_nick_the_shield_of_capital } + } + give_nickname = nick_the_shield_of_capital + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_shield_of_capital } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = giant + religion = { is_in_family = rf_pagan } + NOT = { exists = scope:had_nick_the_ladder_legs } + } + give_nickname = nick_the_ladder_legs + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_ladder_legs } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { + trigger = { + has_personality_dominant_trigger = yes + has_personality_extroverted_trigger = yes + has_trait = beauty_good + NOT = { exists = scope:had_nick_the_peacock } + } + give_nickname = nick_the_peacock + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_peacock } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + dread >= 50 + has_personality_dominant_trigger = yes + has_personality_extroverted_trigger = yes + NOT = { exists = scope:had_nick_the_bellower } + } + give_nickname = nick_the_bellower + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_bellower } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lifestyle_physician + has_personality_benevolent_trigger = yes + piety_level >= 2 + NOT = { exists = scope:had_nick_the_healer } + } + give_nickname = nick_the_healer + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_healer } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_dominant_trigger = yes + has_personality_benevolent_trigger = yes + prestige_level >= 2 + piety_level >= 2 + NOT = { exists = scope:had_nick_the_righteous } + } + modifier = { + prestige_level >= 3 + piety_level >= 3 + factor = 2 + } + give_nickname = nick_the_righteous + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_righteous } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_compassion >= 75 + ai_rationality >= 75 + has_personality_benevolent_trigger = yes + NOT = { exists = scope:had_nick_the_understanding } + } + give_nickname = nick_the_understanding + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_understanding } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + age >= 75 + piety_level >= 2 + NOT = { exists = scope:had_nick_the_venerable } + } + modifier = { + piety_level >= 3 + factor = 2 + } + give_nickname = nick_the_venerable + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_venerable } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lifestyle_mystic + has_personality_benevolent_trigger = yes + piety_level >= 2 + NOT = { exists = scope:had_nick_the_miracle_worker } + } + give_nickname = nick_the_miracle_worker + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_miracle_worker } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_vengefulness <= -50 + has_personality_benevolent_trigger = yes + has_personality_levelheaded_trigger = yes + NOR = { + any_prisoner = { + count >= 1 + always = yes + } + any_killed_character = { + count >= 1 + always = yes + } + } + NOT = { exists = scope:had_nick_the_merciful } + } + give_nickname = nick_the_merciful + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_merciful } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + intrigue >= 14 + diplomacy >= 14 + has_personality_extroverted_trigger = yes + NOT = { exists = scope:had_nick_the_silver_tongue } + } + give_nickname = nick_the_silver_tongue + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_silver_tongue } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + prowess >= 10 + attraction >= 30 + OR = { + has_trait = athletic + has_trait = strong + has_trait = physique_good + } + NOT = { exists = scope:had_nick_the_stallion } + } + give_nickname = nick_the_stallion + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_stallion } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = infirm + has_trait = withering_mind + probably_unintelligent_trigger = yes + } + NOT = { exists = scope:had_nick_the_forgetful } + } + modifier = { + has_trait = fickle + factor = 2 + } + give_nickname = nick_the_forgetful + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_forgetful } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = shy + has_trait = reclusive + } + has_personality_introverted_trigger = yes + has_personality_submissive_trigger = yes + piety_level >= 1 + NOT = { exists = scope:had_nick_the_hermit } + } + give_nickname = nick_the_hermit + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_hermit } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = shy + has_trait = reclusive + } + has_personality_introverted_trigger = yes + has_personality_submissive_trigger = yes + NOT = { exists = scope:had_nick_the_recluse } + } + give_nickname = nick_the_recluse + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_recluse } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = fragile_bones + has_trait = infirm + has_trait = spindly + has_trait = weak + has_trait = physique_bad + has_trait = bleeder + has_trait = inbred + } + NOR = { + has_trait = strong + has_trait = physique_good + } + NOT = { exists = scope:had_nick_the_feeble } + } + give_nickname = nick_the_feeble + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_feeble } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_dominant_trigger = yes + has_personality_extroverted_trigger = yes + has_trait = beauty_good + NOT = { exists = scope:had_nick_the_vain } + } + give_nickname = nick_the_vain + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_vain } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { + trigger = { + days_of_continuous_peace >= 700 + ai_has_economical_boom_personality = yes + any_held_title = { + count >= 4 + title_tier = county + title_province = { + has_ongoing_construction = yes + } + } + NOT = { exists = scope:had_nick_the_castellan } + } + modifier = { + any_held_title = { + count = all + title_tier = county + title_province = { + has_ongoing_construction = yes + } + } + factor = 2 + } + give_nickname = nick_the_castellan + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_castellan } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { + trigger = { + piety_level >= 2 + faith.religion = { is_in_family = rf_abrahamic } + days_of_continuous_peace >= 700 + ai_has_economical_boom_personality = yes + any_held_title = { + count >= 4 + title_tier = county + title_province = { + has_ongoing_construction = yes + } + } + NOT = { exists = scope:had_nick_the_carpenter } + } + modifier = { + any_held_title = { + count = all + title_tier = county + title_province = { + has_ongoing_construction = yes + } + } + factor = 2 + } + give_nickname = nick_the_carpenter + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_carpenter } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { + trigger = { + intrigue >= 10 + prowess >= 12 + martial >= 12 + has_education_martial_trigger = yes + NOT = { exists = scope:had_nick_the_griffin } + } + modifier = { + intrigue >= 16 + factor = 2 + } + give_nickname = nick_the_griffin + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_griffin } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_greed <= -50 + any_sponsored_inspiration = { } + prestige_level >= 2 + highest_held_title_tier >= tier_kingdom + NOT = { exists = scope:had_nick_the_patron_of_arts } + } + give_nickname = nick_the_patron_of_arts + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_patron_of_arts } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_zeal >= 100 + ai_rationality <= -50 + piety_level >= 2 + NOT = { exists = scope:had_nick_the_zealot } + } + give_nickname = nick_the_zealot + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_zealot } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + age >= 75 + NOT = { exists = scope:had_nick_the_elder } + } + give_nickname = nick_the_elder + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_elder } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + num_sinful_traits >= 1 + OR = { + has_trait = sadistic + has_trait = callous + } + ai_zeal <= 0 + NOT = { exists = scope:had_nick_the_evil } + } + modifier = { + num_sinful_traits >= 2 + factor = 2 + } + give_nickname = nick_the_evil + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_evil } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_extroverted_trigger = yes + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + diplomacy >= 8 + has_trait_malicious_trigger = no + NOT = { exists = scope:had_nick_the_jovial } + } + give_nickname = nick_the_jovial + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_jovial } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_extroverted_trigger = yes + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + ai_rationality < 0 + has_trait_malicious_trigger = no + NOT = { exists = scope:had_nick_the_jolly } + } + give_nickname = nick_the_jolly + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_jolly } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = lifestyle_mystic + has_trait = lunatic + has_trait = possessed + } + has_trait_malicious_trigger = no + NOT = { exists = scope:had_nick_the_strange } + } + give_nickname = nick_the_strange + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_strange } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = possessed + stress >= 200 + NOT = { exists = scope:had_nick_the_haunted } + } + give_nickname = nick_the_haunted + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_haunted } + trigger_event = lifestyle_nicknames.1000 + } + 300 = { + trigger = { + diplomacy < 8 + stewardship < 8 + martial < 8 + intrigue < 8 + learning < 8 + is_at_war_as_defender = yes + NOT = { exists = scope:had_nick_the_unlucky } + } + give_nickname = nick_the_unlucky + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_unlucky } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + any_relation = { + type = friend + always = yes + } + any_relation = { + type = lover + always = yes + } + is_at_war = no + gold >= 500 + realm_size >= 5 + has_any_illness = no + health > poor_health + stress < 100 + NOT = { exists = scope:had_nick_the_lucky } + } + give_nickname = nick_the_lucky + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lucky } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_male = yes + prowess <= 4 + martial <= 4 + has_education_learning_trigger = yes + prestige_level <= 1 + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nickname_root_scope } + NOT = { exists = scope:had_nick_the_effeminate } + } + give_nickname = nick_the_effeminate + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_effeminate } + trigger_event = lifestyle_nicknames.1000 + } +# 100 = { +# trigger = { +# is_male = yes +# culture = culture:anglo_saxon +# prowess <= 4 +# fertility <= 0.4 +# NOT = { +# any_child = { +# count > 1 +# } +# } +# NOT = { exists = scope:had_nick_softsword } +# } +# give_nickname = nick_softsword +# # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. +# flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_softsword } +# trigger_event = lifestyle_nicknames.1000 +# } + 100 = { + trigger = { + has_trait = fickle + ai_rationality <= -50 + prestige_level <= 2 + NOT = { exists = scope:had_nick_the_clueless } + } + modifier = { + probably_unintelligent_trigger = yes + factor = 2 + } + give_nickname = nick_the_clueless + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_clueless } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_vengefulness >= 35 + OR = { + has_trait = wrathful + has_trait = irritable + } + NOT = { exists = scope:had_nick_the_ill_tempered } + } + give_nickname = nick_the_ill_tempered + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_ill_tempered } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + calc_true_if = { + amount >= 2 + has_trait = maimed + has_trait = one_eyed + has_trait = one_legged + has_trait = disfigured + } + stress < 100 + health >= medium_health + NOT = { exists = scope:had_nick_the_resilient } + } + give_nickname = nick_the_resilient + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_resilient } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = lazy + AND = { + has_trait = reclusive + ai_energy <= -25 + } + } + NOT = { + has_trait = ambitious + } + days_of_continuous_peace = 3650 + NOT = { exists = scope:had_nick_do_nothing } + } + modifier = { + calc_true_if = { + amount >= 2 + prestige_level <= 2 + } + factor = 2 + } + give_nickname = nick_do_nothing + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_do_nothing } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lazy + ai_greed <= -25 + NOT = { + has_trait = ambitious + } + days_of_continuous_peace = 3650 + NOT = { exists = scope:had_nick_the_indolent } + } + modifier = { + calc_true_if = { + amount >= 2 + prestige_level <= 2 + } + factor = 2 + } + give_nickname = nick_the_indolent + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_indolent } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lazy + ai_boldness >= 25 + NOT = { exists = scope:had_nick_the_sluggard } + } + modifier = { + calc_true_if = { + amount >= 2 + prestige_level <= 2 + } + factor = 2 + } + give_nickname = nick_the_sluggard + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_sluggard } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = lazy + ai_boldness <= -50 + ai_energy <= -25 + days_of_continuous_peace = 3650 + NOT = { exists = scope:had_nick_the_idle } + } + modifier = { + calc_true_if = { + amount >= 2 + prestige_level <= 2 + } + factor = 2 + } + give_nickname = nick_the_idle + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_idle } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = dwarf + NOT = { exists = scope:had_nick_the_short } + } + give_nickname = nick_the_short + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_short } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = dwarf + NOT = { exists = scope:had_nick_elbow_high } + } + give_nickname = nick_elbow_high + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_elbow_high } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = athletic + prowess >= 12 + NOT = { exists = scope:had_nick_longshanks } + } + give_nickname = nick_longshanks + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_longshanks } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = wrathful + ai_boldness >= 25 + ai_rationality <= -25 + num_of_relation_rival >= 2 + NOT = { exists = scope:had_nick_the_wrathful } + } + give_nickname = nick_the_wrathful + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_wrathful } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + diplomacy <= 4 + has_personality_emotional_trigger = yes + has_personality_dominant_trigger = yes + NOT = { exists = scope:had_nick_the_petulant } + } + give_nickname = nick_the_petulant + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_petulant } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_personality_emotional_trigger = yes + num_of_relation_rival >= 4 + NOT = { exists = scope:had_nick_the_quarrelsome } + } + give_nickname = nick_the_quarrelsome + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_quarrelsome } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + is_eunuch_trigger = yes + NOT = { exists = scope:had_nick_the_eunuch } + } + give_nickname = nick_the_eunuch + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_eunuch } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = lifestyle_blademaster + any_equipped_character_artifact = { artifact_type = sword } + prowess >= 12 + NOT = { exists = scope:had_nick_longsword } + } + give_nickname = nick_longsword + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_longsword } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = lifestyle_blademaster + any_equipped_character_artifact = { artifact_type = axe } + prowess >= 12 + NOT = { exists = scope:had_nick_greataxe } + } + give_nickname = nick_greataxe + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_greataxe } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = lifestyle_blademaster + any_equipped_character_artifact = { artifact_type = mace } + prowess >= 12 + NOT = { exists = scope:had_nick_the_mace } + } + give_nickname = nick_the_mace + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_mace } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = lifestyle_blademaster + any_equipped_character_artifact = { artifact_type = spear } + prowess >= 12 + NOT = { exists = scope:had_nick_the_spear_of_capital } + } + give_nickname = nick_the_spear_of_capital + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_spear_of_capital } + trigger_event = lifestyle_nicknames.1000 + } + 200 = { + trigger = { + has_trait = lifestyle_blademaster + any_equipped_character_artifact = { artifact_type = hammer } + prowess >= 12 + NOT = { exists = scope:had_nick_the_maul } + } + give_nickname = nick_the_maul + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_maul } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + capital_province ?= { geographical_region = world_india } + prestige_level >= 3 + prowess >= 12 + martial >= 12 + NOT = { exists = scope:had_nick_the_tiger_of_place } + } + give_nickname = nick_the_tiger_of_place + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_tiger_of_place } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + diplomacy >= 16 + has_personality_extroverted_trigger = yes + has_royal_court = yes + has_dlc_feature = royal_court + court_grandeur_current_level >= 9 + NOT = { exists = scope:had_nick_the_lover_of_elegance } + } + give_nickname = nick_the_lover_of_elegance + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_lover_of_elegance } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + has_trait = strong + has_trait = physique_good + } + NOR = { + has_trait = weak + has_trait = spindly + has_trait = physique_bad + } + NOT = { exists = scope:had_nick_the_stout } + } + give_nickname = nick_the_stout + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_stout } + trigger_event = lifestyle_nicknames.1000 + } + 10 = { + trigger = { + diplomacy >= 16 + intrigue >= 16 + has_personality_levelheaded_trigger = yes + NOT = { exists = scope:had_nick_the_universal_spider } + } + give_nickname = nick_the_universal_spider + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_universal_spider } + trigger_event = lifestyle_nicknames.1000 + } + 25 = { + trigger = { + any_character_artifact = { + count >= 6 + is_unique = yes + } + NOT = { exists = scope:had_nick_the_collector } + } + give_nickname = nick_the_collector + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_collector } + trigger_event = lifestyle_nicknames.1000 + } + 50 = { + trigger = { + highest_held_title_tier >= tier_kingdom + prestige_level >= 3 + has_personality_dominant_trigger = yes + max_number_maa_soldiers_of_base_type = { + type = heavy_cavalry + value >= 500 + } + any_held_title = { + title_tier = county + any_county_province = { + has_building_with_flag = special_mine + #OR = { + # has_building_or_higher = rammelsberg_mines_01 + # has_building_or_higher = kutna_hora_mines_01 + # has_building_or_higher = kremnica_mines_01 + # has_building_or_higher = falun_mines_01 + # has_building_or_higher = schwaz_mines_01 + # has_building_or_higher = argentiera_mines_01 + # has_building_or_higher = kollur_mines_01 + # has_building_or_higher = ratnapura_mines_01 + # has_building_or_higher = siderokausia_mines_01 + # has_building_or_higher = mali_mines_01 + # has_building_or_higher = zawar_mines_01 + # has_building_or_higher = pansjhir_mines_01 + # has_building_or_higher = takkeda_mines_01 + # has_building_or_higher = trepca_mines_01 + # has_building_or_higher = cevennes_mines_01 + # has_building_or_higher = taghaza_mines_01 + # has_building_or_higher = allaq_mines_01 + # has_building_or_higher = phocaea_mines_01 + # has_building_or_higher = khetri_mines_01 + # has_building_or_higher = verespatak_mines_01 + # has_building_or_higher = srebrenica_mines_01 + # has_building_or_higher = nishapur_mines_01 + # has_building_or_higher = turda_mines_01 + # has_building_or_higher = rudnik_mines_01 + # has_building_or_higher = ijil_mines_01 + # has_building_or_higher = mogok_mines_01 + # has_building_or_higher = sar_i_sang_mines_01 + #} + } + } + NOT = { exists = scope:had_nick_the_iron_and_golden_king } + } + give_nickname = nick_the_iron_and_golden_king + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_iron_and_golden_king } + trigger_event = lifestyle_nicknames.1000 + } + 2000 = { + trigger = { + has_trait = incapable + NOT = { exists = scope:had_nick_the_sleeper } + } + give_nickname = nick_the_sleeper + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_sleeper } + trigger_event = lifestyle_nicknames.1000 + } + 10000 = { + trigger = { + has_trait = incapable + NOT = { exists = scope:had_nick_the_sleeping_king } + } + give_nickname = nick_the_sleeping_king + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_sleeping_king } + trigger_event = lifestyle_nicknames.1000 + } + 1000 = { + trigger = { + exists = liege + exists = mother + liege.culture = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + culture = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + mother.culture = { + NOR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + NOT = { + faith = { has_dominant_ruling_gender = dummy_male} + } + NOT = { exists = scope:had_nick_the_foreign_mother } + } + give_nickname = nick_the_foreign_mother + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_foreign_mother } + trigger_event = lifestyle_nicknames.1000 + } + 1000 = { + trigger = { + exists = liege + exists = father + liege.culture = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + culture = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + father.culture = { + NOR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + NOT = { + faith = { has_dominant_ruling_gender = dummy_female} + } + NOT = { exists = scope:had_nick_the_foreign_father } + } + give_nickname = nick_the_foreign_father + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_foreign_father } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + current_weight >= 50 + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + } + NOT = { exists = scope:had_nick_the_corpulent } + } + modifier = { + current_weight >= 75 + factor = 2 + } + give_nickname = nick_the_corpulent + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_corpulent } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + top_liege != this + OR = { + is_a_faction_member = yes + has_trait = disloyal + } + ai_boldness >= 50 + NOT = { exists = scope:had_nick_the_insubordinate } + } + give_nickname = nick_the_insubordinate + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_insubordinate } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = disloyal + intrigue >= 15 + NOT = { exists = scope:had_nick_the_backstabber } + } + modifier = { + is_at_war_with_liege = yes + factor = 2 + } + give_nickname = nick_the_backstabber + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_backstabber } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_greed >= 50 + ai_honor <= 50 + gold >= massive_gold_value + NOT = { exists = scope:had_nick_the_corrupt } + } + modifier = { + has_trait = disloyal + factor = 2 + } + give_nickname = nick_the_corrupt + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_corrupt } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + probably_unintelligent_trigger = yes + OR = { + AND = { + diplomacy <= 6 + martial <= 6 + stewardship <= 6 + intrigue <= 6 + learning <= 6 + } + AND = { + government_allows = administrative + governor_efficiency <= 0.7 + } + prestige_level <= 2 + } + NOT = { exists = scope:had_nick_the_incompetent } + } + modifier = { + government_allows = administrative + governor_efficiency <= 0.6 + factor = 2 + } + give_nickname = nick_the_incompetent + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_incompetent } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + ai_rationality <= -50 + ai_boldness >= 50 + OR = { + has_trait = profligate + has_trait = reckless + } + NOT = { exists = scope:had_nick_the_gambler } + } + give_nickname = nick_the_gambler + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_gambler } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + diplomacy <= 3 + has_personality_extroverted_trigger = yes + OR = { + has_trait = wrathful + has_trait = drunkard + has_trait = honest + has_trait = eccentric + has_trait = impatient + } + prestige_level <= 2 + NOT = { exists = scope:had_nick_the_obscene } + } + give_nickname = nick_the_obscene + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_obscene } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + has_trait = greedy + gold > massive_gold_value + NOT = { + has_trait = improvident + } + OR = { + has_royal_court = no + court_grandeur_current_level < court_grandeur_minimum_expected_level + } + NOT = { exists = scope:had_nick_the_miser } + } + give_nickname = nick_the_miser + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_miser } + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + stress_level >= 3 + gold < 0 + NOT = { exists = scope:had_nick_the_unfortunate } + } + give_nickname = nick_the_unfortunate + # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. + flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_the_unfortunate } + trigger_event = lifestyle_nicknames.1000 + } +# 100 = { +# trigger = { +# culture = { +# OR = { +# this = culture:norman +# any_parent_culture_or_above = { this = culture:norman } +# } +# } +# calc_true_if = { +# amount >= 3 +# has_trait = wrathful +# has_trait = ambitious +# has_trait = lifestyle_hunter +# has_trait = education_martial +# has_trait = logistician +# } +# NOT = { exists = scope:had_nick_curtmantle } +# } +# give_nickname = nick_curtmantle +# # Flag this as having been spat out already, in case we're applying several nicknames in quick succession. +# flag_random_nickname_as_taken_in_batch_effect = { NICK = nick_curtmantle } +# trigger_event = lifestyle_nicknames.1000 +# } + } + } +} + +#Chooses a random appropriate NEGATIVE nickname and sets it on the scoped character +#Much looser trigger than generic random nickname effect as it needs to get any that are relevant +set_random_negative_nickname_effect = { + save_scope_as = nick_recipient + custom_tooltip = receive_slanderous_nickname_tt + hidden_effect = { + random_list = { + 100 = { + trigger = { + is_male = yes + OR = { + has_trait = stubborn + has_trait = impatient + has_trait = ambitious + has_trait = arrogant + } + NOR = { + prestige_level >= 3 + portrait_shared_clothing_contents_trigger = { # They have a chance to be bald normally; it's not weird or tease-worthy + CULTURE_SCOPE = culture + CULTURE_FLAG = african + } + is_bald_trigger = yes + exists = scope:had_nick_the_actually_bald + } + any_claim = { + tier >= tier_kingdom + } + highest_held_title_tier < tier_kingdom + } + modifier = { + prestige_level < 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_bald_ironic + } + } + 10 = { + trigger = { + is_male = yes + age >= 30 + NOR = { + portrait_shared_clothing_contents_trigger = { # They have a chance to be bald normally; it's not weird or tease-worthy + CULTURE_SCOPE = culture + CULTURE_FLAG = african + } + is_bald_trigger = yes + exists = scope:had_nick_the_actually_bald + } + } + modifier = { + add = scope:nick_recipient.age + } + set_nickname_effect = { + NICKNAME = nick_the_actually_bald + } + } + 100 = { + trigger = { + NOR = { + has_trait = crusader_king + mpo_has_gok_mongol_empire_trigger = yes + } + NOT = { + any_realm_county = { + culture = scope:nick_recipient.culture + } + } + NOT = { + primary_title ?= { + any_past_holder = { + has_nickname = nick_the_stranger + } + } + } + } + modifier = { + NOT = { + any_realm_county = { + culture = { + cultural_acceptance = { target = scope:nick_recipient.culture value >= 40 } + } + } + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_stranger + } + } + 100 = { + trigger = { + is_playable_character = yes + NOR = { + any_sub_realm_county = { + faith = scope:nick_recipient.faith + } + AND = { + top_liege != this + faith = liege.faith + } + government_has_flag = government_is_theocracy + government_has_flag = government_is_landless_adventurer + } + } + modifier = { + has_trait = zealous + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_faith + } + } + 100 = { + trigger = { + OR = { + has_trait = deceitful + has_trait = fickle + has_trait = ambitious + has_trait = greedy + has_trait = eccentric + has_trait = gregarious + has_Trait = arbitrary + } + NOR = { + has_trait = shy + has_trait = calm + } + ai_boldness >= 75 + ai_honor < -25 + } + modifier = { + ai_honor <= -100 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_troublemaker + } + } + 100 = { + trigger = { + is_male = yes + OR = { + has_trait = lazy + has_trait = lunatic + has_trait = drunkard + has_trait = hashishiyah + has_trait = beauty_bad_1 + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + } + is_bald_trigger = no + } + modifier = { + prestige_level < 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_hairy + } + } + 100 = { + trigger = { + is_in_civil_war = yes + tyranny > 0 + } + modifier = { + diplomacy <= 4 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_unready + } + } + 100 = { + trigger = { + OR = { + has_trait = wrathful + has_trait = irritable + has_trait = impatient + has_trait = ambitious + has_trait = vengeful + } + is_at_war = yes + any_character_war = { + primary_attacker = scope:nick_recipient + } + } + modifier = { + calc_true_if = { + amount >= 2 + has_trait = wrathful + has_trait = irritable + has_trait = impatient + has_trait = ambitious + has_trait = vengeful + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_quarreller + } + } + 100 = { + trigger = { + OR = { + has_trait = wrathful + has_trait = irritable + has_trait = impatient + has_trait = fickle + } + is_at_war = yes + any_character_war = { + primary_attacker = scope:nick_recipient + attacker_war_score <= -50 + } + } + modifier = { + calc_true_if = { + amount >= 2 + has_trait = wrathful + has_trait = irritable + has_trait = impatient + has_trait = fickle + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_rash + } + } + 100 = { + trigger = { + OR = { + has_trait = deceitful + has_trait = arbitrary + has_trait = ambitious + has_trait = callous + has_trait = sadistic + has_trait = disloyal + has_trait = fickle + } + any_killed_character = { + is_close_family_of = scope:nick_recipient + } + } + modifier = { + is_at_war_with_liege = yes + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_traitor + } + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + any_killed_character = { + count >= 10 + death_reason = death_execution + } + } + set_nickname_effect = { + NICKNAME = nick_the_executioner + } + } + 50 = { + trigger = { + learning >= 10 + has_personality_dominant_trigger = yes + has_personality_extroverted_trigger = yes + } + modifier = { + is_clergy = yes + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_turbulent + } + } + 100 = { + trigger = { + has_trait = witch + NOT = { faith = { has_doctrine = doctrine_witchcraft_accepted } } + } + modifier = { + piety_level <= 1 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_witch + } + } + 100 = { + trigger = { + piety_level <= 1 + ai_rationality <= -25 + stress_level >= 1 + } + set_nickname_effect = { + NICKNAME = nick_the_bewitched + } + } + 100 = { + trigger = { + has_trait = drunkard + } + modifier = { + prestige_level <= 1 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_drunkard + } + } + 100 = { + trigger = { + has_trait = drunkard + faith.religion = religion:folkgerman_religion + } + modifier = { + prestige_level <= 1 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_ale_lover + } + } + 100 = { + trigger = { + ai_greed >= 50 + } + modifier = { + has_trait = greedy + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_greedy + } + } + 100 = { +# trigger = { +# culture = culture:anglo_saxon +# is_male = yes +# ai_greed >= 50 +# gold >= 100 +# } +# modifier = { +# has_trait = greedy +# factor = 2 +# } +# set_nickname_effect = { +# NICKNAME = nick_pennyfather +# } +# } + 100 = { + trigger = { + has_trait = gluttonous + has_personality_introverted_trigger = no + } + set_nickname_effect = { + NICKNAME = nick_foul_fart + } + } + 100 = { + trigger = { + OR = { + has_personality_submissive_trigger = yes + has_personality_introverted_trigger = yes + } + } + set_nickname_effect = { + NICKNAME = nick_the_timid + } + } + 100 = { + trigger = { + any_powerful_vassal = { + count >= 3 + } + any_powerful_vassal = { + count = all + opinion = { + target = scope:nick_recipient + value <= -25 + } + } + } + modifier = { + prestige_level <= 0 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_unworthy + } + } + 100 = { + trigger = { + OR = { + has_trait = adulterer + AND = { + exists = primary_spouse + exposed_cheating_on_spouse_trigger = { SPOUSE = scope:nick_recipient.primary_spouse } + } + } + + } + set_nickname_effect = { + NICKNAME = nick_the_unfaithful + } + } + 100 = { + trigger = { + is_male = yes + any_child = { + count >= 4 + mother ?= { + is_married = yes + NOT = { + is_consort_of = scope:nick_recipient + } + } + } + any_child = { + count = all + mother ?= { + is_married = yes + NOT = { + is_consort_of = scope:nick_recipient + } + add_to_temporary_list = cuckoo + } + } + any_in_list = { + list = cuckoo + count >= 4 + } + } + set_nickname_effect = { + NICKNAME = nick_cuckoo + } + } + 100 = { + trigger = { + OR = { + has_trait = fornicator + has_trait = adulterer + AND = { + exists = primary_spouse + exposed_cheating_on_spouse_trigger = { SPOUSE = scope:nick_recipient.primary_spouse } + } + } + } + set_nickname_effect = { + NICKNAME = nick_the_unchaste + } + } + 100 = { + trigger = { + is_female = yes + any_relation = { type = lover } + OR = { + has_trait = lustful + has_trait = beauty_good + attraction >= 50 + has_trait = fornicator + has_trait = adulterer + } + } + modifier = { + num_of_relation_lover >= 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_temptress + } + } + 100 = { + trigger = { + is_female = yes + any_relation = { type = lover } + OR = { + has_trait = lustful + has_trait = beauty_good + attraction >= 50 + has_trait = fornicator + has_trait = adulterer + } + } + modifier = { + num_of_relation_lover >= 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_seductress + } + } + 100 = { + trigger = { + OR = { + has_trait = lustful + has_trait = lovers_pox + has_trait = early_great_pox + has_trait = great_pox + has_trait = deviant + } + } + modifier = { + any_relation = { type = lover } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_lewd + } + } + 100 = { + trigger = { + is_male = yes + any_relation = { type = lover } + OR = { + has_trait = lustful + has_trait = beauty_good + attraction >= 50 + has_trait = fornicator + has_trait = adulterer + } + } + modifier = { + num_of_relation_lover >= 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_lecher + } + } + 100 = { + trigger = { + is_male = yes + any_relation = { type = lover } + OR = { + has_trait = lustful + has_trait = beauty_good + attraction >= 50 + has_trait = fornicator + has_trait = adulterer + } + } + modifier = { + num_of_relation_lover >= 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_seducer + } + } + 100 = { + trigger = { + OR = { + has_trait = deceitful + has_trait = schemer + has_trait = disloyal + } + intrigue >= 12 + } + modifier = { + intrigue >= 20 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_trickster + } + } + 100 = { + trigger = { + diplomacy >= 10 + intrigue >= 10 + learning >= 10 + martial >= 10 + stewardship >= 10 + ai_rationality >= 25 + } + modifier = { + prestige_level >= 3 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_shrewd + } + } + 100 = { + trigger = { + ai_rationality <= -50 + OR = { + has_personality_emotional_trigger = yes + has_personality_extroverted_trigger = yes + } + has_personality_dominant_trigger = no + } + modifier = { + ai_rationality <= -75 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_silly + } + } + 100 = { + trigger = { + gold >= 500 + ai_greed >= 50 + } + modifier = { + gold >= 2000 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_moneybags + } + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + ai_boldness >= 25 + any_killed_character = { + count >= 1 + always = yes + } + } + modifier = { + any_killed_character = { + count >= 3 + always = yes + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_ruthless + } + } + 100 = { + trigger = { + has_personality_dominant_trigger = yes + has_personality_malicious_trigger = yes + prowess >= 12 + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nick_recipient } + } + set_nickname_effect = { + NICKNAME = nick_the_brute + } + } + 100 = { + trigger = { + OR = { + has_trait = sadistic + has_trait = torturer + has_trait = murderer + has_trait = kinslayer_1 + has_trait = kinslayer_2 + has_trait = kinslayer_3 + } + } + modifier = { + any_killed_character = { + count >= 4 + always = yes + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_butcher + } + } + 100 = { + trigger = { + any_killed_character = { + count >= 3 + always = yes + } + } + modifier = { + any_killed_character = { + count >= 5 + always = yes + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_bloody + } + } + 100 = { + trigger = { + OR = { + has_trait = shy + has_trait = reclusive + has_trait = content + } + has_personality_introverted_trigger = yes + } + set_nickname_effect = { + NICKNAME = nick_the_silent + } + } + 100 = { + trigger = { + OR = { + has_trait = deviant + has_trait = cannibal + has_trait = lunatic + has_trait = incestuous + AND = { + has_personality_malicious_trigger = yes + has_personality_emotional_trigger = yes + } + } + } + set_nickname_effect = { + NICKNAME = nick_the_depraved + } + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + OR = { + has_trait = torturer + has_trait = sadistic + has_trait = callous + has_trait = vengeful + tyranny > 0 + dread >= 50 + } + } + set_nickname_effect = { + NICKNAME = nick_the_cruel + } + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + OR = { + has_trait = giant + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + has_trait = scaly + } + OR = { + tyranny > 0 + dread >= 20 + } + } + set_nickname_effect = { + NICKNAME = nick_the_abominable + } + } + 100 = { + trigger = { + OR = { + AND = { + has_personality_malicious_trigger = yes + num_sinful_traits = 1 + } + num_sinful_traits > 1 + piety_level <= 0 + has_trait = excommunicated + } + } + modifier = { + num_sinful_traits > 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_wicked + } + } + 100 = { + trigger = { + OR = { + num_sinful_traits >= 1 + piety_level <= 0 + has_trait = excommunicated + } + } + modifier = { + num_sinful_traits >= 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_accursed + } + } + 100 = { + trigger = { + exists = cp:councillor_court_chaplain + opinion = { + target = cp:councillor_court_chaplain + value <= -50 + } + } + modifier = { + num_sinful_traits >= 1 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_priest_hater + } + } + 100 = { + trigger = { + top_liege != this + NOR = { + religion = liege.religion + faith = { has_doctrine = doctrine_pluralism_pluralistic } + } + } + set_nickname_effect = { + NICKNAME = nick_the_heathen + } + } + 100 = { + trigger = { + faith.religion = { is_in_family = rf_abrahamic } + OR = { + dread >= 25 + piety_level <= 0 + has_trait = excommunicated + } + has_personality_malicious_trigger = yes + } + modifier = { + num_sinful_traits >= 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_devil + } + } + 100 = { + trigger = { + faith.religion = { is_in_family = rf_abrahamic } + OR = { + num_sinful_traits >= 1 + piety_level <= 0 + has_trait = excommunicated + } + has_personality_dominant_trigger = yes + } + set_nickname_effect = { + NICKNAME = nick_the_black + } + } + 100 = { + trigger = { + OR = { + AND = { + has_personality_malicious_trigger = yes + dread > 0 + } + tyranny >= 10 + dread >= 50 + } + } + modifier = { + tyranny >= 75 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_terrible + } + } + 100 = { + trigger = { + OR = { + has_personality_dominant_trigger = yes + tyranny >= 25 + } + tyranny >= 0 + } + modifier = { + tyranny >= 50 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_tyrant + } + } + 50 = { + trigger = { + age >= 60 + } + modifier = { + age >= 80 + factor = 5 + } + set_nickname_effect = { + NICKNAME = nick_the_old + } + } + 100 = { + trigger = { + OR = { + has_trait = shy + has_trait = reclusive + } + has_personality_introverted_trigger = yes + } + modifier = { + has_personality_submissive_trigger = yes + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_shy + } + } + 100 = { + trigger = { + age <= 25 + } + modifier = { + age <= 20 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_young + } + } + 100 = { + trigger = { + is_male = yes + OR = { + has_trait = bastard + has_trait = legitimized_bastard + has_trait = bastard_founder + } + } + modifier = { + prestige_level <= 1 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_bastard + } + } + 100 = { + trigger = { + OR = { + AND = { + has_personality_dominant_trigger = yes + ai_boldness >= 50 + } + has_trait = arrogant + has_trait = ambitious + } + } + modifier = { + prestige_level >= 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_proud + } + } + 100 = { + trigger = { + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + has_trait = gluttonous + current_weight >= 50 + } + } + modifier = { + current_weight >= 75 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_girthy + } + } + 100 = { + trigger = { + OR = { + has_trait = lunatic + has_trait = possessed + has_trait = eccentric + AND = { + ai_rationality <= -50 + tyranny >= 25 + has_personality_emotional_trigger = yes + } + } + } + set_nickname_effect = { + NICKNAME = nick_the_mad + } + } + 100 = { + trigger = { + probably_unintelligent_trigger = yes + } + set_nickname_effect = { + NICKNAME = nick_the_simple + } + } + 500 = { + trigger = { + has_trait = leper + } + set_nickname_effect = { + NICKNAME = nick_the_leper + } + } + 300 = { + trigger = { + OR = { + has_trait = maimed + scarred_trait_activation_3 = yes + } + } + set_nickname_effect = { + NICKNAME = nick_half_hand + } + } + 100 = { + trigger = { + OR = { + has_trait = beauty_bad + has_trait = hunchbacked + has_trait = scaly + has_trait = disfigured + has_trait = inbred + scarred_trait_activation_3 = yes + } + NOT = { + has_trait = beauty_good + } + } + modifier = { + OR = { + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_hideous + } + } + 100 = { + trigger = { + OR = { + has_trait = beauty_bad + has_trait = hunchbacked + has_trait = scaly + has_trait = inbred + } + NOT = { + has_trait = beauty_good + } + } + modifier = { + OR = { + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_frog + } + } + 100 = { + trigger = { + OR = { + has_trait = beauty_bad + has_trait = hunchbacked + has_trait = scaly + has_trait = inbred + scarred_trait_activation_3 = yes + } + NOT = { + has_trait = beauty_good + } + } + modifier = { + OR = { + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_repulsive + } + } + 100 = { + trigger = { + OR = { + has_trait = fragile_bones + has_trait = infirm + has_trait = weak + has_trait = spindly + has_trait = physique_bad + has_trait = bleeder + has_trait = inbred + } + NOT = { + has_trait = physique_good + } + } + modifier = { + OR = { + has_trait = physique_bad_2 + has_trait = physique_bad_3 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_frail + } + } + 100 = { + trigger = { + prowess < 10 + OR = { + has_trait = fragile_bones + has_trait = infirm + has_trait = spindly + has_trait = weak + has_trait = physique_bad + has_trait = bleeder + has_trait = inbred + prowess <= 2 + } + NOT = { + has_trait = physique_good + } + } + modifier = { + OR = { + has_trait = physique_bad_2 + has_trait = physique_bad_3 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_weak + } + } + 100 = { + trigger = { + OR = { + has_trait = clubfooted + has_trait = weak + has_trait = spindly + has_trait = physique_bad + has_trait = infirm + } + NOT = { + has_trait = physique_good + } + } + modifier = { + has_trait = clubfooted + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_lame + } + } + 1000 = { + trigger = { + has_trait = lisping + has_trait = clubfooted + } + set_nickname_effect = { + NICKNAME = nick_the_lisp_and_lame + } + } + 300 = { + trigger = { + has_trait = hunchbacked + } + set_nickname_effect = { + NICKNAME = nick_the_hunchback + } + } + 100 = { + trigger = { + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + has_trait = gluttonous + current_weight >= 50 + } + } + modifier = { + current_weight >= 75 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_fat + } + } +# 100 = { +# trigger = { +# culture = culture:anglo_saxon +# OR = { +# loves_food_trigger = yes +# has_trait = lifestyle_reveler +# current_weight >= 50 +# } +# } +# modifier = { +# current_weight >= 75 +# factor = 2 +# } +# set_nickname_effect = { +# NICKNAME = nick_chubbycheeks +# } +# } + 50 = { + trigger = { + OR = { + current_weight >= 50 + loves_food_trigger = yes + has_trait = lifestyle_reveler + has_trait = gluttonous + } + diplomacy <= 8 + } + modifier = { + current_weight >= 75 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_slobberer + } + } + 50 = { + trigger = { + OR = { + current_weight >= 50 + loves_food_trigger = yes + has_trait = lifestyle_reveler + has_trait = gluttonous + } + } + modifier = { + current_weight >= 75 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_rotund + } + } + 25 = { + trigger = { + OR = { + current_weight >= 50 + loves_food_trigger = yes + has_trait = lifestyle_reveler + has_trait = gluttonous + } + } + modifier = { + current_weight >= 75 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_plump + } + } + 200 = { + trigger = { + has_trait = blind + } + set_nickname_effect = { + NICKNAME = nick_the_blind + } + } + 200 = { + trigger = { + has_trait = stuttering + } + set_nickname_effect = { + NICKNAME = nick_the_stammerer + } + } + 200 = { + trigger = { + has_trait = gout_ridden + } + set_nickname_effect = { + NICKNAME = nick_the_gouty + } + } + 100 = { + trigger = { + OR = { + has_trait = consumption + has_trait = cancer + has_trait = pneumonic + has_trait = typhus + has_trait = smallpox + has_trait = measles + has_trait = dysentery + has_trait = ergotism + has_trait = bubonic_plague + } + } + set_nickname_effect = { + NICKNAME = nick_the_diseased + } + } + 25 = { + trigger = { + dynasty ?= { dynasty_prestige_level >= 2 } + prestige_level <= 1 + } + set_nickname_effect = { + NICKNAME = nick_the_disgraceful + } + } + 100 = { + trigger = { + OR = { + has_trait = maimed + AND = { + has_trait = scarred + prowess < 8 + } + } + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nick_recipient } + } + set_nickname_effect = { + NICKNAME = nick_bad_hand + } + } + 100 = { + trigger = { + has_trait = one_eyed + } + set_nickname_effect = { + NICKNAME = nick_the_one_eyed + } + } + 50 = { + trigger = { + OR = { + has_trait = craven + AND = { + has_personality_submissive_trigger = yes + dread <= 0 + } + } + } + modifier = { + prestige_level <= 1 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_trembling + } + } + 100 = { + trigger = { + has_trait = craven + has_personality_submissive_trigger = yes + } + modifier = { + prestige_level <= 1 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_craven + } + } + 100 = { + trigger = { + OR = { + has_trait = lunatic + has_trait = possessed + has_trait = eccentric + AND = { + tyranny >= 50 + ai_rationality <= -50 + has_personality_emotional_trigger = yes + } + } + } + set_nickname_effect = { + NICKNAME = nick_the_insane + } + } + 100 = { + trigger = { + OR = { + AND = { + has_personality_introverted_trigger = yes + has_personality_levelheaded_trigger = yes + } + has_trait = depressed_1 + has_trait = depressed_genetic + } + } + set_nickname_effect = { + NICKNAME = nick_the_joyless + } + } + 100 = { + trigger = { + probably_unintelligent_trigger = yes + OR = { + has_personality_introverted_trigger = yes + has_personality_levelheaded_trigger = yes + } + } + set_nickname_effect = { + NICKNAME = nick_the_dull + } + } + 100 = { + trigger = { + has_trait = one_eyed + } + set_nickname_effect = { + NICKNAME = nick_one_eye + } + } + 300 = { + trigger = { + has_trait = maimed + } + set_nickname_effect = { + NICKNAME = nick_one_hand + } + } + 300 = { + trigger = { + intrigue >= 15 + has_trait = disfigured + } + set_nickname_effect = { + NICKNAME = nick_of_a_thousand_faces + } + } + 100 = { + trigger = { + OR = { + has_trait = consumption + has_trait = cancer + has_trait = pneumonic + has_trait = typhus + has_trait = smallpox + has_trait = measles + has_trait = dysentery + has_trait = ergotism + has_trait = bubonic_plague + } + } + set_nickname_effect = { + NICKNAME = nick_the_plaguebearer + } + } + 100 = { + trigger = { + OR = { + has_trait = physique_good + has_trait = beauty_good + } + OR = { + has_trait = physique_bad_2 + has_trait = physique_bad_3 + has_trait = beauty_bad_2 + has_trait = beauty_bad_3 + has_trait = giant + has_trait = albino + has_trait = scaly + has_trait = spindly + has_trait = hunchbacked + } + } + set_nickname_effect = { + NICKNAME = nick_the_chimera + } + } + 50 = { + trigger = { + highest_held_title_tier <= tier_duchy + domain_size <= 2 + any_sibling = { + highest_held_title_tier >= tier_kingdom + domain_size >= 4 + prestige_level >= scope:nick_recipient.prestige_level + } + } + set_nickname_effect = { + NICKNAME = nick_lackland + } + } + 100 = { + trigger = { + OR = { + has_trait = strong + has_trait = physique_good + prowess >= 18 + } + OR = { + has_trait = beauty_bad + has_trait = hunchbacked + has_trait = scaly + has_trait = disfigured + scarred_trait_activation_3 = yes + } + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nick_recipient } + } + set_nickname_effect = { + NICKNAME = nick_the_boar + } + } + 100 = { + trigger = { + has_trait = disfigured + has_personality_introverted_trigger = yes + } + set_nickname_effect = { + NICKNAME = nick_the_faceless + } + } + 300 = { + trigger = { + has_trait = giant + has_trait = one_eyed + } + set_nickname_effect = { + NICKNAME = nick_the_cyclops + } + } + 100 = { + trigger = { + has_trait = giant + OR = { + has_trait = weak + has_trait = spindly + has_trait = physique_bad + } + } + set_nickname_effect = { + NICKNAME = nick_the_beanstalk + } + } + 100 = { + trigger = { + OR = { + tyranny > 0 + stewardship <= 4 + } + diplomacy <= 8 + } + modifier = { + diplomacy <= 4 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_ill_ruler + } + } + 100 = { + trigger = { + is_in_civil_war = yes + OR = { + tyranny > 0 + diplomacy <= 8 + } + } + modifier = { + diplomacy <= 4 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_careless + } + } + 50 = { + trigger = { + gold <= 0 + } + modifier = { + factor = debt_level + } + set_nickname_effect = { + NICKNAME = nick_of_the_empty_pockets + } + } + 100 = { + trigger = { + OR = { + has_trait = withering_mind + has_trait = infirm + probably_unintelligent_trigger = yes + } + } + modifier = { + has_trait = fickle + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_forgetful + } + } + 100 = { + trigger = { + OR = { + has_trait = shy + has_trait = reclusive + } + has_personality_introverted_trigger = yes + } + set_nickname_effect = { + NICKNAME = nick_the_hermit + } + } + 100 = { + trigger = { + OR = { + has_trait = shy + has_trait = reclusive + } + has_personality_introverted_trigger = yes + } + set_nickname_effect = { + NICKNAME = nick_the_recluse + } + } + 100 = { + trigger = { + OR = { + has_trait = fragile_bones + has_trait = infirm + has_trait = spindly + has_trait = weak + has_trait = physique_bad + has_trait = bleeder + has_trait = inbred + prowess <= 2 + } + NOR = { + has_trait = strong + has_trait = physique_good + } + } + set_nickname_effect = { + NICKNAME = nick_the_feeble + } + } + 100 = { + trigger = { + has_personality_dominant_trigger = yes + OR = { + has_trait = arrogant + has_trait = lustful + has_trait = lazy + has_personality_extroverted_trigger = yes + } + has_trait = beauty_good + } + set_nickname_effect = { + NICKNAME = nick_the_vain + } + } + 100 = { + trigger = { + ai_zeal >= 100 + ai_rationality <= -20 + } + set_nickname_effect = { + NICKNAME = nick_the_zealot + } + } + 100 = { + trigger = { + has_personality_malicious_trigger = yes + OR = { + has_trait = sadistic + has_trait = callous + num_sinful_traits >= 1 + } + } + modifier = { + num_sinful_traits >= 2 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_evil + } + } + 100 = { + trigger = { + OR = { + has_trait = lifestyle_mystic + has_trait = lunatic + has_trait = possessed + has_trait = witch + has_trait = eccentric + } + has_trait_malicious_trigger = no + } + set_nickname_effect = { + NICKNAME = nick_the_strange + } + } + 100 = { + trigger = { + has_trait = possessed + } + set_nickname_effect = { + NICKNAME = nick_the_haunted + } + } + 300 = { + trigger = { + OR = { + AND = { + diplomacy <= 6 + stewardship <= 6 + martial <= 6 + intrigue <= 6 + learning <= 6 + } + stress_level >= 3 + } + } + set_nickname_effect = { + NICKNAME = nick_the_unlucky + } + } + 100 = { + trigger = { + is_male = yes + prowess <= 4 + martial <= 4 + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:nick_recipient } + } + set_nickname_effect = { + NICKNAME = nick_the_effeminate + } + } +# 100 = { +# trigger = { +# is_male = yes +# culture = culture:anglo_saxon +# prowess <= 6 +# fertility <= 0.4 +# NOT = { +# any_child = { +# count > 1 +# } +# } +# } +# set_nickname_effect = { +# NICKNAME = nick_softsword +# } +# } + 100 = { + trigger = { + has_trait = fickle + ai_rationality <= -25 + } + modifier = { + probably_unintelligent_trigger = yes + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_clueless + } + } + 100 = { + trigger = { + ai_vengefulness >= 35 + OR = { + has_trait = wrathful + has_trait = irritable + has_trait = fickle + has_trait = stubborn + } + } + set_nickname_effect = { + NICKNAME = nick_the_ill_tempered + } + } + 100 = { + trigger = { + OR = { + has_trait = lazy + AND = { + has_trait = reclusive + ai_energy <= -20 + } + } + NOR = { + has_trait = ambitious + has_trait = diligent + } + } + modifier = { + calc_true_if = { + amount >= 2 + prestige_level <= 2 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_do_nothing + } + } + 100 = { + trigger = { + has_trait = lazy + ai_greed <= -20 + NOR = { + has_trait = ambitious + } + } + modifier = { + calc_true_if = { + amount >= 2 + prestige_level <= 2 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_indolent + } + } + 100 = { + trigger = { + has_trait = lazy + ai_boldness <= -20 + } + modifier = { + calc_true_if = { + amount >= 2 + prestige_level <= 2 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_sluggard + } + } + 100 = { + trigger = { + has_trait = lazy + ai_boldness <= -20 + ai_energy <= -20 + } + modifier = { + calc_true_if = { + amount >= 2 + prestige_level <= 2 + } + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_idle + } + } + 100 = { + trigger = { + has_trait = dwarf + } + set_nickname_effect = { + NICKNAME = nick_the_short + } + } + 100 = { + trigger = { + has_trait = dwarf + } + set_nickname_effect = { + NICKNAME = nick_elbow_high + } + } + 100 = { + trigger = { + has_trait = wrathful + ai_rationality <= -25 + any_relation = { type = rival } + } + set_nickname_effect = { + NICKNAME = nick_the_wrathful + } + } + 100 = { + trigger = { + diplomacy <= 4 + has_personality_emotional_trigger = yes + } + set_nickname_effect = { + NICKNAME = nick_the_petulant + } + } + 100 = { + trigger = { + has_personality_emotional_trigger = yes + num_of_relation_rival >= 2 + } + set_nickname_effect = { + NICKNAME = nick_the_quarrelsome + } + } + 100 = { + trigger = { is_eunuch_trigger = yes } + set_nickname_effect = { + NICKNAME = nick_the_eunuch + } + } + 2000 = { + trigger = { + has_trait = incapable + } + set_nickname_effect = { + NICKNAME = nick_the_sleeper + } + } + 2000 = { + trigger = { + has_trait = incapable + highest_held_title_tier >= tier_kingdom + } + set_nickname_effect = { + NICKNAME = nick_the_sleeping_king + } + } + 1000 = { + trigger = { + exists = liege + exists = mother + liege.culture = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + culture = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + mother.culture = { + NOR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + NOT = { + faith = { has_dominant_ruling_gender = dummy_male} + } + } + give_nickname = nick_the_foreign_mother + trigger_event = lifestyle_nicknames.1000 + } + 1000 = { + trigger = { + exists = liege + exists = father + liege.culture = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + culture = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + father.culture = { + NOR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + } + } + NOT = { + faith = { has_dominant_ruling_gender = dummy_female} + } + } + give_nickname = nick_the_foreign_father + trigger_event = lifestyle_nicknames.1000 + } + 100 = { + trigger = { + OR = { + loves_food_trigger = yes + has_trait = lifestyle_reveler + has_trait = gluttonous + current_weight >= 50 + } + } + modifier = { + current_weight >= 75 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_corpulent + } + } + 100 = { + trigger = { + top_liege != this + OR = { + is_a_faction_member = yes + has_trait = disloyal + opinion = { + target = liege + value <= -60 + } + } + ai_boldness >= low_positive_ai_value + } + set_nickname_effect = { + NICKNAME = nick_the_insubordinate + } + } + 100 = { + trigger = { + has_trait = disloyal + intrigue >= 10 + } + modifier = { + is_at_war_with_liege = yes + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_backstabber + } + } + 100 = { + trigger = { + ai_greed >= 25 + ai_honor <= 25 + gold >= massive_gold_value + } + modifier = { + has_trait = disloyal + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_corrupt + } + } + 100 = { + trigger = { + probably_unintelligent_trigger = yes + OR = { + AND = { + diplomacy <= 6 + martial <= 6 + stewardship <= 6 + intrigue <= 6 + learning <= 6 + } + AND = { + government_allows = administrative + governor_efficiency <= 0.7 + } + } + } + modifier = { + government_allows = administrative + governor_efficiency <= 0.6 + factor = 2 + } + set_nickname_effect = { + NICKNAME = nick_the_incompetent + } + } + 100 = { + trigger = { + ai_rationality <= -25 + ai_boldness > 0 + OR = { + has_trait = profligate + has_trait = reckless + } + } + set_nickname_effect = { + NICKNAME = nick_the_gambler + } + } + 100 = { + trigger = { + diplomacy <= 5 + has_personality_extroverted_trigger = yes + OR = { + has_trait = wrathful + has_trait = drunkard + has_trait = honest + has_trait = eccentric + has_trait = impatient + } + } + set_nickname_effect = { + NICKNAME = nick_the_obscene + } + } + 100 = { + trigger = { + has_trait = greedy + gold >= major_gold_value + NOT = { + has_trait = improvident + } + OR = { + has_royal_court = no + court_grandeur_current_level < court_grandeur_minimum_expected_level + } + } + set_nickname_effect = { + NICKNAME = nick_the_miser + } + } + #Fallback + 1 = { + trigger = { + } + set_nickname_effect = { + NICKNAME = nick_the_unfortunate + } + } + } + } +} diff --git a/common/scripted_effects/07_dlc_ep3_scripted_effects.txt b/common/scripted_effects/07_dlc_ep3_scripted_effects.txt index 943a1712..c9649c8b 100644 --- a/common/scripted_effects/07_dlc_ep3_scripted_effects.txt +++ b/common/scripted_effects/07_dlc_ep3_scripted_effects.txt @@ -1488,11 +1488,11 @@ ep3_become_landed_transfer_effect = { $TITLE_RECEIVER$ = { laamp_clear_domicile_buildings_liquidator_effect = yes } } $TITLE_RECEIVER$ = { - if = { - limit = { character:90028 ?= this } - custom_tooltip = ep3_story_cycle_harrying.3053.b.tt - add_character_flag = hereward_settled_flag - } +# if = { +# limit = { character:90028 ?= this } +# custom_tooltip = ep3_story_cycle_harrying.3053.b.tt +# add_character_flag = hereward_settled_flag +# } set_variable = { name = ascended_throne_reason value = $REASON$ @@ -7734,43 +7734,43 @@ remove_dead_charioteer_from_race = { ### END CHARIOT RACE -ep3_send_akolouthos_message_loyal = { - send_interface_message = { - type = msg_akolouthos_steels_varangians - title = ep3_akolouthos_events.1000 - desc = ep3_akolouthos_events.1000_loyal_notification_tooltip - - left_icon = scope:trait_getter - scope:trait_getter = { - add_trait = loyal - add_opinion = { - target = root - modifier = loyalty_opinion - opinion = 40 - } - } - custom_tooltip = akolouthos_effect_tooltip - } -} - -ep3_send_akolouthos_message_varangian = { - send_interface_message = { - type = msg_akolouthos_steels_varangians - title = ep3_akolouthos_events.1000 - desc = ep3_akolouthos_events.1000_varangian_notification_tooltip - - left_icon = scope:trait_getter - scope:trait_getter = { - add_trait = varangian - add_opinion = { - target = root - modifier = loyalty_opinion - opinion = 40 - } - } - custom_tooltip = akolouthos_effect_tooltip - } -} +#ep3_send_akolouthos_message_loyal = { +# send_interface_message = { +# type = msg_akolouthos_steels_varangians +# title = ep3_akolouthos_events.1000 +# desc = ep3_akolouthos_events.1000_loyal_notification_tooltip +# +# left_icon = scope:trait_getter +# scope:trait_getter = { +# add_trait = loyal +# add_opinion = { +# target = root +# modifier = loyalty_opinion +# opinion = 40 +# } +# } +# custom_tooltip = akolouthos_effect_tooltip +# } +#} +# +#ep3_send_akolouthos_message_varangian = { +# send_interface_message = { +# type = msg_akolouthos_steels_varangians +# title = ep3_akolouthos_events.1000 +# desc = ep3_akolouthos_events.1000_varangian_notification_tooltip +# +# left_icon = scope:trait_getter +# scope:trait_getter = { +# add_trait = varangian +# add_opinion = { +# target = root +# modifier = loyalty_opinion +# opinion = 40 +# } +# } +# custom_tooltip = akolouthos_effect_tooltip +# } +#} ep3_palace_looting_random_malus_effect = { if = { diff --git a/common/scripted_triggers/00_laamp_triggers.txt b/common/scripted_triggers/00_laamp_triggers.txt index bf73634b..70bec4e9 100644 --- a/common/scripted_triggers/00_laamp_triggers.txt +++ b/common/scripted_triggers/00_laamp_triggers.txt @@ -54,35 +54,35 @@ any_laamp_portion_at_sea_trigger = { } } } - -character_is_valid_for_harrying_of_the_north_trigger = { - title:k_england.holder ?= { owns_story_of_type = story_cycle_harrying_of_the_north } - trigger_if = { - limit = { is_ruler = yes } - OR = { - this = title:k_england.holder - any_liege_or_above = { this = title:k_england.holder } - } - } - trigger_else = { - domicile ?= { - domicile_location = { - county ?= { - holder = { - OR = { - this = title:k_england.holder - any_liege_or_above = { this = title:k_england.holder } - } - } - } - } - } - } - OR = { - character_is_valid_anglo_saxon_for_harrying_of_the_north_trigger = yes - character_is_valid_norman_for_harrying_of_the_north_trigger = yes - } -} +# +#character_is_valid_for_harrying_of_the_north_trigger = { +# title:k_england.holder ?= { owns_story_of_type = story_cycle_harrying_of_the_north } +# trigger_if = { +# limit = { is_ruler = yes } +# OR = { +# this = title:k_england.holder +# any_liege_or_above = { this = title:k_england.holder } +# } +# } +# trigger_else = { +# domicile ?= { +# domicile_location = { +# county ?= { +# holder = { +# OR = { +# this = title:k_england.holder +# any_liege_or_above = { this = title:k_england.holder } +# } +# } +# } +# } +# } +# } +# OR = { +# character_is_valid_anglo_saxon_for_harrying_of_the_north_trigger = yes +# character_is_valid_norman_for_harrying_of_the_north_trigger = yes +# } +#} #character_is_valid_anglo_saxon_for_harrying_of_the_north_trigger = { # culture = { @@ -110,30 +110,30 @@ character_is_valid_for_harrying_of_the_north_trigger = { # } #} -disable_interaction_for_hereward_trigger = { - trigger_if = { - limit = { scope:recipient = character:90028 } - custom_tooltip = { - text = owns_a_story_trigger - scope:actor = { - NOR = { - owns_story_of_type = story_cycle_harrying_of_the_north - any_liege_or_above = { owns_story_of_type = story_cycle_harrying_of_the_north } - } - } - } - } -} - -disable_interaction_for_hasan_trigger = { - trigger_if = { - limit = { scope:recipient = character:41702 } - custom_tooltip = { - text = owns_a_story_trigger - scope:recipient = { owns_story_of_type = story_hasan } - } - } -} +#disable_interaction_for_hereward_trigger = { +# trigger_if = { +# limit = { scope:recipient = character:90028 } +# custom_tooltip = { +# text = owns_a_story_trigger +# scope:actor = { +# NOR = { +# owns_story_of_type = story_cycle_harrying_of_the_north +# any_liege_or_above = { owns_story_of_type = story_cycle_harrying_of_the_north } +# } +# } +# } +# } +#} +# +#disable_interaction_for_hasan_trigger = { +# trigger_if = { +# limit = { scope:recipient = character:41702 } +# custom_tooltip = { +# text = owns_a_story_trigger +# scope:recipient = { owns_story_of_type = story_hasan } +# } +# } +#} laamp_request_likely_marriable_woman_trigger = { is_available_quick = { diff --git a/common/scripted_triggers/03_fp2_scripted_triggers.txt b/common/scripted_triggers/03_fp2_scripted_triggers.txt index 59118e54..aed14e94 100644 --- a/common/scripted_triggers/03_fp2_scripted_triggers.txt +++ b/common/scripted_triggers/03_fp2_scripted_triggers.txt @@ -609,118 +609,118 @@ struggle_can_access_unlocks_bargain_fealty_interaction_trigger = { ################################################## # Multi-File Event Triggers - -fp2_lyonese_monk_0002_papal_hof_trigger = { - OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } - exists = faith.religious_head - faith.religious_head_title = title:k_papal_state -} - -fp2_lyonese_monk_0002_valid_character_configuration_trigger = { - OR = { - has_trait = scholar - has_trait = theologian - has_trait = lifestyle_mystic - AND = { - is_ai = no - learning >= very_high_skill_rating - has_lifestyle = learning_lifestyle - } - } -} - -fp2_lyonese_monk_0002_valid_court_trigger = { - # Must have the Pope as a HoF. - fp2_lyonese_monk_0002_papal_hof_trigger = yes - # Filter out anyone not able to be at home when the monk comes a'knockin'. - is_physically_able = yes - # Must be into bookish discussions. - ## Narratively, this is what attracts them to your court. - ## Mechanically, this is how players can opt in for the chain so it's not completely random. - fp2_lyonese_monk_0002_valid_character_configuration_trigger = yes - # Remove non-playables. - NOR = { - government_has_flag = government_is_theocracy - government_has_flag = government_is_republic - } - # Plus, for various reasons, we don't want Lyon _itself_. - NOT = { - any_held_title = { this = title:c_lyon } - } -} - -fp2_lyonese_monk_0000_valid_for_events_trigger = { - fp2_lyonese_monk_0000_out_of_realm_trigger = no - fp2_lyonese_monk_0000_out_of_freedom_trigger = no - fp2_lyonese_monk_0000_out_of_popes_trigger = no - fp2_lyonese_monk_0000_out_of_faith_trigger = no -} - -fp2_lyonese_monk_0000_out_of_realm_trigger = { - scope:acolyte = { - OR = { - is_alive = no - is_imprisoned = yes - AND = { - is_landed_or_landless_administrative = no - NOT = { - host = scope:acolyte_host - # Make an exception if you're in prison, since that should give a different event. - scope:acolyte_host = { is_imprisoned = no } - } - } - AND = { - is_landed_or_landless_administrative = yes - NOT = { - any_liege_or_above = { this = scope:acolyte_host } - } - } - } - } -} - -fp2_lyonese_monk_0000_out_of_freedom_trigger = { is_imprisoned = yes } - -fp2_lyonese_monk_0000_out_of_popes_trigger = { - NOT = { exists = scope:story.var:base_faith.religious_head } -} - -fp2_lyonese_monk_0000_out_of_faith_trigger = { - OR = { - scope:acolyte.faith.religious_head != scope:story.var:base_faith.religious_head - scope:acolyte_host.faith.religious_head != scope:story.var:base_faith.religious_head - } -} - -fp2_does_this_player_care_about_the_fate_of_iberia = { - this != root - OR = { - location = { - OR = { # Is in region - geographical_region = world_europe_west - geographical_region = world_africa_north - geographical_region = world_europe_south_italy - } - } - struggle:iberian_struggle = { is_culture_involved_in_struggle = prev.culture } - } -} - -fp2_eligible_for_yearly_events_trigger = { - has_fp2_dlc_trigger = yes - OR = { - any_character_struggle = { - involvement = involved - is_struggle_type = iberian_struggle - } - culture = { - has_cultural_pillar = heritage_iberian - } - capital_province ?= { - geographical_region = world_europe_west_iberia - } - } -} +# +#fp2_lyonese_monk_0002_papal_hof_trigger = { +# OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } +# exists = faith.religious_head +# faith.religious_head_title = title:k_papal_state +#} +# +#fp2_lyonese_monk_0002_valid_character_configuration_trigger = { +# OR = { +# has_trait = scholar +# has_trait = theologian +# has_trait = lifestyle_mystic +# AND = { +# is_ai = no +# learning >= very_high_skill_rating +# has_lifestyle = learning_lifestyle +# } +# } +#} +# +#fp2_lyonese_monk_0002_valid_court_trigger = { +# # Must have the Pope as a HoF. +# fp2_lyonese_monk_0002_papal_hof_trigger = yes +# # Filter out anyone not able to be at home when the monk comes a'knockin'. +# is_physically_able = yes +# # Must be into bookish discussions. +# ## Narratively, this is what attracts them to your court. +# ## Mechanically, this is how players can opt in for the chain so it's not completely random. +# fp2_lyonese_monk_0002_valid_character_configuration_trigger = yes +# # Remove non-playables. +# NOR = { +# government_has_flag = government_is_theocracy +# government_has_flag = government_is_republic +# } +# # Plus, for various reasons, we don't want Lyon _itself_. +# NOT = { +# any_held_title = { this = title:c_lyon } +# } +#} +# +#fp2_lyonese_monk_0000_valid_for_events_trigger = { +# fp2_lyonese_monk_0000_out_of_realm_trigger = no +# fp2_lyonese_monk_0000_out_of_freedom_trigger = no +# fp2_lyonese_monk_0000_out_of_popes_trigger = no +# fp2_lyonese_monk_0000_out_of_faith_trigger = no +#} +# +#fp2_lyonese_monk_0000_out_of_realm_trigger = { +# scope:acolyte = { +# OR = { +# is_alive = no +# is_imprisoned = yes +# AND = { +# is_landed_or_landless_administrative = no +# NOT = { +# host = scope:acolyte_host +# # Make an exception if you're in prison, since that should give a different event. +# scope:acolyte_host = { is_imprisoned = no } +# } +# } +# AND = { +# is_landed_or_landless_administrative = yes +# NOT = { +# any_liege_or_above = { this = scope:acolyte_host } +# } +# } +# } +# } +#} +# +#fp2_lyonese_monk_0000_out_of_freedom_trigger = { is_imprisoned = yes } +# +#fp2_lyonese_monk_0000_out_of_popes_trigger = { +# NOT = { exists = scope:story.var:base_faith.religious_head } +#} +# +#fp2_lyonese_monk_0000_out_of_faith_trigger = { +# OR = { +# scope:acolyte.faith.religious_head != scope:story.var:base_faith.religious_head +# scope:acolyte_host.faith.religious_head != scope:story.var:base_faith.religious_head +# } +#} +# +#fp2_does_this_player_care_about_the_fate_of_iberia = { +# this != root +# OR = { +# location = { +# OR = { # Is in region +# geographical_region = world_europe_west +# geographical_region = world_africa_north +# geographical_region = world_europe_south_italy +# } +# } +# struggle:iberian_struggle = { is_culture_involved_in_struggle = prev.culture } +# } +#} +# +#fp2_eligible_for_yearly_events_trigger = { +# has_fp2_dlc_trigger = yes +# OR = { +# any_character_struggle = { +# involvement = involved +# is_struggle_type = iberian_struggle +# } +# culture = { +# has_cultural_pillar = heritage_iberian +# } +# capital_province ?= { +# geographical_region = world_europe_west_iberia +# } +# } +#} fp2_purchase_truce_interaction_soft_requirements_trigger = { OR = { diff --git a/common/story_cycles/ce1_story_cycle_black_death.txt b/common/story_cycles/ce1_story_cycle_black_death.txt new file mode 100644 index 00000000..1ad4e39b --- /dev/null +++ b/common/story_cycles/ce1_story_cycle_black_death.txt @@ -0,0 +1,193 @@ +story_cycle_black_death = { + # by Nick Meredith + + on_setup = { #check if the plague is close enough + story_owner = { + trigger_event = { + id = epidemic_events.5998 + days = { 21 37 } + } + } + } + + on_end = { + debug_log = "Black Death story ended on:" + debug_log_date = yes + } + + on_owner_death = { + # Should be inherited, so transfer to heir + if = { + limit = { + exists = story_owner.player_heir + } + make_story_owner = story_owner.player_heir + } + # Or destroy + else = { + end_story = yes + } + } + + #check if the plague is close enough + effect_group = { + months = { 2 4 } + + trigger = { + has_global_variable = black_death + story_owner = { + NOR = { + has_character_flag = black_death_nearby + has_character_flag = black_death_splash + } + } + } + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { + story_owner = { + trigger_event = { + id = epidemic_events.5998 + days = { 2 4 } + } + } + } + } + } + } + + #IT IS GETTING CLOSER! + effect_group = { + months = { 4 8 } + + trigger = { + has_global_variable = black_death + story_owner = { + has_character_flag = black_death_closer + NOR = { + has_character_flag = black_death_nearby + has_character_flag = black_death_splash + } + } + } + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { + save_scope_as = story_scope + story_owner = { + trigger_event = { + on_action = ongoing_black_death_events + } + } + } + } + } + + } + + #ALMOST THERE! + effect_group = { + months = { 1 2 } + + trigger = { + has_global_variable = black_death + story_owner = { + has_character_flag = black_death_closer + NOR = { + has_character_flag = black_death_splash + has_character_flag = black_death_nearby + } + } + } + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { + save_scope_as = story_scope + story_owner = { + trigger_event = { + id = epidemic_events.5998 + days = { 4 8 } + } + } + } + } + } + } + + #YIKES, IT IS NEAR + effect_group = { + days = { 21 37 } + + trigger = { + has_global_variable = black_death + story_owner = { + has_character_flag = black_death_nearby + } + } + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { + save_scope_as = story_scope + story_owner = { + trigger_event = { + on_action = ongoing_black_death_events + } + } + } + } + } + + } + + # We can stop worrying about black plague coming to us, because... + effect_group = { + days = { 30 60 } + + trigger = { + OR = { + NOT = { #...the black plague is gone... + has_global_variable = black_death + } + story_owner = { + has_character_flag = black_death_splash #... IT IS HERE OH GOD OH HECK + } + } + } + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { + end_story = yes + } + } + } + } + + + #Maintenance group + effect_group = { + days = 1 + trigger = { + story_owner = { is_landed = no } + } + triggered_effect = { + trigger = { always = yes } + effect = { + #You became a landless adventurer/administrative! Ending story prematurely. + story_owner = { save_scope_as = story_owner } + debug_log = "Black Death invalidated" + debug_log_scopes = yes + end_story = yes + } + } + } +} diff --git a/common/story_cycles/ce1_story_cycle_plague_witch_hunt.txt b/common/story_cycles/ce1_story_cycle_plague_witch_hunt.txt new file mode 100644 index 00000000..c3c6b8bd --- /dev/null +++ b/common/story_cycles/ce1_story_cycle_plague_witch_hunt.txt @@ -0,0 +1,92 @@ +plague_witch_hunt = { + # by James Beaumont + + on_setup = { + } + + on_end = { + debug_log = "Witch hunt story ended on:" + debug_log_date = yes + } + + on_owner_death = { + # Should be inherited, people won't stop the witch trials just because the ruler died + } + + # The plague is over, end the story + effect_group = { + days = { 40 60 } + + trigger = { + NOT = { + story_owner = { + any_sub_realm_county = { + any_county_province_epidemic = { + this = root.var:plague + } + } + } + } + } + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { + end_story = yes + } + } + } + } + + # Something happens - random events + effect_group = { + days = { 365 600 } + chance = 50 + + trigger = { + story_owner = { + any_sub_realm_county = { + any_county_province_epidemic = { + this = root.var:plague + } + } + } + } + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { + save_scope_as = story_scope + var:plague = { save_scope_as = epidemic_scope } + var:faith_blamed ?= { save_scope_as = faith_blamed } + var:trait_blamed ?= { save_scope_as = trait_blamed } + story_owner = { + trigger_event = { + on_action = ongoing_witch_hunt_events + } + } + } + } + } + } + + #Maintenance group + effect_group = { + days = 1 + trigger = { + story_owner = { is_landed = no } + } + triggered_effect = { + trigger = { always = yes } + effect = { + #You became a landless adventurer/administrative! Ending story prematurely. + story_owner = { save_scope_as = story_owner } + debug_log = "Plague Witches invalidated" + debug_log_scopes = yes + end_story = yes + } + } + } +} \ No newline at end of file diff --git a/common/story_cycles/ep3_story_cycle_el_cid.txt b/common/story_cycles/ep3_story_cycle_el_cid.txt new file mode 100644 index 00000000..90ed110f --- /dev/null +++ b/common/story_cycles/ep3_story_cycle_el_cid.txt @@ -0,0 +1,214 @@ +################################################## +### +### The Song of El Cid +### by Veronica Pazos +### +################################################## + +story_el_cid = { + visible = yes + + icon = { + reference = "gfx/interface/icons/artifact/artefact_icons_unique_artifact_excalibur.dds" + } + + background = { + reference = "gfx/interface/illustrations/event_scenes/fp2_courtyard.dds" + } + + visualization = { + character = { + variable_name = "cid_liege" + label = "CID_LIEGE" + } + custom_string_key = "EL_CID_CUSTOM_STRING_KEY" + traits = { + campeador + } + tug_of_war_counter = { + label = "cid_loyalty_counter_label" + variable_name = "cid_loyalty_counter" + tooltip = EL_LOYALTY_COUNTER_TOOLTIP + min_label = CID_LOYALTY_MIN_LABEL + max_label = CID_LOYALTY_MAX_LABEL + min = -5 + max = 5 + } + } + + on_setup = { + story_owner = { + top_liege = { save_scope_as = liege } + } + } + + on_end = { + debug_log = "El Cid's story ended on:" + debug_log_date = yes + #We clean up all variables + remove_variable = cid_liege + remove_variable = cid_enemy + remove_variable = cid_loyalty_counter + story_owner = { + remove_variable = ongoing_cid_story_cycle + remove_variable = cid_title_to_give + #And you can never have this again + set_variable = had_cid_story_cycle + } + } + + on_owner_death = { + end_story = yes + } + + # Liege dies + effect_group = { + months = 1 + + first_valid = { + triggered_effect = { #If your liege dies + trigger = { + story_owner = { + OR = { + any_owned_story = { + has_variable = cid_liege + var:cid_liege = { + is_alive = no + } + } + NOT = { + any_owned_story = { + has_variable = cid_liege + } + } + } + } + } + effect = { + save_scope_as = story + story_owner = { + trigger_event = cid.5000 + } + } + } + } + } + + effect_group = { + months = { 6 12 } + chance = 100 + + random_valid = { + triggered_effect = { + trigger = { # Landless events + story_owner = { + has_government = landless_adventurer_government + } + } + effect = { + save_scope_as = story + var:cid_liege = { save_scope_as = liege } + var:cid_enemy = { save_scope_as = enemy } + story_owner = { + trigger_event = { on_action = el_cid_landless_on_action } + } + } + } + triggered_effect = { + trigger = { # Landless OR Landed events + always = yes + } + effect = { + save_scope_as = story + var:cid_liege = { save_scope_as = liege } + var:cid_enemy = { save_scope_as = enemy } + story_owner = { + trigger_event = { on_action = el_cid_landless_or_landed_on_action } + } + } + } + } + } + + # Endings + effect_group = { + months = 3 + + first_valid = { #Your liege takes you back + triggered_effect = { + trigger = { + var:cid_loyalty_counter >= 5 + story_owner = { + has_government = landless_adventurer_government + } + } + effect = { + save_scope_as = story + story_owner = { + trigger_event = cid.2020 + } + } + } + triggered_effect = { #Your liege hates you + trigger = { + var:cid_loyalty_counter <= -5 + story_owner = { + has_government = landless_adventurer_government + } + } + effect = { + save_scope_as = story + story_owner = { + trigger_event = cid.4010 + } + } + } + triggered_effect = { #Neutral ending + trigger = { + var:cid_loyalty_counter > -5 + var:cid_loyalty_counter < 5 + story_owner = { + has_variable = had_cid_1000 + has_variable = had_cid_1030 + has_variable = had_cid_1040 + trigger_if = { + limit = { + any_courtier = { + is_adult = yes + NOR = { + is_close_family_of = prev + is_spouse_of = prev + } + count >= 2 + } + } + has_variable = had_cid_1010 + } + trigger_if = { + limit = { + any_courtier = { + is_spouse_of = prev + } + } + has_variable = had_cid_1020 + } + trigger_if = { + limit = { + any_child = { + is_betrothed = no + } + } + has_variable = had_cid_2010 + } + } + } + effect = { + save_scope_as = story + story_owner = { + trigger_event = cid.4000 + } + } + } + } + } +} diff --git a/common/story_cycles/ep3_story_cycle_frankokratia.txt b/common/story_cycles/ep3_story_cycle_frankokratia.txt new file mode 100644 index 00000000..f3e5e515 --- /dev/null +++ b/common/story_cycles/ep3_story_cycle_frankokratia.txt @@ -0,0 +1,581 @@ +#frankokratia_story = { +# # by Jason Cantalini +# visible = yes +# +# icon = { +# trigger = { +# always = yes +# } +# reference = "gfx/interface/icons/story_cycles/story_icon_despoiler.dds" +# } +# +# visualization = { +# custom_string_key = "FRANKOKRATIA_STORY_PRACTICAL_INFORMATION_STRING" +# character = { variable_name = "byz_claimant" label = "claimant" } +# character_list = { variable_name = "frankokratia_leaders" label = "diverted_crusaders" } +# } +# +# on_setup = { +# set_variable = { +# name = crusader_kingdom +# value = story_owner.faith.great_holy_war.ghw_target_title +# } +# set_global_variable = { +# name = byz_claimant_champion +# value = story_owner +# } +# add_to_variable_list = { +# name = frankokratia_leaders +# target = story_owner +# } +# } +## +# on_end = { +# debug_log = "Frankokratia story ended on:" +# debug_log_date = yes +# remove_global_variable = byz_claimant_champion +# if = { +# limit = { +# var:byz_claimant = { +# is_alive = yes +# } +# } +# var:byz_claimant = { +# remove_character_flag = byz_claimant_flag +# } +# } +# } +## +# on_owner_death = { +# story_owner = { +# save_scope_as = dead_owner +# } +# if = { +# limit = { +# exists = story_owner.player_heir +# story_owner.player_heir = { +# faith = faith:catholic +# } +# } +# set_global_variable = { +# name = byz_claimant_champion +# value = story_owner.player_heir +# } +# remove_list_variable = { +# name = frankokratia_leaders +# target = story_owner +# } +# add_to_variable_list = { +# name = frankokratia_leaders +# target = story_owner.player_heir +# } +# make_story_owner = story_owner.player_heir +# } +# else_if = { +# limit = { +# exists = story_owner.primary_heir +# story_owner.primary_heir = { +# faith = faith:catholic +# highest_held_title_tier <= scope:dead_owner.highest_held_title_tier +# } +# } +# set_global_variable = { +# name = byz_claimant_champion +# value = story_owner.primary_heir +# } +# remove_list_variable = { +# name = frankokratia_leaders +# target = story_owner +# } +# add_to_variable_list = { +# name = frankokratia_leaders +# target = story_owner.primary_heir +# } +# make_story_owner = story_owner.primary_heir +# } +# else_if = { +# limit = { +# any_in_list = { +# variable = frankokratia_leaders +# OR = { +# exists = primary_heir +# exists = player_heir +# } +# age >= 13 +# this != scope:dead_owner +# } +# } +# ordered_in_list = { +# variable = frankokratia_leaders +# order_by = current_military_strength +# limit = { +# OR = { +# exists = primary_heir +# exists = player_heir +# } +# age >= 13 +# this != scope:dead_owner +# } +# save_scope_as = new_franko +# +# set_global_variable = { +# name = byz_claimant_champion +# value = scope:new_franko +# } +# } +# remove_list_variable = { +# name = frankokratia_leaders +# target = story_owner +# } +# add_to_variable_list = { +# name = frankokratia_leaders +# target = scope:new_franko +# } +# make_story_owner = scope:new_franko +# } +# # Or destroy +# else = { +# end_story = yes +# every_in_list = { +# variable = frankokratia_leaders +# limit = { +# is_ai = no +# } +# trigger_event = ep3_frankokratia_events.0005 +# } +# } +# } +# +# #Claimant dies... story cycle is over +# effect_group = { +# days = { 20 40 } +# +# trigger = { +# var:byz_claimant = { is_alive = no } +# NOT = { +# has_variable = franko_war_complete +# } +# } +# +# first_valid = { +# triggered_effect = { +# trigger = { +# var:byz_claimant = { is_alive = no } +# NOT = { +# has_variable = franko_war_complete +# } +# } +# effect = { +# every_in_list = { +# variable = frankokratia_leaders +# limit = { +# is_ai = no +# } +# trigger_event = ep3_frankokratia_events.0005 +# } +# } +# } +# } +# } +# +# #Owner's other wars should be wrapped up if they're not going well... by force +# effect_group = { +# days = { 20 40 } +# +# trigger = { +# #It's not post-war era +# NOT = { +# has_variable = franko_war_complete +# } +# global_var:byz_claimant_champion = { +# #Is not in frankokratia war +# any_character_war = { +# NOT = { +# using_cb = crusading_claim_cb +# } +# } +# #Is risking losing a war +# any_character_war = { +# OR = { +# AND = { +# primary_attacker = { +# this = global_var:byz_claimant_champion +# } +# attacker_war_score <= -50 +# } +# AND = { +# primary_defender = { +# this = global_var:byz_claimant_champion +# } +# defender_war_score <= -50 +# } +# } +# NOR = { +# any_war_defender = { +# is_ai = no +# } +# any_war_attacker = { +# is_ai = no +# } +# } +# } +# is_ai = yes +# } +# var:financier_title.holder = { +# save_temporary_scope_as = financier +# } +# any_in_list = { +# variable = frankokratia_leaders +# NOR = { +# this = global_var:byz_claimant_champion +# this = scope:financier +# } +# } +# } +# +# first_valid = { +# triggered_effect = { +# trigger = { +# #It's not post-war era +# NOT = { +# has_variable = franko_war_complete +# } +# global_var:byz_claimant_champion = { +# #Is not in frankokratia war +# any_character_war = { +# NOT = { +# using_cb = crusading_claim_cb +# } +# } +# #Is risking losing a war +# any_character_war = { +# OR = { +# AND = { +# primary_attacker = { +# this = global_var:byz_claimant_champion +# } +# attacker_war_score <= -50 +# } +# AND = { +# primary_defender = { +# this = global_var:byz_claimant_champion +# } +# defender_war_score <= -50 +# } +# } +# NOR = { +# any_war_defender = { +# is_ai = no +# } +# any_war_attacker = { +# is_ai = no +# } +# } +# } +# is_ai = yes +# } +# var:financier_title.holder = { +# save_temporary_scope_as = financier +# } +# any_in_list = { +# variable = frankokratia_leaders +# NOR = { +# this = global_var:byz_claimant_champion +# this = scope:financier +# } +# } +# } +# effect = { +# global_var:byz_claimant_champion = { +# every_character_war = { +# limit = { +# NOT = { +# using_cb = crusading_claim_cb +# } +# OR = { +# AND = { +# primary_attacker = { +# this = global_var:byz_claimant_champion +# } +# attacker_war_score <= -50 +# } +# AND = { +# primary_defender = { +# this = global_var:byz_claimant_champion +# } +# defender_war_score <= -50 +# } +# } +# NOR = { +# any_war_defender = { +# is_ai = no +# } +# any_war_attacker = { +# is_ai = no +# } +# } +# } +# end_war = white_peace +# } +# } +# } +# } +# } +# } +# +# #Re-save war attackers +# effect_group = { +# days = { 30 50 } +# +# trigger = { +# always = yes +# } +# first_valid = { +# triggered_effect = { +# trigger = { always = yes } +# effect = { +# save_scope_as = frank_story +# story_owner = { +# random_character_war = { +# limit = { using_cb = crusading_claim_cb } +# every_war_attacker = { +# limit = { +# faith = faith:catholic +# } +# scope:frank_story = { +# add_to_variable_list = { +# name = frankokratia_leaders +# target = prev +# } +# } +# } +# } +# } +# } +# } +# } +# } +# +# #Need to find successor to byz emperor +# effect_group = { +# days = { 10 20 } +# +# trigger = { +# exists = title:e_byzantium.holder +# NOR = { +# var:byz_emperor ?= title:e_byzantium.holder +# var:byz_claimant ?= title:e_byzantium.holder +# global_var:byz_claimant_champion ?= title:e_byzantium.holder +# var:financier_title.holder ?= title:e_byzantium.holder +# var:ghw_sponsor ?= title:e_byzantium.holder +# } +# } +# first_valid = { +# triggered_effect = { +# trigger = { +# exists = title:e_byzantium.holder +# NOR = { +# var:byz_emperor ?= title:e_byzantium.holder +# var:byz_claimant ?= title:e_byzantium.holder +# global_var:byz_claimant_champion ?= title:e_byzantium.holder +# var:financier_title.holder ?= title:e_byzantium.holder +# var:ghw_sponsor ?= title:e_byzantium.holder +# } +# } +# effect = { +# set_variable = { +# name = byz_emperor +# value = title:e_byzantium.holder +# } +# } +# } +# } +# } +# +# #Fire events for pledged attackers for them to commit to leaving crusade when it launches +# effect_group = { +# days = { 10 20 } +# +# trigger = { +# exists = story_owner.faith.great_holy_war +# story_owner.faith = faith:catholic +# story_owner.faith.religious_head = { +# NOT = { +# any_character_war = { +# using_cb = undirected_great_holy_war +# } +# } +# } +# story_owner.faith.great_holy_war = { +# any_pledged_attacker = { +# ep3_frankokratia_valid_joiner_trigger = yes +# } +# } +# } +# +# first_valid = { +# triggered_effect = { +# trigger = { +# exists = story_owner.faith.great_holy_war +# story_owner.faith.religious_head = { +# NOT = { +# any_character_war = { +# using_cb = undirected_great_holy_war +# } +# } +# } +# story_owner.faith.great_holy_war = { +# any_pledged_attacker = { +# ep3_frankokratia_valid_joiner_trigger = yes +# } +# } +# } +# effect = { +# story_owner.faith.great_holy_war = { +# #trigger join event for important players first +# if = { +# limit = { +# any_pledged_attacker = { +# is_ai = no +# highest_held_title_tier >= tier_kingdom +# ep3_frankokratia_valid_joiner_trigger = yes +# } +# } +# random_pledged_attacker = { +# limit = { +# is_ai = no +# highest_held_title_tier >= tier_kingdom +# ep3_frankokratia_valid_joiner_trigger = yes +# } +# trigger_event = ep3_frankokratia_events.0020 +# } +# } +# #Then players +# else_if = { +# limit = { +# any_pledged_attacker = { +# is_ai = no +# ep3_frankokratia_valid_joiner_trigger = yes +# } +# } +# random_pledged_attacker = { +# limit = { +# is_ai = no +# ep3_frankokratia_valid_joiner_trigger = yes +# } +# trigger_event = ep3_frankokratia_events.0020 +# } +# } +# #Then others +# else = { +# random_pledged_attacker = { +# limit = { +# ep3_frankokratia_valid_joiner_trigger = yes +# } +# trigger_event = ep3_frankokratia_events.0020 +# } +# } +# } +# } +# } +# } +# } +# +# #save player war contribution to see if they get to be emp +# effect_group = { +# days = { 10 20 } +# +# trigger = { +# story_owner = { +# any_character_war = { +# using_cb = crusading_claim_cb +# any_war_attacker = { +# is_ai = no +# save_temporary_scope_as = player_temp +# } +# war_contribution = { +# target = scope:player_temp +# value > 100 +# } +# } +# } +# } +# first_valid = { +# triggered_effect = { +# trigger = { +# story_owner = { +# any_character_war = { +# using_cb = crusading_claim_cb +# any_war_attacker = { +# is_ai = no +# save_temporary_scope_as = player_temp +# } +# war_contribution = { +# target = scope:player_temp +# value > 100 +# } +# } +# } +# } +# effect = { +# story_owner = { +# random_character_war = { +# limit = { +# using_cb = crusading_claim_cb +# } +# save_scope_as = franko_war +# every_war_attacker = { +# limit = { +# is_ai = no +# scope:franko_war = { +# war_contribution = { +# target = prev +# value > 100 +# } +# } +# } +# add_character_flag = { +# flag = frankokratia_sufficient_warscore +# years = 30 +# } +# } +# every_war_attacker = { +# limit = { +# is_ai = no +# scope:franko_war = { +# war_contribution = { +# target = prev +# value > 1000 +# } +# } +# } +# add_character_flag = { +# flag = frankokratia_high_warscore +# years = 30 +# } +# } +# } +# } +# } +# } +# } +# } +# +# #Maintenance group +# effect_group = { +# days = 1 +# trigger = { +# story_owner = { is_playable_character = no } +# } +# triggered_effect = { +# trigger = { always = yes } +# effect = { +# story_owner = { save_scope_as = story_owner } +# debug_log = "4th Crusader invalidated" +# debug_log_scopes = yes +# end_story = yes +# } +# } +# } +#} +# \ No newline at end of file diff --git a/common/story_cycles/ep3_story_cycle_grand_ambitions.txt b/common/story_cycles/ep3_story_cycle_grand_ambitions.txt new file mode 100644 index 00000000..d19ade5d --- /dev/null +++ b/common/story_cycles/ep3_story_cycle_grand_ambitions.txt @@ -0,0 +1,217 @@ +################################################## +### +### Grand Ambitions +### by Chad Uhl +### +### The head of a Powerful Family has ambitions for the throne. +### +################################################## + +grand_ambitions_story_cycle = { + + on_setup = { + set_variable = { + name = eunuch + value = no + } + } + + on_end = { + story_owner = { + if = { + limit = { has_character_flag = had_event_ga_0100 } + remove_character_flag = had_event_ga_0100 + } + } + var:target_char ?= { + capital_county ?= { + if = { + limit = { has_county_modifier = ep3_grand_ambitions_rioting_county_modifier } + } + remove_county_modifier = ep3_grand_ambitions_rioting_county_modifier + } + } + if = { + limit = { + exists = global_var:current_grand_ambitions_counter + global_var:current_grand_ambitions_counter > 0 + } + change_global_variable = { + name = current_grand_ambitions_counter + subtract = 1 + } + } + } + + # Maintenance Events + effect_group = { + months = 1 + + # Check if the old emperor is still holds the right title during the beginning + triggered_effect = { + trigger = { + exists = var:target_char + var:target_char = { + NOT = { any_held_title = { this = root.var:target_title } } + } + } + effect = { + story_owner = { + trigger_event = grand_ambitions.0500 + } + } + } + # Death maintenance is handled in the death on_action + } + + effect_group = { + months = 1 + chance = 100 + + random_valid = { + triggered_effect = { + trigger = { # Claimant Faction Route + var:method = flag:coup + } + effect = { + scope:story = { + var:target_title = { save_scope_as = target_title } + var:target_char = { save_scope_as = target_char } + } + story_owner = { + scope:target_char = { + if = { + limit = { + any_targeting_faction = { + faction_type = claimant_faction + faction_leader = scope:story.story_owner + } + } + random_targeting_faction = { + faction_type = claimant_faction + limit = { + faction_leader = scope:story.story_owner + } + save_scope_as = story_faction + } + } + } + trigger_event = { on_action = grand_ambitions_powerful_family_coup_on_action } + } + } + } + triggered_effect = { + trigger = { # Scheme Route + var:method = flag:scheme + } + effect = { + story_owner = { + random_scheme = { + type = depose + save_scope_as = depose_scheme_scope + } + scope:story = { + var:target_title = { save_scope_as = target_title } + var:target_char = { save_scope_as = target_char } + } + trigger_event = { on_action = grand_ambitions_powerful_family_scheme_on_action } + } + } + } + } + } + + effect_group = { + months = 1 + chance = 100 + + random_valid = { + triggered_effect = { + trigger = { + story_owner = { + any_character_war = { + primary_attacker = scope:story.story_owner + primary_defender = scope:story.var:target_char + claimant = scope:story.story_owner + save_temporary_scope_as = story_war + } + } + var:method = flag:coup + var:promised_foreign_ruler_claim = { + NOT = { is_at_war_with = scope:story.var:target_char } + } + scope:story_war = { + NOT = { + any_war_attacker = { + this = scope:story.var:promised_foreign_ruler_claim + } + } + } + } + effect = { + story_owner = { + random_character_war = { + limit = { + primary_attacker = scope:story.story_owner + primary_defender = scope:story.var:target_char + claimant = scope:story.story_owner + } + save_scope_as = story_war + } + scope:story.var:promised_foreign_ruler_claim = { save_scope_as = joiner } + send_interface_message = { + type = event_war_good + title = grand_ambitions_ally_joins_war + right_icon = scope:joiner + scope:story_war = { + add_attacker = scope:joiner + } + } + } + } + } + triggered_effect = { + trigger = { + story_owner = { + any_character_war = { + primary_attacker = scope:story.story_owner + primary_defender = scope:story.var:target_char + claimant = scope:story.story_owner + save_temporary_scope_as = story_war + } + } + var:method = flag:coup + has_variable = powerful_family + scope:story_war = { + NOT = { + any_war_attacker = { + this = scope:story.var:powerful_family.house_head + } + } + } + } + effect = { + story_owner = { + random_character_war = { + limit = { + primary_attacker = scope:story.story_owner + primary_defender = scope:story.var:target_char + claimant = scope:story.story_owner + } + save_scope_as = story_war + } + scope:story.var:powerful_family.house_head = { save_scope_as = joiner } + send_interface_message = { + type = event_war_good + title = grand_ambitions_ally_joins_war + right_icon = scope:joiner + scope:story_war = { + add_attacker = scope:joiner + } + } + } + } + } + } + } +} diff --git a/common/story_cycles/ep3_story_cycle_harrying_of_the_north.txt b/common/story_cycles/ep3_story_cycle_harrying_of_the_north.txt new file mode 100644 index 00000000..0eebb70c --- /dev/null +++ b/common/story_cycles/ep3_story_cycle_harrying_of_the_north.txt @@ -0,0 +1,692 @@ +#story_cycle_harrying_of_the_north = { +# # by Nick Meredith +# +# on_setup = { +# set_variable = { +# name = ruler_england +# value = story_owner +# } +# set_global_variable = { +# name = ruler_england +# value = story_owner +# } +# set_variable = { +# name = pacification +# value = 0 +# } +# set_variable = { +# name = resistance +# value = 5 +# } +# set_global_variable = { +# name = harrying_of_the_north +# value = this +# } +# } +# +# on_end = { +# debug_log = "Harrying of the North ended on:" +# debug_log_date = yes +# } +# +# on_owner_death = { +# if = { +# limit = { +# exists = story_owner.player_heir +# } +# set_global_variable = { +# name = ruler_england +# value = story_owner.player_heir +# } +# make_story_owner = story_owner.player_heir +# } +# ## This shouldn't be needed; should be handled by the effect group below +# #else = { +# # end_story = yes +# # remove_global_variable = harrying_of_the_north +# #} +# } +# +# #End the Story Cycle if there are no longer any Anglo-Saxon lords left, or if Normans no longer rule England +# #Put it on a long timer so William player can't just kick them all out and weather the storm for a month +# effect_group = { +# months = 1 +# +# trigger = { +# OR = { #Either of these can be untrue +# story_owner = { +# any_vassal = { +# NOR = { +# culture = culture:anglo_saxon +# primary_title.tier >= tier_duchy +# } +# } +# } +# NOT = { +# var:ruler_england = { +# culture = culture:norman +# } +# } +# } +# } +# +# first_valid = { +# triggered_effect = { #The Aethelings are no more - Norman victory +# trigger = { +# story_owner = { +# NOR = { +# any_vassal = { +# culture = culture:anglo_saxon +# primary_title.tier >= tier_duchy +# } +# } +# } +# } +# effect = { +# remove_global_variable = harrying_of_the_north +# every_ruler = { +# limit = { +# capital_province = { +# geographical_region = world_europe_west_britannia +# } +# } +# trigger_event = ep3_story_cycle_harrying.0001 +# } +# end_story = yes +# } +# } +# triggered_effect = { #An Anglo-Saxon rules - Aetheling victory +# trigger = { +# story_owner = { +# culture = culture:anglo_saxon +# } +# } +# effect = { +# remove_global_variable = harrying_of_the_north +# every_ruler = { +# limit = { +# capital_province = { +# geographical_region = world_europe_west_britannia +# } +# } +# trigger_event = ep3_story_cycle_harrying.0002 +# } +# end_story = yes +# } +# } +# triggered_effect = { #The Normans no longer rule - Aethelings avoid defeat +# trigger = { +# story_owner = { +# NOR = { +# culture = culture:norman +# culture = culture:english +# } +# } +# } +# effect = { +# remove_global_variable = harrying_of_the_north +# every_ruler = { +# limit = { +# capital_province = { +# geographical_region = world_europe_west_britannia +# } +# } +# trigger_event = ep3_story_cycle_harrying.0003 +# } +# end_story = yes +# } +# } +# } +# } +# +# effect_group = { +# years = 50 +# +# triggered_effect = { #The Normans still rule, but it has been generations - Norman victory by attrition +# trigger = { +# var:ruler_england = { +# culture = culture:norman +# } +# } +# effect = { +# remove_global_variable = harrying_of_the_north +# every_ruler = { +# limit = { +# capital_province = { +# geographical_region = world_europe_west_britannia +# } +# } +# trigger_event = ep3_story_cycle_harrying.0004 +# } +# end_story = yes +# } +# } +# } +# +# # Events for William/King of England +# effect_group = { +# days = { 20 40 } +# +# trigger = { +# story_owner = { +# is_alive = yes +# } +# } +# +# first_valid = { +# triggered_effect = { +# trigger = { always = yes } +# effect = { +# save_scope_as = story_scope +# story_owner = { +# trigger_event = { +# on_action = ongoing_harrying_owner_events +# } +# } +# } +# } +# } +# } +# +# # Events for Aethelings +# effect_group = { +# days = { 20 40 } +# +# trigger = { +# story_owner = { +# any_vassal = { +# culture = culture:anglo_saxon +# } +# } +# } +# +# first_valid = { +# triggered_effect = { +# trigger = { always = yes } +# effect = { +# save_scope_as = story_scope +# story_owner = { +# random_vassal= { +# limit = { +# culture = culture:anglo_saxon +# } +# trigger_event = { +# on_action = ongoing_harrying_aetheling_events +# } +# } +# } +# } +# } +# } +# } +# +# # Events for Hereward the Wake +# effect_group = { +# days = { 20 40 } +# +# trigger = { +# character:90028 = { +# is_alive = yes +# NOT = { +# has_character_flag = hereward_settled_flag +# } +# } +# } +# +# first_valid = { +# triggered_effect = { +# trigger = { always = yes } +# effect = { +# save_scope_as = story_scope +# character:90028 = { +# trigger_event = { +# on_action = ongoing_harrying_hereward_events +# } +# } +# } +# } +# } +# } +# +# ### Harrying ongoing effects +# # Set the Pacification variable every month if possible +# # This checks for the Embrace English Culture decision +# effect_group = { +# months = 1 +# first_valid = { +# triggered_effect = { +# trigger = { +# var:pacification > 15 +# var:pacification > var:resistance +# } +# effect = { +# if = { +# limit = { +# AND = { +# NOT = { +# has_variable = embrace_culture_decision_counter +# } +# var:pacification > 15 +# var:pacification > var:resistance +# } +# } +# set_variable = { +# name = embrace_culture_decision_counter +# value = 0 +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# OR = { +# var:pacification < 15 +# var:pacification < var:resistance +# } +# } +# effect = { +# if = { +# limit = { +# has_variable = embrace_culture_decision_counter +# } +# remove_variable = embrace_culture_decision_counter +# } +# } +# } +# } +# } +# +# # Check to see if you've had pacification over resistance for a year +# effect_group = { +# months = 1 +# triggered_effect = { +# trigger = { +# var:pacification > 15 +# var:pacification > var:resistance +# has_variable = embrace_culture_decision_counter +# } +# effect = { +# if = { +# limit = { +# AND = { +# has_variable = embrace_culture_decision_counter +# var:pacification > 15 +# var:pacification > var:resistance +# } +# } +# change_variable = { +# name = embrace_culture_decision_counter +# add = 1 +# } +# } +# } +# } +# } +# +# # Tick cultural acceptance every three months +# effect_group = { +# months = 3 +# +# first_valid = { +# triggered_effect = { +# trigger = { +# var:resistance > 16 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# culture = { +# change_cultural_acceptance = { +# target = culture:anglo_saxon +# value = major_cultural_acceptance_loss +# desc = harrying_of_the_north_tt_resistance_level_4 +# } +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:resistance > 13 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# culture = { +# change_cultural_acceptance = { +# target = culture:anglo_saxon +# value = medium_cultural_acceptance_loss +# desc = harrying_of_the_north_tt_resistance_level_3 +# } +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:resistance > 10 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# culture = { +# change_cultural_acceptance = { +# target = culture:anglo_saxon +# value = minor_cultural_acceptance_loss +# desc = harrying_of_the_north_tt_resistance_level_2 +# } +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:resistance > 7 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# culture = { +# change_cultural_acceptance = { +# target = culture:anglo_saxon +# value = miniscule_cultural_acceptance_loss +# desc = harrying_of_the_north_tt_resistance_level_1 +# } +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:pacification > 14 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# culture = { +# change_cultural_acceptance = { +# target = culture:anglo_saxon +# value = major_cultural_acceptance_gain +# desc = harrying_of_the_north_tt_pacification_level_4 +# } +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:pacification > 11 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# culture = { +# change_cultural_acceptance = { +# target = culture:anglo_saxon +# value = medium_cultural_acceptance_gain +# desc = harrying_of_the_north_tt_pacification_level_3 +# } +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:pacification > 8 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# culture = { +# change_cultural_acceptance = { +# target = culture:anglo_saxon +# value = minor_cultural_acceptance_gain +# desc = harrying_of_the_north_tt_pacification_level_2 +# } +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:pacification > 5 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# culture = { +# change_cultural_acceptance = { +# target = culture:anglo_saxon +# value = miniscule_cultural_acceptance_gain +# desc = harrying_of_the_north_tt_pacification_level_1 +# } +# } +# } +# } +# } +# } +# } +# +# # Tick dread every month +# effect_group = { +# months = 1 +# +# first_valid = { +# triggered_effect = { +# trigger = { +# var:pacification > 14 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# add_dread = 3 +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:pacification > 13 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# add_dread = 2 +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:pacification > 10 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# add_dread = 1 +# } +# } +# } +# } +# } +# +# # Add discontent to targeting factions every 2 months +# effect_group = { +# months = 2 +# +# first_valid = { +# triggered_effect = { +# trigger = { +# var:resistance > 16 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# if = { +# limit = { +# has_targeting_faction = yes +# } +# add_targeting_factions_discontent = 5 +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:resistance > 13 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# if = { +# limit = { +# has_targeting_faction = yes +# } +# add_targeting_factions_discontent = 3 +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:resistance > 10 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# if = { +# limit = { +# has_targeting_faction = yes +# } +# add_targeting_factions_discontent = 1 +# } +# } +# } +# } +# } +# } +# +# # Erode Norman County Control every 3 months +# effect_group = { +# months = 3 +# +# first_valid = { +# triggered_effect = { +# trigger = { +# var:resistance > 16 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# every_sub_realm_county = { +# limit = { +# holder = { +# NOT = { +# culture = culture:anglo_saxon +# } +# } +# } +# change_county_control = medium_discontent_loss +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:resistance > 13 +# var:resistance > var:pacification +# } +# effect = { +# story_owner = { +# every_sub_realm_county = { +# limit = { +# holder = { +# NOT = { +# culture = culture:anglo_saxon +# } +# } +# } +# change_county_control = minor_discontent_loss +# } +# } +# } +# } +# } +# } +# +# # Add Norman County Control every 3 months +# effect_group = { +# months = 3 +# +# first_valid = { +# triggered_effect = { +# trigger = { +# var:pacification > 14 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# every_sub_realm_county = { +# limit = { +# holder = { +# NOT = { +# culture = culture:anglo_saxon +# } +# } +# } +# change_county_control = medium_discontent_gain +# } +# } +# } +# } +# triggered_effect = { +# trigger = { +# var:pacification > 11 +# var:pacification > var:resistance +# } +# effect = { +# story_owner = { +# every_sub_realm_county = { +# limit = { +# holder = { +# NOT = { +# culture = culture:anglo_saxon +# } +# } +# } +# change_county_control = minor_discontent_gain +# } +# } +# } +# } +# } +# } +# +# #Maintenance group +# effect_group = { +# days = 1 +# #Give the story cycle to any Norman ruler of England if the original one sods off +# triggered_effect = { +# trigger = { +# story_owner = { +# NOT = { +# has_title = title:k_england +# } +# } +# } +# effect = { +# title:k_england.holder = { +# save_scope_as = new_ruler +# } +# make_story_owner = scope:new_ruler +# set_variable = { +# name = ruler_england +# value = story_owner +# } +# set_global_variable = { +# name = ruler_england +# value = story_owner +# } +# } +# } +# } +#} +# \ No newline at end of file diff --git a/common/story_cycles/ep3_story_cycle_hasan_sabbah.txt b/common/story_cycles/ep3_story_cycle_hasan_sabbah.txt new file mode 100644 index 00000000..5f463310 --- /dev/null +++ b/common/story_cycles/ep3_story_cycle_hasan_sabbah.txt @@ -0,0 +1,156 @@ +story_hasan = { + # by James Beaumont + visible = yes + icon = { + trigger = { + always = yes + } + reference = "gfx/interface/icons/regimenttypes/mubarizun.dds" + } + visualization = { + decisions = { + hasan_evangelize_the_faith + hasan_agitate_the_populace + hasan_ignite_the_flames + hasan_found_the_assassins + hasan_expand_the_assassins + zealous_missionary_prep_decision + } + basic_counter = { + variable_name = "radical_points" + min = 0 + max = 15 + label = "PROGRESS_TOWARDS_ASSASSIN_PATH" + } + character = { + variable_name = "ultimate_foe" + label = "ULTIMATE_FOE" + } + } + on_setup = { + + } +# + on_end = { + debug_log = "Hasan i Sabbah story ended on:" + debug_log_date = yes + } +# + on_owner_death = { + end_story = yes + } + + + # Progress on Assassing path Events + effect_group = { + months = 6 + + first_valid = { + triggered_effect = { + trigger = { + exists = var:radical_points + var:radical_points >= 5 + story_owner = { + OR = { + faith = faith:ismaili + faith = faith:nizari + } + NOR = { + has_character_flag = arrived_in_egypt + has_character_flag = had_hasan_sabah_20 + } + } + } + effect = { + story_owner = { + trigger_event = hasan_sabbah.1020 + } + } + } + triggered_effect = { + trigger = { + exists = var:radical_points + var:radical_points >= 15 + NOT = { exists = var:ultimate_foe } + } + effect = { + story_owner = { + trigger_event = hasan_sabbah.1031 + } + } + } + triggered_effect = { + trigger = { + exists = var:story_phase + var:story_phase >= 2 + NOT = { exists = var:ultimate_foe } + story_owner.domicile.domicile_location.county.holder ?= { + save_temporary_scope_as = county_holder + } + faith:ismaili = { + religious_head = { + save_temporary_scope_as = ismaili_hof + NOR = { + this = scope:county_holder + scope:county_holder = { + any_liege_or_above = { + this = scope:ismaili_hof + } + } + } + } + } + faith:nizari = { + religious_head = { + save_temporary_scope_as = nizari_hof + NOR = { + this = scope:county_holder + scope:county_holder = { + any_liege_or_above = { + this = scope:nizari_hof + } + } + } + } + } + } + effect = { + story_owner = { + domicile.domicile_location = { + save_scope_as = location + } + trigger_event = hasan_sabbah.1031 + } + } + } + } + } + + # Hasan dies or stops being muslim, end the story + effect_group = { + days = { 40 60 } + + first_valid = { + triggered_effect = { + trigger = { + OR = { + # Standard checks + NOT = { exists = story_owner } + story_owner = { + is_alive = no + } + # Must be Muslim + NOT = { story_owner = { religion = religion:islam_religion } } + # Must be landless + NOT = { story_owner = { has_government = landless_adventurer_government } } + # Must not be Sunni + story_owner = { faith = { has_doctrine = muhammad_succession_sunni_doctrine } } + } + } + effect = { + end_story = yes + } + } + } + } +} diff --git a/common/story_cycles/ep3_story_cycle_restoring_rome.txt b/common/story_cycles/ep3_story_cycle_restoring_rome.txt new file mode 100644 index 00000000..e9b9297a --- /dev/null +++ b/common/story_cycles/ep3_story_cycle_restoring_rome.txt @@ -0,0 +1,81 @@ + +### Byzantine-focused Restore Rome Story Cycle +### by Chad Uhl + +ep3_story_cycle_restoring_rome = { + + on_setup = { + story_owner = { + trigger_event = { + id = ep3_roman_restoration.0001 + days = 2 + } + } + } + + # We only pass on the story if the title heir is the Player + on_owner_death = { + if = { + limit = { + story_owner = { has_title = title:h_roman_empire } + title:h_roman_empire.current_heir = { is_ai = no } + } + make_story_owner = title:h_roman_empire.current_heir + } + else_if = { + limit = { + story_owner = { has_title = title:h_eastern_roman_empire } + title:h_eastern_roman_empire.current_heir = { is_ai = no } + } + make_story_owner = title:h_eastern_roman_empire.current_heir + } + else_if = { + limit = { + story_owner = { has_title = title:e_byzantium } + title:e_byzantium.current_heir = { is_ai = no } + } + make_story_owner = title:e_byzantium.current_heir + } + } + + # Rome = New Game + + # aka ramp up difficulty + effect_group = { + days = 120 + + trigger = { + story_owner = { + is_ai = no + is_roman_emperor_excluding_byzantium_trigger = yes + } + has_variable = roman_empire_hard_mode + } + + triggered_effect = { + trigger = { always = yes } + effect = { + story_owner = { + trigger_event = { on_action = ep3_restored_rome_on_action } + } + } + } + } + + #Maintenance group + effect_group = { + days = 1 + trigger = { + story_owner = { is_landed = no } + } + triggered_effect = { + trigger = { always = yes } + effect = { + #You became a landless adventurer with different lifestyles! Ending story prematurely. + story_owner = { save_scope_as = story_owner } + debug_log = "Roman Restoration invalidated" + debug_log_scopes = yes + end_story = yes + } + } + } +} diff --git a/common/story_cycles/ep3_story_cycle_violet_poet.txt b/common/story_cycles/ep3_story_cycle_violet_poet.txt new file mode 100644 index 00000000..4d2c054b --- /dev/null +++ b/common/story_cycles/ep3_story_cycle_violet_poet.txt @@ -0,0 +1,78 @@ +story_cycle_violet_poet = { + # by Nick Meredith + visible = yes + + icon = { + trigger = { + always = yes + } + reference = "gfx/interface/icons/artifact/artifact_chronicle.dds" + } + + visualization = { + traits = { + violet_poet + } + artifact = { variable_name = "artifact" label = "POETRY_BOOK_LABEL" } + } + + on_setup = { + set_variable = { + name = violet_poet + value = story_owner + } + } + + on_end = { + debug_log = "Violet Poet story cycle ended on:" + debug_log_date = yes + } + + on_owner_death = { + if = { #Pass on to Wallada's heir but NOT past her heir + limit = { + exists = story_owner.player_heir + story_owner = { + this = character:andalusian_0003 + } + } + make_story_owner = story_owner.player_heir + set_variable = { + name = violet_poet + value = story_owner + } + } + # Or destroy + else = { + end_story = yes + remove_variable = violet_poet + } + } + + # Events for the Violet Poet + effect_group = { + days = { 100 200 } + + trigger = { + story_owner = { + is_available = yes + is_alive = yes + is_adult = yes + } + } + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { + save_scope_as = story_scope + story_owner = { + trigger_event = { + on_action = ongoing_violet_poet_owner_events + } + } + } + } + } + } +} diff --git a/common/story_cycles/fp3_story_cycle_turkic_tribe.txt b/common/story_cycles/fp3_story_cycle_turkic_tribe.txt new file mode 100644 index 00000000..0dff041d --- /dev/null +++ b/common/story_cycles/fp3_story_cycle_turkic_tribe.txt @@ -0,0 +1,132 @@ +turkic_tribe_story = { + + + on_setup = { + ### Scopes + save_scope_as = turkic_tribe_story + story_owner = { + add_character_flag = had_turkic_tribe_story + } + + ### Tracking variables + + set_variable = { + name = turkic_leader + value = story_owner.var:turkic_leader + } + set_variable = { + name = upset_vassal + value = story_owner.var:upset_vassal + } + set_variable = { + name = nomads_county + value = story_owner.var:nomads_county + } + set_variable = { + name = nomads_new_county + value = story_owner.var:nomads_new_county + } + story_owner = { + remove_variable = turkic_leader + remove_variable = upset_vassal + remove_variable = nomads_county + remove_variable = nomads_new_county + } + } + + on_owner_death = { + scope:story = { end_story = yes } + } + + # nomad leader is dead + effect_group = { + days = 200 + + trigger = { + trigger_if = { + limit = { exists = var:turkic_leader } + var:turkic_leader = { + OR = { + is_alive = no + NOR = { + is_courtier_of = scope:story.story_owner + is_vassal_of = scope:story.story_owner + } + } + } + } + trigger_else = { always = yes } + } + + + first_valid = { + triggered_effect = { + trigger = { always = yes } + effect = { end_story = yes } + } + } + } + + + + # Something happens - random events + effect_group = { + days = { 200 350 } #lower these values to test the story cycle + chance = 50 + + triggered_effect = { + trigger = { always = yes } + effect = { + story_owner = { + trigger_event = { + on_action = ongoing_turkic_tribe_events + } + } + } + } + } + + effect_group = { #the nomad chain's end + years = { 5 10 } #lower these values to test the story cycle + chance = 100 + + trigger = { + story_owner = { + is_available = yes + } + } + + triggered_effect = { + trigger = { always = yes } + effect = { + story_owner = { + add_character_flag = { + flag = turkic_tribe_story_end + days = 200 + } + trigger_event = { + on_action = turkic_tribe_story_end + } + } + } + } + } + + #Maintenance group + effect_group = { + days = 1 + trigger = { + story_owner = { is_landed = no } + } + triggered_effect = { + trigger = { always = yes } + effect = { + #You became a landless adventurer/administrative! Ending story prematurely. + story_owner = { save_scope_as = story_owner } + debug_log = "Nomads invalidated" + debug_log_scopes = yes + end_story = yes + } + } + } +} diff --git a/common/story_cycles/fp3_story_cycle_zanj_rebellion.txt b/common/story_cycles/fp3_story_cycle_zanj_rebellion.txt new file mode 100644 index 00000000..2fc43c4b --- /dev/null +++ b/common/story_cycles/fp3_story_cycle_zanj_rebellion.txt @@ -0,0 +1,34 @@ +### Exists so we can track Ali or any subsequent Zanj Leaders. +story_zanj_rebellion = { + + on_setup = { + story_owner = { + set_variable = { + name = zanj_rebellion_strength_score + value = 7 + } + } + } + on_owner_death = { + inherit_zanj_rebellion_effect = yes + } + on_end = {} + + #Maintenance group + effect_group = { + days = 1 + trigger = { + story_owner = { is_landed = no } + } + triggered_effect = { + trigger = { always = yes } + effect = { + #You became a landless adventurer/administrative! Ending story prematurely. + story_owner = { save_scope_as = story_owner } + debug_log = "Zanj invalidated" + debug_log_scopes = yes + end_story = yes + } + } + } +} \ No newline at end of file diff --git a/common/story_cycles/mpo_story_cycle_greatest_of_khans.txt b/common/story_cycles/mpo_story_cycle_greatest_of_khans.txt new file mode 100644 index 00000000..3979734e --- /dev/null +++ b/common/story_cycles/mpo_story_cycle_greatest_of_khans.txt @@ -0,0 +1,265 @@ +story_greatest_of_khans = { + visible = yes + icon = { + trigger = { + always = yes + } + reference = "gfx/interface/icons/story_cycles/bow_steppe.dds" + } + background = { + reference = "gfx/interface/illustrations/event_scenes/mpo_steppe_evening.dds" + } + visualization = { + custom_string_key = "GREATEST_OF_KHANS_INFORMATION_STRING" + decisions = { mpo_gok_world_conquest_decision } + } + + on_setup = { + if = { + limit = { + NOT = { + has_mpo_dlc_trigger = yes + } + } + end_story = yes + } + else = { + set_global_variable = { + name = gok_empire_crumble_date + value = { + value = current_year + add = 75 + } + } + set_variable = { + name = gok_final_date + value = { + value = current_year + add = 75 + } + } + set_global_variable = { + name = first_gok + value = story_owner + } + + set_global_variable = { + name = greatest_of_khans_title + value = story_owner.primary_title + } + global_var:greatest_of_khans_title = { + set_variable = { + name = chaotic_succession_protection + value = yes + } + } + } + } + + on_end = { + if = { + limit = { + exists = global_var:active_conquerors + } + change_global_variable = { + name = active_conquerors + add = -1 + } + } + global_var:greatest_of_khans_title = { + remove_variable = chaotic_succession_protection + } + remove_global_variable = first_gok + remove_global_variable = gok_empire_crumble_date + } + + on_owner_death = { + # Handle story succession + story_owner = { + save_scope_as = old_khan # for news events + if = { + limit = { + any_child = { # if the Khan has a reasonable heir... + is_primary_heir_of = scope:story.story_owner + } + } + random_child = { + limit = { + is_primary_heir_of = scope:story.story_owner + } + save_scope_as = new_khan # for news events + save_scope_as = new_story_owner # pass chain to appropriate target + add_character_flag = { + flag = gain_mongol_succession_dread + days = 2 + } + add_character_modifier = { + modifier = the_great_khan_modifier + } + } + every_player = { + trigger_event = { + id = mongol_invasion.1001 + days = 1 + } + } + } + else_if = { + limit = { + dynasty = { + any_dynasty_member = { # if the Khan has some other heir not family?) + is_primary_heir_of = scope:story.story_owner + } + } + } + dynasty = { + random_dynasty_member = { + limit = { + is_primary_heir_of = scope:story.story_owner + } + save_scope_as = new_khan # for news events + save_scope_as = new_story_owner # pass chain toappropriate target + add_character_flag = { + flag = gain_mongol_succession_dread + days = 2 + } + add_character_modifier = { + modifier = the_great_khan_modifier + } + } + } + every_player = { + trigger_event = { + id = mongol_invasion.1001 + days = 1 + } + } + } + else_if = { + limit = { + primary_heir = { + is_grandchild_of = scope:story.story_owner + } + } + primary_heir = { + save_scope_as = new_khan # for news events + save_scope_as = new_story_owner # pass chain to appropriate target + add_character_flag = { + flag = gain_mongol_succession_dread + days = 2 + } + add_character_modifier = { + modifier = the_great_khan_modifier + } + } + every_player = { + trigger_event = { + id = mongol_invasion.1001 + days = 1 + } + } + } + else_if = { # If the empire passes out of the original dynasty, the story will automatically end + limit = { + NOT = { + dynasty = { + any_dynasty_member = { # if the Khan has some otherheir (not family?) + is_primary_heir_of = scope:story.story_owner + } + } + } + } + scope:story.story_owner.primary_heir = { + save_scope_as = new_khan + } + every_player = { + trigger_event = { + id = mongol_invasion.1001 + days = 1 + } + } + } + } + if = { + limit = { exists = scope:new_story_owner } + make_story_owner = scope:new_story_owner + } + #Story end event + else = { + if = { + limit = { + exists = story_owner.player_heir + exists = story_owner.dynasty + story_owner.player_heir = { + dynasty ?= root.story_owner.dynasty + } + } + story_owner.player_heir ?= { + trigger_event = { + id = mpo_greatest_of_khans.0040 + days = 1 + } + } + } + else = { + end_story = yes + } + } + } + + #Invalidation end! + effect_group = { + years = 75 + + triggered_effect = { + trigger = { + exists = story_owner + } + effect = { + story_owner = { + save_scope_as = timed_out + trigger_event = { + id = mpo_greatest_of_khans.0040 + days = 1 + } + } + } + } + } + + #Start a new war if none is ongoing + effect_group = { + days = { 30 60 } + + trigger = { + story_owner = { + is_at_war = no + gold > 0 + exists = global_var:greatest_of_khans_title + any_held_title = { + this = global_var:greatest_of_khans_title + } + } + } + + triggered_effect = { + trigger = { + story_owner = { + is_ai = yes + } + } + effect = { + story_owner = { + gok_war_target_evaluation_and_declaration_effect = yes + } + debug_log = "The story started a new war for the Greatest of Khans" + debug_log_date = yes + story_owner = { + save_scope_as = owner + } + debug_log_scopes = yes + } + } + } + +} diff --git a/common/story_cycles/mpo_story_cycle_temujin_flavor.txt b/common/story_cycles/mpo_story_cycle_temujin_flavor.txt new file mode 100644 index 00000000..c0e43ed2 --- /dev/null +++ b/common/story_cycles/mpo_story_cycle_temujin_flavor.txt @@ -0,0 +1,22 @@ +story_temujin_flavor = { + + on_owner_death = { + end_story = yes + } + + effect_group = { + days = { 180 360 } + chance = 50 + + triggered_effect = { + trigger = { always = yes } + effect = { + story_owner = { + trigger_event = { + on_action = ongoing_temujin_flavor_events + } + } + } + } + } +} diff --git a/common/story_cycles/story_cycle_almohad_invasion.txt b/common/story_cycles/story_cycle_almohad_invasion.txt new file mode 100644 index 00000000..fadf63cb --- /dev/null +++ b/common/story_cycles/story_cycle_almohad_invasion.txt @@ -0,0 +1,168 @@ + +# Story for the rise of the Almohads +# by Petter Vilberg + +story_almohad_invasion = { + + on_setup = { + set_global_variable = { + name = spawned_almohads + value = yes + } + } + + on_end = { + debug_log = "Almohad story ended on:" + debug_log_date = yes + } + + on_owner_death = { + if = { + limit = { NOT = { exists = var:had_ibn_tumart_succession } } + set_variable = { + name = had_ibn_tumart_succession + value = yes + } + if = { + limit = { exists = var:ibn_tumart_triggered_death } + if = { + limit = { + var:al_mumin = { + is_alive = yes + faith = faith:masmudi + } + } + if = { + limit = { var:al_mumin = { is_imprisoned = yes } } + var:al_mumin = { release_from_prison = yes } + } + if = { + limit = { + NOT = { var:ibn_tumart.primary_heir = var:al_mumin } + } + create_title_and_vassal_change = { + type = granted + save_scope_as = change + add_claim_on_loss = no + } + var:ibn_tumart = { + save_scope_as = ibn_tumart + every_held_title = { + limit = { is_capital_barony = no } + change_title_holder = { + holder = scope:story.var:al_mumin + change = scope:change + } + } + } + resolve_title_and_vassal_change = scope:change + + make_story_owner = var:al_mumin + + var:almohad_county = { + save_scope_as = almohad_county + } + + story_owner = { + if = { # Make sure they get back to warfare + limit = { is_at_war = no } + almohads_find_target_titles_effect = yes + almohads_declare_war_for_target_title_effect = yes + } + spawn_second_almohad_troops_effect = yes + + save_scope_as = al_mumin + + every_war_enemy = { + trigger_event = almohad.1003 + } + } + } + } + } + } + else = { + end_story = yes + } + } + + + + #Kill ibn Tumert if he suffers a defeat + effect_group = { + days = { 20 80 } + + trigger = { + story_owner = var:ibn_tumart + story_owner = { is_alive = yes } + exists = global_var:almohads_were_defeated + } + + triggered_effect = { + trigger = { + always = yes + } + effect = { + debug_log = "Trying to kill Ibn Tumert!" + set_variable = { + name = ibn_tumart_triggered_death + value = yes + } + story_owner = { + death = natural + } + } + } + } + + #Rebuild Marrakesh + effect_group = { + days = 180 + + trigger = { + NOT = { exists = var:fired_marrakesh_event } + story_owner = { + any_sub_realm_county = { + this = title:c_marrakesh + OR = { + holder = scope:story.story_owner + holder = { is_ai = no } + } + } + } + } + + triggered_effect = { + trigger = { + always = yes + } + effect = { + set_variable = { + name = fired_marrakesh_event + value = yes + } + story_owner = { + trigger_event = almohad.1004 + } + } + } + } + + #Maintenance group + effect_group = { + days = 1 + trigger = { + story_owner = { is_landed = no } + } + triggered_effect = { + trigger = { always = yes } + effect = { + #You became a landless adventurer/administrative! Ending story prematurely. + story_owner = { save_scope_as = story_owner } + debug_log = "Almohads invalidated" + debug_log_scopes = yes + end_story = yes + } + } + } +} diff --git a/common/story_cycles/story_cycle_lyonese_monk.txt b/common/story_cycles/story_cycle_lyonese_monk.txt new file mode 100644 index 00000000..03d9caac --- /dev/null +++ b/common/story_cycles/story_cycle_lyonese_monk.txt @@ -0,0 +1,89 @@ +# +################################################### +## Wandering Lyonese Monk +## by Ewan Cowhig Croft +################################################### +# +## We really just use this to contain our variables & variable lists. +# +#story_lyonese_monk = { +# +# on_setup = { +# # Start tracking how many events we've tried to fire from within our current_phase. +# set_variable = { +# name = lm_phase_tally +# value = 0 +# } +# # Set our school score variables. +# set_variable = { +# name = school_elipandic +# value = 0 +# } +# ## Slight edge for the Felicitous school, as scope:acolyte is an explicit Felix of Urgell fan. +# set_variable = { +# name = school_felicitous +# value = 1 +# } +# set_variable = { +# name = school_radical +# value = 0 +# } +# } +# +# on_owner_death = { +# if = { +# limit = { exists = story_owner.player_heir } +# story_owner = { +# # Transfer flags. +# if = { +# limit = { has_character_flag = fp2_lyonese_monk_entered_controversy_flag } +# player_heir = { add_character_flag = fp2_lyonese_monk_entered_controversy_flag } +# } +# if = { +# limit = { has_character_flag = fp2_lyonese_monk_entered_schism_flag } +# player_heir = { add_character_flag = fp2_lyonese_monk_entered_schism_flag } +# } +# save_scope_as = dead_owner +# # Transfer over scopes & prepare to optionally send the story itself. +# player_heir = { +# save_scope_as = acolyte_host +# trigger_event = { +# id = fp2_lyonese_monk.0011 +# days = 7 +# } +# } +# } +# } +# else = { +# var:acolyte = { silent_disappearance_effect = yes } +# end_story = yes +# } +# } +# +# on_end = { +# story_owner = { +# # Wipe them tracking flags. +# remove_character_flag ?= fp2_lyonese_monk_entered_controversy_flag +# remove_character_flag ?= fp2_lyonese_monk_entered_schism_flag +# } +# } +# +# #Maintenance group +# effect_group = { +# days = 1 +# trigger = { +# story_owner = { is_landed = no } +# } +# triggered_effect = { +# trigger = { always = yes } +# effect = { +# #You became a landless adventurer/administrative! Ending story prematurely. +# story_owner = { save_scope_as = story_owner } +# debug_log = "Reformer invalidated" +# debug_log_scopes = yes +# end_story = yes +# } +# } +# } +#} +# \ No newline at end of file diff --git a/common/story_cycles/story_cycle_mongol_invasion.txt b/common/story_cycles/story_cycle_mongol_invasion.txt new file mode 100644 index 00000000..1769f1c6 --- /dev/null +++ b/common/story_cycles/story_cycle_mongol_invasion.txt @@ -0,0 +1,537 @@ +story_mongol_invasion = { + # by Petter Vilberg + + on_setup = { + story_owner = { # Start conquest of all of Mongolia + start_wars_for_mongolia_effect = yes + } + set_variable = { + name = succession_counter + value = 0 + } + } +# + on_end = { + debug_log = "Mongol story ended on:" + debug_log_date = yes + set_global_variable = { + name = mongol_story_has_ended + value = yes + } + } +# + on_owner_death = { + story_owner = { + set_variable = { + name = special_mongol_empire_conquest_region_prio_1_alpha_var + value = 0 + } + set_variable = { + name = special_mongol_empire_conquest_region_prio_1_var + value = 0 + } + set_variable = { + name = special_mongol_empire_conquest_region_prio_2_var + value = 0 + } + set_variable = { + name = special_mongol_empire_conquest_region_prio_3_var + value = 0 + } + set_variable = { + name = special_mongol_empire_conquest_region_prio_4_var + value = 0 + } + set_variable = { + name = special_mongol_empire_conquest_region_prio_5_var + value = 0 + } + set_variable = { + name = outside_conquest_region_var + value = 0 + } + every_realm_county = { + if = { + limit = { + title_province = { + geographical_region = special_mongol_empire_conquest_region_prio_5 + } + } + root.story_owner = { + change_variable = { + name = special_mongol_empire_conquest_region_prio_5_var + add = 1 + } + } + } + else_if = { + limit = { + title_province = { + geographical_region = special_mongol_empire_conquest_region_prio_4 + } + } + root.story_owner = { + change_variable = { + name = special_mongol_empire_conquest_region_prio_4_var + add = 1 + } + } + } + else_if = { + limit = { + title_province = { + geographical_region = special_mongol_empire_conquest_region_prio_3 + } + } + root.story_owner = { + change_variable = { + name = special_mongol_empire_conquest_region_prio_3_var + add = 1 + } + } + } + else_if = { + limit = { + title_province = { + geographical_region = special_mongol_empire_conquest_region_prio_2 + } + } + root.story_owner = { + change_variable = { + name = special_mongol_empire_conquest_region_prio_2_var + add = 1 + } + } + } + else_if = { + limit = { + title_province = { + geographical_region = special_mongol_empire_conquest_region_prio_1 + } + } + root.story_owner = { + change_variable = { + name = special_mongol_empire_conquest_region_prio_1_var + add = 1 + } + } + } + else_if = { + limit = { + title_province = { + geographical_region = special_mongol_empire_conquest_region_prio_1_alpha + } + } + root.story_owner = { + change_variable = { + name = special_mongol_empire_conquest_region_prio_1_alpha_var + add = 1 + } + } + } + else = { + root.story_owner = { + change_variable = { + name = outside_conquest_region_var + add = 1 + } + } + } + } + } + # Weighted random chance to end the story/break up the Empire + random = { + chance = 0 + #Pure realm size - Mongol empire is historical breakup size + modifier = { + add = 20 + story_owner = { + realm_size >= 1087 + } + } + #Pure realm size - Mongol empire is max extent size + modifier = { + add = 20 + story_owner = { + realm_size >= 1474 + } + } + #Pure realm size - Mongol empire is at total bonus size + modifier = { + add = 30 + story_owner = { + realm_size >= 1725 + } + } + modifier = { # If the empire is very successful, increase the chance + add = 10 + story_owner = { + #Half of total county count + var:special_mongol_empire_conquest_region_prio_1_alpha_var >= 80 + var:special_mongol_empire_conquest_region_prio_1_var >= 60 + var:special_mongol_empire_conquest_region_prio_2_var >= 100 + #Just a third + var:special_mongol_empire_conquest_region_prio_3_var >= 30 + var:special_mongol_empire_conquest_region_prio_4_var >= 100 + var:special_mongol_empire_conquest_region_prio_5_var >= 120 + } + } + modifier = { # If the empire is EXTREMELY successful, increase the chance + add = 20 + story_owner = { + #Three quarters of total county count + var:special_mongol_empire_conquest_region_prio_1_alpha_var >= 120 + var:special_mongol_empire_conquest_region_prio_1_var >= 75 + var:special_mongol_empire_conquest_region_prio_2_var >= 200 + #Just half + var:special_mongol_empire_conquest_region_prio_3_var >= 45 + var:special_mongol_empire_conquest_region_prio_4_var >= 150 + var:special_mongol_empire_conquest_region_prio_5_var >= 180 + var:outside_conquest_region_var >= 100 + } + } + modifier = { + add = 20 + var:succession_counter > 1 + } + modifier = { + add = 30 + var:succession_counter > 2 + } + modifier = { # Historical point + add = 30 + var:succession_counter > 3 + } + modifier = { # Guaranteed if there have been five successions + add = 20 + var:succession_counter > 4 + } + set_variable = { + name = end_of_story + value = yes + } + } + if = { + limit = { + exists = var:end_of_story + } + # Do the breakup of the empire if possible + story_owner = { + if = { + limit = { + realm_size >= 50 + } + debug_log = "Trying to break up the Mongol Empire" + break_up_mongol_empire_effect = yes + } + else = { + save_scope_as = old_khan + player_heir = { + save_scope_as = new_khan + } + every_player = { + trigger_event = mongol_invasion.1005 # Small end to story + } + } + } + end_story = yes + } + else = { + change_variable = { + name = succession_counter + add = 1 + } + # Handle story succession + story_owner = { + save_scope_as = old_khan # for news events + if = { + limit = { + any_child = { # if the Khan has a reasonable heir... + is_primary_heir_of = scope:story.story_owner + } + } + random_child = { + limit = { + is_primary_heir_of = scope:story.story_owner + } + save_scope_as = new_khan # for news events + save_scope_as = new_story_owner # pass chain to appropriate target + add_character_flag = { + flag = gain_mongol_succession_dread + days = 2 + } + add_character_modifier = { + modifier = the_great_khan_modifier + } + } + every_player = { + trigger_event = { + id = mongol_invasion.1001 + days = 1 + } + } + } + else_if = { + limit = { + dynasty = { + any_dynasty_member = { # if the Khan has some other heir (not family?) + is_primary_heir_of = scope:story.story_owner + } + } + } + dynasty = { + random_dynasty_member = { + limit = { + is_primary_heir_of = scope:story.story_owner + } + save_scope_as = new_khan # for news events + save_scope_as = new_story_owner # pass chain to appropriate target + add_character_flag = { + flag = gain_mongol_succession_dread + days = 2 + } + add_character_modifier = { + modifier = the_great_khan_modifier + } + } + } + every_player = { + trigger_event = { + id = mongol_invasion.1001 + days = 1 + } + } + } + else_if = { # If the empire passes out of the original dynasty, the story will automatically end + limit = { + NOT = { + dynasty = { + any_dynasty_member = { # if the Khan has some other heir (not family?) + is_primary_heir_of = scope:story.story_owner + } + } + } + } + scope:story.story_owner.primary_heir = { + save_scope_as = new_khan + } + every_player = { + trigger_event = { + id = mongol_invasion.1001 + days = 1 + } + } + } + } + if = { + limit = { exists = scope:new_story_owner } + make_story_owner = scope:new_story_owner + scope:new_story_owner = { + # Delayed firing of spawning new event troops + trigger_event = { + id = mongol_invasion.0100 + days = 1 + } + } + debug_log = "Successfully replaced the Mongol Khan" + debug_log_date = yes + debug_log_scopes = yes + } + else = { + # Make sure the empire breaks up as best as possible + story_owner = { + if = { + limit = { + realm_size >= 50 + } + } + debug_log = "Due to failing to replace the Khan with a Temujin successor, now trying to break up the empire" + break_up_mongol_empire_effect = yes + } + + end_story = yes + debug_log = "Failed to replace the Mongol Khan" + debug_log_date = yes + debug_log_scopes = yes + } + } + story_owner = { + clear_variable_list = special_mongol_empire_conquest_region_prio_1_alpha_var + clear_variable_list = special_mongol_empire_conquest_region_prio_1_var + clear_variable_list = special_mongol_empire_conquest_region_prio_2_var + clear_variable_list = special_mongol_empire_conquest_region_prio_3_var + clear_variable_list = special_mongol_empire_conquest_region_prio_4_var + clear_variable_list = special_mongol_empire_conquest_region_prio_5_var + clear_variable_list = outside_conquest_region_var + } + } + + + + #Start a new war if none is ongoing + effect_group = { + days = { 30 50 } + + trigger = { + story_owner = { + is_at_war = no + gold > 0 + any_held_title = { + this = title:e_mongol_empire + } + } + } + + triggered_effect = { + trigger = { + story_owner = { + is_ai = yes + } + } + effect = { + if = { + limit = { + has_mpo_dlc_trigger = yes + } + story_owner = { + gok_war_target_evaluation_and_declaration_effect = yes + } + } + else = { + story_owner = { + mongol_war_target_evaluation_and_declaration_effect = yes + } + } + debug_log = "The story started a new war for the Mongols" + debug_log_date = yes + story_owner = { + save_scope_as = owner + } + debug_log_scopes = yes + } + } + } + + # Story handling in case of succession weirdness + effect_group = { + days = 180 + + trigger = { + story_owner = { + NOT = { + any_held_title = { + this = title:e_mongol_empire + } + } + } + } + + triggered_effect = { + trigger = { exists = title:e_mongol_empire } + effect = { + if = { + limit = { + title:e_mongol_empire.holder = { + culture = culture:mongol + } + } + make_story_owner = title:e_mongol_empire.holder + } + else = { + end_story = yes + } + } + } + + triggered_effect = { + trigger = { NOT = { exists = title:e_mongol_empire } } + effect = { + end_story = yes + } + } + } + + # Set up Mongol Empire de jure stuff + effect_group = { + days = 180 + + trigger = { + NOT = { exists = var:has_updated_mongolia_de_jure } + trigger_if = { + limit = { + title:e_mongolia = { + any_de_jure_county = { + count >= 3 + } + } + } + title:e_mongolia = { + any_in_de_jure_hierarchy = { + continue = { tier > tier_county } + tier = tier_county + holder.top_liege = scope:story.story_owner + count > 3 + } + } + } + story_owner.capital_county.empire = { + any_in_de_jure_hierarchy = { + continue = { tier > tier_county } + tier = tier_county + holder.top_liege = scope:story.story_owner + count > 5 + } + } + } + + triggered_effect = { + trigger = { + always = yes + } + + effect = { + title:e_mongolia = { + every_in_de_jure_hierarchy = { + limit = { + tier = tier_kingdom + } + set_de_jure_liege_title = title:e_mongol_empire + } + } + if = { + limit = { + exists = title:e_mongolia.holder + } + title:e_mongolia.holder = { + destroy_title = title:e_mongolia + } + } + if = { + limit = { + story_owner.capital_county.empire = { + NOT = { + this = title:e_mongol_empire + } + } + } + story_owner.capital_county.empire = { + save_scope_as = new_de_jure + } + scope:new_de_jure = { + every_in_de_jure_hierarchy = { + limit = { + tier = tier_kingdom + } + set_de_jure_liege_title = title:e_mongol_empire + } + } + } + + set_variable = { + name = has_updated_mongolia_de_jure + value = yes + } + } + } + } +} diff --git a/common/story_cycles/story_cycle_restored_roman_provinces.txt b/common/story_cycles/story_cycle_restored_roman_provinces.txt new file mode 100644 index 00000000..dcbc14ec --- /dev/null +++ b/common/story_cycles/story_cycle_restored_roman_provinces.txt @@ -0,0 +1,52 @@ +restoring_roman_provinces_story = { + + on_setup = { + } + + on_end = { + } + + on_owner_death = { + } + + effect_group = { + days = 36 #Checked every 365 days + + triggered_effect = { + trigger = { + story_owner = { + roman_restoration_is_valid_roman_empire_trigger = yes + OR = { + has_title = title:h_roman_empire #Not for Byzantium. + has_title = title:h_eastern_roman_empire #Not for Byzantium. + } + } + } + effect = { + story_owner = { + trigger_event = { + on_action = on_action_roman_restoration_pulse + } + } + } + } + } + + #Maintenance group + effect_group = { + days = 1 + trigger = { + story_owner = { is_landed = no } + } + triggered_effect = { + trigger = { always = yes } + effect = { + #You became a landless adventurer with different lifestyles! Ending story prematurely. + story_owner = { save_scope_as = story_owner } + debug_log = "Roman Restoration invalidated" + debug_log_scopes = yes + end_story = yes + } + } + } +} diff --git a/common/story_cycles/story_cycle_seljuk_invasion.txt b/common/story_cycles/story_cycle_seljuk_invasion.txt new file mode 100644 index 00000000..a17588cc --- /dev/null +++ b/common/story_cycles/story_cycle_seljuk_invasion.txt @@ -0,0 +1,177 @@ +story_seljuk_invasion = { + + on_setup = { + story_owner = { # Find a place for the Seljuks to settle + set_variable = { + name = seljuk_invasion_nomad_strength_score + value = 10 + } + try_to_settle_the_seljuk_effect = yes + } + set_variable = { + name = succession_counter + value = 0 + } + } + + on_end = {} + + on_owner_death = { + # Breakup of the empire should not happen until at least one succession has passed + random_list = { # Weighted chance to end the story + 10 = { + trigger = { var:succession_counter < 2 } + modifier = { + add = 10 + var:succession_counter > 1 + } + modifier = { # Historical point + add = 10 + var:succession_counter > 2 + } + modifier = { + add = 20 + var:succession_counter > 3 + } + end_story = yes + } + 90 = { + if = { + limit = { + exists = story_owner.primary_heir + } + make_story_owner = story_owner.primary_heir + change_variable = { + name = seljuk_invasion_nomad_strength_score + add = -5 + } + } + else = { + end_story = yes + } + } + } + } + + # Start a new war if one is not ongoing + effect_group = { + days = { 30 60 } + + trigger = { + story_owner = { + is_at_war = no + gold > 0 + OR = { + NOT = { has_character_flag = settled_seljuk } + top_liege = this + } + } + } + + triggered_effect = { + trigger = { + story_owner = { + is_ai = yes + } + } + effect = { + story_owner = { + seljuk_war_target_evaluation_and_declaration_effect = yes + save_scope_as = owner + } + } + } + } + + # Ask for independence if vassals + effect_group = { + years = { 1 2 } + + trigger = { + story_owner = { + has_character_flag = settled_seljuk + top_liege != this + } + } + + triggered_effect = { + trigger = { + story_owner = { + is_ai = yes + } + } + effect = { + story_owner = { + seljuk_request_independence_from_liege_effect = yes + save_scope_as = owner + } + } + } + } + + # Create the empire and close the story + effect_group = { + days = { 30 60 } + + trigger = { + story_owner = { + save_temporary_scope_as = temp_seljuk + OR = { + any_county_in_region = { + region = world_persian_empire + percent >= 0.51 + holder.top_liege = scope:temp_seljuk + } + any_held_title = { + count = 2 + title_tier = kingdom + any_this_title_or_de_jure_above = { + this = title:e_persia + } + } + any_held_title = { + title_tier = empire + any_this_title_or_de_jure_above = { + this = title:e_persia + } + } + } + } + } + + triggered_effect = { + trigger = { + story_owner = { + is_ai = yes + } + } + effect = { + story_owner = { + save_scope_as = owner + + create_title_and_vassal_change = { + type = created + save_scope_as = title_change + add_claim_on_loss = no + } + + title:e_persia = { + change_title_holder = { + holder = scope:owner + change = scope:title_change + } + save_scope_as = title_e_persia + } + + resolve_title_and_vassal_change = scope:title_change + + set_primary_title_to = scope:title_e_persia + + } + + end_story = yes + } + } + } + +} diff --git a/common/story_cycles/story_cycle_take_mandate_of_heaven.txt b/common/story_cycles/story_cycle_take_mandate_of_heaven.txt new file mode 100644 index 00000000..ec4c5a26 --- /dev/null +++ b/common/story_cycles/story_cycle_take_mandate_of_heaven.txt @@ -0,0 +1,189 @@ +story_take_mandate_of_heaven = { + + on_setup = { + } + + on_end = { + } + + on_owner_death = { + story_owner = { + if = { + limit = { + primary_heir ?= { + is_ai = yes + is_physically_able_adult = yes + } + } + primary_heir ?= { + create_story = story_take_mandate_of_heaven + } + } + else = { + every_heir = { + limit = { + is_ai = yes + is_physically_able_adult = yes + } + create_story = story_take_mandate_of_heaven + } + } + } + end_story = yes + } + + effect_group = { # Handles the AI behavior + days = { 30 60 } + + triggered_effect = { + trigger = { + story_owner = { + is_ai = yes + NOT = { can_execute_decision = situation_dynastic_cycle_claim_mandate_decision } + } + } + effect = { + story_owner = { + save_scope_as = root_scope + + ###### BUDGETING + if = { + limit = { + is_at_war = no + primary_title = { title_held_years >= 3 } # Do not go into buildup mode if there's a brother you need to destroy immediately! + OR = { + any_neighboring_and_across_water_top_liege_realm_owner = { + count = all + current_military_strength >= scope:root_scope.max_military_strength + NOR = { + is_allied_to = scope:root_scope + has_relation_friend = scope:root_scope + has_relation_lover = scope:root_scope + } + } + any_neighboring_and_across_water_top_liege_realm_owner = { + count >= 2 + current_military_strength >= scope:root_scope.max_military_strength + NOR = { + is_allied_to = scope:root_scope + has_relation_friend = scope:root_scope + has_relation_lover = scope:root_scope + } + } + any_vassal = { + exists = joined_faction + joined_faction = { + faction_power >= faction_power_halfway_threshold + } + } + AND = { + NOT = { ai_should_get_conqueror_bonuses = yes } # They have a 75% discount + monthly_character_income_minus_expenses > half_monthly_character_income # Try to spend at least 50% of income on MaA! + } + } + } + move_budget_gold = { gold = long_term_gold from = budget_long_term to = budget_war_chest } + move_budget_gold = { gold = short_term_gold from = budget_short_term to = budget_war_chest } + move_budget_gold = { gold = long_term_gold from = budget_long_term to = budget_short_term } + + if = { + limit = { + has_treasury = yes + } + move_budget_treasury = { treasury = long_term_treasury from = budget_long_term to = budget_war_chest } + move_budget_treasury = { treasury = short_term_treasury from = budget_short_term to = budget_war_chest } + move_budget_treasury = { treasury = long_term_treasury from = budget_long_term to = budget_short_term } + } + } + + + if = { + limit = { + is_at_war = no + OR = { + AND = { + has_treasury = yes + war_chest_treasury >= war_chest_treasury_maximum + } + AND = { + has_treasury = no + war_chest_gold >= war_chest_gold_maximum + } + } + } + ai_start_best_war = { + cb = { + chinese_consolidation_cb + } + is_valid = { + scope:target_character = { + current_military_strength < root.current_military_strength + OR = { + AND = { + root = { has_treasury = yes } + has_treasury = yes + treasury < root.treasury + } + AND = { + root = { has_treasury = yes } + has_treasury = no + gold < root.treasury + } + AND = { + root = { has_treasury = no } + has_treasury = yes + treasury < root.gold + } + AND = { + root = { has_treasury = no } + has_treasury = no + gold < root.gold + } + current_military_strength <= root.fifty_percent_of_current_military_strength + } + } + } + } + } + } + } + } + } + + effect_group = { # Take the decision + days = { 60 120 } + + triggered_effect = { + trigger = { + story_owner = { + is_ai = yes + can_execute_decision = situation_dynastic_cycle_claim_mandate_decision + } + } + effect = { + story_owner = { + execute_decision = situation_dynastic_cycle_claim_mandate_decision + } + } + } + } + effect_group = { # Various ways to end the cycle + days = { 900 1800 } + + triggered_effect = { + trigger = { + story_owner = { + OR = { + is_independent_ruler = no + is_landed = no + has_trait = incapable + highest_held_title_tier <= tier_county + } + } + } + effect = { + end_story = yes + } + } + } +} diff --git a/common/story_cycles/tgp_story_cycle_tai_migrations.txt b/common/story_cycles/tgp_story_cycle_tai_migrations.txt new file mode 100644 index 00000000..f038c6c1 --- /dev/null +++ b/common/story_cycles/tgp_story_cycle_tai_migrations.txt @@ -0,0 +1,147 @@ +story_tai_migrations = { + + on_setup = { + + } + + on_end = { + every_in_global_list = { # give all saved migration county holders the story if they don't have it already + variable = tai_migration_target_counties + holder = { + if = { + limit = { + NOT = { + any_owned_story = { + type = story_tai_migrations + } + } + any_realm_province = { + culture = { + NOT = { + has_cultural_pillar = heritage_tai + } + } + } + } + create_story = story_tai_migrations + } + } + } + } + + on_owner_death = { # pass on the story + story_owner = { + primary_heir ?= { + if = { + limit = { + is_physically_able_adult = yes + is_ai = yes + } + create_story = story_tai_migrations + } + } + } + end_story = yes + } + + effect_group = { # Yearly validations + days = 360 + triggered_effect = { # end the story if I have no relevant provinces for migration + trigger = { + story_owner = { + NOT = { + any_realm_province = { + geographical_region = custom_tai_migration_target + culture = { + NOT = { + has_cultural_pillar = heritage_tai + } + } + } + } + } + } + effect = { + end_story = yes + } + } + + triggered_effect = { # end the story if it has been 100 years from game start + trigger = { + years_from_game_start >= 100 + } + effect = { + end_story = yes + } + } + + triggered_effect = { # end the story if X provinces in the Tai region have already been migrated + trigger = { + any_county_in_region = { + region = custom_tai_migration_target + count >= 14 + any_county_province = { + culture = { has_cultural_pillar = heritage_tai } + } + } + } + effect = { + end_story = yes + } + } + + triggered_effect = { # end the story if all provinces in the migration origin are non-tai + trigger = { + any_county_in_region = { + region = custom_tai_migration_origin + count = 0 + any_county_province = { + culture = { has_cultural_pillar = heritage_tai } + } + } + } + effect = { + end_story = yes + } + } + } + + effect_group = { # if all validations are checked, trigger event pulses + days = 365 + chance = 13 + triggered_effect = { + trigger = { + + } + effect = { + random_list = { + 3 = { + story_owner = { + trigger_event = tgp_tai_migration_event.1000 + } + } + 4 = { + story_owner = { + trigger_event = tgp_tai_migration_event.2000 + } + } + 1 = { + story_owner = { + trigger_event = tgp_tai_migration_event.3000 + } + } + 4 = { + story_owner = { + trigger_event = tgp_tai_migration_event.4000 + } + } + 4 = { + story_owner = { + trigger_event = tgp_tai_migration_event.5000 + } + } + } + } + } + } +} diff --git a/events/decisions_events/major_decisions_events.txt b/events/decisions_events/major_decisions_events.txt index 0946e9d3..306641c6 100644 --- a/events/decisions_events/major_decisions_events.txt +++ b/events/decisions_events/major_decisions_events.txt @@ -1500,198 +1500,198 @@ major_decisions.3100 = { } ################### -# Merge Aquitaine # -################### -major_decisions.3200 = { - type = character_event - title = major_decisions.3200.t - desc = major_decisions.3200.desc - theme = realm - left_portrait = { - trigger = { - this != scope:rightful_liege - } - character = root - triggered_animation = { - trigger = { - NOR = { - opinion = { - target = scope:rightful_liege - value >= 25 - } - root.culture = scope:rightful_liege.culture - culture = { any_parent_culture_or_above = { this = scope:rightful_liege.culture } } - } - } - animation = disapproval - } - animation = obsequious_bow - } - - right_portrait = { - character = scope:rightful_liege - animation = personality_honorable - } - - immediate = { - show_as_tooltip = { - destroy_title = scope:destroyed_title - scope:rightful_title = { - if = { - limit = { - this = title:k_aquitaine - } - every_in_de_jure_hierarchy = { - custom = merge_aquitaine_decision_tooltip_alt - custom_tooltip = merge_aquitaine_decision_tooltip_2_alt - } - } - else = { - every_in_de_jure_hierarchy = { - custom = merge_aquitaine_decision_tooltip_original - custom_tooltip = merge_aquitaine_decision_tooltip_2_original - } - } - } - } - } - - option = { - name = major_decisions.3200.a - trigger = { - NOR = { - opinion = { - target = scope:rightful_liege - value >= 25 - } - root.culture = scope:rightful_liege.culture - culture = { any_parent_culture_or_above = { this = scope:rightful_liege.culture } } - } - } - } - - option = { - name = major_decisions.3200.b - trigger = { - OR = { - opinion = { - target = scope:rightful_liege - value >= 25 - } - root.culture = scope:rightful_liege.culture - culture = { any_parent_culture_or_above = { this = scope:rightful_liege.culture } } - } - } - } -} -#Restore Carthage -major_decisions.3300 = { - type = character_event - title = major_decisions.3300.t - desc = major_decisions.3300.desc - theme = crown - - override_effect_2d = { reference = legend_glow } - - left_portrait = { - character = root - animation = sword_coup_degrace - camera = camera_torso_scheme_right_look_right - } - - immediate = { - restore_carthage_scripted_effect = yes - - culture = { save_scope_as = founder_culture } - } - - option = { - name = major_decisions.3300.a - - hidden_effect = { - culture:carthaginian = { - get_all_innovations_from = scope:founder_culture - } - } - - #convert people to your new culture - convert_family_culture_and_notify_vassals_effect = { - OLD_CULTURE = root.culture - NEW_CULTURE = culture:carthaginian - CONVERTER = root - } - - #convert capital counties to carthaginian - title:c_tunis = { - set_county_culture = culture:carthaginian - } - title:c_tripolitana = { - set_county_culture = culture:carthaginian - } - title:c_algier = { - set_county_culture = culture:carthaginian - } - title:c_murcia = { - set_county_culture = culture:carthaginian - } - } - - option = { - name = major_decisions.3300.b - } -} - -############## -# Carantania # -############## -major_decisions.3400 = { - type = character_event - title = major_decisions.3400.t - desc = major_decisions.3400.desc - theme = crown - override_background = ce1_legendary_spring - left_portrait = { - character = root - animation = pondering - } - window = big_event_window - - widget = { gui = event_window_widget_vfx_godray container = foreground_shader_vfx_container } - - immediate = { - decision_restore_carantania_effect = yes - } - - option = { - name = major_decisions.3400.a - } -} - -########### -# Cumbria # -########### -major_decisions.3500 = { - type = character_event - title = major_decisions.3500.t - desc = major_decisions.3500.desc - theme = crown - override_background = council_chamber - left_portrait = { - character = root - animation = pondering - } - window = big_event_window - - widget = { gui = event_window_widget_vfx_godray container = foreground_shader_vfx_container } - - immediate = { - form_cumbria_decision_scripted_effect = yes - } - - option = { - name = major_decisions.3500.a - } -} +## Merge Aquitaine # +#################### +#major_decisions.3200 = { +# type = character_event +# title = major_decisions.3200.t +# desc = major_decisions.3200.desc +# theme = realm +# left_portrait = { +# trigger = { +# this != scope:rightful_liege +# } +# character = root +# triggered_animation = { +# trigger = { +# NOR = { +# opinion = { +# target = scope:rightful_liege +# value >= 25 +# } +# root.culture = scope:rightful_liege.culture +# culture = { any_parent_culture_or_above = { this = scope:rightful_liege.culture } } +# } +# } +# animation = disapproval +# } +# animation = obsequious_bow +# } +# +# right_portrait = { +# character = scope:rightful_liege +# animation = personality_honorable +# } +# +# immediate = { +# show_as_tooltip = { +# destroy_title = scope:destroyed_title +# scope:rightful_title = { +# if = { +# limit = { +# this = title:k_aquitaine +# } +# every_in_de_jure_hierarchy = { +# custom = merge_aquitaine_decision_tooltip_alt +# custom_tooltip = merge_aquitaine_decision_tooltip_2_alt +# } +# } +# else = { +# every_in_de_jure_hierarchy = { +# custom = merge_aquitaine_decision_tooltip_original +# custom_tooltip = merge_aquitaine_decision_tooltip_2_original +# } +# } +# } +# } +# } +# +# option = { +# name = major_decisions.3200.a +# trigger = { +# NOR = { +# opinion = { +# target = scope:rightful_liege +# value >= 25 +# } +# root.culture = scope:rightful_liege.culture +# culture = { any_parent_culture_or_above = { this = scope:rightful_liege.culture } } +# } +# } +# } +# +# option = { +# name = major_decisions.3200.b +# trigger = { +# OR = { +# opinion = { +# target = scope:rightful_liege +# value >= 25 +# } +# root.culture = scope:rightful_liege.culture +# culture = { any_parent_culture_or_above = { this = scope:rightful_liege.culture } } +# } +# } +# } +#} +##Restore Carthage +#major_decisions.3300 = { +# type = character_event +# title = major_decisions.3300.t +# desc = major_decisions.3300.desc +# theme = crown +# +# override_effect_2d = { reference = legend_glow } +# +# left_portrait = { +# character = root +# animation = sword_coup_degrace +# camera = camera_torso_scheme_right_look_right +# } +# +# immediate = { +# restore_carthage_scripted_effect = yes +# +# culture = { save_scope_as = founder_culture } +# } +# +# option = { +# name = major_decisions.3300.a +# +# hidden_effect = { +# culture:carthaginian = { +# get_all_innovations_from = scope:founder_culture +# } +# } +# +# #convert people to your new culture +# convert_family_culture_and_notify_vassals_effect = { +# OLD_CULTURE = root.culture +# NEW_CULTURE = culture:carthaginian +# CONVERTER = root +# } +# +# #convert capital counties to carthaginian +# title:c_tunis = { +# set_county_culture = culture:carthaginian +# } +# title:c_tripolitana = { +# set_county_culture = culture:carthaginian +# } +# title:c_algier = { +# set_county_culture = culture:carthaginian +# } +# title:c_murcia = { +# set_county_culture = culture:carthaginian +# } +# } +# +# option = { +# name = major_decisions.3300.b +# } +#} +# +############### +## Carantania # +############### +#major_decisions.3400 = { +# type = character_event +# title = major_decisions.3400.t +# desc = major_decisions.3400.desc +# theme = crown +# override_background = ce1_legendary_spring +# left_portrait = { +# character = root +# animation = pondering +# } +# window = big_event_window +# +# widget = { gui = event_window_widget_vfx_godray container = foreground_shader_vfx_container } +# +# immediate = { +# decision_restore_carantania_effect = yes +# } +# +# option = { +# name = major_decisions.3400.a +# } +#} +# +############ +## Cumbria # +############ +#major_decisions.3500 = { +# type = character_event +# title = major_decisions.3500.t +# desc = major_decisions.3500.desc +# theme = crown +# override_background = council_chamber +# left_portrait = { +# character = root +# animation = pondering +# } +# window = big_event_window +# +# widget = { gui = event_window_widget_vfx_godray container = foreground_shader_vfx_container } +# +# immediate = { +# form_cumbria_decision_scripted_effect = yes +# } +# +# option = { +# name = major_decisions.3500.a +# } +#} # #################### ## Cossack Kingdom # diff --git a/events/dlc/ep3/ep3_laamp_events.txt b/events/dlc/ep3/ep3_laamp_events.txt index 9ed4d6d1..063d9966 100644 --- a/events/dlc/ep3/ep3_laamp_events.txt +++ b/events/dlc/ep3/ep3_laamp_events.txt @@ -1304,291 +1304,6 @@ ep3_laamps.1030 = { 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