﻿namespace = agse_squire_events

agse_squire_events.1800 = {
	type = character_event
	title = agse_squire_events.1800.t
	desc = {
		first_valid = {
			triggered_desc = { trigger = { scope:agse_squire = { any_parent = { this = root } } } desc = agse_squire_events.1800.desc_child }
			desc = agse_squire_events.1800.desc
		}
	}
	theme = martial
	override_background = { reference = army_camp }
	left_portrait = { character = root animation = disapproval }
	right_portrait = { character = scope:agse_squire animation = shame }
	trigger = { agse_knight_with_squire_trigger = yes }
	immediate = {
		if = { limit = { has_variable = agse_squire_campaign_selected_squire } var:agse_squire_campaign_selected_squire ?= { save_scope_as = agse_squire } }
		else = { random_relation = { type = agot_squire limit = { agse_valid_campaign_squire_trigger = yes } save_scope_as = agse_squire } }
		remove_character_flag = agse_squire_campaign_event_queued
		remove_variable = agse_squire_campaign_selected_squire
		remove_variable = agse_squire_campaign_selected_knight
		remove_variable = agse_squire_campaign_selected_army
		remove_variable = agse_squire_campaign_event_type
		scope:agse_squire = {
			add_character_flag = { flag = agse_squire_campaign_event_cooldown months = 6 }
			add_character_flag = { flag = agse_seven_hells_boy_cooldown years = 3 }
		}
		debug_log = "AGSE: Seven Hells! fired."
	}
	option = {
		name = { trigger = { has_trait = diligent } text = agse_squire_events.1800.a.diligent }
		name = { trigger = { always = yes } text = agse_squire_events.1800.a }
		trait = diligent
		agse_log_ai_squire_lesson_effect = { TRAIT = diligent }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = diligent
			}
		}
		flavor = agse_squire_events.1800.a.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = diligent }
			agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
			add_opinion = { target = root modifier = agse_made_me_put_it_right_opinion }
		}
		stress_impact = { diligent = minor_stress_impact_loss lazy = minor_stress_impact_gain }
	}
	option = {
		name = { trigger = { has_trait = forgiving } text = agse_squire_events.1800.b.forgiving }
		name = { trigger = { always = yes } text = agse_squire_events.1800.b }
		trait = forgiving
		agse_log_ai_squire_lesson_effect = { TRAIT = forgiving }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = forgiving
			}
		}
		flavor = agse_squire_events.1800.b.flavor
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = forgiving }
			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_forgave_my_campaign_mistake_opinion }
		}
		stress_impact = { forgiving = minor_stress_impact_loss vengeful = minor_stress_impact_gain }
	}
	option = {
		name = { trigger = { has_trait = wrathful } text = agse_squire_events.1800.c.wrathful }
		name = { trigger = { always = yes } text = agse_squire_events.1800.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.1800.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_felt_my_campaign_fury_opinion }
		}
		stress_impact = { wrathful = minor_stress_impact_loss calm = minor_stress_impact_gain }
	}
}

