﻿# Dominion of Communion — adult breast profiles.
# These are display/body-profile traits only. Physical measurements are stored in variables and
# inherited through Dominion's own regression system; CK3's congenital trait engine is not used.

domcom_breast_flat = {
    opposites = { domcom_breast_small domcom_breast_average domcom_breast_full domcom_breast_large domcom_breast_very_large }
    group = domcom_breast_profile
    level = 1
    # Native Breast Mastery path. Canonical Breast Mastery remains 0..64; CK3 renders a 0..100 track.
    # Milestones correspond to 6 / 15 / 26 / 39 / 53 / 64 canonical XP.
    tracks = {
        breast_mastery = {
            9 = { attraction_opinion = 2 }
            23 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            61 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            83 = { attraction_opinion = 2 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
            100 = { attraction_opinion = 5 diplomacy = 1 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
        }
    }

    # Native Ruler Designer validation. Minors may preselect a future tier; runtime hides it until 18.
    # valid_sex gives CK3 the correct female-only eligibility message in the designer.
    valid_sex = female

    physical = yes
    genetic = no
    shown_in_ruler_designer = yes
    birth = 0
    random_creation = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
    icon = physique_good_1.dds
    desc = { first_valid = {
        triggered_desc = { trigger = { NOT = { exists = this } } desc = trait_domcom_breast_flat_desc }
        triggered_desc = { trigger = { OR = { NOT = { has_variable = domcom_underbust_tenths } NOT = { has_variable = domcom_bust_tenths } } } desc = trait_domcom_breast_flat_desc }
        desc = trait_domcom_breast_flat_character_desc
    } }
}

domcom_breast_small = {
    opposites = { domcom_breast_flat domcom_breast_average domcom_breast_full domcom_breast_large domcom_breast_very_large }
    group = domcom_breast_profile
    level = 2
    # Native Breast Mastery path. Canonical Breast Mastery remains 0..64; CK3 renders a 0..100 track.
    # Milestones correspond to 6 / 15 / 26 / 39 / 53 / 64 canonical XP.
    tracks = {
        breast_mastery = {
            9 = { attraction_opinion = 2 }
            23 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            61 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            83 = { attraction_opinion = 2 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
            100 = { attraction_opinion = 5 diplomacy = 1 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
        }
    }

    # Native Ruler Designer validation. Minors may preselect a future tier; runtime hides it until 18.
    # valid_sex gives CK3 the correct female-only eligibility message in the designer.
    valid_sex = female

    physical = yes
    genetic = no
    shown_in_ruler_designer = yes
    birth = 0
    random_creation = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
    icon = physique_good_1.dds
    desc = { first_valid = {
        triggered_desc = { trigger = { NOT = { exists = this } } desc = trait_domcom_breast_small_desc }
        triggered_desc = { trigger = { OR = { NOT = { has_variable = domcom_underbust_tenths } NOT = { has_variable = domcom_bust_tenths } } } desc = trait_domcom_breast_small_desc }
        desc = trait_domcom_breast_small_character_desc
    } }
}

domcom_breast_average = {
    opposites = { domcom_breast_flat domcom_breast_small domcom_breast_full domcom_breast_large domcom_breast_very_large }
    group = domcom_breast_profile
    level = 3
    # Native Breast Mastery path. Canonical Breast Mastery remains 0..64; CK3 renders a 0..100 track.
    # Milestones correspond to 6 / 15 / 26 / 39 / 53 / 64 canonical XP.
    tracks = {
        breast_mastery = {
            9 = { attraction_opinion = 2 }
            23 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            61 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            83 = { attraction_opinion = 2 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
            100 = { attraction_opinion = 5 diplomacy = 1 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
        }
    }

    # Native Ruler Designer validation. Minors may preselect a future tier; runtime hides it until 18.
    # valid_sex gives CK3 the correct female-only eligibility message in the designer.
    valid_sex = female

    physical = yes
    genetic = no
    shown_in_ruler_designer = yes
    birth = 0
    random_creation = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
    icon = physique_good_2.dds
    desc = { first_valid = {
        triggered_desc = { trigger = { NOT = { exists = this } } desc = trait_domcom_breast_average_desc }
        triggered_desc = { trigger = { OR = { NOT = { has_variable = domcom_underbust_tenths } NOT = { has_variable = domcom_bust_tenths } } } desc = trait_domcom_breast_average_desc }
        desc = trait_domcom_breast_average_character_desc
    } }
}

domcom_breast_full = {
    opposites = { domcom_breast_flat domcom_breast_small domcom_breast_average domcom_breast_large domcom_breast_very_large }
    group = domcom_breast_profile
    level = 4
    # Native Breast Mastery path. Canonical Breast Mastery remains 0..64; CK3 renders a 0..100 track.
    # Milestones correspond to 6 / 15 / 26 / 39 / 53 / 64 canonical XP.
    tracks = {
        breast_mastery = {
            9 = { attraction_opinion = 2 }
            23 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            61 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            83 = { attraction_opinion = 2 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
            100 = { attraction_opinion = 5 diplomacy = 1 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
        }
    }

    # Native Ruler Designer validation. Minors may preselect a future tier; runtime hides it until 18.
    # valid_sex gives CK3 the correct female-only eligibility message in the designer.
    valid_sex = female

    physical = yes
    genetic = no
    shown_in_ruler_designer = yes
    birth = 0
    random_creation = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
    icon = physique_good_2.dds
    desc = { first_valid = {
        triggered_desc = { trigger = { NOT = { exists = this } } desc = trait_domcom_breast_full_desc }
        triggered_desc = { trigger = { OR = { NOT = { has_variable = domcom_underbust_tenths } NOT = { has_variable = domcom_bust_tenths } } } desc = trait_domcom_breast_full_desc }
        desc = trait_domcom_breast_full_character_desc
    } }
}

domcom_breast_large = {
    opposites = { domcom_breast_flat domcom_breast_small domcom_breast_average domcom_breast_full domcom_breast_very_large }
    group = domcom_breast_profile
    level = 5
    # Native Breast Mastery path. Canonical Breast Mastery remains 0..64; CK3 renders a 0..100 track.
    # Milestones correspond to 6 / 15 / 26 / 39 / 53 / 64 canonical XP.
    tracks = {
        breast_mastery = {
            9 = { attraction_opinion = 2 }
            23 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            61 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            83 = { attraction_opinion = 2 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
            100 = { attraction_opinion = 5 diplomacy = 1 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
        }
    }

    # Native Ruler Designer validation. Minors may preselect a future tier; runtime hides it until 18.
    # valid_sex gives CK3 the correct female-only eligibility message in the designer.
    valid_sex = female

    physical = yes
    genetic = no
    shown_in_ruler_designer = yes
    birth = 0
    random_creation = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
    icon = physique_good_3.dds
    desc = { first_valid = {
        triggered_desc = { trigger = { NOT = { exists = this } } desc = trait_domcom_breast_large_desc }
        triggered_desc = { trigger = { OR = { NOT = { has_variable = domcom_underbust_tenths } NOT = { has_variable = domcom_bust_tenths } } } desc = trait_domcom_breast_large_desc }
        desc = trait_domcom_breast_large_character_desc
    } }
}

domcom_breast_very_large = {
    opposites = { domcom_breast_flat domcom_breast_small domcom_breast_average domcom_breast_full domcom_breast_large }
    group = domcom_breast_profile
    level = 6
    # Native Breast Mastery path. Canonical Breast Mastery remains 0..64; CK3 renders a 0..100 track.
    # Milestones correspond to 6 / 15 / 26 / 39 / 53 / 64 canonical XP.
    tracks = {
        breast_mastery = {
            9 = { attraction_opinion = 2 }
            23 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            61 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            83 = { attraction_opinion = 2 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
            100 = { attraction_opinion = 5 diplomacy = 1 intrigue = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 dread_gain_mult = 0.05 }
        }
    }

    # Native Ruler Designer validation. Minors may preselect a future tier; runtime hides it until 18.
    # valid_sex gives CK3 the correct female-only eligibility message in the designer.
    valid_sex = female

    physical = yes
    genetic = no
    shown_in_ruler_designer = yes
    birth = 0
    random_creation = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
    icon = physique_good_3.dds
    desc = { first_valid = {
        triggered_desc = { trigger = { NOT = { exists = this } } desc = trait_domcom_breast_very_large_desc }
        triggered_desc = { trigger = { OR = { NOT = { has_variable = domcom_underbust_tenths } NOT = { has_variable = domcom_bust_tenths } } } desc = trait_domcom_breast_very_large_desc }
        desc = trait_domcom_breast_very_large_character_desc
    } }
}

# Visible preference markers for characters attracted to women. The stored preferred frame/fullness
# variables remain authoritative; these traits simply expose the preference in the normal CK3 trait UI.
domcom_prefers_breast_flat = {
    icon = physique_good_1.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_breast_flat_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_underbust_tenths }
                        NOT = { has_variable = domcom_pref_breast_fullness_tenths }
                    }
                }
                desc = trait_domcom_prefers_breast_flat_desc
            }
            desc = trait_domcom_prefers_breast_flat_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}

domcom_prefers_breast_small = {
    icon = physique_good_1.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_breast_small_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_underbust_tenths }
                        NOT = { has_variable = domcom_pref_breast_fullness_tenths }
                    }
                }
                desc = trait_domcom_prefers_breast_small_desc
            }
            desc = trait_domcom_prefers_breast_small_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}

domcom_prefers_breast_average = {
    icon = physique_good_2.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_breast_average_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_underbust_tenths }
                        NOT = { has_variable = domcom_pref_breast_fullness_tenths }
                    }
                }
                desc = trait_domcom_prefers_breast_average_desc
            }
            desc = trait_domcom_prefers_breast_average_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}

domcom_prefers_breast_full = {
    icon = physique_good_2.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_breast_full_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_underbust_tenths }
                        NOT = { has_variable = domcom_pref_breast_fullness_tenths }
                    }
                }
                desc = trait_domcom_prefers_breast_full_desc
            }
            desc = trait_domcom_prefers_breast_full_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}

domcom_prefers_breast_large = {
    icon = physique_good_3.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_breast_large_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_underbust_tenths }
                        NOT = { has_variable = domcom_pref_breast_fullness_tenths }
                    }
                }
                desc = trait_domcom_prefers_breast_large_desc
            }
            desc = trait_domcom_prefers_breast_large_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}

domcom_prefers_breast_very_large = {
    icon = physique_good_3.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_breast_very_large_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_underbust_tenths }
                        NOT = { has_variable = domcom_pref_breast_fullness_tenths }
                    }
                }
                desc = trait_domcom_prefers_breast_very_large_desc
            }
            desc = trait_domcom_prefers_breast_very_large_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}
