﻿
domcom_endowment_micro = {
    opposites = { domcom_endowment_small domcom_endowment_average domcom_endowment_big domcom_endowment_hung domcom_endowment_massive }
    # Native leveled trait group. Explicit opposites mirror the reference leveled-trait implementation
    # and keep saves from ever displaying more than one physical tier at once.
    group = domcom_endowment
    level = 1

    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_endowment_micro_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_length_tenths }
                        NOT = { has_variable = domcom_girth_tenths }
                    }
                }
                desc = trait_domcom_endowment_micro_desc
            }
            desc = trait_domcom_endowment_micro_character_desc
        }
    }




    # Native CK3 trait track. The persistent Mastery mirror remains 0..32, but CK3 trait-track XP is
    # normalized to 0..100. These thresholds correspond to 3 / 8 / 13 / 20 / 27 / 32 Mastery XP.
    tracks = {
        mastery = {
            9 = { attraction_opinion = 2 }
            25 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            63 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            84 = { 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. Runtime anatomy checks remain in scripted effects.
    # valid_sex gives CK3 a proper sex-specific rejection instead of the generic potential failure.
    valid_sex = male

    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 = domcom_endowment_micro.dds


}

domcom_endowment_small = {
    opposites = { domcom_endowment_micro domcom_endowment_average domcom_endowment_big domcom_endowment_hung domcom_endowment_massive }
    # Native leveled trait group. Explicit opposites mirror the reference leveled-trait implementation
    # and keep saves from ever displaying more than one physical tier at once.
    group = domcom_endowment
    level = 2

    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_endowment_small_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_length_tenths }
                        NOT = { has_variable = domcom_girth_tenths }
                    }
                }
                desc = trait_domcom_endowment_small_desc
            }
            desc = trait_domcom_endowment_small_character_desc
        }
    }




    # Native CK3 trait track. The persistent Mastery mirror remains 0..32, but CK3 trait-track XP is
    # normalized to 0..100. These thresholds correspond to 3 / 8 / 13 / 20 / 27 / 32 Mastery XP.
    tracks = {
        mastery = {
            9 = { attraction_opinion = 2 }
            25 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            63 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            84 = { 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. Runtime anatomy checks remain in scripted effects.
    # valid_sex gives CK3 a proper sex-specific rejection instead of the generic potential failure.
    valid_sex = male

    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 = domcom_endowment_small.dds


}

domcom_endowment_average = {
    opposites = { domcom_endowment_micro domcom_endowment_small domcom_endowment_big domcom_endowment_hung domcom_endowment_massive }
    # Native leveled trait group. Explicit opposites mirror the reference leveled-trait implementation
    # and keep saves from ever displaying more than one physical tier at once.
    group = domcom_endowment
    level = 3

    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_endowment_average_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_length_tenths }
                        NOT = { has_variable = domcom_girth_tenths }
                    }
                }
                desc = trait_domcom_endowment_average_desc
            }
            desc = trait_domcom_endowment_average_character_desc
        }
    }




    # Native CK3 trait track. The persistent Mastery mirror remains 0..32, but CK3 trait-track XP is
    # normalized to 0..100. These thresholds correspond to 3 / 8 / 13 / 20 / 27 / 32 Mastery XP.
    tracks = {
        mastery = {
            9 = { attraction_opinion = 2 }
            25 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            63 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            84 = { 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. Runtime anatomy checks remain in scripted effects.
    # valid_sex gives CK3 a proper sex-specific rejection instead of the generic potential failure.
    valid_sex = male

    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 = domcom_endowment_average.dds

}

domcom_endowment_big = {
    opposites = { domcom_endowment_micro domcom_endowment_small domcom_endowment_average domcom_endowment_hung domcom_endowment_massive }
    # Native leveled trait group. Explicit opposites mirror the reference leveled-trait implementation
    # and keep saves from ever displaying more than one physical tier at once.
    group = domcom_endowment
    level = 4

    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_endowment_big_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_length_tenths }
                        NOT = { has_variable = domcom_girth_tenths }
                    }
                }
                desc = trait_domcom_endowment_big_desc
            }
            desc = trait_domcom_endowment_big_character_desc
        }
    }




    # Native CK3 trait track. The persistent Mastery mirror remains 0..32, but CK3 trait-track XP is
    # normalized to 0..100. These thresholds correspond to 3 / 8 / 13 / 20 / 27 / 32 Mastery XP.
    tracks = {
        mastery = {
            9 = { attraction_opinion = 2 }
            25 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            63 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            84 = { 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. Runtime anatomy checks remain in scripted effects.
    # valid_sex gives CK3 a proper sex-specific rejection instead of the generic potential failure.
    valid_sex = male

    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 = domcom_endowment_big.dds


}

domcom_endowment_hung = {
    opposites = { domcom_endowment_micro domcom_endowment_small domcom_endowment_average domcom_endowment_big domcom_endowment_massive }
    # Native leveled trait group. Explicit opposites mirror the reference leveled-trait implementation
    # and keep saves from ever displaying more than one physical tier at once.
    group = domcom_endowment
    level = 5

    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_endowment_hung_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_length_tenths }
                        NOT = { has_variable = domcom_girth_tenths }
                    }
                }
                desc = trait_domcom_endowment_hung_desc
            }
            desc = trait_domcom_endowment_hung_character_desc
        }
    }




    # Native CK3 trait track. The persistent Mastery mirror remains 0..32, but CK3 trait-track XP is
    # normalized to 0..100. These thresholds correspond to 3 / 8 / 13 / 20 / 27 / 32 Mastery XP.
    tracks = {
        mastery = {
            9 = { attraction_opinion = 2 }
            25 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            63 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            84 = { 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. Runtime anatomy checks remain in scripted effects.
    # valid_sex gives CK3 a proper sex-specific rejection instead of the generic potential failure.
    valid_sex = male

    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 = domcom_endowment_hung.dds


}

domcom_endowment_massive = {
    opposites = { domcom_endowment_micro domcom_endowment_small domcom_endowment_average domcom_endowment_big domcom_endowment_hung }
    # Native leveled trait group. Explicit opposites mirror the reference leveled-trait implementation
    # and keep saves from ever displaying more than one physical tier at once.
    group = domcom_endowment
    level = 6

    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_endowment_massive_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_length_tenths }
                        NOT = { has_variable = domcom_girth_tenths }
                    }
                }
                desc = trait_domcom_endowment_massive_desc
            }
            desc = trait_domcom_endowment_massive_character_desc
        }
    }




    # Native CK3 trait track. The persistent Mastery mirror remains 0..32, but CK3 trait-track XP is
    # normalized to 0..100. These thresholds correspond to 3 / 8 / 13 / 20 / 27 / 32 Mastery XP.
    tracks = {
        mastery = {
            9 = { attraction_opinion = 2 }
            25 = { attraction_opinion = 2 diplomacy = 1 }
            41 = { attraction_opinion = 2 intrigue = 1 }
            63 = { attraction_opinion = 2 diplomacy = 1 prowess = 1 monthly_prestige_gain_mult = 0.05 }
            84 = { 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. Runtime anatomy checks remain in scripted effects.
    # valid_sex gives CK3 a proper sex-specific rejection instead of the generic potential failure.
    valid_sex = male

    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 = domcom_endowment_massive.dds


}


# Visible preference markers. The stored preference remains authoritative; these traits are display only.
domcom_prefers_endowment_micro = {
    icon = domcom_endowment_micro.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_endowment_micro_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_length_tenths }
                        NOT = { has_variable = domcom_pref_girth_tenths }
                    }
                }
                desc = trait_domcom_prefers_endowment_micro_desc
            }
            desc = trait_domcom_prefers_endowment_micro_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}

