﻿#Generic travel events
### EK NOTE: added character setup effects
namespace = travel_events

############################
## Travel Flavor Events
## 1000-3999
## by Daniel Moore, Filippa Gannholm Kirsten & Veronica Pazos
############################
# travel_events.1000 - Peasant with no shoes
# travel_events.1001 - Jam on clothes
# travel_events.1002 - BEAR
# travel_events.1003 - Bandit attack
# travel_events.1010 - Decision: Find a travel leader

# travel_events.2200 - You run into a local knight
# travel_events.4050 - hostage/ward/different culture courtier acts as cultural mediator


#####################################################################################

############################
# Travel Death Events 
# by Chad Uhl
############################
travel_events.0010 = {
	type = character_event
	title = travel_events.0010.t
	desc = {
		desc = travel_events.0010.intro 
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:to_activity }
				desc = travel_events.0010.to_activity
			}
			triggered_desc = {
				trigger = { exists = scope:at_destination }
				desc = travel_events.0010.at_destination
			}
			desc = travel_events.0010.from_activity
		}
		#This is the same as travel_events.0011.desc but we need an extra " at the end to denote someone was talking
		desc = travel_events.0010.desc
	}
	theme = realm
	override_background = { reference = relaxing_room }

	left_portrait = {
		character = root
		animation = sadness
	}

	right_portrait = {
		character = scope:messenger
		animation = worry
	}

	immediate = {
		if = {
			limit = {
				employs_court_position = travel_leader_court_position
			}
			random_court_position_holder = {
				limit = { has_court_position = travel_leader_court_position }
				save_scope_as = messenger
			}
		}
		else_if = {
			limit = { exists = primary_spouse }
			primary_spouse = { save_scope_as = messenger }
		}
		else_if = {
			limit = { exists = cp:councillor_chancellor }
			cp:councillor_chancellor = { save_scope_as = messenger }
		}
		else_if = {
			limit = {
				any_councillor = {
					is_kurultai_trigger = yes
				}
			}
			random_councillor = {
				limit = { is_kurultai_trigger = yes }
				save_scope_as = messenger
			}
		}
		else = {
			random_courtier = {
				limit = { is_adult = yes }
				save_scope_as = messenger
			}
		}

	}

	option = { 
		name = travel_events.0010.a
	}
}

travel_events.0011 = {
	type = letter_event
	opening = {
		desc = travel_events.0011.desc_opening
	}
	desc = {
		desc = travel_events.0011.intro 
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:to_activity }
				desc = travel_events.0010.to_activity
			}
			desc = travel_events.0010.from_activity
		}
		desc = travel_events.0011.desc
	}
	sender = scope:messenger

	immediate = {
		if = {
			limit = { exists = primary_spouse }
			primary_spouse = { save_scope_as = messenger }
		}
		else_if = {
			limit = { exists = cp:councillor_chancellor }
			cp:councillor_chancellor = { save_scope_as = messenger }
		}
		else_if = {
			limit = {
				any_councillor = {
					is_kurultai_trigger = yes
				}
			}
			random_councillor = {
				limit = { is_kurultai_trigger = yes }
				save_scope_as = messenger
			}
		}
		else = {
			random_courtier = {
				limit = { is_adult = yes }
				save_scope_as = messenger
			}
		}
	}

	option = { 
		name = travel_events.0010.a
	}
}

############################
## Travel Trait Adoption
############################

travel_events.0050 = {
	type = character_event
	title = travel_events.0050.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { is_landless_adventurer = yes }
				desc = travel_events.0050.adventurer
			}
			desc = travel_events.0050.landed
		}
		desc = travel_events.0050.desc
	}
	theme = travel
	left_portrait = {
		character = root
		animation = thinking
	}

	trigger = {
		exists = var:travel_plan_start_date
		is_location_valid_for_travel_event_on_land = yes
	}

	immediate = {
		# Run this effect for custom loc to get a time period word 
		get_period_of_time_word_setup_effect = {
			START_DATE = var:travel_plan_start_date 
		}
	}

	option = {
		name = travel_events.0050.a
		add_trait = lifestyle_traveler
	}

	after = {
		clean_up_period_of_time_word_effect = yes
	}
}

############################
## Travel Option Events 
############################
# Maintenance Event that enacts random upgrades on your wimpy knights from the Train Knights Travel Option
travel_events.0060 = {
	hidden = yes 
	trigger = {
		# stop triggering event when you're done traveling or you have trained each knight once
		is_travelling = yes 
		current_travel_plan = {
			has_variable_list = knights_to_train
			variable_list_size = {
				name = knights_to_train 
				value >= 1
			}
		}
	}
	immediate = {
		current_travel_plan = {
			random_in_list = {
				variable = knights_to_train 
				save_temporary_scope_as = selected_knight
				random_list = {
					10 = {
						trigger = {
							NAND = {
								has_trait = lifestyle_blademaster
								has_trait_xp = {
									trait = lifestyle_blademaster
									value >= 100
								}
							}
						}
						root = {
							send_interface_message = {
								type = event_marshal_good
								title = travel_events.0060.notification.a
								desc = travel_events.0060.notification_desc
								left_icon = scope:selected_knight
								scope:selected_knight = {
									blademaster_lifestyle_rank_up_effect = yes
								}
							}
						}
					}
					5 = {
						root = {
							send_interface_message = {
								type = event_marshal_good
								title = travel_events.0060.notification.b
								desc = travel_events.0060.notification_desc
								left_icon = scope:selected_knight
								scope:selected_knight = {
									add_prowess_skill = 2
								}
							}
						}
					}
					20 = {
						root = {
							send_interface_message = {
								type = event_marshal_good
								title = travel_events.0060.notification.c
								desc = travel_events.0060.notification_desc
								left_icon = scope:selected_knight
								scope:selected_knight = {
									add_prowess_skill = 1
								}
							}
						}
					}
					65 = {
						trigger = {
							scope:selected_knight = {
								is_acclaimed = yes 
							}
						}
						root = {
							send_interface_message = {
								type = event_marshal_good
								title = travel_events.0060.notification.d
								desc = travel_events.0060.notification_desc
								left_icon = scope:selected_knight 
								scope:selected_knight.accolade = {
									add_glory = minor_glory_gain
								}
							}
						}
					}
				}
			}
		}
		# Recursively trigger event until you're not traveling anymore or you've run out of knights to train
		trigger_event = {
			id = travel_events.0060
			days = { 90 180 }
		}
	}
}

############################
## Travel Flavor Events
## 1000-3999
## by Daniel Moore, James Beaumont, Filippa Gannholm Kirsten & Veronica Pazos
############################

