﻿namespace = tdd_visit_far_off_realm_events

tdd_visit_far_off_realm_events.0001 = { # Cleanup if travel is canceled
	hidden = yes
	immediate = {
		ttd_cancel_far_off_realm_travel_clean_up_effect = yes
	}
}

tdd_visit_far_off_realm_events.0002 = { # Check if visit is still valid
	hidden = yes
	trigger = {
		has_variable = ttd_far_off_location
	}
	immediate = {
		if = {
			limit = { var:ttd_far_off_location.county.holder = var:ttd_far_off_target }
			trigger_event = tdd_visit_far_off_realm_events.0010
		}
		else_if = {
			limit = { var:ttd_far_off_location.county.holder = root }
			current_travel_plan = { cancel_travel_plan = yes }
			ttd_cancel_far_off_realm_travel_clean_up_effect = yes
		}
		else = {
			trigger_event = tdd_visit_far_off_realm_events.0003
		}
	}
}

tdd_visit_far_off_realm_events.0003 = { # Ask if they want to visit the new ruler
	type = character_event
	title = tdd_visit_far_off_realm_events.0003.t
	trigger = {
		has_variable = ttd_far_off_location
	}
	desc = tdd_visit_far_off_realm_events.0003.desc
	
	theme = ttd_visit_foreign_realm
	right_portrait = {
		character = var:ttd_far_off_location.county.holder
	}
	immediate = {
		var:ttd_far_off_location.county.holder = { save_scope_as = ttd_new_holder }
	}
	option = { # Continue
		name = tdd_visit_far_off_realm_events.0003.a
		set_variable = {
			name = ttd_far_off_target
			value = scope:ttd_new_holder
			years = 5 # So it will eventually go away if travel plan somehow gets cancelled
		}
		if = {
			limit = { location = var:ttd_far_off_location }
			trigger_event = tdd_visit_far_off_realm_events.0010
		}
		custom_tooltip = tdd_visit_far_off_realm_events.0003.a.tt
	}
	option = { # Go back
		name = tdd_visit_far_off_realm_events.0003.b
		current_travel_plan = { cancel_travel_plan = yes }
		ttd_cancel_far_off_realm_travel_clean_up_effect = yes
	}
}

tdd_visit_far_off_realm_events.0004 = { # Ask if they want to continue if war is declared
	type = character_event
	title = tdd_visit_far_off_realm_events.0004.t
	trigger = {
		has_variable = ttd_far_off_location
	}
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {	has_variable = ttd_far_off_host }
				desc = tdd_visit_far_off_realm_events.0004.desc_host
			}
			desc = tdd_visit_far_off_realm_events.0004.desc_traveling
		}
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = root }
				desc = activity_system.0300.desc.defender
			}
			desc = tdd_visit_far_off_realm_events.0004.desc_secondary
		}
		first_valid = {
			triggered_desc = {
				trigger = { is_at_war_with = scope:ttd_host }
				desc = tdd_visit_far_off_realm_events.0004.desc_ending_enemy_host
			}
			desc = tdd_visit_far_off_realm_events.0004.desc_ending
		}
	}
	theme = ttd_visit_foreign_realm
	left_portrait = {
		character = root
		animation = worry
	}
	lower_left_portrait = scope:attacker
	lower_right_portrait = {
		trigger = {
			NOT = { scope:defender = root }
		}
		character = scope:defender
	}
	immediate = { # Set up scopes used in localization and portraits
		scope:war.primary_attacker = { save_scope_as = attacker }
		scope:war.primary_defender = { save_scope_as = defender }
		if = {
			limit = { has_variable = ttd_far_off_host }
			var:ttd_far_off_host = { save_scope_as = ttd_host }
		}
		else = {
			var:ttd_far_off_target = { save_scope_as = ttd_host }
		}
	}
	option = { # Continue
		trigger = { NOT = { is_at_war_with = scope:ttd_host } }
		name = activity_system.0300.a
	}
	option = { # Go back
		name = activity_system.0300.b
		current_travel_plan = { cancel_travel_plan = yes }
	}
}

