From 4a03aba91d01ffa2e2536bc34b0f43f06aa81911 Mon Sep 17 00:00:00 2001 From: Archa3opt3ryx Date: Sun, 16 Nov 2025 14:01:10 -0500 Subject: [PATCH] Poet trait updated --- N3OW/events/dlc/mpo/mpo_decisions_events.txt | 9095 ++++++++++++++++++ 1 file changed, 9095 insertions(+) create mode 100644 N3OW/events/dlc/mpo/mpo_decisions_events.txt diff --git a/N3OW/events/dlc/mpo/mpo_decisions_events.txt b/N3OW/events/dlc/mpo/mpo_decisions_events.txt new file mode 100644 index 00000000..f4919187 --- /dev/null +++ b/N3OW/events/dlc/mpo/mpo_decisions_events.txt @@ -0,0 +1,9095 @@ +################################################### +## 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 + } + } + } +}