#Peasant with no shoes
travel_events.1000 = {
	type = character_event
	title = travel_events.1000.t
	desc = travel_events.1000.desc
	theme = travel
	left_portrait = {
		character = root
		animation = worry
	}
	right_portrait = {
		character = scope:shoeless_peasant
		animation = pain
		hide_info = yes
		remove_default_outfit = no
		outfit_tags = { beggar_rags }
	}
	cooldown = { years = 40 }
	trigger = {
		static_group_filter = {
			group = travel_events.1000
			match = 0.25
		}
		is_travelling = yes
		is_location_valid_for_travel_event_on_land = yes
		exists = location.province_owner
		location.province_owner = {
			highest_held_title_tier <= tier_duchy
		}
	}
	immediate = {
		hidden_effect = {
			random_list = {
				80 = {
					create_character = {
						gender_female_chance = 0.5
						random_traits = yes
						location = root.location
						faith = root.location.faith
						culture = root.location.culture
						save_scope_as = shoeless_peasant
						#EK EDIT
						after_creation = {
							ek_character_setup_effect = yes
							unmourned_blood_traits_effect = yes
						}
						#EK EDIT END
					}
				}
				20 = {
					trigger = {
						exists = location.province_owner
						location.province_owner = {
							# The province owner is present and not you
							is_available_ai_adult = yes
							NOT = {
								this = root
								is_lowborn = yes
							}
							# Their faith does not venerate wealth
							NOT = { faith = { trait_is_virtue = greedy } }
							OR = {
								# They are not someone who would be too prideful to pose as a peasant
								NOT = {
									has_trait = arrogant
									has_trait = callous
									has_trait = sadistic
									has_trait = stubborn
								}
								# Or they are zealous enough to act on their religious conviction despite personal biases
								AND = {
									has_trait = zealous
									OR = {
										faith = { trait_is_sin = greedy }
										faith = { has_doctrine_parameter = mendicant_preachers_conversion_active }
										culture = { has_cultural_parameter = mendicant_mystics_may_appear }
									}
								}
							}
							# They're not someone you know
							NOT = {
								has_any_scripted_relation = root
								dynasty = root.dynasty
								is_consort_of = root
								is_close_family_of = root
							}
							# Not a player
							is_ai = yes
						}
					}
					location.province_owner = { save_scope_as = shoeless_peasant }
				}
			}
			scope:shoeless_peasant ?= {
				add_character_flag = has_scripted_appearance
				add_character_flag = no_headgear
			}
		}
	}

	#Give the peasant shoes
	option = { 
		name = travel_events.1000.a

		remove_short_term_gold = tiny_gold_value
		add_piety = minor_piety_value
		hidden_effect = {
			if = {
				limit = {
					root.location.province_owner = scope:shoeless_peasant
				}
				trigger_event = travel_events.1001
			}
			else = {
				random_list = {
					25 = { # They are a secret misc noble/merchant
						trigger_event = travel_events.1001
					}
					75 = {
						scope:shoeless_peasant = {
							silent_disappearance_effect = yes
						}
					}
				}
			}
		}
		stress_impact = {
			greedy = minor_stress_impact_gain
			arrogant = minor_stress_impact_gain
			avaricious = minor_stress_impact_gain
			callous = minor_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = 1
			}

			modifier = {
				factor = 0
				has_trait = greedy
			}
		}
	}

	#Walking is good for morale
	option = { 
		name = travel_events.1000.c
		hidden_effect = {
			if = {
				limit = {
					root.location.province_owner = scope:shoeless_peasant
				}
				trigger_event = travel_events.1002
			}
			else = {
				random_list = {
					25 = { # They are a secret misc noble/merchant
						trigger_event = travel_events.1002
					}
					75 = {
						scope:shoeless_peasant = {
							silent_disappearance_effect = yes
						}
					}
				}
			}
		}
		stress_impact = {   
			compassionate = miniscule_stress_impact_gain
		}

		add_piety = miniscule_piety_loss
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = -1
				ai_sociability = -1
			}
		}
	}
	after = {
		hidden_effect = {
			if = {
				limit = { scope:shoeless_peasant ?= { is_alive = yes } }
				scope:shoeless_peasant = {
					remove_character_flag = no_headgear
					remove_character_flag = has_scripted_appearance
				}
			}
		}
	}
}

#You helped them and they turned out to be a noble!
travel_events.1001 = {
	type = character_event
	title = travel_events.1001.title
	desc = {
		desc = travel_events.1001.desc
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:shoeless_peasant = {
						has_trait = poet
						is_landed = no
					}
				}
				desc = travel_events.1001.desc.outro.poet
			}
			desc = travel_events.1001.desc.outro
		}
	}
	theme = travel
	left_portrait = {
		character = root
		animation = happiness
	}
	right_portrait = {
		character = scope:shoeless_peasant
		animation = personality_honorable
	}

	immediate = {
		wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
		hidden_effect = {
			scope:shoeless_peasant = {
				if = {
					limit = {
						is_landed = no
					}
					random_list = {
						50 = {
							add_trait = poet
							add_diplomacy_skill = 10
						}
						50 = {}
					}
				}
			}
		}
	}

	#Take your reward!
	option = {
		name = travel_events.1001.a
		add_gold = major_gold_value
		stress_impact = {
			gregarious = minor_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = 1
			}
		}
	}

	#Recruit them to your entourage!
	option = { 
		name = travel_events.1000.b
		trigger = {
			scope:shoeless_peasant = { is_landed = no }
		}
		add_courtier = scope:shoeless_peasant
		root.current_travel_plan = {
			add_companion = scope:shoeless_peasant
		}
		scope:shoeless_peasant = {
			add_character_flag = {
				flag = blocked_from_leaving
				years = 5
			}
		}
		stress_impact = {   
			paranoid = minor_stress_impact_gain
			greedy = minor_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = -1
				ai_sociability = 1
			}
		}
	}

	#Think nothing of it, friend!
	option = { 
		name = travel_events.1001.c
		trigger = {
			scope:shoeless_peasant = { is_landed = yes }
		}
		set_relation_friend = {
			target = scope:shoeless_peasant
			reason = friend_showed_charity
		}
		stress_impact = {   
			paranoid = minor_stress_impact_gain
			shy = minor_stress_impact_gain
			greedy = minor_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = -1
				ai_sociability = 1
			}
		}
	}

	after = {
		if = {
			limit = {
				is_ai = yes
				scope:shoeless_peasant = { is_landed = no }
				scope:shoeless_peasant = { is_courtier = no }
			}
			scope:shoeless_peasant = { silent_disappearance_effect = yes }
		}
	}
}

#You refused them and they turned out to be a noble!
travel_events.1002 = { 
	type = character_event
	title = travel_events.1002.title
	desc = travel_events.1002.desc
	theme = travel
	left_portrait = {
		character = root
		triggered_animation = {
			trigger = {
				OR = {
					has_trait = callous
					has_trait = sadistic
				}
			}
			animation = personality_callous
		}
		triggered_animation = {
			trigger = { always = yes }
			animation = shock
		}
	}
	right_portrait = {
		character = scope:shoeless_peasant
		animation = anger
	}

	#Well shoot
	option = { 
		name = travel_events.1002.a
		set_relation_rival = {
			target = scope:shoeless_peasant
			reason = rival_ungenerous
		}
		stress_impact = {   
			base = medium_stress_impact_gain
			callous = medium_stress_impact_loss
			sadistic = medium_stress_impact_loss
		}
		ai_chance = {
			base = 100
		}
	}

	after = {
		if = {
			limit = {
				is_ai = yes
				scope:shoeless_peasant = { is_landed = no }
				scope:shoeless_peasant = { is_courtier = no }
			}
			scope:shoeless_peasant = { silent_disappearance_effect = yes }
		}
	}
}

#Bandit attack
#This is a danger event

