##############################
# SPYMASTER
# JOB: action_uncover_plots
##############################

# The Spymaster discovers a chance to undermine a faction member
character_event = {
	id = 929
	title = EVTNAME929
	picture = GFX_evt_council
	border = GFX_event_normal_frame_intrigue

	desc = {
		text = EVTDESC929_COURT
		trigger = {
			event_target:faction_member = {
				in_faction = faction_court
			}
		}
	}
	desc = {
		text = EVTDESC929_PROSPERITY
		trigger = {
			event_target:faction_member = {
				in_faction = faction_prosperity
			}
		}
	}
	desc = {
		text = EVTDESC929_GLORY
		trigger = {
			event_target:faction_member = {
				in_faction = faction_glory
			}
		}
	}
	desc = {
		text = EVTDESC929_TRADITION
		trigger = {
			event_target:faction_member = {
				in_faction = faction_tradition
			}
		}
	}

	has_job_title = yes

	trigger = {
		has_job_action = action_uncover_plots
		in_seclusion = no
		NOT = { has_character_modifier = bedridden_illness }

		location = {
			owner = {
				same_liege = ROOT
				independent = no
				higher_real_tier_than = BARON

				trigger_if = {
					limit = { has_character_flag = faction_undermine }

					had_character_flag = {
						flag = faction_undermine
						years >= 5
					}
				}

				NOR = {
					is_liege_of = ROOT
					character = ROOT

					has_opinion_modifier = {
						who = liege
						name = opinion_coerced_into_leaving_faction
					}
				}

				trigger_if = {
					limit = { in_faction = faction_court }

					liege = {
						any_vassal = {
							in_faction = faction_court
							higher_real_tier_than = BARON
							NOT = { character = PREVPREV }
						}
					}
				}
				trigger_else_if = {
					limit = { in_faction = faction_prosperity }

					liege = {
						any_vassal = {
							in_faction = faction_prosperity
							higher_real_tier_than = BARON
							NOT = { character = PREVPREV }
						}
					}
				}
				trigger_else_if = {
					limit = { in_faction = faction_glory }

					liege = {
						any_vassal = {
							in_faction = faction_glory
							higher_real_tier_than = BARON
							NOT = { character = PREVPREV }
						}
					}
				}
				trigger_else = {
					in_faction = faction_tradition

					liege = {
						any_vassal = {
							in_faction = faction_tradition
							higher_real_tier_than = BARON
							NOT = { character = PREVPREV }
						}
					}
				}
			}
		}

		liege = {
			NOR = {
				has_character_flag = faction_court_war
				has_character_flag = faction_prosperity_war
				has_character_flag = faction_glory_war
				has_character_flag = faction_tradition_war
				has_character_flag = faction_pretender_war
				has_character_flag = faction_separatist_war
				has_character_flag = faction_religious_war
				has_character_flag = faction_succession_war
			}
		}
	}

	mean_time_to_happen = {
		months = 100

		job_event_mtth_modifier_intrigue_score = yes
		plus_councillor_job_events_opinion_score = yes
	}

	immediate = {
		location = {
			owner = {
				save_event_target_as = faction_member
			}
		}
	}

	option = {
		name = EVTOPTA929 # Report it to the liege

		event_target:faction_member = {
			set_character_flag = faction_undermine
		}

		liege = {
			show_scope_change = no

			letter_event = {
				id = PlusFaction.135
				tooltip = INFORM_LIEGE_UNDERMINE
			}
		}
	}

	option = {
		name = EVTOPTB929 #Ignore it

		trigger = { ai = no }

		if = {
			limit = { trait = diligent }

			random = {
				chance = 50
				remove_trait_diligent_effect = yes
			}
		}
		else_if = {
			limit = {
				NOT = { trait = slothful }
			}

			random = {
				chance = 50
				add_trait_slothful_effect = yes
			}
		}
	}
}

