﻿namespace = agse_squire_events

agse_squire_events.2300 = {
	type = character_event
	title = agse_squire_events.2300.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:agse_squire = { any_parent = { this = root } } }
				desc = agse_squire_events.2300.desc_child
			}
			desc = agse_squire_events.2300.desc
		}
	}
	theme = intrigue
	override_background = { reference = dungeon }
	left_portrait = { character = root animation = disapproval }
	right_portrait = { character = scope:agse_squire animation = fear }
	trigger = {
		agse_knight_with_squire_trigger = yes
		has_variable = agse_disillusionment_squire
		has_variable = agse_disillusionment_other
		var:agse_disillusionment_squire = {
			is_alive = yes
			has_relation_agot_knight = root
		}
		var:agse_disillusionment_other = {
			is_alive = no
			killer ?= root
		}
	}
	immediate = {
		if = {
			limit = { has_variable = agse_disillusionment_squire }
			var:agse_disillusionment_squire ?= { save_scope_as = agse_squire }
		}
		else = {
			random_relation = {
				type = agot_squire
				limit = { agse_valid_disillusionment_squire_trigger = { KNIGHT = root } }
				save_scope_as = agse_squire
			}
		}
		if = {
			limit = { has_variable = agse_disillusionment_other }
			var:agse_disillusionment_other ?= { save_scope_as = agse_disillusionment_other }
		}
		else_if = {
			limit = { any_prisoner = { is_alive = yes } }
			random_prisoner = {
				limit = { is_alive = yes }
				save_scope_as = agse_disillusionment_other
			}
		}
		else = {
			random_courtier_or_guest = {
				limit = {
					is_alive = yes
					NOT = { this = root }
					NOT = { this = scope:agse_squire }
				}
				save_scope_as = agse_disillusionment_other
			}
		}
		if = {
			limit = {
				exists = scope:agse_disillusionment_other
				exists = scope:agse_squire
				any_secret = {
					type = secret_murder
					secret_target = scope:agse_disillusionment_other
					NOT = { is_known_by = scope:agse_squire }
				}
			}
			random_secret = {
				type = secret_murder
				limit = {
					secret_target = scope:agse_disillusionment_other
					NOT = { is_known_by = scope:agse_squire }
				}
				reveal_to = scope:agse_squire
			}
		}
		debug_log = "AGSE: A squire witnessed their knight's murder."
	}
	option = {
		name = agse_squire_events.2300.a
		flavor = agse_squire_events.2300.a.flavor
		trigger_event = {
			id = agse_squire_events.2305
			days = 3
		}
	}
}

agse_squire_events.2305 = {
	type = character_event
	hidden = yes
	immediate = {
		var:agse_disillusionment_squire ?= { save_scope_as = agse_squire }
		var:agse_disillusionment_other ?= { save_scope_as = agse_disillusionment_other }
		if = {
			limit = {
				exists = scope:agse_squire
				exists = scope:agse_disillusionment_other
				any_secret = {
					type = secret_murder
					secret_target = scope:agse_disillusionment_other
					is_known_by = scope:agse_squire
				}
			}
			random_secret = {
				type = secret_murder
				limit = {
					secret_target = scope:agse_disillusionment_other
					is_known_by = scope:agse_squire
				}
				expose_secret = scope:agse_squire
			}
		}
		trigger_event = {
			id = agse_squire_events.2310
			days = 1
		}
	}
}