travel_events.1003 = { 
    type = character_event
    title = travel_events.1003.t
    desc = travel_events.1003.desc
    theme = travel_danger
    left_portrait = {
        character = scope:travel_leader
       	animation = aggressive_sword
    }
    right_portrait = {
        character = scope:attacking_bandit
        animation = threatening
    }
    override_background = { reference = wilderness_scope }
    cooldown = { months = 1 }
    trigger = {
        is_available_travelling_adult = yes
        is_playable_character = yes
        is_location_valid_for_travel_event_on_land = yes
        exists = root.current_travel_plan.travel_leader
        location = {
			travel_danger_type = {
				travel_plan = root.current_travel_plan
				type = county_control
			}
		}
		NOR = { 
			has_character_flag = had_travel_danger_event_1002_bandit_event_recently
			has_character_flag = had_travel_event_3070_bandit_event_recently
		}
    }
    immediate = {
    	wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
		mp_delay_travel_plan = { DAYS = 90 }

        create_character = {
            template = bandit_character
            location = root.location
            #Set up the scope
            save_scope_as = attacking_bandit
        }
        if = {
        	limit = { exists = root.current_travel_plan.travel_leader }
        	root.current_travel_plan.travel_leader = { save_scope_as = travel_leader }
        }

        traveler_danger_xp_effect = {
			MIN = 3
			MAX = 7
		}
        add_character_flag = {
        	flag = had_travel_event_1003_bandit_event_recently
        	years = 5
        }

    }
    #Pay
    option = { 
        name = travel_events.1003.a
        stress_impact = {   
            greedy = miniscule_stress_impact_gain
        }
        remove_short_term_gold = medium_gold_value
    	ai_chance = {
    	    base = 100
    	    ai_value_modifier = {
    	        ai_greed = -1    
    	    }
			modifier = {
				factor = 0
				gold <= medium_gold_value
			}
    	}
    }
    #Fight
    option = { 
        name = travel_events.1003.b
        duel = {
        	skill = prowess
        	value = decent_skill_rating
        	#They die!
			1 = { 
				scope:travel_leader = {
					death = {
						killer = scope:attacking_bandit
						death_reason = death_battle
					}
				}
			}
			#They are seriously wounded
			3 = { 
				scope:travel_leader = {
					apply_maimed_trait_and_modifier_effect = yes
				}
			}
			#They receive minor wounds
			5 = { 
				scope:travel_leader = {
					increase_wounds_effect = { REASON = fight }
				}
			}
		}
		stress_impact = {   
			greedy = miniscule_stress_impact_loss
			lustful = minor_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = -1    
			}
		}
	}
	#Diplomacy
	option = { 
		name = travel_events.1003.c
		duel = {
			skill = diplomacy
			value = decent_skill_rating
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				desc = travel_events.1003.a.success
			}
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				desc = travel_events.1003.a.failure
				scope:travel_leader = {
					increase_wounds_effect = { REASON = fight }
				}
			}
		}
		stress_impact = {
			wrathful = miniscule_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = 1   
			}
		}
	}
	#Clean up the bandit
	after = {
		mp_resume_travel_plan = yes
		if = {
			limit = {
				exists = scope:attacking_bandit
				scope:attacking_bandit = { is_alive = yes }
				root = { is_ai = yes }
			}
			scope:attacking_bandit = { silent_disappearance_effect = yes }
		}
	}
}

travel_events.1005 = { #Storm washes artifact overboard
	type = character_event
	title = travel_events.1005.t
	desc = travel_events.1005.desc
	theme = travel_danger
	left_portrait = {
		character = root 
		animation = shock
	}

	right_portrait = {
		character = scope:travel_leader
		animation = shock
	}

	lower_left_portrait = scope:overboard_artifact


	#EK EDIT
	#Check if you're in the Inner Sea Region, then use the inner_sea background
	override_background = {
		trigger = {
			location = {
				is_sea_province = yes
				geographical_region = sea_inner_sea
			}
		}
		reference = ek_inner_sea
	}
	#Otherwise, use the default ocean background
	#EK EDIT END
	override_background = { reference = fp1_ocean }

	cooldown = { months = 1 }
	trigger = {
		# DLC check.
		#has_ep2_dlc_trigger = yes

		# Standard checks.
		is_available_travelling_adult = yes
		is_playable_character = yes

		is_travelling = yes
		has_any_artifact = yes

		location = {
			has_sea_danger_type = { TRAVEL = root.current_travel_plan }
		}

		exists = current_travel_plan.travel_leader
	}


	immediate = {
		mp_delay_travel_plan = { DAYS = 90 }

		current_travel_plan.travel_leader ?= {
			save_scope_as = travel_leader
		}

		location = {
			save_scope_as = background_terrain_scope
		}

		random_character_artifact = {
			save_scope_as = overboard_artifact
		}
		traveler_danger_xp_effect = {
			MIN = 3
			MAX = 7
		}

	}

	option = { #Save it!
		name = travel_events.1005.a

		stress_impact = {   
			greedy = medium_stress_impact_loss
			compassionate = medium_stress_impact_gain
		}

		scope:travel_leader = {
			duel = {
				skill = prowess	
				value = medium_skill_rating
				50 = {
					compare_modifier = {
						value = scope:duel_value
						multiplier = 3.5
						min = -49
					}
					desc = travel_events.1005.a.tt.success
					send_interface_toast = {
						type = event_toast_effect_good
						title = travel_events.1005.a.tt.success
						left_icon = scope:travel_leader
					}
				}
				50 = {
					compare_modifier = {
						value = scope:duel_value
						multiplier = -3.5
						min = -49
					}
					desc = travel_events.1005.a.tt.failure
					send_interface_toast = {
						type = event_toast_effect_bad
						title = travel_events.1005.a.tt.failure
						left_icon = scope:travel_leader
						scope:travel_leader = {
							death = {
								death_reason = death_drowned
							}
						}
					}	
				}
			}
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = 1    
			}
		}
	}

	option = { #Don't risk it
		name = travel_events.1005.b

		stress_impact = {   
			greedy = medium_stress_impact_gain
		}

		add_prestige = minor_prestige_loss

		show_as_tooltip = {
			destroy_artifact = scope:overboard_artifact
		}

		hidden_effect = {

			random_list = {
				10 = {
					#Add Notification
					destroy_artifact = scope:overboard_artifact
					modifier = {
						factor = 0
						scope:overboard_artifact = {
							OR = {
								rarity = illustrious
								rarity = masterwork
							}
						}
	
	
					}
				}
				#To do make more restrictive
				10 = {
					trigger = {
						scope:background_terrain_scope = {
							any_neighboring_province = {
								is_sea_province = no
								exists = county.holder
							}
						}
					}
					scope:background_terrain_scope = {
						random_neighboring_province = {
							limit = { 
								is_sea_province = no
								exists = county.holder
							}
							county.holder = { save_scope_as = new_owner }
						}
					}
					scope:overboard_artifact = { set_owner = scope:new_owner }
				}
			}
		}
		
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = 1    
			}
		}
	}

	after = {
		mp_resume_travel_plan = yes
	}
}

scripted_trigger good_travel_leader_trigger = {
	is_adult = yes
	is_imprisoned = no
	travel_leader_speed > 10
	travel_leader_safety > 10

}

scripted_trigger great_travel_leader_trigger = {
	is_adult = yes
	is_imprisoned = no
	travel_leader_speed > 20
	travel_leader_safety > 20

}

# Used when hiring a new travel leader 
scripted_effect initialize_good_travel_leader_effect = {
	hidden_effect_new_object = {
		if = {
			limit = { NOT = { has_trait = lifestyle_traveler } }
			add_trait = lifestyle_traveler
		}
		add_trait_xp = {
			trait = lifestyle_traveler
			track = travel 
			value = { 0 10 }
		}
		add_trait_xp = {
			trait = lifestyle_traveler
			track = danger 
			value = { 0 10 }
		}
	}
}

scripted_effect initialize_great_travel_leader_effect = {
	hidden_effect_new_object = {
		if = {
			limit = { NOT = { has_trait = lifestyle_traveler } }
			add_trait = lifestyle_traveler
		}
		add_trait_xp = {
			trait = lifestyle_traveler
			track = travel 
			value = { 10 20 } 
		}
		add_trait_xp = {
			trait = lifestyle_traveler
			track = danger 
			value = { 10 20 } 
		}
	}
}


############################
# Caravan Master Maintenance
# by Chad Uhl
############################

