spouse_designer_create_spouse = {
    scope = character
    is_shown = {
        NOT = {
            exists = primary_spouse
        }
        is_adult = yes
    }
    effect = {
        if = {
            limit = {
                NOT = {
                    exists = primary_spouse
                }
            }
            create_character = {
                age = 35
                opposite_gender  = ROOT
                random_traits = no
                employer = ROOT
                faith = ROOT.faith
                culture = ROOT.culture
                dynasty = generate
                after_creation = {
                    save_temporary_scope_as = spouse
                }
            }
            marry = scope:spouse
        }
    }
}
spouse_designer_create_child = {
    scope = character
    is_shown = {
        is_adult = yes
    }

    effect = {
        #find an employer for dead characters...
        if = {
            limit = {is_alive = no}
            if = {
                limit = {
                    is_lowborn = no
                    house = {
                        any_house_member = {
                            is_alive = yes
                            OR = {
                                is_ruler = yes
                                exists = liege_or_court_owner
                            }
                        }
                    }

                }
                house = {
                    random_house_member = {
                        limit = {
                            is_alive = yes
                            OR = {
                                is_ruler = yes
                                exists = liege_or_court_owner
                            }
                        }
                        liege_or_court_owner = {
                            save_temporary_scope_as = employer
                        }
                    }
                }
            }
            else = {
                random_living_character = {
                    liege_or_court_owner = {
                        save_temporary_scope_as = employer
                    }
                }
            }
        }
        else = {
            if = {
                limit = {is_ruler = yes}
                save_temporary_scope_as = employer
            }
            else_if = {
                limit = {exists = liege_or_court_owner}
                liege_or_court_owner = {
                    save_temporary_scope_as = employer
                }
            }
            else_if = {
                limit = {exists = top_liege}
                top_liege = {
                    save_temporary_scope_as = employer
                }
            }
            else = {
                random_living_character = {
                    liege_or_court_owner = {
                        save_temporary_scope_as = employer
                    }
                }
            }
        }


        if = {
            limit = {
                is_female = yes
            }
            create_character = {
                age = 0
                gender_female_chance  = 50
                random_traits = no
                employer = scope:employer
                faith = ROOT.faith
                culture = ROOT.culture
                mother = root
                dynasty  = inherit
                after_creation = {
                    save_temporary_scope_as = child
                }
            }
        }
        else = {
            create_character = {
                age = 0
                gender_female_chance  = 50
                random_traits = no
                employer = scope:employer
                faith = ROOT.faith
                culture = ROOT.culture
                father = root
                dynasty  = inherit
                after_creation = {
                    save_temporary_scope_as = child
                }
            }
        }
        scope:child = {
            #set parents
            if = {
                limit = {
                    NOT = {exists = father}
                    mother = {
                        exists = primary_spouse
                    }
                }
                mother = {
                    primary_spouse = {
                        scope:child = {set_father = PREV}
                    }
                }
            }
            else_if = {
                limit = {
                    exists = father
                    father = {
                        exists = primary_spouse
                    }
                }
                father = {
                    primary_spouse = {
                        scope:child = {set_mother = PREV}
                    }
                }
            }
            #set house
            if = {
                limit = {
                    exists = father
                    OR = {
                        NOT = {exists = mother}
                        father = {matrilinear_marriage = no}
                    }
                    father = {
                        is_lowborn = no
                    }
                }
                set_house = father.house
            }
            else_if = {
                limit = {
                    exists = mother
                    mother = {
                        is_lowborn = no
                    }
                }
                set_house = mother.house
            }
        }
    }
}
spouse_designer_activate = {
    scope = character
    is_shown = {
        is_alive = yes
        NOT = {has_variable = spouse_designer_is_created_spouse}
        exists = primary_spouse
        primary_spouse = {
            NOT = {is_landed = yes}
        }
    }
    effect = {
        set_global_variable = {name = spouse_designer_root_char value = ROOT}
        set_global_variable = spouse_designer
    }
}

spouse_designer_children_activate = {
    scope = character
    saved_scopes = {child}
    is_shown = {
        exists = scope:child
    }
    effect = {
        set_global_variable = {name = spouse_designer_root_char value = ROOT}
        set_global_variable = {name = spouse_designer_replaced_child value = scope:child}
        set_global_variable = spouse_designer_child
    }
}

spouse_designer_valid_for_ruler_designer = {
    scope = character
    is_valid = {
        is_alive = yes
        NOT = {has_variable = spouse_designer_is_created_spouse}
        NOT = {has_variable = spouse_designer_is_created_child}
    }
}

spouse_designer_is_married = {
    scope = character
    is_valid = {
        exists = primary_spouse
    }
}

spouse_designer_matrilineal_marriage = {
    scope = character
    is_shown = {
        matrilinear_marriage = yes
    }
    effect = {
        primary_spouse = {
            save_temporary_scope_as = spouse
        }
        if = {
            limit = {matrilinear_marriage  =yes}
            divorce = scope:spouse
            marry = scope:spouse
        }
        else = {
            divorce = scope:spouse
            marry_matrilineal = scope:spouse
        }
    }
}
spouse_designer_deactivate = {
    scope = character
    effect = {
        remove_global_variable = spouse_designer_root_char
        remove_global_variable = spouse_designer_replaced_child
        remove_global_variable = spouse_designer
        remove_global_variable = spouse_designer_child
    }
}

spouse_designer_remove_child = {
    scope = character
    saved_scopes = {child}
    effect = {
        scope:child = {
            create_character = {
                age = 42
                gender = male
                dynasty = generate
                employer = ROOT.liege
                after_creation = {
                    save_temporary_scope_as = replacement_father
                }
            }
            create_character = {
                age = 42
                gender = female
                dynasty = generate
                employer = ROOT.liege
                after_creation = {
                    save_temporary_scope_as = replacement_mother
                }
            }
            set_father = scope:replacement_father
            set_mother = scope:replacement_mother
            set_house = scope:replacement_father.house
            death = natural
            scope:replacement_father = {
                death = natural
            }
            scope:replacement_mother = {
                death = natural
            }
        }
    }
}


spouse_designer_divorce_spouse = {
    scope = character
    saved_scopes = {spouse}
    effect = {
        divorce = scope:spouse
    }
}
