﻿on_character_gain_trait = {
    effect = {
        if = {
            limit = { has_trait = angel_full_god }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = fallen_god }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = demi_god }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = god_blood }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = archangel }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = dark_archangel }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = angel }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = dark_angel }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = angel_blood }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = young_god_light }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
        if = {
            limit = { has_trait = young_god_dark }
            trigger_event = angel_trait_mod.100
            trigger_event = angel_trait_mod.102
        }
    }
}

on_character_lose_trait = {
    effect = {
        if = {
            limit = {
                NOT = { has_trait = angel_full_god }
                NOT = { has_trait = fallen_god }
                NOT = { has_trait = demi_god }
                NOT = { has_trait = god_blood }
                NOT = { has_trait = archangel }
                NOT = { has_trait = dark_archangel }
                NOT = { has_trait = angel }
                NOT = { has_trait = dark_angel }
                NOT = { has_trait = angel_blood }
                NOT = { has_trait = young_god_light }
                NOT = { has_trait = young_god_dark }
            }
            trigger_event = angel_trait_mod.101
        }
    }
}

on_birth_child = {
    on_actions = {
        angel_trait_on_birth
        divine_conception_birth
    }
}

angel_trait_on_birth = {
    effect = {

        # -- Young God Light (both parents are angel_full_god)
        if = {
            limit = {
                scope:mother = { has_trait = angel_full_god }
                scope:real_father = { has_trait = angel_full_god }
            }
            add_trait = young_god_light
            add_character_flag = become_full_god_light
            add_genetic_tier_bonus_3_effect = yes
        }

        # -- Young God Dark (both parents are fallen_god)
        if = {
            limit = {
                scope:mother = { has_trait = fallen_god }
                scope:real_father = { has_trait = fallen_god }
            }
            add_trait = young_god_dark
            add_character_flag = become_full_god_dark
            add_genetic_tier_bonus_3_effect = yes
        }

        # -- Demi-God (both demi_god)
        if = {
            limit = {
                scope:mother = { has_trait = demi_god }
                scope:real_father = { has_trait = demi_god }
            }
            add_trait = demi_god
            add_genetic_tier_bonus_2_effect = yes
        }

        # -- Mixed angel_full_god + young_god_light → young_god_light
        if = {
            limit = {
                OR = {
                    AND = { mother = { has_trait = angel_full_god } real_father = { has_trait = young_god_light } }
                    AND = { mother = { has_trait = young_god_light } real_father = { has_trait = angel_full_god } }
                }
            }
            add_trait = young_god_light
            add_character_flag = become_full_god_light
            add_genetic_tier_bonus_3_effect = yes
        }

        # -- Mixed fallen_god + young_god_dark → young_god_dark
        if = {
            limit = {
                OR = {
                    AND = { mother = { has_trait = fallen_god } real_father = { has_trait = young_god_dark } }
                    AND = { mother = { has_trait = young_god_dark } real_father = { has_trait = fallen_god } }
                }
            }
            add_trait = young_god_dark
            add_character_flag = become_full_god_dark
            add_genetic_tier_bonus_3_effect = yes
        }

        # -- Tier 1 god + non-Tier 1 → demi_god
        if = {
            limit = {
                OR = {
                    AND = { mother = { has_trait = angel_full_god } real_father = { NOT = { has_trait = angel_full_god } } }
                    AND = { real_father = { has_trait = angel_full_god } mother = { NOT = { has_trait = angel_full_god } } }
                    AND = { mother = { has_trait = fallen_god } real_father = { NOT = { has_trait = fallen_god } } }
                    AND = { real_father = { has_trait = fallen_god } mother = { NOT = { has_trait = fallen_god } } }
                }
            }
            add_trait = demi_god
            add_genetic_tier_bonus_2_effect = yes
        }

        # -- Tier 2 god + non-Tier 2 → god_blood
        if = {
            limit = {
                OR = {
                    AND = { mother = { has_trait = demi_god } real_father = { NOT = { has_trait = demi_god } } }
                    AND = { real_father = { has_trait = demi_god } mother = { NOT = { has_trait = demi_god } } }
                }
            }
            add_trait = god_blood
            add_genetic_tier_bonus_1_effect = yes
        }

        # -- Archangel parents
        if = {
            limit = {
                mother = { has_trait = archangel }
                real_father = { has_trait = archangel }
            }
            add_trait = archangel
            add_genetic_tier_bonus_3_effect = yes
            add_angel_personality_set_effect = yes
        }

        # -- Dark Archangel parents
        if = {
            limit = {
                mother = { has_trait = dark_archangel }
                real_father = { has_trait = dark_archangel }
            }
            add_trait = dark_archangel
            add_genetic_tier_bonus_3_effect = yes
            add_angel_personality_set_effect = yes
        }

        # -- Angel parents
        if = {
            limit = {
                mother = { has_trait = angel }
                real_father = { has_trait = angel }
            }
            add_trait = angel
            add_genetic_tier_bonus_2_effect = yes
            add_angel_personality_set_effect = yes
        }

        # -- Dark Angel parents
        if = {
            limit = {
                mother = { has_trait = dark_angel }
                real_father = { has_trait = dark_angel }
            }
            add_trait = dark_angel
            add_genetic_tier_bonus_2_effect = yes
            add_angel_personality_set_effect = yes
        }

        # -- Tier 1 angel + non → angel
        if = {
            limit = {
                OR = {
                    AND = { mother = { has_trait = archangel } real_father = { NOT = { has_trait = archangel } } }
                    AND = { real_father = { has_trait = archangel } mother = { NOT = { has_trait = archangel } } }
                    AND = { mother = { has_trait = dark_archangel } real_father = { NOT = { has_trait = dark_archangel } } }
                    AND = { real_father = { has_trait = dark_archangel } mother = { NOT = { has_trait = dark_archangel } } }
                }
            }
            add_trait = angel
            add_genetic_tier_bonus_2_effect = yes
            add_angel_personality_set_effect = yes
        }

        # -- Tier 2 angel + non → angel_blood
        if = {
            limit = {
                OR = {
                    AND = { mother = { has_trait = angel } real_father = { NOT = { has_trait = angel } } }
                    AND = { real_father = { has_trait = angel } mother = { NOT = { has_trait = angel } } }
                    AND = { mother = { has_trait = dark_angel } real_father = { NOT = { has_trait = dark_angel } } }
                    AND = { real_father = { has_trait = dark_angel } mother = { NOT = { has_trait = dark_angel } } }
                }
            }
            add_trait = angel_blood
            add_genetic_tier_bonus_1_effect = yes
        }
    }
}


divine_conception_birth = {
    effect = {
        if = {
            limit = {
                mother = { has_character_flag = divine_conception_log_pregnancy }
            }

            mother = {
                remove_character_flag = divine_conception_log_pregnancy
                save_scope_as = divine_conception_mother
            }

            # Save the god from the mother’s stored variable into a scope
            mother.var:divine_conception_father = {
                save_scope_as = divine_father
            }
            
            # Add the flag here (inside the on_action), to the child
            add_character_flag = divine_child

            trigger_event = divine_conception_event.2000
        }
    }
}

five_year_everyone_pulse = {
    on_actions = {
        god_ascension_progress_check
    }
}

god_ascension_progress_check = {
    effect = {
        if = {
            limit = { has_character_flag = become_full_god_light }
            trigger_event = god_young_event.9100
        }

        if = {
            limit = { has_character_flag = become_full_god_dark }
            trigger_event = god_young_event.9101
        }
    }
}