#Find a caravan master
travel_events.1010 = { 
	type = character_event
	title = travel_events.1010.t
	desc = travel_events.1010.desc
	theme = stewardship
	left_portrait = {
		character = scope:good_travel_leader_option 
		animation = chancellor
	}
	right_portrait = {
		character = scope:great_travel_leader_option
		animation = steward
	}
	trigger = {
		exists = capital_province 
	}
	immediate = {
		# Good Character
		if = { # check for a GOOD character in the pool
			limit = {
				any_pool_character = {
					province = root.capital_province
					good_travel_leader_trigger = yes
					can_be_employed_as = travel_leader_court_position
				}
			}
			random_pool_character = {
				province = root.capital_province
				limit = {
					good_travel_leader_trigger = yes
					can_be_employed_as = travel_leader_court_position
				}
				save_scope_as = good_travel_leader_option
				# Give them the traveler lifestyle trait if they don't have it yet
				initialize_good_travel_leader_effect = yes
			}
		}
		else = { # otherwise create one
			create_character = {
				location = root.capital_province
				gender_female_chance = root_soldier_female_chance
				template_character = root
				random_traits = yes
				age = { 18 50 }
				martial = {
					min_template_low_skill
					max_template_average_skill
				}
				stewardship = {
					min_template_low_skill
					max_template_average_skill
				}
				diplomacy = {
					min_template_low_skill
					max_template_average_skill
				}
				intrigue = {
					min_template_low_skill
					max_template_average_skill
				}
				learning = {
					min_template_low_skill
					max_template_average_skill
				}
				save_scope_as = good_travel_leader_option
				#EK EDIT
				after_creation = {
					ek_character_setup_effect = yes
					unmourned_blood_traits_effect = yes
				}
				#EK EDIT END
			}
			scope:good_travel_leader_option = {
				# Add travel trait and randomized experience to both tracks
				initialize_good_travel_leader_effect = yes
			}
		}
		# Great Character
		if = { # check for a GREAT character in the pool
			limit = {
				any_pool_character = {
					province = root.capital_province
					great_travel_leader_trigger = yes
					NOT = { this = scope:good_travel_leader_option }
					can_be_employed_as = travel_leader_court_position
				}
			}
			random_pool_character = {
				province = root.capital_province
				limit = {
					great_travel_leader_trigger = yes
					NOT = { this = scope:good_travel_leader_option }
					can_be_employed_as = travel_leader_court_position
				}
				save_scope_as = great_travel_leader_option
				initialize_great_travel_leader_effect = yes
			}
		}
		else = { # otherwise create one
			create_character = {
				location = root.capital_province
				gender_female_chance = root_soldier_female_chance
				template_character = root
				random_traits = yes
				age = { 18 50 }
				martial = {
					min_template_average_skill
					max_template_decent_skill
				}
				stewardship = {
					min_template_average_skill
					max_template_decent_skill
				}
				diplomacy = {
					min_template_average_skill
					max_template_decent_skill
				}
				intrigue = {
					min_template_average_skill
					max_template_decent_skill
				}
				learning = {
					min_template_average_skill
					max_template_decent_skill
				}
				save_scope_as = great_travel_leader_option
				#EK EDIT
				after_creation = {
					ek_character_setup_effect = yes
					unmourned_blood_traits_effect = yes
				}
				#EK EDIT END
			}
			scope:great_travel_leader_option = {
				# Add travel trait and randomized experience to both tracks
				initialize_great_travel_leader_effect = yes 
			}
		}
	}
	#Great option
	option = {
		name = travel_events.1010.a
		custom_tooltip = travel_events.1010.a.aptitude
		pay_short_term_gold = {
			target = scope:great_travel_leader_option
			gold = high_skill_court_physician_cost
		}
		add_courtier = scope:great_travel_leader_option
		if = {
			limit = {
				can_employ_court_position_type = travel_leader_court_position
			}
			appoint_court_position = {
				recipient = scope:great_travel_leader_option
				court_position = travel_leader_court_position
			}
		}
		else_if = {
			limit = {
				employs_court_position = travel_leader_court_position
			}
			random_court_position_holder = {
				type = travel_leader_court_position
				save_scope_as = current_travel_leader
			}
			replace_court_position = {
				recipient = scope:great_travel_leader_option
				holder = scope:current_travel_leader
				court_position = travel_leader_court_position
			}
		}

		#Set travel leader
		if = {
			limit = { exists = current_travel_plan }
			current_travel_plan = {
				set_travel_leader = scope:great_travel_leader_option
			}
		}
	}
	#Good option
	option = {
		name = travel_events.1010.b
		custom_tooltip = travel_events.1010.b.aptitude
		pay_short_term_gold = {
			target = scope:good_travel_leader_option
			gold = low_skill_court_physician_cost
		}
		add_courtier = scope:good_travel_leader_option
		if = {
			limit = {
				can_appoint_char_to_court_position = {
					CHAR = scope:good_travel_leader_option
					COURT_POS = travel_leader_court_position
				}
			}
			appoint_court_position = {
				recipient = scope:good_travel_leader_option
				court_position = travel_leader_court_position
			}
		}
		else_if = {
			limit = {
				employs_court_position = travel_leader_court_position
			}
			random_court_position_holder = {
				type = travel_leader_court_position
				save_scope_as = current_travel_leader
			}
			replace_court_position = {
				recipient = scope:good_travel_leader_option
				holder = scope:current_travel_leader
				court_position = travel_leader_court_position
			}
		}

		#Set travel leader
		if = {
			limit = { exists = current_travel_plan }
			current_travel_plan = {
				set_travel_leader = scope:good_travel_leader_option
			}
		}
	}
	#Nah
	option = {
		name = travel_events.1010.c
	}
}