domcom_prefers_endowment_small = {
    icon = domcom_endowment_small.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_endowment_small_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_length_tenths }
                        NOT = { has_variable = domcom_pref_girth_tenths }
                    }
                }
                desc = trait_domcom_prefers_endowment_small_desc
            }
            desc = trait_domcom_prefers_endowment_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_endowment_average = {
    icon = domcom_endowment_average.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_endowment_average_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_length_tenths }
                        NOT = { has_variable = domcom_pref_girth_tenths }
                    }
                }
                desc = trait_domcom_prefers_endowment_average_desc
            }
            desc = trait_domcom_prefers_endowment_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_endowment_big = {
    icon = domcom_endowment_big.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_endowment_big_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_length_tenths }
                        NOT = { has_variable = domcom_pref_girth_tenths }
                    }
                }
                desc = trait_domcom_prefers_endowment_big_desc
            }
            desc = trait_domcom_prefers_endowment_big_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}

domcom_prefers_endowment_hung = {
    icon = domcom_endowment_hung.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_endowment_hung_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_length_tenths }
                        NOT = { has_variable = domcom_pref_girth_tenths }
                    }
                }
                desc = trait_domcom_prefers_endowment_hung_desc
            }
            desc = trait_domcom_prefers_endowment_hung_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}

domcom_prefers_endowment_massive = {
    icon = domcom_endowment_massive.dds
    desc = {
        first_valid = {
            triggered_desc = {
                trigger = { NOT = { exists = this } }
                desc = trait_domcom_prefers_endowment_massive_desc
            }
            triggered_desc = {
                trigger = {
                    OR = {
                        NOT = { has_variable = domcom_pref_length_tenths }
                        NOT = { has_variable = domcom_pref_girth_tenths }
                    }
                }
                desc = trait_domcom_prefers_endowment_massive_desc
            }
            desc = trait_domcom_prefers_endowment_massive_character_desc
        }
    }
    shown_in_ruler_designer = no
    random_creation = 0
    birth = 0
    inherit_chance = 0
    both_parent_has_trait_inherit_chance = 0
}