agse_squire_events.1900 = {
	type = character_event
	title = agse_squire_events.1900.t
	desc = {
		first_valid = {
			triggered_desc = { trigger = { scope:agse_squire = { any_parent = { this = root } } } desc = agse_squire_events.1900.desc_child }
			desc = agse_squire_events.1900.desc
		}
	}
	theme = martial
	override_background = { reference = army_camp }
	left_portrait = { character = root animation = thinking }
	right_portrait = { character = scope:agse_squire animation = stayback }
	trigger = { agse_knight_with_squire_trigger = yes }
	immediate = {
		if = {
			limit = { has_variable = agse_squire_campaign_selected_squire has_variable = agse_squire_campaign_selected_knight }
			var:agse_squire_campaign_selected_squire ?= { save_scope_as = agse_squire }
			var:agse_squire_campaign_selected_knight ?= { save_scope_as = agse_campaign_knight }
		}
		else = {
			random_relation = { type = agot_squire limit = { agse_valid_campaign_squire_trigger = yes } save_scope_as = agse_squire }
			if = { limit = { exists = commanding_army } commanding_army.army_owner = { random_knight = { limit = { is_alive = yes NOT = { this = root } } save_scope_as = agse_campaign_knight } } }
			else_if = { limit = { exists = knight_army } knight_army.army_owner = { random_knight = { limit = { is_alive = yes NOT = { this = root } } save_scope_as = agse_campaign_knight } } }
		}
		remove_character_flag = agse_squire_campaign_event_queued
		remove_variable = agse_squire_campaign_selected_squire
		remove_variable = agse_squire_campaign_selected_knight
		remove_variable = agse_squire_campaign_selected_army
		remove_variable = agse_squire_campaign_event_type
		scope:agse_squire = {
			add_character_flag = { flag = agse_squire_campaign_event_cooldown months = 6 }
			add_character_flag = { flag = agse_message_must_reach_cooldown years = 3 }
		}
		debug_log = "AGSE: The Message Must Reach Them fired."
	}
	option = {
		name = { trigger = { has_trait = brave } text = agse_squire_events.1900.a.brave }
		name = { trigger = { always = yes } text = agse_squire_events.1900.a }
		trait = brave
		agse_log_ai_squire_lesson_effect = { TRAIT = brave }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = brave
			}
		}
		flavor = agse_squire_events.1900.a.flavor
		set_variable = { name = agse_message_route value = flag:brave }
		random_list = {
			75 = { set_variable = { name = agse_message_outcome value = flag:brave_safe } }
			22 = { set_variable = { name = agse_message_outcome value = flag:brave_wounded } }
			3 = {
				modifier = { factor = 2 scope:agse_squire = { prowess <= 5 } }
				modifier = { factor = 2 scope:agse_squire = { has_trait = craven } }
				modifier = { factor = 0.5 scope:agse_squire = { prowess >= 15 } }
				modifier = { factor = 0.5 scope:agse_squire = { has_trait = brave } }
				set_variable = { name = agse_message_outcome value = flag:brave_dead }
			}
		}
		trigger_event = { id = agse_squire_events.1910 days = 3 }
		stress_impact = { brave = minor_stress_impact_loss craven = minor_stress_impact_gain }
	}
	option = {
		name = { trigger = { has_trait = patient } text = agse_squire_events.1900.b.patient }
		name = { trigger = { always = yes } text = agse_squire_events.1900.b }
		trait = patient
		agse_log_ai_squire_lesson_effect = { TRAIT = patient }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = patient
			}
		}
		flavor = agse_squire_events.1900.b.flavor
		set_variable = { name = agse_message_route value = flag:patient }
		random_list = {
			85 = { set_variable = { name = agse_message_outcome value = flag:patient_safe } }
			13 = { set_variable = { name = agse_message_outcome value = flag:patient_funny } }
			2 = { set_variable = { name = agse_message_outcome value = flag:patient_wounded } }
		}
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = patient }
			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_prepared_me_for_road_opinion }
		}
		trigger_event = { id = agse_squire_events.1910 days = 3 }
		stress_impact = { patient = minor_stress_impact_loss impatient = minor_stress_impact_gain }
	}
	option = {
		name = { trigger = { has_trait = paranoid } text = agse_squire_events.1900.c.paranoid }
		name = { trigger = { always = yes } text = agse_squire_events.1900.c }
		trait = paranoid
		agse_log_ai_squire_lesson_effect = { TRAIT = paranoid }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = paranoid
			}
		}
		flavor = agse_squire_events.1900.c.flavor
		set_variable = { name = agse_message_route value = flag:paranoid }
		random_list = {
			70 = { set_variable = { name = agse_message_outcome value = flag:paranoid_safe } }
			25 = { set_variable = { name = agse_message_outcome value = flag:paranoid_funny } }
			5 = { set_variable = { name = agse_message_outcome value = flag:paranoid_stressed } }
		}
		scope:agse_squire = {
			agse_try_squire_personality_imprint_effect = { TRAIT = paranoid }
			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_taught_me_trust_no_one_opinion }
		}
		trigger_event = { id = agse_squire_events.1910 days = 3 }
		stress_impact = { paranoid = minor_stress_impact_loss trusting = minor_stress_impact_gain }
	}
}