### Replace a caravan master if yours dies while traveling
travel_events.1020 = {
	type = character_event
	title = travel_events.1020.t 
	desc = {
		first_valid = {
			triggered_desc = { # if your travel leader died
				trigger = {
					# prev travel leader died 
					scope:old_travel_leader = {
						is_alive = no
					}
				}
				desc = travel_events.1020.intro.prev_leader_dead
			}
			# prev travel leader did not die
			desc = travel_events.1020.intro.fallback
		}
		first_valid = {
			triggered_desc = { # both are in your entourage
				trigger = {
					exists = scope:both_entourage_members
				}
				desc = travel_events.1020.desc.two_entourage_members
			} 
			triggered_desc = { # One is in your entourage
				trigger = {
					exists = scope:one_entourage_member
				}
				desc = travel_events.1020.desc.one_entourage_member
			}
			# neither belong to your entourage
			desc = travel_events.1020.desc.fallback
		}

	}
	theme = travel 
	left_portrait = {
		character = scope:temp_caravan_master_option_1
		animation = personality_honorable 
	}
	right_portrait = {
		character = scope:temp_caravan_master_option_2
		animation = personality_honorable 
	}

	trigger = {
		is_travelling = yes
		OR = {
			current_travel_plan = {
				any_entourage_character = {
					count >= 2
					can_be_employed_as = travel_leader_court_position
				}
			}
			is_location_valid_for_travel_event_on_land = yes
		}
		NOT = { employs_court_position = travel_leader_court_position }
	}

	immediate = {
		if = { # If we have two valid entourage characters to choose from, save them
			limit = {
				current_travel_plan ?= {
					any_entourage_character = {
						count >= 2
						can_be_employed_as = travel_leader_court_position

					}
				}
			}
			current_travel_plan ?= {
				ordered_entourage_character = {
					limit = {
						can_be_employed_as = travel_leader_court_position
						NOT = { has_court_position = travel_leader_court_position }
					}
					order_by = stewardship 
					save_scope_as = temp_caravan_master_option_1
				}
				ordered_entourage_character = {
					order_by = stewardship 
					limit = {
						NOT = { this = scope:temp_caravan_master_option_1 }
						can_be_employed_as = travel_leader_court_position
						NOT = { has_court_position = travel_leader_court_position }
					}
					save_scope_as = temp_caravan_master_option_2
				}
			}
			save_scope_as = both_entourage_members
		}
		else_if = { # If there is one entourage character that is fitting, we grab them, then try for a pool character
			limit = {
				current_travel_plan ?= {
					any_entourage_character = {
						can_be_employed_as = travel_leader_court_position
						NOT = { has_court_position = travel_leader_court_position }
					}
				}
			}
			current_travel_plan ?= {
				ordered_entourage_character = {
					limit = {
						can_be_employed_as = travel_leader_court_position
						NOT = { has_court_position = travel_leader_court_position }
					}
					order_by = stewardship 
					save_scope_as = temp_caravan_master_option_1
				}
			}
			save_scope_as = one_entourage_member
			if = { # then we try for a pool character in the current location
				limit = {
					any_pool_character = {
						province = root.location
						# Cloned from Caravan Master triggers out of necessity
						can_be_employed_as = travel_leader_court_position
						is_clergy = no
						is_imprisoned = no
						NOT = { is_spouse_of = root }
					}
				}
				random_pool_character = {
					province = root.location 
					limit = {
						# Cloned from Caravan Master triggers out of necessity
						is_clergy = no
						is_imprisoned = no
						can_be_employed_as = travel_leader_court_position
						NOT = { is_spouse_of = root }
					}
					save_scope_as = temp_caravan_master_option_2
				}
			}
			else_if = { # Otherwise create a character for option 2
				limit = {
					exists = root.location.culture
				}
				create_character = {
					location = root.location
					gender_female_chance = root_soldier_female_chance
					template_character = root
					random_traits = yes
					culture = root.location.culture
					faith = root.location.faith
					age = { 18 50 }
					martial = {
						min_template_low_skill
						max_template_average_skill
					}
					stewardship = {
						min_template_low_skill
						max_template_average_skill
					}
					diplomacy = {
						min_template_low_skill
						max_template_average_skill
					}
					intrigue = {
						min_template_low_skill
						max_template_average_skill
					}
					learning = {
						min_template_low_skill
						max_template_average_skill
					}
					save_scope_as = temp_caravan_master_option_2
					#EK EDIT
					after_creation = {
						ek_character_setup_effect = yes
						unmourned_blood_traits_effect = yes
					}
					#EK EDIT END
				}
				scope:temp_caravan_master_option_2 = {
					# Add travel trait and randomized experience to both tracks
					initialize_good_travel_leader_effect = yes
				}
			}
			else = { # Otherwise create a character for option 2
				create_character = {
					location = root.location
					gender_female_chance = root_soldier_female_chance
					template_character = root
					random_traits = yes
					age = { 18 50 }
					martial = {
						min_template_low_skill
						max_template_average_skill
					}
					stewardship = {
						min_template_low_skill
						max_template_average_skill
					}
					diplomacy = {
						min_template_low_skill
						max_template_average_skill
					}
					intrigue = {
						min_template_low_skill
						max_template_average_skill
					}
					learning = {
						min_template_low_skill
						max_template_average_skill
					}
					save_scope_as = temp_caravan_master_option_2
					#EK EDIT
					after_creation = {
						ek_character_setup_effect = yes
						unmourned_blood_traits_effect = yes
					}
					#EK EDIT END
				}
				scope:temp_caravan_master_option_2 = {
					# Add travel trait and randomized experience to both tracks
					initialize_good_travel_leader_effect = yes
				}
			}
		}
		else_if = { # If there are two pool characters that can be chosen, we present them
			limit = {
				any_pool_character = {
					province = root.location 
					count >= 2
					can_be_employed_as = travel_leader_court_position
				}
			}
			random_pool_character = {
				province = root.location 
				limit = { can_be_employed_as = travel_leader_court_position }
				save_scope_as = temp_caravan_master_option_1
			}
			random_pool_character = {
				province = root.location 
				limit = { can_be_employed_as = travel_leader_court_position }
				save_scope_as = temp_caravan_master_option_2
			}
		}
		else_if = { # If there is one pool character, then we grab 'em then create a character
			limit = {
				any_pool_character = {
					province = root.location 
					can_be_employed_as = travel_leader_court_position
				}
			}
			random_pool_character = {
				province = root.location 
				limit = { can_be_employed_as = travel_leader_court_position }
				save_scope_as = temp_caravan_master_option_1
			}
			create_character = {
				location = root.location
				gender_female_chance = root_soldier_female_chance
				template_character = root
				random_traits = yes
				age = { 18 50 }
				martial = {
					min_template_low_skill
					max_template_average_skill
				}
				stewardship = {
					min_template_low_skill
					max_template_average_skill
				}
				diplomacy = {
					min_template_low_skill
					max_template_average_skill
				}
				intrigue = {
					min_template_low_skill
					max_template_average_skill
				}
				learning = {
					min_template_low_skill
					max_template_average_skill
				}
				save_scope_as = temp_caravan_master_option_2
				#EK EDIT
				after_creation = {
					ek_character_setup_effect = yes
					unmourned_blood_traits_effect = yes
				}
				#EK EDIT END
			}
			scope:temp_caravan_master_option_2 = {
				# Add travel trait and randomized experience to both tracks
				initialize_good_travel_leader_effect = yes
			}
		}
		else = { # final fallback is just creating two characters
			create_character = {
				location = root.location
				gender_female_chance = root_soldier_female_chance
				template_character = root
				random_traits = yes
				age = { 18 50 }
				martial = {
					min_template_low_skill
					max_template_average_skill
				}
				stewardship = {
					min_template_low_skill
					max_template_average_skill
				}
				diplomacy = {
					min_template_low_skill
					max_template_average_skill
				}
				intrigue = {
					min_template_low_skill
					max_template_average_skill
				}
				learning = {
					min_template_low_skill
					max_template_average_skill
				}
				save_scope_as = temp_caravan_master_option_1
				#EK EDIT
				after_creation = {
					ek_character_setup_effect = yes
					unmourned_blood_traits_effect = yes
				}
				#EK EDIT END
			}
			scope:temp_caravan_master_option_1 = {
				# Add travel trait and randomized experience to both tracks
				initialize_good_travel_leader_effect = yes
			}
			create_character = {
				location = root.location
				gender_female_chance = root_soldier_female_chance
				template_character = root
				random_traits = yes
				age = { 18 50 }
				martial = {
					min_template_low_skill
					max_template_average_skill
				}
				stewardship = {
					min_template_low_skill
					max_template_average_skill
				}
				diplomacy = {
					min_template_low_skill
					max_template_average_skill
				}
				intrigue = {
					min_template_low_skill
					max_template_average_skill
				}
				learning = {
					min_template_low_skill
					max_template_average_skill
				}
				save_scope_as = temp_caravan_master_option_2
				#EK EDIT
				after_creation = {
					ek_character_setup_effect = yes
					unmourned_blood_traits_effect = yes
				}
				#EK EDIT END
			}
			scope:temp_caravan_master_option_2 = {
				# Add travel trait and randomized experience to both tracks
				initialize_good_travel_leader_effect = yes
			}
		}

		current_travel_plan = {
			next_destination_province = { save_scope_as = next_destination }
		}
	}

	option = { # Option 1: I choose you!
		name = travel_events.1020.a
		custom_tooltip = travel_events.1020.a.aptitude
		current_travel_plan = {
			if = {
				limit = {
					scope:temp_caravan_master_option_1 = {
						is_travel_entourage_character = no
					}
				}
				add_companion = scope:temp_caravan_master_option_1
			}
		}
		if = {
			limit = {
				NOT = { scope:temp_caravan_master_option_1 = { is_courtier_of = root } }
			}
			add_courtier = scope:temp_caravan_master_option_1
		}
		if = {
			limit = {
				NOT = {
					employs_court_position = travel_leader_court_position
				}
			}
			appoint_court_position = {
				recipient = scope:temp_caravan_master_option_1
				court_position = travel_leader_court_position
			}
		}
		current_travel_plan = {
			hidden_effect = {
				set_travel_leader = scope:temp_caravan_master_option_1
			}
		}
	}

	option = { # Option 2: I choose you!
		name = travel_events.1020.b
		custom_tooltip = travel_events.1020.b.aptitude
		current_travel_plan = {
			if = {
				limit = {
					scope:temp_caravan_master_option_2 = {
						is_travel_entourage_character = no
					}
				}
				add_companion = scope:temp_caravan_master_option_2
			}
		}
		if = {
			limit = {
				NOT = { scope:temp_caravan_master_option_2 = { is_courtier_of = root } }
			}
			add_courtier = scope:temp_caravan_master_option_2
		}
		if = {
			limit = {
				NOT = {
					employs_court_position = travel_leader_court_position
				}
			}
			appoint_court_position = {
				recipient = scope:temp_caravan_master_option_2
				court_position = travel_leader_court_position
			}
		}
		current_travel_plan = {
			hidden_effect = {
				set_travel_leader = scope:temp_caravan_master_option_2
			}
		}
	}

	option = { # I hate them both
		name = travel_events.1010.c
	}
}

