﻿namespace = ep3_akolouthos_events

# Varangian-eligible courtier gains Varangian or Varangian gains Loyal
ep3_akolouthos_events.1000 = {
	hidden = yes

	trigger = {
		OR = {
			# A varangian who isn't loyal
			any_courtier = {
				has_trait = varangian
				NOT = { has_trait = loyal }
			}
			#An eligible Varangian who doesn't have the trait
			any_courtier = {
				NOT = { has_trait = varangian }
				ep3_varangian_trigger = yes
			}
		}
	}

	weight_multiplier = {
		base = 1
		modifier = {
			add = 1
			any_court_position_holder = {
				type = bodyguard_court_position
				NOT = { has_trait = varangian }
				ep3_varangian_trigger = yes
			}
		}
		modifier = {
			add = 1
			any_court_position_holder = {
				type = bodyguard_court_position
				NOT = { has_trait = loyal }
				has_trait = varangian
			}
		}
		modifier = {
			add = 1
			any_court_position_holder = {
				type = akolouthos_court_position
				NOT = { has_trait = varangian }
				ep3_varangian_trigger = yes
			}
		}
	}

	immediate = {
		random_court_position_holder = {
			type = akolouthos_court_position
			save_scope_as = akolouthos
		}
		#Most important that Varangian Akolouthos becomes Varangian
		if = {
			limit = {
				any_court_position_holder = {
					type = akolouthos_court_position
					NOT = { has_trait = varangian }
					ep3_varangian_trigger = yes
				}
			}
			random_court_position_holder = {
				type = akolouthos_court_position
				limit = {
					NOT = { has_trait = varangian }
					ep3_varangian_trigger = yes
				}
				save_scope_as = trait_getter
			}
			ep3_send_akolouthos_message_varangian = yes
		}
		#Second-most important: Varangian bodyguard becomes Varangian
		else_if = {
			limit = {
				any_court_position_holder = {
					type = bodyguard_court_position
					NOT = { has_trait = varangian }
					ep3_varangian_trigger = yes
				}
			}
			random_court_position_holder = {
				type = bodyguard_court_position
				limit = {
					NOT = { has_trait = varangian }
					ep3_varangian_trigger = yes
				}
				save_scope_as = trait_getter
			}
			ep3_send_akolouthos_message_varangian = yes
		}
		#Then either add loyal to a Varangian bodyguard or to Akolouthos
		else_if = {
			limit = {
				OR = {
					any_court_position_holder = {
						type = bodyguard_court_position
						has_trait = varangian
						NOT = { has_trait = loyal }
					}
					any_court_position_holder = {
						type = akolouthos_court_position
						has_trait = varangian
						NOT = { has_trait = loyal }
					}
				}
			}
			random_list = {
				#Add loyal to a Varangian bodyguard
				10 = {
					trigger = {
						any_court_position_holder = {
							type = bodyguard_court_position
							has_trait = varangian
							NOT = { has_trait = loyal }
						}
					}
					random_court_position_holder = {
						type = bodyguard_court_position
						limit = {
							has_trait = varangian
							NOT = { has_trait = loyal }
						}
						save_scope_as = trait_getter
					}
					ep3_send_akolouthos_message_loyal = yes
				}
				#Add loyal to a Varangian akolouthos
				10 = {
					trigger = {
						any_court_position_holder = {
							type = akolouthos_court_position
							has_trait = varangian
							NOT = { has_trait = loyal }
						}
					}
					random_court_position_holder = {
						type = akolouthos_court_position
						limit = {
							has_trait = varangian
							NOT = { has_trait = loyal }
						}
						save_scope_as = trait_getter
					}
					ep3_send_akolouthos_message_loyal = yes
				}
			}
		}
		#Add Varangian to some non-Varangian Varangian
		else_if = {
			limit = {
				any_courtier = {
					NOT = { has_trait = varangian }
					ep3_varangian_trigger = yes
				}
			}
			random_courtier = {
				limit = {
					NOT = { has_trait = varangian }
					ep3_varangian_trigger = yes
				}
				save_scope_as = trait_getter
			}
			ep3_send_akolouthos_message_varangian = yes
		}
		#Add loyal to some non-bodyguard Varangian
		else = {
			random_courtier = {
				limit = {
					has_trait = varangian
					NOT = { has_trait = loyal }
				}
				save_scope_as = trait_getter
			}
			ep3_send_akolouthos_message_loyal = yes
		}
	}
}

