auto_assign_colony_army_leader = {
	set_variable = {
		which = auto_recruit_leader_commander_cap
		value = value:leader_commander_cap_trigger
	}
	if = {
		limit = {
			check_variable = {
				which = auto_recruit_leader_commander_cap
				value > 0
			}
		}
		random_pool_leader = {
			limit = {
				exists = leader
				leader_class = commander
				prev = {
					any_owned_colony = {
						NOT = {
							exists = army_leader
						}
						has_army = yes
					}
				}
			}
			if = {
				limit = {
					check_leader_cost = yes
				}
				exile_leader_as = auto_recruited_leader
				prev = {
					return_leader_from_exile = auto_recruited_leader
					random_owned_colony = {
						limit = {
							NOT = {
								exists = army_leader
							}
							has_army = yes
						}
						ordered_planet_army = {
							position = 0
							order_by = 0
							set_leader = prevprevprev
						}
						create_message = {
							type = MESSAGE_RECRUITED_LEADER
							localization = MESSAGE_RECRUITED_LEADER_DESC
							days = 30
							target = prevprev
							variable = {
								type = name
								localization = LEADER
								scope = prevprev
							}
							variable = {
								type = name
								localization = PLANET
								scope = this
							}
						}
					}
				}
				deduct_leader_cost = yes
			}
		}
	}
}

auto_assign_sector_leader = {
	set_variable = {
		which = auto_recruit_leader_official_cap
		value = value:leader_official_cap_trigger
	}
	if = {
		limit = {
			check_variable = {
				which = auto_recruit_leader_official_cap
				value > 0
			}
		}
		random_pool_leader = {
			limit = {
				exists = leader
				leader_class = official
				prev = {
					NOT = {
						any_owned_sector = {
							any_owned_colony = {
								exists = leader
							}
						}
					}
				}
			}
			if = {
				limit = {
					check_leader_cost = yes
				}
				exile_leader_as = auto_recruited_leader
				prev = {
					return_leader_from_exile = auto_recruited_leader
					random_owned_sector = {
						limit = {
							NOT = {
								any_owned_colony = {
									exists = leader
								}
							}
						}
						random_owned_colony = {
							assign_leader = prevprevprev
						}
						create_message = {
							type = MESSAGE_RECRUITED_LEADER
							localization = MESSAGE_RECRUITED_LEADER_DESC
							days = 30
							target = prevprev
							variable = {
								type = name
								localization = LEADER
								scope = prevprev
							}
							variable = {
								type = name
								localization = PLANET
								scope = this
							}
						}
					}
				}
				deduct_leader_cost = yes
			}
		}
	}
}

auto_assign_army_leader = {
	set_variable = {
		which = auto_recruit_leader_commander_cap
		value = value:leader_commander_cap_trigger
	}
	if = {
		limit = {
			check_variable = {
				which = auto_recruit_leader_commander_cap
				value > 0
			}
		}
		random_pool_leader = {
			limit = {
				exists = leader
				leader_class = commander
				prev = {
					any_owned_fleet = {
						is_ship_class = shipclass_transport
						NOT = {
							exists = leader
						}
						is_disabled = no
					}
				}
			}
			if = {
				limit = {
					check_leader_cost = yes
				}
				exile_leader_as = auto_recruited_leader
				prev = {
					return_leader_from_exile = auto_recruited_leader
					random_owned_fleet = {
						limit = {
							is_ship_class = shipclass_transport
							NOT = {
								exists = leader
							}
							is_disabled = no
						}
						set_leader = prevprev
						create_message = {
							type = MESSAGE_RECRUITED_LEADER
							localization = MESSAGE_RECRUITED_LEADER_DESC
							days = 30
							target = prevprev
							variable = {
								type = name
								localization = LEADER
								scope = prevprev
							}
							variable = {
								type = name
								localization = ARMY
								scope = this
							}
						}
					}
				}
				deduct_leader_cost = yes
			}
		}
	}
}

auto_assign_scientist_leader = {
	set_variable = {
		which = auto_recruit_leader_scientist_cap
		value = value:leader_scientist_cap_trigger
	}
	if = {
		limit = {
			check_variable = {
				which = auto_recruit_leader_scientist_cap
				value > 0
			}
		}
		random_pool_leader = {
			limit = {
				exists = leader
				leader_class = scientist
				prev = {
					any_owned_fleet = {
						is_ship_class = shipclass_science_ship
						NOT = {
							exists = leader
						}
						is_disabled = no
					}
				}
			}
			if = {
				limit = {
					check_leader_cost = yes
				}
				exile_leader_as = auto_recruited_leader
				prev = {
					return_leader_from_exile = auto_recruited_leader
					random_owned_fleet = {
						limit = {
							is_ship_class = shipclass_science_ship
							NOT = {
								exists = leader
							}
							is_disabled = no
						}
						set_leader = prevprev
						create_message = {
							type = MESSAGE_RECRUITED_LEADER
							localization = MESSAGE_RECRUITED_LEADER_DESC
							days = 30
							target = prevprev
							variable = {
								type = name
								localization = LEADER
								scope = prevprev
							}
							variable = {
								type = name
								localization = FLEET
								scope = this
							}
						}
					}
				}
				deduct_leader_cost = yes
			}
		}
	}
}

auto_assign_fleet_leader = {
	set_variable = {
		which = auto_recruit_leader_commander_cap
		value = value:leader_commander_cap_trigger
	}
	if = {
		limit = {
			check_variable = {
				which = auto_recruit_leader_commander_cap
				value > 0
			}
		}
		random_pool_leader = {
			limit = {
				exists = leader
				leader_class = commander
				prev = {
					any_owned_fleet = {
						is_ship_class = shipclass_military
						NOR = {
							is_ship_class = shipclass_military_station
							exists = leader
						}
						is_disabled = no
					}
				}
			}
			if = {
				limit = {
					check_leader_cost = yes
				}
				exile_leader_as = auto_recruited_leader
				prev = {
					return_leader_from_exile = auto_recruited_leader
					random_owned_fleet = {
						limit = {
							is_ship_class = shipclass_military
							NOR = {
								is_ship_class = shipclass_military_station
								exists = leader
							}
							is_disabled = no
						}
						set_leader = prevprev
						create_message = {
							type = MESSAGE_RECRUITED_LEADER
							localization = MESSAGE_RECRUITED_LEADER_DESC
							days = 30
							target = prevprev
							variable = {
								type = name
								localization = LEADER
								scope = prevprev
							}
							variable = {
								type = name
								localization = FLEET
								scope = this
							}
						}
					}
				}
				deduct_leader_cost = yes
			}
		}
	}
}

deduct_leader_cost = {
	switch = {
		trigger = has_total_skill

		1 = {
			root = {
				add_resource = {
					unity = 99
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		2 = {
			root = {
				add_resource = {
					unity = 169
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		3 = {
			root = {
				add_resource = {
					unity = 349
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		4 = {
			root = {
				add_resource = {
					unity = 624
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		5 = {
			root = {
				add_resource = {
					unity = 999
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		6 = {
			root = {
				add_resource = {
					unity = 1474
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		7 = {
			root = {
				add_resource = {
					unity = 2049
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		8 = {
			root = {
				add_resource = {
					unity = 2724
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		9 = {
			root = {
				add_resource = {
					unity = 3499
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
		10 = {
			root = {
				add_resource = {
					unity = 4499
					mult = value:negative_modifier_mult|MODIFIER|leaders_cost_mult|
				}
			}
		}
	}
}