# You run into a local knight
travel_events.2200 = {
	type = character_event
	title = travel_events.2200.t
	desc = travel_events.2200.desc
	theme = travel

	left_portrait = {
		character = root
		triggered_animation = { #a bit scared
			trigger = {
				NOR = { 
					has_trait = brave
					has_trait = wrathful
				}
			}
			animation = worry 
		}
		triggered_animation = { #a bit cocky
			trigger = { 
				OR = {
					has_trait = brave
					has_trait = wrathful 
				}
			} 
			animation = personality_rational 
 
		}
	}

	lower_left_portrait = {
		character = scope:travel_duel_champion
	}

	right_portrait = {
		character = scope:local_knight
		animation = marshal
	}

	trigger = {
		static_group_filter = {
			group = travel_events.2200
			match = 0.25
		}
		is_available_travelling_adult = yes
		is_location_valid_for_travel_event_on_land = yes
		current_travel_plan = {
			any_entourage_character = {
				is_adult = yes
				is_ai = yes
				can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = this }
				prowess >= 10
				is_healthy = yes
			}
		}
	}

	cooldown = { years = 40 }

	immediate = {
		wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
		current_travel_plan = {
   			delay_travel_plan = { days = 30 }
        }

		current_travel_plan = {
			ordered_entourage_character = {
				limit = { 
					is_ai = yes
					is_adult = yes
					can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = this }
					is_healthy = yes
				}
				order_by = {
					value = prowess
					if = {
						limit = { is_knight_of = root }
						add = 50
					}
					if = {
						limit = { has_court_position = bodyguard_court_position }
						add = 50
					}
					if = {
						limit = { has_court_position = akolouthos_court_position }
						add = 50
					}
				}
				save_scope_as = travel_duel_champion
			}
		}
		if = {
			limit = {
				any_pool_character = {
					province = root.location
					is_available_adult = yes
					can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = this }
					prowess >= 10
				}
			}
			random_pool_character = {
				province = root.location
				limit = {
					is_available_adult = yes
					can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = this }
					prowess >= 10
				}
				save_scope_as = local_knight
			}
		}
		else = {
			create_character = {
				template = new_warrior_character
				location = root.location
				culture = root.location.culture
				faith = root.location.faith
				gender_female_chance = root_soldier_female_chance
				save_scope_as = local_knight
				prowess = { 8 16 }
			}
			scope:local_knight = {
				add_character_flag = {
					flag = silently_disappear_me
					years = 1
				}
			}
		}
	}

	option = { #default - mob curbstomp
		name = travel_events.2200.a
		custom_tooltip = travel_events.2200.a.desc
		hidden_effect = {
			random_list = {
				85 = { #knight got curbstomped
					scope:local_knight = {
						increase_wounds_no_death_effect = { REASON = fight }
					}
					send_interface_toast = {
						type = event_toast_effect_good
						title = travel_events.2200.a.success
						custom_tooltip = travel_events.2200.a.success.tt
						left_icon = scope:local_knight
					}
				}
 				15 = { #somebody from entourage got trampled
 					current_travel_plan = {
 						random_entourage_character = {
 							limit = {
 								is_ai = yes
 								is_adult = yes
 							}
 							save_scope_as = adult_victim
 						}
 					}
 					scope:adult_victim = {
 						increase_wounds_no_death_effect = { REASON = fight }
 					}
 					send_interface_toast = {
 						type = event_toast_effect_bad
 						title = travel_events.2200.a.failure
 						custom_tooltip = travel_events.2200.a.failure.tt
 						left_icon = scope:adult_victim
 					}
				}
			}
		}
		stress_impact = {
			craven = medium_stress_impact_loss
			wrathful = minor_stress_impact_loss
			callous = minor_stress_impact_loss
			brave = medium_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_honor = tiny_chance_impact_negative_ai_value
			}
		}
	}

	option = { #you have a go at a knight
		name = travel_events.2200.b
		duel = {
			skill = prowess
			target = scope:local_knight
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				send_interface_toast = {
					type = event_toast_effect_good
					add_prestige = minor_prestige_gain
					add_courtier = scope:local_knight
					root.current_travel_plan = {
						add_companion = scope:local_knight
					}
					scope:local_knight = {
						increase_wounds_no_death_effect = { REASON = fight }
					}
					title = travel_events.2200.b.success
					left_icon = scope:local_knight
				}
			}
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				send_interface_toast = {
					type = event_toast_effect_bad
					title = travel_events.2200.b.failure
					left_icon = scope:local_knight
					increase_wounds_no_death_effect = { REASON = fight }
				}
			}
		}
		ai_chance = {
			ai_value_modifier = {
				ai_honor = tiny_chance_impact_positive_ai_value
			}
		}
		stress_impact = {
			arrogant = minor_stress_impact_loss
			brave = minor_stress_impact_loss
			craven = medium_stress_impact_gain
		}
	}

	option = {	#travel duel champion has a go
		name = travel_events.2200.c
		scope:travel_duel_champion = {
			duel = {
				skill = prowess
				target = scope:local_knight
				50 = {
					compare_modifier = {
						value = scope:duel_value
						multiplier = 3.5
						min = -49
					}
					if = {
						limit = {
							scope:travel_duel_champion = {
								is_acclaimed = yes
							}
						}
						scope:travel_duel_champion = {
							accolade = {
								add_glory = minor_glory_gain
							}
						}
					}
					root = { 
						add_courtier = scope:local_knight
						current_travel_plan = {
							add_companion = scope:local_knight
						}
						send_interface_toast = {
							type = event_toast_effect_good
							title = travel_events.2200.c.success
							left_icon = scope:local_knight
							right_icon = scope:travel_duel_champion
							scope:local_knight = {
								increase_wounds_no_death_effect = { REASON = fight }
							}
						}
					}
				}
				50 = {
					compare_modifier = {
						value = scope:duel_value
						multiplier = -3.5
						min = -49
					}
					if = {
						limit = {
							scope:travel_duel_champion = {
								is_acclaimed = yes
							}
						}
						scope:travel_duel_champion = {
							accolade = {
								add_glory = minimal_glory_loss
							}
						}
					}
					root = {
						send_interface_toast = {
							type = event_toast_effect_bad
							title = travel_events.2200.c.failure
							left_icon = scope:local_knight
							right_icon = scope:travel_duel_champion
							scope:travel_duel_champion = {
								increase_wounds_no_death_effect = { REASON = fight }
							}
						}
					}
				}
			}
		}
		stress_impact = {
			craven = minor_stress_impact_loss
		}
		ai_chance = {
			base = 100
		}
	}

	after = {
		current_travel_plan = { resume_travel_plan = yes }
		if = {
			limit = {
				is_ai = yes
				scope:local_knight = {
					has_character_flag = silently_disappear_me
				}
			}
			scope:local_knight = {
				silent_disappearance_effect = yes
			}
		}
	}

}

# Hostage/Ward proves to be useful as cultural mediator

scripted_trigger travel_events_4050_base_child_trigger = {
	NOT = { has_trait = shy }
	is_adult = no
	age >= 11
	is_ai = yes
}

scripted_trigger travel_events_4050_interpreter_trigger = {
	knows_language_of_culture = root.location.county.culture
	knows_language_of_culture = root.culture
	# what makes a potential emissary?
	OR = {
		has_trait = charming
		has_trait = curious
		has_focus = education_diplomacy
		has_trait = gregarious
		has_trait = honest
		has_trait = ambitious
	}
}

scripted_trigger travel_events_4050_mystic_trigger = {
	faith.religion = root.location.county.faith.religion
	OR = {
		has_trait = pensive
		has_trait = curious
		has_focus = education_learning
		has_trait = zealous
		has_trait = content
	}
	NOT = {
		has_trait = cynical
	}
}

