﻿# LOOP: Search for dynasty/house founder
search_for_founder = {
	scope:$PARENT$_$LINE$_founder = {
		if = { 
			limit = { 
				exists = father
				$LINE$ = father.$LINE$ 
			}
			father = { save_scope_as = $PARENT$_$LINE$_founder }
		}
	}
}

search_for_founders = {
	search_for_parent_founder = { PARENT = $PARENT$ LINE = dynasty }
	search_for_parent_founder = { PARENT = $PARENT$ LINE = house }
}

search_for_parent_founder = {
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
	search_for_founder = { PARENT = $PARENT$ LINE = $LINE$ }
}

mark_founder_children_0 = {
	set_global_variable = { 
		name = dynastylineages 
		value = 1 
	}
	scope:$PARENT$ = {
		every_child = {
			even_if_dead = yes
			set_trait_rank = { trait = dynastylineages rank = 1 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
}

mark_founder_descendant_0 = {
	every_in_list = {
		variable = descendant_list
		save_scope_as = this_parent
		scope:actor = {
			add_to_variable_list = {
				name = parent_list
				target = scope:this_parent
			}
		}
	}
	clear_variable_list = descendant_list
	every_in_list = {
		variable = parent_list
		every_child = {
			even_if_dead = yes
			set_trait_rank = { trait = dynastylineages rank = 1 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
	clear_variable_list = parent_list
}

mark_founder_children_1 = {
	set_global_variable = { 
		name = dynastylineages 
		value = 2 
	}
	scope:$PARENT$ = {
		every_child = {
			even_if_dead = yes
			remove_trait_rank_effect = { GROUP = dynastylineages }
			set_trait_rank = { trait = dynastylineages rank = 2 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
}

mark_founder_descendant_1 = {
	every_in_list = {
		variable = descendant_list
		save_scope_as = this_parent
		scope:actor = {
			add_to_variable_list = {
				name = parent_list
				target = scope:this_parent
			}
		}
	}
	clear_variable_list = descendant_list
	every_in_list = {
		variable = parent_list
		every_child = {
			even_if_dead = yes
			remove_trait_rank_effect = { GROUP = dynastylineages }
			set_trait_rank = { trait = dynastylineages rank = 2 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
	clear_variable_list = parent_list
}

# GOOD
mark_founder_children_good = {
	set_global_variable = { 
		name = goodlineages 
		value = 1 
	}
	scope:$PARENT$ = {
		every_child = {
			even_if_dead = yes
			set_trait_rank = { trait = goodlineages rank = 1 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
}

mark_founder_descendant_good = {
	every_in_list = {
		variable = descendant_list
		save_scope_as = this_parent
		scope:actor = {
			add_to_variable_list = {
				name = parent_list
				target = scope:this_parent
			}
		}
	}
	clear_variable_list = descendant_list
	every_in_list = {
		variable = parent_list
		every_child = {
			even_if_dead = yes
			set_trait_rank = { trait = goodlineages rank = 1 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
	clear_variable_list = parent_list
}

# BAD
mark_founder_children_bad = {
	set_global_variable = { 
		name = badlineages 
		value = 1 
	}
	scope:$PARENT$ = {
		every_child = {
			even_if_dead = yes
			set_trait_rank = { trait = badlineages rank = 1 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
}

mark_founder_descendant_bad = {
	every_in_list = {
		variable = descendant_list
		save_scope_as = this_parent
		scope:actor = {
			add_to_variable_list = {
				name = parent_list
				target = scope:this_parent
			}
		}
	}
	clear_variable_list = descendant_list
	every_in_list = {
		variable = parent_list
		every_child = {
			even_if_dead = yes
			set_trait_rank = { trait = badlineages rank = 1 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
	clear_variable_list = parent_list
}

mark_founder_descendants = {

	mark_founder_children_$TRAIT$ = { PARENT = $PARENT$ }

	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	mark_founder_descendant_$TRAIT$ = yes
	
	clear_variable_list = parent_list
	clear_variable_list = descendant_list
}

#########################################################

# LOOP: Search for paternal founder
search_for_paternal_founder = {
	scope:real_father_dynasty_founder = {
		if = { 
			limit = { 
				exists = real_father
			}
			real_father = {save_scope_as = real_father_dynasty_founder }
		}
	}
}

search_for_paternal_founders = {
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
	search_for_paternal_founder = yes
}

mark_paternal_founder_descendant = {
	every_in_list = {
		variable = descendant_list
		save_scope_as = this_parent
		scope:actor = {
			add_to_variable_list = {
				name = parent_list
				target = scope:this_parent
			}
		}
	}
	clear_variable_list = descendant_list
	every_in_list = {
		variable = parent_list
		every_child = {
			even_if_dead = yes
			limit = {
				is_male = yes
			}
			remove_trait_rank_effect = { GROUP = patrilineages }
			set_trait_rank = { trait = patrilineages rank = 1 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}
	clear_variable_list = parent_list
}

mark_paternal_founder_descendants = {
	scope:real_father_dynasty_founder = {
		set_global_variable = { # Here in case it can't scope to founder
			name = patrilineages 
			value = 1 
		}
		add_trait = patrilineage_founder
		mark_as_line_head_effect = { LINE = patrilineages }
		every_child = {
			even_if_dead = yes
			limit = {
				is_male = yes
			}
			remove_trait_rank_effect = { GROUP = patrilineages }
			set_trait_rank = { trait = patrilineages rank = 1 }
			save_scope_as = this_child
			scope:actor = {
				add_to_variable_list = {
					name = descendant_list
					target = scope:this_child 
				}
			}
		}
	}

	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes
	mark_paternal_founder_descendant = yes

	clear_variable_list = parent_list
	clear_variable_list = descendant_list
}


#########################################################

# LOOP: Search for maternal founder
search_for_maternal_founder = {
	scope:mother_dynasty_founder = {
		if = { 
			limit = { 
				exists = mother
			}
			mother = { save_scope_as = mother_dynasty_founder }
		}
	}
}

search_for_maternal_founders = {
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
	search_for_maternal_founder = yes
}

mark_maternal_founder_descendant = {
	every_in_list = {
		variable = descendant_list
		save_scope_as = this_parent
		scope:actor = {
			add_to_variable_list = {
				name = parent_list
				target = scope:this_parent
			}
		}
	}
	clear_variable_list = descendant_list
	every_in_list = {
		variable = parent_list
		every_child = {
			even_if_dead = yes
			remove_trait_rank_effect = { GROUP = matrilineages }
			set_trait_rank = { trait = matrilineages rank = 1 }
			if = {
				limit = {
					is_female = yes
				}
				save_scope_as = this_child
				scope:actor = {
					add_to_variable_list = {
						name = descendant_list
						target = scope:this_child 
					}
				}
			}
		}
	}
	clear_variable_list = parent_list
}

mark_maternal_founder_descendants = {
	scope:mother_dynasty_founder = {
		set_global_variable = { # Here in case it can't scope to founder
			name = matrilineages 
			value = 1 
		}
		add_trait = matrilineage_founder
		mark_as_line_head_effect = { LINE = matrilineages }
		every_child = {
			even_if_dead = yes
			remove_trait_rank_effect = { GROUP = matrilineages }
			set_trait_rank = { trait = matrilineages rank = 1 }
			if = {
				limit = {
					is_female = yes
				}
				save_scope_as = this_child
				scope:actor = {
					add_to_variable_list = {
						name = descendant_list
						target = scope:this_child 
					}
				}
			}
		}
	}

	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes
	mark_maternal_founder_descendant = yes

	clear_variable_list = parent_list
	clear_variable_list = descendant_list
}