agse_squire_events.1910 = {
	type = character_event
	title = agse_squire_events.1910.t
	desc = {
		first_valid = {
			triggered_desc = { trigger = { var:agse_message_outcome = flag:brave_safe } desc = agse_squire_events.1910.desc.brave_safe }
			triggered_desc = { trigger = { var:agse_message_outcome = flag:brave_wounded } desc = agse_squire_events.1910.desc.brave_wounded }
			triggered_desc = { trigger = { var:agse_message_outcome = flag:brave_dead } desc = agse_squire_events.1910.desc.brave_dead }
			triggered_desc = { trigger = { var:agse_message_outcome = flag:patient_safe } desc = agse_squire_events.1910.desc.patient_safe }
			triggered_desc = { trigger = { var:agse_message_outcome = flag:patient_funny } desc = agse_squire_events.1910.desc.patient_funny }
			triggered_desc = { trigger = { var:agse_message_outcome = flag:patient_wounded } desc = agse_squire_events.1910.desc.patient_wounded }
			triggered_desc = { trigger = { var:agse_message_outcome = flag:paranoid_safe } desc = agse_squire_events.1910.desc.paranoid_safe }
			triggered_desc = { trigger = { var:agse_message_outcome = flag:paranoid_funny } desc = agse_squire_events.1910.desc.paranoid_funny }
			desc = agse_squire_events.1910.desc.paranoid_stressed
		}
	}
	theme = martial
	override_background = { reference = army_camp }
	left_portrait = { character = root animation = worry }
	right_portrait = {
		character = scope:agse_squire
		animation = horse_surveying
		camera = camera_event_very_right_looking_center_fov40
	}
	lower_center_portrait = { character = scope:agse_campaign_knight animation = sadness }
	immediate = {
		if = {
			limit = { NOT = { has_variable = agse_message_outcome } }
			set_variable = { name = agse_message_outcome value = flag:brave_safe }
		}
		if = { limit = { OR = { var:agse_message_outcome = flag:brave_wounded var:agse_message_outcome = flag:patient_wounded } } scope:agse_squire = { add_trait = wounded_1 } }
		else_if = { limit = { var:agse_message_outcome = flag:brave_dead } scope:agse_squire = { death = { death_reason = death_battle } } add_stress = major_stress_gain }
		else_if = { limit = { var:agse_message_outcome = flag:paranoid_stressed } scope:agse_squire = { add_stress = minor_stress_gain } }
		debug_log = "AGSE: The Message Must Reach Them follow-up fired."
	}
	option = {
		name = agse_squire_events.1910.a
		if = {
			limit = { OR = { var:agse_message_outcome = flag:brave_safe var:agse_message_outcome = flag:brave_wounded } }
			scope:agse_squire = {
				agse_try_squire_personality_imprint_effect = { TRAIT = brave }
				agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 }
				add_opinion = { target = root modifier = agse_trusted_me_with_warning_opinion }
			}
		}
		remove_variable = agse_message_route
		remove_variable = agse_message_outcome
	}
}