scripted_trigger travel_events_4050_singing_trigger = {
	culture = { 
		has_same_culture_heritage = root.location.county.culture
	}
	OR = {
		has_trait = charming
		has_trait = rowdy
		has_focus = education_diplomacy
		has_trait = gregarious
		has_trait = compassionate
	}
}

travel_events.4050 = {
	type = character_event
	title = travel_events.4050.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { 
					scope:friendly_child = {
						has_character_flag = interpreter_child
					}
				}
				desc = travel_events.4050.interpreter
			}
			triggered_desc = {
				trigger = { 
					scope:friendly_child = {
						has_character_flag = religious_child
					}
				}
				desc = travel_events.4050.religious
			}
			triggered_desc = {
				trigger = { 
					scope:friendly_child = {
						has_character_flag = singing_child
					}
				}
				desc = travel_events.4050.singing
			}
		}
	}
	
	cooldown = { years = 20 }

	theme = travel

	left_portrait = {
		character = root
		triggered_animation = { #d'aww
			trigger = {
				OR = { 
					has_trait = compassionate
					has_trait = generous
					has_trait = trusting
				}
			}
			animation = admiration 
		}
		triggered_animation = { #not d'aww
			trigger = { 
				NOR = {
					has_trait = compassionate
					has_trait = generous
					has_trait = trusting
				}
			} 
			animation = personality_rational
		}
	}
	right_portrait = {
		character = scope:friendly_child
		triggered_animation = {
			trigger = {
				scope:friendly_child = {
					has_character_flag = interpreter_child
				}
			}
			animation = debating
		}
		triggered_animation = {
			trigger = {
				scope:friendly_child = {
					has_character_flag = religious_child
				}
			}
			animation = prayer
		}
		triggered_animation = {
			trigger = {
				scope:friendly_child = {
					has_character_flag = singing_child
				}
			}
			animation = happiness
		}
	}

	trigger = {
		has_bp2_dlc_trigger = yes
		is_available_travelling_adult = yes
		is_location_valid_for_travel_event_on_land = yes
		current_travel_plan = {
			any_entourage_character = {
				travel_events_4050_base_child_trigger = yes
				OR = {
					# kid knows languages
					AND = {
						root = {
							NOT = { 
								culture = { has_same_culture_language = root.location.county.culture } 
							}
						}
						travel_events_4050_interpreter_trigger = yes
					}
					# kid knows faiths
					AND = {
						NOT = { root.faith.religion = root.location.county.faith.religion }	
						travel_events_4050_mystic_trigger = yes
					}
					#kid knows their heritage
					AND = {
						NOT = { 
							root.culture = { has_same_culture_heritage = root.location.county.culture } 
						}
						travel_events_4050_singing_trigger = yes
					}
				}
			}
		}
	}

	immediate = {
		mp_delay_travel_plan = { DAYS = 90 }

		root.location.county = {
			save_scope_as = foreign_county
		}
		current_travel_plan = {
			random_list = {
				10 = {
					trigger = {
						root = {
							NOT = { 
								culture = { has_same_culture_language = root.location.county.culture } 
							}
						}
						any_entourage_character = {
							travel_events_4050_base_child_trigger = yes
							travel_events_4050_interpreter_trigger = yes
						}
					}
					if = {
						limit = {
							any_entourage_character = {
								OR = {
									has_relation_ward = root
									is_hostage_of = root
								}
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_interpreter_trigger = yes
							}
						}
						random_entourage_character = {
							limit = {
								OR = {
									has_relation_ward = root
									is_hostage_of = root
								}
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_interpreter_trigger = yes
							}
							save_scope_as = friendly_child
							add_character_flag = interpreter_child
						}
					}
					else = {
						random_entourage_character = {
							limit = {
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_interpreter_trigger = yes
							}
							save_scope_as = friendly_child
							add_character_flag = interpreter_child
						}
					}
				}
				10 = {
					trigger = {
						NOT = { root.faith.religion = root.location.county.faith.religion }
						any_entourage_character = {
							travel_events_4050_base_child_trigger = yes
							travel_events_4050_mystic_trigger = yes
						}
					}
					if = {
						limit = {
							any_entourage_character = {
								OR = {
									has_relation_ward = root
									is_hostage_of = root
								}
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_mystic_trigger = yes
							}
						}
						random_entourage_character = {
							limit = {
								OR = {
									has_relation_ward = root
									is_hostage_of = root
								}
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_mystic_trigger = yes
							}
							save_scope_as = friendly_child
							add_character_flag = religious_child
						}
					}
					else = {
						random_entourage_character = {
							limit = {
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_mystic_trigger = yes
							}
							save_scope_as = friendly_child
							add_character_flag = religious_child
						}
					}
				}
				10 = {
					trigger = {
						NOT = {
							root.culture = { has_same_culture_heritage = root.location.county.culture }
						}
						any_entourage_character = {
							travel_events_4050_base_child_trigger = yes
							travel_events_4050_singing_trigger = yes
						}
					}
					if = {
						limit = {
							any_entourage_character = {
								OR = {
									has_relation_ward = root
									is_hostage_of = root
								}
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_singing_trigger = yes
							}
						}
						random_entourage_character = {
							limit = {
								OR = {
									has_relation_ward = root
									is_hostage_of = root
								}
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_singing_trigger = yes
							}
							save_scope_as = friendly_child
							add_character_flag =  singing_child
						}
					}
					else = {
						random_entourage_character = {
							limit = {
								travel_events_4050_base_child_trigger = yes
								travel_events_4050_singing_trigger = yes
							}
							save_scope_as = friendly_child
							add_character_flag = singing_child
						}
					}
				}
			}
		}
	}

	option = { #huh... turns out he's good at something
		name = travel_events.4050.a
		if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = interpreter_child
				}
			}
			add_character_modifier = {
				modifier = sponsored_emissaries_modifier
				years = 10
			}
			scope:friendly_child = {
				add_trait = lifestyle_traveler
				create_character_memory = {
                    type = became_promising_emissary
                    participants = {
                        court_owner = root
                    }
                }
			}
			stress_impact = {
				paranoid = minor_stress_impact_gain
				callous = minor_stress_impact_gain
			}
		}
		else_if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = religious_child
				}
			}
			scope:friendly_child = {
				add_trait = lifestyle_mystic
				create_character_memory = {
                    type = became_promising_mystic
                    participants = {
                        court_owner = root
                    }
                }
			}
			add_character_modifier = {
				modifier = raised_other_faiths_mystic_modifier
				years = 20
			}
			stress_impact = {
				zealous = medium_stress_impact_gain
				cynical = minor_stress_impact_gain
				paranoid = minor_stress_impact_gain
				callous = minor_stress_impact_gain
			}
		}
		else_if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = singing_child
				}
			}
			if = {
				limit = {
					has_royal_court = yes
					has_dlc_feature = royal_court
				}
				change_current_court_grandeur = miniscule_court_grandeur_gain
			}
			else = {
				add_prestige = miniscule_prestige_gain
			}
			scope:friendly_child.culture = {
				change_cultural_acceptance = {
					target = ROOT.culture
					value = low_positive_culture_acceptance
					desc = cultural_acceptance_gain_hold_court_event_outcome
				}
			}
			scope:friendly_child = {
				add_trait = poet
				create_character_memory = {
                    type = became_promising_poet
                    participants = {
                        court_owner = root
                    }
                }
            }
			stress_impact = {
				paranoid = minor_stress_impact_gain
				callous = minor_stress_impact_gain
			}
		}
		
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = 1
				ai_rationality = 1
			}
			modifier = {
				factor = 0
				OR = {
					AND = {
						scope:friendly_child = {
							has_character_flag = religious_child
						}
						OR = {
							has_trait = zealous
							has_trait = cynical
						}
						
					}
					has_trait = callous
					has_trait = paranoid
				}
			}
		}
	}

	

	option = {	#this kid and his heritage should be kept apart
		name = travel_events.4050.b
		flavor = travel_events.4050.b.tt

		if = {
			limit = {
				scope:friendly_child.culture = {
					NOT = {
						this = root.culture
					}
				}
				scope:friendly_child = {
					OR = {
						has_character_flag = singing_child
						has_character_flag = interpreter_child
					}
				}
				OR = {
					#is being converted to root's culture by guardian
					AND = {
						scope:friendly_child = {
							any_relation = {
								culture = root.culture
								type = guardian
								has_relation_flag = {
									target = scope:friendly_child
									relation = ward
									flag = convert_culture
								}
							}
							
						}
					}
					#is root's courtier
					scope:friendly_child = {
						liege ?= root
						NOT = { is_hostage_of = root }
					}
				}
			}
			scope:friendly_child = {
				set_culture = root.culture
			}
			every_courtier = {
				limit = { culture = root.culture }
				custom = custom.every_same_culture_courtier
				add_opinion = {
					target = root
					modifier = respect_opinion
					opinion = 20
				}
			}
			stress_impact = {
				paranoid = miniscule_stress_impact_loss
				compassionate = medium_stress_impact_gain
				trusting = medium_stress_impact_gain
				humble = medium_stress_impact_gain
			}
		}
		else_if = {
			limit = {
				scope:friendly_child = {
					OR = {
						has_character_flag = singing_child
						has_character_flag = interpreter_child
					}
				}
			}
			add_character_modifier = {
				modifier = insisting_on_norms_modifier
				years = 10
			}
			stress_impact = {
				paranoid = miniscule_stress_impact_loss
				compassionate = medium_stress_impact_gain
				trusting = medium_stress_impact_gain
				humble = medium_stress_impact_gain
			}
		}
		else_if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = religious_child
				}
				OR = {
					#is being converted to root's faith by guardian
					AND = {
						scope:friendly_child = {
							any_relation = {
								faith = root.faith
								type = guardian
								has_relation_flag = {
									target = scope:friendly_child
									relation = ward
									flag = convert_faith
								}
							}
							
						}
					}
					#is root's courtier
					scope:friendly_child = {
						liege = root
						NOT = { is_hostage_of = root }
					}
				}
			}
			scope:friendly_child = {
				set_character_faith = root.faith
			}
			add_piety = minor_piety_gain
			stress_impact = {
				paranoid = miniscule_stress_impact_loss
				zealous = miniscule_stress_impact_loss
				compassionate = medium_stress_impact_gain
				trusting = medium_stress_impact_gain
				humble = medium_stress_impact_gain
				cynical = medium_stress_impact_gain
			}
		}
		else_if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = religious_child
				}
			}
			add_piety = minor_piety_gain
			stress_impact = {	
				paranoid = miniscule_stress_impact_loss
				zealous = miniscule_stress_impact_loss
				compassionate = medium_stress_impact_gain
				trusting = medium_stress_impact_gain
				humble = medium_stress_impact_gain
				cynical = medium_stress_impact_gain
			}
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_zeal = 1
				ai_compassion = -1
			}
			modifier = {
				factor = 0
				OR = {
					AND = {
						scope:friendly_child = {
							has_character_flag = religious_child
						}
						has_trait = cynical
					}
					has_trait = compassionate
					has_trait = trusting
					has_trait = humble
				}
			}
		}
	}
	option = { #help me out, child
		name = {
			text = {
				first_valid = {
					triggered_desc = {
						trigger = { 
							scope:friendly_child = {
								has_character_flag = interpreter_child
							}
						}
						desc = travel_events.4050.c.interpreter
					}
					triggered_desc = {
						trigger = { 
							scope:friendly_child = {
								has_character_flag = religious_child
							}
						}
						desc = travel_events.4050.c.religious
					}
					triggered_desc = {
						trigger = { 
							scope:friendly_child = {
								has_character_flag = singing_child
							}
						}
						desc = travel_events.4050.c.singing
					}
				}
			}
		}
		flavor = travel_events.4050.c.tt

		scope:friendly_child = {
			add_opinion = {
				target = root
				opinion = 25
				modifier = pleased_opinion
			}
		}
		if = {
			limit = {
				scope:friendly_child = {
					NOT = { has_character_flag = singing_child }
				}
			}
			add_prestige = miniscule_prestige_gain
		}
		
		ai_chance = {
			ai_value_modifier = {
				ai_sociability = -1
				ai_energy = -1
			}
			modifier = {
				factor = 0
				OR = {
					has_trait = paranoid
					has_trait = diligent
				}
			}
		}
		if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = singing_child
				}
			}
				stress_impact = {
				base = medium_stress_impact_loss
				paranoid = medium_stress_impact_gain
				diligent = minor_stress_impact_gain
				generous = miniscule_stress_impact_loss
				shy = miniscule_stress_impact_loss
				lazy = miniscule_stress_impact_loss
			}
		}
		stress_impact = {
			base = minor_stress_impact_loss
			paranoid = medium_stress_impact_gain
			diligent = minor_stress_impact_gain
			generous = miniscule_stress_impact_loss
			shy = miniscule_stress_impact_loss
			lazy = miniscule_stress_impact_loss
		}
	}
	after = {
		if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = interpreter_child
				}
			}
		}
		scope:friendly_child = {
			remove_character_flag = interpreter_child
		}
		if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = religious_child
				}
			}
		}
		scope:friendly_child = {
			remove_character_flag = religious_child
		}
		if = {
			limit = {
				scope:friendly_child = {
					has_character_flag = singing_child
				}
			}
		}
		scope:friendly_child = {
			remove_character_flag = singing_child
		}
	}
}

