﻿
add_child_of_concubine_opinion_modifier_effect = {
	save_scope_as = child_of_concubine
	every_parent = { 
		limit = { 
			is_concubine = no 
			any_concubine = {
				any_child = { this = scope:child_of_concubine }
			}
		}
		add_opinion = {
			target = scope:child
			modifier = trait_child_of_concubine
		}
		reverse_add_opinion = {
			target = scope:child
			modifier = trait_child_of_concubine
		}
	}
}

legitimize_child_of_concubine_effect = {
	if = {
		limit = { 
			OR = {
				has_trait = child_of_concubine_male
				has_trait = child_of_concubine_disinherited_male
			}
		}
		remove_trait = child_of_concubine_male
		remove_trait = child_of_concubine_disinherited_male
		add_trait = child_of_concubine_legitimized_male
	}
	else_if = {
		limit = { 
			OR = {
				has_trait = child_of_concubine_female
				has_trait = child_of_concubine_disinherited_female 
			}
		}
		remove_trait = child_of_concubine_female
		remove_trait = child_of_concubine_disinherited_female
		add_trait = child_of_concubine_legitimized_female
	}
	if = {
		limit = { 
			exists = scope:actor
			exists = scope:recipient
		}
		remove_opinion = { 
			target = scope:actor
			modifier = trait_child_of_concubine
		}
		scope:actor = {
			remove_opinion = { 
				target = scope:recipient
				modifier = trait_child_of_concubine
			}
		}
	}
}

legitimize_child_of_concubine_if_parent_elevated_effect = {
	if = {
		limit = { any_parent = { has_trait = concubine_elevated } }
		legitimize_child_of_concubine_effect = yes
		if = {
			limit = { 
				exists = scope:actor
				exists = scope:recipient
			}
			add_opinion = {
				target = scope:actor
				modifier = legitimized_me_opinion
			}
			remove_opinion = { 
				target = scope:actor
				modifier = trait_child_of_concubine
			}
		}
	}
}

auto_disinherit_child_of_concubine_effect = {
	if = {
		limit = {
			is_child_of_concubine_trigger = yes
			is_legitimized_child_of_concubine_trigger = no
			OR = {
				any_parent_has_legal_heir_trigger = yes
				AND = {
					is_male = yes
					parent_inheritance_is_female_dominated_trigger = yes
				}
				AND = {
					is_female = yes
					parent_inheritance_is_male_dominated_trigger = yes
				}
			}
		}
		if = {
			limit = { has_trait = child_of_concubine_male }
			remove_trait = child_of_concubine_male
			add_trait = child_of_concubine_disinherited_male
		}
		else_if = {
			limit = { has_trait = child_of_concubine_female }
			remove_trait = child_of_concubine_female
			add_trait = child_of_concubine_disinherited_female
		}
	}
}

auto_fix_child_of_concubine_succession_effect = {
	if = {
		limit = {
			is_child_of_concubine_trigger = yes
			is_legitimized_child_of_concubine_trigger = no
			any_parent_has_legal_heir_trigger = no
			OR = {
				AND = {
					is_male = yes
					parent_inheritance_is_female_dominated_trigger = no
				}
				AND = {
					is_female = yes
					parent_inheritance_is_male_dominated_trigger = no
				}
			}
		}
		if = {
			limit = { has_trait = child_of_concubine_disinherited_male }
			remove_trait = child_of_concubine_disinherited_male
			add_trait = child_of_concubine_male
		}
		else_if = {
			limit = { has_trait = child_of_concubine_disinherited_female }
			remove_trait = child_of_concubine_disinherited_female
			add_trait = child_of_concubine_female
		}
	}
}

fix_sibling_child_of_concubine_succession_effect = {
	every_sibling = {
		legitimize_child_of_concubine_if_parent_elevated_effect = yes
		auto_disinherit_child_of_concubine_effect = yes
		auto_fix_child_of_concubine_succession_effect = yes
	}
}

fix_child_of_concubine_succession_for_every_child_of_parent_effect = {
	every_child = {
		legitimize_child_of_concubine_if_parent_elevated_effect = yes
		auto_disinherit_child_of_concubine_effect = yes
		auto_fix_child_of_concubine_succession_effect = yes
	}
}