agse_squire_events.2100 = {
	type = character_event
	title = agse_squire_events.2100.t
	desc = {
		first_valid = {
			triggered_desc = { trigger = { scope:agse_squire = { any_parent = { this = root } } } desc = agse_squire_events.2100.desc_child }
			desc = agse_squire_events.2100.desc
		}
	}
	theme = martial
	override_background = { reference = army_camp }
	left_portrait = { character = root animation = interested }
	right_portrait = { character = scope:agse_squire animation = thinking }
	trigger = { agse_knight_with_squire_trigger = yes }
	immediate = {
		if = { limit = { has_variable = agse_squire_campaign_selected_squire } var:agse_squire_campaign_selected_squire ?= { save_scope_as = agse_squire } }
		else = { random_relation = { type = agot_squire limit = { agse_valid_campaign_squire_trigger = yes } save_scope_as = agse_squire } }
		remove_character_flag = agse_squire_campaign_event_queued
		remove_variable = agse_squire_campaign_selected_squire
		remove_variable = agse_squire_campaign_selected_knight
		remove_variable = agse_squire_campaign_selected_army
		remove_variable = agse_squire_campaign_event_type
		scope:agse_squire = {
			add_character_flag = { flag = agse_squire_campaign_event_cooldown months = 6 }
			add_character_flag = { flag = agse_loot_at_feet_cooldown years = 3 }
		}
		debug_log = "AGSE: Loot at His Feet fired."
	}
	option = {
		name = { trigger = { has_trait = just } text = agse_squire_events.2100.a.just }
		name = { trigger = { always = yes } text = agse_squire_events.2100.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.2100.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_taught_me_right_in_war_opinion } }
		stress_impact = { just = minor_stress_impact_loss arbitrary = minor_stress_impact_gain }
	}
	option = {
		name = { trigger = { has_trait = greedy } text = agse_squire_events.2100.b.greedy }
		name = { trigger = { always = yes } text = agse_squire_events.2100.b }
		trait = greedy
		agse_log_ai_squire_lesson_effect = { TRAIT = greedy }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = greedy
			}
		}
		flavor = agse_squire_events.2100.b.flavor
		scope:agse_squire = { agse_try_squire_personality_imprint_effect = { TRAIT = greedy } agot_add_squire_trait_xp_skip_chiv_bonus_effect = { MIN_VALUE = 1 MAX_VALUE = 1 } add_gold = 5 add_opinion = { target = root modifier = agse_allowed_me_campaign_prize_opinion } }
		stress_impact = { greedy = minor_stress_impact_loss generous = minor_stress_impact_gain }
	}
	option = {
		name = { trigger = { has_trait = generous } text = agse_squire_events.2100.c.generous }
		name = { trigger = { always = yes } text = agse_squire_events.2100.c }
		trait = generous
		agse_log_ai_squire_lesson_effect = { TRAIT = generous }
		ai_chance = {
			base = 10
			modifier = {
				add = 90
				has_trait = generous
			}
		}
		flavor = agse_squire_events.2100.c.flavor
		remove_short_term_gold = tiny_gold_value
		scope:agse_squire = { agse_try_squire_personality_imprint_effect = { TRAIT = generous } 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_showed_generosity_in_war_opinion } }
		stress_impact = { generous = minor_stress_impact_loss greedy = minor_stress_impact_gain }
	}
}