agse_squire_events.2310 = {
	type = character_event
	title = agse_squire_events.2310.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					var:agse_disillusionment_cause = flag:murder_witness
					scope:agse_squire = { any_parent = { this = root } }
				}
				desc = agse_squire_events.2310.desc.murder_child
			}
			triggered_desc = {
				trigger = { var:agse_disillusionment_cause = flag:murder_witness }
				desc = agse_squire_events.2310.desc.murder
			}
			triggered_desc = {
				trigger = {
					var:agse_disillusionment_cause = flag:torture
					scope:agse_squire = { any_parent = { this = root } }
				}
				desc = agse_squire_events.2310.desc.torture_child
			}
			triggered_desc = {
				trigger = { var:agse_disillusionment_cause = flag:torture }
				desc = agse_squire_events.2310.desc.torture
			}
			triggered_desc = {
				trigger = {
					var:agse_disillusionment_cause = flag:cruel_execution
					scope:agse_squire = { any_parent = { this = root } }
				}
				desc = agse_squire_events.2310.desc.execution_child
			}
			desc = agse_squire_events.2310.desc.execution
		}
	}
	theme = diplomacy
	override_background = {
		trigger = { var:agse_disillusionment_cause = flag:murder_witness }
		reference = bedchamber
	}
	override_background = {
		trigger = { var:agse_disillusionment_cause = flag:torture }
		reference = dungeon
	}
	override_background = {
		trigger = { var:agse_disillusionment_cause = flag:cruel_execution }
		reference = gallows
	}
	left_portrait = { character = root animation = disapproval }
	right_portrait = { character = scope:agse_squire animation = sadness }
	trigger = {
		agse_knight_with_squire_trigger = yes
		trigger_if = {
			limit = { has_variable = agse_disillusionment_squire }
			var:agse_disillusionment_squire = {
				is_alive = yes
				has_relation_agot_knight = root
				NOT = { has_character_flag = agse_knight_i_thought_seen }
			}
		}
	}
	immediate = {
		if = {
			limit = { has_variable = agse_disillusionment_squire }
			var:agse_disillusionment_squire ?= { save_scope_as = agse_squire }
		}
		else = {
			random_relation = {
				type = agot_squire
				limit = { agse_valid_disillusionment_squire_trigger = { KNIGHT = root } }
				save_scope_as = agse_squire
			}
		}
		if = {
			limit = { has_variable = agse_disillusionment_other }
			var:agse_disillusionment_other ?= { save_scope_as = agse_disillusionment_other }
		}
		if = {
			limit = { NOT = { has_variable = agse_disillusionment_cause } }
			set_variable = {
				name = agse_disillusionment_cause
				value = flag:cruel_execution
			}
		}
		scope:agse_squire ?= { add_character_flag = agse_knight_i_thought_seen }
		debug_log = "AGSE: The Knight I Thought You Were fired."
	}

	option = {
		trigger = { var:agse_disillusionment_cause = flag:murder_witness }
		name = {
			trigger = { has_trait = honest }
			text = agse_squire_events.2310.murder.a.honest
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.murder.a
		}
		trait = honest
		agse_log_ai_squire_lesson_effect = { TRAIT = honest }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = honest
			}
		}
		flavor = agse_squire_events.2310.murder.a.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = honest }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_opinion = { target = root modifier = agse_confessed_murder_to_me_opinion }
		}
		stress_impact = { honest = minor_stress_impact_loss deceitful = minor_stress_impact_gain }
	}
	option = {
		trigger = { var:agse_disillusionment_cause = flag:murder_witness }
		name = {
			trigger = { has_trait = callous }
			text = agse_squire_events.2310.murder.b.callous
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.murder.b
		}
		trait = callous
		agse_log_ai_squire_lesson_effect = { TRAIT = callous }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = callous
			}
		}
		flavor = agse_squire_events.2310.murder.b.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = callous }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_stress = minor_stress_gain
			add_opinion = { target = root modifier = agse_justified_murder_to_me_opinion }
		}
		stress_impact = { callous = minor_stress_impact_loss compassionate = minor_stress_impact_gain }
	}
	option = {
		trigger = { var:agse_disillusionment_cause = flag:murder_witness }
		name = {
			trigger = { has_trait = wrathful }
			text = agse_squire_events.2310.murder.c.wrathful
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.murder.c
		}
		trait = wrathful
		agse_log_ai_squire_lesson_effect = { TRAIT = wrathful }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = wrathful
			}
		}
		flavor = agse_squire_events.2310.murder.c.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = wrathful }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_stress = medium_stress_gain
			add_opinion = { target = root modifier = agse_threatened_my_silence_opinion }
		}
		stress_impact = { wrathful = minor_stress_impact_loss calm = medium_stress_impact_gain }
	}

	option = {
		trigger = { var:agse_disillusionment_cause = flag:torture }
		name = {
			trigger = { has_trait = compassionate }
			text = agse_squire_events.2310.torture.a.compassionate
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.torture.a
		}
		trait = compassionate
		agse_log_ai_squire_lesson_effect = { TRAIT = compassionate }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = compassionate
			}
		}
		flavor = agse_squire_events.2310.torture.a.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = compassionate }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_stress = minor_stress_loss
			add_opinion = { target = root modifier = agse_regretted_cruelty_opinion }
		}
		stress_impact = { compassionate = minor_stress_impact_loss callous = minor_stress_impact_gain }
	}
	option = {
		trigger = { var:agse_disillusionment_cause = flag:torture }
		name = {
			trigger = { has_trait = callous }
			text = agse_squire_events.2310.torture.b.callous
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.torture.b
		}
		trait = callous
		agse_log_ai_squire_lesson_effect = { TRAIT = callous }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = callous
			}
		}
		flavor = agse_squire_events.2310.torture.b.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = callous }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_stress = minor_stress_gain
			add_opinion = { target = root modifier = agse_defended_cruelty_opinion }
		}
		stress_impact = { callous = minor_stress_impact_loss compassionate = medium_stress_impact_gain }
	}
	option = {
		trigger = { var:agse_disillusionment_cause = flag:torture }
		name = {
			trigger = { has_trait = wrathful }
			text = agse_squire_events.2310.torture.c.wrathful
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.torture.c
		}
		trait = wrathful
		agse_log_ai_squire_lesson_effect = { TRAIT = wrathful }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = wrathful
			}
		}
		flavor = agse_squire_events.2310.torture.c.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = wrathful }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_stress = medium_stress_gain
			add_opinion = { target = root modifier = agse_gloried_in_cruelty_opinion }
		}
		stress_impact = { wrathful = minor_stress_impact_loss calm = medium_stress_impact_gain }
	}

	option = {
		trigger = { var:agse_disillusionment_cause = flag:cruel_execution }
		name = {
			trigger = { has_trait = just }
			text = agse_squire_events.2310.execution.a.just
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.execution.a
		}
		trait = just
		agse_log_ai_squire_lesson_effect = { TRAIT = just }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = just
			}
		}
		flavor = agse_squire_events.2310.execution.a.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = just }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_opinion = { target = root modifier = agse_explained_harsh_judgment_opinion }
		}
		stress_impact = { just = minor_stress_impact_loss arbitrary = minor_stress_impact_gain }
	}
	option = {
		trigger = { var:agse_disillusionment_cause = flag:cruel_execution }
		name = {
			trigger = { has_trait = compassionate }
			text = agse_squire_events.2310.execution.b.compassionate
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.execution.b
		}
		trait = compassionate
		agse_log_ai_squire_lesson_effect = { TRAIT = compassionate }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = compassionate
			}
		}
		flavor = agse_squire_events.2310.execution.b.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = compassionate }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_stress = minor_stress_loss
			add_opinion = { target = root modifier = agse_questioned_harsh_sentence_opinion }
		}
		stress_impact = { compassionate = minor_stress_impact_loss callous = minor_stress_impact_gain }
	}
	option = {
		trigger = { var:agse_disillusionment_cause = flag:cruel_execution }
		name = {
			trigger = { has_trait = wrathful }
			text = agse_squire_events.2310.execution.c.wrathful
		}
		name = {
			trigger = { always = yes }
			text = agse_squire_events.2310.execution.c
		}
		trait = wrathful
		agse_log_ai_squire_lesson_effect = { TRAIT = wrathful }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = wrathful
			}
		}
		flavor = agse_squire_events.2310.execution.c.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = wrathful }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_stress = minor_stress_gain
			add_opinion = { target = root modifier = agse_dismissed_mercy_opinion }
		}
		stress_impact = { wrathful = minor_stress_impact_loss calm = medium_stress_impact_gain }
	}

	after = {
		agse_clear_knight_disillusionment_effect = yes
	}
}

