public void RetrieveFactors(Pawn other, out List <AttractionFactorDef> veryLowFactors, out List <AttractionFactorDef> lowFactors, out List <AttractionFactorDef> highFactors, out List <AttractionFactorDef> veryHighFactors, bool romantic = false, bool chanceOnly = false)
        {
            AttractionRecord record = PullRecord(other);

            record.RetrieveFactors(out veryLowFactors, out lowFactors, out highFactors, out veryHighFactors);
            if (!romantic)
            {
                veryHighFactors.RemoveAll(x => x.category.onlyForRomance);
                highFactors.RemoveAll(x => x.category.onlyForRomance);
                lowFactors.RemoveAll(x => x.category.onlyForRomance);
                veryLowFactors.RemoveAll(x => x.category.onlyForRomance);
            }
            if (!chanceOnly)
            {
                veryHighFactors.RemoveAll(x => x.category.chanceOnly);
                highFactors.RemoveAll(x => x.category.chanceOnly);
                lowFactors.RemoveAll(x => x.category.chanceOnly);
                veryLowFactors.RemoveAll(x => x.category.chanceOnly);
            }
        }
        public float RetrieveAttractionForCategory(Pawn other, AttractionFactorCategoryDef category)
        {
            AttractionRecord record = PullRecord(other);

            return(record.RetrieveAttractionForCategory(category));
        }
        public float RetrieveAttraction(Pawn other, bool romantic = false, bool chanceOnly = false)
        {
            AttractionRecord record = PullRecord(other);

            return(record.RetrieveAttraction(romantic, chanceOnly));
        }