public static bool RelationshipCanEvolveTo(Pawn pawn, Pawn other, PawnRelationDef newRelation)
        {
            List <ThoughtCondition> conditions;

            try
            {
                conditions = newRelation.GetModExtension <RomanticRelationExtension>().conditions;
            }
            catch (NullReferenceException)
            {
                return(false);
            }
            if (conditions.NullOrEmpty())
            {
                return(false);
            }
            if (!AttractionUtility.IsAgeAppropriate(pawn) || !AttractionUtility.IsAgeAppropriate(other))
            {
                try
                {
                    if (newRelation.GetModExtension <RomanticRelationExtension>().doesLovin)
                    {
                        return(false);
                    }
                }
                catch (NullReferenceException)
                {
                    return(false);
                }
            }
            for (int i = 0; i < conditions.Count(); i++)
            {
                Log.Message(conditions[i].thought.defName + ": " + pawn.needs.mood.thoughts.memories.NumMemoriesOfDef(conditions[i].thought).ToString() + " " + other.needs.mood.thoughts.memories.NumMemoriesOfDef(conditions[i].thought) + " needs " + conditions[i].numberRequired.ToString());

                if (GRThoughtUtility.NumOfMemoriesOfDefWhereOtherPawnIs(pawn, other, conditions[i].thought) < conditions[i].numberRequired || GRThoughtUtility.NumOfMemoriesOfDefWhereOtherPawnIs(other, pawn, conditions[i].thought) < conditions[i].numberRequired)
                {
                    return(false);
                }
            }
            return(true);
        }