agse_squire_events.2360 = {
	type = character_event
	hidden = yes
	trigger = {
		agse_knight_with_squire_trigger = yes
		NOT = { has_character_flag = agse_knight_disillusionment_pending }
		exists = scope:agse_execution_victim
		exists = scope:agse_execution_squire
		scope:agse_execution_victim = {
			is_alive = no
			killer ?= root
			agse_cruel_execution_death_trigger = yes
		}
		scope:agse_execution_squire = {
			agse_valid_disillusionment_squire_trigger = { KNIGHT = root }
		}
	}
	immediate = {
		random = {
			chance = 30
			modifier = {
				factor = 0.4
				is_ai = yes
			}
			agse_queue_knight_disillusionment_effect = {
				SQUIRE = scope:agse_execution_squire
				OTHER = scope:agse_execution_victim
				CAUSE = cruel_execution
			}
		}
	}
}

agse_squire_events.2330 = {
	type = character_event
	hidden = yes
	orphan = yes
	immediate = {
		random_relation = {
			type = agot_squire
			limit = { agse_valid_disillusionment_squire_trigger = { KNIGHT = root } }
			save_scope_as = agse_disillusionment_squire
		}
		if = {
			limit = { any_prisoner = { is_alive = yes } }
			random_prisoner = { limit = { is_alive = yes } save_scope_as = agse_disillusionment_other }
		}
		else = {
			random_courtier_or_guest = {
				limit = { is_alive = yes NOT = { this = root } NOT = { this = scope:agse_disillusionment_squire } }
				save_scope_as = agse_disillusionment_other
			}
		}
		set_variable = { name = agse_disillusionment_squire value = scope:agse_disillusionment_squire }
		set_variable = { name = agse_disillusionment_other value = scope:agse_disillusionment_other }
		set_variable = { name = agse_disillusionment_cause value = flag:murder_witness }
		trigger_event = agse_squire_events.2310
	}
}

