N3OW/events/dlc/mpo/mpo_migration_events.txt
2026-01-06 14:25:21 +01:00

4573 lines
88 KiB
Text

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
}
}
}
}
}