# 930: Spymaster undermines faction member - offmap
character_event = {
	id = 930
	title = EVTNAME929
	picture = GFX_evt_council
	border = GFX_event_normal_frame_intrigue

	desc = {
		text = EVTDESC929_COURT
		trigger = {
			event_target:faction_member = {
				in_faction = faction_court
			}
		}
	}
	desc = {
		text = EVTDESC929_PROSPERITY
		trigger = {
			event_target:faction_member = {
				in_faction = faction_prosperity
			}
		}
	}
	desc = {
		text = EVTDESC929_GLORY
		trigger = {
			event_target:faction_member = {
				in_faction = faction_glory
			}
		}
	}
	desc = {
		text = EVTDESC929_TRADITION
		trigger = {
			event_target:faction_member = {
				in_faction = faction_tradition
			}
		}
	}

	has_job_title = yes

	trigger = {
		has_job_action = action_uncover_plots
		in_seclusion = no
		NOT = { has_character_modifier = bedridden_illness }

		liege = {
			any_vassal = {
				higher_real_tier_than = BARON

				trigger_if = {
					limit = { has_character_flag = faction_undermine }

					had_character_flag = {
						flag = faction_undermine
						years >= 5
					}
				}

				NOR = {
					is_liege_of = ROOT
					character = ROOT

					has_opinion_modifier = {
						name = opinion_coerced_into_leaving_faction
						who = liege
					}
				}

				trigger_if = {
					limit = { in_faction = faction_court }

					liege = {
						any_vassal = {
							in_faction = faction_court
							higher_real_tier_than = BARON
							NOT = { character = PREVPREV }
						}
					}
				}
				trigger_else_if = {
					limit = { in_faction = faction_prosperity }

					liege = {
						any_vassal = {
							in_faction = faction_prosperity
							higher_real_tier_than = BARON
							NOT = { character = PREVPREV }
						}
					}
				}
				trigger_else_if = {
					limit = { in_faction = faction_glory }

					liege = {
						any_vassal = {
							in_faction = faction_glory
							higher_real_tier_than = BARON
							NOT = { character = PREVPREV }
						}
					}
				}
				trigger_else = {
					in_faction = faction_tradition

					liege = {
						any_vassal = {
							in_faction = faction_tradition
							higher_real_tier_than = BARON
							NOT = { character = PREVPREV }
						}
					}
				}
			}

			NOR = {
				has_character_flag = faction_court_war
				has_character_flag = faction_prosperity_war
				has_character_flag = faction_glory_war
				has_character_flag = faction_tradition_war
				has_character_flag = faction_pretender_war
				has_character_flag = faction_separatist_war
				has_character_flag = faction_religious_war
				has_character_flag = faction_succession_war
			}
		}
	}

	mean_time_to_happen = {
		years = 25

		job_event_mtth_modifier_intrigue_score = yes
		plus_councillor_job_events_opinion_score = yes
	}

	immediate = {
		liege = {
			random_vassal = {
				limit = {
					higher_real_tier_than = BARON

					trigger_if = {
						limit = { has_character_flag = faction_undermine }

						had_character_flag = {
							flag = faction_undermine
							years >= 5
						}
					}

					NOR = {
						is_liege_of = ROOT
						character = ROOT

						has_opinion_modifier = {
							name = opinion_coerced_into_leaving_faction
							who = liege
						}
					}

					trigger_if = {
						limit = { in_faction = faction_court }

						liege = {
							any_vassal = {
								in_faction = faction_court
								higher_real_tier_than = BARON
								NOT = { character = PREVPREV }
							}
						}
					}
					trigger_else_if = {
						limit = { in_faction = faction_prosperity }

						liege = {
							any_vassal = {
								in_faction = faction_prosperity
								higher_real_tier_than = BARON
								NOT = { character = PREVPREV }
							}
						}
					}
					trigger_else_if = {
						limit = { in_faction = faction_glory }

						liege = {
							any_vassal = {
								in_faction = faction_glory
								higher_real_tier_than = BARON
								NOT = { character = PREVPREV }
							}
						}
					}
					trigger_else = {
						in_faction = faction_tradition

						liege = {
							any_vassal = {
								in_faction = faction_tradition
								higher_real_tier_than = BARON
								NOT = { character = PREVPREV }
							}
						}
					}
				}

				save_event_target_as = faction_member
			}
		}
	}

	option = {
		name = EVTOPTA929 # Report it to the liege

		event_target:faction_member = {
			set_character_flag = faction_undermine
		}

		liege = {
			show_scope_change = no

			letter_event = {
				id = PlusFaction.135
				tooltip = INFORM_LIEGE_UNDERMINE
			}
		}
	}

	option = {
		name = EVTOPTB929 #Ignore it

		trigger = { ai = no }

		if = {
			limit = { trait = diligent }

			random = {
				chance = 50
				remove_trait_diligent_effect = yes
			}
		}
		else_if = {
			limit = {
				NOT = { trait = slothful }
			}

			random = {
				chance = 50
				add_trait_slothful_effect = yes
			}
		}
	}
}