agse_squire_events.2340 = {
	type = character_event
	hidden = yes
	orphan = yes
	immediate = {
		random_relation = {
			type = agot_squire
			limit = { agse_valid_disillusionment_squire_trigger = { KNIGHT = root } }
			save_scope_as = agse_disillusionment_squire
		}
		if = {
			limit = { any_prisoner = { is_alive = yes } }
			random_prisoner = { limit = { is_alive = yes } save_scope_as = agse_disillusionment_other }
		}
		else = {
			random_courtier_or_guest = {
				limit = { is_alive = yes NOT = { this = root } NOT = { this = scope:agse_disillusionment_squire } }
				save_scope_as = agse_disillusionment_other
			}
		}
		set_variable = { name = agse_disillusionment_squire value = scope:agse_disillusionment_squire }
		set_variable = { name = agse_disillusionment_other value = scope:agse_disillusionment_other }
		set_variable = { name = agse_disillusionment_cause value = flag:torture }
		trigger_event = agse_squire_events.2310
	}
}

agse_squire_events.2350 = {
	type = character_event
	hidden = yes
	orphan = yes
	immediate = {
		random_relation = {
			type = agot_squire
			limit = { agse_valid_disillusionment_squire_trigger = { KNIGHT = root } }
			save_scope_as = agse_disillusionment_squire
		}
		if = {
			limit = { any_prisoner = { is_alive = yes } }
			random_prisoner = { limit = { is_alive = yes } save_scope_as = agse_disillusionment_other }
		}
		else = {
			random_courtier_or_guest = {
				limit = { is_alive = yes NOT = { this = root } NOT = { this = scope:agse_disillusionment_squire } }
				save_scope_as = agse_disillusionment_other
			}
		}
		set_variable = { name = agse_disillusionment_squire value = scope:agse_disillusionment_squire }
		set_variable = { name = agse_disillusionment_other value = scope:agse_disillusionment_other }
		set_variable = { name = agse_disillusionment_cause value = flag:cruel_execution }
		trigger_event = agse_squire_events.2310
	}
}
