﻿namespace = angel_trait_mod

angel_trait_mod.100 = {
    type = character_event
    hidden = yes

    immediate = {
        set_immortal_age = 20

        if = {
            limit = { has_trait = angel_full_god }
            add_trait = intellect_good_3
            add_trait = physique_good_3
            add_trait = beauty_good_3
            add_character_flag = god_light
        }
        else_if = {
            limit = { has_trait = fallen_god }
            add_trait = intellect_good_3
            add_trait = physique_good_3
            add_trait = beauty_good_3
            add_character_flag = god_dark
        }
        else_if = {
            limit = { has_trait = demi_god }
            add_trait = intellect_good_2
            add_trait = physique_good_2
            add_trait = beauty_good_2
        }
        else_if = {
            limit = { has_trait = young_god_light }
            add_trait = intellect_good_2
            add_trait = physique_good_2
            add_trait = beauty_good_2
            add_character_flag = god_light
        }
        else_if = {
            limit = { has_trait = young_god_dark }
            add_trait = intellect_good_2
            add_trait = physique_good_2
            add_trait = beauty_good_2
            add_character_flag = god_dark
        }
        else_if = {
            limit = { has_trait = god_blood }
            add_trait = intellect_good_1
            add_trait = physique_good_1
            add_trait = beauty_good_1
        }
        else_if = {
            limit = { has_trait = archangel }
            add_trait = intellect_good_3
            add_trait = physique_good_3
            add_trait = beauty_good_3
            add_trait = content
            add_trait = loyal
            add_trait = zealous
            add_character_flag = angel_halo_wings_active
        }
        else_if = {
            limit = { has_trait = dark_archangel }
            add_trait = intellect_good_3
            add_trait = physique_good_3
            add_trait = beauty_good_3
            add_trait = content
            add_trait = loyal
            add_trait = sadistic
            add_character_flag = dark_angel_halo_wings_active
        }
        else_if = {
            limit = { has_trait = angel }
            add_trait = intellect_good_2
            add_trait = physique_good_2
            add_trait = beauty_good_2
            add_trait = content
            add_trait = loyal
            add_trait = zealous
            add_character_flag = angel_halo_wings_active
        }
        else_if = {
            limit = { has_trait = dark_angel }
            add_trait = intellect_good_2
            add_trait = physique_good_2
            add_trait = beauty_good_2
            add_trait = content
            add_trait = loyal
            add_trait = sadistic
            add_character_flag = dark_angel_halo_wings_active
        }
        else_if = {
            limit = { has_trait = angel_blood }
            add_trait = intellect_good_1
            add_trait = physique_good_1
            add_trait = beauty_good_1
        }

        # Reduce weight for divine or angelic traits once
        if = {
	        limit = {
		        NOT = { has_character_flag = divine_weight_changed }
		        OR = {
			        has_trait = angel_full_god
			        has_trait = fallen_god
			        has_trait = young_god_light
			        has_trait = young_god_dark
			        has_trait = archangel
			        has_trait = dark_archangel
			        has_trait = angel
			        has_trait = dark_angel
		        }
	        }
	        change_current_weight = -25
	        add_character_flag = divine_weight_changed
        }

        # Apply fertility override if game rule allows it
        if = {
	        limit = { has_game_rule = log_trait_fertility_fertile }
	        if = {
		        limit = {
			        OR = {
				        has_trait = young_god_light
				        has_trait = young_god_dark
				        has_trait = fallen_god
				        has_trait = angel_full_god
			        }
		        }
		        add_character_modifier = {
			        modifier = fertility_override
			        years = 1000
		        }
	        }
        }

        # Apply fertility override for angelic traits if rule is enabled
        if = {
	        limit = { has_game_rule = log_angelic_fertility_fertile }
	        if = {
		        limit = {
			        OR = {
				        has_trait = angel
				        has_trait = archangel
				        has_trait = dark_angel
				        has_trait = dark_archangel
			        }
		        }
		        add_character_modifier = {
			        modifier = fertility_override
			        years = 1000
		        }
	        }
        }

    }

    option = {
        name = CONFIRM_OKAY
        trigger = { always = yes }
        ai_chance = { base = 100 }
    }
}