##############################
# SPYMASTER
# JOB: action_organize_spies
##############################

# 935: Building spy network value
character_event = {
	id = 935
	title = EVTNAME935
	desc = EVTDESC935
	picture = GFX_evt_spymaster
	border = GFX_event_normal_frame_intrigue

	has_job_title = yes

	trigger = {
		has_job_action = action_organize_spies
		in_seclusion = no
		NOT = { has_character_modifier = bedridden_illness }
	}

	mean_time_to_happen = {
		years = 15

		job_event_mtth_modifier_intrigue_score = yes
		plus_job_events_liege_intrigue_score = yes

		mult_modifier = {
			factor = 1.5
			liege = { is_tribal = yes }
		}

		mult_modifier = {
			factor = 2.0
			liege = { is_nomadic = yes }
		}

		mult_modifier = {
			factor = 0.8
			trait = master_schemer
		}

		mult_modifier = {
			factor = 0.9

			OR = {
				trait = quick
				trait = shrewd
			}
		}

		mult_modifier = {
			factor = 0.8
			trait = genius
		}

		mult_modifier = {
			factor = 0.9
			trait = patient
		}

		mult_modifier = {
			factor = 0.9
			trait = diligent
		}

		mult_modifier = {
			factor = 1.1
			trait = slothful
		}

		mult_modifier = {
			factor = 0.9
			trait = deceitful
		}

		mult_modifier = {
			factor = 1.1
			trait = honest
		}

		mult_modifier = {
			factor = 0.9
			trait = paranoid
		}

		mult_modifier = {
			factor = 1.1
			trait = trusting
		}

		mult_modifier = {
			factor = 0.8

			liege = {
				check_variable = {
					which = personal_spy_network
					value < 10
				}
			}
		}

		mult_modifier = {
			factor = 1.2

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 20
				}
			}
		}

		mult_modifier = {
			factor = 1.2

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 30
				}
			}
		}

		mult_modifier = {
			factor = 1.2

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 40
				}
			}
		}

		mult_modifier = {
			factor = 1.2

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 50
				}
			}
		}

		mult_modifier = {
			factor = 1.4

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 60
				}
			}
		}

		mult_modifier = {
			factor = 1.4

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 70
				}
			}
		}

		mult_modifier = {
			factor = 1.4

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 80
				}
			}
		}

		mult_modifier = {
			factor = 2.0

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 90
				}
			}
		}
	}

	option = {
		name = EXCELLENT

		set_character_flag = has_personal_spy_network

		custom_tooltip = {
			text = SPYNETWORK_INCREASE_5

			change_variable = {
				which = personal_spy_network
				value = 5
			}
		}

		liege = {
			show_scope_change = no

			character_event = {
				id = 20350
				tooltip = SPYNETWORK_INCREASE_10_LIEGE
			}
		}
	}
}

# 20350: Liege informed of network increase
character_event = {
	id = 20350
	desc = EVTDESC20350
	picture = GFX_evt_spymaster

	is_triggered_only = yes
	notification = yes

	immediate = {
		set_character_flag = has_personal_spy_network

		change_variable = {
			which = personal_spy_network
			value = 10
		}
	}

	option = {
		name = OK
	}
}

