﻿# Extension
random_yearly_everyone_pulse = {
	on_actions = {
		ACMAG_assign_relative_as_guardian
		ACMAG_yearly_pulse
	}
}

ACMAG_yearly_pulse = {
	random_on_action = {
		15 = ACMAG_on_action_marriage
		85 = 0
	}
} 

ACMAG_assign_relative_as_guardian = {
	effect = {
		root = {
			if = {
				limit = {
					ACMAG_is_obscure_character_trigger = yes
					is_available_child_allow_travel = yes
					is_hostage = no
					num_of_relation_guardian = 0
				}
				if = {
					limit = {
						is_lowborn = no
						any_close_family_member = {
							is_lowborn = no
							ACMAG_can_be_guardian_trigger = yes
						}
					}
					random_close_family_member = {
						limit = {
							is_lowborn = no
							ACMAG_can_be_guardian_trigger = yes
						}
						root = {
							if = {
								limit = {
									exists = prev.liege
									NAND = {
										exists = liege
										liege = prev.liege
									}
								}
								set_employer = prev.liege
							}
							set_relation_guardian = prev
						}
					}
				}
				else_if = {
					limit = {
						any_close_family_member = {
							ACMAG_can_be_guardian_trigger = yes
						}
					}
					random_close_family_member = {
						limit = {
							ACMAG_can_be_guardian_trigger = yes
						}
						root = {
							if = {
								limit = {
									exists = prev.liege
									NAND = {
										exists = liege
										liege = prev.liege
									}
								}
								set_employer = prev.liege
							}
							set_relation_guardian = prev
						}
					}
				}
			}
		}
	}
}

ACMAG_on_action_marriage = {
	effect = {
		root = {
			if = {
				limit = {
					exists = liege
					exists = liege.capital_province
					ACMAG_is_obscure_character_trigger = yes
					ACMAG_can_initiate_marriage_trigger = yes
				}

				if = {
					limit = {
						liege = {
							any_courtier = {
								NOT = { this = root }
								ACMAG_is_obscure_character_trigger = yes
								ACMAG_can_be_target_of_marriage_trigger = yes
							}
						}
					}
					liege = {
						random_courtier = {
							limit = {
								NOT = { this = root }
								ACMAG_is_obscure_character_trigger = yes
								ACMAG_can_be_target_of_marriage_trigger = yes
							}
							save_temporary_scope_as = spouse
						}
					}
				}
				else_if = {
					limit = {
						liege = {
							any_pool_guest = {
								ACMAG_is_obscure_character_trigger = yes
								ACMAG_can_be_target_of_marriage_trigger = yes
							}
						}
					}
					liege = {
						random_pool_guest = {
							limit = {
								ACMAG_is_obscure_character_trigger = yes
								ACMAG_can_be_target_of_marriage_trigger = yes
							}
							save_temporary_scope_as = spouse
						}
					}
				}
				else_if = {
					limit = {
						any_pool_character = {
							province = root.liege.capital_province
							ACMAG_is_obscure_character_trigger = yes
							ACMAG_can_be_target_of_marriage_trigger = yes
						}
					}
					random_pool_character = {
						province = root.liege.capital_province
						limit = {
							ACMAG_is_obscure_character_trigger = yes
							ACMAG_can_be_target_of_marriage_trigger = yes
						}
						save_temporary_scope_as = spouse
					}
				}
				else = {
					create_character = {
						template = pool_repopulate_spouse
						employer = root.liege
						culture = root.liege.capital_province.culture
						after_creation = {
							#Sometimes adjust sexuality to create compatibility with root
							if = {
								limit = {
									root = { is_attracted_to_gender_of = prev }
									NOT = { is_attracted_to_gender_of = root }
								}
								set_sexuality = bisexual
							}
						}
						save_temporary_scope_as = spouse
					}
				}

				scope:spouse = {
					if = {
						limit = {
							NAND = {
								exists = liege
								liege = root.liege
							}
						}
						set_employer = root.liege
					}
				}

				if = {
					limit = {
						sex_opposite_of = scope:spouse
						OR = {
							AND = {
								is_lowborn = yes
								scope:spouse = { is_lowborn = no }
							}
							AND = {
								is_lowborn = no
								scope:spouse = { is_lowborn = yes }
							}
						}
					}
					if = {
						limit = {
							OR = {
								AND = {
									is_lowborn = no
									is_male = no
								}
								AND = {
									is_lowborn = yes
									is_male = yes
								}
							}
						}
						marry_matrilineal = scope:spouse
					}
					else = {
						marry = scope:spouse
					}
				}
				else = {
					marry_on_realm_law = {
						SPOUSE_1 = root
						SPOUSE_2 = scope:spouse
					}
				}
			}
		}
	}
}