public static string Label(this PropertyPawnCategory p)
        {
            switch (p)
            {
            case PropertyPawnCategory.Everyone:
                return("PawnCategoryEveryone".Translate());

            case PropertyPawnCategory.Hostile:
                return("PawnCategoryHostile".Translate());

            case PropertyPawnCategory.Peaceful:
                return("PawnCategoryPeaceful".Translate());

            case PropertyPawnCategory.SameFaction:
                return("PawnCategorySameFaction".Translate());

            case PropertyPawnCategory.SameReligion:
                return("PawnCategorySameReligion".Translate());

            case PropertyPawnCategory.SameReligionGroup:
                return("PawnCategorySameReligionGroup".Translate());

            default:
                return("Unknown");
            }
        }
        public static bool IsSubjectFromRightCategory(Pawn pawn, Pawn subject, PropertyPawnCategory pawnCategory)
        {
            switch (pawnCategory)
            {
            case PropertyPawnCategory.Everyone:
                return(true);

            case PropertyPawnCategory.Hostile:
                return(pawn.HostileTo(subject));

            case PropertyPawnCategory.Peaceful:
                return(!pawn.HostileTo(subject));

            case PropertyPawnCategory.SameFaction:
                return(pawn.Faction == subject.Faction);

            case PropertyPawnCategory.SameReligion:
                return(pawn.GetReligionComponent().Religion == subject.GetReligionComponent().Religion);

            case PropertyPawnCategory.SameReligionGroup:
                return(pawn.GetReligionComponent().Religion.GroupTag == subject.GetReligionComponent().Religion.GroupTag);

            default:
                return(false);
            }
        }