# 936: Spy Network setback
character_event = {
	id = 936
	title = EVTNAME936
	desc = EVTDESC936
	picture = GFX_evt_spymaster
	border = GFX_event_normal_frame_intrigue

	min_age = 16
	only_capable = yes
	prisoner = no
	has_job_title = yes

	trigger = {
		has_job_action = action_organize_spies
		in_seclusion = no
		NOT = { has_character_modifier = bedridden_illness }

		liege = {
			check_variable = {
				which = personal_spy_network
				value >= 9
			}
		}
	}

	mean_time_to_happen = {
		months = 320

		job_event_mtth_modifier_intrigue_score = yes
		plus_job_events_liege_intrigue_inverted_score = yes

		mult_modifier = {
			factor = 1.2
			trait = master_schemer
		}

		mult_modifier = {
			factor = 1.1

			OR = {
				trait = quick
				trait = shrewd
			}
		}

		mult_modifier = {
			factor = 1.2
			trait = genius
		}

		mult_modifier = {
			factor = 1.1
			trait = patient
		}

		mult_modifier = {
			factor = 1.1
			trait = diligent
		}

		mult_modifier = {
			factor = 0.9
			trait = slothful
		}

		mult_modifier = {
			factor = 1.1
			trait = deceitful
		}

		mult_modifier = {
			factor = 0.9
			trait = honest
		}

		mult_modifier = {
			factor = 1.1
			trait = paranoid
		}

		mult_modifier = {
			factor = 0.9
			trait = trusting
		}

		mult_modifier = {
			factor = 0.9

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 20
				}
			}
		}

		mult_modifier = {
			factor = 0.9

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 40
				}
			}
		}

		mult_modifier = {
			factor = 0.8

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 60
				}
			}
		}

		mult_modifier = {
			factor = 0.8

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 80
				}
			}
		}

		mult_modifier = {
			factor = 0.5

			liege = {
				check_variable = {
					which = personal_spy_network
					value >= 90
				}
			}
		}
	}

	option = {
		name = CURSES

		if = {
			limit = {
				check_variable = {
					which = personal_spy_network
					value >= 1
				}
			}

			custom_tooltip = {
				text = SPYNETWORK_DECREASE_5

				change_variable = {
					which = personal_spy_network
					value = -5
				}
			}
		}
		else = {
			hidden_effect = {
				set_variable = {
					which = personal_spy_network
					value = 0
				}

				clr_character_flag = has_personal_spy_network
			}
		}

		liege = {
			show_scope_change = no

			letter_event = {
				id = 20352
				tooltip = SPYNETWORK_DECREASE_10_LIEGE
			}
		}
	}
}

# 20352: Liege informed of network decrease
letter_event = {
	id = 20352
	desc = EVTDESC20352
	border = GFX_event_letter_frame_intrigue

	is_triggered_only = yes

	immediate = {
		change_variable = {
			which = personal_spy_network
			value = -10
		}

		if = {
			limit = {
				check_variable = {
					which = personal_spy_network
					value < 1
				}
			}

			set_variable = {
				which = personal_spy_network
				value = 0
			}

			clr_character_flag = has_personal_spy_network
		}
	}

	option = {
		name = CURSES

		custom_tooltip = { text = SPYNETWORK_DECREASE_10 }
	}
}

# 20354: Remove Spy Network from invalid characters
character_event = {
	id = 20354

	is_triggered_only = yes # on_yearly_pulse, maintenance
	hide_window = yes

	has_character_flag = has_personal_spy_network

	trigger = {
		OR = {
			check_variable = {
				which = personal_spy_network
				value < 1
			}

			AND = {
				is_ruler = no
				intrigue < 12
				NOT = { has_job_title = job_spymaster }
			}
		}
	}

	immediate = {
		clr_character_flag = has_personal_spy_network

		set_variable = {
			which = personal_spy_network
			value = 0
		}
	}
}