tdd_visit_far_off_realm_events.0010 = { # What to do while visiting
	type = character_event
	title = tdd_visit_far_off_realm_events.0010.t
	desc = {
		desc = tdd_visit_far_off_realm_events.0010.desc_opening
		first_valid = {
			triggered_desc = {
				trigger = {	has_character_flag = ttd_nearby_realm }
				desc = tdd_visit_far_off_realm_events.0010.desc_nearby
			}
			desc = tdd_visit_far_off_realm_events.0010.desc
		}
		desc = tdd_visit_far_off_realm_events.0010.desc_ending
	}
	theme = ttd_visit_foreign_realm
	trigger = {
		has_variable = ttd_far_off_target
	}
	
	left_portrait = {
		character = root
	}
	right_portrait = {
		character = var:ttd_far_off_host
	}
	immediate = {
		set_variable = {
			name = ttd_far_off_host
			value = var:ttd_far_off_target
			years = 2 # So it will eventually go away if travel plan somehow gets cancelled
		}
		remove_variable = ttd_far_off_target
		current_travel_plan ?= { pause_travel_plan = yes }
		trigger_event = {
			id = tdd_visit_far_off_realm_events.0011
			years = 1
		}
	}
	option = { # Socialize with host
		name = tdd_visit_far_off_realm_events.0010.a
		duel = {
			skill = diplomacy
			value = 0
			0 = { # Improve relation
				compare_modifier = {
					value = scope:duel_value
				}
				min = 1
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.a.success
					left_icon = root
					reverse_add_opinion = {
						target = var:ttd_far_off_host
						modifier = flattered_opinion
						opinion = 10
					}
				}
				desc = tdd_visit_far_off_realm_events.0010.a.success
			}
			10 = {  # Harm relation
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.a.failure
					left_icon = root
					reverse_add_opinion = {
						target = var:ttd_far_off_host
						modifier = insult_opinion
						opinion = -10
					}
				}
				desc = tdd_visit_far_off_realm_events.0010.a.failure
			}
		}
	}
	option = { # Learn foreign tactics
		name = tdd_visit_far_off_realm_events.0010.b
		trigger = { ttd_can_learn_foreign_tactic_trigger = { HOST_CULTURE = root.var:ttd_far_off_host.culture LOCATION = root.var:ttd_far_off_location } }
		duel = {
			skill = martial
			value = 0
			0 = { # Success
				compare_modifier = {
					value = scope:duel_value
				}
				min = 1
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.b.success
					left_icon = root
					ttd_learn_foreign_tactic_effect = { HOST_CULTURE = root.var:ttd_far_off_host.culture LOCATION = root.var:ttd_far_off_location }
				}
				desc = tdd_visit_far_off_realm_events.0010.b.success
			}
			10 = {  # Failure
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.b.failure
					left_icon = root
					add_stress = minor_stress_gain
				}
				desc = tdd_visit_far_off_realm_events.0010.b.failure
			}
		}
	}
	option = { # Conduct trade
		name = tdd_visit_far_off_realm_events.0010.c
		trigger = { gold > minor_gold_value }
		duel = {
			skill = stewardship
			value = 0
			0 = { # Make money
				compare_modifier = {
					value = scope:duel_value
				}
				min = 1
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.c.success
					left_icon = root
					add_gold = medium_gold_value
				}
				desc = tdd_visit_far_off_realm_events.0010.c.success
			}
			10 = {  # Lose money
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.c.failure
					left_icon = root
					remove_short_term_gold = minor_gold_value
				}
				desc = tdd_visit_far_off_realm_events.0010.c.failure
			}
		}
	}
	option = { # Seduce local
		name = tdd_visit_far_off_realm_events.0010.d
		trigger = {
			is_adult = yes
			NOR = {
				is_eunuch_trigger = yes
				has_trait = celibate
			}
		}
		duel = {
			skill = intrigue
			value = 0
			0 = { # Seduce local
				compare_modifier = {
					value = scope:duel_value
				}
				min = 1
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.d.success
					left_icon = root
					tdd_seduce_local_night_effect = yes
				}
				desc = tdd_visit_far_off_realm_events.0010.d.success
			}
			10 = {  # Caught acting indecently
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.d.failure
					left_icon = root
					add_piety = minor_piety_loss
				}
				desc = tdd_visit_far_off_realm_events.0010.d.failure
			}
		}
	}
	option = { # Learn about the local culture
		name = tdd_visit_far_off_realm_events.0010.e
		trigger = {
			NOR = {
				has_character_modifier = ttd_broadened_mind_modifier
				culture = root.var:ttd_far_off_location.county.culture
			}
		}
		duel = {
			skill = learning
			value = 0
			0 = { # Broaden mind
				compare_modifier = {
					value = scope:duel_value
				}
				min = 1
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.e.success
					left_icon = root
					add_character_modifier = ttd_broadened_mind_modifier
				}
				desc = tdd_visit_far_off_realm_events.0010.e.success
			}
			10 = {  # Embarrass self
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.e.failure
					left_icon = root
					add_prestige = minor_prestige_loss
				}
				desc = tdd_visit_far_off_realm_events.0010.e.failure
			}
		}
	}
	option = { # Go hunting
		name = tdd_visit_far_off_realm_events.0010.f
		trigger = {
			can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
			is_vegetarian_trigger = no
		}
		duel = {
			skill = prowess
			value = 0
			0 = {  # Successful hunt
				compare_modifier = {
					value = scope:duel_value
				}
				min = 1
				location = { save_scope_as = location } # Used in the creation of artifacts
				hidden_effect = {
					random_list = {
						40 = { # Create Skull
							trigger = { has_royal_court = yes }
							create_artifact_wall_skull_effect = {
								OWNER = root
								HUNTER = root
								LEGENDARY = no
								ANIMAL = flag:none
							}
						}
						40 = { # Create Hide
							trigger = { has_royal_court = yes }
							create_artifact_animal_hide_effect = {
								OWNER = root
								HUNTER = root
								LEGENDARY = no
								ANIMAL = flag:none
							}
						}
						20 = { # Create Trinket
							create_artifact_animal_trinket_effect = {
								OWNER = root
								HUNTER = root
								LEGENDARY = no
								ANIMAL = flag:none
							}
						}
					}
				}
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.f.success
					left_icon = scope:newly_created_artifact
					custom_tooltip = tdd_visit_far_off_realm_events.0010.f.success.tt
					if = {
						limit = { has_trait = lifestyle_hunter }
						add_trait_xp = {
							trait = lifestyle_hunter
							track = hunter
							value = minor_trait_xp
						}
					}
					else = {
						add_trait = lifestyle_hunter
					}
				}
				desc = tdd_visit_far_off_realm_events.0010.f.success
			}
			10 = {  # Become wounded
				send_interface_toast = {
					title = tdd_visit_far_off_realm_events.0010.f.failure
					left_icon = root
					increase_wounds_effect = { REASON = wild_animal }
				}
				desc = tdd_visit_far_off_realm_events.0010.f.failure
			}
		}
	}
}

tdd_visit_far_off_realm_events.0011 = { # Head back
	type = character_event
	title = tdd_visit_far_off_realm_events.0011.t
	desc = tdd_visit_far_off_realm_events.0011.desc
	theme = ttd_visit_foreign_realm
	trigger = {
		has_variable = ttd_far_off_host
	}
	left_portrait = {
		character = root
	}
	immediate = {
		remove_variable = ttd_far_off_host
		remove_variable = ttd_far_off_location
	}
	option = { # Go home
		name = tdd_visit_far_off_realm_events.0011.a
	}
	after = {
		current_travel_plan ?= {
			if = {
				limit = { is_paused = yes }
				resume_travel_plan = yes 
			}
		}
	}
}