namespace = migration_events ############################ ## Mechanical Migration Events ## 0001-0099 ############################ # migration_events.0001 - Arrival at Migration destination, title transfer # Arrival at Migration destination, title transfer migration_events.0001 = { type = character_event title = migration_events.0001.t desc = { first_valid = { # Season triggered_desc = { trigger = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_severe_drought_season situation_sub_region_has_county = root.location.county } } } desc = migration_events.0001.desc.drought } triggered_desc = { trigger = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_white_zud_season situation_sub_region_has_county = root.location.county } } } desc = migration_events.0001.desc.white_zud } triggered_desc = { trigger = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_havsarsan_zud_season situation_sub_region_has_county = root.location.county } } } desc = migration_events.0001.desc.havsarsan_zud } triggered_desc = { trigger = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_sky_blessing_season situation_sub_region_has_county = root.location.county } } } desc = migration_events.0001.desc.blessing } desc = migration_events.0001.desc.intro } first_valid = { # Relationship triggered_desc = { trigger = { has_variable = migrating_into_tributary_var } desc = migration_events.0001.desc.tributary } triggered_desc = { trigger = { scope:recipient = { government_has_flag = government_is_herder } } desc = migration_events.0001.desc.herder } triggered_desc = { trigger = { scope:recipient = { OR = { is_obedient_to = root has_any_good_relationship_with_root_trigger = yes } } } desc = migration_events.0001.desc.nomad_obedient } triggered_desc = { trigger = { scope:recipient = { has_any_bad_relationship_with_root_trigger = yes } } desc = migration_events.0001.desc.nomad_angry } desc = migration_events.0001.desc.nomad } first_valid = { # Fertility triggered_desc = { trigger = { location.county.county_fertility >= good_county_fertility_level } desc = migration_events.0001.desc.good } triggered_desc = { trigger = { location.county.county_fertility <= bad_county_fertility_level } desc = migration_events.0001.desc.bad } desc = migration_events.0001.desc.meh } } theme = migration override_background = { trigger = { OR = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_white_zud_season situation_sub_region_has_county = root.location.county } } any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_cold_zud_season situation_sub_region_has_county = root.location.county } } any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_havsarsan_zud_season situation_sub_region_has_county = root.location.county } } } } reference = bp3_steppe_winter } override_background = { trigger = { NOR = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_white_zud_season situation_sub_region_has_county = root.location.county } } any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_cold_zud_season situation_sub_region_has_county = root.location.county } } any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_havsarsan_zud_season situation_sub_region_has_county = root.location.county } } any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_sky_blessing_season situation_sub_region_has_county = root.location.county } } } } reference = mpo_steppe_evening } widgets = { widget = { is_shown = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_cold_zud_season situation_sub_region_has_county = root.location.county } } } gui = "event_window_widget_vfx_snow" container = "foreground_shader_vfx_container" } widget = { is_shown = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_havsarsan_zud_season situation_sub_region_has_county = root.location.county } } } gui = "event_window_widget_vfx_snowstorm" container = "foreground_shader_vfx_container" } } left_portrait = { character = scope:actor animation = horse_archer_idle camera = camera_event_horse_left } right_portrait = { character = scope:recipient triggered_animation = { trigger = { scope:recipient = { government_has_flag = government_is_herder } } animation = shepherd_with_sheep } triggered_animation = { trigger = { scope:recipient = { has_any_bad_relationship_with_root_trigger = yes } } animation = personality_callous } animation = throne_room_bow_1 camera = camera_event_right_away } lower_right_portrait = { trigger = { exists = scope:overlord } character = scope:overlord } immediate = { remove_variable = migration_title if = { limit = { has_variable = migrating_into_tributary_var } var:migrating_into_tributary_var = { save_scope_as = overlord } save_scope_as = new_tributary # For the toasts to overlord } if = { limit = { NOT = { exists = scope:recipient } } hidden_effect = { create_character = { template = herder_character faith = root.location.county.faith culture = root.location.county.culture location = root.location save_scope_as = recipient after_creation = { remove_character_flag = peasant_outfit add_to_list = government_change add_character_flag = created } } } } } option = { # If you're moving to a Tributary's land we ask you to become a Tributary yourself - Accept name = migration_events.0001.aaa trigger = { has_variable = migrating_into_tributary_var } start_tributary_interaction_effect = { TRIBUTARY = root SUZERAIN = scope:overlord } hidden_effect = { scope:overlord = { send_interface_toast = { left_icon = scope:new_tributary title = msg_tributary_toast custom_tooltip = msg_tributary_toast_tt } } } ai_chance = { base = 100 } } option = { # If you're moving to a Tributary's land we ask you to become a Tributary yourself - Refuse name = migration_events.0001.aa trigger = { has_variable = migrating_into_tributary_var } scope:overlord = { custom_tooltip = { text = migration_events.0001.aa.cb_tt if = { limit = { NOT = { # You don't already have a Retaliation CB on this guy is_target_in_variable_list = { name = retaliation_cb_var_list target = root } } } add_to_variable_list = { name = retaliation_cb_var_list target = root years = 5 } } } add_opinion = { target = root modifier = angry_opinion opinion = -50 } hidden_effect = { scope:overlord = { send_interface_toast = { left_icon = scope:new_tributary title = msg_tributary_toast_bad custom_tooltip = msg_tributary_toast_bad_tt } } } } ai_chance = { # AI normally doesn't refuse base = 10 modifier = { # Unless... OR = { has_trait = ambitious has_trait = arrogant } NOT = { has_trait = craven } add = 25 } modifier = { current_military_strength >= scope:overlord.current_military_strength add = 125 } } } option = { # Special option if your Astrologer wanted you to come here name = migration_events.0001.a add_internal_flag = special trigger = { var:astrologer_desired_area ?= root.primary_title NOT = { has_variable = migrating_into_tributary_var } } custom_tooltip = migration_events.0001.a.tt add_character_modifier = { modifier = astrologer_desired_area_modifier years = 5 } ai_chance = { base = 100 } } option = { name = migration_events.0001.b trigger = { NOR = { var:astrologer_desired_area ?= root.primary_title has_variable = migrating_into_tributary_var } } ai_chance = { base = 100 } } after = { remove_variable = migrating_into_tributary_var scope:recipient = { silent_disappearance_ai_if_created_effect = yes } } } # Arrival at Migration destination through war, triggered if you're moving into a Tributary's lands migration_events.0002 = { type = character_event title = migration_events.0002.t desc = { desc = migration_events.0002.desc.intro first_valid = { triggered_desc = { trigger = { higher_or_equal_dominance_trigger = { FIRST_TARGET = root SECOND_TARGET = scope:overlord } } desc = migration_events.0002.desc.high_dominance } desc = migration_events.0002.desc } } theme = migration override_background = { trigger = { OR = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_white_zud_season situation_sub_region_has_county = root.location.county } } any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_cold_zud_season situation_sub_region_has_county = root.location.county } } any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_havsarsan_zud_season situation_sub_region_has_county = root.location.county } } } } reference = bp3_steppe_winter } widgets = { widget = { is_shown = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_cold_zud_season situation_sub_region_has_county = root.location.county } } } gui = "event_window_widget_vfx_snow" container = "foreground_shader_vfx_container" } widget = { is_shown = { any_character_situation = { any_situation_sub_region = { sub_region_current_phase = situation_steppe_havsarsan_zud_season situation_sub_region_has_county = root.location.county } } } gui = "event_window_widget_vfx_snowstorm" container = "foreground_shader_vfx_container" } } left_portrait = { character = scope:actor animation = horse_archer_aggressive camera = camera_event_horse_left } lower_right_portrait = { trigger = { exists = scope:overlord } character = scope:overlord } immediate = { var:migrating_into_tributary_war_var = { save_scope_as = overlord } save_scope_as = new_tributary # For the toasts to overlord } option = { # Accept name = migration_events.0002.a trigger = { higher_dominance_trigger = { FIRST_TARGET = scope:overlord SECOND_TARGET = root } } start_tributary_interaction_effect = { TRIBUTARY = root SUZERAIN = scope:overlord } hidden_effect = { scope:overlord = { send_interface_toast = { left_icon = scope:new_tributary title = msg_tributary_toast custom_tooltip = msg_tributary_toast_tt } } } ai_chance = { base = 100 } } option = { # Refuse name = { trigger = { higher_dominance_trigger = { FIRST_TARGET = scope:overlord SECOND_TARGET = root } } text = migration_events.0002.b } name = { trigger = { higher_or_equal_dominance_trigger = { FIRST_TARGET = root SECOND_TARGET = scope:overlord } } text = migration_events.0002.b.alt } if = { limit = { higher_or_equal_dominance_trigger = { FIRST_TARGET = root SECOND_TARGET = scope:overlord } } add_legitimacy = medium_legitimacy_gain } scope:overlord = { custom_tooltip = { text = migration_events.0001.aa.cb_tt if = { limit = { NOT = { # You don't already have a Retaliation CB on this guy is_target_in_variable_list = { name = retaliation_cb_var_list target = root } } } add_to_variable_list = { name = retaliation_cb_var_list target = root years = 5 } } } add_opinion = { target = root modifier = angry_opinion opinion = -50 } hidden_effect = { scope:overlord = { send_interface_toast = { left_icon = scope:new_tributary title = msg_tributary_toast_bad custom_tooltip = msg_tributary_toast_bad_tt } } } } ai_chance = { # AI normally doesn't refuse base = 10 modifier = { # Unless... OR = { has_trait = ambitious has_trait = arrogant } NOT = { has_trait = craven } add = 120 } } } after = { remove_variable = migrating_into_tributary_war_var } } scripted_trigger migration_events_1000_local_ruler_trigger = { NOR = { this = root is_allied_to = root has_truce = root has_any_good_relationship_with_character_trigger = { CHARACTER = root } is_liege_or_above_of = root is_vassal_or_below_of = root } OR = { NOT = { capital_county ?= root.location.county } highest_held_title_tier <= tier_duchy } gold >= 0 NOT = { has_character_flag = migration_events_1000_victim_flag } #If they're present and able to defend, should be weak trigger_if = { limit = { government_has_flag = government_is_nomadic capital_county ?= root.location.county } domicile.herd <= root.domicile.herd } } ###################### #Migration flavor events #1000-1999 # by Jason Cantalini ###################### #There's some good hunting and plundering to be had here... migration_events.1000 = { type = character_event title = migration_events.1000.t desc = { desc = migration_events.1000.desc first_valid = { triggered_desc = { trigger = { scope:local_ruler.capital_county ?= root.location.county } desc = migration_events.1000.desc.ruler_present } desc = migration_events.1000.desc.ruler_away } desc = migration_events.1000.desc_outro } theme = migration override_background = { reference = terrain } left_portrait = { character = root animation = standing_horse camera = camera_event_standing_with_horse_left } right_portrait = { character = scope:local_rep animation = war_defender } lower_right_portrait = scope:local_overlord trigger = { age >= 10 is_migrating = yes has_mpo_dlc_trigger = yes location.county = { uses_county_fertility = yes } OR = { #Holder has lots of gold AND = { location.county = { uses_county_fertility = yes county_fertility >= 40 } location.county.holder = { gold >= 200 } } #Location is very fertile location.county = { county_fertility >= 70 } } location.county.holder = { migration_events_1000_local_ruler_trigger = yes } } weight_multiplier = { base = 1 modifier = { add = 1 location.county.holder = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } } modifier = { add = 1 location.county.holder = { gold > 500 } } modifier = { add = 1 location.county = { county_fertility >= 95 } } } cooldown = { years = 5 } immediate = { location.county = { save_scope_as = location_county } location.county.holder = { save_scope_as = local_ruler add_character_flag = { flag = migration_events_1000_victim_flag years = 5 } } #Put in ruler if they are low tier if = { limit = { scope:location_county = scope:local_ruler.capital_county scope:local_ruler = { location.county = scope:location_county NOR = { is_incapable = yes has_trait = infirm age <= 8 } } } scope:local_ruler = { save_scope_as = local_rep } } if = { limit = { NOT = { exists = scope:local_rep } } scope:local_ruler = { random_councillor = { limit = { NOT = { is_spouse_of = root } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:local_ruler } } save_scope_as = local_rep } save_scope_as = local_overlord } } if = { limit = { NOT = { exists = scope:local_rep } } scope:local_ruler = { random_knight = { save_scope_as = local_rep } save_scope_as = local_overlord } } if = { limit = { NOT = { exists = scope:local_rep } } scope:local_ruler = { random_courtier = { limit = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:local_ruler } is_adult = yes basic_is_available_ai = yes } save_scope_as = local_rep } save_scope_as = local_overlord } } } #We can hunt for pelts too! option = { trigger = { has_trait = lifestyle_hunter NOT = { location = { terrain = desert } } } name = migration_events.1000.a flavor = migration_events.1000.a.flavor add_trait_xp = { trait = lifestyle_hunter value = medium_trait_xp track = hunter } add_trait_xp = { trait = lifestyle_hunter value = medium_trait_xp track = falconer } mpo_dominance_scaled_minor_gold_gain = yes reverse_add_opinion = { modifier = angry_opinion target = scope:local_ruler opinion = -20 } stress_impact = { lazy = minor_stress_impact_gain } ai_chance = { base = 150 ai_value_modifier = { ai_energy = 1 } modifier = { factor = 0.5 scope:local_ruler = { government_has_flag = government_is_nomadic domicile.herd > root.domicile.herd } } modifier = { factor = 0 has_trait = lazy } } } #I'm not leaving these people to their riches option = { trigger = { OR = { scope:local_ruler = { is_ai = yes } is_ai = no } } name = migration_events.1000.b flavor = migration_events.1000.b.flavor scope:local_ruler = { if = { limit = { treasury_or_gold >= minor_treasury_or_gold_value } pay_treasury_or_gold = { target = root value = minor_treasury_or_gold_value } } } if = { limit = { scope:local_ruler = { government_has_flag = government_is_herder } } domicile = { change_herd = miniscule_herd_gain } reverse_add_opinion = { target = scope:local_ruler modifier = angry_opinion opinion = -40 } } else = { scope:local_ruler = { pay_herd = { target = root value = domicile.minor_herd_value } progress_towards_rival_effect = { REASON = rival_raided_me CHARACTER = root OPINION = -40 } } } scope:location_county = { change_county_control = minor_county_control_loss } stress_impact = { greedy = miniscule_stress_impact_loss fickle = miniscule_stress_impact_loss just = minor_stress_impact_gain compassionate = minor_stress_impact_gain generous = minor_stress_impact_gain craven = minor_stress_impact_gain } ai_chance = { base = 75 ai_value_modifier = { ai_compassion = -0.5 ai_greed = 0.5 ai_honor = -0.5 } modifier = { factor = 1.5 scope:local_ruler = { government_has_flag = government_is_herder } } modifier = { factor = 0.25 scope:local_ruler = { government_has_flag = government_is_nomadic domicile.herd > root.domicile.herd } } modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = generous has_trait = craven } } } } #Let the animals graze a while; lets grab some horses option = { name = migration_events.1000.c domicile = { change_herd = medium_herd_gain } reverse_add_opinion = { modifier = angry_opinion target = scope:local_ruler opinion = -20 } current_travel_plan = { delay_travel_plan = { days = 30 } } stress_impact = { content = miniscule_stress_impact_loss impatient = medium_stress_impact_gain humble = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_energy = -0.5 ai_greed = 0.5 } modifier = { factor = 0.5 scope:local_ruler = { government_has_flag = government_is_nomadic domicile.herd > root.domicile.herd } } modifier = { factor = 0 OR = { has_trait = impatient has_trait = humble } } } } #Better to just keep moving option = { name = migration_events.1000.d scope:local_ruler = { add_opinion = { modifier = friendliness_opinion target = root opinion = 20 } } stress_impact = { greedy = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = 0.5 ai_compassion = 0.5 } modifier = { factor = 1.5 scope:local_ruler = { government_has_flag = government_is_nomadic domicile.herd > root.domicile.herd } } modifier = { factor = 0 has_trait = greedy } } } } scripted_trigger migration_events_1010_deserves_rest_trigger = { OR = { has_trait = wounded_2 has_trait = wounded_3 health <= poor_health has_trait = maimed has_trait = infirm } } #Wife wants you to get into the great yurt migration_events.1010 = { type = character_event title = migration_events.1010.t desc = migration_events.1010.desc theme = migration override_background = { reference = wilderness } left_portrait = { character = root animation = standing_horse camera = camera_event_standing_with_horse_left } right_portrait = { character = scope:spouse animation = flirtation_left } cooldown = { years = 5 } trigger = { is_married = yes can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } is_migrating = yes has_mpo_dlc_trigger = yes NOT = { has_realm_law = nomadic_authority_1 } is_available_travelling_adult = yes NOR = { has_trait = infirm has_character_modifier = obese_modifier } primary_spouse ?= { is_available_allow_travelling = yes NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } opinion = { target = root value > 0 } NOT = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } } } weight_multiplier = { base = 1 modifier = { add = 1 OR = { migration_events_1010_deserves_rest_trigger = yes has_trait = wounded_1 } } modifier = { add = 1 primary_spouse ?= { has_any_good_relationship_with_character_trigger = { CHARACTER = root } } } } immediate = { location.county = { save_scope_as = location_county } primary_spouse = { save_scope_as = spouse } } #Yeah... I need that anyway option = { trigger = { OR = { migration_events_1010_deserves_rest_trigger = yes has_trait = wounded_1 } } name = migration_events.1010.a random_list = { 10 = { trigger = { has_trait = wounded_1 } remove_trait = wounded_1 } 10 = { trigger = { has_trait = wounded_2 } remove_trait = wounded_2 } 10 = { trigger = { has_trait = wounded_3 } remove_trait = wounded_3 } 10 = { trigger = { has_trait = ill } remove_trait = ill } 10 = { trigger = { has_trait = pneumonic } remove_trait = pneumonic } 10 = { add_character_modifier = { modifier = nomadic_comforts_modifier years = 5 } } } stress_impact = { base = minor_stress_impact_loss craven = miniscule_stress_impact_loss paranoid = miniscule_stress_impact_loss diligent = miniscule_stress_impact_gain } ai_chance = { base = 200 ai_value_modifier = { ai_energy = -0.5 } modifier = { factor = 0.5 has_trait = diligent } } } #Yeah of course, I love you wife option = { trigger = { OR = { has_any_good_relationship_with_character_trigger = { CHARACTER = scope:spouse } scope:spouse = { opinion = { target = root value >= 80 } } has_trait = gregarious has_trait = compassionate has_trait = lustful has_trait = generous } is_attracted_to_gender_of = scope:spouse scope:spouse = { is_attracted_to_gender_of = root NOR = { has_trait = celibate has_trait = chaste } } NOR = { has_trait = celibate } } add_internal_flag = special name = migration_events.1010.b if = { limit = { scope:spouse = { is_obedient_to = root } } reverse_add_opinion = { target = scope:spouse modifier = love_opinion opinion = 40 } } else = { scope:spouse = { add_opinion = { modifier = obedience_opinion target = root } } } had_sex_with_effect = { CHARACTER = scope:spouse PREGNANCY_CHANCE = pregnancy_chance } if = { limit = { has_relation_lover = scope:spouse NOT = { has_relation_soulmate = scope:spouse } } set_relation_soulmate = { target = scope:spouse reason = lover_made_love_on_yurt_wagon } } else = { progress_towards_lover_effect = { REASON = lover_made_love_on_yurt_wagon CHARACTER = scope:spouse OPINION = 0 } } stress_impact = { lustful = miniscule_stress_impact_gain chaste = medium_stress_impact_gain humble = miniscule_stress_impact_gain just = miniscule_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = 0.5 ai_honor = -0.5 } modifier = { factor = 0 OR = { has_trait = chaste has_trait = humble has_trait = just } } } } #I need to be seen riding with my men option = { name = migration_events.1010.c if = { limit = { migration_events_1010_deserves_rest_trigger = yes health < fine_health } add_legitimacy = minor_legitimacy_gain every_knight = { custom = custom.every_knight add_opinion = { target = root modifier = respect_opinion opinion = 20 } } stress_impact = { base = medium_stress_impact_gain lazy = medium_stress_impact_gain arbitrary = minor_stress_impact_gain fickle = minor_stress_impact_gain arrogant = minor_stress_impact_gain } } else = { add_legitimacy = miniscule_legitimacy_gain every_knight = { custom = custom.every_knight add_opinion = { target = root modifier = respect_opinion opinion = 10 } } stress_impact = { base = miniscule_stress_impact_gain lazy = medium_stress_impact_gain arbitrary = minor_stress_impact_gain fickle = minor_stress_impact_gain arrogant = minor_stress_impact_gain } } ai_chance = { base = 100 ai_value_modifier = { ai_honor = 1 ai_energy = 1 } modifier = { factor = 0 OR = { has_trait = lazy has_trait = arbitrary has_trait = fickle has_trait = arrogant } } } } #It does sound comfy... option = { name = migration_events.1010.d flavor = migration_events.1010.d.flavor if = { limit = { any_consort = { NOT = { this = scope:spouse } } } every_consort = { custom = custom.every_consort scope:spouse = { add_opinion = { modifier = pleased_opinion target = root opinion = 10 } } } } else = { scope:spouse = { add_opinion = { modifier = pleased_opinion target = root opinion = 20 } } } if = { limit = { migration_events_1010_deserves_rest_trigger = no health < fine_health } add_prestige = miniscule_prestige_loss } stress_impact = { base = minor_stress_impact_loss lazy = miniscule_stress_impact_loss content = miniscule_stress_impact_loss diligent = minor_stress_impact_gain humble = miniscule_stress_impact_gain just = miniscule_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_honor = -1 ai_energy = -1 } modifier = { factor = 0 OR = { has_trait = humble has_trait = just } } } } } scripted_trigger migration_events_1020_valid_aspirant_trigger = { NOR = { is_primary_heir_of = root is_player_heir_of = root is_heir_of = root has_trait = loyal is_obedient_to = root has_dread_level_towards = { target = root level >= 2 } } is_adult = yes is_courtier_of = root is_imprisoned = no is_healthy = yes OR = { AND = { is_male = yes faith_dominant_gender_male_or_equal = yes } AND = { is_female = yes faith_dominant_gender_female_or_equal = yes } } ai_boldness >= 0 ai_energy >= 0 ai_compassion < medium_positive_ai_value health >= fine_health } scripted_trigger migration_events_1020_very_eager_trigger = { OR = { AND = { ai_boldness > medium_positive_ai_value ai_energy > medium_positive_ai_value } opinion = { target = root value < -60 } NOT = { is_obedient_to = root } } NOT = { has_dread_level_towards = { target = root level >= 1 } } migration_events_1020_valid_aspirant_trigger = yes } scripted_effect migration_events_1020_pay_minor_herd_effect = { if = { limit = { OR = { has_realm_law = nomadic_authority_5 has_realm_law = nomadic_authority_4 } } } else_if = { limit = { has_realm_law = nomadic_authority_3 } } else_if = { limit = { has_realm_law = nomadic_authority_2 } } else = { } } #Family member wants to take land from local herder migration_events.1020 = { type = character_event title = migration_events.1020.t desc = migration_events.1020.desc theme = migration override_background = { reference = terrain } left_portrait = { character = root animation = jockey_walk camera = camera_event_horse_left_forward } right_portrait = { character = scope:aspirant animation = horse_surveying camera = camera_event_horse_right_forward } lower_right_portrait = scope:herder lower_left_portrait = scope:herder_liege trigger = { age >= 6 is_migrating = yes has_mpo_dlc_trigger = yes highest_held_title_tier >= tier_county is_available_allow_travelling = yes #location is takeable herder county location.county.holder = { government_has_flag = government_is_herder OR = { is_independent_ruler = yes liege = { OR = { is_ai = yes this = root } NOR = { is_at_war_with = root is_causing_raid_hostility_towards = root root = { is_causing_raid_hostility_towards = prev } } } } } location.county = { NOT = { any_county_province = { OR = { is_raided = yes is_occupied = yes } } } } #valid breakoff ruler OR = { any_child = { migration_events_1020_valid_aspirant_trigger = yes } any_sibling = { migration_events_1020_valid_aspirant_trigger = yes } dynasty ?= { any_dynasty_member = { migration_events_1020_valid_aspirant_trigger = yes } } } #A bit weird if you are great khan and your relatives are begging for some sheep NOT = { has_realm_law = nomadic_authority_5 } } weight_multiplier = { base = 1 modifier = { add = 1 OR = { any_child = { migration_events_1020_very_eager_trigger = yes } any_sibling = { migration_events_1020_very_eager_trigger = yes } dynasty ?= { any_dynasty_member = { migration_events_1020_very_eager_trigger = yes } } } } modifier = { add = -1 has_realm_law = nomadic_authority_4 } } cooldown = { years = 5 } immediate = { location.county = { save_scope_as = location_county holder = { save_scope_as = herder if = { limit = { is_independent_ruler = no } liege = { save_scope_as = herder_liege } } } } if = { limit = { exists = dynasty } dynasty = { ordered_dynasty_member = { order_by = age limit = { migration_events_1020_valid_aspirant_trigger = yes } save_scope_as = aspirant } } } if = { limit = { NOT = { exists = scope:aspirant } } ordered_sibling = { order_by = age limit = { migration_events_1020_valid_aspirant_trigger = yes } save_scope_as = aspirant } } if = { limit = { NOT = { exists = scope:aspirant } } ordered_child = { order_by = age limit = { migration_events_1020_valid_aspirant_trigger = yes } save_scope_as = aspirant } } random_knight = { limit = { is_landed = no is_councillor = no has_any_court_position = no NOR = { is_spouse_of = root is_heir_of = root this = scope:aspirant } is_available_allow_travelling = yes is_acclaimed = no is_accolade_successor = no } save_scope_as = knight_1 } random_knight = { limit = { is_landed = no is_councillor = no has_any_court_position = no NOR = { is_spouse_of = root is_heir_of = root this = scope:aspirant this = scope:knight_1 } is_available_allow_travelling = yes is_acclaimed = no is_accolade_successor = no } save_scope_as = knight_2 } save_scope_as = root_scope } #Yes, as my tributary of course! option = { trigger = { NOT = { exists = scope:herder_liege } OR = { has_realm_law = nomadic_authority_2 has_realm_law = nomadic_authority_3 has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 } } add_internal_flag = special name = migration_events.1020.a add_prestige = minor_prestige_gain create_title_and_vassal_change = { type = usurped save_scope_as = change add_claim_on_loss = no } scope:location_county = { change_title_holder = { holder = scope:aspirant change = scope:change } } scope:aspirant = { add_opinion = { target = root modifier = helpful_opinion opinion = 20 } } resolve_title_and_vassal_change = scope:change scope:aspirant = { change_government = nomad_government add_courtier = scope:herder scope:herder = { pay_short_term_gold = { target = scope:aspirant gold = current_gold_value } } start_tributary_interaction_effect = { TRIBUTARY = scope:aspirant SUZERAIN = root } } pay_herd = { target = scope:aspirant value = domicile.minor_herd_value } stress_impact = { generous = medium_stress_impact_gain humble = minor_stress_impact_gain compassionate = minor_stress_impact_gain paranoid = miniscule_stress_impact_gain } ai_chance = { base = 150 ai_value_modifier = { ai_greed = 1 } modifier = { factor = 0 OR = { has_trait = generous has_trait = humble has_trait = compassionate } } } } #I will establish you here properly option = { trigger = { culture = scope:aspirant.culture domicile = { herd >= major_herd_value } } name = migration_events.1020.b flavor = migration_events.1020.b.flavor dynasty ?= { add_dynasty_prestige = miniscule_dynasty_prestige_gain } create_title_and_vassal_change = { type = usurped save_scope_as = change add_claim_on_loss = no } scope:location_county = { change_title_holder = { holder = scope:aspirant change = scope:change } } scope:aspirant = { add_opinion = { target = root modifier = helpful_opinion opinion = 60 } progress_towards_friend_effect = { REASON = friend_granted_title CHARACTER = root OPINION = 0 } if = { limit = { exists = scope:herder_liege } change_liege = { liege = scope:herder_liege change = scope:change } } } resolve_title_and_vassal_change = scope:change scope:aspirant = { change_government = nomad_government } scope:aspirant = { add_prestige = medium_prestige_gain } scope:location_county = { if = { limit = { NOT = { culture = scope:aspirant.culture } } set_county_culture = scope:aspirant.culture } if = { limit = { NOT = { faith = scope:aspirant.faith } } set_county_faith = scope:aspirant.faith } } scope:aspirant = { add_courtier = scope:herder scope:herder = { pay_short_term_gold = { target = scope:aspirant gold = current_gold_value } } if = { limit = { exists = scope:knight_1 } add_courtier = scope:knight_1 scope:knight_1 = { every_spouse = { limit = { is_imprisoned = no is_courtier_of = root } scope:aspirant = { add_courtier = prev } } hidden_effect = { every_child = { limit = { is_imprisoned = no is_courtier_of = root is_adult = no } scope:aspirant = { add_courtier = prev } } } } } if = { limit = { exists = scope:knight_2 } add_courtier = scope:knight_2 scope:knight_2 = { every_spouse = { limit = { is_imprisoned = no is_courtier_of = root } scope:aspirant = { add_courtier = prev } } hidden_effect = { every_child = { limit = { is_imprisoned = no is_courtier_of = root is_adult = no } scope:aspirant = { add_courtier = prev } } } } } } pay_herd = { target = scope:aspirant value = domicile.major_herd_value } add_prestige = medium_prestige_loss if = { limit = { scope:herder_liege ?= { NOT = { this = root } } } scope:herder_liege = { reverse_add_opinion = { target = root modifier = disrespect_opinion opinion = -30 } } } stress_impact = { greedy = medium_stress_impact_gain paranoid = miniscule_stress_impact_gain } ai_chance = { base = 50 ai_value_modifier = { ai_greed = -0.5 ai_compassion = 0.5 } modifier = { factor = 0 has_trait = greedy } } } #Good luck kid option = { name = migration_events.1020.c create_title_and_vassal_change = { type = usurped save_scope_as = change add_claim_on_loss = no } scope:location_county = { change_title_holder = { holder = scope:aspirant change = scope:change } } scope:aspirant = { add_opinion = { target = root modifier = helpful_opinion opinion = 30 } if = { limit = { exists = scope:herder_liege } change_liege = { liege = scope:herder_liege change = scope:change } } } resolve_title_and_vassal_change = scope:change scope:aspirant = { change_government = nomad_government add_courtier = scope:herder scope:herder = { pay_short_term_gold = { target = scope:aspirant gold = current_gold_value } } } pay_herd = { target = scope:aspirant value = domicile.minor_herd_value } if = { limit = { scope:herder_liege ?= { NOT = { this = root } } } scope:herder_liege = { reverse_add_opinion = { target = root modifier = disrespect_opinion opinion = -30 } } } stress_impact = { paranoid = miniscule_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 0.5 ai_greed = 0.5 } } } #No, remain with your people option = { name = migration_events.1020.d if = { limit = { OR = { has_trait = wrathful has_trait = sadistic has_trait = vengeful has_trait = paranoid has_trait = torturer has_trait = overseer has_trait = greatest_of_khans has_trait = irritable } } add_dread = miniscule_dread_gain } scope:aspirant = { add_opinion = { target = root modifier = refusal_opinion opinion = -15 } } stress_impact = { generous = minor_stress_impact_gain trusting = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 0.5 } modifier = { factor = 0 OR = { has_trait = generous has_trait = trusting } } } } } #Your animals are hungry migration_events.1030 = { type = character_event title = migration_events.1030.t desc = migration_events.1030.desc theme = migration override_background = { reference = mpo_steppe_evening } left_portrait = { character = root animation = horse_exhausted camera = camera_event_horse_left } lower_right_portrait = scope:local_ruler trigger = { age >= 6 is_migrating = yes has_mpo_dlc_trigger = yes highest_held_title_tier >= tier_county is_available_allow_travelling = yes location.county.holder = { is_ai = yes NOR = { has_relation_rival = root has_relation_nemesis = root is_at_war_with = root } } location.county = { uses_county_fertility = yes NOT = { any_county_province = { OR = { is_raided = yes is_occupied = yes } } } county_fertility <= 40 } domicile = { herd >= major_herd_value } } weight_multiplier = { base = 1 modifier = { add = 1 OR = { has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 } } modifier = { add = 1 location.county = { county_fertility <= 10 } } modifier = { add = 1 location.county = { county_fertility <= 20 } } } cooldown = { years = 5 } immediate = { location.county = { save_scope_as = location_county holder = { save_scope_as = local_ruler } } } #The local ruler WILL provide good pasture option = { trigger = { dread >= 50 OR = { scope:local_ruler = { has_dread_level_towards = { target = root level >= 1 } } has_realm_law = nomadic_authority_5 AND = { has_realm_law = nomadic_authority_4 scope:local_ruler = { OR = { has_realm_law = nomadic_authority_2 has_realm_law = nomadic_authority_1 } } } AND = { has_realm_law = nomadic_authority_3 scope:local_ruler = { has_realm_law = nomadic_authority_1 } } } } name = migration_events.1030.a add_dread = minor_dread_gain reverse_add_opinion = { modifier = threatened_opinion target = scope:local_ruler opinion = -20 } current_travel_plan = { delay_travel_plan = { days = 10 } } stress_impact = { arrogant = miniscule_stress_impact_loss craven = minor_stress_impact_gain just = minor_stress_impact_gain humble = minor_stress_impact_gain } ai_chance = { base = 300 ai_value_modifier = { ai_boldness = 0.5 ai_honor = -0.5 } modifier = { factor = 0 OR = { has_trait = craven has_trait = just has_trait = humble } } } } #Sell the animals to the local ruler option = { trigger = { diplomacy > high_skill_rating trigger_if = { limit = { OR = { has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 } } scope:local_ruler.gold >= root.monumental_gold_value } trigger_if = { limit = { has_realm_law = nomadic_authority_3 } scope:local_ruler.gold >= root.massive_gold_value } trigger_if = { limit = { has_realm_law = nomadic_authority_2 } scope:local_ruler.gold >= root.major_gold_value } trigger_if = { limit = { has_realm_law = nomadic_authority_1 } scope:local_ruler.gold >= root.medium_gold_value } } name = migration_events.1030.b flavor = migration_events.1030.b.flavor if = { limit = { OR = { has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 } } scope:local_ruler = { pay_treasury_or_gold = { target = root value = root.monumental_treasury_or_gold_value } } } if = { limit = { has_realm_law = nomadic_authority_3 } scope:local_ruler = { pay_treasury_or_gold = { target = root value = root.massive_treasury_or_gold_value } } } if = { limit = { has_realm_law = nomadic_authority_2 } scope:local_ruler = { pay_treasury_or_gold = { target = root value = root.major_treasury_or_gold_value } } } if = { limit = { has_realm_law = nomadic_authority_1 } scope:local_ruler = { pay_treasury_or_gold = { target = root value = root.medium_treasury_or_gold_value } } } pay_herd = { target = scope:local_ruler value = domicile.medium_herd_value } reverse_add_opinion = { modifier = pleased_opinion target = scope:local_ruler opinion = 20 } stress_impact = { honest = minor_stress_impact_gain just = minor_stress_impact_gain generous = minor_stress_impact_gain } ai_chance = { base = 200 ai_value_modifier = { ai_greed = 0.5 ai_honor = -0.5 } modifier = { factor = 0 OR = { has_trait = honest has_trait = just has_trait = generous } } } } #Slaughter the animals and have a feast option = { name = migration_events.1030.c flavor = migration_events.1030.c.flavor if = { limit = { has_trait = lifestyle_reveler } add_trait_xp = { trait = lifestyle_reveler value = 10 } } add_prestige = medium_prestige_gain every_courtier = { custom = custom.every_courtier add_opinion = { modifier = grateful_opinion target = root opinion = 20 } } domicile = { change_herd = major_herd_loss } stress_impact = { gluttonous = minor_stress_impact_loss generous = miniscule_stress_impact_loss gregarious = miniscule_stress_impact_loss temperate = minor_stress_impact_gain stubborn = miniscule_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = 0.5 ai_greed = -0.5 } modifier = { factor = 0 has_trait = temperate } } } #We need to search for somewhere they can graze option = { name = migration_events.1030.d duel = { skill = stewardship value = decent_skill_rating 50 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -49 } modifier = { has_realm_law = nomadic_authority_1 add = 20 } modifier = { has_realm_law = nomadic_authority_2 add = 10 } desc = migration_events.1030.d.success send_interface_toast = { type = event_toast_effect_good title = migration_events.1030.d.success left_icon = root if = { limit = { NOT = { has_trait = lifestyle_traveler } } add_trait = lifestyle_traveler } else = { add_trait_xp = { trait = lifestyle_traveler track = danger value = small_lifestyle_random_xp_mid } } } } 50 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -49 } modifier = { OR = { has_realm_law = nomadic_authority_5 has_realm_law = nomadic_authority_4 } add = 20 } desc = migration_events.1030.d.failure send_interface_toast = { type = event_toast_effect_bad title = migration_events.1030.d.failure left_icon = root domicile = { change_herd = medium_herd_loss } } } } current_travel_plan = { delay_travel_plan = { days = 20 } } stress_impact = { impatient = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_energy = 0.5 } modifier = { factor = 0 has_trait = impatient } } } } #Local ruler offers you traditional hospitality and a gift migration_events.1040 = { type = character_event title = migration_events.1040.t desc = { desc = migration_events.1040.desc first_valid = { triggered_desc = { trigger = { root.current_location = { OR = { terrain = taiga terrain = forest terrain = jungle terrain = wetlands } } } desc = migration_events.1040.furs } triggered_desc = { trigger = { root.current_location = { OR = { terrain = desert terrain = desert_mountains } } } desc = migration_events.1040.camels } triggered_desc = { trigger = { root.current_location = { OR = { terrain = hills terrain = mountains terrain = drylands } } } desc = migration_events.1040.wool } desc = migration_events.1040.horses } } theme = migration override_background = { reference = mpo_camp_steppe } left_portrait = { character = root animation = standing_horse camera = camera_event_standing_with_horse_left } right_portrait = { character = scope:local_ruler animation = throne_room_bow_1 } trigger = { age >= 10 is_migrating = yes has_mpo_dlc_trigger = yes location.county = { NOT = { any_county_province = { OR = { is_raided = yes is_occupied = yes } } } } location.county.holder = { NOT = { this = root } age >= 12 basic_is_available_ai = yes mpo_lower_nomad_authority_trigger = { CHARACTER = root } OR = { government_has_flag = government_is_nomadic government_has_flag = government_is_herder } NOR = { has_character_flag = migration_events_1040_giver_flag is_at_war_with = root is_causing_raid_hostility_towards = root root = { is_causing_raid_hostility_towards = prev } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } ai_greed <= low_positive_ai_value OR = { opinion = { target = root value >= -20 } has_dread_level_towards = { target = root level >= 1 } } } } weight_multiplier = { base = 2 modifier = { add = -1 location.county.holder = { opinion = { target = root value <= 0 } } } modifier = { add = 1 location.county.holder = { opinion = { target = root value >= 70 } } } modifier = { add = 1 location.county.holder = { is_vassal_or_below_of = root } } modifier = { add = 1 location.county.holder = { is_allied_to = root } } modifier = { add = 1 location.county.holder = { has_dread_level_towards = { target = root level >= 2 } } } } cooldown = { years = 5 } immediate = { location.county = { save_scope_as = location_county } location.county.holder = { save_scope_as = local_ruler add_character_flag = { flag = migration_events_1040_giver_flag years = 1 } } } #That's all...? option = { trigger = { OR = { has_realm_law = nomadic_authority_5 AND = { has_realm_law = nomadic_authority_4 scope:local_ruler = { NOT = { has_realm_law = nomadic_authority_4 } } } AND = { has_realm_law = nomadic_authority_3 scope:local_ruler = { NOT = { has_realm_law = nomadic_authority_3 } } } } OR = { has_trait = avaricious has_trait = conqueror has_trait = greatest_of_khans is_gurkhan = yes scope:local_ruler = { has_dread_level_towards = { target = root level >= 2 } } } } name = migration_events.1040.a add_internal_flag = special add_prestige = minor_prestige_gain scope:local_ruler = { pay_herd = { target = root value = domicile.medium_herd_value } } scope:local_ruler = { add_opinion = { target = root modifier = humiliated_opinion opinion = -50 } progress_towards_rival_effect = { REASON = rival_extorted_me_for_gifts CHARACTER = root OPINION = 0 } } stress_impact = { base = minor_stress_impact_loss greedy = miniscule_stress_impact_loss temperate = miniscule_stress_impact_gain impatient = miniscule_stress_impact_gain humble = miniscule_stress_impact_gain generous = major_stress_impact_gain compassionate = medium_stress_impact_gain content = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 ai_compassion = -1 } modifier = { factor = 0 OR = { has_trait = generous has_trait = compassionate has_trait = content } } } } #We can trade gifts! option = { trigger = { domicile = { herd >= minor_herd_value } } name = migration_events.1040.b #Cultural acceptance gain if = { limit = { NOT = { culture = scope:local_ruler.culture } OR = { root.culture = { culture_head = root } scope:local_ruler.culture = { culture_head = scope:local_ruler } } } culture = { change_cultural_acceptance = { target = scope:local_ruler.culture value = minor_cultural_acceptance_gain desc = cultural_acceptance_meal_of_hospitality } } } else_if = { limit = { NOT = { culture = scope:local_ruler.culture } #These rulers should be at least a little significant NOT = { has_realm_law = nomadic_authority_1 } is_ai = no } culture = { change_cultural_acceptance = { target = scope:local_ruler.culture value = miniscule_cultural_acceptance_gain desc = cultural_acceptance_meal_of_hospitality } } } scope:local_ruler = { add_opinion = { target = root modifier = friendliness_opinion opinion = 20 } } stress_impact = { base = minor_stress_impact_loss gluttonous = miniscule_stress_impact_loss generous = miniscule_stress_impact_loss temperate = miniscule_stress_impact_gain impatient = miniscule_stress_impact_gain paranoid = miniscule_stress_impact_gain greedy = medium_stress_impact_gain callous = minor_stress_impact_gain sadistic = minor_stress_impact_gain } ai_chance = { base = 50 ai_value_modifier = { ai_sociability = 1 ai_greed = -1 } modifier = { factor = 0 OR = { has_trait = greedy has_trait = callous has_trait = sadistic AND = { OR = { has_realm_law = nomadic_authority_5 has_realm_law = nomadic_authority_4 } scope:local_ruler = { has_realm_law = nomadic_authority_1 } } } } } } #We have no time to dawdle option = { name = migration_events.1040.c add_character_modifier = { modifier = mpo_refusing_diplomatic_stops_modifier months = 6 } reverse_add_opinion = { target = scope:local_ruler modifier = spurned_gift_opinion opinion = -25 } if = { limit = { is_ai = no } scope:local_ruler = { add_prestige = minor_prestige_loss } } stress_impact = { impatient = minor_stress_impact_loss gregarious = medium_stress_impact_gain gluttonous = medium_stress_impact_gain humble = minor_stress_impact_gain patient = minor_stress_impact_gain lazy = miniscule_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = -1 ai_energy = 1 } modifier = { factor = 0 OR = { has_trait = gregarious has_trait = gluttonous has_trait = humble has_trait = patient } } } } #Yeah, thanks option = { name = migration_events.1040.d scope:local_ruler = { pay_herd = { target = root value = domicile.miniscule_herd_value } } stress_impact = { base = minor_stress_impact_loss gluttonous = miniscule_stress_impact_loss temperate = miniscule_stress_impact_gain impatient = miniscule_stress_impact_gain paranoid = miniscule_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = 1 ai_greed = 1 } } } } #Your warriors overrun a local settlement and offer you spoils migration_events.1050 = { type = character_event title = migration_events.1050.t desc = migration_events.1050.desc theme = migration override_background = { reference = mpo_campfire_steppe } left_portrait = { character = root animation = personality_dishonorable } right_portrait = { character = scope:warrior animation = random_weapon_celebrate } lower_right_portrait = scope:local_ruler trigger = { age >= 6 is_migrating = yes has_mpo_dlc_trigger = yes location.county = { NOT = { any_county_province = { OR = { is_raided = yes is_occupied = yes } } } } location.county.holder = { NOR = { has_character_flag = migration_events_1050_raided_flag has_any_good_relationship_with_character_trigger = { CHARACTER = root } is_tributary_of = root root = { is_tributary_of = prev } is_vassal_or_below_of = root root = { is_vassal_or_below_of = prev } is_allied_to = root house ?= root.house has_truce = root } } any_courtier = { is_adult = yes can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } basic_is_available_ai = yes } } weight_multiplier = { base = 2 modifier = { add = -1 location.county.holder = { opinion = { target = root value >= 60 } } } modifier = { add = -1 location.county.holder = { culture = root.culture } } modifier = { add = 1 location.county.holder = { OR = { is_at_war_with = root is_causing_raid_hostility_towards = root root = { is_causing_raid_hostility_towards = prev } has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } } } } cooldown = { years = 5 } immediate = { location.county = { save_scope_as = location_county } location.county.holder = { save_scope_as = local_ruler add_character_flag = { flag = migration_events_1050_raided_flag years = 1 } } random_dummy_gender_soldier_effect = { SCOPE_NAME = dummy_gender } hidden_effect = { scope:local_ruler = { random_list = { 45 = { save_scope_value_as = { name = quality value = 5 } save_scope_value_as = { name = wealth value = 5 } } 45 = { save_scope_value_as = { name = quality value = 10 } save_scope_value_as = { name = wealth value = 10 } } 5 = { save_scope_value_as = { name = quality value = 20 } save_scope_value_as = { name = wealth value = 20 } } 5 = { save_scope_value_as = { name = quality value = 30 } save_scope_value_as = { name = wealth value = 30 } } 5 = { trigger = { scope:local_ruler = { highest_held_title_tier >= tier_kingdom } } save_scope_value_as = { name = quality value = 40 } save_scope_value_as = { name = wealth value = 40 } } 5 = { trigger = { scope:local_ruler = { highest_held_title_tier >= tier_empire } } save_scope_value_as = { name = quality value = 50 } save_scope_value_as = { name = wealth value = 50 } } } clear_saved_scope = root save_scope_as = root random_list = { 1 = { create_artifact_bow_effect = { OWNER = scope:local_ruler CREATOR = scope:dummy_gender SET_BOW_TYPE = flag:artifact_bow_type_composite } } 1 = { create_artifact_necklace_effect = { OWNER = scope:local_ruler SMITH = scope:dummy_gender } } 1 = { create_artifact_armor_effect = { OWNER = scope:local_ruler CREATOR = scope:dummy_gender SET_ARMOR_TYPE = flag:no } } 1 = { create_artifact_animal_hide_effect = { OWNER = scope:local_ruler HUNTER = scope:local_ruler LEGENDARY = no ANIMAL = flag:none } } 1 = { create_artifact_weapon_effect = { OWNER = scope:local_ruler CREATOR = scope:dummy_gender SET_WEAPON_TYPE = flag:no } } 1 = { create_artifact_ring_effect = { OWNER = scope:local_ruler SMITH = scope:dummy_gender } } 1 = { create_artifact_bowl_effect = { OWNER = scope:local_ruler SMITH = scope:dummy_gender } } 1 = { create_artifact_brooch_effect = { OWNER = scope:local_ruler SMITH = scope:dummy_gender } } } } } clear_saved_scope = root save_scope_as = root random_knight = { limit = { is_acclaimed = yes is_courtier_of = root } save_scope_as = warrior } if = { limit = { NOT = { exists = scope:warrior } } random_knight = { limit = { is_courtier_of = root } save_scope_as = warrior } } if = { limit = { NOT = { exists = scope:warrior } } random_courtier = { limit = { is_adult = yes can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } basic_is_available_ai = yes } save_scope_as = warrior } } scope:warrior = { add_character_flag = need_military_outfit } scope:local_ruler = { add_opinion = { target = root opinion = -25 modifier = raided_me_opinion } #Steal from AI if root is player if = { limit = { root = { is_ai = no } } if = { limit = { government_has_flag = government_is_nomadic } pay_herd = { target = root value = root.domicile.minor_herd_value } } else = { root.domicile = { change_herd = minor_herd_gain } } pay_short_term_gold = { target = root gold = root.minor_gold_value } root.location.county = { change_county_control = minor_county_control_loss } } #Simply gain resources if not else = { root = { domicile = { change_herd = minor_herd_gain } add_gold = minor_gold_value } } } } #You're a bold captain, warrior, and deserve acknowledgement option = { trigger = { OR = { has_trait = gallant has_trait = strategist has_trait = education_martial_prowess_2 has_trait = education_martial_prowess_3 has_trait = education_martial_prowess_4 has_trait = education_martial_3 has_trait = education_martial_4 has_trait = education_martial_5 } } name = migration_events.1050.a scope:newly_created_artifact = { add_artifact_history = { location = root.location actor = scope:local_ruler recipient = scope:warrior type = stolen } set_owner = scope:warrior } if = { limit = { scope:warrior = { is_acclaimed = yes } } scope:warrior.accolade = { add_glory = minor_glory_gain } scope:warrior = { add_martial_skill = 1 } } else_if = { limit = { scope:warrior = { NOT = { has_trait = reaver } } } scope:warrior = { add_trait = reaver add_martial_skill = 1 } } else = { scope:warrior = { add_martial_skill = 1 add_prowess_skill = 1 } } if = { limit = { scope:warrior = { NOT = { is_obedient_to = root } } } scope:warrior = { add_opinion = { modifier = obedience_opinion target = root } } } else_if = { limit = { scope:warrior = { NOT = { has_trait = disloyal } } } scope:warrior = { add_trait = loyal } } stress_impact = { greedy = miniscule_stress_impact_gain } ai_chance = { base = 150 ai_value_modifier = { ai_honor = 1 } modifier = { factor = 0 OR = { } } } } #BURN AND DESPOIL AS WE GO option = { trigger = { NOT = { has_realm_law = nomadic_authority_1 } OR = { has_trait = sadistic has_trait = greedy has_trait = wrathful has_trait = arbitrary has_trait = avaricious has_trait = torturer has_trait = conqueror has_trait = greatest_of_khans has_trait = overseer has_trait = viking } } name = migration_events.1050.b #Gain gold and herd every time you travel into a new province if = { limit = { OR = { has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 has_realm_law = nomadic_authority_3 culture = { culture_head = root } } } custom_tooltip = migration_raiding_effect_tt } else = { custom_tooltip = migration_raiding_effect_no_culture_tt } scope:newly_created_artifact = { add_artifact_history = { location = root.location actor = scope:local_ruler recipient = root type = stolen } set_owner = root } add_character_flag = { flag = migration_raiding_flag years = 1 } add_dread = minor_dread_gain stress_impact = { compassionate = minor_stress_impact_gain craven = minor_stress_impact_gain just = minor_stress_impact_gain paranoid = minor_stress_impact_gain content = minor_stress_impact_gain } ai_chance = { base = 150 ai_value_modifier = { ai_boldness = 1 ai_compassion = -1 ai_greed = 1 } modifier = { factor = 0.5 has_realm_law = nomadic_authority_3 } modifier = { factor = 0 OR = { has_trait = content has_trait = craven has_trait = compassionate has_trait = just has_trait = paranoid } } } } #This was cruel, and all loot should be returned to the survivors option = { trigger = { OR = { has_trait = just has_trait = compassionate has_trait = generous has_trait = forgiving has_trait = trusting has_trait = humble has_trait = diplomat has_trait = education_diplomacy_3 has_trait = education_diplomacy_4 has_trait = education_diplomacy_5 } } name = migration_events.1050.c hidden_effect = { destroy_artifact = scope:newly_created_artifact } #Increase culture acceptance if = { limit = { OR = { has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 has_realm_law = nomadic_authority_3 culture = { culture_head = root } } NOT = { culture = scope:local_ruler.culture } } culture = { change_cultural_acceptance = { target = scope:local_ruler.culture value = minor_cultural_acceptance_gain desc = cultural_acceptance_recompense_for_raiding } } } else = { add_piety = medium_piety_gain } scope:local_ruler = { add_opinion = { target = root modifier = kindness_opinion opinion = 50 } } location.county = { change_county_control = minor_county_control_gain } remove_short_term_gold = minor_gold_value domicile = { change_herd = minor_herd_loss } stress_impact = { greedy = minor_stress_impact_gain arbitrary = minor_stress_impact_gain arrogant = minor_stress_impact_gain vengeful = miniscule_stress_impact_gain sadistic = minor_stress_impact_gain callous = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_honor = 1 ai_compassion = 1 ai_greed = -1 } modifier = { factor = 0 OR = { has_trait = greedy has_trait = arbitrary has_trait = arrogant has_trait = sadistic has_trait = callous } } } } #Distribute my share among my men option = { name = migration_events.1050.d scope:newly_created_artifact = { add_artifact_history = { location = root.location actor = scope:local_ruler recipient = scope:warrior type = stolen } set_owner = scope:warrior } remove_short_term_gold = minor_gold_value domicile = { change_herd = minor_herd_loss } if = { limit = { any_knight = { NOT = { this = scope:warrior } } } every_knight = { custom = custom.every_knight if = { limit = { root = { has_realm_law = nomadic_authority_1 } } add_opinion = { target = root opinion = 25 modifier = loyalty_opinion } add_prowess_skill = 1 } else_if = { limit = { root = { has_realm_law = nomadic_authority_2 } } add_opinion = { target = root opinion = 20 modifier = loyalty_opinion } add_prowess_skill = 1 } else_if = { limit = { root = { has_realm_law = nomadic_authority_3 } } add_opinion = { target = root opinion = 15 modifier = loyalty_opinion } add_stress = minor_stress_impact_loss } else = { add_opinion = { target = root opinion = 10 modifier = loyalty_opinion } add_stress = minor_stress_impact_loss } } } else = { scope:warrior = { if = { limit = { root = { has_realm_law = nomadic_authority_1 } } add_prowess_skill = 1 } else_if = { limit = { root = { has_realm_law = nomadic_authority_2 } } add_prowess_skill = 1 } else_if = { limit = { root = { has_realm_law = nomadic_authority_3 } } add_stress = minor_stress_impact_loss } else = { add_stress = minor_stress_impact_loss } } } if = { limit = { any_knight = { NOT = { is_obedient_to = root } } } random_knight = { limit = { NOT = { is_obedient_to = root } } add_opinion = { modifier = obedience_opinion target = root } } } stress_impact = { greedy = minor_stress_impact_gain arrogant = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_greed = -1 ai_honor = 1 } modifier = { factor = 0 OR = { has_trait = greedy has_trait = arrogant } } } } #I will take my share option = { name = migration_events.1050.e #Gain artifact scope:newly_created_artifact = { add_artifact_history = { location = root.location actor = scope:local_ruler recipient = root type = stolen } set_owner = root } stress_impact = { generous = minor_stress_impact_gain humble = minor_stress_impact_gain just = miniscule_stress_impact_gain compassionate = miniscule_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_greed = 1 } modifier = { factor = 0 OR = { has_trait = generous has_trait = humble } } } } after = { scope:warrior = { remove_character_flag = need_military_outfit } } } migration_events.1051 = { hidden = yes immediate = { location = { save_scope_as = raided_settlement } send_interface_message = { type = event_raiding_good_with_text title = migration_events.1051_title desc = migration_events.1051_tooltip left_icon = scope:local_ruler if = { limit = { OR = { has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 } } add_gold = medium_gold_value } if = { limit = { OR = { has_realm_law = nomadic_authority_3 has_realm_law = nomadic_authority_2 } } add_gold = minor_gold_value } if = { limit = { has_realm_law = nomadic_authority_1 } add_gold = miniscule_gold_value } domicile = { change_herd = miniscule_herd_gain } #Decrease culture acceptance and opinion wherever you go reverse_add_opinion = { opinion = -20 modifier = raided_me_opinion target = scope:local_ruler } if = { limit = { NOT = { culture = scope:local_ruler.culture } OR = { has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 has_realm_law = nomadic_authority_3 culture = { culture_head = root } } } culture = { change_cultural_acceptance = { target = scope:local_ruler.culture value = miniscule_cultural_acceptance_loss desc = cultural_acceptance_raiding_migrators } } } if = { limit = { scope:local_ruler = { is_ai = yes } } location.county = { change_county_control = miniscule_county_control_loss } } } } } #It's tough going getting through the local terrain. Your young warriors are frustrated and want to ride ahead to the destination migration_events.1060 = { type = character_event title = migration_events.1060.t desc = { first_valid = { triggered_desc = { trigger = { root = { location_has_harsh_winter_trigger = yes OR = { current_month >= 11 current_month <= 4 } } } desc = migration_events.1060.desc_winter } triggered_desc = { trigger = { root.location = { terrain = desert } } desc = migration_events.1060.desc_desert } triggered_desc = { trigger = { root.location = { OR = { terrain = forest terrain = taiga } } } desc = migration_events.1060.desc_forest } triggered_desc = { trigger = { root.location = { terrain = wetlands } } desc = migration_events.1060.desc_wetlands } desc = migration_events.1060.desc_hilly } desc = migration_events.1060.desc } theme = migration override_background = { reference = wilderness } left_portrait = { character = root animation = horse_exhausted camera = camera_event_horse_very_left } right_portrait = { character = scope:warrior animation = horse_surveying camera = camera_event_horse_right_facing_left } trigger = { age >= 10 is_migrating = yes has_mpo_dlc_trigger = yes location = { OR = { terrain = desert_mountains terrain = mountains terrain = hills terrain = desert terrain = forest terrain = wetlands terrain = taiga AND = { has_province_modifier = winter_harsh_modifier OR = { current_month >= 11 current_month <= 4 } } } } any_courtier = { is_adult = yes age < 50 can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } basic_is_available_ai = yes ai_energy >= 0 } current_travel_plan = { final_destination_province.county = { NOT = { has_county_modifier = mpo_migration_prepared_home_modifier } } } } weight_multiplier = { base = 1 modifier = { add = 1 location = { OR = { terrain = desert_mountains terrain = mountains terrain = desert terrain = wetlands } } } } cooldown = { years = 5 } immediate = { location.county = { save_scope_as = location_county } location = { save_scope_as = root_location } location.county.holder = { save_scope_as = local_ruler add_character_flag = { flag = migration_events_1040_giver_flag years = 1 } } if = { limit = { primary_heir = { is_courtier_of = root is_adult = yes age < 50 basic_is_available_ai = yes ai_energy >= low_negative_ai_value } } primary_heir = { save_scope_as = warrior } } if = { limit = { NOT = { exists = scope:warrior } exists = house } random_close_family_member = { limit = { is_courtier_of = root is_adult = yes age < 50 can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } basic_is_available_ai = yes ai_energy >= low_negative_ai_value } save_scope_as = warrior } } if = { limit = { NOT = { exists = scope:warrior } exists = house } random_councillor = { limit = { is_courtier_of = root is_adult = yes age < 50 can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } basic_is_available_ai = yes ai_energy >= 0 } save_scope_as = warrior } } if = { limit = { NOT = { exists = scope:warrior } exists = house } house = { random_house_member = { limit = { is_knight_of = root is_courtier_of = root is_adult = yes age < 50 can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } basic_is_available_ai = yes ai_energy >= 0 } save_scope_as = warrior } } } if = { limit = { NOT = { exists = scope:warrior } } random_knight = { limit = { age < 50 basic_is_available_ai = yes ai_energy >= 0 } save_scope_as = warrior } } if = { limit = { NOT = { exists = scope:warrior } } random_courtier = { limit = { is_adult = yes age < 50 can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } basic_is_available_ai = yes ai_energy >= 0 } save_scope_as = warrior } } domicile = { change_herd = miniscule_herd_loss } current_travel_plan = { final_destination_province.county = { save_scope_as = destination } } } #Come with me, I'll find us an easier route option = { trigger = { OR = { has_trait = lifestyle_traveler has_trait = organizer has_trait = logistician AND = { location = { OR = { terrain = hills terrain = mountains terrain = wetlands } } has_trait = rough_terrain_expert } AND = { location = { OR = { terrain = desert terrain = desert_mountains } } has_trait = desert_warrior } AND = { location = { OR = { terrain = forest terrain = taiga } } has_trait = forest_fighter } AND = { location_has_harsh_winter_trigger = yes has_trait = winter_soldier OR = { current_month >= 11 current_month <= 4 } } } } name = migration_events.1060.a duel = { skills = { martial stewardship } value = medium_skill_rating 60 = { compare_modifier = { value = scope:duel_value multiplier = 2.5 min = -49 } modifier = { add = 30 has_trait = lifestyle_traveler has_trait_xp = { trait = lifestyle_traveler track = danger value >= 50 } } modifier = { add = 30 has_trait = lifestyle_traveler has_trait_xp = { trait = lifestyle_traveler track = danger value >= 100 } } modifier = { add = 30 has_trait = lifestyle_traveler has_trait_xp = { trait = lifestyle_traveler track = travel value >= 50 } } modifier = { add = 30 has_trait = lifestyle_traveler has_trait_xp = { trait = lifestyle_traveler track = travel value >= 100 } } modifier = { add = 15 OR = { has_trait = organizer has_trait = logistician AND = { location = { OR = { terrain = hills terrain = mountains terrain = wetlands } } has_trait = rough_terrain_expert } AND = { location = { OR = { terrain = desert terrain = desert_mountains } } has_trait = desert_warrior } AND = { location = { OR = { terrain = forest terrain = taiga } } has_trait = forest_fighter } AND = { location_has_harsh_winter_trigger = yes has_trait = winter_soldier OR = { current_month >= 11 current_month <= 4 } } } } modifier = { add = 30 OR = { AND = { has_trait = organizer has_trait_xp = { trait = organizer value >= 50 } } AND = { has_trait = logistician has_trait_xp = { trait = logistician value >= 50 } } AND = { location = { OR = { terrain = hills terrain = mountains terrain = wetlands } } AND = { has_trait = rough_terrain_expert has_trait_xp = { trait = rough_terrain_expert value >= 50 } } } AND = { location = { OR = { terrain = desert terrain = desert_mountains } } AND = { has_trait = desert_warrior has_trait_xp = { trait = desert_warrior value >= 50 } } } AND = { location = { OR = { terrain = forest terrain = taiga } } AND = { has_trait = forest_fighter has_trait_xp = { trait = forest_fighter value >= 50 } } } AND = { location_has_harsh_winter_trigger = yes AND = { has_trait = winter_soldier has_trait_xp = { trait = winter_soldier value >= 50 } } OR = { current_month >= 11 current_month <= 4 } } } } modifier = { add = 30 OR = { AND = { has_trait = organizer has_trait_xp = { trait = organizer value >= 100 } } AND = { has_trait = logistician has_trait_xp = { trait = logistician value >= 100 } } AND = { location = { OR = { terrain = hills terrain = mountains terrain = wetlands } } AND = { has_trait = rough_terrain_expert has_trait_xp = { trait = rough_terrain_expert value >= 100 } } } AND = { location = { OR = { terrain = desert terrain = desert_mountains } } AND = { has_trait = desert_warrior has_trait_xp = { trait = desert_warrior value >= 100 } } } AND = { location = { OR = { terrain = forest terrain = taiga } } AND = { has_trait = forest_fighter has_trait_xp = { trait = forest_fighter value >= 100 } } } AND = { location_has_harsh_winter_trigger = yes AND = { has_trait = winter_soldier has_trait_xp = { trait = winter_soldier value >= 100 } } OR = { current_month >= 11 current_month <= 4 } } } } desc = mpo_migration_events.1060.a.success send_interface_toast = { type = event_toast_effect_good title = mpo_migration_events.1060.a.success left_icon = root if = { limit = { AND = { location = { OR = { terrain = hills terrain = mountains terrain = wetlands } } has_trait = rough_terrain_expert } } add_trait_xp = { trait = rough_terrain_expert value = 33 } } else_if = { limit = { AND = { location = { OR = { terrain = desert terrain = desert_mountains } } has_trait = desert_warrior } } add_trait_xp = { trait = desert_warrior value = 33 } } else_if = { limit = { AND = { location = { OR = { terrain = forest terrain = taiga } } has_trait = forest_fighter } } add_trait_xp = { trait = forest_fighter value = 33 } } else_if = { limit = { AND = { location_has_harsh_winter_trigger = yes has_trait = winter_soldier OR = { current_month >= 11 current_month <= 4 } } } add_trait_xp = { trait = winter_soldier value = 33 } } else_if = { limit = { has_trait = organizer } add_trait_xp = { trait = organizer value = 33 } } else_if = { limit = { has_trait = logistician } add_trait_xp = { trait = logistician value = 33 } } else_if = { limit = { has_trait = lifestyle_traveler } add_trait_xp = { trait = lifestyle_traveler track = danger value = 15 } } add_character_modifier = { modifier = mpo_found_paths_for_herds_modifier months = 6 } reverse_add_opinion = { modifier = impressed_opinion target = scope:warrior opinion = 15 } } } 40 = { compare_modifier = { value = scope:duel_value multiplier = -2.5 min = -49 } modifier = { add = 20 health < fine_health } modifier = { add = 20 health < poor_health } modifier = { add = 20 NOR = { knows_language_of_culture = root.location.county.culture is_allied_to = root.location.county.holder has_any_good_relationship_with_character_trigger = { CHARACTER = root.location.county.holder } is_liege_or_above_of = root.location.county.holder is_vassal_of = root.location.county.holder } } desc = mpo_migration_events.1060.a.failure send_interface_toast = { type = event_toast_effect_bad title = mpo_migration_events.1060.a.failure left_icon = root add_stress = miniscule_stress_impact_gain domicile = { change_herd = minor_herd_loss } current_travel_plan = { delay_travel_plan = { days = 15 } } } } } stress_impact = { trusting = minor_stress_impact_gain content = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 ai_energy = 1 } modifier = { add = 50 stewardship >= high_skill_rating } modifier = { add = 50 martial >= high_skill_rating } modifier = { add = 50 stewardship >= extremely_high_skill_rating } modifier = { add = 50 martial >= extremely_high_skill_rating } modifier = { add = -50 stewardship < medium_skill_rating } modifier = { add = -50 martial < medium_skill_rating } modifier = { add = -50 stewardship <= low_skill_rating } modifier = { add = -50 martial <= low_skill_rating } modifier = { add = -50 health < poor_health } modifier = { add = 50 has_trait = lifestyle_traveler has_trait_xp = { trait = lifestyle_traveler track = danger value >= 50 } } modifier = { add = 50 has_trait = lifestyle_traveler has_trait_xp = { trait = lifestyle_traveler track = travel value >= 50 } } modifier = { factor = 0 OR = { has_trait = trusting has_trait = content } } } } #You can ride ahead, but scout out our destination and prepare it well option = { name = migration_events.1060.b if = { limit = { scope:warrior = { NOT = { is_obedient_to = root } } } scope:warrior = { add_stress = medium_stress_loss } } else = { scope:warrior = { add_opinion = { modifier = obedience_opinion target = root } } } scope:warrior = { if = { limit = { OR = { has_trait = education_martial_1 has_trait = education_martial_2 has_trait = education_martial_3 has_trait = education_martial_4 has_trait = education_martial_5 } } add_martial_lifestyle_xp = medium_lifestyle_xp } else_if = { limit = { OR = { has_trait = education_stewardship_1 has_trait = education_stewardship_2 has_trait = education_stewardship_3 has_trait = education_stewardship_4 has_trait = education_stewardship_5 } } add_stewardship_lifestyle_xp = medium_lifestyle_xp } else = { add_prestige = medium_prestige_gain } } scope:destination = { add_county_modifier = { modifier = mpo_migration_prepared_home_modifier years = 5 } } add_character_modifier = { modifier = mpo_migrating_without_labor_modifier months = 6 } stress_impact = { craven = minor_stress_impact_gain stubborn = minor_stress_impact_gain impatient = minor_stress_impact_gain paranoid = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_boldness = 1 } modifier = { factor = 0 OR = { has_trait = craven has_trait = stubborn has_trait = impatient has_trait = paranoid } } } } #You remain with us. There's hard labor to do option = { name = migration_events.1060.c scope:warrior = { if = { limit = { NOT = { has_trait = lifestyle_traveler } } add_trait = lifestyle_traveler } else = { add_trait_xp = { trait = lifestyle_traveler track = danger value = 20 } } add_stress = miniscule_stress_gain } reverse_add_opinion = { modifier = refusal_opinion target = scope:warrior opinion = -20 } stress_impact = { fickle = minor_stress_impact_gain arbitrary = minor_stress_impact_gain trusting = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_honor = 1 ai_rationality = 1 } modifier = { factor = 0 OR = { has_trait = fickle has_trait = arbitrary has_trait = trusting } } } } }