# 20355: Heir inherits half of the spy network value
character_event = {
	id = 20355

	hide_window = yes
	is_triggered_only = yes

	has_character_flag = has_personal_spy_network

	trigger = {
		check_variable = {
			which = personal_spy_network
			value >= 9
		}
	}

	immediate = {
		multiply_variable = {
			which = personal_spy_network
			value = 0.5
		}

		if = {
			limit = { is_ruler = yes }

			current_heir = {
				set_character_flag = has_personal_spy_network

				change_variable = {
					which = personal_spy_network
					which = ROOT
				}
			}
		}
		else = {
			random_child = {
				limit = {
					NOT = { trait = bastard }
					has_inheritance_blocker = no

					trigger_if = {
						limit = { is_female = yes }

						ROOT = {
							OR = {
								has_law = true_cognatic_succession
								has_law = enatic_succession
								has_law = enatic_cognatic_succession

								AND = {
									has_law = cognatic_succession

									PREV = { # random_child
										NOT = {
											any_sibling = {
												is_female = no
												NOT = { trait = bastard }
												has_inheritance_blocker = no
											}
										}
									}
								}
							}
						}
					}
					trigger_else = {
						ROOT = {
							OR = {
								has_law = agnatic_succession
								has_law = cognatic_succession
								has_law = true_cognatic_succession

								AND = {
									has_law = enatic_cognatic_succession

									PREV = { # random_child
										NOT = {
											any_sibling = {
												is_female = yes
												NOT = { trait = bastard }
											}
										}
									}
								}
							}
						}
					}

					NOT = {
						any_sibling = {
							is_older_than = PREV
							NOT = { trait = bastard }
							has_inheritance_blocker = no

							trigger_if = {
								limit = { is_female = yes }

								ROOT = {
									OR = {
										has_law = true_cognatic_succession
										has_law = enatic_succession
										has_law = enatic_cognatic_succession

										AND = {
											has_law = cognatic_succession

											PREV = { # any_sibling
												NOT = {
													any_sibling = {
														is_female = no
														NOT = { trait = bastard }
														has_inheritance_blocker = no
													}
												}
											}
										}
									}
								}
							}
							trigger_else = {
								ROOT = {
									OR = {
										has_law = agnatic_succession
										has_law = cognatic_succession
										has_law = true_cognatic_succession

										AND = {
											has_law = enatic_cognatic_succession

											PREV = { # any_sibling
												NOT = {
													any_sibling = {
														is_female = yes
														NOT = { trait = bastard }
														has_inheritance_blocker = no
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}

				set_character_flag = has_personal_spy_network

				change_variable = {
					which = personal_spy_network
					which = ROOT
				}
			}
		}
	}
}

# 20356; Attempt to dismantle network was discovered
character_event = {
	id = 20356
	picture = GFX_evt_spymaster
	border = GFX_event_normal_frame_intrigue

	desc = {
		text = EVTDESC20356_small
		trigger = { FROM = { has_character_flag = small_network_decrease } }
	}
	desc = {
		text = EVTDESC20356_med
		trigger = { FROM = { has_character_flag = med_network_decrease } }
	}
	desc = {
		text = EVTDESC20356_large
		trigger = { FROM = { has_character_flag = large_network_decrease } }
	}
	desc = {
		text = EVTDESC20356_nothing
		trigger = {
			FROM = {
				NOR = {
					has_character_flag = small_network_decrease
					has_character_flag = med_network_decrease
					has_character_flag = large_network_decrease
				}
			}
		}
	}

	is_triggered_only = yes
	hide_from = yes

	option = {
		name = {
			text = EVTOPTA_20356
			trigger = {
				FROM = {
					NOR = {
						has_character_flag = small_network_decrease
						has_character_flag = med_network_decrease
						has_character_flag = large_network_decrease
					}
				}
			}
		}
		name = {
			text = EVTOPTB_20356
			trigger = {
				FROM = {
					OR = {
						has_character_flag = small_network_decrease
						has_character_flag = med_network_decrease
						has_character_flag = large_network_decrease
					}
				}
			}
		}

		prestige = -100

		if = {
			limit = {
				NOT = { is_rival = FROM }
			}

			tooltip = {
				add_rival = FROM
			}
		}
	}
}

# 20357; Attempt to dismantle network was discovered - Target Informed
character_event = {
	id = 20357
	picture = GFX_evt_spymaster
	border = GFX_event_normal_frame_intrigue

	desc = {
		text = EVTDESC20357_small
		trigger = { ROOT = { has_character_flag = small_network_decrease } }
	}
	desc = {
		text = EVTDESC20357_med
		trigger = { ROOT = { has_character_flag = med_network_decrease } }
	}
	desc = {
		text = EVTDESC20357_large
		trigger = { ROOT = { has_character_flag = large_network_decrease } }
	}
	desc = {
		text = EVTDESC20357_nothing
		trigger = {
			ROOT = {
				NOR = {
					has_character_flag = small_network_decrease
					has_character_flag = med_network_decrease
					has_character_flag = large_network_decrease
				}
			}
		}
	}

	is_triggered_only = yes
	show_from_from = yes

	option = {
		name = EVTOPTA_20357

		clr_character_flag = small_network_decrease
		clr_character_flag = med_network_decrease
		clr_character_flag = large_network_decrease

		if = {
			limit = {
				NOT = { is_rival = FROMFROM }
			}

			add_rival = FROMFROM
		}
	}
}

# 20358; Attempt to dismantle network was not discovered
character_event = {
	id = 20358
	picture = GFX_evt_spymaster
	border = GFX_event_normal_frame_intrigue

	desc = {
		text = EVTDESC20358_small
		trigger = { FROM = { has_character_flag = small_network_decrease } }
	}
	desc = {
		text = EVTDESC20358_med
		trigger = { FROM = { has_character_flag = med_network_decrease } }
	}
	desc = {
		text = EVTDESC20358_large
		trigger = { FROM = { has_character_flag = large_network_decrease } }
	}
	desc = {
		text = EVTDESC20358_nothing
		trigger = {
			FROM = {
				NOR = {
					has_character_flag = small_network_decrease
					has_character_flag = med_network_decrease
					has_character_flag = large_network_decrease
				}
			}
		}
	}

	is_triggered_only = yes
	hide_from = yes

	option = {
		name = {
			text = EVTOPTA_20358
			trigger = {
				FROM = {
					NOR = {
						has_character_flag = small_network_decrease
						has_character_flag = med_network_decrease
						has_character_flag = large_network_decrease
					}
				}
			}
		}
		name = {
			text = EVTOPTB_20358
			trigger = {
				FROM = {
					OR = {
						has_character_flag = small_network_decrease
						has_character_flag = med_network_decrease
						has_character_flag = large_network_decrease
					}
				}
			}
		}
	}
}

# 20359; Attempt to dismantle network was not discovered - Target Informed
character_event = {
	id = 20359
	picture = GFX_evt_spymaster
	border = GFX_event_normal_frame_intrigue

	desc = {
		text = EVTDESC20359_small
		trigger = { ROOT = { has_character_flag = small_network_decrease } }
	}
	desc = {
		text = EVTDESC20359_med
		trigger = { ROOT = { has_character_flag = med_network_decrease } }
	}
	desc = {
		text = EVTDESC20359_large
		trigger = { ROOT = { has_character_flag = large_network_decrease } }
	}
	desc = {
		text = EVTDESC20359_nothing
		trigger = {
			ROOT = {
				NOR = {
					has_character_flag = small_network_decrease
					has_character_flag = med_network_decrease
					has_character_flag = large_network_decrease
				}
			}
		}
	}

	is_triggered_only = yes
	hide_from = yes

	option = {
		name = CURSES
		clr_character_flag = small_network_decrease
		clr_character_flag = med_network_decrease
		clr_character_flag = large_network_decrease
	}
}