angel_trait_mod.101 = {
    type = character_event
    hidden = yes

    immediate = {
        set_immortal_age = 0

        # Intellect
        if = {
            limit = {
                has_trait = intellect_good_1
                NOT = { has_trait = intellect_good_2 }
                NOT = { has_trait = intellect_good_3 }
            }
            remove_trait = intellect_good_1
        }
        if = {
            limit = {
                has_trait = intellect_good_2
                NOT = { has_trait = intellect_good_3 }
            }
            remove_trait = intellect_good_2
        }

        # Physique
        if = {
            limit = {
                has_trait = physique_good_1
                NOT = { has_trait = physique_good_2 }
                NOT = { has_trait = physique_good_3 }
            }
            remove_trait = physique_good_1
        }
        if = {
            limit = {
                has_trait = physique_good_2
                NOT = { has_trait = physique_good_3 }
            }
            remove_trait = physique_good_2
        }

        # Beauty
        if = {
            limit = {
                has_trait = beauty_good_1
                NOT = { has_trait = beauty_good_2 }
                NOT = { has_trait = beauty_good_3 }
            }
            remove_trait = beauty_good_1
        }
        if = {
            limit = {
                has_trait = beauty_good_2
                NOT = { has_trait = beauty_good_3 }
            }
            remove_trait = beauty_good_2
        }

        # Remove angel/god flags
        remove_character_flag = angel_halo_wings_active
        remove_character_flag = dark_angel_halo_wings_active
        remove_character_flag = angel_spawn
        remove_character_flag = angel_spawn_dark
        remove_character_flag = god_light
        remove_character_flag = god_dark
        remove_character_modifier = fertility_override

        # Restore weight if divine traits were previously applied
        if = {
	        limit = { has_character_flag = divine_weight_changed }
	        change_current_weight = 25
	        remove_character_flag = divine_weight_changed
        }
    }

    option = {
        name = CONFIRM_OKAY
        trigger = { always = yes }
        ai_chance = { base = 100 }
    }
}

angel_trait_mod.102 = {
    type = character_event
    hidden = yes

    trigger = { 
        OR = {
            has_character_flag = angel_spawn
            has_character_flag = angel_spawn_dark
        }
    }
    
    immediate = {
        set_age = 0

        # Apply fertility override for angelic traits if rule is enabled
        if = {
	        limit = { has_game_rule = log_angelic_fertility_fertile }
	        if = {
		        limit = {
			        OR = {
				        has_trait = angel
				        has_trait = archangel
				        has_trait = dark_angel
				        has_trait = dark_archangel
			        }
		        }
		        add_character_modifier = {
			        modifier = fertility_override
			        years = 1000
		        }
	        }
        }

        # Reduce weight for divine or angelic traits once
        if = {
	        limit = {
		        NOT = { has_character_flag = divine_weight_changed }
		        OR = {
			        has_trait = angel_full_god
			        has_trait = fallen_god
			        has_trait = young_god_light
			        has_trait = young_god_dark
			        has_trait = archangel
			        has_trait = dark_archangel
			        has_trait = angel
			        has_trait = dark_angel
		        }
	        }
	        change_current_weight = -25
	        add_character_flag = divine_weight_changed
        }
    }
}

angel_trait_mod.103 = {
    type = character_event
    hidden = yes

    immediate = {

        remove_trait = intellect_good_3
        remove_trait = physique_good_3
        remove_trait = beauty_good_3

        remove_trait = intellect_good_2
        remove_trait = physique_good_2
        remove_trait = beauty_good_2

        remove_trait = intellect_good_1
        remove_trait = physique_good_1
        remove_trait = beauty_good_1

        remove_trait = content
        remove_trait = loyal
        remove_trait = zealous

        remove_trait = lustful
        remove_trait = gluttonous
        remove_trait = greedy
        remove_trait = lazy
        remove_trait = wrathful
        remove_trait = impatient
        remove_trait = arrogant
        remove_trait = deceitful
        remove_trait = craven
        remove_trait = shy
        remove_trait = ambitious
        remove_trait = arbitrary
        remove_trait = cynical
        remove_trait = paranoid
        remove_trait = callous
        remove_trait = sadistic
        remove_trait = stubborn
        remove_trait = vengeful

        remove_character_flag = angel_halo_wings_active
        remove_character_flag = dark_angel_halo_wings_active
        remove_character_flag = angel_spawn
        remove_character_flag = angel_spawn_dark
        remove_character_flag = god_light
        remove_character_flag = god_dark

        # Restore weight if divine traits were previously applied
        if = {
	        limit = { has_character_flag = divine_weight_changed }
	        change_current_weight = 25
	        remove_character_flag = divine_weight_changed
        }
    }

    option = {
        name = CONFIRM_OKAY
        trigger = { always = yes }
        ai_chance = { base = 100 }
    }
}