using RimWorld;
using System;

namespace SCE
{
    [DefOf]
    public static class SCEPreceptDefOf
    {
        public static PreceptDef Lovin_Prohibited;

        public static PreceptDef Lovin_Horrible;

        public static PreceptDef Lovin_SpouseOnly_Strict;

        // Bestiality

        [DefAlias("SCE_Bestiality_VeneratedOnly")]
        public static PreceptDef Bestiality_VeneratedOnly;

        [DefAlias("SCE_Bestiality_NoVenerated")]
        public static PreceptDef Bestiality_NoVenerated;

        [DefAlias("SCE_Bestiality_Revered")]
        public static PreceptDef Bestiality_Revered;

        [DefAlias("SCE_Bestiality_Approved")]
        public static PreceptDef Bestiality_Approved;

        [DefAlias("SCE_Bestiality_DontCare")]
        public static PreceptDef Bestiality_DontCare;

        [DefAlias("SCE_Bestiality_Disapproved")]
        public static PreceptDef Bestiality_Disapproved;

        [DefAlias("SCE_Bestiality_Horrible")]
        public static PreceptDef Bestiality_Horrible;

        [DefAlias("SCE_Bestiality_Abhorrent")]
        public static PreceptDef Bestiality_Abhorrent;

        // Nudity
        [DefAlias("SCE_Nudity_Male_CoveringGroinDisapproved")]
        public static PreceptDef Nudity_Male_CoveringGroinDisapproved;

        [DefAlias("SCE_Nudity_Female_CoveringGroinOrChestDisapproved")]
        public static PreceptDef Nudity_Female_CoveringGroinOrChestDisapproved;

        // Incest
        [DefAlias("SCE_Incest_FreeApproved")]
        public static PreceptDef Incest_FreeApproved;

        [DefAlias("SCE_Incest_DontCare")]
        public static PreceptDef Incest_DontCare;

        [DefAlias("SCE_Incest_Prohibited")]
        public static PreceptDef Incest_Prohibited;

        // Rape
        [DefAlias("SCE_Rape_Abhorred")]
        public static PreceptDef Rape_Abhorred;

        [DefAlias("SCE_Rape_Horrible")]
        public static PreceptDef Rape_Horrible;

        [DefAlias("SCE_Rape_DontCare")]
        public static PreceptDef Rape_DontCare;

        [DefAlias("SCE_Rape_Honourable")]
        public static PreceptDef Rape_Honourable;

        [DefAlias("SCE_Rape_MaleOnly")]
        public static PreceptDef Rape_MaleOnly;

        [DefAlias("SCE_Rape_FemaleOnly")]
        public static PreceptDef Rape_FemaleOnly;

        [DefAlias("SCE_Rape_SlavesOnly")]
        public static PreceptDef Rape_SlavesOnly;

        // Prostitution
        [MayRequire("rjw.whoring")]
        [DefAlias("SCEProstitution_Abhorred")]
        public static PreceptDef Prostitution_Abhorred;

        [MayRequire("rjw.whoring")]
        [DefAlias("SCEProstitution_DontCare")]
        public static PreceptDef Prostitution_DontCare;

        [MayRequire("rjw.whoring")]
        [DefAlias("SCEProstitution_Approved")]
        public static PreceptDef Prostitution_Approved;

        [MayRequire("rjw.whoring")]
        [DefAlias("SCEProstitution_Divine")]
        public static PreceptDef Prostitution_Divine;

        // Misc
        [DefAlias("SCE_AnimalConnection_Lovin")]
        public static PreceptDef AnimalConnection_Lovin;

        // Rituals
        [DefAlias("SCELewdWedding")]
        public static PreceptDef LewdWedding;

        // Un-DefOfed vanilla precepts
        public static PreceptDef Nudity_Male_CoveringAnythingButGroinDisapproved;

        public static PreceptDef Nudity_Female_CoveringAnythingButGroinDisapproved;

        static SCEPreceptDefOf()
        {
            DefOfHelper.EnsureInitializedInCtor(typeof(SCEPreceptDefOf));
        }
    }
}