# Akolouthos recruits Varangian
ep3_akolouthos_events.1001 = {
	hidden = yes

	trigger = {
		#Don't really need this if root is swarming in Varangians already
		NOT = {
			any_courtier_or_guest = {
				count >= 8
				ep3_varangian_trigger = yes
			}
		}
	}

	weight_multiplier = {
		base = 1
		#Weigh up chances if Varangians are needed to fill posts
		modifier = {
			add = 1
			NOT = {
				any_courtier_or_guest = {
					count >= 3
					ep3_varangian_trigger = yes
				}
			}
		}
	}

	immediate = {
		random_court_position_holder = {
			type = akolouthos_court_position
			save_scope_as = akolouthos
		}
		#Find a candidate in the local pool
		if = {
			limit = {
				is_landed = yes
				any_pool_character = {
					province = root.capital_province
					ep3_varangian_trigger = yes
					prowess > low_skill_rating
				}
			}
			random_pool_character = {
				province = root.capital_province
				limit = {
					ep3_varangian_trigger = yes
					prowess > low_skill_rating
				}
				save_scope_as = new_varangian
			}
			scope:new_varangian = {
				if = {
					limit = {
						NOT = { has_trait = varangian }
					}
					hidden_effect = {
						add_trait = varangian
					}
				}
			}
		}
		#Find a candidate in pools of akolouthos's culture
		else_if = {
			limit = {
				scope:akolouthos = {
					ep3_varangian_trigger = yes
				}
				exists = scope:akolouthos.culture.culture_head
				scope:akolouthos.culture.culture_head = {
					is_landed = yes
				}
				any_pool_character = {
					province = scope:akolouthos.culture.culture_head.capital_province
					ep3_varangian_trigger = yes
					prowess >= low_skill_rating
				}
			}
			scope:akolouthos.culture.culture_head = {
				save_scope_as = akolouthos_culture_head
			}
			random_pool_character = {
				province = scope:akolouthos_culture_head.capital_province
				limit = {
					ep3_varangian_trigger = yes
					prowess > low_skill_rating
				}
				save_scope_as = new_varangian
			}
			scope:new_varangian = {
				if = {
					limit = {
						NOT = { has_trait = varangian }
					}
					hidden_effect = {
						add_trait = varangian
					}
				}
			}
		}
		#Create a candidate
		else_if = {
			limit = {
				scope:akolouthos = {
					ep3_varangian_trigger = yes
				}
			}
			create_character = {
				template = varangian_template
				location = root.location
				culture = scope:akolouthos.culture
				faith = scope:akolouthos.faith
				dynasty = none
				save_scope_as = new_varangian
			}
		}
		else_if = {
			limit = {
				current_date < 990
			}
			#Norse
			create_character = {
				template = varangian_template
				location = root.location
				culture = culture:norse
				faith = root.faith
				dynasty = none
				save_scope_as = new_varangian
			}
		}
		else = {
			#Anglo-Saxon
			create_character = {
				template = varangian_template
				location = root.location
				culture = culture:anglo_saxon
				faith = root.faith
				dynasty = none
				save_scope_as = new_varangian
			}
		}
		send_interface_message = {
			type = event_martial_good_with_text
			title = ep3_akolouthos_events.1001
			desc = ep3_akolouthos_events.1001_notification_tooltip
			tooltip = akolouthos_effect_tooltip
			left_icon = scope:new_varangian
			right_icon = scope:akolouthos
			add_courtier = scope:new_varangian
		}
	}
}
