/// This is a mish-mash of copy-pasted code.
        /// Mostly copy-pasted from Psychology Mod by Word-Mule
        ///
        /// Does the same function but excludes lovefriends and sweethearts
        ///
        ///
        protected override ThoughtState CurrentStateInternal(Pawn p)
        {
            DirectPawnRelation directPawnRelation = RelationshipUtility.MostLikedBedSharingRelationship(p, false);

            if (directPawnRelation == null)
            {
                return(ThoughtState.Inactive);
            }

            bool multiplePartners = (from r in p.relations.PotentiallyRelatedPawns
                                     where RelationshipUtility.ShouldShareBed(p, r)
                                     select r).Count() > 1;
            bool partnerBedInRoom;

            if (p.ownership.OwnedBed != null)
            {
                partnerBedInRoom = (from t in p.ownership.OwnedBed.GetRoom().ContainedBeds
                                    where t.AssignedPawns.Contains(directPawnRelation.otherPawn)
                                    select t).Count() > 0;
            }
            else
            {
                partnerBedInRoom = false;
            }
            if (directPawnRelation != null && p.ownership.OwnedBed != null && RelationshipUtility.IsPolygamist(p) && multiplePartners && partnerBedInRoom)
            {
                return(ThoughtState.Inactive);
            }
            if (p.ownership.OwnedBed != null && p.ownership.OwnedBed == directPawnRelation.otherPawn.ownership.OwnedBed)
            {
                return(ThoughtState.Inactive);
            }
            if (p.relations.OpinionOf(directPawnRelation.otherPawn) <= 0)
            {
                return(ThoughtState.Inactive);
            }
            return(ThoughtState.ActiveDefault);
        }