﻿on_game_start_after_lobby = {
	on_actions = {
		initialize_can_use_spy_network
	}
}

on_became_house_head = {
	on_actions = {
		new_house_head_expanded_spy_network
	}
}

# Sets up which houses are initially allowed to use the spy network
initialize_can_use_spy_network = {
	effect = {
		if = {
			limit = {
				has_game_rule = fledgling_undergrounds
			}
			every_living_character	= {
				limit = { 
					is_house_head = yes
					has_government = administrative_government
					highest_held_title_tier >= tier_county
					exists = house
					house = {
						NOT = { has_house_modifier = sas_starter_spy_network_modifier }
						NOT = { has_house_modifier = sas_establish_criminal_underground_house_modifier }
					}
				}
				house = {
					add_house_modifier = {
						modifier = sas_starter_spy_network_modifier
					}
				}
				set_variable = {
					name = number_of_secrets_bought
					value = 0
				}
			}
		}
		else_if = {
			limit = {
				has_game_rule = full_undergrounds
			}
			every_living_character	= {
				limit = { 
					is_house_head = yes
					exists = house
					house = {
						NOT = { has_house_modifier = sas_establish_criminal_underground_house_modifier }
					}
				}
				house = {
					add_house_modifier = {
						modifier = sas_establish_criminal_underground_house_modifier
					}
				}
				set_variable = {
					name = number_of_secrets_bought
					value = 0
				}
			}
		}
	}
}

new_house_head_expanded_spy_network = {
	effect = {
		if = {
			limit = {
				house = { has_house_modifier = sas_expand_spy_network_house_modifier }
			}
			add_character_modifier = {
				modifier = sas_expand_spy_network_modifier
			}
		}
	}
}

three_year_playable_pulse = {
	on_actions = {
		ai_employ_spy_pulse
	}
}

quarterly_playable_pulse = {
	on_actions = {
		gather_secrets_pulse
	}
}

yearly_playable_pulse = {
	on_actions = {
		learn_innovations_pulse
	}
}

# This pulse triggers the spy network events that make spies discover secrets and then reveal them to their employer
gather_secrets_pulse = {
	trigger = {
		exists = house
		can_use_spy_network = yes
		has_variable_list = spy_network_members
		is_ruler = yes
		is_alive = yes
		any_in_list = {
			variable = spy_network_members
			count >= 1
		}
	}
	effect = {
		trigger_event = {
			id = agot_spy_network.0100
		}
	}
}

learn_innovations_pulse = {
	trigger = {
		can_use_spy_network = yes
		has_variable_list = spy_network_members
		is_ruler = yes
		is_alive = yes
		any_in_list = {
			variable = spy_network_members
			count >= 1
		}
		NOT = { exists = var:surveil_target }
	}
	effect = {
		trigger_event = {
			id = agot_spy_network.0105
		}
	}
}

ai_employ_spy_pulse = {
	trigger = {
		is_landed = yes
		is_ai = yes
		intrigue >= 12
		can_use_spy_network = yes
		OR = {
			NOT = { has_variable_list = spy_network_members }
			any_in_list = {
				variable = spy_network_members
				is_alive = yes
				count < spy_network_limit
			}
		}
	}
	effect = {
		trigger_event = {
			id = agot_spy_network.0300
		}
	}
}