agse_squire_events.2200 = {
	type = character_event
	hidden = yes
	immediate = {
		if = {
			limit = {
				exists = scope:army
				scope:army = { is_army_in_combat = no is_army_in_siege = no NOT = { has_variable = agse_squire_campaign_event_fired } }
				is_current_dragonrider_warfare = no
				NOT = { has_character_flag = agse_squire_campaign_event_queued }
				any_relation = { type = agot_squire agse_valid_army_campaign_squire_trigger = yes }
			}
			random = {
				chance = 35
				modifier = {
					factor = 0.3
					is_ai = yes
				}
				random_list = {
					25 = {
						trigger = { any_relation = { type = agot_squire agse_valid_army_campaign_squire_trigger = yes NOT = { has_character_flag = agse_seven_hells_boy_cooldown } } }
						random_relation = { type = agot_squire limit = { agse_valid_army_campaign_squire_trigger = yes NOT = { has_character_flag = agse_seven_hells_boy_cooldown } } save_scope_as = agse_campaign_selected_squire }
						set_variable = { name = agse_squire_campaign_event_type value = flag:seven_hells_boy }
						set_variable = { name = agse_squire_campaign_selected_squire value = scope:agse_campaign_selected_squire }
						set_variable = { name = agse_squire_campaign_selected_army value = scope:army }
					}
					50 = {
						trigger = {
							any_relation = { type = agot_squire agse_valid_army_campaign_squire_trigger = yes NOT = { has_character_flag = agse_message_must_reach_cooldown } }
							scope:army.army_owner = { any_knight = { is_alive = yes is_imprisoned = no knight_army ?= scope:army NOT = { this = root } } }
						}
						random_relation = { type = agot_squire limit = { agse_valid_army_campaign_squire_trigger = yes NOT = { has_character_flag = agse_message_must_reach_cooldown } } save_scope_as = agse_campaign_selected_squire }
						scope:army.army_owner = { random_knight = { limit = { is_alive = yes is_imprisoned = no knight_army ?= scope:army NOT = { this = root } NOT = { this = scope:agse_campaign_selected_squire } } save_scope_as = agse_campaign_selected_knight } }
						set_variable = { name = agse_squire_campaign_event_type value = flag:message_must_reach }
						set_variable = { name = agse_squire_campaign_selected_squire value = scope:agse_campaign_selected_squire }
						set_variable = { name = agse_squire_campaign_selected_knight value = scope:agse_campaign_selected_knight }
						set_variable = { name = agse_squire_campaign_selected_army value = scope:army }
					}
					25 = {
						trigger = { any_relation = { type = agot_squire agse_valid_army_campaign_squire_trigger = yes NOT = { has_character_flag = agse_loot_at_feet_cooldown } } }
						random_relation = { type = agot_squire limit = { agse_valid_army_campaign_squire_trigger = yes NOT = { has_character_flag = agse_loot_at_feet_cooldown } } save_scope_as = agse_campaign_selected_squire }
						set_variable = { name = agse_squire_campaign_event_type value = flag:loot_at_feet }
						set_variable = { name = agse_squire_campaign_selected_squire value = scope:agse_campaign_selected_squire }
						set_variable = { name = agse_squire_campaign_selected_army value = scope:army }
					}
				}
				if = {
					limit = { has_variable = agse_squire_campaign_event_type }
					scope:army = { set_variable = agse_squire_campaign_event_fired }
					add_character_flag = { flag = agse_squire_campaign_event_queued days = 10 }
					trigger_event = { id = agse_squire_events.2210 days = 2 }
					debug_log = "AGSE: An army campaign squire event was queued."
				}
			}
		}
	}
}

agse_squire_events.2210 = {
	type = character_event
	hidden = yes
	immediate = {
		if = {
			limit = {
				has_character_flag = agse_squire_campaign_event_queued
				has_variable = agse_squire_campaign_selected_army
				has_variable = agse_squire_campaign_selected_squire
				is_current_dragonrider_warfare = no
				var:agse_squire_campaign_selected_army ?= { is_army_in_combat = no is_army_in_siege = no }
				OR = { AND = { is_commanding_army = yes commanding_army = var:agse_squire_campaign_selected_army } knight_army ?= var:agse_squire_campaign_selected_army }
				var:agse_squire_campaign_selected_squire ?= { agse_valid_campaign_squire_trigger = yes }
			}
			if = { limit = { var:agse_squire_campaign_event_type = flag:seven_hells_boy } trigger_event = agse_squire_events.1800 }
			else_if = { limit = { var:agse_squire_campaign_event_type = flag:message_must_reach has_variable = agse_squire_campaign_selected_knight } trigger_event = agse_squire_events.1900 }
			else_if = { limit = { var:agse_squire_campaign_event_type = flag:loot_at_feet } trigger_event = agse_squire_events.2100 }
			else = { remove_character_flag = agse_squire_campaign_event_queued }
		}
		else = {
			remove_character_flag = agse_squire_campaign_event_queued
			remove_variable = agse_squire_campaign_selected_squire
			remove_variable = agse_squire_campaign_selected_knight
			remove_variable = agse_squire_campaign_selected_army
			remove_variable = agse_squire_campaign_event_type
			debug_log = "AGSE: A queued army campaign squire event was cancelled after revalidation."
		}
	}
}
