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

9095 lines
190 KiB
Text

###################################################
## MPO Decision Events
##
## 0001 Offer Confederation
## 0200 Study Commander Trait
## 0300 Fertility Dance
## 0400 Pax Mongolica
## 0500 Desperate Stance
## 0060 Invite Shepherds
## 0120 Adopt the Nomadic Ways
namespace = mpo_decisions_events
scripted_trigger mpo_decisions_events_0001_threat_trigger = {
save_temporary_scope_as = confederate
trigger_if = {
limit = {
max_military_strength > 0
}
confederation_worthy_foe_strength_ratio_value_root <= 0.5
}
NOT = { is_allied_to = root }
OR = {
highest_held_title_tier >= tier_kingdom
faith = {
faith_hostility_level = {
target = root.faith
value >= faith_evil_level
}
}
has_trait = conqueror
has_trait = greatest_of_khans
is_gurkhan = yes
}
}
#Confederation planning event
mpo_decisions_events.0001 = {
type = character_event
title = mpo_decisions_events.0001.t
desc = mpo_decisions_events.0001.desc
theme = vassal
override_background = { reference = wilderness }
left_portrait = {
character = root
animation = inspect_weapon
}
right_portrait = {
character = scope:warrior
animation = throne_room_two_handed_passive_shield
camera = camera_event_right_pointing_left
}
lower_right_portrait = scope:threat
immediate = {
random_knight = {
limit = {
is_imprisoned = no
is_incapable = no
is_playable_character = no
}
save_scope_as = warrior
add_character_flag = need_military_outfit
}
if = {
limit = {
NOT = {
exists = scope:warrior
}
}
random_courtier = {
limit = {
is_available_allow_travelling = yes
is_adult = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
age <= 55
}
save_scope_as = warrior
add_character_flag = need_military_outfit
}
}
if = {
limit = {
any_land_neighboring_realm_with_tributaries_owner = {
mpo_decisions_events_0001_threat_trigger = yes
}
}
ordered_land_neighboring_realm_with_tributaries_owner = {
order_by = current_military_strength
limit = {
mpo_decisions_events_0001_threat_trigger = yes
}
save_scope_as = threat
}
}
else_if = {
limit = {
NOT = {
exists = scope:threat
}
}
ordered_land_neighboring_realm_with_tributaries_owner = {
order_by = current_military_strength
limit = {
is_tributary = yes
suzerain ?= {
mpo_decisions_events_0001_threat_trigger = yes
}
}
suzerain = {
save_scope_as = threat
}
}
}
else_if = {
limit = {
NOT = {
exists = scope:threat
}
}
ordered_land_neighboring_realm_with_tributaries_owner = {
order_by = current_military_strength
limit = {
is_tributary = yes
top_suzerain ?= {
mpo_decisions_events_0001_threat_trigger = yes
}
}
top_suzerain = {
save_scope_as = threat
}
}
}
else = {
capital_county = {
kingdom = {
random_de_jure_county = {
limit = {
holder.top_liege = {
mpo_decisions_events_0001_threat_trigger = yes
}
}
holder.top_liege = {
save_scope_as = threat
}
}
}
}
}
if = {
limit = {
NOT = {
exists = scope:threat
}
}
ordered_land_neighboring_realm_with_tributaries_owner = {
order_by = current_military_strength
limit = {
NOT = { is_allied_to = root }
}
save_scope_as = threat
}
}
if = {
limit = {
any_realm_county = {
is_landless_type_title = no
kingdom = {
any_de_jure_county = {
holder.top_liege = scope:threat
}
}
}
}
random_realm_county = {
limit = {
is_landless_type_title = no
kingdom = {
any_de_jure_county = {
holder.top_liege = scope:threat
}
}
}
kingdom = { save_scope_as = home_kingdom }
}
}
else = {
capital_county.kingdom = {
save_scope_as = home_kingdom
}
}
}
option = {
name = mpo_decisions_events.0001.a
custom_tooltip = enables_offer_confederation_tt
custom_tooltip = offer_confederation_members_tt
custom_tooltip = offer_confederation_5_year_warning_tt
add_character_flag = {
flag = forming_confederation
years = 5
}
}
#opt out
option = {
trigger = {
is_ai = no
}
name = mpo_decisions_events.0001.b
remove_decision_cooldown = call_for_confederation_decision
}
after = {
scope:warrior ?= {
remove_character_flag = need_military_outfit
}
}
}
#Leave confederation event for leaver
mpo_decisions_events.0002 = {
type = character_event
title = mpo_decisions_events.0002.t
desc = {
desc = mpo_decisions_events.0002.desc
first_valid = {
triggered_desc = {
trigger = {
exists = scope:confederation
scope:confederation = {
any_confederation_member = {
count >= 2
NOT = {
this = root
}
}
}
}
desc = mpo_decisions_events.0002.desc_confederation_survives
}
desc = mpo_decisions_events.0002.desc_confederation_done
}
}
theme = vassal
left_portrait = {
character = root
animation = dismissal
}
right_portrait = {
character = scope:other_confederate
animation = disappointed
camera = camera_event_right_forward
}
immediate = {
ordered_in_list = {
order_by = max_military_strength
list = confederation_members
save_scope_as = other_confederate
}
scope:confederation = {
#Your confederation will survive, it has more members
if = {
limit = {
any_confederation_member = {
count >= 2
NOT = {
this = root
}
}
}
remove_confederation_member = root
}
#Your confederation is toast
else = {
disband_confederation = yes
}
}
if = {
limit = {
government_has_flag = government_is_nomadic
}
show_as_tooltip = {
remove_character_modifier = mpo_confederation_member_modifier
}
}
every_in_list = {
list = confederation_members
custom = custom.every_confederation_member
add_opinion = {
modifier = turncoat_opinion
target = root
opinion = -20
}
}
}
#Bye
option = {
name = mpo_decisions_events.0002.a
every_in_list = {
list = confederation_members
trigger_event = mpo_decisions_events.0003
}
}
}
#Leave confederation event for other members
mpo_decisions_events.0003 = {
type = character_event
title = mpo_decisions_events.0003.t
desc = {
desc = mpo_decisions_events.0003.desc
first_valid = {
triggered_desc = {
trigger = {
is_confederation_member = yes
}
desc = mpo_decisions_events.0003.desc_confederation_survives
}
desc = mpo_decisions_events.0003.desc_confederation_done
}
}
theme = vassal
left_portrait = {
character = root
animation = war_defender
}
right_portrait = {
character = scope:leaver
animation = menacing
}
immediate = {
if = {
limit = {
is_confederation_member = yes
}
custom_tooltip = leaver_left_confederation_tt
}
else = {
custom_tooltip = leaver_destroyed_confederation_tt
}
}
#See ya later, I guess. Douchebag
option = {
name = mpo_decisions_events.0003.a
}
}
#Confederation elevated - vassal
mpo_decisions_events.0004 = {
type = character_event
title = mpo_decisions_events.0004.t
desc = mpo_decisions_events.0004.desc
theme = vassal
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = obsequious_bow
camera = camera_event_horse_left_forward
}
right_portrait = {
character = scope:new_king_ruler
animation = jockey_wave
camera = camera_event_horse_right
}
immediate = {
}
option = {
name = mpo_decisions_events.0004.a
add_character_modifier = {
modifier = confederate_vassal_modifier
}
}
option = {
name = mpo_decisions_events.0004.b
trigger = {
is_ai = no
}
create_title_and_vassal_change = {
type = independency
save_scope_as = change
}
becomes_independent = { change = scope:change }
resolve_title_and_vassal_change = scope:change
}
}
#Confederation elevated - king
mpo_decisions_events.0005 = {
type = character_event
title = mpo_decisions_events.0005.t
desc = mpo_decisions_events.0005.desc
theme = crown
override_background = { reference = courtyard }
right_portrait = {
character = scope:new_king_ruler
animation = jockey_wave
camera = camera_event_horse_left
}
immediate = {
}
option = {
name = mpo_decisions_events.0005.a
add_character_modifier = {
modifier = confederate_king_modifier
years = 15
}
every_sub_realm_county = {
custom = custom.every_realm_county
add_county_modifier = {
modifier = confederate_lands_modifier
years = 30
}
}
}
}
scripted_effect mpo_decisions_events_0020_bonuses_tooltips_effect = {
if = {
limit = {
is_vassal_of = root
is_ai = yes
NOT = { is_obedient_to = root }
}
custom_tooltip = friend_heir_target_vassal_tt
custom_tooltip = friend_heir_target_vassal_obedient_tt
}
if = {
limit = {
is_allied_to = root
}
custom_tooltip = friend_heir_target_ally_tt
}
custom_tooltip = friend_heir_success_factors_tt
#Positive option unlocks
if = {
limit = {
number_of_traits_in_common = {
target = scope:heir
value = 1
}
}
custom_tooltip = heir_friend_1_common_trait_tt
}
if = {
limit = {
number_of_traits_in_common = {
target = scope:heir
value = 2
}
}
custom_tooltip = heir_friend_2_common_trait_tt
}
if = {
limit = {
number_of_traits_in_common = {
target = scope:heir
value = 3
}
}
custom_tooltip = heir_friend_3_common_trait_tt
}
if = {
limit = {
number_of_traits_in_common = {
target = scope:heir
value = 4
}
}
custom_tooltip = heir_friend_4_common_trait_tt
}
if = {
limit = {
number_of_traits_in_common = {
target = scope:heir
value = 5
}
}
custom_tooltip = heir_friend_5_common_trait_tt
}
if = {
limit = {
number_of_traits_in_common = {
target = scope:heir
value >= 6
}
}
custom_tooltip = heir_friend_6_or_more_common_trait_tt
}
if = {
limit = {
OR = {
AND = {
has_trait = lifestyle_hunter
scope:heir = { has_trait = lifestyle_hunter }
}
AND = {
has_trait = lifestyle_reveler
scope:heir = { has_trait = lifestyle_reveler }
}
AND = {
has_trait = lifestyle_traveler
scope:heir = { has_trait = lifestyle_traveler }
}
AND = {
has_trait = lifestyle_blademaster
scope:heir = { has_trait = lifestyle_blademaster }
}
AND = {
has_trait = lifestyle_herbalist
scope:heir = { has_trait = lifestyle_herbalist }
}
AND = {
has_trait = lifestyle_mystic
scope:heir = { has_trait = lifestyle_mystic }
}
AND = {
has_trait = lifestyle_physician
scope:heir = { has_trait = lifestyle_physician }
}
AND = {
has_trait = lifestyle_poet
scope:heir = { has_trait = lifestyle_poet }
}
AND = {
has_trait = lifestyle_gardener
scope:heir = { has_trait = lifestyle_gardener }
}
AND = {
has_trait = drunkard
scope:heir = { has_trait = drunkard }
}
AND = {
has_trait = hashishiyah
scope:heir = { has_trait = hashishiyah }
}
}
}
custom_tooltip = heir_friend_lifestyle_tt
}
if = {
limit = {
OR = {
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
}
}
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
}
}
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
}
}
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = wit
value >= 50
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = wit
value >= 50
}
}
}
}
}
custom_tooltip = heir_friend_sports_tt
}
if = {
limit = {
has_relation_blood_brother = root
}
custom_tooltip = heir_friend_blood_brother_tt
}
if = {
limit = {
OR = {
has_relation_friend = root
has_relation_best_friend = root
has_relation_soulmate = root
has_relation_lover = root
}
}
custom_tooltip = heir_friend_positive_relation_tt
}
if = {
limit = {
AND = {
exists = house
exists = scope:heir.house
house = {
this = root.house
}
}
}
custom_tooltip = heir_friend_house_tt
}
if = {
limit = {
OR = {
culture = {
this = scope:heir.culture
}
culture = {
cultural_acceptance = {
target = scope:heir.culture
value >= 80
}
}
}
}
custom_tooltip = heir_friend_culture_tt
}
#Positive bonuses
if = {
limit = {
is_allied_to = root
}
custom_tooltip = heir_friend_roots_ally_tt
}
if = {
limit = {
opinion = {
target = scope:heir
value >= 25
}
}
custom_tooltip = heir_friend_likes_heir_tt
}
if = {
limit = {
age_compared_to_player_heir < 10
age_compared_to_player_heir > -10
}
custom_tooltip = heir_friend_similar_age_tt
}
#Negative maluses
if = {
limit = {
opinion = {
target = scope:heir
value <= 0
}
opinion = {
target = scope:heir
value > -40
}
}
custom_tooltip = heir_friend_dislikes_heir_tt
}
if = {
limit = {
opinion = {
target = scope:heir
value <= -40
}
}
custom_tooltip = heir_friend_hates_heir_tt
}
if = {
limit = {
save_temporary_scope_as = temp_target
NOR = {
knows_language_of_culture = scope:heir.culture
scope:heir = {
knows_language_of_culture = scope:temp_target.culture
}
}
}
custom_tooltip = heir_friend_cant_communicate_tt
}
if = {
limit = {
OR = {
age_compared_to_player_heir >= 20
age_compared_to_player_heir <= -20
}
}
custom_tooltip = heir_friend_different_age_tt
}
if = {
limit = {
highest_held_title_tier = tier_kingdom
}
custom_tooltip = heir_friend_high_tier_tt
}
if = {
limit = {
highest_held_title_tier >= tier_empire
}
custom_tooltip = heir_friend_very_high_tier_tt
}
}
#Introduce Heir (friend matchmaking)
#By Jason Cantalini
mpo_decisions_events.0020 = {
type = character_event
title = mpo_decisions_events.0020.t
desc = {
desc = mpo_decisions_events.0020.desc
first_valid = {
triggered_desc = {
trigger = {
any_in_list = {
list = saved_targets
count >= 2
}
}
desc = mpo_decisions_events.0020.desc_multiple
}
desc = mpo_decisions_events.0020.desc_one
}
}
theme = nomads
override_background = {
trigger = {
government_has_flag = government_is_nomadic
}
reference = mpo_camp_steppe
}
override_background = {
trigger = {
NOT = {
government_has_flag = government_is_nomadic
}
}
reference = wilderness
}
left_portrait = {
character = root
animation = standing_horse
camera = camera_event_standing_with_horse_left
}
right_portrait = {
character = scope:heir
animation = horse_conversing_left
camera = camera_event_horse_right_facing_left
}
lower_right_portrait = scope:target_1
lower_center_portrait = scope:target_2
lower_left_portrait = scope:target_3
immediate = {
save_scope_as = root_scope
player_heir = {
save_scope_as = heir
#Yes, I know how stupid this looks
save_scope_as = loc_heir
}
#Save targets
#Allies will always precede powerful vassals, who precede regular vassals
#Good relations with root
every_ally = {
limit = {
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
OR = {
has_relation_friend = root
has_relation_best_friend = root
has_relation_soulmate = root
has_relation_blood_brother = root
}
}
add_to_list = saved_targets
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_powerful_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
OR = {
has_relation_friend = root
has_relation_best_friend = root
has_relation_soulmate = root
has_relation_blood_brother = root
}
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
OR = {
has_relation_friend = root
has_relation_best_friend = root
has_relation_soulmate = root
has_relation_blood_brother = root
}
}
add_to_list = saved_targets
}
}
#Take care of blood brothers
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_relation = {
type = blood_brother
limit = {
mpo_valid_heir_friend_trigger = { CHARACTER = root }
}
add_to_list = saved_targets
}
}
#friends
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_relation = {
type = friend
limit = {
mpo_valid_heir_friend_trigger = { CHARACTER = root }
}
add_to_list = saved_targets
}
}
#soulmates
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_relation = {
type = soulmate
limit = {
mpo_valid_heir_friend_trigger = { CHARACTER = root }
}
add_to_list = saved_targets
}
}
#Allied vassal
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_powerful_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
is_allied_to = root
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
is_allied_to = root
}
add_to_list = saved_targets
}
}
#Same house as root
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_ally = {
limit = {
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
AND = {
exists = house
exists = root.house
house = {
this = root.house
}
}
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_powerful_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
AND = {
exists = house
exists = root.house
house = {
this = root.house
}
}
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
AND = {
exists = house
exists = root.house
house = {
this = root.house
}
}
}
add_to_list = saved_targets
}
}
#Same culture as root
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_ally = {
limit = {
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
culture = root.culture
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_powerful_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
culture = root.culture
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 0
}
culture = root.culture
}
add_to_list = saved_targets
}
}
#Root likes them
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_ally = {
limit = {
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 50
}
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_powerful_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 50
}
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
reverse_opinion = {
target = root
value >= 50
}
}
add_to_list = saved_targets
}
}
#Any vassal/ally
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_ally = {
limit = {
mpo_valid_heir_friend_trigger = { CHARACTER = root }
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_powerful_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
}
add_to_list = saved_targets
}
}
if = {
limit = {
list_size = {
name = saved_targets
value < 5
}
}
every_vassal = {
limit = {
is_obedient_to = root
mpo_valid_heir_friend_trigger = { CHARACTER = root }
}
add_to_list = saved_targets
}
}
#Now that we've put top candidates in list, save their scopes
random_in_list = {
list = saved_targets
save_scope_as = target_1
}
if = {
limit = {
any_in_list = {
list = saved_targets
NOT = {
this = scope:target_1
}
}
}
random_in_list = {
list = saved_targets
limit = {
NOT = {
this = scope:target_1
}
}
save_scope_as = target_2
}
}
if = {
limit = {
any_in_list = {
list = saved_targets
NOR = {
this = scope:target_1
this = scope:target_2
}
}
}
random_in_list = {
list = saved_targets
limit = {
NOR = {
this = scope:target_1
this = scope:target_2
}
}
save_scope_as = target_3
}
}
if = {
limit = {
any_in_list = {
list = saved_targets
NOR = {
this = scope:target_1
this = scope:target_2
this = scope:target_3
}
}
}
random_in_list = {
list = saved_targets
limit = {
NOR = {
this = scope:target_1
this = scope:target_2
this = scope:target_3
}
}
save_scope_as = target_4
}
}
if = {
limit = {
any_in_list = {
list = saved_targets
NOR = {
this = scope:target_1
this = scope:target_2
this = scope:target_3
this = scope:target_4
}
}
}
random_in_list = {
list = saved_targets
limit = {
NOR = {
this = scope:target_1
this = scope:target_2
this = scope:target_3
this = scope:target_4
}
}
save_scope_as = target_5
}
}
}
#Friends with friend-bachelor #1!
option = {
name = mpo_decisions_events.0020.a
scope:target_1 = {
save_scope_as = friendship_target
mpo_decisions_events_0020_bonuses_tooltips_effect = yes
}
trigger_event = {
id = mpo_decisions_events.0021
days = 3
}
stress_impact = {
shy = medium_stress_impact_gain
callous = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 101
modifier = {
OR = {
has_relation_friend = scope:target_1
has_relation_best_friend = scope:target_1
has_relation_soulmate = scope:target_1
has_relation_lover = scope:target_1
has_relation_blood_brother = scope:target_1
}
add = 100
}
modifier = {
scope:target_1 = {
opinion = {
target = scope:heir
value <= 0
}
}
add = -100
}
modifier = {
scope:target_1 = {
opinion = {
target = scope:heir
value < -40
}
}
add = -200
}
modifier = {
scope:target_1 = {
AND = {
exists = house
exists = scope:heir.house
house = {
this = root.house
}
}
}
add = 50
}
modifier = {
scope:target_1 = {
OR = {
culture = {
this = scope:heir.culture
}
culture = {
cultural_acceptance = {
target = scope:heir.culture
value >= 80
}
}
}
}
add = 50
}
modifier = {
scope:target_1 = {
opinion = {
target = scope:heir
value >= 75
}
}
add = 100
}
}
}
#Friends with friend-bachelor #2!
option = {
trigger = {
exists = scope:target_2
}
name = mpo_decisions_events.0020.b
scope:target_2 = {
save_scope_as = friendship_target
mpo_decisions_events_0020_bonuses_tooltips_effect = yes
}
trigger_event = {
id = mpo_decisions_events.0021
days = 3
}
stress_impact = {
shy = medium_stress_impact_gain
callous = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 101
modifier = {
OR = {
has_relation_friend = scope:target_2
has_relation_best_friend = scope:target_2
has_relation_soulmate = scope:target_2
has_relation_lover = scope:target_2
has_relation_blood_brother = scope:target_2
}
add = 100
}
modifier = {
scope:target_2 = {
opinion = {
target = scope:heir
value <= 0
}
}
add = -100
}
modifier = {
scope:target_2 = {
opinion = {
target = scope:heir
value < -40
}
}
add = -200
}
modifier = {
scope:target_2 = {
AND = {
exists = house
exists = scope:heir.house
house = {
this = root.house
}
}
}
add = 50
}
modifier = {
scope:target_2 = {
OR = {
culture = {
this = scope:heir.culture
}
culture = {
cultural_acceptance = {
target = scope:heir.culture
value >= 80
}
}
}
}
add = 50
}
modifier = {
scope:target_2 = {
opinion = {
target = scope:heir
value >= 75
}
}
add = 100
}
}
}
#Friends with friend-bachelor #3!
option = {
trigger = {
exists = scope:target_3
}
name = mpo_decisions_events.0020.c
scope:target_3 = {
save_scope_as = friendship_target
mpo_decisions_events_0020_bonuses_tooltips_effect = yes
}
trigger_event = {
id = mpo_decisions_events.0021
days = 3
}
stress_impact = {
shy = medium_stress_impact_gain
callous = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 101
modifier = {
OR = {
has_relation_friend = scope:target_3
has_relation_best_friend = scope:target_3
has_relation_soulmate = scope:target_3
has_relation_lover = scope:target_3
has_relation_blood_brother = scope:target_3
}
add = 100
}
modifier = {
scope:target_3 = {
opinion = {
target = scope:heir
value <= 0
}
}
add = -100
}
modifier = {
scope:target_3 = {
opinion = {
target = scope:heir
value < -40
}
}
add = -200
}
modifier = {
scope:target_3 = {
AND = {
exists = house
exists = scope:heir.house
house = {
this = root.house
}
}
}
add = 50
}
modifier = {
scope:target_3 = {
OR = {
culture = {
this = scope:heir.culture
}
culture = {
cultural_acceptance = {
target = scope:heir.culture
value >= 80
}
}
}
}
add = 50
}
modifier = {
scope:target_3 = {
opinion = {
target = scope:heir
value >= 75
}
}
add = 100
}
}
}
#Friends with friend-bachelor #4!
option = {
trigger = {
exists = scope:target_4
}
name = mpo_decisions_events.0020.d
scope:target_4 = {
save_scope_as = friendship_target
mpo_decisions_events_0020_bonuses_tooltips_effect = yes
}
trigger_event = {
id = mpo_decisions_events.0021
days = 3
}
stress_impact = {
shy = medium_stress_impact_gain
callous = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 101
modifier = {
OR = {
has_relation_friend = scope:target_4
has_relation_best_friend = scope:target_4
has_relation_soulmate = scope:target_4
has_relation_lover = scope:target_4
has_relation_blood_brother = scope:target_4
}
add = 100
}
modifier = {
scope:target_4 = {
opinion = {
target = scope:heir
value <= 0
}
}
add = -100
}
modifier = {
scope:target_4 = {
opinion = {
target = scope:heir
value < -40
}
}
add = -200
}
modifier = {
scope:target_4 = {
AND = {
exists = house
exists = scope:heir.house
house = {
this = root.house
}
}
}
add = 50
}
modifier = {
scope:target_4 = {
OR = {
culture = {
this = scope:heir.culture
}
culture = {
cultural_acceptance = {
target = scope:heir.culture
value >= 80
}
}
}
}
add = 50
}
modifier = {
scope:target_4 = {
opinion = {
target = scope:heir
value >= 75
}
}
add = 100
}
}
}
#Friends with friend-bachelor #5!
option = {
trigger = {
exists = scope:target_5
}
name = mpo_decisions_events.0020.e
scope:target_5 = {
save_scope_as = friendship_target
mpo_decisions_events_0020_bonuses_tooltips_effect = yes
}
trigger_event = {
id = mpo_decisions_events.0021
days = 1
}
stress_impact = {
shy = medium_stress_impact_gain
callous = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 101
modifier = {
OR = {
has_relation_friend = scope:target_5
has_relation_best_friend = scope:target_5
has_relation_soulmate = scope:target_5
has_relation_lover = scope:target_5
has_relation_blood_brother = scope:target_5
}
add = 100
}
modifier = {
scope:target_5 = {
opinion = {
target = scope:heir
value <= 0
}
}
add = -100
}
modifier = {
scope:target_5 = {
opinion = {
target = scope:heir
value < -40
}
}
add = -200
}
modifier = {
scope:target_5 = {
AND = {
exists = house
exists = scope:heir.house
house = {
this = root.house
}
}
}
add = 50
}
modifier = {
scope:target_5 = {
OR = {
culture = {
this = scope:heir.culture
}
culture = {
cultural_acceptance = {
target = scope:heir.culture
value >= 80
}
}
}
}
add = 50
}
modifier = {
scope:target_5 = {
opinion = {
target = scope:heir
value >= 75
}
}
add = 100
}
}
}
#Yeah... not these bozos
option = {
name = mpo_decisions_events.0020.f
remove_decision_cooldown = mpo_decision_introduce_heir
add_prestige = mpo_introduce_heir_prestige_cost
add_piety = mpo_introduce_heir_piety_cost
}
}
scripted_effect mpo_decisions_events_0021_positive_outcome_effect = {
scope:friendship_target = {
show_as_tooltip = {
set_relation_friend = {
target = scope:heir
reason = friend_introduced_heir
}
if = {
limit = {
is_ai = yes
is_vassal_of = root
NOT = { is_obedient_to = root }
}
custom_tooltip = friend_heir_may_become_obedient
}
if = {
limit = {
is_allied_to = root
}
custom_tooltip = friend_heir_may_become_blood_brother
}
}
}
}
scripted_effect mpo_decisions_events_0021_negative_outcome_effect = {
custom_tooltip = friendship_setup_fail_tt
add_character_flag = {
flag = heir_friend_failed
days = 40
}
}
#Friendship maneuvering event
mpo_decisions_events.0021 = {
type = character_event
title = mpo_decisions_events.0021.t
desc = {
desc = mpo_decisions_events.0021.desc_intro
first_valid = {
triggered_desc = {
trigger = {
scope:friendship_target = {
opinion = {
target = scope:heir
value >= 40
}
}
}
desc = mpo_decisions_events.0021.desc_warm
}
desc = mpo_decisions_events.0021.desc_cold
}
desc = mpo_decisions_events.0021.desc
}
theme = nomads
override_background = {
reference = relaxing_room
}
left_portrait = {
character = scope:heir
triggered_animation = {
trigger = {
scope:friendship_target = {
opinion = {
target = scope:heir
value >= 40
}
}
}
animation = personality_content
}
animation = boredom
}
right_portrait = {
character = scope:friendship_target
triggered_animation = {
trigger = {
scope:heir = {
reverse_opinion = {
target = scope:friendship_target
value >= 40
}
}
}
animation = hunting_carcass_start
}
animation = war_defender
}
trigger = {
is_alive = yes
scope:heir = {
is_alive = yes
}
scope:friendship_target = {
is_alive = yes
}
}
immediate = {
scope:heir = {
get_quirk_character_effect = yes
}
scope:friendship_target = {
save_scope_as = bg_override_char
random_list = {
1 = {
trigger = {
has_trait = lifestyle_hunter
scope:heir = {
has_trait = lifestyle_hunter
}
}
trait:lifestyle_hunter = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = lifestyle_reveler
scope:heir = { has_trait = lifestyle_reveler }
}
trait:lifestyle_reveler = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = lifestyle_traveler
scope:heir = { has_trait = lifestyle_traveler }
}
trait:lifestyle_traveler = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = lifestyle_blademaster
scope:heir = { has_trait = lifestyle_blademaster }
}
trait:lifestyle_reveler = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = lifestyle_herbalist
scope:heir = { has_trait = lifestyle_herbalist }
}
trait:lifestyle_herbalist = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = lifestyle_mystic
scope:heir = { has_trait = lifestyle_mystic }
}
trait:lifestyle_mystic = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = lifestyle_physician
scope:heir = { has_trait = lifestyle_physician }
}
trait:lifestyle_physician = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = lifestyle_poet
scope:heir = { has_trait = lifestyle_poet }
}
trait:lifestyle_poet = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = lifestyle_gardener
scope:heir = { has_trait = lifestyle_gardener }
}
trait:lifestyle_gardener = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = drunkard
scope:heir = { has_trait = drunkard }
}
trait:drunkard = {
save_scope_as = lifestyle_trait
}
}
1 = {
trigger = {
has_trait = hashishiyah
scope:heir = { has_trait = hashishiyah }
}
trait:hashishiyah = {
save_scope_as = lifestyle_trait
}
}
}
}
}
#Charm them with your high diplo
option = {
trigger = {
diplomacy >= very_high_skill_rating
}
name = mpo_decisions_events.0021.a
flavor = mpo_decisions_events.0021.a.flavor
add_character_flag = {
flag = heir_friend_personal_charm
days = 40
}
if = {
limit = {
scope:friendship_target = {
is_ai = yes
}
}
duel = {
skill = diplomacy
value = medium_skill_rating
#Successful - they're friends!
45 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -44
}
modifier = {
scope:friendship_target = {
opinion = {
target = root
value >= 75
}
}
add = 20
}
modifier = {
scope:friendship_target = {
opinion = {
target = root
value >= 90
}
}
add = 20
}
modifier = {
add = mpo_friendship_setup_positive_modifiers_value
}
desc = mpo_decisions_events.0021.a.success
mpo_decisions_events_0021_positive_outcome_effect = yes
show_as_tooltip = {
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
}
}
# Fail - they're pretty meh about each other
55 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
# Limit how low the off-chance can go.
min = -54
}
modifier = {
add = mpo_friendship_setup_negative_modifiers_value
}
desc = mpo_decisions_events.0021.a.fail
mpo_decisions_events_0021_negative_outcome_effect = yes
}
}
}
else = {
#Player response
custom_tooltip = mpo_heir_friend_if_accept_tt
show_as_tooltip = {
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
}
mpo_decisions_events_0021_positive_outcome_effect = yes
custom_tooltip = mpo_heir_friend_if_do_not_accept_tt
custom_tooltip = friendship_setup_fail_tt
}
stress_impact = {
shy = miniscule_stress_impact_gain
trusting = miniscule_stress_impact_gain
}
ai_chance = {
base = 200
ai_value_modifier = {
ai_sociability = 1
ai_energy = 0.5
}
modifier = {
diplomacy > extremely_high_skill_rating
add = 100
}
}
}
#Do their lifestyle traits together
option = {
trigger = {
exists = scope:lifestyle_trait
}
name = mpo_decisions_events.0021.b
flavor = mpo_decisions_events.0021.b.flavor
add_internal_flag = special
add_character_flag = {
flag = heir_friend_lifestyle_trait
days = 40
}
if = {
limit = {
scope:friendship_target = {
is_ai = yes
}
}
duel = {
skill = diplomacy
value = average_skill_rating
#Successful - they're friends!
65 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.1
min = -64
}
modifier = {
add = mpo_friendship_setup_positive_modifiers_value
}
desc = mpo_decisions_events.0021.b.success
mpo_decisions_events_0021_positive_outcome_effect = yes
show_as_tooltip = {
mpo_heir_lifestyle_xp_gain_effect = yes
}
}
# Fail - they're pretty meh about each other
35 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.1
min = -34
}
modifier = {
add = mpo_friendship_setup_negative_modifiers_value
}
desc = mpo_decisions_events.0021.b.fail
mpo_decisions_events_0021_negative_outcome_effect = yes
}
}
}
else = {
#Player response
custom_tooltip = mpo_heir_friend_if_accept_tt
show_as_tooltip = {
mpo_heir_lifestyle_xp_gain_effect = yes
}
mpo_decisions_events_0021_positive_outcome_effect = yes
custom_tooltip = mpo_heir_friend_if_do_not_accept_tt
custom_tooltip = friendship_setup_fail_tt
}
ai_chance = {
base = 200
}
}
#Do their sports together
option = {
trigger = {
scope:friendship_target = {
OR = {
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
}
}
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
}
}
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
}
}
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = wit
value >= 50
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = wit
value >= 50
}
}
}
}
}
}
name = mpo_decisions_events.0021.c
flavor = mpo_decisions_events.0021.c.flavor
reason = tourney_participant
add_internal_flag = special
add_character_flag = {
flag = heir_friend_sports
days = 40
}
if = {
limit = {
scope:friendship_target = {
is_ai = yes
}
}
duel = {
skill = diplomacy
value = average_skill_rating
#Successful - they're friends!
65 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.1
min = -64
}
modifier = {
add = mpo_friendship_setup_positive_modifiers_value
}
desc = mpo_decisions_events.0021.c.success
mpo_decisions_events_0021_positive_outcome_effect = yes
show_as_tooltip = {
mpo_heir_hastiluder_xp_gain_effect = yes
}
}
# Fail - they're pretty meh about each other
35 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.1
min = -34
}
modifier = {
add = mpo_friendship_setup_negative_modifiers_value
}
desc = mpo_decisions_events.0021.c.fail
mpo_decisions_events_0021_negative_outcome_effect = yes
}
}
}
else = {
#Player response
custom_tooltip = mpo_heir_friend_if_accept_tt
show_as_tooltip = {
mpo_heir_hastiluder_xp_gain_effect = yes
}
mpo_decisions_events_0021_positive_outcome_effect = yes
custom_tooltip = mpo_heir_friend_if_do_not_accept_tt
custom_tooltip = friendship_setup_fail_tt
}
ai_chance = {
base = 200
ai_value_modifier = {
ai_energy = 0.5
ai_boldness = 0.5
}
}
}
#Bond over shared traits
option = {
trigger = {
scope:friendship_target = {
trigger_if = {
limit = {
has_trait = nomadic_philosophy
scope:heir = {
has_trait = nomadic_philosophy
}
}
number_of_traits_in_common = {
target = scope:heir
value >= 2
}
}
trigger_else = {
number_of_traits_in_common = {
target = scope:heir
value >= 1
}
}
}
}
name = mpo_decisions_events.0021.d
flavor = mpo_decisions_events.0021.d.flavor
add_internal_flag = special
add_character_flag = {
flag = heir_friend_shared_traits
days = 40
}
if = {
limit = {
scope:friendship_target = {
is_ai = yes
}
}
duel = {
skill = diplomacy
value = average_skill_rating
#Successful - they're friends!
45 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.1
min = -44
}
modifier = {
add = mpo_friendship_setup_positive_modifiers_value
}
modifier = {
scope:friendship_target = {
number_of_traits_in_common = {
target = scope:heir
value >= 3
}
}
add = 40
}
modifier = {
scope:friendship_target = {
number_of_traits_in_common = {
target = scope:heir
value >= 4
}
}
add = 40
}
modifier = {
scope:friendship_target = {
number_of_traits_in_common = {
target = scope:heir
value >= 5
}
}
add = 40
}
modifier = {
scope:friendship_target = {
number_of_traits_in_common = {
target = scope:heir
value >= 6
}
}
add = 40
}
desc = mpo_decisions_events.0021.d.success
mpo_decisions_events_0021_positive_outcome_effect = yes
show_as_tooltip = {
scope:heir = {
add_stress = minor_stress_impact_loss
add_prestige = minor_prestige_gain
}
}
}
# Fail - they're pretty meh about each other
55 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.1
min = -54
}
modifier = {
add = mpo_friendship_setup_negative_modifiers_value
}
modifier = {
scope:friendship_target = {
number_of_traits_in_common = {
target = scope:heir
value <= 1
}
}
add = -40
}
desc = mpo_decisions_events.0021.d.fail
mpo_decisions_events_0021_negative_outcome_effect = yes
}
}
}
else = {
#Player response
custom_tooltip = mpo_heir_friend_if_accept_tt
show_as_tooltip = {
scope:heir = {
add_stress = minor_stress_impact_loss
add_prestige = minor_prestige_gain
}
}
mpo_decisions_events_0021_positive_outcome_effect = yes
custom_tooltip = mpo_heir_friend_if_do_not_accept_tt
custom_tooltip = friendship_setup_fail_tt
}
ai_chance = {
base = 50
modifier = {
scope:friendship_target = {
number_of_traits_in_common = {
target = scope:heir
value >= 2
}
}
add = 50
}
modifier = {
scope:friendship_target = {
number_of_traits_in_common = {
target = scope:heir
value >= 4
}
}
add = 100
}
modifier = {
scope:friendship_target = {
number_of_traits_in_common = {
target = scope:heir
value >= 6
}
}
add = 100
}
}
}
#Let's hang - extra bonus for blood brother/friends/family/culture
option = {
name = mpo_decisions_events.0021.e
flavor = mpo_decisions_events.0021.e.flavor
add_character_flag = {
flag = heir_friend_kinship
days = 40
}
if = {
limit = {
scope:friendship_target = {
is_ai = yes
}
}
duel = {
skill = diplomacy
value = medium_skill_rating
#Successful - they're friends!
35 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.75
min = -34
}
modifier = {
add = mpo_friendship_setup_positive_modifiers_value
}
modifier = {
has_relation_blood_brother = scope:friendship_target
add = 120
}
modifier = {
OR = {
has_relation_best_friend = scope:friendship_target
has_relation_soulmate = scope:friendship_target
}
add = 80
}
modifier = {
OR = {
has_relation_friend = scope:friendship_target
has_relation_lover = scope:friendship_target
}
add = 60
}
modifier = {
AND = {
exists = house
exists = scope:friendship_target.house
house = scope:friendship_target.house
}
add = 60
}
modifier = {
OR = {
culture = {
this = scope:friendship_target.culture
}
culture = {
cultural_acceptance = {
target = scope:friendship_target.culture
value >= 80
}
}
}
add = 30
}
desc = mpo_decisions_events.0021.e.success
mpo_decisions_events_0021_positive_outcome_effect = yes
show_as_tooltip = {
scope:heir = {
add_piety = minor_piety_gain
}
}
}
# Fail - they're pretty meh about each other
65 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.75
min = -64
}
modifier = {
add = mpo_friendship_setup_negative_modifiers_value
}
desc = mpo_decisions_events.0021.e.fail
mpo_decisions_events_0021_negative_outcome_effect = yes
}
}
}
else = {
#Player response
custom_tooltip = mpo_heir_friend_if_accept_tt
mpo_decisions_events_0021_positive_outcome_effect = yes
custom_tooltip = mpo_heir_friend_if_do_not_accept_tt
custom_tooltip = friendship_setup_fail_tt
}
ai_chance = {
base = 10
modifier = {
diplomacy >= medium_skill_rating
diplomacy < very_high_skill_rating
add = 40
}
modifier = {
has_relation_blood_brother = scope:friendship_target
add = 40
}
modifier = {
OR = {
has_relation_best_friend = scope:friendship_target
has_relation_soulmate = scope:friendship_target
}
add = 20
}
}
}
#Gift fallback
option = {
trigger = {
diplomacy < very_high_skill_rating
}
show_unlock_reason = no
name = mpo_decisions_events.0021.f
flavor = mpo_decisions_events.0021.f.flavor
add_character_flag = {
flag = heir_friend_gift
days = 40
}
show_as_tooltip = {
pay_short_term_gold = {
target = scope:friendship_target
gold = medium_gold_value
}
pay_short_term_gold = {
target = scope:heir
gold = minor_gold_value
}
}
mpo_decisions_events_0021_positive_outcome_effect = yes
stress_impact = {
greedy = miniscule_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_greed = -1
}
modifier = {
gold >= monumental_gold_value
add = 300
}
modifier = {
short_term_gold < major_gold_value
factor = 0
}
}
}
after = {
if = {
limit = {
scope:friendship_target = {
is_ai = yes
}
}
trigger_event = {
id = mpo_decisions_events.0023
days = 1
}
}
else = {
scope:friendship_target = {
trigger_event = {
id = mpo_decisions_events.0022
days = 1
}
}
}
}
}
mpo_decisions_events.0022 = {
type = character_event
title = mpo_decisions_events.0022.t
desc = {
desc = mpo_decisions_events.0022.desc_intro
triggered_desc = {
trigger = {
scope:root_scope = {
has_character_flag = heir_friend_personal_charm
}
}
desc = mpo_decisions_events.0022.desc_personal_charm
}
triggered_desc = {
trigger = {
scope:root_scope = {
has_character_flag = heir_friend_lifestyle_trait
}
}
desc = mpo_decisions_events.0022.desc_lifestyle
}
triggered_desc = {
trigger = {
scope:root_scope = {
has_character_flag = heir_friend_sports
}
}
desc = mpo_decisions_events.0022.desc_sports
}
triggered_desc = {
trigger = {
scope:root_scope = {
has_character_flag = heir_friend_shared_traits
}
}
desc = mpo_decisions_events.0022.desc_shared_traits
}
triggered_desc = {
trigger = {
scope:root_scope = {
has_character_flag = heir_friend_kinship
}
}
desc = mpo_decisions_events.0022.desc_kinship
}
triggered_desc = {
trigger = {
scope:root_scope = {
has_character_flag = heir_friend_gift
}
}
desc = mpo_decisions_events.0022.desc_gift
}
desc = mpo_decisions_events.0022.desc_outro
}
theme = nomads
override_background = {
reference = throne_room
}
left_portrait = {
character = scope:root_scope
animation = interested
}
right_portrait = {
character = scope:heir
triggered_animation = {
trigger = {
root = {
OR = {
has_character_flag = heir_friend_lifestyle_trait
has_character_flag = heir_friend_sports
}
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_hunter
AND = {
scope:friendship_target = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
}
}
}
}
animation = hunting_shortbow_aim_arrow_default
}
triggered_animation = {
trigger = {
root = {
OR = {
has_character_flag = heir_friend_lifestyle_trait
has_character_flag = heir_friend_sports
}
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_blademaster
AND = {
scope:friendship_target = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
}
}
}
}
animation = sword_coup_degrace
}
triggered_animation = {
trigger = {
root = {
OR = {
has_character_flag = heir_friend_lifestyle_trait
has_character_flag = heir_friend_sports
}
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_traveler
AND = {
scope:friendship_target = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
}
}
}
}
animation = laugh
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_lifestyle_trait
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_physician
scope:lifestyle_trait = trait:lifestyle_herbalist
}
}
animation = physician
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_lifestyle_trait
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_reveler
scope:lifestyle_trait = trait:drunkard
}
}
animation = wedding_drunk
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_lifestyle_trait
NOT = {
has_character_flag = heir_friend_failed
}
}
scope:lifestyle_trait = trait:hashishiyah
}
animation = manic
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_lifestyle_trait
NOT = {
has_character_flag = heir_friend_failed
}
}
scope:lifestyle_trait = trait:lifestyle_gardener
}
animation = holding_staff
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_personal_charm
NOT = {
has_character_flag = heir_friend_failed
}
}
}
animation = laugh
}
triggered_animation = {
trigger = {
root = {
NOR = {
has_character_flag = heir_friend_lifestyle_trait
has_character_flag = heir_friend_failed
}
}
}
animation = storyteller
}
}
lower_right_portrait = scope:root_scope
immediate = {
if = {
limit = {
has_character_flag = heir_friend_gift
}
show_as_tooltip = {
scope:root_scope = {
pay_short_term_gold = {
target = scope:friendship_target
gold = medium_gold_value
}
}
}
}
}
#I want this blood brother
option = {
trigger = {
is_allied_to = scope:root_scope
NOT = {
has_relation_blood_brother = scope:friendship_target
}
}
name = mpo_decisions_events.0022.a
show_as_tooltip = {
set_relation_friend = {
target = scope:heir
reason = friend_introduced_heir
}
set_relation_blood_brother = {
target = scope:heir
reason = blood_brother_introduced_heir
}
}
scope:root_scope = {
add_character_flag = {
flag = player_heir_friend_blood_brother
days = 40
}
}
if = {
limit = {
scope:root_scope = {
highest_held_title_tier > root.highest_held_title_tier
}
}
add_prestige = medium_prestige_gain
}
else_if = {
limit = {
scope:root_scope = {
highest_held_title_tier = root.highest_held_title_tier
}
}
add_prestige = minor_prestige_gain
}
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:root_scope
opinion = 10
}
stress_impact = {
paranoid = medium_stress_impact_gain
callous = minor_stress_impact_gain
arrogant = medium_stress_impact_gain
fickle = medium_stress_impact_gain
}
}
#I will even be obedient!
option = {
trigger = {
is_ai = yes
is_vassal_of = scope:root_scope
NOR = {
is_obedient_to = scope:root_scope
has_trait = disloyal
}
}
name = mpo_decisions_events.0022.b
show_as_tooltip = {
set_relation_friend = {
target = scope:heir
reason = friend_introduced_heir
}
}
scope:root_scope = {
add_character_flag = {
flag = player_heir_friend_obedient
days = 40
}
}
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:root_scope
opinion = 40
}
random = {
chance = 50
add_trait = loyal
}
stress_impact = {
humble = minor_stress_impact_loss
trusting = minor_stress_impact_loss
content = minor_stress_impact_loss
paranoid = medium_stress_impact_gain
arrogant = major_stress_impact_gain
ambitious = major_stress_impact_gain
arbitrary = major_stress_impact_gain
}
}
#We can be friends
option = {
name = mpo_decisions_events.0022.c
show_as_tooltip = {
set_relation_friend = {
target = scope:heir
reason = friend_introduced_heir
}
}
if = {
limit = {
highest_held_title_tier > scope:root_scope.highest_held_title_tier
}
add_prestige = minor_prestige_loss
}
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:root_scope
opinion = 20
}
stress_impact = {
paranoid = minor_stress_impact_gain
callous = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
}
#I don't want this friend
option = {
name = mpo_decisions_events.0022.d
scope:root_scope = {
add_character_flag = {
flag = heir_friend_failed
days = 40
}
}
if = {
limit = {
scope:root_scope = {
has_character_flag = heir_friend_lifestyle_trait
}
}
mpo_target_lifestyle_xp_gain_effect = yes
}
else_if = {
limit = {
scope:root_scope = {
has_character_flag = heir_friend_sports
}
}
mpo_target_hastiluder_xp_gain_effect = yes
}
else_if = {
limit = {
scope:root_scope = {
has_character_flag = heir_friend_personal_charm
}
}
add_diplomacy_lifestyle_xp = medium_lifestyle_xp
}
else = {
add_stress = medium_stress_impact_loss
}
stress_impact = {
trusting = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
}
}
after = {
scope:root_scope = {
trigger_event = mpo_decisions_events.0023
}
}
}
mpo_decisions_events.0023 = {
type = character_event
title = mpo_decisions_events.0023.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = heir_friend_failed
}
desc = mpo_decisions_events.0023.desc_fail
}
desc = mpo_decisions_events.0023.desc
}
triggered_desc = {
trigger = {
exists = scope:accidental_friend
}
desc = mpo_decisions_events.0023.desc_accidental_friend
}
}
theme = nomads
#TODO_CD_MPO how about a new positive music sting?
override_background = {
reference = relaxing_room
}
left_portrait = {
character = scope:heir
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_failed
}
}
animation = personality_content
}
triggered_animation = {
trigger = {
root = {
OR = {
has_character_flag = heir_friend_lifestyle_trait
has_character_flag = heir_friend_sports
}
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_hunter
AND = {
scope:friendship_target = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
}
}
}
}
animation = hunting_shortbow_aim_arrow_default
}
triggered_animation = {
trigger = {
root = {
OR = {
has_character_flag = heir_friend_lifestyle_trait
has_character_flag = heir_friend_sports
}
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_blademaster
AND = {
scope:friendship_target = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
}
}
}
}
animation = sword_coup_degrace
}
triggered_animation = {
trigger = {
root = {
OR = {
has_character_flag = heir_friend_lifestyle_trait
has_character_flag = heir_friend_sports
}
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_traveler
AND = {
scope:friendship_target = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
}
scope:heir = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
}
}
}
}
animation = laugh
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_lifestyle_trait
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_physician
scope:lifestyle_trait = trait:lifestyle_herbalist
}
}
animation = physician
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_lifestyle_trait
NOT = {
has_character_flag = heir_friend_failed
}
}
OR = {
scope:lifestyle_trait = trait:lifestyle_reveler
scope:lifestyle_trait = trait:drunkard
}
}
animation = wedding_drunk
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_lifestyle_trait
NOT = {
has_character_flag = heir_friend_failed
}
}
scope:lifestyle_trait = trait:hashishiyah
}
animation = manic
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_lifestyle_trait
NOT = {
has_character_flag = heir_friend_failed
}
}
scope:lifestyle_trait = trait:lifestyle_gardener
}
animation = holding_staff
}
triggered_animation = {
trigger = {
root = {
has_character_flag = heir_friend_personal_charm
NOT = {
has_character_flag = heir_friend_failed
}
}
}
animation = laugh
}
triggered_animation = {
trigger = {
root = {
NOR = {
has_character_flag = heir_friend_lifestyle_trait
has_character_flag = heir_friend_failed
}
}
}
animation = storyteller
}
}
right_portrait = {
character = scope:friendship_target
triggered_animation ={
trigger = {
root = {
has_character_flag = heir_friend_failed
}
}
animation = interested
}
triggered_animation ={
trigger = {
root = {
NOT = { has_character_flag = heir_friend_failed }
}
}
animation = happiness
}
}
lower_right_portrait = scope:accidental_friend
immediate = {
if = {
limit = {
has_character_flag = heir_friend_failed
}
#Random positive outcome
custom_tooltip = heir_friend_will_not_become_friends_tt
mpo_decisions_events_friend_fail_effect = yes
}
else = {
play_music_cue = mx_cue_positive_effect
scope:friendship_target = {
#Random chance of AI
random_list = {
2 = {
trigger = {
is_ai = yes
is_vassal_of = root
}
modifier = {
opinion = {
target = root
value = 100
}
factor = 2
}
modifier = {
OR = {
has_relation_best_friend = root
has_relation_soulmate = root
has_relation_blood_brother = root
}
factor = 2
}
modifier = {
obedience_target = root
factor = 2
}
add_opinion = {
modifier = obedience_opinion
target = root
}
}
1 = {
trigger = {
is_ai = yes
is_allied_to = root
}
modifier = {
opinion = {
target = root
value = 100
}
factor = 2
}
modifier = {
OR = {
has_relation_best_friend = root
has_relation_soulmate = root
has_relation_blood_brother = root
}
factor = 2
}
set_relation_blood_brother = {
target = scope:heir
reason = blood_brother_introduced_heir
}
}
2 = {}
}
if = {
limit = {
has_character_flag = player_heir_friend_blood_brother
}
set_relation_blood_brother = {
target = scope:heir
reason = blood_brother_introduced_heir
}
}
else_if = {
limit = {
has_character_flag = player_heir_friend_obedient
}
set_relation_friend = {
target = scope:heir
reason = friend_introduced_heir
}
add_opinion = {
modifier = obedience_opinion
target = root
}
}
if = {
limit = {
NOT = {
has_relation_blood_brother = scope:heir
}
}
set_relation_friend = {
target = scope:heir
reason = friend_introduced_heir
}
}
}
switch = {
trigger = has_character_flag
heir_friend_personal_charm = {
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
}
heir_friend_lifestyle_trait = {
mpo_heir_lifestyle_xp_gain_effect = yes
}
heir_friend_sports = {
mpo_heir_hastiluder_xp_gain_effect = yes
}
heir_friend_shared_traits = {
scope:heir = {
add_stress = minor_stress_impact_loss
add_prestige = minor_prestige_gain
}
}
heir_friend_kinship = {
scope:heir = {
add_piety = minor_piety_gain
}
}
heir_friend_gift = {
pay_short_term_gold = {
target = scope:friendship_target
gold = medium_gold_value
}
pay_short_term_gold = {
target = scope:heir
gold = minor_gold_value
}
}
}
}
}
option = {
name = {
trigger = {
NOT = {
has_character_flag = heir_friend_failed
}
}
text = mpo_decisions_events.0023.a
}
name = {
trigger = {
has_character_flag = heir_friend_failed
}
text = mpo_decisions_events.0023.a_fail
}
}
after = {
remove_character_flag = heir_friend_failed
remove_character_flag = heir_friend_personal_charm
remove_character_flag = heir_friend_sports
remove_character_flag = heir_friend_gift
remove_character_flag = heir_friend_kinship
remove_character_flag = heir_friend_shared_traits
remove_character_flag = heir_friend_lifestyle_trait
remove_character_flag = player_heir_friend_blood_brother
remove_character_flag = player_heir_friend_obedient
}
}
mpo_decisions_events.0098 = {
hidden = yes
immediate = {
send_interface_toast = {
title = abused_paiza_authority
left_icon = root
right_icon = situation:the_great_steppe.situation_top_herd
switch = {
trigger = var:paiza_abuse_stance
flag:indifferent = { custom_tooltip = mpo_paiza_abuse_counter_effect.indifferent }
flag:angry = { custom_tooltip = mpo_paiza_abuse_counter_effect.khan_reaction_angry }
flag:annoyed = { custom_tooltip = mpo_paiza_abuse_counter_effect.khan_reaction_annoyed }
}
}
}
}
mpo_decisions_events.0099 = {
type = character_event
title = mpo_decisions_events.0099.t
desc = mpo_decisions_events.0099.desc
theme = vassal
override_background = { reference = mpo_tent_interior_mongol }
left_portrait = {
character = root
animation = personality_rational
}
artifact = {
target = scope:created_paiza
position = lower_right_portrait
}
immediate = {
mpo_create_paiza_artifact_effect = {
PATRON = root
GRANTEE = root
}
}
option = {
name = mpo_decisions_events.0099.a
custom_tooltip = mpo_establish_paiza_system_decision.grant_paiza_interaction_unlocked
custom_tooltip = mpo_establish_paiza_system_decision.request_paiza_interaction_unlocked
custom_tooltip = mpo_establish_paiza_system_decision.paiza_obedient
custom_tooltip = mpo_establish_paiza_system_decision.call_for_merchants_decision_unlocked
custom_tooltip = mpo_establish_paiza_system_decision.leverage_khan_authority_unlocked
custom_tooltip = mpo_establish_paiza_system_decision.paiza_abuse_authority_unlocked
}
}
#scripted effect to make the merchant go
scripted_effect send_merchant_on_merry_voyage_effect = {
set_variable = {
name = merchant_employer
value = prev
}
set_variable = {
name = merchant_origin
value = scope:merchant_origin
}
start_travel_plan = {
destination = scope:merchant_origin.title_province
return_trip = yes
on_arrival_event = mpo_decisions_events.0102
on_arrival_destinations = last
}
}
scripted_effect send_merchant_on_first_voyage_effect = {
set_variable = merchant_var
set_variable = {
name = merchant_employer
value = prev
}
set_variable = {
name = merchant_origin
value = scope:merchant_origin
}
start_travel_plan = {
destination = var:merchant_employer.location
on_arrival_event = mpo_decisions_events.2140
on_arrival_destinations = first
return_trip = no
}
root = {
prev = {
save_scope_as = merchant
}
send_interface_toast = {
type = event_toast_effect_good
title = paiza_merchant_on_route_tt
left_icon = scope:merchant_origin
right_icon = scope:merchant
custom_tooltip = paiza_merchant_on_route_tt_desc
}
}
}
mpo_decisions_events.2139 = {
hidden = yes
immediate = {
mpo_find_suitable_merchant_effect = yes
scope:paiza_merchant = {
random_list = {
1 = {
add_trait = avaricious
add_stewardship_skill = 6
add_learning_skill = 4
add_intrigue_skill = 2
add_prowess_skill = 4
add_diplomacy_skill = 2
}
1 = {
add_trait = diplomat
add_stewardship_skill = 4
add_learning_skill = 5
add_intrigue_skill = 8
add_prowess_skill = 8
add_diplomacy_skill = 6
}
1 = {
add_trait = scholar
add_stewardship_skill = 4
add_learning_skill = 5
add_intrigue_skill = 8
add_prowess_skill = 8
add_diplomacy_skill = 4
}
}
add_trait = lifestyle_traveler
add_gold = {
value = root.tiny_gold_value
multiply = 21.37
}
send_merchant_on_first_voyage_effect = yes
}
}
}
mpo_decisions_events.2140 = {
hidden = yes
immediate = {
remove_variable = merchant_var # Used only to send the death notification message
save_scope_as = paiza_merchant
var:merchant_origin = {
save_scope_as = merchant_origin
}
#teleport in case merchant_employer has migrated or something
var:merchant_employer = {
if = {
limit = {
is_alive = yes
}
if = {
limit = {
NOT = {
root.location = location
}
}
root = {
set_location = { location = var:merchant_employer.location }
}
}
if = {
limit = {
has_character_flag = established_paiza_system
}
trigger_event = mpo_decisions_events.0100
}
else = {
trigger_event = mpo_decisions_events.2141
}
}
}
}
}
mpo_decisions_events.2138 = {
type = character_event
theme = nomads
title = mpo_decisions_events.2138.t
desc = mpo_decisions_events.2138.desc
override_background = { reference = mpo_camp_steppe }
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:paiza_merchant
animation = personality_greedy
}
immediate = {
add_character_flag = {
flag = had_herd_trade
days = 7
}
domicile ?= {
switch = {
trigger = has_domicile_parameter
nomad_yurt_paiza_herd_gain_lvl_1 = {
root = {
set_variable = {
name = herd_trade_herd_value
value = {
value = domicile.herd
multiply = 0.1
}
}
set_variable = {
name = herd_trade_gold_value
value = {
value = root.var:herd_trade_herd_value
divide = 10
}
}
}
}
nomad_yurt_paiza_herd_gain_lvl_2 = {
root = {
set_variable = {
name = herd_trade_herd_value
value = {
value = domicile.herd
multiply = 0.15
}
}
set_variable = {
name = herd_trade_gold_value
value = {
value = root.var:herd_trade_herd_value
divide = 8
}
}
}
}
nomad_yurt_paiza_herd_gain_lvl_3 = {
root = {
set_variable = {
name = herd_trade_herd_value
value = {
value = domicile.herd
multiply = 0.2
}
}
set_variable = {
name = herd_trade_gold_value
value = {
value = root.var:herd_trade_herd_value
divide = 6
}
}
}
}
}
}
}
option = {
name = mpo_decisions_events.2138.a
domicile ?= {
switch = {
trigger = has_domicile_parameter
nomad_yurt_paiza_herd_gain_lvl_1 = { root = { custom_tooltip = domicile_building_parameter_nomad_merchant_herd_gold_exchange_lvl_1 } }
nomad_yurt_paiza_herd_gain_lvl_2 = { root = { custom_tooltip = domicile_building_parameter_nomad_merchant_herd_gold_exchange_lvl_2 } }
nomad_yurt_paiza_herd_gain_lvl_3 = { root = { custom_tooltip = domicile_building_parameter_nomad_merchant_herd_gold_exchange_lvl_3 } }
}
}
hidden_effect = {
scope:paiza_merchant = {
add_gold = root.var:herd_trade_gold_value
}
}
scope:paiza_merchant = {
pay_short_term_gold = {
target = root
gold = root.var:herd_trade_gold_value
}
}
domicile ?= {
change_herd = {
value = root.var:herd_trade_herd_value
multiply = -1
}
}
}
option = {
name = mpo_decisions_events.2138.c
custom_tooltip = mpo_decisions_events.2138.c.desc
}
after = {
if = {
limit = {
has_character_flag = smol_herd_trade
}
trigger_event = mpo_decisions_events.2141
remove_character_flag = smol_herd_trade
}
else = {
trigger_event = mpo_decisions_events.0100
}
remove_variable = herd_trade_herd_value
remove_variable = herd_trade_gold_value
}
}
mpo_decisions_events.2141 = { #mpo_call_for_merchants_smol_decision initial event
type = character_event
theme = nomads
title = mpo_decisions_events.2141.t
desc = mpo_decisions_events.2141.desc
override_background = { reference = mpo_campfire_steppe }
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:paiza_merchant
animation = throne_room_bow_3
}
trigger = {
is_available_adult = yes
scope:paiza_merchant.location = root.location
}
on_trigger_fail = {
scope:paiza_merchant = {
set_location = { location = root.location }
}
trigger_event = {
id = mpo_decisions_events.2141
months = { 2 4 }
}
}
option = { #ask for an artifact material
name = mpo_decisions_events.2141.b
pay_short_term_gold = {
target = scope:paiza_merchant
gold = 400
}
scope:paiza_merchant = {
set_variable = {
name = requested_merchant_goods
value = flag:artifact_material
}
set_variable = {
name = paiza_gold_invested
value = 400
}
send_merchant_on_merry_voyage_effect = yes
}
custom_tooltip = mpo_decisions_events.2141.upon_merchant_return
show_as_tooltip = {
add_character_modifier = {
modifier = mpo_artifact_material_modifier
}
mpo_yurts_paiza_bonuses_tooltip_effect = yes
}
ai_chance = {
base = 0
}
}
option = { #ask for better armor for ur maa
name = mpo_decisions_events.2141.c
show_as_unavailable = {
gold <= 800
}
pay_short_term_gold = {
target = scope:paiza_merchant
gold = 800
}
scope:paiza_merchant = {
set_variable = {
name = requested_merchant_goods
value = flag:armaments
}
set_variable = {
name = paiza_gold_invested
value = 800
}
send_merchant_on_merry_voyage_effect = yes
}
custom_tooltip = mpo_decisions_events.2141.upon_merchant_return
show_as_tooltip = {
mpo_paiza_improve_maa_smol_effect = yes
mpo_yurts_paiza_bonuses_tooltip_effect = yes
}
ai_chance = { #most safe option for ai
base = 100
}
}
option = {
name = mpo_decisions_events.2141.d
custom_tooltip = mpo_decisions_events.2141.d.unlocked
trigger = {
NOT = {
has_character_flag = had_herd_trade
}
domicile ?= {
has_domicile_building_or_higher = herd_trade_yurt_01
}
}
add_character_flag = smol_herd_trade
trigger_event = mpo_decisions_events.2138
ai_chance = {
base = 200
}
}
option = { #actually, give me your gold and get lost
name = mpo_decisions_events.0100.e
scope:paiza_merchant = {
pay_short_term_gold = {
target = root
gold = scope:paiza_merchant.gold
}
death = {
killer = root
death_reason = death_execution
}
}
add_character_modifier = {
modifier = mpo_paiza_robbed_merchants
years = { 18 22 }
}
custom_tooltip = mpo_decisions_events.0100.e.warning
ai_chance = {
base = 50
}
}
}
mpo_decisions_events.0100 = { #mpo_call_for_merchants_decision initial event
type = character_event
theme = nomads
title = mpo_decisions_events.0100.t
desc = mpo_decisions_events.0100.desc
override_background = { reference = mpo_campfire_steppe }
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:paiza_merchant
animation = throne_room_bow_3
}
trigger = {
is_available_adult = yes
scope:paiza_merchant.location = root.location
}
on_trigger_fail = {
scope:paiza_merchant = {
set_location = { location = root.location }
}
trigger_event = {
id = mpo_decisions_events.0100
months = { 2 4 }
}
}
option = { #give him paiza, ask for innovation progress
name = mpo_decisions_events.0100.a
show_as_unavailable = {
NOT = {
domicile ?= {
has_domicile_building_or_higher = innovation_yurt_01
}
}
gold <= 2400
}
mpo_create_paiza_artifact_effect = {
PATRON = root
GRANTEE = scope:paiza_merchant
}
pay_short_term_gold = {
target = scope:paiza_merchant
gold = 2400
}
scope:paiza_merchant = {
set_variable = {
name = paiza_gold_invested
value = 2400
}
set_variable = {
name = requested_merchant_goods
value = flag:innovation
}
send_merchant_on_merry_voyage_effect = yes
}
custom_tooltip = mpo_decisions_events.0100.upon_merchant_return
show_as_tooltip = {
domicile ?= {
mpo_paiza_innovation_reward_effect = yes
}
custom_tooltip = paiza_merchant_skill_gold_percent
mpo_yurts_paiza_bonuses_tooltip_effect = yes
}
ai_chance = {
base = 0
}
}
option = { #give him paiza, ask for an artifact material
name = mpo_decisions_events.0100.b
mpo_create_paiza_artifact_effect = {
PATRON = root
GRANTEE = scope:paiza_merchant
}
pay_short_term_gold = {
target = scope:paiza_merchant
gold = 800
}
scope:paiza_merchant = {
set_variable = {
name = requested_merchant_goods
value = flag:artifact_material
}
set_variable = {
name = paiza_gold_invested
value = 800
}
send_merchant_on_merry_voyage_effect = yes
}
custom_tooltip = mpo_decisions_events.0100.upon_merchant_return
show_as_tooltip = {
add_character_modifier = {
modifier = mpo_artifact_material_modifier
}
custom_tooltip = paiza_merchant_skill_gold_percent
mpo_yurts_paiza_bonuses_tooltip_effect = yes
}
ai_chance = {
base = 0
}
}
option = { #ask for better armor for ur maa
name = mpo_decisions_events.0100.c
show_as_unavailable = {
gold <= 1600
}
mpo_create_paiza_artifact_effect = {
PATRON = root
GRANTEE = scope:paiza_merchant
}
pay_short_term_gold = {
target = scope:paiza_merchant
gold = 1600
}
scope:paiza_merchant = {
set_variable = {
name = requested_merchant_goods
value = flag:armaments
}
set_variable = {
name = paiza_gold_invested
value = 1600
}
send_merchant_on_merry_voyage_effect = yes
}
custom_tooltip = mpo_decisions_events.0100.upon_merchant_return
show_as_tooltip = {
mpo_paiza_improve_maa_effect = yes
custom_tooltip = paiza_merchant_skill_gold_percent
mpo_yurts_paiza_bonuses_tooltip_effect = yes
}
ai_chance = { #most safe option for ai
base = 100
}
}
option = {
name = mpo_decisions_events.0100.d
custom_tooltip = mpo_decisions_events.0100.d.unlocked
trigger = {
NOT = {
has_character_flag = had_herd_trade
}
domicile ?= {
has_domicile_building_or_higher = herd_trade_yurt_01
}
}
trigger_event = mpo_decisions_events.2138
ai_chance = {
base = 200
}
}
option = { #actually, give me your gold and get lost
name = mpo_decisions_events.0100.e
scope:paiza_merchant = {
pay_short_term_gold = {
target = root
gold = scope:paiza_merchant.gold
}
death = {
killer = root
death_reason = death_execution
}
}
add_character_modifier = {
modifier = mpo_paiza_robbed_merchants
years = { 12 16 }
}
custom_tooltip = mpo_decisions_events.0100.e.warning
ai_chance = {
base = 50
}
}
}
mpo_decisions_events.0101 = { #the merchant is back
type = character_event
theme = nomads
title = mpo_decisions_events.0101.t
desc = mpo_decisions_events.0101.desc
override_background = { reference = mpo_campfire_steppe }
left_portrait = {
character = root
animation = ecstasy
}
right_portrait = {
character = scope:paiza_merchant
animation = drink
}
trigger = {
is_available_adult = yes
scope:paiza_merchant.location = root.location
}
on_trigger_fail = {
scope:paiza_merchant = {
set_location = { location = root.location }
}
trigger_event = {
id = mpo_decisions_events.0101
months = { 2 4 }
}
}
immediate = {
mpo_paiza_deal_grade_effect = yes
mpo_yurts_paiza_bonuses_effect = yes
}
option = { #rejoice!
name = mpo_decisions_events.0101.a
ai_chance = {
base = 10
}
}
option = {
name = mpo_decisions_events.0101.b
custom_tooltip = mpo_decisions_events.0101.b.desc
trigger_event = mpo_decisions_events.2137
ai_chance = {
base = 0
}
}
after = {
switch = {
trigger = scope:merchant_goods
flag:artifact_material = {
add_character_modifier = {
modifier = mpo_artifact_material_modifier
years = 4
}
}
flag:innovation = {
domicile ?= {
mpo_paiza_innovation_reward_effect = yes
}
}
flag:armaments = {
if = {
limit = {
scope:paiza_merchant = {
has_character_flag = established_paiza_system
}
}
mpo_paiza_improve_maa_smol_effect = yes
}
else = {
mpo_paiza_improve_maa_effect = yes
}
}
}
scope:paiza_merchant = {
hidden_effect = {
add_gold = root.var:trade_gold_value
}
pay_short_term_gold = {
target = root
gold = root.var:trade_gold_value
}
}
}
}
mpo_decisions_events.2137 = {
type = character_event
theme = nomads
title = mpo_decisions_events.0101.t
desc = {
desc = mpo_decisions_events.2137.desc_intro
first_valid = {
triggered_desc = {
trigger = { scope:first_story = flag:desc_1 }
desc = marco_polo_quote_desc_1
}
triggered_desc = {
trigger = { scope:first_story = flag:desc_2 }
desc = marco_polo_quote_desc_2
}
triggered_desc = {
trigger = { scope:first_story = flag:desc_3 }
desc = marco_polo_quote_desc_3
}
triggered_desc = {
trigger = { scope:first_story = flag:desc_4 }
desc = marco_polo_quote_desc_4
}
triggered_desc = {
trigger = { scope:first_story = flag:desc_5 }
desc = marco_polo_quote_desc_5
}
triggered_desc = {
trigger = { scope:first_story = flag:desc_6 }
desc = marco_polo_quote_desc_6
}
triggered_desc = {
trigger = { scope:first_story = flag:desc_7 }
desc = marco_polo_quote_desc_7
}
}
desc = mpo_decisions_events.2137.desc_interludium
first_valid = {
triggered_desc = {
trigger = { scope:second_story = flag:desc_1 }
desc = marco_polo_quote_desc_1
}
triggered_desc = {
trigger = { scope:second_story = flag:desc_2 }
desc = marco_polo_quote_desc_2
}
triggered_desc = {
trigger = { scope:second_story = flag:desc_3 }
desc = marco_polo_quote_desc_3
}
triggered_desc = {
trigger = { scope:second_story = flag:desc_4 }
desc = marco_polo_quote_desc_4
}
triggered_desc = {
trigger = { scope:second_story = flag:desc_5 }
desc = marco_polo_quote_desc_5
}
triggered_desc = {
trigger = { scope:second_story = flag:desc_6 }
desc = marco_polo_quote_desc_6
}
triggered_desc = {
trigger = { scope:second_story = flag:desc_7 }
desc = marco_polo_quote_desc_7
}
}
}
override_background = { reference = mpo_campfire_steppe }
left_portrait = {
character = root
animation = disbelief
}
right_portrait = {
character = scope:paiza_merchant
animation = admiration
}
immediate = {
random_list = { #since the event can happen twice, we are rolling for the first and second paragraph in such way to make sure player sees unique content
1 = {
trigger = { NOT = { scope:first_story ?= flag:desc_1 scope:first_story ?= flag:desc_1 } }
save_scope_value_as = {
name = first_story
value = flag:desc_1
}
}
1 = {
trigger = { NOT = { scope:first_story ?= flag:desc_2 scope:first_story ?= flag:desc_2 } }
save_scope_value_as = {
name = first_story
value = flag:desc_2
}
}
1 = {
trigger = { NOT = { scope:first_story ?= flag:desc_3 scope:first_story ?= flag:desc_3 } culture = culture:mongol }
save_scope_value_as = {
name = first_story
value = flag:desc_3
}
}
1 = {
trigger = { NOT = { scope:first_story ?= flag:desc_4 scope:first_story ?= flag:desc_4 } }
save_scope_value_as = {
name = first_story
value = flag:desc_4
}
}
1 = {
trigger = { NOT = { scope:first_story ?= flag:desc_5 scope:first_story ?= flag:desc_5 } }
save_scope_value_as = {
name = first_story
value = flag:desc_5
}
}
1 = {
trigger = { NOT = { scope:first_story ?= flag:desc_6 scope:first_story ?= flag:desc_6 } }
save_scope_value_as = {
name = first_story
value = flag:desc_6
}
}
1 = {
trigger = { NOT = { scope:first_story ?= flag:desc_7 scope:first_story ?= flag:desc_7 } }
save_scope_value_as = {
name = first_story
value = flag:desc_7
}
}
}
random_list= {
1 = {
trigger = { NOT = { scope:second_story ?= flag:desc_1 scope:second_story ?= flag:desc_1 } }
save_scope_value_as = {
name = second_story
value = flag:desc_1
}
}
1 = {
trigger = { NOT = { scope:second_story ?= flag:desc_2 scope:second_story ?= flag:desc_2 } }
save_scope_value_as = {
name = second_story
value = flag:desc_2
}
}
1 = {
trigger = { NOT = { scope:second_story ?= flag:desc_3 scope:second_story ?= flag:desc_3 } culture = culture:mongol }
save_scope_value_as = {
name = second_story
value = flag:desc_3
}
}
1 = {
trigger = { NOT = { scope:second_story ?= flag:desc_4 scope:second_story ?= flag:desc_4 } }
save_scope_value_as = {
name = second_story
value = flag:desc_4
}
}
1 = {
trigger = { NOT = { scope:second_story ?= flag:desc_5 scope:second_story ?= flag:desc_5 } }
save_scope_value_as = {
name = second_story
value = flag:desc_5
}
}
1 = {
trigger = { NOT = { scope:second_story ?= flag:desc_6 scope:second_story ?= flag:desc_6 } }
save_scope_value_as = {
name = second_story
value = flag:desc_6
}
}
1 = {
trigger = { NOT = { scope:second_story ?= flag:desc_7 scope:second_story ?= flag:desc_7 } }
save_scope_value_as = {
name = second_story
value = flag:desc_7
}
}
}
}
option = {
name = mpo_decisions_events.2137.a
}
option = {
name = mpo_decisions_events.2137.b
trigger_event = mpo_decisions_events.2137
}
option = {
name = mpo_decisions_events.2137.c
add_courtier = scope:paiza_merchant
}
}
mpo_decisions_events.0102 = {
hidden = yes
immediate = {
save_scope_as = paiza_merchant
var:merchant_origin = {
save_scope_as = merchant_origin
}
var:requested_merchant_goods = {
save_scope_as = merchant_goods
}
var:merchant_employer = {
if = {
limit = {
is_alive = yes
}
if = {
limit = {
NOT = {
root.location = location
}
}
root = {
set_location = { location = var:merchant_employer.location }
}
}
trigger_event = mpo_decisions_events.0101
}
}
}
}
mpo_decisions_events.0110 = { #mpo_abuse_authority_paiza_decision initial event
type = character_event
theme = nomads
title = mpo_decisions_events.0110.t
desc = mpo_decisions_events.0110.desc
override_background = { reference = mpo_campfire_steppe }
left_portrait = {
character = root
animation = personality_bold
}
right_portrait = {
character = scope:local_boi
animation = beg
}
lower_center_portrait = {
character = scope:paiza_patron
}
artifact = {
target = scope:paiza_artifact
position = lower_right_portrait
}
immediate = {
random_character_artifact = {
limit = {
root = { can_benefit_from_artifact = prev }
exists = var:paiza_patron
var:paiza_patron = {
is_alive = yes
is_gurkhan = yes
}
}
save_scope_as = paiza_artifact
var:paiza_patron ?= {
save_scope_as = paiza_patron
}
}
location.duchy = {
random_de_jure_county = {
limit = {
holder = {
is_ai = yes
}
}
weight = {
base = 1
modifier = {
add = holder.primary_title.tier
}
}
holder = {
save_scope_as = local_boi
}
}
}
}
option = { #yeah, go for it
name = mpo_decisions_events.0110.a
mpo_paiza_abuse_counter_effect = {
PAIZA_PATRON = scope:paiza_patron
PAIZA_ABUSER = root
}
mpo_abuse_authority_county_effect = yes
}
option = { #try to be sneaky about it
name = mpo_decisions_events.0110.b
duel = {
skill = intrigue
value = very_high_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 5
mpo_abuse_authority_county_effect = yes
send_interface_toast = {
type = event_toast_effect_good
title = mpo_decisions_events.0110.b.success
custom_tooltip = mpo_decisions_events.0110.b.success_desc
left_icon = root
right_icon = scope:paiza_patron
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
min = 10
send_interface_toast = {
type = event_toast_effect_bad
title = mpo_decisions_events.0110.b.failure
left_icon = root
right_icon = scope:paiza_patron
mpo_paiza_abuse_counter_effect = {
PAIZA_PATRON = scope:paiza_patron
PAIZA_ABUSER = root
}
}
}
}
}
option = {
name = mpo_decisions_events.0110.d
add_prestige = -200
}
}
mpo_decisions_events.0111 = { #mpo_abuse_authority_paiza_decision consequences
type = character_event
theme = nomads
title = mpo_decisions_events.0111.t
desc = mpo_decisions_events.0111.desc
override_background = { reference = mpo_campfire_steppe }
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = scope:paiza_patron
animation = anger
}
artifact = {
target = scope:paiza_artifact
position = lower_right_portrait
}
immediate = {
liege = { save_scope_as = paiza_patron }
add_character_flag = no_more_paiza_abuse
random_equipped_character_artifact = {
limit = {
root = { can_benefit_from_artifact = prev }
exists = var:paiza_patron
var:paiza_patron = {
is_alive = yes
is_gurkhan = yes
}
}
save_scope_as = paiza_artifact
var:paiza_patron ?= {
save_scope_as = paiza_patron
}
}
}
option = { #whoooops
name = mpo_decisions_events.0111.a
#what do you mean my actions have consequences
custom_tooltip = mpo_decisions_events.0111.a.effects
scope:paiza_patron = {
add_opinion = {
target = root
modifier = abused_paiza_authority
}
}
}
option = { #its a prank bro
trigger = {
scope:paiza_patron = {
is_ai = yes
}
}
name = mpo_decisions_events.0111.b
add_prestige_level = -1
duel = {
skill = diplomacy
target = scope:paiza_patron
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 5
custom_tooltip = mpo_decisions_events.0111.a.survived_khans_wrath
scope:paiza_patron = {
add_opinion = {
target = root
modifier = angry_opinion
opinion = -30
}
}
}
70 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
min = 10
custom_tooltip = mpo_decisions_events.0111.a.severe_effects
scope:paiza_patron = {
add_opinion = {
target = root
modifier = gravely_abused_paiza_authority
}
}
every_close_family_member = {
limit = {
is_ai = yes
}
scope:paiza_patron = {
add_opinion = {
target = prev
modifier = abused_paiza_authority_family
}
}
}
}
}
}
}
mpo_decisions_events.0112 = { #mpo_abuse_authority_paiza_decision consequences decision for a player
type = character_event
theme = nomads
override_background = { reference = mpo_campfire_steppe }
title = mpo_decisions_events.0112.t
desc = mpo_decisions_events.0112.desc
left_portrait = {
character = scope:paiza_abuser_1
animation = personality_coward
}
right_portrait = {
character = scope:paiza_abuser
animation = fear
}
artifact = {
target = scope:paiza_artifact
position = lower_right_portrait
}
trigger = {
NOT = {
has_character_flag = refused_paiza_abuse_notifications
}
scope:paiza_abuser = {
any_dynasty_member = {
location = scope:paiza_abuser
is_ai = yes
is_adult = yes
}
}
}
immediate = {
scope:paiza_abuser = {
random_dynasty_member = {
limit = {
location = scope:paiza_abuser
is_ai = yes
is_adult = yes
}
save_scope_as = paiza_abuser_1
}
random_equipped_character_artifact = {
limit = {
root = { can_benefit_from_artifact = prev }
exists = var:paiza_patron
var:paiza_patron = {
is_alive = yes
is_gurkhan = yes
}
}
save_scope_as = paiza_artifact
var:paiza_patron ?= {
save_scope_as = paiza_patron
}
}
}
}
option = { #take action
name = mpo_decisions_events.0112.a
custom_tooltip = mpo_decisions_events.0112.a.desc
reverse_add_opinion = {
target = scope:paiza_abuser
modifier = gravely_abused_paiza_authority
}
reverse_add_opinion = {
target = scope:paiza_abuser_1
modifier = gravely_abused_paiza_authority
}
}
option = { #not for now
name = mpo_decisions_events.0112.b
scope:paiza_abuser = {
send_interface_toast = {
type = event_toast_effect_good
title = mpo_paiza_abuse_counter_effect.indifferent
left_icon = root
}
}
scope:paiza_abuser_1 = {
send_interface_toast = {
type = event_toast_effect_good
title = mpo_paiza_abuse_counter_effect.indifferent
left_icon = root
}
}
}
option = { #do not notify me ever again (ever for like, 10 years)
name = mpo_decisions_events.0112.c
add_character_flag = {
flag = refused_paiza_abuse_notifications
years = 10
}
}
}
scripted_effect localize_study_commander_success_chance_change = {
if = {
limit = {
$VALUE$ >= 25
}
custom_tooltip = study_commander_trait_current_success_chance_increase_monumental
}
else_if = {
limit = {
$VALUE$ >= 15
}
custom_tooltip = study_commander_trait_current_success_chance_increase_great
}
else_if = {
limit = {
$VALUE$ >= 1
}
custom_tooltip = study_commander_trait_current_success_chance_increase
}
else_if = {
limit = {
$VALUE$ = 0
}
custom_tooltip = study_commander_trait_current_success_chance_none
}
else_if = {
limit = {
$VALUE$ >= -15
}
custom_tooltip = study_commander_trait_current_success_chance_decrease
}
else = {
custom_tooltip = study_commander_trait_current_success_chance_decrease_great
}
if = {
limit = {
NOT = { has_variable = study_commander_trait_success_chance_var }
}
set_variable = {
name = study_commander_trait_success_chance_var
value = 0
}
}
change_variable = {
name = study_commander_trait_success_chance_var
add = $VALUE$
}
}
scripted_effect mentor_option_seed_effect = {
random_list = {
1 = { save_scope_value_as = { name = mentor_option_seed value = 1 } }
1 = { save_scope_value_as = { name = mentor_option_seed value = 2 } }
}
}
scripted_effect trait_weighting_effect = {
if = {
limit = {
can_weigh_trait_trigger = {
TRAIT = $WEIGHTED_TRAIT$
}
}
if = {
limit = {
NOT = { has_variable = $WEIGHTED_TRAIT$_weight }
}
set_variable = {
name = $WEIGHTED_TRAIT$_weight
value = 0
}
}
change_variable = {
name = $WEIGHTED_TRAIT$_weight
add = $WEIGHT$
}
every_trait = {
limit = {
this = trait:$WEIGHTED_TRAIT$
}
save_scope_as = weighted_trait
}
if = {
limit = {
$WEIGHT$ > 0
}
custom_tooltip = study_commander_trait_weight_tooltip_pos
}
else = {
custom_tooltip = study_commander_trait_weight_tooltip_neg
}
}
else = {
add_prestige = 10
}
}
scripted_effect trait_weighting_effect_mentor = {
if = {
limit = {
scope:commander_trait_mentor = { has_trait = $TRAIT$ }
}
trait_weighting_effect = {
WEIGHTED_TRAIT = $TRAIT$
WEIGHT = 10
}
}
}
scripted_trigger can_weigh_trait_trigger = {
trigger_if = {
limit = {
NOT = { has_trait = $TRAIT$ }
}
# Exceptions
trigger_if = {
limit = {
flag:$TRAIT$ = flag:reckless
}
NOT = { has_trait = cautious_leader }
}
trigger_else_if = {
limit = {
flag:$TRAIT$ = flag:cautious_leader
}
NOT = { has_trait = reckless }
}
trigger_else = {
always = yes
}
}
trigger_else = {
always = no
}
}
# Study Commander Trait Events
mpo_decisions_events.0200 = {
type = character_event
title = mpo_decisions_events.0200.t
desc = {
desc = mpo_decisions_events.0200.desc
first_valid = {
triggered_desc = {
trigger = {
has_variable = commander_trait_mentor
var:commander_trait_mentor = scope:commander_trait_mentor
}
desc = mpo_decisions_events.0200.desc_my_mentor
}
triggered_desc = {
trigger = {
scope:commander_trait_mentor = { has_variable = commander_trait_mentor }
}
desc = mpo_decisions_events.0200.desc_mentor
}
}
}
theme = nomads
left_portrait = {
character = root
animation = marshal
}
right_portrait = {
character = scope:commander_trait_mentor
animation = inspect_weapon
}
immediate = {
stress_impact = {
base = medium_stress_impact_gain
}
add_character_flag = is_learning_commander_trait
# Find a mentor
if = {
limit = {
OR = {
NOT = { has_variable = commander_trait_mentor }
AND = {
has_variable = commander_trait_mentor
var:commander_trait_mentor = { is_available_adult = no }
}
}
}
every_knight = {
limit = {
is_available_adult = yes
}
save_scope_as = possible_mentor
root = {
add_to_variable_list = {
name = possible_mentor_list
target = scope:possible_mentor
}
}
}
every_vassal_or_below = {
limit = {
is_available_adult = yes
}
save_scope_as = possible_mentor
root = {
add_to_variable_list = {
name = possible_mentor_list
target = scope:possible_mentor
}
}
}
every_councillor = {
limit = {
is_available_adult = yes
}
save_scope_as = possible_mentor
root = {
add_to_variable_list = {
name = possible_mentor_list
target = scope:possible_mentor
}
}
}
ordered_in_list = {
variable = possible_mentor_list
limit = {
martial > decent_skill_rating
}
order_by = {
add = martial
if = {
limit = {
number_of_commander_traits >= 1
}
add = 5
}
}
save_scope_as = commander_trait_mentor
}
if = {
limit = {
NOT = { exists = scope:commander_trait_mentor }
}
create_character = {
random_traits = yes
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = root_soldier_female_chance
random_traits_list = {
count = 1
education_martial_2 = {}
education_martial_3 = {}
education_martial_4 = {}
}
random_traits_list = {
count = 1
brave = {}
just = {}
gallant = {}
honest = {}
gregarious = {}
generous = {}
diligent = {}
wrathful = {}
}
prowess = {
min_template_decent_skill
min_template_decent_skill
}
martial = {
min_template_high_skill
max_template_high_skill
}
intrigue = {
min_template_decent_skill
max_template_medium_skill
}
learning = {
min_template_decent_skill
max_template_medium_skill
}
save_scope_as = commander_trait_mentor
after_creation = {
give_random_commander_trait_effect = yes
}
}
}
}
else = {
var:commander_trait_mentor = { save_scope_as = commander_trait_mentor }
}
if = {
limit = {
debug_only = yes
}
custom_tooltip = study_commander_trait_current_success_chance_debug
}
else = {
custom_tooltip = study_commander_trait_current_success_chance
}
set_variable = {
name = study_commander_trait_success_chance_var
value = 0
}
}
option = { #Study under mentor
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
has_variable = commander_trait_mentor
var:commander_trait_mentor = scope:commander_trait_mentor
}
desc = mpo_decisions_events.0200.my_mentor
}
desc = mpo_decisions_events.0200.mentor
}
}
}
trigger = {
short_term_gold >= scope:commander_trait_mentor.study_commander_trait_mentor_hire_cost
}
show_as_unavailable = { always = yes }
flavor = mpo_decisions_events.0200.mentor_flavor
save_scope_value_as = {
name = training_method
value = flag:mentor
}
pay_short_term_gold = {
target = scope:commander_trait_mentor
gold = scope:commander_trait_mentor.study_commander_trait_mentor_hire_cost
}
localize_study_commander_success_chance_change = {
VALUE = 25
}
set_variable = {
name = commander_trait_mentor
value = scope:commander_trait_mentor
}
scope:commander_trait_mentor = {
add_character_flag = commander_trait_mentor
}
if = {
limit = {
scope:commander_trait_mentor = { number_of_commander_traits >= 1 }
}
custom_tooltip = mpo_decisions_events.0200.mentor_traits
trait_weighting_effect_mentor = { TRAIT = logistician }
trait_weighting_effect_mentor = { TRAIT = military_engineer }
trait_weighting_effect_mentor = { TRAIT = aggressive_attacker }
trait_weighting_effect_mentor = { TRAIT = unyielding_defender }
trait_weighting_effect_mentor = { TRAIT = forder }
trait_weighting_effect_mentor = { TRAIT = flexible_leader }
trait_weighting_effect_mentor = { TRAIT = desert_warrior }
trait_weighting_effect_mentor = { TRAIT = jungle_stalker }
trait_weighting_effect_mentor = { TRAIT = reaver }
trait_weighting_effect_mentor = { TRAIT = reckless }
trait_weighting_effect_mentor = { TRAIT = holy_warrior }
trait_weighting_effect_mentor = { TRAIT = open_terrain_expert }
trait_weighting_effect_mentor = { TRAIT = rough_terrain_expert }
trait_weighting_effect_mentor = { TRAIT = forest_fighter }
trait_weighting_effect_mentor = { TRAIT = cautious_leader }
trait_weighting_effect_mentor = { TRAIT = organizer }
trait_weighting_effect_mentor = { TRAIT = winter_soldier }
}
stress_impact = {
greedy = medium_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 0.1
ai_energy = 1
}
modifier = {
scope:commander_trait_mentor.martial >= root.martial
factor = 1.25
}
modifier = {
has_trait = arrogant
factor = 0
}
}
}
option = { #Study on your own
name = mpo_decisions_events.0200.a
flavor = mpo_decisions_events.0200.alone
save_scope_value_as = {
name = training_method
value = flag:none
}
localize_study_commander_success_chance_change = {
VALUE = 0
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = 0.5
}
modifier = {
has_trait = craven
factor = 0.5
}
}
}
option = { #Study on your own - Martial
name = mpo_decisions_events.0200.martial
flavor = mpo_decisions_events.0200.martial_flavor
trigger = {
martial >= high_skill_rating
}
save_scope_value_as = {
name = training_method
value = flag:martial
}
if = {
limit = {
highest_skill = martial
}
localize_study_commander_success_chance_change = {
VALUE = 15
}
}
else = {
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_energy = 0.5
}
modifier = {
highest_skill = martial
factor = 1.5
}
}
}
option = { #Study on your own - Learning
name = mpo_decisions_events.0200.learning
flavor = mpo_decisions_events.0200.learning_flavor
trigger = {
learning >= high_skill_rating
}
show_as_unavailable = { learning >= low_skill_rating }
save_scope_value_as = {
name = training_method
value = flag:learning
}
if = {
limit = {
highest_skill = learning
}
localize_study_commander_success_chance_change = {
VALUE = 15
}
}
else = {
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_energy = 0.5
}
modifier = {
highest_skill = learning
factor = 1.5
}
}
}
option = { #Study on your own - Intrigue
name = mpo_decisions_events.0200.intrigue
flavor = mpo_decisions_events.0200.intrigue_flavor
trigger = {
intrigue >= high_skill_rating
}
show_as_unavailable = { intrigue >= low_skill_rating }
save_scope_value_as = {
name = training_method
value = flag:intrigue
}
if = {
limit = {
highest_skill = intrigue
}
localize_study_commander_success_chance_change = {
VALUE = 15
}
}
else = {
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_energy = 0.5
}
modifier = {
highest_skill = intrigue
factor = 1.5
}
}
}
after = {
if = {
limit = {
OR = {
has_trait = vengeful
has_trait = wrathful
has_trait = paranoid
has_trait = arbitrary
has_trait = zealous
has_trait = temperate
has_trait = gluttonous
has_trait = greedy
has_trait = diligent
has_trait = administrator
has_trait = architect
}
}
custom_tooltip = study_commander_trait_bonus
if = {
limit = {
OR = {
has_trait = vengeful
has_trait = wrathful
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = aggressive_attacker
WEIGHT = 10
}
}
if = {
limit = {
has_trait = paranoid
}
trait_weighting_effect = {
WEIGHTED_TRAIT = cautious_leader
WEIGHT = 10
}
}
if = {
limit = {
has_trait = arbitrary
}
trait_weighting_effect = {
WEIGHTED_TRAIT = reckless
WEIGHT = 10
}
}
if = {
limit = {
has_trait = zealous
}
trait_weighting_effect = {
WEIGHTED_TRAIT = holy_warrior
WEIGHT = 10
}
}
if = {
limit = {
has_trait = temperate
}
trait_weighting_effect = {
WEIGHTED_TRAIT = logistician
WEIGHT = 10
}
}
if = {
limit = {
has_trait = gluttonous
}
trait_weighting_effect = {
WEIGHTED_TRAIT = logistician
WEIGHT = -10
}
}
if = {
limit = {
has_trait = greedy
}
trait_weighting_effect = {
WEIGHTED_TRAIT = reaver
WEIGHT = 10
}
}
if = {
limit = {
OR = {
has_trait = diligent
has_trait = administrator
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = organizer
WEIGHT = 5
}
}
if = {
limit = {
has_trait = architect
}
trait_weighting_effect = {
WEIGHTED_TRAIT = military_engineer
WEIGHT = 10
}
}
}
if = {
limit = {
NOR = {
scope:commander_trait_mentor = { is_courtier_of = root }
scope:commander_trait_mentor = { is_councillor_of = root }
scope:commander_trait_mentor = { is_knight_of = root }
scope:training_method ?= flag:mentor
}
}
scope:commander_trait_mentor = {
silent_disappearance_effect = yes
}
}
trigger_event = {
id = mpo_decisions_events.0201
days = { 5 10 }
}
}
}
scripted_effect study_commander_trait_option_mentor = {
if = {
limit = {
$DUEL$ = yes
}
duel = {
skill = $SKILL$
target = scope:commander_trait_mentor
desc = study_commander_trait_option_mentor_desc
60 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = $SUCCESS_DESC$
send_interface_toast = {
type = event_toast_effect_good
title = $SUCCESS_DESC$
left_icon = root
right_icon = scope:commander_trait_mentor
if = {
limit = {
$WOUND_CHANCE$ = yes
}
random = {
chance = 10
scope:commander_trait_mentor = {
increase_wounds_effect = { REASON = fight }
}
}
}
random_list = {
50 = {
desc = study_commander_trait_option_success_ok
show_chance = no
localize_study_commander_success_chance_change = { VALUE = 10 }
}
50 = {
desc = study_commander_trait_option_success
show_chance = no
localize_study_commander_success_chance_change = { VALUE = 20 }
}
}
}
}
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = $FAIL_DESC$
send_interface_toast = {
type = event_toast_effect_bad
title = $FAIL_DESC$
left_icon = root
right_icon = scope:commander_trait_mentor
if = {
limit = {
$WOUND_CHANCE$ = yes
}
random = {
chance = 10
increase_wounds_effect = { REASON = fight }
}
}
random_list = {
50 = {
desc = study_commander_trait_option_fail_ok
localize_study_commander_success_chance_change = { VALUE = -10 }
}
50 = {
desc = study_commander_trait_option_fail
localize_study_commander_success_chance_change = { VALUE = -20 }
}
}
}
}
}
}
else = {
duel = {
skill = $SKILL$
value = decent_skill_rating
75 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = $SUCCESS_DESC$
send_interface_toast = {
type = event_toast_effect_good
title = $SUCCESS_DESC$
left_icon = root
right_icon = scope:commander_trait_mentor
if = {
limit = {
$WOUND_CHANCE$ = yes
}
random = {
chance = 10
scope:commander_trait_mentor = {
increase_wounds_effect = { REASON = fight }
}
}
}
random_list = {
50 = {
desc = study_commander_trait_option_success_ok
show_chance = no
localize_study_commander_success_chance_change = { VALUE = 10 }
}
50 = {
desc = study_commander_trait_option_success
show_chance = no
localize_study_commander_success_chance_change = { VALUE = 20 }
}
}
}
}
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = $FAIL_DESC$
send_interface_toast = {
type = event_toast_effect_bad
title = $FAIL_DESC$
left_icon = root
right_icon = scope:commander_trait_mentor
if = {
limit = {
$WOUND_CHANCE$ = yes
}
random = {
chance = 10
increase_wounds_effect = { REASON = fight }
}
}
random_list = {
50 = {
desc = study_commander_trait_option_fail_ok
localize_study_commander_success_chance_change = { VALUE = -10 }
}
50 = {
desc = study_commander_trait_option_fail
localize_study_commander_success_chance_change = { VALUE = -20 }
}
}
}
}
}
}
}
scripted_effect study_commander_trait_option_no_mentor = {
if = {
limit = {
$DUEL$ = yes
}
duel = {
skill = $SKILL$
value = high_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = $SUCCESS_DESC$
send_interface_toast = {
type = event_toast_effect_good
title = $SUCCESS_DESC$
left_icon = root
random_list = {
50 = {
desc = study_commander_trait_option_success_ok
show_chance = no
localize_study_commander_success_chance_change = { VALUE = 10 }
}
50 = {
desc = study_commander_trait_option_success
show_chance = no
localize_study_commander_success_chance_change = { VALUE = 20 }
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = $FAIL_DESC$
send_interface_toast = {
type = event_toast_effect_bad
title = $FAIL_DESC$
left_icon = root
if = {
limit = {
$WOUND_CHANCE$ = yes
}
random = {
chance = 10
increase_wounds_effect = { REASON = fight }
}
}
random_list = {
50 = {
desc = study_commander_trait_option_fail_ok
localize_study_commander_success_chance_change = { VALUE = -10 }
}
50 = {
desc = study_commander_trait_option_fail
localize_study_commander_success_chance_change = { VALUE = -20 }
}
}
}
}
}
}
else = {
random_list = {
50 = {
desc = $SUCCESS_DESC$
show_chance = no
localize_study_commander_success_chance_change = { VALUE = 10 }
}
50 = {
desc = $FAIL_DESC$
show_chance = no
localize_study_commander_success_chance_change = { VALUE = -10 }
}
}
}
}
mpo_decisions_events.0201 = { # Training Session 1
type = character_event
title = mpo_decisions_events.0201.t
desc = {
desc = mpo_decisions_events.0201.desc_intro
triggered_desc = {
trigger = {
scope:training_method = flag:mentor
}
desc = mpo_decisions_events.0201.desc_mentor
}
}
theme = nomads
left_portrait = {
character = root
animation = marshal
}
right_portrait = {
trigger = {
scope:training_method = flag:mentor
}
character = scope:commander_trait_mentor
animation = personality_honorable
}
immediate = {
stress_impact = {
base = medium_stress_impact_gain
}
if = {
limit = {
debug_only = yes
}
custom_tooltip = study_commander_trait_current_success_chance_debug
}
else = {
custom_tooltip = study_commander_trait_current_success_chance
}
if = {
limit = {
scope:training_method = flag:mentor
}
mentor_option_seed_effect = yes
}
}
option = { # Single Combat
name = mpo_decisions_events.0201.martial_1
trigger = {
OR = {
scope:training_method = flag:martial
scope:mentor_option_seed ?= 1
}
}
flavor = mpo_decisions_events.0201.martial_1_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0201.martial_1_mentor_success
FAIL_DESC = mpo_decisions_events.0201.martial_1_mentor_fail
WOUND_CHANCE = yes
}
}
else = {
custom_tooltip = mpo_decisions_events.0201.martial_1_tt
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0201.martial_1_success
FAIL_DESC = mpo_decisions_events.0201.martial_1_fail
WOUND_CHANCE = yes
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = aggressive_attacker
WEIGHT = 15
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = martial
}
modifier = {
factor = 0
has_trait = aggressive_attacker
}
}
}
option = { # Small-scale Battle
name = mpo_decisions_events.0201.martial_2
trigger = {
OR = {
scope:training_method = flag:martial
scope:mentor_option_seed ?= 2
}
}
flavor = mpo_decisions_events.0201.martial_2_flavor
custom_tooltip = mpo_decisions_events.0201.martial_2_tt
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0201.martial_2_success
FAIL_DESC = mpo_decisions_events.0201.martial_2_fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0201.martial_2_success
FAIL_DESC = mpo_decisions_events.0201.martial_2_fail
WOUND_CHANCE = no
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = unyielding_defender
WEIGHT = 15
}
save_scope_value_as = {
name = last_location_study_commander
value = flag:battlefield
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = martial
}
modifier = {
factor = 1.2
martial >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = unyielding_defender
}
}
}
option = { # Landscape
name = mpo_decisions_events.0201.learning_1
trigger = {
OR = {
scope:training_method = flag:learning
scope:mentor_option_seed ?= 1
}
}
flavor = mpo_decisions_events.0201.learning_1_flavor
custom_tooltip = mpo_decisions_events.0201.learning_1_tt
if = {
limit = {
scope:training_method = flag:mentor
}
custom_tooltip = mpo_decisions_events.0201.learning_1_mentor
study_commander_trait_option_mentor = {
DUEL = no
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0201.learning_1_success
FAIL_DESC = mpo_decisions_events.0201.learning_1_fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0201.learning_1_success
FAIL_DESC = mpo_decisions_events.0201.learning_1_fail
WOUND_CHANCE = no
}
}
if = {
limit = {
can_weigh_trait_trigger = { TRAIT = open_terrain_expert }
}
trait_weighting_effect = {
WEIGHTED_TRAIT = open_terrain_expert
WEIGHT = 15
}
}
else_if = {
limit = {
can_weigh_trait_trigger = { TRAIT = rough_terrain_expert }
}
trait_weighting_effect = {
WEIGHTED_TRAIT = rough_terrain_expert
WEIGHT = 15
}
}
save_scope_value_as = {
name = last_location_study_commander
value = flag:terrain
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = learning
}
modifier = {
factor = 1.2
learning >= decent_skill_rating
}
modifier = {
factor = 0.5
has_trait = rough_terrain_expert
}
modifier = {
factor = 0.5
has_trait = open_terrain_expert
}
}
}
option = { # Study military innovations
name = mpo_decisions_events.0201.learning_2
trigger = {
OR = {
scope:training_method = flag:learning
scope:mentor_option_seed ?= 2
}
}
custom_tooltip = mpo_decisions_events.0201.learning_2_tt
flavor = mpo_decisions_events.0201.learning_2_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
custom_tooltip = mpo_decisions_events.0201.learning_2_mentor
study_commander_trait_option_mentor = {
DUEL = no
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0201.learning_2_success
FAIL_DESC = mpo_decisions_events.0201.learning_2_fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0201.learning_2_success
FAIL_DESC = mpo_decisions_events.0201.learning_2_fail
WOUND_CHANCE = no
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = military_engineer
WEIGHT = 15
}
save_scope_value_as = {
name = last_location_study_commander
value = flag:study
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = learning
}
modifier = {
factor = 1.2
learning >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = military_engineer
}
}
}
option = { # Boost morale / manipulate enemy
name = mpo_decisions_events.0201.intrigue_1
trigger = {
OR = {
scope:training_method = flag:intrigue
scope:mentor_option_seed ?= 1
}
}
custom_tooltip = mpo_decisions_events.0201.intrigue_1_tt
flavor = mpo_decisions_events.0201.intrigue_1_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
custom_tooltip = mpo_decisions_events.0201.intrigue_1_mentor
study_commander_trait_option_mentor = {
DUEL = no
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0201.intrigue_1_success
FAIL_DESC = mpo_decisions_events.0201.intrigue_1_fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0201.intrigue_1_success
FAIL_DESC = mpo_decisions_events.0201.intrigue_1_fail
WOUND_CHANCE = no
}
}
save_scope_value_as = {
name = last_location_study_commander
value = flag:town
}
trait_weighting_effect = {
WEIGHTED_TRAIT = flexible_leader
WEIGHT = 15
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = intrigue
}
modifier = {
factor = 1.2
intrigue >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = flexible_leader
}
}
}
option = { # Negotiate with enemy
name = mpo_decisions_events.0201.intrigue_2
trigger = {
OR = {
scope:training_method = flag:intrigue
scope:mentor_option_seed ?= 2
}
}
custom_tooltip = mpo_decisions_events.0201.intrigue_2_tt
flavor = mpo_decisions_events.0201.intrigue_2_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = no
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0201.intrigue_2_success
FAIL_DESC = mpo_decisions_events.0201.intrigue_2_fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0201.intrigue_2_success
FAIL_DESC = mpo_decisions_events.0201.intrigue_2_fail
WOUND_CHANCE = yes
}
}
if = {
limit = {
can_weigh_trait_trigger = { TRAIT = cautious_leader }
}
trait_weighting_effect = {
WEIGHTED_TRAIT = cautious_leader
WEIGHT = 15
}
}
else = {
trait_weighting_effect = {
WEIGHTED_TRAIT = organizer
WEIGHT = 15
}
}
save_scope_value_as = {
name = last_location_study_commander
value = flag:town
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = intrigue
}
modifier = {
factor = 1.2
intrigue >= decent_skill_rating
}
modifier = {
factor = 0.5
has_trait = organizer
}
modifier = {
factor = 0.5
has_trait = cautious_leader
}
}
}
option = { # Supply Crisis
name = mpo_decisions_events.0201.none_1
trigger = {
OR = {
scope:mentor_option_seed ?= 1
scope:training_method = flag:none
}
}
flavor = mpo_decisions_events.0201.none_1_flavor
trait_weighting_effect = {
WEIGHTED_TRAIT = logistician
WEIGHT = 5
}
study_commander_trait_option_no_mentor = {
DUEL = no
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0201.none_1_success
FAIL_DESC = mpo_decisions_events.0201.none_1_fail
WOUND_CHANCE = yes
}
save_scope_value_as = {
name = last_location_study_commander
value = flag:town
}
ai_chance = {
base = 50
modifier = {
factor = 0
has_trait = logistician
}
}
}
option = { # Simple Training Exercise
name = mpo_decisions_events.0201.none_2
trigger = {
OR = {
scope:mentor_option_seed ?= 2
scope:training_method = flag:none
}
}
flavor = mpo_decisions_events.0201.none_2_flavor
add_prowess_skill = 2
random = {
chance = 10
if = {
limit = {
has_trait = craven
}
remove_trait = craven
}
add_trait = brave
}
}
after = {
trigger_event = {
id = mpo_decisions_events.0202
days = { 15 20 }
}
}
}
mpo_decisions_events.0202 = { # Random Situation
type = character_event
title = mpo_decisions_events.0202.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:last_location_study_commander ?= flag:battlefield
}
desc = mpo_decisions_events.0202.desc_battlefield
}
triggered_desc = {
trigger = {
scope:last_location_study_commander ?= flag:terrain
}
desc = mpo_decisions_events.0202.desc_terrain
}
triggered_desc = {
trigger = {
scope:last_location_study_commander ?= flag:study
}
desc = mpo_decisions_events.0202.desc_study
}
triggered_desc = {
trigger = {
scope:last_location_study_commander ?= flag:town
}
desc = mpo_decisions_events.0202.desc_town
}
}
desc = mpo_decisions_events.0202.desc
first_valid = {
triggered_desc = {
trigger = {
scope:random_situation = 1
}
desc = mpo_decisions_events.0202.desc_1_intro
}
triggered_desc = {
trigger = {
scope:random_situation = 2
}
desc = mpo_decisions_events.0202.desc_2
}
triggered_desc = {
trigger = {
scope:random_situation = 3
}
desc = mpo_decisions_events.0202.desc_3
}
}
first_valid = {
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:forest
}
desc = terrain_forest
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:taiga
}
desc = terrain_taiga
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:jungle
}
desc = terrain_jungle
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:wetlands
}
desc = terrain_wetlands
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:floodplains
}
desc = terrain_floodplains
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:desert
}
desc = terrain_desert
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:desert_mountains
}
desc = terrain_desert_mountains
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:oasis
}
desc = terrain_oasis
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:steppe
}
desc = terrain_steppe
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:farmlands
}
desc = terrain_farmlands
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:plains
}
desc = terrain_plains
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:drylands
}
desc = terrain_drylands
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:mountains
}
desc = terrain_mountains
}
triggered_desc = {
trigger = {
scope:random_situation = 1
scope:situation_1_terrain ?= flag:hills
}
desc = terrain_hills
}
}
random_valid = {
triggered_desc = {
trigger = {
scope:situation_1_terrain ?= flag:taiga
}
desc = terrain_disadvantage_freeze
}
triggered_desc = {
trigger = {
OR = {
scope:situation_1_terrain ?= flag:forest
scope:situation_1_terrain ?= flag:jungle
}
}
desc = terrain_disadvantage_foliage
}
triggered_desc = {
trigger = {
OR = {
scope:situation_1_terrain ?= flag:forest
scope:situation_1_terrain ?= flag:jungle
scope:situation_1_terrain ?= flag:wetlands
scope:situation_1_terrain ?= flag:floodplains
}
}
desc = terrain_disadvantage_heavy_rain
}
triggered_desc = {
trigger = {
OR = {
scope:situation_1_terrain ?= flag:desert
scope:situation_1_terrain ?= flag:desert_mountains
}
}
desc = terrain_disadvantage_sand
}
triggered_desc = {
trigger = {
OR = {
scope:situation_1_terrain ?= flag:desert
scope:situation_1_terrain ?= flag:desert_mountains
scope:situation_1_terrain ?= flag:oasis
scope:situation_1_terrain ?= flag:steppe
scope:situation_1_terrain ?= flag:farmlands
scope:situation_1_terrain ?= flag:plains
scope:situation_1_terrain ?= flag:drylands
}
}
desc = terrain_disadvantage_heat
}
triggered_desc = {
trigger = {
OR = {
scope:situation_1_terrain ?= flag:mountains
scope:situation_1_terrain ?= flag:hills
}
}
desc = terrain_disadvantage_hike
}
triggered_desc = {
trigger = {
OR = {
scope:situation_1_terrain ?= flag:steppe
scope:situation_1_terrain ?= flag:farmlands
scope:situation_1_terrain ?= flag:plains
scope:situation_1_terrain ?= flag:drylands
}
}
desc = terrain_disadvantage_endless_field
}
triggered_desc = {
trigger = {
scope:random_situation = 1
}
desc = terrain_disadvantage_difficult
}
}
desc = mpo_decisions_events.0202.desc_outro
}
theme = nomads
override_background = {
trigger = {
scope:last_location_study_commander ?= flag:battlefield
}
reference = battlefield
}
override_background = {
trigger = {
scope:last_location_study_commander ?= flag:terrain
}
reference = terrain
}
override_background = {
trigger = {
scope:last_location_study_commander ?= flag:study
}
reference = study
}
override_background = {
trigger = {
scope:last_location_study_commander ?= flag:town
}
reference = courtyard
}
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:situation_alerter
animation = storyteller
}
immediate = {
stress_impact = {
base = miniscule_stress_impact_gain
}
if = {
limit = {
debug_only = yes
}
custom_tooltip = study_commander_trait_current_success_chance_debug
}
else = {
custom_tooltip = study_commander_trait_current_success_chance
}
if = {
limit = {
scope:training_method = flag:mentor
}
mentor_option_seed_effect = yes
}
if = {
limit = {
NOT = { scope:training_method = flag:mentor }
}
if = {
limit = {
any_courtier = {
NOT = {
this = root
}
is_available_adult = yes
}
}
random_courtier = {
limit = {
NOT = {
this = root
}
is_available_adult = yes
}
save_scope_as = situation_alerter
}
}
else = {
create_character = {
dynasty = none
template = soldier_friend_character
location = root.location
age = { 16 30 }
save_scope_as = situation_alerter
}
}
}
else = {
# For loc
scope:commander_trait_mentor = { save_scope_as = situation_alerter }
}
# Find random situation
random_list = {
15 = {
save_scope_value_as = { # Battlefield/Terrain
name = random_situation
value = 1
}
random_list = {
10 = {
modifier = {
add = 5
OR = {
location = { terrain = drylands }
location = { terrain = desert }
location = { terrain = desert_mountains }
location = { terrain = oasis }
any_sub_realm_barony = {
title_province = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
}
}
}
}
}
modifier = {
add = -100
NOT = { can_weigh_trait_trigger = { TRAIT = desert_warrior } }
}
save_scope_value_as = { name = situation_1_terrain value = flag:desert }
}
10 = {
modifier = {
add = 5
OR = {
location = { terrain = jungle }
any_sub_realm_barony = {
title_province = {
terrain = jungle
}
}
}
}
modifier = {
add = -100
NOT = { can_weigh_trait_trigger = { TRAIT = jungle_stalker } }
}
save_scope_value_as = { name = situation_1_terrain value = flag:jungle }
}
10 = {
modifier = {
add = 5
OR = {
location = { terrain = forest }
location = { terrain = taiga }
any_sub_realm_barony = {
title_province = {
OR = {
terrain = forest
terrain = taiga
}
}
}
}
}
modifier = {
add = -100
NOT = { can_weigh_trait_trigger = { TRAIT = forest_fighter } }
}
save_scope_value_as = { name = situation_1_terrain value = flag:forest }
}
10 = {
modifier = {
add = 5
OR = {
location = { terrain = farmlands }
location = { terrain = plains }
location = { terrain = steppe }
any_sub_realm_barony = {
title_province = {
OR = {
terrain = farmlands
terrain = plains
terrain = steppe
}
}
}
}
}
modifier = {
add = -100
NOT = { can_weigh_trait_trigger = { TRAIT = open_terrain_expert } }
}
save_scope_value_as = { name = situation_1_terrain value = flag:plains }
}
10 = {
modifier = {
add = 5
OR = {
location = { terrain = hills }
location = { terrain = mountains }
location = { terrain = wetlands }
any_sub_realm_barony = {
title_province = {
OR = {
terrain = hills
terrain = mountains
terrain = wetlands
}
}
}
}
}
modifier = {
add = -100
NOT = { can_weigh_trait_trigger = { TRAIT = rough_terrain_expert } }
}
save_scope_value_as = { name = situation_1_terrain value = flag:mountains }
}
20 = {
trigger = {
current_season_trigger = { SEASON = winter }
}
modifier = {
add = -100
NOT = {
can_weigh_trait_trigger = { TRAIT = reaver }
can_weigh_trait_trigger = { TRAIT = winter_soldier }
}
}
save_scope_value_as = { name = situation_1_terrain value = flag:winter_terrain }
}
}
}
10 = {
save_scope_value_as = { # Siege
name = random_situation
value = 2
}
}
10 = {
save_scope_value_as = { # Sabotage
name = random_situation
value = 3
}
}
}
}
option = {
name = mpo_decisions_events.0202.martial_situation_1
trigger = {
scope:random_situation = 1
}
flavor = mpo_decisions_events.0202.martial_situation_1_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
switch = {
trigger = scope:situation_1_terrain
flag:desert = {
trait_weighting_effect = {
WEIGHTED_TRAIT = desert_warrior
WEIGHT = 20
}
}
flag:jungle = {
trait_weighting_effect = {
WEIGHTED_TRAIT = jungle_stalker
WEIGHT = 20
}
}
flag:forest = {
trait_weighting_effect = {
WEIGHTED_TRAIT = forest_fighter
WEIGHT = 20
}
}
flag:plains = {
trait_weighting_effect = {
WEIGHTED_TRAIT = open_terrain_expert
WEIGHT = 20
}
}
flag:mountains = {
trait_weighting_effect = {
WEIGHTED_TRAIT = rough_terrain_expert
WEIGHT = 20
}
}
flag:winter_terrain = {
random_list = {
1 = {
trigger = { can_weigh_trait_trigger = { TRAIT = reaver } }
trait_weighting_effect = {
WEIGHTED_TRAIT = reaver
WEIGHT = 15
}
}
1 = {
trigger = { can_weigh_trait_trigger = { TRAIT = winter_soldier } }
trait_weighting_effect = {
WEIGHTED_TRAIT = winter_soldier
WEIGHT = 15
}
}
}
}
flag:wetlands = {
trait_weighting_effect = {
WEIGHTED_TRAIT = forder
WEIGHT = 20
}
}
flag:floodplains = {
trait_weighting_effect = {
WEIGHTED_TRAIT = forder
WEIGHT = 20
}
}
}
ai_chance = {
base = 150
modifier = {
factor = 1.5
highest_skill = martial
}
modifier = {
factor = 1.2
martial >= decent_skill_rating
}
}
}
option = {
name = mpo_decisions_events.0202.martial_situation_2
trigger = {
scope:random_situation = 2
OR = {
scope:training_method = flag:martial
scope:mentor_option_seed ?= 1
}
}
flavor = mpo_decisions_events.0202.martial_situation_2_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = aggressive_attacker
WEIGHT = 20
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = martial
}
modifier = {
factor = 1.2
martial >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = aggressive_attacker
}
}
}
option = {
name = mpo_decisions_events.0202.martial_situation_3
trigger = {
scope:random_situation = 3
OR = {
scope:training_method = flag:martial
scope:mentor_option_seed ?= 2
}
}
flavor = mpo_decisions_events.0202.martial_situation_3_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
random = {
chance = 10
if = {
limit = {
has_trait = craven
}
remove_trait = craven
}
add_trait = brave
}
ai_chance = {
base = 100
}
}
option = {
name = mpo_decisions_events.0202.learning_situation_1
trigger = {
scope:random_situation = 1
OR = {
scope:training_method = flag:learning
scope:mentor_option_seed ?= 2
}
}
flavor = mpo_decisions_events.0202.learning_situation_1_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = flexible_leader
WEIGHT = 20
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = learning
}
modifier = {
factor = 1.2
learning >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = flexible_leader
}
}
}
option = {
name = mpo_decisions_events.0202.learning_situation_2
trigger = {
scope:random_situation = 2
}
flavor = mpo_decisions_events.0202.learning_situation_2_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = military_engineer
WEIGHT = 20
}
ai_chance = {
base = 150
modifier = {
factor = 1.5
highest_skill = learning
}
modifier = {
factor = 1.2
learning >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = military_engineer
}
}
}
option = {
name = mpo_decisions_events.0202.learning_situation_3
trigger = {
scope:random_situation = 3
OR = {
scope:training_method = flag:learning
scope:mentor_option_seed ?= 2
}
}
flavor = mpo_decisions_events.0202.learning_situation_3_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = reckless
WEIGHT = -5
}
ai_chance = {
base = 75
modifier = {
factor = 1.5
highest_skill = learning
}
modifier = {
factor = 1.2
learning >= decent_skill_rating
}
}
}
option = {
name = mpo_decisions_events.0202.intrigue_situation_1
trigger = {
scope:random_situation = 1
OR = {
scope:training_method = flag:intrigue
scope:mentor_option_seed ?= 1
}
}
flavor = mpo_decisions_events.0202.intrigue_situation_1_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = organizer
WEIGHT = 20
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = intrigue
}
modifier = {
factor = 1.2
intrigue >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = organizer
}
}
}
option = {
name = mpo_decisions_events.0202.intrigue_situation_2
trigger = {
scope:random_situation = 2
OR = {
scope:training_method = flag:intrigue
scope:mentor_option_seed ?= 2
}
}
flavor = mpo_decisions_events.0202.intrigue_situation_2_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = reckless
WEIGHT = 20
}
trait_weighting_effect = {
WEIGHTED_TRAIT = cautious_leader
WEIGHT = -5
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
highest_skill = intrigue
}
modifier = {
factor = 1.2
intrigue >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = reckless
}
}
}
option = {
name = mpo_decisions_events.0202.intrigue_situation_3
trigger = {
scope:random_situation = 3
}
trait_weighting_effect = {
WEIGHTED_TRAIT = cautious_leader
WEIGHT = 20
}
flavor = mpo_decisions_events.0202.intrigue_situation_3_flavor
if = {
limit = {
scope:training_method = flag:mentor
}
study_commander_trait_option_mentor = {
DUEL = yes
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
else = {
study_commander_trait_option_no_mentor = {
DUEL = yes
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = no
}
}
ai_chance = {
base = 150
modifier = {
factor = 1.5
highest_skill = intrigue
}
modifier = {
factor = 1.2
intrigue >= decent_skill_rating
}
modifier = {
factor = 0
has_trait = cautious_leader
}
}
}
option = {
name = mpo_decisions_events.0202.none_situation_1
trigger = {
scope:random_situation = 1
}
flavor = mpo_decisions_events.0202.none_situation_1_flavor
study_commander_trait_option_no_mentor = {
DUEL = no
SKILL = martial
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = yes
}
trait_weighting_effect = {
WEIGHTED_TRAIT = unyielding_defender
WEIGHT = 5
}
trait_weighting_effect = {
WEIGHTED_TRAIT = aggressive_attacker
WEIGHT = -5
}
ai_chance = {
base = 75
modifier = {
factor = 0
has_trait = unyielding_defender
}
}
}
option = {
name = mpo_decisions_events.0202.none_situation_2
trigger = {
scope:random_situation = 2
}
flavor = mpo_decisions_events.0202.none_situation_2_flavor
trait_weighting_effect = {
WEIGHTED_TRAIT = cautious_leader
WEIGHT = 20
}
study_commander_trait_option_no_mentor = {
DUEL = no
SKILL = learning
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = yes
}
ai_chance = {
base = 75
}
}
option = {
name = mpo_decisions_events.0202.none_situation_3
trigger = {
scope:random_situation = 3
}
flavor = mpo_decisions_events.0202.none_situation_3_flavor
study_commander_trait_option_no_mentor = {
DUEL = no
SKILL = intrigue
SUCCESS_DESC = mpo_decisions_events.0202.success
FAIL_DESC = mpo_decisions_events.0202.fail
WOUND_CHANCE = yes
}
add_dread = miniscule_dread_gain
ai_chance = {
base = 75
}
}
after = {
trigger_event = {
id = mpo_decisions_events.0203
days = { 3 7 }
}
if = {
limit = {
NOR = {
scope:situation_alerter = { is_courtier_of = root }
scope:commander_trait_mentor ?= scope:situation_alerter
}
}
scope:situation_alerter = {
silent_disappearance_effect = yes
}
}
}
}
mpo_decisions_events.0203 = { # Reflection
type = character_event
title = mpo_decisions_events.0203.t
desc = {
desc = mpo_decisions_events.0203.desc_intro
first_valid = {
triggered_desc = {
trigger = {
scope:training_method = flag:mentor
}
desc = mpo_decisions_events.0203.desc_mentor
}
desc = mpo_decisions_events.0203.desc
}
}
theme = nomads
override_background = {
reference = study
}
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
trigger = {
scope:training_method = flag:mentor
}
character = scope:commander_trait_mentor
animation = storyteller
}
lower_center_portrait = {
trigger = {
exists = scope:heir_person
}
character = scope:heir_person
}
lower_right_portrait = {
trigger = {
exists = scope:love_person
}
character = scope:love_person
}
lower_left_portrait = {
trigger = {
exists = scope:hate_person
}
character = scope:hate_person
}
immediate = {
stress_impact = {
base = miniscule_stress_impact_gain
}
if = {
limit = {
debug_only = yes
}
custom_tooltip = study_commander_trait_current_success_chance_debug
}
else = {
custom_tooltip = study_commander_trait_current_success_chance
}
# Get some people
# Heir (family member or designated)
if = {
limit = {
any_close_family_member = {
is_player_heir_of = root
is_primary_heir_of = root
}
}
random_close_family_member = {
limit = {
OR = {
is_player_heir_of = root
is_primary_heir_of = root
}
}
save_scope_as = heir_person
}
}
else_if = {
limit = {
exists = designated_heir
}
designated_heir = { save_scope_as = heir_person }
}
# Lover / Spouse
if = {
limit = {
any_spouse = { count >= 1 }
}
ordered_spouse = {
order_by = {
value = 10
if = {
limit = {
has_opinion_modifier = {
modifier = love_opinion
target = root
}
}
add = 25
}
}
save_scope_as = love_person
}
}
else_if = {
limit = {
num_of_relation_lover >= 1
}
ordered_relation = {
type = lover
order_by = "opinion(root)"
save_scope_as = love_person
}
}
# Rival(s)
if = {
limit = {
num_of_relation_rival >= 1
}
random_relation = {
type = rival
save_scope_as = hate_person
}
}
}
option = { # Heir (if they're your relative or designated heir)
name = mpo_decisions_events.0203.a
trigger = {
exists = scope:heir_person
}
dynasty = {
add_dynasty_prestige = miniscule_dynasty_prestige_gain
}
if = {
limit = {
OR = {
scope:heir_person = {
has_relation_friend = root
}
has_trait = family_first
}
}
stress_impact = {
base = minor_stress_impact_loss
}
}
if = {
limit = {
scope:heir_person = {
opinion = {
target = root
value >= 40
}
}
}
scope:heir_person = { save_scope_as = target_person } # For loc
custom_tooltip = mpo_decisions_events.0203.sentiment
localize_study_commander_success_chance_change = {
VALUE = 25
}
}
else_if = {
limit = {
scope:heir_person = {
opinion = {
target = root
value >= 15
}
}
}
scope:heir_person = { save_scope_as = target_person } # For loc
custom_tooltip = mpo_decisions_events.0203.sentiment
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = family_first
}
opinion_modifier = {
opinion_target = scope:heir_person
multiplier = 0.5
}
}
}
option = { # Lover or Spouse
name = mpo_decisions_events.0203.b
trigger = {
exists = scope:love_person
}
if = {
limit = {
scope:love_person = {
opinion = {
target = root
value >= 40
}
}
}
scope:love_person = { save_scope_as = target_person } # For loc
custom_tooltip = mpo_decisions_events.0203.sentiment
localize_study_commander_success_chance_change = {
VALUE = 25
}
}
else_if = {
limit = {
scope:love_person = {
opinion = {
target = root
value >= 15
}
}
}
scope:love_person = { save_scope_as = target_person } # For loc
custom_tooltip = mpo_decisions_events.0203.sentiment
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
if = {
limit = {
scope:love_person = {
OR = {
has_opinion_modifier = {
modifier = love_opinion
target = root
}
has_relation_lover = root
}
}
}
stress_impact = {
base = minor_stress_impact_loss
lustful = minor_stress_impact_loss
}
}
scope:love_person = {
add_opinion = {
target = root
modifier = love_opinion
opinion = 15
}
}
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = lustful
}
opinion_modifier = {
opinion_target = scope:love_person
multiplier = 0.5
}
}
}
option = { # Rival(s) / Enemies
name = {
text = {
triggered_desc = {
trigger = {
exists = scope:hate_person
}
desc = mpo_decisions_events.0203.c_rival
}
desc = mpo_decisions_events.0203.c
}
}
trait_weighting_effect = {
WEIGHTED_TRAIT = aggressive_attacker
WEIGHT = 20
}
stress_impact = {
vengeful = minor_stress_impact_loss
}
if = {
limit = {
exists = scope:hate_person
scope:hate_person = {
opinion = {
target = root
value <= -40
}
}
}
scope:hate_person = { save_scope_as = target_person } # For loc
custom_tooltip = mpo_decisions_events.0203.sentiment
localize_study_commander_success_chance_change = {
VALUE = 25
}
}
else_if = {
limit = {
exists = scope:hate_person
scope:hate_person ?= {
opinion = {
target = root
value <= -15
}
}
}
scope:hate_person = { save_scope_as = target_person } # For loc
custom_tooltip = mpo_decisions_events.0203.sentiment
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
else_if = {
limit = {
dread > 40
}
custom_tooltip = mpo_decisions_events.0203.dread
localize_study_commander_success_chance_change = {
VALUE = 25
}
}
else_if = {
limit = {
dread > 15
}
custom_tooltip = mpo_decisions_events.0203.dread
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
add_dread = miniscule_dread_gain
ai_chance = {
base = 100
modifier = {
factor = 1.5
has_trait = vengeful
}
modifier = {
factor = 1.2
has_trait = wrathful
}
modifier = {
factor = 0
NOT = { can_weigh_trait_trigger = { TRAIT = aggressive_attacker } }
}
}
}
option = { # Title
name = {
text = {
triggered_desc = {
trigger = {
is_landed = no
}
desc = mpo_decisions_events.0203.d_landless
}
desc = mpo_decisions_events.0203.d
}
}
stress_impact = {
ambitious = minor_stress_impact_loss
}
if = {
limit = {
prestige_level >= 4
}
custom_tooltip = mpo_decisions_events.0203.prestige
localize_study_commander_success_chance_change = {
VALUE = 25
}
}
else_if = {
limit = {
prestige_level >= 2
}
custom_tooltip = mpo_decisions_events.0203.prestige
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
add_prestige = miniscule_prestige_gain
ai_chance = {
base = 110
modifier = {
factor = 1.25
has_trait = ambitious
}
}
}
option = { # Faith
name = mpo_decisions_events.0203.e
trigger = {
NOT = { has_trait = cynical }
}
stress_impact = {
zealous = minor_stress_impact_loss
}
trait_weighting_effect = {
WEIGHTED_TRAIT = holy_warrior
WEIGHT = 15
}
if = {
limit = {
piety_level >= 4
}
custom_tooltip = mpo_decisions_events.0203.piety
localize_study_commander_success_chance_change = {
VALUE = 25
}
}
else_if = {
limit = {
piety_level >= 2
}
custom_tooltip = mpo_decisions_events.0203.piety
localize_study_commander_success_chance_change = {
VALUE = 10
}
}
add_piety = miniscule_piety_gain
ai_chance = {
base = 110
modifier = {
factor = 1.25
has_trait = zealous
}
modifier = {
factor = 0
NOT = { can_weigh_trait_trigger = { TRAIT = holy_warrior } }
}
}
}
after = {
trigger_event = {
id = mpo_decisions_events.0204
days = { 3 7 }
}
}
}
mpo_decisions_events.0204 = { # Get Trait - Or not!
type = character_event
title = mpo_decisions_events.0204.t
desc = {
desc = mpo_decisions_events.0204.desc
triggered_desc = {
trigger = {
scope:training_method = flag:mentor
}
desc = mpo_decisions_events.0204.desc_mentor
}
}
theme = nomads
left_portrait = {
character = root
animation = marshal
}
right_portrait = {
trigger = {
scope:training_method = flag:mentor
}
character = scope:commander_trait_mentor
animation = admiration
}
option = { # Ok
name = mpo_decisions_events.0204.a
if = {
limit = {
scope:training_method = flag:mentor
}
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:commander_trait_mentor
opinion = 30
}
}
random_list = {
1 = {
modifier = {
always = yes
add = study_commander_trait_success_chance_value
}
custom_tooltip = mpo_decisions_events.0204.a_success
if = {
limit = {
number_of_commander_traits <= 1 # Because otherwise they hit limit and can't actually retry
}
custom_tooltip = mpo_decisions_events.0204.a_success_desc
}
hidden_effect = {
random_list = { # A little less likely to get the terrain ones cuz they're more situational
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = logistician } }
modifier = { has_variable = logistician_weight add = var:logistician_weight }
add_trait = logistician
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = military_engineer } }
modifier = { has_variable = military_engineer_weight add = var:military_engineer_weight }
add_trait = military_engineer
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = aggressive_attacker } }
modifier = { has_variable = aggressive_attacker_weight add = var:aggressive_attacker_weight }
add_trait = aggressive_attacker
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = unyielding_defender } }
modifier = { has_variable = unyielding_defender_weight add = var:unyielding_defender_weight }
add_trait = unyielding_defender
}
5 = {
trigger = { can_weigh_trait_trigger = { TRAIT = forder } }
modifier = { has_variable = forder_weight add = var:forder_weight }
add_trait = forder
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = flexible_leader } }
modifier = { has_variable = flexible_leader_weight add = var:flexible_leader_weight }
add_trait = flexible_leader
}
5 = {
trigger = { can_weigh_trait_trigger = { TRAIT = desert_warrior } }
modifier = { has_variable = desert_warrior_weight add = var:desert_warrior_weight }
add_trait = desert_warrior
}
5 = {
trigger = { can_weigh_trait_trigger = { TRAIT = jungle_stalker } }
modifier = { has_variable = jungle_stalker_weight add = var:jungle_stalker_weight }
add_trait = jungle_stalker
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = reaver } }
modifier = { has_variable = reaver_weight add = var:reaver_weight }
add_trait = reaver
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = reckless } }
modifier = { has_variable = reckless_weight add = var:reckless_weight }
add_trait = reckless
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = holy_warrior } }
modifier = { has_variable = holy_warrior_weight add = var:holy_warrior_weight }
modifier = { has_trait = zealous add = 5 }
modifier = { has_trait = cynical add = -5 }
add_trait = holy_warrior
}
5 = {
trigger = { can_weigh_trait_trigger = { TRAIT = open_terrain_expert } }
modifier = { has_variable = open_terrain_expert_weight add = var:open_terrain_expert_weight }
add_trait = open_terrain_expert
}
5 = {
trigger = { can_weigh_trait_trigger = { TRAIT = rough_terrain_expert } }
modifier = { has_variable = rough_terrain_expert_weight add = var:rough_terrain_expert_weight }
add_trait = rough_terrain_expert
}
5 = {
trigger = { can_weigh_trait_trigger = { TRAIT = forest_fighter } }
modifier = { has_variable = forest_fighter_weight add = var:forest_fighter_weight }
add_trait = forest_fighter
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = cautious_leader } }
modifier = { has_variable = cautious_leader_weight add = var:cautious_leader_weight }
add_trait = cautious_leader
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = organizer } }
modifier = { has_variable = organizer_weight add = var:organizer_weight }
add_trait = organizer
}
10 = {
trigger = { can_weigh_trait_trigger = { TRAIT = winter_soldier } }
modifier = { has_variable = winter_soldier_weight add = var:winter_soldier_weight }
add_trait = winter_soldier
}
}
}
add_character_flag = {
flag = study_commander_trait_cooldown
years = 10
}
}
100 = {
modifier = {
always = yes
add = study_commander_trait_success_chance_value_neg
}
custom_tooltip = mpo_decisions_events.0204.a_fail
send_interface_toast = {
title = mpo_decisions_events.0204.a_fail
type = event_toast_effect_bad
left_icon = root
custom_tooltip = mpo_decisions_events.0204.a_fail_desc
}
add_character_flag = {
flag = study_commander_trait_cooldown
years = 5
}
}
}
}
after = {
if = {
limit = {
NOT = { has_variable = study_commander_trait_tally }
}
set_variable = {
name = study_commander_trait_tally
value = 0
}
}
change_variable = {
name = study_commander_trait_tally
add = 1
}
if = {
limit = {
number_of_commander_traits = commander_trait_limit
}
remove_variable = study_commander_trait_tally
}
# Remove vars
remove_variable = winter_soldier_weight
remove_variable = organizer_weight
remove_variable = cautious_leader_weight
remove_variable = forest_fighter_weight
remove_variable = rough_terrain_expert_weight
remove_variable = open_terrain_expert_weight
remove_variable = holy_warrior_weight
remove_variable = reckless_weight
remove_variable = reaver_weight
remove_variable = jungle_stalker_weight
remove_variable = desert_warrior_weight
remove_variable = flexible_leader_weight
remove_variable = forder_weight
remove_variable = unyielding_defender_weight
remove_variable = aggressive_attacker_weight
remove_variable = military_engineer_weight
remove_variable = logistician_weight
remove_variable = study_commander_trait_success_chance_var
remove_character_flag = is_learning_commander_trait
}
}
#Fertility Dance event
mpo_decisions_events.0300 = {
type = character_event
title = mpo_decisions_events.0300.t
desc = mpo_decisions_events.0300.desc
theme = nomads
override_background = { reference = temple }
left_portrait = {
character = root
animation = prayer
}
right_portrait = {
character = scope:shaman
animation = personality_zealous
}
immediate = {
court_position:court_astrologer_court_position = { save_scope_as = shaman }
}
# Regular option
option = {
name = mpo_decisions_events.0300.a
if = {
limit = {
scope:fertility_county = { county_fertility >= 90 }
}
scope:fertility_county = {
change_county_fertility = fertility_dance_bonus_value
}
}
else = {
scope:fertility_county = {
add_county_modifier = {
modifier = mpo_fertility_dance_county_modifier
years = 5
}
}
}
if = {
limit = {
domicile ?= {
has_domicile_parameter = nomad_yurt_improved_fertility_dance
}
}
custom_tooltip = mpo_decisions_events.0300.a.tt.yurt
scope:fertility_county = {
every_neighboring_county = {
limit = {
OR = {
holder = root
holder = {
government_has_flag = government_is_herder
}
}
}
add_county_modifier = {
modifier = mpo_fertility_dance_county_modifier
years = 2
}
}
}
}
ai_chance = {
base = 50
}
}
}
# Pax Mongolica event
mpo_decisions_events.0400 = {
type = character_event
title = mpo_decisions_events.0400.t
desc = mpo_decisions_events.0400.desc
theme = nomads
override_background = { reference = mpo_city_steppe }
left_portrait = {
character = root
animation = horse_archer_idle
camera = camera_event_horse_left
}
right_portrait = {
character = scope:courtier
animation = obsequious_bow
}
immediate = {
if = {
limit = {
any_courtier = {
is_available_ai_adult = yes
}
}
ordered_courtier = {
limit = {
is_available_ai_adult = yes
}
order_by = stewardship
save_scope_as = courtier
}
}
else = {
create_character = {
location = root.capital_province
template = merchant_template
culture = root.location.culture
faith = root.location.faith
save_scope_as = merchant
}
}
}
# Happy day
option = {
name = mpo_decisions_events.0400.a
add_character_modifier = {
modifier = pax_mongolica_ruler_modifier # Forever
}
custom_tooltip = pax_mongolica_every_county_in_steppe_tt
every_realm_county = {
limit = {
is_landless_type_title = no
any_county_situation = { this = situation:the_great_steppe }
holder.dynasty = root.dynasty
}
random_county_province = {
limit = { has_holding = no }
set_holding_type = city_holding
}
}
culture = {
if = {
limit = {
NOT = { has_innovation = innovation_city_planning }
}
add_innovation = innovation_city_planning
}
else_if = {
limit = {
NOT = { has_innovation = innovation_development_01 }
}
add_innovation = innovation_development_01
}
else = {
add_random_innovation = culture_group_civic
}
}
ai_chance = {
base = 50
}
}
}
# Desperate Stance event
mpo_decisions_events.0500 = {
type = character_event
title = mpo_decisions_events.0500.t
desc = mpo_decisions_events.0500.desc
theme = nomads
override_background = { reference = mpo_campfire_steppe }
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:courtier
animation = beg
}
immediate = {
if = {
limit = {
any_spouse = { count >= 1 }
}
random_spouse = {
save_scope_as = courtier
}
}
else_if = {
limit = {
any_child = { count >= 1 }
}
random_child = {
save_scope_as = courtier
}
}
else_if = {
limit = {
any_courtier_or_guest = { count >= 1 }
}
random_courtier_or_guest = {
limit = { is_available_ai_adult = yes }
save_scope_as = courtier
}
}
else = {
create_character = {
location = root.location
dynasty = none
culture = root.location.culture
faith = root.location.faith
gender_female_chance = 50
template = peasant_character
save_scope_as = courtier
}
}
hidden_effect = {
scope:courtier = {
change_current_weight = -50
}
}
}
# Let's get out of here
option = {
name = mpo_decisions_events.0500.a
mpo_decisions_events_0500_effect = yes
ai_chance = {
base = 100
}
}
}
# Invite Stargazer
scripted_trigger mpo_decisions_events_0070_basic_requirements_trigger = {
is_adult = yes
is_imprisoned = no
is_alive = yes # Because apparently there can be dead characters in the pool (remove when fixed)
is_claimant = no # We don't want recruiting physicians to be a cheap way of getting claimants
learning >= low_skill_rating
}
scripted_trigger mpo_decisions_events_0070_low_skill_trigger = {
mpo_decisions_events_0070_basic_requirements_trigger = yes
#Empire/kingdom
trigger_if = {
limit = {
root = { highest_held_title_tier >= tier_kingdom }
}
learning <= high_skill_rating
learning >= mediocre_skill_rating # 8
}
#Duchy/county
trigger_else = {
learning <= decent_skill_rating
learning >= low_skill_rating # 5
}
}
scripted_trigger mpo_decisions_events_0070_high_skill_trigger = {
mpo_decisions_events_0070_basic_requirements_trigger = yes
#Empire/kingdom
trigger_if = {
limit = {
root = { highest_held_title_tier >= tier_kingdom }
}
learning <= extremely_high_skill_rating
learning >= decent_skill_rating # 12
}
#Duchy/county
trigger_else = {
learning <= high_skill_rating
learning >= medium_skill_rating # 10
}
}
mpo_decisions_events.0070 = {
type = character_event
title = mpo_decisions_events.0070.t
desc = mpo_decisions_events.0070.desc
theme = nomads
left_portrait = {
character = scope:great_court_astrologer_option
animation = holding_staff
camera = camera_event_left_forward
}
right_portrait = {
character = scope:good_court_astrologer_option
animation = personality_zealous
camera = camera_event_right_forward
}
override_background = {
reference = mpo_temple_steppe
}
trigger = {
exists = capital_province
}
immediate = {
# Good Character
if = { # check for a GOOD character in the pool
limit = {
any_pool_character = {
province = root.capital_province
mpo_decisions_events_0070_low_skill_trigger = yes
can_be_employed_as = court_astrologer_court_position
}
}
random_pool_character = {
province = root.capital_province
limit = {
mpo_decisions_events_0070_low_skill_trigger = yes
can_be_employed_as = court_astrologer_court_position
}
save_scope_as = good_court_astrologer_option
}
}
else = { # otherwise create one
create_character = {
location = root.capital_province
gender_female_chance = root_faith_clergy_gender_female_chance
template_character = root
random_traits = yes
random_traits_list = {
count = 1
education_learning_1 = {}
education_learning_2 = {}
}
age = { 18 50 }
learning = {
min_template_medium_skill
max_template_decent_skill
}
save_scope_as = good_court_astrologer_option
}
hidden_effect = {
scope:good_court_astrologer_option = {
save_scope_as = goodly_created
}
}
}
# Great Character
if = { # check for a GREAT character in the pool
limit = {
any_pool_character = {
province = root.capital_province
mpo_decisions_events_0070_high_skill_trigger = yes
NOT = { this = scope:good_court_astrologer_option }
can_be_employed_as = court_astrologer_court_position
}
}
ordered_pool_character = {
order_by = {
# Ok, first we group by aptitude.
value = "aptitude(court_astrologer_court_position)"
# Then we want to use learning as a tiebreaker...
## ... so make it a decimal of aptitude...
multiply = 100
## ... and _then_ add it.
add = learning
}
province = root.capital_province
limit = {
mpo_decisions_events_0070_high_skill_trigger = yes
NOT = { this = scope:good_court_astrologer_option }
can_be_employed_as = court_astrologer_court_position
}
save_scope_as = great_court_astrologer_option
}
}
else = { # otherwise create one
create_character = {
location = root.capital_province
gender_female_chance = root_faith_clergy_gender_female_chance
template_character = root
random_traits = yes
random_traits_list = {
count = 1
education_learning_2 = {}
education_learning_3 = {}
education_learning_4 = {}
}
age = { 18 50 }
learning = {
min_template_high_skill
max_template_high_skill
}
save_scope_as = great_court_astrologer_option
}
hidden_effect = {
scope:great_court_astrologer_option = {
save_scope_as = greatly_created
random_list = {
100 = {}
20 = {
add_trait = lifestyle_herbalist
}
10 = {
add_trait = lifestyle_mystic
}
10 = {
add_trait = lifestyle_mystic
add_trait_xp = {
trait = lifestyle_mystic
value = 25
}
}
5 = {
add_trait = lifestyle_mystic
add_trait_xp = {
trait = lifestyle_mystic
value = 50
}
}
5 = {
add_trait = lifestyle_mystic
add_trait_xp = {
trait = lifestyle_mystic
value = 75
}
}
}
}
}
}
}
#Great option
option = {
name = mpo_decisions_events.0070.a
custom_tooltip = mpo_decisions_events.0070.a.aptitude
pay_short_term_gold = {
target = scope:great_court_astrologer_option
gold = high_skill_court_astrologer_cost
}
add_courtier = scope:great_court_astrologer_option
if = {
limit = {
can_employ_court_position_type = court_astrologer_court_position
}
appoint_court_position = {
recipient = scope:great_court_astrologer_option
court_position = court_astrologer_court_position
}
}
else_if = {
limit = {
employs_court_position = court_astrologer_court_position
}
random_court_position_holder = {
type = court_astrologer_court_position
save_scope_as = current_court_astrologer
}
replace_court_position = {
recipient = scope:great_court_astrologer_option
holder = scope:current_court_astrologer
court_position = court_astrologer_court_position
}
}
ai_chance = {
base = 100
modifier = {
gold < high_skill_court_astrologer_cost
}
}
}
#Good option
option = {
name = mpo_decisions_events.0070.b
custom_tooltip = mpo_decisions_events.0070.b.aptitude
pay_short_term_gold = {
target = scope:good_court_astrologer_option
gold = low_skill_court_astrologer_cost
}
add_courtier = scope:good_court_astrologer_option
if = {
limit = {
can_employ_court_position_type = court_astrologer_court_position
}
appoint_court_position = {
recipient = scope:good_court_astrologer_option
court_position = court_astrologer_court_position
}
}
else_if = {
limit = {
employs_court_position = court_astrologer_court_position
}
random_court_position_holder = {
type = court_astrologer_court_position
save_scope_as = current_court_astrologer
}
replace_court_position = {
recipient = scope:good_court_astrologer_option
holder = scope:current_court_astrologer
court_position = court_astrologer_court_position
}
}
}
#Nah
option = {
name = mpo_decisions_events.0070.c
}
after = {
if = {
limit = {
exists = scope:goodly_created
NOT = {
scope:goodly_created = {
is_courtier_of = root
}
}
}
scope:goodly_created = {
silent_disappearance_effect = yes
}
}
if = {
limit = {
exists = scope:greatly_created
NOT = {
scope:greatly_created = {
is_courtier_of = root
}
}
}
scope:greatly_created = {
silent_disappearance_effect = yes
}
}
}
}
mpo_decisions_events.0120 = {
type = character_event
title = mpo_decisions_events.0120.t
desc = {
desc = mpo_decisions_events.0120.desc.intro
first_valid = {
triggered_desc = {
trigger = {
var:previous_holder = flag:subject
}
desc = mpo_decisions_events.0120.desc.subject
}
}
}
theme = nomads
left_portrait = {
character = root
animation = jockey_idle
camera = camera_event_horse_left
}
right_portrait = {
character = scope:herder
animation = obsequious_bow
}
lower_right_portrait = {
trigger = { exists = scope:nomad }
character = scope:nomad
}
immediate = {
set_variable = adventurer_to_nomad_tributary_var
location.county.holder = { save_scope_as = herder }
if = {
limit = {
scope:herder = {
is_independent_ruler = yes
is_tributary = no
}
}
set_variable = {
name = previous_holder
value = flag:independent
}
}
else = {
set_variable = {
name = previous_holder
value = flag:subject
}
if = {
limit = { exists = scope:herder.suzerain }
scope:herder.suzerain = { save_scope_as = nomad }
}
else = {
scope:herder.liege = { save_scope_as = nomad }
}
}
}
option = { # Become Tributary
name = mpo_decisions_events.0120.a
trigger = {
var:previous_holder = flag:subject
NOT = { is_tributary_of = scope:nomad } # If you are already a Tributary of overlord
}
start_tributary_interaction_effect = {
TRIBUTARY = this
SUZERAIN = scope:nomad
}
stress_impact = {
ambitious = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = ambitious
factor = 0
}
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Refuse to become Tributary
name = mpo_decisions_events.0120.b
trigger = {
var:previous_holder = flag:subject
NOT = { is_tributary_of = scope:nomad } # If you are already a Tributary of overlord
}
add_prestige_level = -1
scope:nomad = {
add_opinion = {
target = root
modifier = angry_opinion
opinion = -50
}
}
stress_impact = {
craven = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = craven
factor = 0
}
}
}
option = { # Wait, join our court
name = mpo_decisions_events.0120.c
trigger = {
var:previous_holder = flag:independent
}
add_courtier = scope:herder
stress_impact = {
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = callous
factor = 0
}
ai_value_modifier = {
ai_compassion = 1
}
}
}
option = { # We'll take it from here
name = mpo_decisions_events.0120.d
trigger = {
var:previous_holder = flag:independent
}
stress_impact = {
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = compassionate
factor = 0
}
ai_value_modifier = {
ai_compassion = 1
}
}
}
after = {
adopt_nomadic_ways_decision_event_effect = yes
remove_variable = previous_holder
remove_variable = previous_provisions
remove_variable = adventurer_to_nomad_tributary_var
}
}
# Invite Siege Engineer
scripted_trigger invite_siege_engineer_requirements = {
can_be_employed_as = siege_engineer_court_position
is_adult = yes
is_imprisoned = no
is_alive = yes # Because apparently there can be dead characters in the pool (remove when fixed)
is_claimant = no # We don't want recruiting physicians to be a cheap way of getting claimants
"aptitude(siege_engineer_court_position)" = $APTITUDE$
}
scripted_effect invite_siege_engineer_find_example = {
if = { # check for a GOOD character in the pool
limit = {
any_pool_character = {
province = root.capital_province
invite_siege_engineer_requirements = { APTITUDE = $APTITUDE$ }
}
}
random_pool_character = {
province = root.capital_province
limit = {
invite_siege_engineer_requirements = { APTITUDE = $APTITUDE$ }
}
save_scope_as = $LEVEL$_siege_engineer_option
}
}
else = { # otherwise create one
random_independent_ruler = {
weight = {
modifier = {
factor = 100
culture = {
has_same_culture_heritage = root.culture
}
}
modifier = {
factor = 100
faith.religion = root.faith.religion
}
modifier = {
factor = 1000
character_is_land_realm_neighbor = root.top_liege
}
}
limit = {
is_landed = yes
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
}
}
save_scope_as = target_character
}
create_character = {
location = root.capital_province
gender_female_chance = root_soldier_female_chance
template_character = root
random_traits = yes
culture = scope:target_character.culture
faith = scope:target_character.faith
random_traits_list = {
count = 1
education_learning_$EDUCATION_1$ = {}
education_learning_$EDUCATION_2$ = {}
}
age = { 18 50 }
learning = {
min_template_$MAIN_SKILL_MIN$_skill
max_template_$MAIN_SKILL_MAX$_skill
}
martial = {
min_template_$OTHER_SKILL_MIN$_skill
max_template_$OTHER_SKILL_MAX$_skill
}
stewardship = {
min_template_$OTHER_SKILL_MIN$_skill
max_template_$OTHER_SKILL_MAX$_skill
}
save_scope_as = $LEVEL$_siege_engineer_option
after_creation = {
save_scope_as = $LEVEL$ly_created
add_trait = military_engineer
add_trait_xp = {
trait = military_engineer
value = {
integer_range = {
min = $TRAIT_XP_MIN$
max = $TRAIT_XP_MAX$
}
}
}
}
}
}
}
scripted_effect invite_siege_engineer_appointment = {
pay_short_term_gold = {
target = scope:$SCOPE$_siege_engineer_option
gold = $LEVEL$_skill_siege_engineer_cost
}
add_courtier = scope:$SCOPE$_siege_engineer_option
if = {
limit = {
NOT = { employs_court_position = siege_engineer_court_position }
}
appoint_court_position = {
recipient = scope:$SCOPE$_siege_engineer_option
court_position = siege_engineer_court_position
}
}
else_if = {
limit = {
employs_court_position = siege_engineer_court_position
}
random_court_position_holder = {
type = siege_engineer_court_position
save_scope_as = current_siege_engineer
}
replace_court_position = {
recipient = scope:$SCOPE$_siege_engineer_option
holder = scope:current_siege_engineer
court_position = siege_engineer_court_position
}
}
hidden_effect = {
scope:$SCOPE$_siege_engineer_option = {
add_opinion = {
modifier = grateful_opinion
target = root
opinion = 25
}
}
}
}
mpo_decisions_events.0080 = {
type = character_event
title = mpo_decisions_events.0080.t
desc = mpo_decisions_events.0080.desc
theme = nomads
left_portrait = {
character = scope:great_siege_engineer_option
animation = thinking
}
right_portrait = {
character = scope:good_siege_engineer_option
animation = storyteller
}
override_background = {
reference = mpo_camp_steppe
}
immediate = {
# Good Character
invite_siege_engineer_find_example = {
APTITUDE = 4
LEVEL = good
EDUCATION_1 = 1
EDUCATION_2 = 2
MAIN_SKILL_MIN = average
MAIN_SKILL_MAX = medium
OTHER_SKILL_MIN = low
OTHER_SKILL_MAX = low
TRAIT_XP_MIN = 5
TRAIT_XP_MAX = 25
}
# Great Character
invite_siege_engineer_find_example = {
APTITUDE = 5
LEVEL = great
EDUCATION_1 = 3
EDUCATION_2 = 4
MAIN_SKILL_MIN = decent
MAIN_SKILL_MAX = decent
OTHER_SKILL_MIN = average
OTHER_SKILL_MAX = average
TRAIT_XP_MIN = 33
TRAIT_XP_MAX = 66
}
if = {
limit = {
exists = scope:good_siege_engineer_option
exists = scope:great_siege_engineer_option
"scope:good_siege_engineer_option.aptitude(siege_engineer_court_position)" > "scope:great_siege_engineer_option.aptitude(siege_engineer_court_position)"
}
scope:great_siege_engineer_option = { save_scope_as = temp_scope }
scope:good_siege_engineer_option = { save_scope_as = great_siege_engineer_option }
scope:temp_scope = { save_scope_as = good_siege_engineer_option }
}
}
#Great option
option = {
name = mpo_decisions_events.0080.a
custom_tooltip = mpo_decisions_events.0080.a.aptitude
invite_siege_engineer_appointment = {
SCOPE = great
LEVEL = high
}
ai_chance = {
base = 100
modifier = {
gold < high_skill_court_astrologer_cost
}
}
}
#Good option
option = {
name = mpo_decisions_events.0080.b
custom_tooltip = mpo_decisions_events.0080.b.aptitude
invite_siege_engineer_appointment = {
SCOPE = good
LEVEL = low
}
}
#Nah
option = {
name = mpo_decisions_events.0080.c
}
after = {
if = {
limit = {
exists = scope:goodly_created
NOT = {
scope:goodly_created = {
is_courtier_of = root
}
}
}
scope:goodly_created = {
silent_disappearance_effect = yes
}
}
if = {
limit = {
exists = scope:greatly_created
NOT = {
scope:greatly_created = {
is_courtier_of = root
}
}
}
scope:greatly_created = {
silent_disappearance_effect = yes
}
}
}
}
# Invite Foreign Emissary
scripted_trigger invite_foreign_emissary_requirements = {
can_be_employed_as = foreign_emissary_court_position
is_adult = yes
is_imprisoned = no
is_alive = yes # Because apparently there can be dead characters in the pool (remove when fixed)
is_claimant = no # We don't want recruiting physicians to be a cheap way of getting claimants
"aptitude(foreign_emissary_court_position)" = $APTITUDE$
}
scripted_effect invite_foreign_emissary_find_example = {
if = { # check for a GOOD character in the pool
limit = {
any_pool_character = {
province = root.capital_province
invite_foreign_emissary_requirements = { APTITUDE = $APTITUDE$ }
}
}
random_pool_character = {
province = root.capital_province
limit = {
invite_foreign_emissary_requirements = { APTITUDE = $APTITUDE$ }
}
save_scope_as = $LEVEL$_foreign_emissary_option
}
}
else = { # otherwise create one
random_independent_ruler = {
weight = {
modifier = {
factor = 1000
government_has_flag = government_is_republic
}
}
limit = {
is_landed = yes
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
}
}
save_scope_as = target_character
}
create_character = {
location = root.capital_province
gender_female_chance = root_soldier_female_chance
template_character = root
random_traits = yes
culture = scope:target_character.culture
faith = scope:target_character.faith
random_traits_list = {
count = 1
education_diplomacy_$EDUCATION_1$ = {}
education_diplomacy_$EDUCATION_2$ = {}
}
random_traits_list = {
count = 1
diplomat = {}
lifestyle_reveler = {}
}
age = { 18 50 }
diplomacy = {
min_template_$MAIN_SKILL_MIN$_skill
max_template_$MAIN_SKILL_MAX$_skill
}
stewardship = {
min_template_$OTHER_SKILL_MIN$_skill
max_template_$OTHER_SKILL_MAX$_skill
}
save_scope_as = $LEVEL$_foreign_emissary_option
after_creation = {
save_scope_as = $LEVEL$ly_created
}
}
}
}
scripted_effect invite_foreign_emissary_appointment = {
pay_short_term_gold = {
target = scope:$SCOPE$_foreign_emissary_option
gold = $LEVEL$_skill_foreign_emissary_cost
}
add_courtier = scope:$SCOPE$_foreign_emissary_option
if = {
limit = {
NOT = { employs_court_position = foreign_emissary_court_position }
}
appoint_court_position = {
recipient = scope:$SCOPE$_foreign_emissary_option
court_position = foreign_emissary_court_position
}
}
else_if = {
limit = {
employs_court_position = foreign_emissary_court_position
}
random_court_position_holder = {
type = foreign_emissary_court_position
save_scope_as = current_foreign_emissary
}
replace_court_position = {
recipient = scope:$SCOPE$_foreign_emissary_option
holder = scope:current_foreign_emissary
court_position = foreign_emissary_court_position
}
}
hidden_effect = {
scope:$SCOPE$_foreign_emissary_option = {
add_opinion = {
modifier = grateful_opinion
target = root
opinion = 25
}
}
}
}
mpo_decisions_events.0090 = {
type = character_event
title = mpo_decisions_events.0090.t
desc = mpo_decisions_events.0090.desc
theme = nomads
left_portrait = {
character = scope:great_foreign_emissary_option
animation = debating
}
right_portrait = {
character = scope:good_foreign_emissary_option
animation = thinking
}
override_background = {
reference = mpo_tent_interior_mongol
}
immediate = {
ordered_courtier_or_guest = {
order_by = diplomacy
limit = {
age >= 10
}
save_scope_as = courtier
}
# Good Character
invite_foreign_emissary_find_example = {
APTITUDE = 4
LEVEL = good
EDUCATION_1 = 1
EDUCATION_2 = 2
MAIN_SKILL_MIN = average
MAIN_SKILL_MAX = medium
OTHER_SKILL_MIN = low
OTHER_SKILL_MAX = low
}
# Great Character
invite_foreign_emissary_find_example = {
APTITUDE = 5
LEVEL = great
EDUCATION_1 = 3
EDUCATION_2 = 4
MAIN_SKILL_MIN = high
MAIN_SKILL_MAX = high
OTHER_SKILL_MIN = medium
OTHER_SKILL_MAX = medium
}
if = {
limit = {
exists = scope:good_foreign_emissary_option
exists = scope:great_foreign_emissary_option
"scope:good_foreign_emissary_option.aptitude(foreign_emissary_court_position)" > "scope:great_foreign_emissary_option.aptitude(foreign_emissary_court_position)"
}
scope:great_foreign_emissary_option = { save_scope_as = temp_scope }
scope:good_foreign_emissary_option = { save_scope_as = great_foreign_emissary_option }
scope:temp_scope = { save_scope_as = good_foreign_emissary_option }
}
}
#Great option
option = {
name = mpo_decisions_events.0090.a
custom_tooltip = mpo_decisions_events.0090.a.aptitude
invite_foreign_emissary_appointment = {
SCOPE = great
LEVEL = high
}
ai_chance = {
base = 100
modifier = {
gold < high_skill_court_astrologer_cost
}
}
}
#Good option
option = {
name = mpo_decisions_events.0090.b
custom_tooltip = mpo_decisions_events.0090.b.aptitude
invite_foreign_emissary_appointment = {
SCOPE = good
LEVEL = low
}
}
#Nah
option = {
name = mpo_decisions_events.0090.c
}
after = {
if = {
limit = {
exists = scope:goodly_created
NOT = {
scope:goodly_created = {
is_courtier_of = root
}
}
}
scope:goodly_created = {
silent_disappearance_effect = yes
}
}
if = {
limit = {
exists = scope:greatly_created
NOT = {
scope:greatly_created = {
is_courtier_of = root
}
}
}
scope:greatly_created = {
silent_disappearance_effect = yes
}
}
}
}