#Generic travel events namespace = travel_events ############################ ## Travel Flavor Events ## 4000-4999 ## by James Beaumont ############################ # travel_events.4000 # Encounter a mystic on the road # travel_events.4001 # Encounter an adoring fan # travel_events.4002 # You determine that the women/men of X region are real pretty # travel_events.4003 # You encounter vikings at sea # travel_events.4004 # Fishermen at sea! # travel_events.4005 # Encounter a caravan of merchants at sea # travel_events.4006 # A local bird lands on your boat and eats some supplies # travel_events.4007 # A storm at sea # travel_events.4008 # Shipwreck! # travel_events.4012 # You are being followed by a feral child # travel_events.4015 # Asking for directions from a diff. language character # travel_events.4016 # You experience heatstroke # travel_events.4017 # Swords for hire! # travel_events.4018 # A mendicant preacher! # travel_events.4019 # You pass by a peasant street food place, demand to sample some # travel_events.4020 # Strong believers harass your caravan and demand payment # travel_events.4021 # You witness a human sacrifice! # travel_events.4022 # You witness some tree worship in a Sanctity of Nature province # travel_events.4023 # Prester John! You find a same-religion ruler in a faraway land # travel_events.4028 # You come across a runestone! # travel_events.4029 # You come across dimwit strung up on a post # travel_events.4031 # You come across a knight stuck in his armour # travel_events.4032 # You come across a noble being assaulted by a random animal # travel_events.4033 # A witch who strangely isn't being burned # travel_events.4035 # You are a witch and you're being harassed by locals # travel_events.4036 # Caravaneers want to sell you some cool stuff # travel_events.4037 # You enter a place that is syncretic with your faith # travel_events.4038 # You enter a province which your faith is syncretic with # travel_events.4039 # You enter a ritual hospitality province and are offered a rest # travel_events.4040 # You meet a xenophile character who wants to learn about your culture ##################################################################################### ############################ ## Travel Flavor Events ## 4000-4999 ## by James Beaumont ############################ # Encounter a mystic on the road travel_events.4000 = { type = character_event title = travel_events.4000.t desc = { desc = travel_events.4000.desc.intro desc = travel_events.4000.desc.mid.long_to_go desc = travel_events.4000.desc.outro } theme = travel left_portrait = { character = root animation = worry } right_portrait = { character = scope:mystic_scope animation = scheme } cooldown = { years = 30 } trigger = { static_group_filter = { group = travel_events.4000 match = 0.25 } is_available_travelling_adult = yes is_playable_character = yes is_travelling = yes is_location_valid_for_travel_event_on_land = yes } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } create_character = { template = default_mystic_character location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = mystic_scope after_creation = { add_character_flag = created } } hidden_effect = { scope:mystic_scope = { random_list = { 50 = {} 50 = { add_trait = witch } } } } } #Get a mystical reading option = { name = travel_events.4000.a remove_short_term_gold = tiny_gold_value random_list = { 50 = { send_interface_toast = { title = travel.good_reading left_icon = root if = { limit = { NOT = { has_trait = cynical } } add_stress = minor_stress_loss } add_character_modifier = { modifier = positive_roadside_reading_modifier years = 5 } } } 50 = { send_interface_toast = { title = travel.bad_reading left_icon = root add_character_modifier = { modifier = negative_roadside_reading_modifier years = 5 } } } } stress_impact = { greedy = minor_stress_impact_gain cynical = minor_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 short_term_gold < minor_gold_value } } } #They can join us option = { trigger = { OR = { root.faith = { NOR = { has_doctrine_parameter = witchcraft_illegal has_doctrine_parameter = witchcraft_shunned } } is_witch_trigger = yes root.faith = { trait_is_virtue = lifestyle_mystic } NOT = { scope:mystic_scope = { has_trait = witch } } } NOR = { has_trait = zealous has_trait = wrathful has_trait = sadistic has_trait = callous } } name = travel_events.4000.b add_courtier = scope:mystic_scope root.current_travel_plan = { add_companion = scope:mystic_scope } if = { limit = { has_trait = lifestyle_mystic } add_trait_xp = { trait = lifestyle_mystic value = lifestyle_mystic_xp_gain_minor_value } } stress_impact = { lifestyle_mystic = minor_stress_impact_loss paranoid = medium_stress_impact_gain cynical = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = 1 } modifier = { add = 10 has_trait = lifestyle_mystic } modifier = { add = -50 faith = { OR = { has_doctrine_parameter = witchcraft_illegal has_doctrine_parameter = witchcraft_shunned } OR = { NOT = { trait_is_virtue = lifestyle_mystic } scope:mystic_scope = { has_trait = witch } } } has_trait = zealous } modifier = { add = -50 OR = { has_trait = paranoid has_trait = cynical } } } } #Pass them by option = { name = travel_events.4000.c stress_impact = { paranoid = minor_stress_impact_gain zealous = minor_stress_impact_gain gregarious = minor_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = 1 } } } #Have them burned as a witch! option = { name = travel_events.4000.d trigger = { root.faith = { OR = { has_doctrine_parameter = witchcraft_illegal has_doctrine_parameter = witchcraft_shunned } } NOT = { is_witch_trigger = yes } OR = { NOT = { root.faith = { trait_is_virtue = lifestyle_mystic } } scope:mystic_scope = { has_trait = witch } } OR = { has_trait = zealous has_trait = wrathful has_trait = sadistic has_trait = callous } } scope:mystic_scope = { death = { killer = root death_reason = death_burned_witch } } add_piety = minor_piety_gain add_dread = minor_dread_gain stress_impact = { base = minor_stress_impact_gain sadistic = medium_stress_impact_loss zealous = minor_stress_impact_loss wrathful = minor_stress_impact_loss compassionate = major_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 has_trait = compassionate } } } after = { scope:mystic_scope = { silent_disappearance_ai_if_created_effect = yes } } } # Encounter an adoring fan travel_events.4001 = { type = character_event title = travel_events.4001.t desc = travel_events.4001.desc theme = travel left_portrait = { character = root animation = personality_honorable } right_portrait = { character = scope:loyal_fan_scope animation = admiration } cooldown = { years = 50 } trigger = { static_group_filter = { group = travel_events.4001 match = 0.25 } NOR = { religion = { is_in_family = rf_eastern } religion = { is_in_family = rf_sinitic } } is_available_travelling = yes # Even children were viewed to have been chosen by God and all that is_landed = yes is_location_valid_for_travel_event_on_land = yes } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_very_small } create_character = { template = loyal_fan_character location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = loyal_fan_scope after_creation = { add_character_flag = created } } hidden_effect = { scope:loyal_fan_scope = { add_opinion = { modifier = loyalty_opinion years = 50 target = root opinion = 100 } } } } #Join us, friend! option = { name = travel_events.4001.a add_courtier = scope:loyal_fan_scope root.current_travel_plan = { add_companion = scope:loyal_fan_scope } stress_impact = { arrogant = minor_stress_impact_loss paranoid = medium_stress_impact_gain shy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = paranoid has_trait = shy } } } } #Pay them to sod off option = { name = travel_events.4001.b remove_short_term_gold = tiny_gold_value stress_impact = { generous = minor_stress_impact_loss profligate = minor_stress_impact_loss greedy = medium_stress_impact_gain gregarious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 short_term_gold < medium_gold_value } modifier = { factor = 0 OR = { has_trait = greedy has_trait = gregarious } } ai_value_modifier = { ai_sociability = 1 } } } # Have them beaten up option = { name = travel_events.4001.c scope:loyal_fan_scope = { increase_wounds_no_death_effect = { REASON = fight } } stress_impact = { base = minor_stress_impact_gain sadistic = minor_stress_impact_loss callous = minor_stress_impact_loss wrathful = minor_stress_impact_loss paranoid = minor_stress_impact_loss compassionate = medium_stress_impact_gain gregarious = medium_stress_impact_gain forgiving = medium_stress_impact_gain } ai_chance = { base = 25 modifier = { factor = 2 OR = { has_trait = sadistic has_trait = callous has_trait = wrathful has_trait = paranoid } } modifier = { factor = 0 OR = { has_trait = compassionate has_trait = gregarious has_trait = forgiving } } } } after = { scope:loyal_fan_scope = { silent_disappearance_ai_if_created_effect = yes } } } # You determine that the women/men of X region are real pretty travel_events.4002 = { type = character_event title = travel_events.4002.t desc = travel_events.4002.desc theme = travel left_portrait = { character = root animation = flirtation_left } right_portrait = { character = scope:local_beauty_scope animation = love } cooldown = { years = 20 } trigger = { static_group_filter = { group = travel_events.4002 match = 0.5 } is_available_travelling_adult = yes is_landed = yes is_location_valid_for_travel_event_on_land = yes NOR = { has_trait = celibate has_trait = chaste has_sexuality = asexual # Not my culture location.county.culture = root.culture # Not a culture local to me location.county.culture = root.capital_county.culture # I'm not in my own realm is_liege_or_above_of = location.county.holder } } weight_multiplier = { base = 1 modifier = { involved_activity ?= { has_activity_type = activity_pilgrimage } add = -0.5 } modifier = { NOR = { has_trait = lustful has_trait = seducer has_trait = rakish } add = -0.5 } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_very_small } create_character = { template = local_beauty_character location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = local_beauty_scope after_creation = { add_character_flag = created } } } # Take them as your lover option = { name = travel_events.4002.a trigger = { OR = { allowed_concubines = no allowed_more_concubines = no AND = { allowed_to_marry_same_sex_trigger = no sex_same_as = scope:local_beauty_scope } } can_set_relation_lover_trigger = { CHARACTER = scope:local_beauty_scope } } add_courtier = scope:local_beauty_scope root.current_travel_plan = { add_companion = scope:local_beauty_scope } set_relation_lover = { reason = lover_first_sight target = scope:local_beauty_scope } if = { limit = { might_cheat_on_every_partner_trigger = no } add_stress = medium_stress_gain } else = { stress_impact = { lustful = medium_stress_impact_loss rakish = medium_stress_impact_loss seducer = medium_stress_impact_loss paranoid = medium_stress_impact_gain chaste = medium_stress_impact_gain shy = medium_stress_impact_gain } } ai_chance = { base = 5 modifier = { add = 95 OR = { has_trait = lustful has_trait = rakish has_trait = seducer } } modifier = { factor = 0 might_cheat_on_every_partner_trigger = no } modifier = { factor = 0 OR = { has_trait = paranoid has_trait = chaste has_trait = shy } } } } # Take them as your concubine option = { name = travel_events.4002.b trigger = { allowed_concubines = yes allowed_more_concubines = yes OR = { AND = { allowed_to_marry_same_sex_trigger = yes sex_same_as = scope:local_beauty_scope } NOT = { sex_same_as = scope:local_beauty_scope } } } add_courtier = scope:local_beauty_scope root.current_travel_plan = { add_companion = scope:local_beauty_scope } make_concubine = scope:local_beauty_scope stress_impact = { lustful = medium_stress_impact_loss paranoid = medium_stress_impact_gain chaste = medium_stress_impact_gain shy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = paranoid has_trait = chaste has_trait = shy } } } } # Take them as your spouse option = { name = travel_events.4002.c trigger = { allowed_more_spouses = yes OR = { AND = { allowed_to_marry_same_sex_trigger = yes sex_same_as = scope:local_beauty_scope } NOT = { sex_same_as = scope:local_beauty_scope } } can_marry_character_trigger = { CHARACTER = scope:local_beauty_scope } } add_courtier = scope:local_beauty_scope root.current_travel_plan = { add_companion = scope:local_beauty_scope } if = { limit = { is_male = yes } marry = scope:local_beauty_scope } else = { marry_matrilineal = scope:local_beauty_scope } stress_impact = { eccentric = major_stress_impact_loss lustful = medium_stress_impact_loss paranoid = medium_stress_impact_gain chaste = medium_stress_impact_gain shy = medium_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_rationality = -1 } modifier = { factor = 0 OR = { has_trait = paranoid has_trait = chaste has_trait = shy } } } } # Admire from afar option = { name = travel_events.4002.d scope:local_beauty_scope = { if = { limit = { root = { is_ai = yes } } silent_disappearance_effect = yes } } stress_impact = { lustful = medium_stress_impact_gain gregarious = minor_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = lustful has_trait = rakish } } } } after = { scope:local_beauty_scope = { silent_disappearance_ai_if_created_effect = yes } } } # You encounter vikings at sea scripted_trigger is_near_vikings_trigger = { NOT = { culture = { has_innovation = innovation_longboats } } location = { any_neighboring_province = { county ?= { #Not at sea, not an impassable holder = { in_diplomatic_range = root } is_coastal_county = yes has_coastal_province = yes culture = { has_innovation = innovation_longboats } faith = { has_doctrine_parameter = faith_can_raid } } } } } scripted_trigger is_near_berber_pirates_trigger = { NOT = { culture = { has_cultural_pillar = heritage_berber } } location = { any_neighboring_province = { exists = county #Not at sea, not an impassable county = { holder = { in_diplomatic_range = root } is_coastal_county = yes culture = { has_cultural_pillar = heritage_berber } } } } } travel_events.4003 = { type = character_event title = travel_events.4003.t desc = { desc = travel_events.4003.desc.intro first_valid = { triggered_desc = { trigger = { is_near_vikings_trigger = yes } desc = travel_events.4003.desc.viking } triggered_desc = { trigger = { is_near_berber_pirates_trigger = yes } desc = travel_events.4003.desc.berber_pirate } desc = travel_events.4003.desc.regular_pirate } } theme = travel_danger left_portrait = { character = root animation = fear } right_portrait = { character = scope:viking_scope animation = rage } override_background = { reference = fp1_ocean } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes location = { is_sea_province = yes any_neighboring_province = { exists = county #Is this on land and in the landed title structure. county = { holder = { in_diplomatic_range = root } has_coastal_province = yes culture = { has_innovation = innovation_longboats } faith = { has_doctrine_parameter = faith_can_raid } } } } location = { OR = { travel_danger_type = { travel_plan = root.current_travel_plan terrain = sea } travel_danger_type = { travel_plan = root.current_travel_plan terrain = coastal_sea } } } } weight_multiplier = { base = 1 modifier = { add = 1 is_near_vikings_trigger = yes } modifier = { add = 1 is_near_berber_pirates_trigger = yes } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } if = { limit = { is_near_vikings_trigger = yes } location = { random_neighboring_province = { limit = { exists = county #Not at sea, not an impassable county = { holder = { in_diplomatic_range = root } has_coastal_province = yes culture = { has_innovation = innovation_longboats } faith = { has_doctrine_parameter = faith_can_raid } } } county = { save_scope_as = pirate_county_scope } } } create_character = { template = fp1_ms_warrior_character location = root.location culture = scope:pirate_county_scope.culture faith = scope:pirate_county_scope.faith #Set up the scope save_scope_as = viking_scope after_creation = { add_character_flag = created } } } else_if = { limit = { is_near_berber_pirates_trigger = yes } location = { random_neighboring_province = { limit = { exists = county #Not at sea, not an impassable county = { holder = { in_diplomatic_range = root } has_coastal_province = yes culture = { has_cultural_pillar = heritage_berber } } } county = { save_scope_as = pirate_county_scope } } } create_character = { template = fp1_ms_warrior_character location = root.location culture = scope:pirate_county_scope.culture faith = scope:pirate_county_scope.faith #Set up the scope save_scope_as = viking_scope after_creation = { add_character_flag = created } } } else = { create_character = { template = fp1_ms_warrior_character location = root.location culture = root.culture faith = root.faith #Set up the scope save_scope_as = viking_scope after_creation = { add_character_flag = created } } } location = { save_scope_as = background_terrain_scope } } # Attempt to fight the vikings option = { name = travel_events.4003.a duel = { skill = prowess target = scope:viking_scope 45 = { # You beat up the viking captain compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel_events.4003.defeated_vikings left_icon = scope:viking_scope add_prestige = medium_prestige_gain create_character_memory = { type = won_duel participants = { duel_loser = scope:viking_scope } } if = { limit = { OR = { has_any_nickname = no has_bad_nickname = yes } } random_list = { 5 = { if= { limit = { scope:viking_scope.culture = { has_innovation = innovation_longboats } } give_nickname = nick_northmen_slayer } else = { give_nickname = nick_pirate_slayer } } 95 = {} } } } } 45 = { # You get beaten up by the viking captain compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel_events.4003.defeated_by_vikings left_icon = scope:viking_scope increase_wounds_effect = { REASON = fight } remove_short_term_gold = medium_gold_value create_character_memory = { type = lost_duel participants = { duel_winner = scope:viking_scope } } } } 10 = { # You get beaten up by the viking captain and die compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel_events.4003.defeated_by_vikings left_icon = scope:viking_scope death = { killer = scope:viking_scope death_reason = death_fight } } } } stress_impact = { calm = medium_stress_impact_gain craven = major_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = calm has_trait = craven } } } } # Attempt to bribe the vikings option = { name = travel_events.4003.b remove_short_term_gold = medium_gold_value stress_impact = { greedy = medium_stress_impact_gain wrathful = medium_stress_impact_gain brave = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = greedy has_trait = wrathful has_trait = brave } } modifier = { factor = 0 short_term_gold < medium_gold_value } } } # Attempt to outmanuever the vikings option = { name = travel_events.4003.c duel = { skills = { martial learning } target = scope:viking_scope 50 = { # You outmanuever the viking captain compare_modifier = { value = scope:duel_value multiplier = 0.5 } modifier = { factor = 2 has_trait = strategist } send_interface_toast = { title = travel_events.4003.defeated_vikings left_icon = scope:viking_scope add_prestige = medium_prestige_gain } } 50 = { # You get beaten up by the viking captain compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel_events.4003.defeated_by_vikings left_icon = scope:viking_scope increase_wounds_effect = { REASON = fight } remove_short_term_gold = medium_gold_value } create_character_memory = { type = lost_duel participants = { duel_winner = scope:viking_scope } } } 5 = { # You get beaten up by the viking captain and die compare_modifier = { value = scope:duel_value multiplier = -0.5 } death = { killer = scope:viking_scope death_reason = death_fight } } } stress_impact = { arrogant = medium_stress_impact_gain brave = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = brave } } } } # Attempt to hire the vikings as your personal guard option = { name = travel_events.4003.d duel = { skills = { diplomacy stewardship } target = scope:viking_scope 50 = { # You convince them to join you compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel_events.4003.offer_accepted left_icon = scope:viking_scope pay_short_term_gold = { target = scope:viking_scope gold = minor_gold_value } add_courtier = scope:viking_scope root.current_travel_plan = { add_companion = scope:viking_scope } } hidden_effect = { scope:viking_scope = { add_character_flag = { flag = blocked_from_leaving years = 5 } } } } 50 = { # You get beaten up by the viking captain compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel_events.4003.offer_refused left_icon = scope:viking_scope increase_wounds_effect = { REASON = fight } remove_short_term_gold = medium_gold_value } create_character_memory = { type = lost_duel participants = { duel_winner = scope:viking_scope } } } 5 = { # You get beaten up by the viking captain and die compare_modifier = { value = scope:duel_value multiplier = -0.5 } death = { killer = scope:viking_scope death_reason = death_fight } } } stress_impact = { greedy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 has_trait = greedy } modifier = { factor = 0 short_term_gold < minor_gold_value } } } after = { scope:viking_scope = { silent_disappearance_ai_if_created_effect = yes } } } # Fishermen at sea! scripted_trigger is_near_fishermen_trigger = { location = { any_neighboring_province = { exists = county #Not at sea, not an impassable county = { culture = { has_cultural_tradition = tradition_fishermen } } } } } travel_events.4004 = { type = character_event title = travel_events.4004.t desc = travel_events.4004.desc theme = travel left_portrait = { character = root animation = admiration } override_background = { reference = fp1_ocean } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes location = { is_sea_province = yes } is_near_fishermen_trigger = yes } immediate = { location = { random_neighboring_province = { limit = { exists = county #Not at sea, not an impassable county.culture = { has_cultural_tradition = tradition_fishermen } } county = { save_scope_as = fishermen_county_scope } } } create_character = { template = generic_peasant_character location = root.location culture = scope:fishermen_county_scope.culture faith = scope:fishermen_county_scope.faith #Set up the scope save_scope_as = fisherman_scope after_creation = { add_character_flag = created } } } # Negotiate for some food option = { name = travel_events.4004.a remove_short_term_gold = minor_gold_value current_travel_plan = { add_travel_plan_modifier = { modifier = travel_well_fed_travellers months = 2 } } stress_impact = { greedy = medium_stress_impact_gain arrogant = medium_stress_impact_gain wrathful = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = greedy has_trait = arrogant has_trait = wrathful } } modifier = { factor = 0 short_term_gold < minor_gold_value } } } # Attempt to plunder them for food option = { name = travel_events.4004.b duel = { skill = prowess target = scope:fisherman_scope 50 = { # You beat up the fisherman compare_modifier = { value = scope:duel_value multiplier = 0.5 } current_travel_plan = { add_travel_plan_modifier = { modifier = travel_well_fed_travellers months = 2 } } } 50 = { # You get beaten up and mugged by a lowly fisherman compare_modifier = { value = scope:duel_value multiplier = -0.5 } increase_wounds_effect = { REASON = fight } remove_short_term_gold = minor_gold_value create_character_memory = { type = lost_duel participants = { duel_winner = scope:fisherman_scope } } } } stress_impact = { vengeful = minor_stress_impact_loss arrogant = minor_stress_impact_loss wrathful = minor_stress_impact_loss sadistic = minor_stress_impact_loss callous = minor_stress_impact_loss compassionate = medium_stress_impact_gain just = medium_stress_impact_gain forgiving = medium_stress_impact_gain generous = medium_stress_impact_gain } ai_chance = { base = 50 modifier = { add = 50 OR = { has_trait = vengeful has_trait = arrogant has_trait = wrathful has_trait = sadistic has_trait = callous } } modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = forgiving has_trait = generous } } } } # Just go by without bothering the fishermen option = { name = travel_events.4004.c stress_impact = { base = minor_stress_impact_loss } ai_chance = { base = 50 } } after = { scope:fisherman_scope = { silent_disappearance_ai_if_created_effect = yes } } } # Encounter a caravan of merchants at sea scripted_trigger nearby_merchant_culture = { culture = { OR = { has_cultural_tradition = tradition_maritime_mercantilism has_cultural_tradition = tradition_diasporic } } } travel_events.4005 = { type = character_event title = travel_events.4005.t desc = travel_events.4005.desc theme = travel left_portrait = { character = root animation = personality_bold } right_portrait = { character = scope:merchant_character_scope animation = admiration } artifact = { target = scope:merchant_artifact_scope position = lower_left_portrait } override_background = { reference = fp1_ocean } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes location = { is_sea_province = yes any_neighboring_province = { exists = county #Ie this is not a Sea province or an Impassable, etc county.holder = { any_courtier = { nearby_merchant_culture = yes } } } } } immediate = { save_scope_as = root_scope wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } hidden_effect = { location = { random_neighboring_province = { limit = { exists = county #Ie this is not a Sea province or an Impassable, etc county.holder = { any_courtier = { nearby_merchant_culture = yes } } } county.holder = { random_courtier = { limit = { nearby_merchant_culture = yes } save_scope_as = merchant_base_scope } } } } create_character = { template = generic_peasant_character location = root.location culture = scope:merchant_base_scope.culture faith = scope:merchant_base_scope.faith #Set up the scope save_scope_as = merchant_character_scope after_creation = { add_character_flag = created } } scope:merchant_character_scope = { random_list = { 10 = { set_artifact_rarity_masterwork = yes create_artifact = { name = maritime_trading_handbook description = maritime_trading_handbook_description type = journal visuals = book modifier = character_travel_speed_1 modifier = artifact_monthly_stewardship_lifestyle_xp_3_modifier modifier = artifact_naval_speed_2_modifier wealth = scope:wealth quality = scope:quality save_scope_as = merchant_artifact_scope } } 10 = { set_artifact_rarity_masterwork = yes create_artifact = { name = own_holy_text_mid description = own_holy_text_mid_description type = journal visuals = book template = holy_book_template modifier = artifact_monthly_learning_lifestyle_xp_2_modifier modifier = artifact_monthly_piety_3_modifier modifier = artifact_learning_per_piety_level_modifier wealth = scope:wealth quality = scope:quality save_scope_as = merchant_artifact_scope } scope:merchant_artifact_scope = { set_variable = { name = relic_religion value = root.religion } } } 10 = { set_artifact_rarity_masterwork = yes create_artifact = { name = merchants_holy_text_mid description = merchants_holy_text_mid_description type = journal visuals = book template = holy_book_template modifier = artifact_monthly_learning_lifestyle_xp_2_modifier modifier = artifact_monthly_piety_3_modifier modifier = artifact_learning_per_piety_level_modifier wealth = scope:wealth quality = scope:quality save_scope_as = merchant_artifact_scope } scope:merchant_artifact_scope = { set_variable = { name = relic_religion value = scope:merchant_character_scope.religion } } } 5 = { set_artifact_rarity_masterwork = yes create_artifact = { name = merchants_sword description = merchants_sword_description type = sword visuals = sword modifier = artifact_prowess_4_modifier modifier = artifact_monthly_prestige_3_modifier wealth = scope:wealth quality = scope:quality save_scope_as = merchant_artifact_scope } } } } } } # Buy the artifact! option = { name = travel_events.4005.a if = { limit = { scope:merchant_artifact_scope = { rarity = famed } } remove_short_term_gold = major_gold_value } else = { remove_short_term_gold = medium_gold_value } scope:merchant_artifact_scope = { set_owner = root } stress_impact = { generous = medium_stress_impact_loss greedy = medium_stress_impact_gain callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = greedy has_trait = callous has_trait = sadistic } } modifier = { factor = 0 short_term_gold <= major_gold_value } } } # Attempt to steal the artifact option = { name = travel_events.4005.b duel = { skill = intrigue value = very_high_skill_rating 50 = { # You beat up the fisherman compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.stole_artifact left_icon = root scope:merchant_artifact_scope = { set_owner = root } } } 50 = { # You get caught and exposed as a dirty thief! compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.caught_red_handed left_icon = root increase_wounds_no_death_effect = { REASON = fight } add_prestige = major_prestige_loss } } } stress_impact = { sadistic = minor_stress_impact_loss callous = minor_stress_impact_loss compassionate = medium_stress_impact_gain just = medium_stress_impact_gain forgiving = medium_stress_impact_gain craven = medium_stress_impact_gain generous = major_stress_impact_gain } ai_chance = { base = 50 modifier = { add = 50 OR = { has_trait = sadistic has_trait = callous } } modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = forgiving has_trait = generous has_trait = craven } } } } # Just go by without buying anything option = { name = travel_events.4005.c stress_impact = { generous = medium_stress_impact_gain } ai_chance = { base = 50 modifier = { factor = 0 has_trait = generous } } } after = { hidden_effect = { if = { limit = { scope:merchant_artifact_scope.artifact_owner != root } destroy_artifact = scope:merchant_artifact_scope } if = { limit = { is_ai = yes } scope:merchant_character_scope = { if = { limit = { root = { is_ai = yes } } silent_disappearance_effect = yes } } } } } } # A local bird lands on your boat and eats some supplies travel_events.4006 = { type = character_event title = travel_events.4006.t desc = travel_events.4006.desc theme = travel left_portrait = { character = root animation = rage } right_portrait = { character = scope:superstituous_caravan_member animation = fear } override_background = { reference = fp1_ocean } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes location = { is_sea_province = yes } current_travel_plan = { any_entourage_character = { opinion = { value <= low_negative_opinion target = root } } } } immediate = { root.current_travel_plan = { random_entourage_character = { limit = { opinion = { value <= low_negative_opinion target = root } } weight = { base = 1 # Try to find someone relevant modifier = { is_powerful_vassal_of = root add = 2 } modifier = { is_close_family_of = root add = 2 } modifier = { this = root.current_travel_plan.travel_leader add = 10 } # Try to find someone who would be upset over this modifier = { has_trait = compassionate add = 1 } modifier = { has_trait = zealous add = 1 } modifier = { has_trait = cynical factor = 0.01 } } save_scope_as = superstituous_caravan_member } } } # Alas, nothing to be done option = { name = travel_events.4006.a current_travel_plan = { add_travel_plan_modifier = { modifier = bird_ate_supplies years = 2 } } change_current_weight = -10 progress_towards_friend_effect = { REASON = friend_listened_to_advice CHARACTER = scope:superstituous_caravan_member OPINION = default_friend_opinion } stress_impact = { base = minor_stress_impact_gain vengeful = medium_stress_impact_gain callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = vengeful has_trait = callous has_trait = sadistic } } } } # Kill the bloody bird! option = { name = travel_events.4006.b progress_towards_rival_effect = { REASON = rival_belittled_beliefs CHARACTER = scope:superstituous_caravan_member OPINION = default_rival_opinion } random_list = { 50 = { send_interface_toast = { title = travel.supersititions_abated left_icon = root add_stress = minor_stress_loss current_travel_plan = { add_travel_plan_modifier = { modifier = ate_a_bird years = 2 } } } } 50 = { modifier = { factor = 0.5 has_trait = cynical } send_interface_toast = { title = travel.birds_curse left_icon = root add_stress = minor_stress_gain current_travel_plan = { add_travel_plan_modifier = { modifier = bird_superstition years = 2 } } } } } ai_chance = { base = 50 modifier = { add = 50 OR = { has_trait = sadistic has_trait = callous } } modifier = { factor = 0 OR = { has_trait = compassionate has_trait = zealous } } } } } # A storm at sea travel_events.4007 = { type = character_event title = travel_events.4007.t desc = travel_events.4007.desc theme = travel left_portrait = { character = root animation = fear } right_portrait = { character = root.current_travel_plan.travel_leader animation = stress } override_background = { reference = fp1_ocean } cooldown = { months = 1 } trigger = { exists = current_travel_plan.travel_leader NOT = { current_travel_plan.travel_leader = root } is_available_travelling = yes is_playable_character = yes location = { has_sea_danger_type = { TRAVEL = root.current_travel_plan } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_high } hidden_effect = { while = { count = 5 current_travel_plan = { random_entourage_character = { limit = { this != root } weight = { base = 1 # Try to find someone relevant modifier = { is_close_family_of = root add = 1 } } add_to_list = drowning_courtiers_list } } } } traveler_danger_xp_effect = { MIN = 3 MAX = 7 } } # Trust your guide leader's judgement option = { name = travel_events.4007.a current_travel_plan.travel_leader = { duel = { skill = martial value = high_skill_rating 50 = { # You manage to navigate the storm compare_modifier = { value = scope:duel_value multiplier = 0.5 } custom_tooltip = succesfully_navigate_the_storm_tt hidden_effect = { root = { send_interface_toast = { title = succesfully_navigate_the_storm_tt left_icon = root add_prestige = 10 } } } } 40 = { # You mess up and get someone killed compare_modifier = { value = scope:duel_value multiplier = -0.5 } add_prestige = medium_prestige_loss increase_wounds_effect = { REASON = drowned } custom_tooltip = someone_drowns_tt hidden_effect = { root = { send_interface_toast = { title = someone_drowns_tt left_icon = root random_in_list = { list = drowning_courtiers_list death = { death_reason = death_drowned } } } } } } 10 = { # They mess up a lot and drown a lot of people compare_modifier = { value = scope:duel_value multiplier = -0.5 } increase_wounds_effect = { REASON = drowned } custom_tooltip = some_people_drown_tt hidden_effect = { root = { send_interface_toast = { title = some_people_drown_tt left_icon = root every_in_list = { list = drowning_courtiers_list death = { death_reason = death_drowned } } } } } } } } stress_impact = { arrogant = medium_stress_impact_gain brave = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = brave } } } } # Take the helm yourself! option = { name = travel_events.4007.b stress_impact = { arrogant = minor_stress_impact_loss craven = medium_stress_impact_gain } progress_towards_rival_effect = { REASON = rival_upstaged_at_sea CHARACTER = root.current_travel_plan.travel_leader OPINION = default_rival_opinion } duel = { skill = martial value = high_skill_rating 50 = { # You manage to navigate the storm compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = succesfully_navigate_the_storm_tt left_icon = root add_prestige = medium_prestige_gain } } 40 = { # You mess up and get someone killed compare_modifier = { value = scope:duel_value multiplier = -0.5 } custom_tooltip = some_people_drown_tt hidden_effect = { send_interface_toast = { title = some_people_drown_tt left_icon = root every_in_list = { list = drowning_courtiers_list death = { death_reason = death_drowned } } add_prestige = medium_prestige_loss increase_wounds_effect = { REASON = drowned } } } } 10 = { # You really mess up and get yourself drowned compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = you_drown_tt left_icon = root add_prestige = medium_prestige_loss death = { death_reason = death_drowned } } } } ai_chance = { base = 50 modifier = { add = 50 has_trait = arrogant } modifier = { factor = 0 has_trait = craven } } } # Follow the experienced sailors to shore option = { name = travel_events.4007.c trigger = { location = { any_neighboring_province = { exists = county #Not at sea, not an impassable county.culture = { OR = { has_cultural_tradition = tradition_seafaring has_cultural_tradition = tradition_fishermen } } } } } add_prestige = minor_prestige_gain stress_impact = { arrogant = medium_stress_impact_gain brave = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = brave } } } } } # Shipwreck! travel_events.4008 = { type = character_event title = travel_events.4008.t desc = travel_events.4008.desc theme = travel left_portrait = { character = root animation = personality_rational } override_background = { reference = fp1_ocean } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes location = { is_sea_province = yes } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } mp_delay_travel_plan = { DAYS = 90 } } # Investigate the wreck option = { name = travel_events.4008.a current_travel_plan = { delay_travel_plan = { weeks = 1 add = yes } } duel = { skill = intrigue value = medium_skill_rating 60 = { # You find something cool compare_modifier = { value = scope:duel_value multiplier = 0.5 } add_prestige = medium_prestige_gain custom_tooltip = find_something_cool_tt hidden_effect = { random_list = { 50 = { # A cool artifact trigger_event = travel_events.4009 } 50 = { # Treasure! trigger_event = travel_events.4010 } 50 = { # A survivor! trigger = { location = { any_neighboring_province = { is_sea_province = no has_holding = yes } } } trigger_event = travel_events.4011 } } } } 40 = { # You find nothing compare_modifier = { value = scope:duel_value multiplier = -0.5 } custom_tooltip = you_find_nothing_tt send_interface_toast = { title = you_find_nothing_tt left_icon = root add_prestige = minor_prestige_loss } } } stress_impact = { craven = medium_stress_impact_gain paranoid = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = craven has_trait = paranoid } } } } # Ignore it option = { name = travel_events.4008.b stress_impact = { arrogant = medium_stress_impact_gain brave = medium_stress_impact_gain curious = medium_stress_impact_gain } ai_chance = { base = 50 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = brave has_trait = curious } } } } after = { mp_resume_travel_plan = yes } } # Shipwreck, a trinket! travel_events.4009 = { type = character_event title = travel_events.4009.t desc = travel_events.4009.desc theme = travel left_portrait = { character = root animation = admiration } artifact = { target = scope:new_trinket position = lower_left_portrait } override_background = { reference = fp1_ocean } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } generate_trinket_effect = { TRINKET_RECEIVER = root TRINKET_GIVER = root GRAB_ALL_TRINKETS = yes HISTORY_TYPE = discovered } } # Cool dude option = { name = travel_events.4009.a } } # Shipwreck, treasure! travel_events.4010 = { type = character_event title = travel_events.4010.t desc = travel_events.4010.desc theme = travel left_portrait = { character = root animation = admiration } override_background = { reference = fp1_ocean } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } } # Cool dude option = { name = travel_events.4010.a add_gold = minor_gold_value } } # Shipwreck, a survivor! travel_events.4011 = { type = character_event title = travel_events.4011.t desc = travel_events.4011.desc theme = travel left_portrait = { character = root animation = shock } right_portrait = { character = scope:castaway_scope animation = ecstasy } override_background = { reference = fp1_ocean } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } root.location = { random_neighboring_province = { limit = { is_sea_province = no has_holding = yes } county = { save_scope_as = nearby_coast_scope } } } create_character = { template = castaway_character location = root.location culture = scope:nearby_coast_scope.culture faith = scope:nearby_coast_scope.faith #Set up the scope save_scope_as = castaway_scope after_creation = { add_character_flag = created } } } # Help them to shore option = { name = travel_events.4011.a add_piety = minor_piety_value add_gold = minor_gold_value stress_impact = { arrogant = minor_stress_impact_gain callous = minor_stress_impact_gain sadistic = medium_stress_impact_gain } } # Recruit them to your court option = { name = travel_events.4011.b add_courtier = scope:castaway_scope root.current_travel_plan = { add_companion = scope:castaway_scope } add_gold = minor_gold_value stress_impact = { sadistic = minor_stress_impact_gain callous = minor_stress_impact_gain paranoid = medium_stress_impact_gain shy = medium_stress_impact_gain } } # Abandon them there option = { name = travel_events.4011.c stress_impact = { callous = minor_stress_impact_loss paranoid = minor_stress_impact_loss sadistic = medium_stress_impact_loss just = medium_stress_impact_gain compassionate = massive_stress_impact_gain } } after = { scope:castaway_scope = { silent_disappearance_ai_if_created_effect = yes } } } # You are being followed by a feral child travel_events.4012 = { type = character_event title = travel_events.4012.t desc = travel_events.4012.desc theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:feral_child_scope animation = pain triggered_outfit = { outfit_tags = { beggar_rags } } } cooldown = { years = 50 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes location = { has_holding = no county = { development_level <= 5 } } trigger_if = { limit = { is_ai = yes } highest_held_title_tier >= tier_kingdom } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } create_character = { template = feral_child_template location = root.location culture = root.location.county.culture # They should look like a local faith = root.faith dynasty = none #Set up the scope save_scope_as = feral_child_scope } scope:feral_child_scope = { # Save scope to limit possible animals: big/small/dangerous/harmless/prowling select_local_animal_effect = { TYPE = prowling } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling } hidden_effect = { scope:feral_child_scope = { # They are feral, they learned very basic language from your party if = { limit = { culture != root.culture NOT = { culture = { has_same_culture_language = root.culture #Even if the child is from another culture they might speak the same language } } } set_culture = root.culture unlearn_language_of_culture = root.location.county.culture } else_if = { limit = { culture != root.culture } set_culture = root.culture #For consistency we will set the culture even if it already speaks the same language. } # Give them a cool nickname give_nickname = nick_son_of_dangerous_animal } } } # Take them as your ward option = { name = travel_events.4012.a trigger = { num_of_relation_ward < 2 } add_courtier = scope:feral_child_scope root.current_travel_plan = { add_companion = scope:feral_child_scope } scope:feral_child_scope = { set_relation_guardian = root } create_character_memory = { type = feral_child_found_memory participants = { feral_child = scope:feral_child_scope } } hidden_effect = { duel = { skill = learning value = very_high_skill_rating 50 = { # You manage to tame the child compare_modifier = { value = scope:duel_value multiplier = 0.5 } trigger_event = { id = travel_events.4013 years = 1 } } 50 = { # You fail to tame the child and they return to nature compare_modifier = { value = scope:duel_value multiplier = -0.5 } trigger_event = { id = travel_events.4014 years = 1 } } } } stress_impact = { paranoid = medium_stress_impact_gain callous = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = paranoid has_trait = callous } } } } # Ignore them option = { name = travel_events.4012.b add_character_modifier = { modifier = stalked_by_feral_child_modifier years = 2 } scope:feral_child_scope = { if = { limit = { root = { is_ai = yes } } silent_disappearance_effect = yes } } stress_impact = { compassionate = minor_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 has_trait = compassionate } } } #Have them chased away! option = { name = travel_events.4012.c duel = { skill = prowess target = scope:feral_child_scope 50 = { # You beat up the child compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.beat_feral_child left_icon = root add_dread = minor_dread_gain } } 50 = { # You get beaten up by the child compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.beaten_by_feral_child left_icon = root add_prestige = medium_prestige_loss increase_wounds_effect = { REASON = fight } } create_character_memory = { type = attacked_by_feral_child_memory participants = { feral_child = scope:feral_child_scope } } } } if = { #Can die from the wounds effect above limit = { scope:feral_child_scope = { is_alive = yes } } scope:feral_child_scope = { if = { limit = { root = { is_ai = yes } } silent_disappearance_effect = yes } } } stress_impact = { base = medium_stress_impact_gain sadistic = medium_stress_impact_loss zealous = minor_stress_impact_loss wrathful = minor_stress_impact_loss compassionate = major_stress_impact_gain } ai_chance = { base = 100 ai_value_modifier = { ai_sociability = 1 } } } } # You gain the option to adopt the child travel_events.4013 = { type = character_event title = travel_events.4013.t desc = travel_events.4013.desc theme = travel left_portrait = { character = root animation = admiration } right_portrait = { character = scope:feral_child_scope animation = personality_rational } trigger = { has_relation_ward = scope:feral_child_scope } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } scope:feral_child_scope = { if = { limit = { has_character_modifier = nonverbal_modifier } remove_character_modifier = nonverbal_modifier } if = { limit = { has_character_modifier = feral_modifier } remove_character_modifier = feral_modifier } } create_character_memory = { type = feral_child_socialised_memory participants = { feral_child = scope:feral_child_scope } } } # Adopt them as your child option = { name = travel_events.4013.a if = { limit = { exists = dynasty dynasty.dynast = root } dynasty = { add_dynasty_prestige = major_dynasty_prestige_loss } } else = { add_prestige = massive_prestige_loss } if = { limit = { is_male = yes } scope:feral_child_scope = { set_father = root } } else = { scope:feral_child_scope = { set_mother = root } } if = { limit = { exists = house } scope:feral_child_scope = { set_house = root.house } } set_relation_friend = { reason = friend_adopted target = scope:feral_child_scope } stress_impact = { compassionate = medium_stress_impact_loss paranoid = medium_stress_impact_gain callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain } ai_chance = { base = 10 # The AI should really avoid doing this modifier = { factor = 0 OR = { has_trait = paranoid has_trait = arrogant has_trait = callous has_trait = sadistic } } } } # Use this to spread word of my good deeds option = { name = travel_events.4013.b add_learning_lifestyle_xp = massive_lifestyle_xp add_piety = medium_piety_gain stress_impact = { humble = minor_stress_impact_gain compassionate = minor_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = humble has_trait = compassionate } } } } } # You fail to tame the child travel_events.4014 = { type = character_event title = travel_events.4014.t desc = travel_events.4014.desc theme = travel left_portrait = { character = root animation = disbelief } right_portrait = { character = scope:feral_child_scope animation = grief } # Try again option = { name = travel_events.4014.a trigger = { scope:feral_child_scope = { is_alive = yes } has_relation_ward = scope:feral_child_scope } duel = { skill = learning value = very_high_skill_rating 50 = { # You manage to tame the child compare_modifier = { value = scope:duel_value multiplier = 0.5 } trigger_event = { id = travel_events.4013 months = 1 } } 50 = { # You fail to tame the child and they return to nature compare_modifier = { value = scope:duel_value multiplier = -0.5 } custom_tooltip = child_returns_to_nature_tt create_character_memory = { type = feral_child_socialised_failed_memory participants = { feral_child = scope:feral_child_scope } } scope:feral_child_scope = { silent_disappearance_effect = yes } } } stress_impact = { compassionate = medium_stress_impact_loss callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain wrathful = medium_stress_impact_gain impatient = medium_stress_impact_gain } ai_chance = { base = 10 # The AI should really avoid doing this modifier = { factor = 0 OR = { has_trait = callous has_trait = sadistic has_trait = wrathful has_trait = impatient } } } } # Accept your loss and move on option = { name = travel_events.4014.b custom_tooltip = child_returns_to_nature_tt create_character_memory = { type = feral_child_socialised_failed_memory participants = { feral_child = scope:feral_child_scope } } if = { limit = { scope:feral_child_scope = { is_alive = yes } } scope:feral_child_scope = { silent_disappearance_effect = yes } } stress_impact = { patient = minor_stress_impact_gain humble = minor_stress_impact_gain compassionate = minor_stress_impact_gain arrogant = minor_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = patient has_trait = humble has_trait = compassionate has_trait = arrogant } } } } } # Asking for directions from a diff. language character travel_events.4015 = { type = character_event title = travel_events.4015.t desc = travel_events.4015.desc theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:travel_leader_scope animation = stress } cooldown = { years = 20 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes exists = current_travel_plan.travel_leader current_travel_plan.travel_leader = { NOT = { knows_language_of_culture = root.location.county.culture } } NOT = { culture = { has_same_culture_language = root.location.county.culture } } } immediate = { mp_delay_travel_plan = { DAYS = 90 } current_travel_plan.travel_leader = { save_scope_as = travel_leader_scope } } # Attempt to interpret the instructions option = { name = travel_events.4015.a trigger = { NOT = { knows_language_of_culture = location.county.culture } } duel = { skills = { diplomacy learning } value = medium_skill_rating 60 = { # You succesfully interpret the instructions compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.interpreted_instructions left_icon = root add_prestige = minor_prestige_gain current_travel_plan = { add_destination_progress = { days = 7 } } } } 40 = { # You mess up and get lost compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.got_lost left_icon = root current_travel_plan = { delay_travel_plan = { weeks = 1 add = yes } } } } } } # You speak the language and interpret the instructions option = { name = travel_events.4015.b trigger = { knows_language_of_culture = location.county.culture } add_prestige = minor_prestige_gain current_travel_plan = { add_destination_progress = { days = 7 } } } after = { mp_resume_travel_plan = yes } } # You experience heatstroke scripted_trigger 4016_is_hot_climate_trigger = { NOT = { terrain = mountains } NOT = { terrain = taiga } OR = { geographical_region = world_middle_east geographical_region = world_india geographical_region = world_africa geographical_region = world_burma geographical_region = world_asia_southeast AND = { OR = { is_desert_trigger = yes terrain = jungle } NOR = { geographical_region = world_steppe geographical_region = world_tibet } } } } scripted_trigger 4016_is_cold_climate_trigger = { # Explicitly looking for places that are *cold*, not merely that they're not hot OR = { geographical_region = world_steppe geographical_region = world_tibet NOT = { is_desert_trigger = yes } NOT = { terrain = jungle } } OR = { geographical_region = world_steppe geographical_region = world_tibet geographical_region = world_europe_west_britannia geographical_region = world_europe_west_germania geographical_region = world_europe_north terrain = mountains terrain = taiga } NOT = { geographical_region = world_europe_west_iberia geographical_region = world_europe_south geographical_region = world_middle_east geographical_region = world_india geographical_region = world_africa geographical_region = world_burma } } travel_events.4016 = { type = character_event title = travel_events.4016.t desc = { desc = travel_events.4016.desc.intro first_valid = { triggered_desc = { trigger = { root.location = { is_drylands_or_desert_trigger = yes } } desc = travel_events.4016.desc.mid.dry_heat } desc = travel_events.4016.desc.mid.humid_heat } desc = travel_events.4016.desc.outro } theme = travel_danger left_portrait = { character = root animation = stress } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes root.location = { 4016_is_hot_climate_trigger = yes } root.capital_province = { 4016_is_cold_climate_trigger = yes } } immediate = { mp_delay_travel_plan = { DAYS = 90 } } # Grit your teeth and keep going option = { name = travel_events.4016.a random_list = { 50 = { modifier = { factor = 2 OR = { has_any_illness = yes has_trait = weak has_trait = physique_bad has_trait = spindly has_trait = wheezing has_trait = bleeder } } send_interface_toast = { title = travel.got_heatstroke left_icon = root add_character_modifier = { modifier = heatstroke_modifier years = 2 } add_stress = medium_stress_gain } } 50 = { modifier = { factor = 2 OR = { has_trait = strong has_trait = physique_good has_trait = athletic } } modifier = { factor = 2 OR = { has_trait = desert_warrior has_trait = jungle_stalker has_trait = logistician } } send_interface_toast = { title = travel.found_a_place_to_cool left_icon = root add_stress = minor_stress_loss } } } stress_impact = { patient = minor_stress_impact_gain humble = minor_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = patient has_trait = humble } } } } # Attempt to steal water from your entourage option = { name = travel_events.4016.b duel = { skill = intrigue value = medium_skill_rating 50 = { # You manage to steal water without being caught compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.stole_water left_icon = root add_stress = minor_stress_loss } } 50 = { # You get caught stealing water compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.caught_stealing_water left_icon = root add_prestige = medium_prestige_loss root.current_travel_plan = { every_entourage_character = { custom = every_entourage_tt add_opinion = { modifier = angry_opinion opinion = -10 target = root } } } } } } stress_impact = { patient = minor_stress_impact_gain humble = minor_stress_impact_gain honest = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = patient has_trait = humble has_trait = honest } } } } after = { mp_resume_travel_plan = yes } } # Swords for hire! travel_events.4017 = { type = character_event title = travel_events.4017.t desc = { desc = travel_events.4017.desc.intro first_valid = { triggered_desc = { trigger = { root.location = { OR = { geographical_region = world_steppe county = { culture = { has_cultural_pillar = heritage_turkic } } county = { culture = { has_cultural_pillar = heritage_mongolic } } } county = { culture = { has_cultural_tradition = tradition_horse_lords } } } } desc = travel_events.4017.desc.mid.nomad } desc = travel_events.4017.desc.mid.swordsman } desc = travel_events.4017.desc.outro } theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:warrior_scope animation = marshal } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes root.location = { county = { culture != root.capital_county.culture culture = { OR = { has_cultural_tradition = tradition_swords_for_hire has_cultural_tradition = tradition_ep3_audacious_cadets } } } } } immediate = { create_character = { template = swords_for_hire_character location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = warrior_scope after_creation = { add_character_flag = created } } hidden_effect = { scope:warrior_scope = { give_nickname = nick_the_own_culture add_character_flag = single_combat_duel_armor } } } # Hire them! option = { name = travel_events.4017.a pay_short_term_gold = { target = scope:warrior_scope gold = minor_gold_value } add_courtier = scope:warrior_scope root.current_travel_plan = { add_companion = scope:warrior_scope } hidden_effect = { scope:warrior_scope = { add_character_flag = { flag = blocked_from_leaving years = 10 } } } stress_impact = { zealous = medium_stress_impact_gain greedy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = zealous has_trait = greedy } } modifier = { factor = 0 short_term_gold < minor_gold_value } } } # Attempt to negotiate for a lower contract option = { name = travel_events.4017.b duel = { skill = stewardship value = medium_skill_rating 50 = { # You manage to haggle the price down compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.haggle_succesful left_icon = root pay_short_term_gold = { target = scope:warrior_scope gold = tiny_gold_value } add_courtier = scope:warrior_scope root.current_travel_plan = { add_companion = scope:warrior_scope } hidden_effect = { scope:warrior_scope = { add_character_flag = { flag = blocked_from_leaving years = 10 } } } } } 50 = { # You fail and they get pissed compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.haggle_failed left_icon = root add_prestige = minor_prestige_loss } } } stress_impact = { humble = minor_stress_impact_gain shy = medium_stress_impact_gain generous = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = humble has_trait = shy has_trait = generous } } modifier = { factor = 0 short_term_gold < minor_gold_value } } } # Use them to get lower mercenary contracts option = { name = travel_events.4017.c trigger = { has_trait = avaricious } add_character_modifier = { modifier = cheaper_merc_contracts years = 5 } stress_impact = { craven = minor_stress_impact_gain generous = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = craven has_trait = generous } } } } # Move on without hiring their services option = { name = travel_events.4017.d stress_impact = { brave = minor_stress_impact_gain generous = medium_stress_impact_gain arrogant = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = brave has_trait = generous has_trait = arrogant } } } } after = { hidden_effect = { scope:warrior_scope = { remove_character_flag = single_combat_duel_armor silent_disappearance_ai_if_created_effect = yes } } } } # A mendicant preacher! travel_events.4018 = { type = character_event title = travel_events.4018.t desc = { desc = travel_events.4018.desc.intro first_valid = { triggered_desc = { trigger = { root.location = { county = { culture = { has_cultural_tradition = tradition_mendicant_mystics } } } } desc = travel_events.4018.desc.mid.mystic } desc = travel_events.4018.desc.mid.preacher } desc = travel_events.4018.desc.outro } theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:mystic_scope animation = personality_zealous } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes location = { county = { culture != root.capital_county.culture faith.religion != root.faith.religion OR = { faith = { has_doctrine_parameter = mendicant_preachers_conversion_active } culture = { has_cultural_tradition = tradition_mendicant_mystics } } } } } immediate = { create_character = { template = default_mystic_character location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = mystic_scope after_creation = { add_character_flag = created } } } # Have them burned option = { name = travel_events.4018.d trigger = { OR = { has_trait = sadistic has_trait = callous has_trait = zealous } } trait = sadistic trait = callous trait = zealous scope:mystic_scope = { death = { killer = root death_reason = death_burned_witch } } stress_impact = { sadistic = medium_stress_impact_loss callous = medium_stress_impact_loss zealous = minor_stress_impact_loss compassionate = major_stress_impact_gain just = major_stress_impact_gain calm = major_stress_impact_gain } ai_chance = { base = 0 modifier = { factor = 100 OR = { has_trait = sadistic has_trait = callous } } } } # Debate me in the arena of facts and logic option = { name = travel_events.4018.a duel = { skill = learning target = scope:mystic_scope 50 = { # You win the debate compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.debate_won left_icon = root add_piety = medium_piety_gain } } 50 = { # You lose the debate compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.debate_lost left_icon = root add_prestige = miniscule_prestige_loss add_courtier = scope:mystic_scope root.current_travel_plan = { add_companion = scope:mystic_scope } } } } stress_impact = { shy = medium_stress_impact_gain cynical = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = shy has_trait = cynical } } } } # They do make some good points... option = { name = travel_events.4018.b add_piety = major_piety_loss set_character_faith = scope:mystic_scope.faith add_courtier = scope:mystic_scope root.current_travel_plan = { add_companion = scope:mystic_scope } hidden_effect = { scope:mystic_scope = { add_character_flag = { flag = blocked_from_leaving years = 10 } } } stress_impact = { cynical = medium_stress_impact_loss zealous = major_stress_impact_gain arrogant = medium_stress_impact_gain impatient = medium_stress_impact_gain } ai_chance = { # The AI should never do this base = 0 } } # Pass them by option = { name = travel_events.4018.c stress_impact = { zealous = medium_stress_impact_gain } ai_chance = { base = 100 } } after = { scope:mystic_scope = { silent_disappearance_ai_if_created_effect = yes } } } # You pass by a peasant street food place, demand to sample some travel_events.4019 = { type = character_event title = travel_events.4019.t desc = travel_events.4019.desc theme = travel left_portrait = { character = root animation = thinking } right_portrait = { character = scope:pompous_courtier animation = personality_zealous } override_background = { reference = market } cooldown = { years = 20 } trigger = { static_group_filter = { group = travel_events.4019 match = 0.25 } is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes location = { has_holding = yes } NOT = { location.culture = { has_same_culture_heritage = root.culture } } current_travel_plan = { any_entourage_character = { is_physically_able_ai_adult = yes this != root } } } weight_multiplier = { base = 1 # Culinary art is an exceptionally rare cultrad, so I feel for visibility this should just make the event more likely rather than locking it only to culinary artists modifier = { add = 10 location.culture = { has_cultural_tradition = tradition_culinary_art } } } immediate = { current_travel_plan = { random_entourage_character = { limit = { is_physically_able_ai_adult = yes this != root } weight = { base = 1 modifier = { factor = 2 has_trait = arrogant } modifier = { factor = 0.5 NOT = { has_trait = humble } } } save_scope_as = pompous_courtier } } } # I am the Emperor and I want pudding! option = { name = travel_events.4019.a add_prestige = minor_prestige_loss random_list = { 60 = { modifier = { factor = 2 root.location.culture = { has_cultural_tradition = tradition_culinary_art } } send_interface_toast = { title = travel.good_food left_icon = root add_stress = minor_stress_loss add_character_modifier = { modifier = good_soup_modifier years = 2 } } } 30 = { send_interface_toast = { title = travel.bad_food left_icon = root add_character_modifier = { modifier = bad_soup_modifier years = 2 } } } 10 = { send_interface_toast = { title = travel.food_poisoning left_icon = root contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = no } } } } stress_impact = { gluttonous = medium_stress_impact_loss comfort_eater = medium_stress_impact_loss humble = medium_stress_impact_gain temperate = medium_stress_impact_gain inappetetic = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = temperate has_trait = humble has_trait = inappetetic } } modifier = { factor = 0 prestige <= minor_prestige_value } } } # Yes we do have better food at home... option = { name = travel_events.4019.b scope:pompous_courtier = { add_opinion = { target = root opinion = 5 modifier = respect_opinion } } stress_impact = { inappetetic = minor_stress_impact_loss temperate = minor_stress_impact_loss gluttonous = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = humble has_trait = gluttonous has_trait = content } } } } # Let's take note of the recipe option = { name = travel_events.4019.c trigger = { root.location.culture = { has_cultural_tradition = tradition_culinary_art } has_trait = scholar } add_character_modifier = { modifier = exotic_recipe_modifier years = 5 } stress_impact = { lazy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 has_trait = lazy } } } } # Strong believers harass your caravan and demand payment travel_events.4020 = { type = character_event title = travel_events.4020.t desc = travel_events.4020.desc theme = travel_danger left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:strong_believer_scope animation = rage } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes location = { county = { faith.religion != root.faith.religion culture = { has_cultural_tradition = tradition_zealous_people } } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } create_character = { template = scholar_character location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = strong_believer_scope after_creation = { add_character_flag = created } } select_local_animal_effect = { TYPE = prowling } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling } # Debate me in the arena of facts and logic option = { name = travel_events.4020.a duel = { skill = learning target = scope:strong_believer_scope 50 = { # You manage to haggle the price down compare_modifier = { value = scope:duel_value multiplier = 3.5 } send_interface_toast = { title = travel.debate_won left_icon = root add_piety = medium_piety_gain } } 50 = { # You fail and they get pissed compare_modifier = { value = scope:duel_value multiplier = -3.5 } send_interface_toast = { title = travel.debate_lost left_icon = root add_piety = medium_piety_loss remove_short_term_gold = minor_gold_value } } } stress_impact = { cynical = medium_stress_impact_gain humble = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = cynical has_trait = humble } } } } # Pay the tax option = { name = travel_events.4020.b remove_short_term_gold = minor_gold_value stress_impact = { arrogant = medium_stress_impact_gain greedy = medium_stress_impact_gain zealous = major_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = greedy has_trait = zealous } } modifier = { factor = 0 short_term_gold < minor_gold_value } } } # Have them burned option = { name = travel_events.4020.c trigger = { OR = { has_trait = sadistic has_trait = wrathful has_trait = impatient has_trait = zealous } } scope:strong_believer_scope = { death = { killer = root death_reason = death_burned_witch } } stress_impact = { sadistic = medium_stress_impact_loss callous = medium_stress_impact_loss zealous = medium_stress_impact_loss compassionate = major_stress_impact_gain just = major_stress_impact_gain calm = major_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = calm } } } } after = { scope:strong_believer_scope = { silent_disappearance_ai_if_created_effect = yes } } } # You witness a human sacrifice! travel_events.4021 = { type = character_event title = travel_events.4021.t desc = { desc = travel_events.4021.desc.intro first_valid = { triggered_desc = { trigger = { OR = { has_trait = sadistic has_trait = callous } } desc = travel_events.4021.desc.mid.sadist } desc = travel_events.4021.desc.mid } first_valid = { triggered_desc = { trigger = { is_cannibal_trigger = yes } desc = travel_events.4021.desc.outro.cannibal } triggered_desc = { trigger = { OR = { has_trait = sadistic has_trait = callous } } desc = travel_events.4021.desc.outro.sadist } desc = travel_events.4021.desc.outro } } theme = travel left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = callous has_trait = sadistic } } animation = personality_callous } animation = disbelief } right_portrait = { character = scope:sacrificed_person_scope animation = prisondungeon } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes # Human sacrifice should be shocking to you NOT = { root.faith = { has_doctrine_parameter = human_sacrifice_active } } is_location_valid_for_travel_event_on_land = yes location = { county = { faith = { has_doctrine_parameter = human_sacrifice_active } } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } create_character = { template = generic_peasant_character location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = sacrificed_person_scope after_creation = { add_character_flag = created } } if = { limit = { root.current_travel_plan = { any_entourage_character = { has_relation_rival = root is_ruler = no } } } root.current_travel_plan = { random_entourage_character = { limit = { has_relation_rival = root is_ruler = no } save_scope_as = rival_to_sacrifice } } } scope:sacrificed_person_scope = { add_character_flag = is_naked } } # Buy the sacrifice as your servant option = { name = travel_events.4021.b remove_short_term_gold = medium_gold_value add_courtier = scope:sacrificed_person_scope root.current_travel_plan = { add_companion = scope:sacrificed_person_scope } scope:sacrificed_person_scope = { add_opinion = { modifier = feast_saved_my_life_opinion target = root } } stress_impact = { sadistic = medium_stress_impact_gain callous = medium_stress_impact_gain greedy = medium_stress_impact_gain paranoid = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = greedy has_trait = zealous has_trait = paranoid } } modifier = { factor = 0 short_term_gold <= medium_gold_value } } } # Offer up your own sacrifice! option = { name = travel_events.4021.c trigger = { exists = scope:rival_to_sacrifice } add_piety = medium_piety_loss scope:rival_to_sacrifice = { death = { killer = root death_reason = death_sacrificed_to_foreign_gods } } add_courtier = scope:sacrificed_person_scope root.current_travel_plan = { add_companion = scope:sacrificed_person_scope } scope:sacrificed_person_scope = { add_opinion = { modifier = feast_saved_my_life_opinion target = root } } stress_impact = { vengeful = medium_stress_impact_loss sadistic = medium_stress_impact_loss callous = medium_stress_impact_loss compassionate = major_stress_impact_gain just = major_stress_impact_gain calm = major_stress_impact_gain forgiving = major_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = calm has_trait = forgiving } } } } # Just let it happen option = { name = { text = { first_valid = { triggered_desc = { trigger = { has_trait = sadistic } desc = travel_events.4021.a.sadist } desc = travel_events.4021.a } } } scope:sacrificed_person_scope = { death = { death_reason = death_sacrificed_to_gods } } stress_impact = { sadistic = medium_stress_impact_loss compassionate = medium_stress_impact_gain just = medium_stress_impact_gain zealous = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = zealous } } } } after = { scope:sacrificed_person_scope ?= { remove_character_flag = is_naked silent_disappearance_ai_if_created_effect = yes } } } # You witness some tree worship in a Sanctity of Nature province travel_events.4022 = { type = character_event title = travel_events.4022.t desc = travel_events.4022.desc theme = travel left_portrait = { character = root triggered_animation = { trigger = { has_trait = zealous NOT = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } } animation = anger } triggered_animation = { trigger = { has_trait = zealous faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } animation = admiration } animation = interested } right_portrait = { character = location.county.holder animation = dancing } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes location = { county = { faith != root.faith faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } } # Sit back and watch the ceremony option = { name = { text = { first_valid = { triggered_desc = { trigger = { has_trait = zealous faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } desc = travel_events.4022.a.not_so_different } triggered_desc = { trigger = { has_trait = zealous NOT = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } } desc = travel_events.4022.a.ignore_heretics } desc = travel_events.4022.a } } } stress_impact = { sadistic = medium_stress_impact_gain } if = { limit = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } add_piety = minor_piety_gain stress_impact = { zealous = minor_stress_impact_loss } } else = { stress_impact = { zealous = medium_stress_impact_gain } } if = { limit = { has_trait = lifestyle_mystic } add_trait_xp = { trait = lifestyle_mystic value = lifestyle_mystic_xp_gain_minor_value } } else = { random = { chance = root.learning add_trait = lifestyle_mystic } } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = sadistic AND = { has_trait = zealous NOT = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } } } } } } # Burn the tree! option = { name = travel_events.4022.b trigger = { NOT = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } } duel = { skill = prowess value = medium_skill_rating 50 = { # You manage to burn the tree without getting beaten up compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.burn_the_tree left_icon = root add_piety = medium_piety_gain location.county.holder = { if = { limit = { faith = root.location.county.faith } add_opinion = { target = root modifier = impious_opinion opinion = -20 } } if = { limit = { liege ?= { faith = root.location.county.faith this != root.location.county.holder } } liege = { add_opinion = { target = root modifier = impious_opinion opinion = -20 } } } if = { limit = { top_liege ?= { faith = root.location.county.faith NOR = { this = root.location.county.holder this = root.location.county.holder.liege } } } top_liege = { add_opinion = { target = root modifier = impious_opinion opinion = -20 } } } } } } 50 = { # You are beaten up attempting to burn the tree compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.beaten_by_peasants left_icon = root increase_wounds_no_death_effect = { REASON = fight } add_prestige = medium_prestige_loss } } } stress_impact = { sadistic = minor_stress_impact_loss zealous = minor_stress_impact_loss compassionate = medium_stress_impact_gain just = medium_stress_impact_gain forgiving = medium_stress_impact_gain cynical = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = cynical has_trait = just has_trait = forgiving } } ai_value_modifier = { ai_zeal = 1 } } } # Join the ceremony option = { name = travel_events.4022.c if = { limit = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } } add_piety = medium_piety_gain } if = { limit = { has_trait = lifestyle_mystic } add_trait_xp = { trait = lifestyle_mystic value = lifestyle_mystic_xp_gain_minor_value } } if = { limit = { root.location.culture != root.culture } root.culture = { change_cultural_acceptance = { target = root.location.culture value = 1 desc = cultural_acceptance_participated_in_festival } } } stress_impact = { curious = minor_stress_impact_loss gregarious = minor_stress_impact_loss shy = medium_stress_impact_loss } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = shy AND = { faith = { has_doctrine_parameter = believes_in_harmony_with_nature_invisible } has_trait = zealous } } } } } } # Prester John! You find a same-religion ruler in a faraway land travel_events.4023 = { type = character_event title = travel_events.4023.t desc = { desc = travel_events.4023.desc.intro first_valid = { triggered_desc = { trigger = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } scope:prester_john_scope = { is_male = yes } } desc = travel_events.4023.desc.mid.john } triggered_desc = { trigger = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } scope:prester_john_scope = { is_female = yes } } desc = travel_events.4023.desc.mid.joan } desc = travel_events.4023.desc.mid } desc = travel_events.4023.desc.outro } theme = travel left_portrait = { character = root triggered_animation = { trigger = { has_trait = cynical } animation = personality_cynical } animation = admiration } right_portrait = { character = scope:prester_john_scope animation = personality_zealous } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_landed = yes is_location_valid_for_travel_event_on_land = yes location.county.holder.top_liege ?= { religion = root.religion faith != root.faith # This shouldn't happen for Icelandic Catholics visiting Catholic Jerusalem NOT = { in_diplomatic_range = root } # They must be "surrounded" by other religions save_temporary_scope_as = location_top_liege any_neighboring_top_liege_realm = { count < 3 holder = { religion = scope:location_top_liege.religion } } any_neighboring_top_liege_realm = { count > 3 holder = { religion != scope:location_top_liege.religion } } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } root.location.county.holder.top_liege = { save_scope_as = prester_john_scope } save_scope_as = foreign_visitor } # Fanboy out and ask to see "Prester John" option = { name = travel_events.4023.a add_piety = minor_piety_gain custom_tooltip = john_may_reward_you_tt scope:prester_john_scope = { trigger_event = travel_events.4024 } stress_impact = { arrogant = medium_stress_impact_gain cynical = medium_stress_impact_gain shy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = cynical has_trait = shy } } } } # Visit "Prester John" and tell him that it is his duty to spread the faith option = { name = travel_events.4023.b add_piety = medium_piety_gain if = { limit = { NOT = { has_trait = holy_warrior } } add_trait = holy_warrior } hidden_effect = { scope:prester_john_scope = { trigger_event = travel_events.4025 } } stress_impact = { arrogant = medium_stress_impact_gain cynical = medium_stress_impact_gain shy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 2 OR = { has_trait = zealous has_trait = holy_warrior } } modifier = { factor = 0 OR = { has_trait = arrogant has_trait = cynical has_trait = shy } } } } # They may be [religion], but they are still [faith] heretics! option = { name = travel_events.4023.c trigger = { faith = { faith_hostility_level = { target = root.location.faith value >= faith_hostile_level } } } add_piety = minor_piety_gain stress_impact = { zealous = minor_stress_impact_loss arrogant = minor_stress_impact_loss compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = humble } } } } # That's cool I guess. Moving on option = { name = travel_events.4023.d stress_impact = { zealous = medium_stress_impact_gain curious = medium_stress_impact_gain gregarious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = zealous has_trait = curious has_trait = gregarious } } } } } # Prester John is told of the visitor travel_events.4024 = { type = character_event title = travel_events.4024.t desc = { desc = travel_events.4024.desc.intro desc = travel_events.4024.desc.mid } theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:foreign_visitor animation = admiration } cooldown = { years = 10 } immediate = { cp:councillor_court_chaplain = { save_scope_as = chaplain_scope } } # Fanboy back! Become friends :) option = { name = travel_events.4024.a add_piety = minor_piety_gain custom_tooltip = may_become_friends_tt scope:foreign_visitor = { trigger_event = travel_events.4026 } stress_impact = { arrogant = medium_stress_impact_gain cynical = medium_stress_impact_gain shy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = cynical has_trait = shy } } } } # They may be [religion], but they are still [faith] heretics! option = { name = travel_events.4024.b trigger = { # This should be true anyway, but just in case faith != scope:foreign_visitor.faith } show_as_tooltip = { duel = { skill = learning target = scope:foreign_visitor 50 = { # You win the debate compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.debate_won left_icon = root add_piety = medium_piety_gain } } 50 = { # You lose the debate compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.debate_lost left_icon = root add_piety = minor_piety_loss add_stress = minor_stress_gain } } } } hidden_effect = { scope:foreign_visitor = { trigger_event = travel_events.4027 } } stress_impact = { zealous = minor_stress_impact_loss arrogant = minor_stress_impact_loss compassionate = medium_stress_impact_gain humble = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = humble } } } } # Give them your chaplain as a gift option = { name = travel_events.4024.c trigger = { scope:chaplain_scope = { is_landed = no } is_available_allow_travelling = yes } scope:foreign_visitor = { send_interface_toast = { title = travel.gift_from_john left_icon = scope:foreign_visitor right_icon = scope:chaplain_scope add_courtier = scope:chaplain_scope root.current_travel_plan = { add_companion = scope:chaplain_scope } add_opinion = { modifier = gift_opinion opinion = 25 target = scope:prester_john_scope } } } stress_impact = { zealous = minor_stress_impact_loss arrogant = minor_stress_impact_loss gregarious = medium_stress_impact_gain just = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = gregarious has_trait = just } } } } # That's cool I guess. Moving on option = { name = travel_events.4024.d scope:foreign_visitor = { send_interface_toast = { title = travel.turned_away_from_john left_icon = scope:foreign_visitor right_icon = scope:prester_john_scope add_prestige = minor_prestige_loss add_opinion = { modifier = insulted_opinion opinion = -20 target = scope:prester_john_scope } } } stress_impact = { zealous = medium_stress_impact_gain curious = medium_stress_impact_gain gregarious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = zealous has_trait = curious has_trait = gregarious } } } } } # Prester John encouraged to to take up the sword against heretics travel_events.4025 = { type = character_event title = travel_events.4025.t desc = { desc = travel_events.4024.desc.intro desc = travel_events.4025.desc.mid } theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:foreign_visitor animation = personality_bold } cooldown = { years = 10 } # Heretic bashing time option = { name = travel_events.4025.a add_trait = holy_warrior if = { limit = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } OR = { has_any_nickname = no has_bad_nickname = yes } } if = { limit = { is_male = yes } give_nickname = nick_prester_john } else = { give_nickname = nick_prester_joan } } every_neighboring_and_across_water_top_liege_realm = { custom = travel_events.4025.different_religion_neighbors_and_vassals limit = { holder.religion != root.religion } holder = { add_opinion = { modifier = insult_opinion opinion = -25 target = root } } } #Hidden because the above tooltip should inform you hidden_effect = { every_vassal = { limit = { religion != root.religion } add_opinion = { modifier = insult_opinion opinion = -25 target = root } } } stress_impact = { zealous = medium_stress_impact_loss compassionate = medium_stress_impact_gain cynical = medium_stress_impact_gain gregarious = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = cynical has_trait = gregarious } } } } # No option = { name = travel_events.4025.b scope:foreign_visitor = { send_interface_toast = { title = travel.visitor_rejected_me left_icon = scope:foreign_visitor right_icon = scope:prester_john_scope add_opinion = { modifier = disappointed_opinion opinion = -25 target = root } } } stress_impact = { gregarious = medium_stress_impact_gain } ai_chance = { base = 0 modifier = { add = 100 has_trait = shy } } } } # Prester John wants to be penpals! travel_events.4026 = { type = character_event title = travel_events.4026.t desc = travel_events.4026.desc theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:prester_john_scope animation = admiration } cooldown = { years = 10 } # Fren time option = { name = travel_events.4026.a scope:prester_john_scope = { send_interface_toast = { title = travel.became_friends_with_visitor left_icon = scope:prester_john_scope right_icon = scope:foreign_visitor set_relation_friend = { reason = friend_respected_other_religion target = scope:foreign_visitor } } } stress_impact = { shy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 has_trait = shy } } } # No frens option = { name = travel_events.4026.b scope:prester_john_scope = { send_interface_toast = { title = travel.visitor_rejected_friendship left_icon = scope:prester_john_scope right_icon = scope:foreign_visitor add_opinion = { modifier = disappointed_opinion opinion = -25 target = root } } } stress_impact = { gregarious = medium_stress_impact_gain } ai_chance = { base = 0 modifier = { add = 100 has_trait = shy } } } } # Prester John wants to debate you travel_events.4027 = { type = character_event title = travel_events.4027.t desc = travel_events.4027.desc theme = travel left_portrait = { character = root animation = shock } right_portrait = { character = scope:prester_john_scope animation = anger } cooldown = { years = 10 } # Debate me bro option = { name = travel_events.4027.a duel = { skill = learning target = scope:prester_john_scope 50 = { # You win the debate compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.debate_won left_icon = scope:prester_john_scope right_icon = scope:foreign_visitor add_piety = medium_piety_gain } scope:prester_john_scope = { send_interface_toast = { title = travel.debate_lost left_icon = scope:prester_john_scope right_icon = scope:foreign_visitor add_piety = minor_piety_loss add_stress = minor_stress_gain } } } 50 = { # You lose the debate compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.debate_lost left_icon = scope:prester_john_scope right_icon = scope:foreign_visitor add_piety = minor_piety_loss add_stress = minor_stress_gain scope:prester_john_scope = { send_interface_toast = { title = travel.debate_won left_icon = scope:prester_john_scope right_icon = scope:foreign_visitor add_piety = medium_piety_gain } } } } } } } # You come across a runestone! travel_events.4028 = { type = character_event title = travel_events.4028.t desc = travel_events.4028.desc theme = travel left_portrait = { character = root camera = camera_event_left_away_3_4 triggered_animation = { trigger = { has_trait = zealous } animation = anger } animation = survey } cooldown = { years = 10 } override_background = { reference = fp1_runestone } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes # You're not used to Runestones NOT = { root.culture = { has_cultural_parameter = has_access_to_runestones } } # This place do be having Runestones tho location.county.culture = { has_cultural_parameter = has_access_to_runestones } # You'd be unlikely to understand the written language on the stone NOT = { knows_language_of_culture = location.county.culture } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } } # Attempt to read the runestone option = { name = travel_events.4028.a duel = { skill = learning value = high_skill_rating 50 = { # You read the runestone compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.read_runestone left_icon = root add_learning_lifestyle_xp = major_lifestyle_xp } } 50 = { # You fail compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.failed_to_read_runestone left_icon = root add_prestige = minor_prestige_loss } } } stress_impact = { scholar = medium_stress_impact_loss dull = medium_stress_impact_gain lazy = medium_stress_impact_gain zealous = medium_stress_impact_gain sadistic = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = dull has_trait = lazy has_trait = zealous has_trait = sadistic } } } } # Topple the stone! option = { name = travel_events.4028.b if = { limit = { faith_is_aniconic_trigger = yes } add_piety = medium_piety_gain } else = { add_piety = minor_piety_gain } stress_impact = { sadistic = minor_stress_impact_loss zealous = minor_stress_impact_loss compassionate = medium_stress_impact_gain craven = medium_stress_impact_gain just = medium_stress_impact_gain forgiving = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = craven has_trait = just has_trait = forgiving } } } } # Just pass by option = { name = travel_events.4028.c stress_impact = { curious = minor_stress_impact_gain zealous = minor_stress_impact_gain sadistic = medium_stress_impact_gain scholar = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = curious has_trait = zealous has_trait = sadistic has_trait = scholar } } } } } # You come across dimwit strung up on a post travel_events.4029 = { type = character_event title = travel_events.4029.t desc = { desc = travel_events.4029.desc.intro first_valid = { triggered_desc = { trigger = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } } desc = travel_events.4029.desc.mid.christian } desc = travel_events.4029.desc.mid } desc = travel_events.4029.desc.outro } theme = travel left_portrait = { character = root triggered_animation = { trigger = { has_trait = sadistic } animation = admiration } triggered_animation = { trigger = { has_trait = callous } animation = personality_rational } animation = shock } right_portrait = { character = scope:brainless_character animation = pain } override_background = { reference = battlefield } cooldown = { years = 30 } trigger = { static_group_filter = { group = wizard_of_oz_group match = 0.1 } is_available_travelling = yes is_playable_character = yes root.location = { terrain = farmlands } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } create_character = { template = brainless_character_template location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = brainless_character after_creation = { add_character_flag = created } } hidden_effect = { scope:brainless_character = { give_nickname = nick_the_thoughtless random_list = { 50 = { set_to_lowborn = yes } 50 = { # They're someone important! add_gold = 50 } } } } } # Cut them down from there option = { name = travel_events.4029.a custom_tooltip = brainless_may_reward_you_tt trigger_event = travel_events.4030 stress_impact = { compassionate = medium_stress_impact_loss paranoid = medium_stress_impact_gain callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain arbitrary = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = paranoid has_trait = callous has_trait = sadistic has_trait = arbitrary } } } } # Cut them down.... and imprison them! option = { name = travel_events.4029.b rightfully_imprison_character_effect = { TARGET = scope:brainless_character IMPRISONER = root } add_piety = minor_piety_gain stress_impact = { callous = minor_stress_impact_loss sadistic = minor_stress_impact_loss compassionate = medium_stress_impact_gain just = medium_stress_impact_gain forgiving = medium_stress_impact_gain } ai_chance = { base = 0 modifier = { add = 100 OR = { has_trait = callous has_trait = sadistic } } modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = forgiving } } } } # Just pass by option = { name = travel_events.4029.c scope:brainless_character = { if = { limit = { root = { is_ai = yes } } silent_disappearance_effect = yes } } stress_impact = { compassionate = minor_stress_impact_gain just = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just } } } } after = { scope:brainless_character = { silent_disappearance_ai_if_created_effect = yes } } } travel_events.4030 = { type = character_event title = travel_events.4030.t desc = { desc = travel_events.4030.desc.intro first_valid = { triggered_desc = { trigger = { scope:brainless_character = { is_lowborn = yes } } desc = travel_events.4030.desc.mid.lowborn } desc = travel_events.4030.desc.mid.noble } desc = travel_events.4030.desc.outro } theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:brainless_character animation = personality_forgiving } cooldown = { years = 10 } weight_multiplier = { base = 1 modifier = { involved_activity = { has_activity_type = activity_pilgrimage } factor = 0.5 } } # Welcome them to your entourage option = { name = travel_events.4030.a add_courtier = scope:brainless_character root.current_travel_plan = { add_companion = scope:brainless_character } scope:brainless_character = { add_character_flag = { flag = blocked_from_leaving years = 10 } } stress_impact = { callous = minor_stress_impact_gain sadistic = minor_stress_impact_gain shy = medium_stress_impact_gain paranoid = medium_stress_impact_gain greedy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = callous has_trait = sadistic has_trait = shy has_trait = paranoid has_trait = greedy } } } } # Take their reward option = { name = travel_events.4030.b if = { limit = { scope:brainless_character = { is_lowborn = yes } } add_gold = tiny_gold_value } else = { add_gold = minor_gold_value } add_hook = { type = favor_hook target = scope:brainless_character } if = { limit = { NOT = { # We currently don't have any doctrines that do this, but good to future-proof root.faith = { trait_is_virtue = greedy } } } add_piety = minor_piety_loss } stress_impact = { humble = medium_stress_impact_gain generous = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = humble has_trait = generous } } } } # Let them go without a reward option = { name = travel_events.4030.c add_piety = medium_piety_gain stress_impact = { greedy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 has_trait = greedy } } } after = { if = { limit = { is_ai = yes scope:brainless_character = { is_alive = yes NOT = { is_courtier_of = root } } } scope:brainless_character = { if = { limit = { root = { is_ai = yes } } silent_disappearance_effect = yes } } } } } # You come across a knight stuck in his armour travel_events.4031 = { type = character_event title = travel_events.4031.t desc = { desc = travel_events.4031.desc.intro first_valid = { triggered_desc = { trigger = { OR = { has_trait = callous has_trait = sadistic } } desc = travel_events.4031.desc.mid.callous } desc = travel_events.4031.desc.mid } desc = travel_events.4031.desc.outro } theme = travel left_portrait = { character = root triggered_animation = { trigger = { OR = { has_trait = sadistic has_trait = callous } } animation = laugh } animation = shock } right_portrait = { character = scope:heartless_knight_scope animation = rage } cooldown = { years = 30 } trigger = { static_group_filter = { group = wizard_of_oz_group match = 0.1 } is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes is_valid_for_east_asian_events_trigger = no } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } create_character = { template = heartless_knight location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = heartless_knight_scope after_creation = { add_character_flag = created } } hidden_effect = { scope:heartless_knight_scope = { if = { limit = { root = { is_ai = no } } give_nickname = nick_the_heartless } add_character_flag = single_combat_duel_armor } } } # Help them unsuit, for a reward option = { name = travel_events.4031.a add_gold = { value = minor_gold_value max = 30 } add_hook = { type = favor_hook target = scope:heartless_knight_scope } stress_impact = { callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain generous = medium_stress_impact_gain compassionate = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = callous has_trait = sadistic has_trait = generous } } } } # Help them unsuit, for their loyalty option = { name = travel_events.4031.b add_courtier = scope:heartless_knight_scope root.current_travel_plan = { add_companion = scope:heartless_knight_scope } scope:heartless_knight_scope = { add_character_flag = { flag = blocked_from_leaving years = 10 } if = { limit = { NOT = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } } custom_tooltip = ignores_gender_army_rules_tt add_character_modifier = ignores_gender_army_rules } } if = { limit = { can_employ_court_position_type = champion_court_position } court_position_grant_effect = { CANDIDATE = scope:heartless_knight_scope EMPLOYER = root POS = champion } } else_if = { limit = { can_employ_court_position_type = bodyguard_court_position } court_position_grant_effect = { CANDIDATE = scope:heartless_knight_scope EMPLOYER = root POS = bodyguard } } stress_impact = { callous = minor_stress_impact_gain sadistic = minor_stress_impact_gain paranoid = medium_stress_impact_gain greedy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = callous has_trait = sadistic has_trait = shy has_trait = paranoid has_trait = greedy } } } } # Cackle at them and walk away option = { name = travel_events.4031.c add_prestige = miniscule_prestige_gain if = { limit = { NOR = { has_trait = callous has_trait = sadistic } } stress_impact = { compassionate = minor_stress_impact_gain just = minor_stress_impact_gain forgiving = medium_stress_impact_gain greedy = medium_stress_impact_gain } } else = { stress_impact = { callous = medium_stress_impact_loss sadistic = medium_stress_impact_loss compassionate = medium_stress_impact_gain just = medium_stress_impact_gain forgiving = medium_stress_impact_gain greedy = medium_stress_impact_gain } } ai_chance = { base = 0 modifier = { add = 100 OR = { has_trait = callous has_trait = sadistic } } modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = forgiving has_trait = greedy } } } } after = { hidden_effect = { scope:heartless_knight_scope = { remove_character_flag = single_combat_duel_armor silent_disappearance_ai_if_created_effect = yes } } } } # You come across a noble being assaulted by a random animal travel_events.4032 = { type = character_event title = travel_events.4032.t desc = travel_events.4032.desc theme = travel left_portrait = { character = root scripted_animation = duel_wield_weapon } right_portrait = { character = scope:cowardly_knight_scope animation = fear } lower_right_portrait = scope:entourage_helper cooldown = { years = 30 } trigger = { static_group_filter = { group = wizard_of_oz_group match = 0.1 } is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes current_travel_plan = { any_entourage_character = { this != root is_ai = yes is_adult = yes is_healthy = yes can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_high } hidden_effect = { select_local_animal_effect = { TYPE = prowling } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling create_character = { template = cowardly_knight location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = cowardly_knight_scope after_creation = { add_character_flag = created } } scope:cowardly_knight_scope ?= { give_nickname = nick_the_craven change_trait_rank = { trait = wounded rank = 1 max = 3 } } current_travel_plan = { ordered_entourage_character = { order_by = prowess limit = { this != root is_ai = yes is_adult = yes is_healthy = yes can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } save_scope_as = entourage_helper } } } } # Entourage member helps them option = { name = travel_events.4032.b #Lower personal risk, a bit lower reward scope:entourage_helper = { duel = { skill = prowess value = high_skill_rating 50 = { # Your companion defeats the lion compare_modifier = { value = scope:duel_value multiplier = 0.5 } if = { limit = { accolade ?= { is_accolade_active = yes } } accolade = { add_glory = minor_glory_gain } } root = { send_interface_toast = { title = travel.beat_back_lion left_icon = root add_prestige = medium_prestige_gain } } } 50 = { # Your companion is mauled by a lion compare_modifier = { value = scope:duel_value multiplier = -0.5 } if = { limit = { accolade ?= { is_accolade_active = yes } } accolade = { add_glory = minor_glory_gain } } send_interface_toast = { title = travel.mauled_by_animal left_icon = root increase_wounds_effect = { REASON = wild_animal } scope:cowardly_knight_scope = { death = { death_reason = death_wild_animal } } } } } } if = { #Always the pious thing to do, even if you failed. limit = { has_pious_pilgrimage_type_trigger = yes } pious_type_option_effect = yes } stress_impact = { callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain brave = minor_stress_impact_gain } ai_chance = { base = 100 modifier = { add = -50 has_trait = sadistic } modifier = { add = -25 has_trait = brave } } } # Help them yourself option = { name = travel_events.4032.a duel = { skill = prowess value = high_skill_rating 50 = { # You fight back the lion compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.beat_back_lion left_icon = root add_prestige = medium_prestige_gain add_courtier = scope:cowardly_knight_scope root.current_travel_plan = { add_companion = scope:cowardly_knight_scope } scope:cowardly_knight_scope = { add_opinion = { modifier = feast_saved_my_life_opinion target = root } add_character_flag = { flag = blocked_from_leaving years = 10 } if = { limit = { NOT = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } } custom_tooltip = ignores_gender_army_rules_tt add_character_modifier = ignores_gender_army_rules } } } } 50 = { # You are mauled by a lion compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.mauled_by_animal left_icon = root increase_wounds_effect = { REASON = wild_animal } scope:cowardly_knight_scope = { death = { death_reason = death_wild_animal } } } } } if = { #Always the pious thing to do, even if you failed. limit = { has_pious_pilgrimage_type_trigger = yes } pious_type_option_effect = yes } stress_impact = { craven = major_stress_impact_gain callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain } ai_chance = { base = 50 modifier = { factor = 3 has_trait = brave } modifier = { factor = 0 OR = { has_trait = callous has_trait = sadistic has_trait = craven } } } } # Just walk away option = { name = travel_events.4032.c scope:cowardly_knight_scope = { death = { death_reason = death_wild_animal } } stress_impact = { callous = medium_stress_impact_loss sadistic = medium_stress_impact_loss craven = medium_stress_impact_loss compassionate = minor_stress_impact_gain just = minor_stress_impact_gain brave = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { add = -50 NOR = { has_trait = callous has_trait = sadistic } } modifier = { factor = 0.25 OR = { has_trait = compassionate has_trait = just has_trait = brave } } } } after = { scope:cowardly_knight_scope = { silent_disappearance_ai_if_created_effect = yes } } } # A witch who strangely isn't being burned travel_events.4033 = { type = character_event title = travel_events.4033.t desc = { desc = travel_events.4033.desc.intro first_valid = { triggered_desc = { trigger = { has_trait = zealous } desc = travel_events.4033.desc.mid.zealous } desc = travel_events.4033.desc.mid } } theme = travel left_portrait = { character = root triggered_animation = { trigger = { has_trait = zealous } animation = personality_callous } animation = personality_rational } right_portrait = { character = scope:witch_scope animation = personality_compassionate } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_witch_trigger = no is_location_valid_for_travel_event_on_land = yes location = { county = { faith = { has_doctrine_parameter = witchcraft_accepted } } } OR = { faith = { has_doctrine_parameter = witchcraft_shunned } faith = { has_doctrine_parameter = witchcraft_illegal } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } create_character = { template = witchy_template location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = witch_scope after_creation = { add_character_flag = created } } hidden_effect = { scope:witch_scope = { add_trait = witch } } } # Debate the sinful nature of Witchcraft option = { name = travel_events.4033.a duel = { skill = learning target = scope:witch_scope 5 = { # Critical success: the Witch becomes convinced of their own wickedness and joins you to repent compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.debate_won left_icon = root right_icon = scope:witch_scope add_piety = medium_piety_gain scope:witch_scope = { set_character_faith = root.faith remove_trait = witch } add_courtier = scope:witch_scope root.current_travel_plan = { add_companion = scope:witch_scope } } } 45 = { # You convince the peasantry that witchcraft is evil compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.debate_won left_icon = root add_piety = medium_piety_gain } } 45 = { # You fail to convince them compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.debate_lost left_icon = root add_piety = minor_piety_loss } } } stress_impact = { cynical = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = shy has_trait = cynical has_trait = arrogant has_trait = impatient } } } } # Teach me to be a Witch! option = { name = travel_events.4033.b trigger = { NOT = { has_trait = zealous } OR = { #have a witchy trait has_trait = cynical has_trait = deceitful has_trait = fickle has_trait = arbitrary } } give_witch_secret_or_trait_effect = yes add_piety = medium_piety_loss pay_short_term_gold = { target = scope:witch_scope gold = minor_gold_value } add_courtier = scope:witch_scope root.current_travel_plan = { add_companion = scope:witch_scope } set_relation_friend = scope:witch_scope hidden_effect = { scope:witch_scope = { add_character_flag = { flag = blocked_from_leaving years = 10 } } set_variable = { name = discounted_faith_to_convert_to_var value = scope:witch_scope.faith } } custom_tooltip = cheaper_to_convert_to_witchy_faith_tt stress_impact = { base = medium_stress_impact_gain cynical = medium_stress_impact_loss } ai_chance = { # The AI should never do this base = 0 modifier = { # Unless you're cynical/ambitious add = 50 has_trait = cynical } } } # Pass them by option = { name = travel_events.4033.c stress_impact = { zealous = medium_stress_impact_gain } ai_chance = { base = 100 } } # Have them burned option = { name = travel_events.4033.d trigger = { NOT = { has_trait = cynical } } duel = { skill = diplomacy value = medium_skill_rating 50 = { # You burn the witch compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.burned_witch left_icon = root add_piety = medium_piety_gain scope:witch_scope = { death = { killer = root death_reason = death_burned } } } hidden_effect = { # Get a cool witchy artifact! random_list = { 95 = { } 5 = { trigger_event = travel_events.4034 } } } } 50 = { # You get beaten up by the locals compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.beaten_by_locals left_icon = root add_prestige = medium_prestige_loss } } } stress_impact = { sadistic = medium_stress_impact_loss callous = medium_stress_impact_loss zealous = major_stress_impact_loss compassionate = medium_stress_impact_gain just = medium_stress_impact_gain calm = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = calm } } } } after = { scope:witch_scope = { silent_disappearance_ai_if_created_effect = yes } } } # A witchy artifact in the ashes travel_events.4034 = { type = character_event title = travel_events.4034.t desc = { desc = travel_events.4034.desc.intro first_valid = { triggered_desc = { trigger = { exists = var:artifact_is_bones } desc = travel_events.4034.desc.mid.bones } desc = travel_events.4034.desc.mid } desc = travel_events.4034.desc.outro } theme = travel left_portrait = { character = root animation = personality_rational } artifact = { target = scope:witchy_artifact_scope position = lower_left_portrait } override_background = { reference = battlefield } immediate = { random_list = { 10 = { set_artifact_rarity_famed = yes create_artifact = { name = jewelled_slippers description = jewelled_slippers_description type = miscellaneous visuals = small_box template = witchy_shoes_template modifier = artifact_monthly_prestige_2_modifier modifier = artifact_stress_gain_4_modifier wealth = scope:wealth quality = scope:quality save_scope_as = witchy_artifact_scope } } 10 = { set_artifact_rarity_masterwork = yes create_artifact = { name = witchcraft_book description = witchcraft_book_description type = miscellaneous visuals = book template = witchy_book_template modifier = artifact_health_gain_1_modifier modifier = artifact_learning_per_piety_level_modifier wealth = scope:wealth quality = scope:quality save_scope_as = witchy_artifact_scope } } 10 = { set_artifact_rarity_masterwork = yes create_artifact = { name = witchy_holy_text_mid description = witchy_holy_text_mid_description type = miscellaneous visuals = book template = holy_book_template modifier = artifact_monthly_piety_1_modifier modifier = artifact_learning_per_piety_level_modifier wealth = scope:wealth quality = scope:quality save_scope_as = witchy_artifact_scope } scope:witchy_artifact_scope = { set_variable = { name = relic_religion value = scope:witch_scope.religion } } } 10 = { set_artifact_rarity_masterwork = yes create_artifact = { name = immaculate_witchy_bones description = immaculate_witchy_bones_description type = miscellaneous visuals = human_skull modifier = artifact_dread_gain_mult_2_modifier wealth = scope:wealth quality = scope:quality save_scope_as = witchy_artifact_scope } set_variable = { name = artifact_is_bones value = yes days = 7 } } } } # Cool option = { name = travel_events.4034.a } } # You are a witch and you're being harassed by locals travel_events.4035 = { type = character_event title = travel_events.4035.t desc = { desc = travel_events.4035.desc.intro first_valid = { triggered_desc = { trigger = { has_trait = zealous } desc = travel_events.4035.desc.mid.zealous } desc = travel_events.4035.desc.mid } desc = travel_events.4035.desc.outro } theme = travel left_portrait = { character = root triggered_animation = { trigger = { has_trait = zealous } animation = personality_callous } animation = personality_rational } right_portrait = { character = scope:zealous_priest_scope animation = personality_compassionate } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_witch_trigger = yes is_location_valid_for_travel_event_on_land = yes location = { county = { OR = { faith = { has_doctrine_parameter = witchcraft_shunned } faith = { has_doctrine_parameter = witchcraft_illegal } } } } faith = { has_doctrine_parameter = witchcraft_accepted } } immediate = { create_character = { template = priest_character_template location = root.location culture = root.location.county.culture faith = root.location.county.faith #Set up the scope save_scope_as = zealous_priest_scope after_creation = { add_character_flag = created } } hidden_effect = { scope:zealous_priest_scope = { add_trait = zealous } } } # Debate the sinful nature of Witchcraft option = { name = travel_events.4035.a duel = { skill = learning target = scope:zealous_priest_scope 5 = { # Critical success: the Witch becomes convinced of their own wickedness and joins you to repent compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.debate_won left_icon = root right_icon = scope:zealous_priest_scope add_piety = medium_piety_gain scope:zealous_priest_scope = { set_character_faith = root.faith add_trait = witch } add_courtier = scope:zealous_priest_scope root.current_travel_plan = { add_companion = scope:zealous_priest_scope } } } 45 = { # You convince the peasantry that witchcraft is good actually compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.debate_won left_icon = root add_piety = medium_piety_gain } } 45 = { # You fail to convince them compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.debate_lost left_icon = root add_piety = minor_piety_loss add_stress = minor_stress_gain increase_wounds_effect = { REASON = burned_witch } } } } stress_impact = { shy = medium_stress_impact_gain cynical = medium_stress_impact_gain arrogant = medium_stress_impact_gain impatient = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = shy has_trait = cynical has_trait = arrogant has_trait = impatient } } } } # I repent my witchy ways! option = { name = travel_events.4035.b remove_witch_secret_or_trait_effect = yes add_piety = medium_piety_loss pay_short_term_gold = { target = scope:zealous_priest_scope gold = minor_gold_value } add_courtier = scope:zealous_priest_scope root.current_travel_plan = { add_companion = scope:zealous_priest_scope } set_relation_friend = scope:zealous_priest_scope hidden_effect = { scope:zealous_priest_scope = { add_character_flag = { flag = blocked_from_leaving years = 10 } } set_variable = { name = discounted_faith_to_convert_to_var value = scope:zealous_priest_scope.faith } } custom_tooltip = cheaper_to_convert_to_priest_faith_tt stress_impact = { base = medium_stress_impact_gain ambitious = minor_stress_impact_loss cynical = medium_stress_impact_loss content = major_stress_impact_gain zealous = massive_stress_impact_gain } ai_chance = { # The AI should never do this base = 0 modifier = { # Unless you're cynical/ambitious add = 50 OR = { has_trait = cynical has_trait = ambitious } } modifier = { # Unless you're cynical/ambitious factor = 0 OR = { has_trait = content has_trait = zealous } } } } # Run away! option = { name = travel_events.4035.c stress_impact = { zealous = medium_stress_impact_gain brave = major_stress_impact_gain } ai_chance = { base = 100 } } # Fight em option = { name = travel_events.4035.d if = { limit = { exists = root.current_travel_plan.travel_leader } root.current_travel_plan.travel_leader = { duel = { skill = prowess target = scope:zealous_priest_scope 50 = { # You beat up the witch hater compare_modifier = { value = scope:duel_value multiplier = 0.5 } root = { send_interface_toast = { title = travel.beat_zealot left_icon = root add_piety = medium_piety_gain add_prestige = minor_prestige_gain scope:zealous_priest_scope = { increase_wounds_effect = { REASON = fight } } } } } 50 = { # You get beaten up by the locals compare_modifier = { value = scope:duel_value multiplier = -0.5 } root = { send_interface_toast = { title = travel.beaten_by_locals left_icon = root prev = { increase_wounds_effect = { REASON = fight } } add_prestige = medium_prestige_loss } } } } } } else = { duel = { skill = prowess target = scope:zealous_priest_scope 50 = { # You beat up the witch hater compare_modifier = { value = scope:duel_value multiplier = 0.5 } root = { send_interface_toast = { title = travel.beat_zealot left_icon = root add_piety = medium_piety_gain add_prestige = minor_prestige_gain scope:zealous_priest_scope = { increase_wounds_effect = { REASON = fight } } } } } 50 = { # You get beaten up by the locals compare_modifier = { value = scope:duel_value multiplier = -0.5 } root = { send_interface_toast = { title = travel.beaten_by_locals left_icon = root prev = { increase_wounds_effect = { REASON = fight } } add_prestige = medium_prestige_loss } } } } } stress_impact = { sadistic = medium_stress_impact_loss callous = medium_stress_impact_loss zealous = minor_stress_impact_loss compassionate = major_stress_impact_gain just = major_stress_impact_gain calm = major_stress_impact_gain craven = major_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = calm has_trait = craven } } } } after = { scope:zealous_priest_scope = { silent_disappearance_ai_if_created_effect = yes } } } # Caravaneers want to sell you some cool stuff travel_events.4036 = { type = character_event title = travel_events.4036.t desc = travel_events.4036.desc theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:merchant_character_scope animation = admiration } artifact = { target = scope:merchant_artifact_scope position = lower_left_portrait } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes location.culture = { has_cultural_tradition = tradition_caravaneers } } immediate = { create_character = { template = generic_peasant_character location = root.location culture = root.location.culture faith = root.location.faith #Set up the scope save_scope_as = merchant_character_scope after_creation = { add_character_flag = created } } root.location.kingdom = { save_scope_as = kingdom_scope } scope:merchant_character_scope = { hidden_effect = { add_trait = avaricious random_list = { 10 = { set_artifact_rarity_masterwork = yes create_artifact = { name = mysterious_lamp description = mysterious_lamp_description type = goblet visuals = riches modifier = artifact_monthly_prestige_2_modifier modifier = artifact_court_grandeur_baseline_add_5_modifier wealth = scope:wealth quality = scope:quality save_scope_as = merchant_artifact_scope } } 10 = { set_artifact_rarity_masterwork = yes create_artifact = { name = mysterious_puzzle description = mysterious_puzzle_description type = miscellaneous visuals = small_box template = mysterious_puzzle_template modifier = artifact_learn_language_scheme_phase_duration_add_2_modifier modifier = artifact_learning_per_stress_level_2_modifier wealth = scope:wealth quality = scope:quality save_scope_as = merchant_artifact_scope } } 5 = { set_artifact_rarity_famed = yes create_artifact = { name = lunchbox description = lunchbox_description type = miscellaneous visuals = small_box modifier = artifact_negate_health_penalty_add_2_modifier modifier = artifact_stress_gain_4_modifier wealth = scope:wealth quality = scope:quality save_scope_as = merchant_artifact_scope } } } } } } # Buy the artifact! option = { name = travel_events.4036.a if = { limit = { scope:merchant_artifact_scope = { rarity = famed } } remove_short_term_gold = major_gold_value } else = { remove_short_term_gold = medium_gold_value } scope:merchant_artifact_scope = { set_owner = root } stress_impact = { greedy = medium_stress_impact_gain callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = greedy has_trait = callous has_trait = sadistic } } modifier = { factor = 0 short_term_gold <= major_gold_value } } } # Attempt to steal the artifact option = { name = travel_events.4036.b duel = { skill = intrigue value = very_high_skill_rating 50 = { # You beat up the fisherman compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.stole_artifact left_icon = root scope:merchant_artifact_scope = { set_owner = root } } } 50 = { # You get caught and exposed as a dirty thief! compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.caught_red_handed left_icon = root increase_wounds_no_death_effect = { REASON = fight } add_prestige = major_prestige_loss add_character_modifier = { modifier = caught_thief_modifier years = 5 } } } } stress_impact = { sadistic = minor_stress_impact_loss callous = minor_stress_impact_loss base = medium_stress_impact_gain compassionate = medium_stress_impact_gain just = medium_stress_impact_gain forgiving = medium_stress_impact_gain craven = medium_stress_impact_gain generous = major_stress_impact_gain } ai_chance = { base = 50 modifier = { add = 50 OR = { has_trait = sadistic has_trait = callous } } modifier = { factor = 0 OR = { has_trait = compassionate has_trait = just has_trait = forgiving has_trait = generous has_trait = craven } } } } # Haggle the price option = { name = travel_events.4036.d duel = { skill = stewardship target = scope:merchant_character_scope 50 = { # You pay a lower price compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.haggled_for_artifact left_icon = root scope:merchant_artifact_scope = { set_owner = root } if = { limit = { scope:merchant_artifact_scope = { rarity = famed } } remove_short_term_gold = medium_gold_value } else = { remove_short_term_gold = minor_gold_value } } } 50 = { # You pay a higher price compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.failed_to_haggle left_icon = root scope:merchant_artifact_scope = { set_owner = root } if = { limit = { scope:merchant_artifact_scope = { rarity = famed } } remove_short_term_gold = massive_gold_value } else = { remove_short_term_gold = major_gold_value } } } } stress_impact = { shy = medium_stress_impact_gain deceitful = medium_stress_impact_gain honest = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = shy has_trait = deceitful has_trait = honest } } modifier = { factor = 0 short_term_gold <= major_gold_value } } } # Just go by without buying anything option = { name = travel_events.4036.c ai_chance = { base = 50 modifier = { add = 100 gold <= massive_gold_value } } } after = { hidden_effect = { if = { limit = { scope:merchant_artifact_scope.artifact_owner != root } destroy_artifact = scope:merchant_artifact_scope } scope:merchant_character_scope = { if = { limit = { root = { is_ai = yes } } silent_disappearance_effect = yes } } } } } # You enter a place that is syncretic with your faith travel_events.4037 = { type = character_event title = travel_events.4037.t desc = travel_events.4037.desc theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:fanboy_character_scope animation = admiration } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes location.faith != root.faith OR = { AND = { religion = { is_in_family = rf_eastern } location.faith = { has_doctrine_parameter = eastern_syncretic_actor_opinion_active } } AND = { faith = { has_doctrine_parameter = unreformed } location.faith = { has_doctrine_parameter = unreformed_syncretic_actor_opinion_active } } AND = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } location.faith = { has_doctrine_parameter = christian_syncretic_actor_opinion_active } } AND = { religion = religion:islam_religion location.faith = { has_doctrine_parameter = islamic_syncretic_actor_opinion_active } } AND = { religion = religion:judaism_religion location.faith = { has_doctrine_parameter = jewish_syncretic_actor_opinion_active } } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } create_character = { template = generic_peasant_character location = root.location culture = root.location.culture faith = root.location.faith #Set up the scope save_scope_as = fanboy_character_scope after_creation = { add_character_flag = created } } } # Ah, let me teach you all about our lord and savior option = { name = travel_events.4037.a duel = { skill = learning value = medium_skill_rating 50 = { # You perform a good cermon compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.good_cermon left_icon = root add_piety = medium_piety_gain } } 50 = { # You perform a mediocre cermon compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.bad_cermon left_icon = root add_piety = minor_piety_gain } } } if = { limit = { has_trait = lifestyle_mystic } add_trait_xp = { trait = lifestyle_mystic value = lifestyle_mystic_xp_gain_minor_value } } stress_impact = { arrogant = medium_stress_impact_gain lazy = medium_stress_impact_gain shy = medium_stress_impact_gain callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain cynical = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = lazy has_trait = shy has_trait = callous has_trait = sadistic has_trait = cynical } } } } # I'm more interested in hearing about your faith! option = { name = travel_events.4037.b add_courtier = scope:fanboy_character_scope root.current_travel_plan = { add_companion = scope:fanboy_character_scope } set_relation_friend = { reason = friend_respected_other_religion target = scope:fanboy_character_scope } hidden_effect = { scope:fanboy_character_scope = { add_character_flag = { flag = blocked_from_leaving years = 10 } } set_variable = { name = discounted_faith_to_convert_to_var value = scope:fanboy_character_scope.faith } } custom_tooltip = cheaper_to_convert_to_fanboy_faith_tt stress_impact = { shy = medium_stress_impact_gain callous = medium_stress_impact_gain sadistic = medium_stress_impact_gain zealous = medium_stress_impact_gain arrogant = major_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = shy has_trait = callous has_trait = sadistic has_trait = zealous has_trait = arrogant } } } } # Eww go away, syncretic weirdos option = { name = travel_events.4037.c stress_impact = { base = medium_stress_impact_gain zealous = medium_stress_impact_loss gregarious = minor_stress_impact_gain compassionate = medium_stress_impact_gain arrogant = medium_stress_impact_gain } ai_chance = { base = 50 modifier = { factor = 0 OR = { has_trait = gregarious has_trait = compassionate has_trait = arrogant } } } } after = { scope:fanboy_character_scope = { silent_disappearance_ai_if_created_effect = yes } } } # You enter a province which your faith is syncretic with travel_events.4038 = { type = character_event title = travel_events.4038.t desc = travel_events.4038.desc theme = travel left_portrait = { character = root animation = personality_rational } right_portrait = { character = scope:zealous_priest_scope animation = admiration } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes location = { # Make sure this is a church held by a theocratic or lay clergy character has_holding = yes has_holding_type = church_holding barony = { has_wrong_holding_type = no } # Make sure you don't bother player lay clergy characters barony.holder = { is_ai = yes } barony.holder != root } OR = { AND = { faith = { has_doctrine_parameter = eastern_syncretic_actor_opinion_active } location.religion = { is_in_family = rf_eastern } } AND = { faith = { has_doctrine_parameter = unreformed_syncretic_actor_opinion_active } location.faith = { has_doctrine_parameter = unreformed } } AND = { faith = { has_doctrine_parameter = christian_syncretic_actor_opinion_active } OR = { location.religion = religion:eastern_orthodox_religion location.religion = religion:catholic_religion location.religion = religion:protestant_religion } } AND = { faith = { has_doctrine_parameter = islamic_syncretic_actor_opinion_active } location.religion = religion:islam_religion } AND = { faith = { has_doctrine_parameter = jewish_syncretic_actor_opinion_active } location.religion = religion:judaism_religion } } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } location.barony.holder = { save_scope_as = zealous_priest_scope } } # Let me attend a sermon! option = { name = travel_events.4038.a set_relation_friend = { reason = friend_respected_other_religion target = scope:zealous_priest_scope } hidden_effect = { set_variable = { name = discounted_faith_to_convert_to_var value = scope:zealous_priest_scope.faith } } custom_tooltip = cheaper_to_convert_to_priest_faith_tt add_learning_lifestyle_xp = minor_lifestyle_xp if = { limit = { has_trait = lifestyle_mystic } add_trait_xp = { trait = lifestyle_mystic value = lifestyle_mystic_xp_gain_minor_value } } stress_impact = { shy = medium_stress_impact_gain lazy = medium_stress_impact_gain cynical = medium_stress_impact_gain zealous = medium_stress_impact_gain arrogant = major_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = shy has_trait = arrogant has_trait = lazy has_trait = cynical has_trait = zealous has_trait = arrogant } } } } # Perhaps they would be interested in our perspective option = { name = travel_events.4038.b duel = { skill = learning target = scope:zealous_priest_scope 50 = { # You perform a good cermon compare_modifier = { value = scope:duel_value multiplier = 0.5 } send_interface_toast = { title = travel.good_cermon left_icon = root add_piety = medium_piety_gain add_learning_lifestyle_perk_points = 1 } } 50 = { # You perform a mediocre cermon compare_modifier = { value = scope:duel_value multiplier = -0.5 } send_interface_toast = { title = travel.bad_cermon left_icon = root add_piety = minor_piety_loss if = { limit = { faith = { has_doctrine_parameter = eastern_syncretic_actor_opinion_active } } add_character_modifier = { modifier = offended_eastern_modifier years = 5 } } else_if = { limit = { faith = { has_doctrine_parameter = unreformed_syncretic_actor_opinion_active } } add_character_modifier = { modifier = offended_pagan_modifier years = 5 } } else_if = { limit = { faith = { has_doctrine_parameter = christian_syncretic_actor_opinion_active } } add_character_modifier = { modifier = offended_christian_modifier years = 5 } } else_if = { limit = { faith = { has_doctrine_parameter = islamic_syncretic_actor_opinion_active } } add_character_modifier = { modifier = offended_muslim_modifier years = 5 } } else_if = { limit = { faith = { has_doctrine_parameter = jewish_syncretic_actor_opinion_active } } add_character_modifier = { modifier = offended_jewish_modifier years = 5 } } } } } stress_impact = { arrogant = medium_stress_impact_gain lazy = medium_stress_impact_gain shy = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = arrogant has_trait = lazy has_trait = shy } } } } # Eww go away, weirdos option = { name = travel_events.4038.c stress_impact = { base = medium_stress_impact_gain zealous = medium_stress_impact_loss gregarious = minor_stress_impact_gain compassionate = medium_stress_impact_gain arrogant = medium_stress_impact_gain } ai_chance = { base = 50 modifier = { factor = 0 OR = { has_trait = gregarious has_trait = compassionate has_trait = arrogant } } } } } # You enter a ritual hospitality province and are offered a rest travel_events.4039 = { type = character_event title = travel_events.4039.t desc = travel_events.4039.desc theme = travel left_portrait = { character = root animation = stress } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes faith = { NOT = { has_doctrine_parameter = host_honored_guests_active } } location.faith = { has_doctrine_parameter = host_honored_guests_active } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_medium } mp_delay_travel_plan = { DAYS = 90 } } # Perhaps a rest for a few days would be nice... option = { name = travel_events.4039.a current_travel_plan = { delay_travel_plan = { weeks = 3 add = yes } } add_stress = medium_stress_loss add_character_modifier = { modifier = pampered_by_locals_modifier years = 5 } stress_impact = { lazy = medium_stress_impact_loss diligent = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { # The AI should avoid unnecessary delays factor = 0 NOT = { has_trait = lazy } } } } # No, we *must* keep going! option = { name = travel_events.4039.b stress_impact = { lazy = medium_stress_impact_gain } ai_chance = { base = 50 modifier = { factor = 0 has_trait = lazy } } } after = { mp_resume_travel_plan = yes } } # You meet a xenophile character who wants to learn about your culture travel_events.4040 = { type = character_event title = travel_events.4040.t desc = travel_events.4040.desc theme = travel left_portrait = { character = root animation = admiration } right_portrait = { character = scope:fanboy_character_scope animation = ecstasy } cooldown = { years = 10 } trigger = { is_available_travelling = yes is_playable_character = yes is_location_valid_for_travel_event_on_land = yes culture = { NOT = { has_cultural_tradition = tradition_xenophilic } } location.culture = { has_cultural_tradition = tradition_xenophilic } NOT = { knows_language_of_culture = root.location.culture } } immediate = { wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small } create_character = { template = loyal_fan_character location = root.location culture = root.location.culture faith = root.location.faith #Set up the scope save_scope_as = fanboy_character_scope after_creation = { add_character_flag = created } } hidden_effect = { scope:fanboy_character_scope = { learn_language_of_culture = root.culture } } } # My culture *is* kinda great tbh option = { name = travel_events.4040.a add_prestige = minor_prestige_gain stress_impact = { arrogant = medium_stress_impact_loss humble = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 has_trait = humble } } } # Come, let's learn about each other! option = { name = travel_events.4040.b trigger = { can_start_scheme = { type = learn_language target_character = scope:fanboy_character_scope } } start_scheme = { type = learn_language target_character = scope:fanboy_character_scope } custom_tooltip = learn_language_with_bonus_tt hidden_effect = { random_scheme = { type = learn_language limit = { scheme_target_character = scope:fanboy_character_scope } add_scheme_modifier = { type = xenophile_bonus_modifier } } } stress_impact = { lazy = medium_stress_impact_gain shy = medium_stress_impact_gain arrogant = medium_stress_impact_gain } ai_chance = { base = 100 modifier = { factor = 0 OR = { has_trait = lazy has_trait = shy has_trait = arrogant } } } } after = { scope:fanboy_character_scope = { silent_disappearance_ai_if_created_effect = yes } } }