## CE1 Legend event
# by Nick Meredith

travel_events.5001 = { 
	type = character_event
	title = travel_events.5001.t
	desc = travel_events.5001.desc
	theme = travel_danger
	left_portrait = {
		character = root
		animation = thinking
	}
	override_background = { reference = wilderness_scope }
	cooldown = { months = 10 }

	trigger = {
		is_available_travelling_adult = yes
		is_landed = yes
		is_location_valid_for_travel_event_on_land = yes
		location = {
			any_province_legend = {
				exists = legend_owner
				NOT = {
					legend_owner = root
				}
			}
		}
		current_travel_plan ?= {
			any_entourage_character = {
				is_available_travelling_adult = yes
			}
		}
	}
	immediate = {
		wayfarer_storyteller_fame_effect = { VALUE = roaming_reward_fame_small }
		location = {
			save_scope_as = background_wilderness_scope
			random_province_legend = {
				limit = {
					exists = legend_owner
					NOT = {
						legend_owner = root
					}					
				}
				save_scope_as = potential_legend
			}
		}
		current_travel_plan ?= {
			random_entourage_character = {
				limit = {
					is_available_travelling_adult = yes
				}
				save_scope_as = travelling_character
			}
		}
	}

	# Take up the legend
	option = { 
		name = travel_events.5001.a

		set_promoted_legend = scope:potential_legend

		stress_impact = {
			ambitious = miniscule_stress_impact_gain
			humble = minor_stress_impact_loss
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = -0.5
			}
		}
	}

	#Carry it with you
	option = { 
		name = travel_events.5001.b

		flavor = travel_events.5001.b.flavor

		scope:potential_legend = {
			add_legend_county_modifier = {
				modifier = legend_secure_safe
			}
		}

		stress_impact = {   
			gregarious = miniscule_stress_impact_loss
			shy = minor_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = 1    
			}
		}
	}

	#Leave it
	option = { 
		name = travel_events.5001.c

		if = {
			limit = {
				exists = promoted_legend
				NOT = { promoted_legend = scope:potential_legend }
			}
			scope:potential_legend = {
				change_legend_quality_effect = { VALUE = minor_legend_quality_increase }
			}
		}
		else = {
			add_prestige = minor_prestige_gain
		}

		stress_impact = {
			ambitious = miniscule_stress_impact_loss
			content = minor_stress_impact_gain
			arrogant = miniscule_stress_impact_loss
			humble = minor_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = 1   
			}
		}
	}
}
