public override bool CanStackWith(Thing other) { if (other is GenomeSequence otherGenome && sourceName == otherGenome.sourceName && pawnKindDef == otherGenome.pawnKindDef && gender == otherGenome.gender && bodyType == otherGenome.bodyType && crownType == otherGenome.crownType && hairColor == otherGenome.hairColor && skinMelanin == otherGenome.skinMelanin && isAlien == otherGenome.isAlien && skinColor == otherGenome.skinColor && skinColorSecond == otherGenome.skinColorSecond && hairColorSecond == otherGenome.hairColorSecond && crownTypeAlien == otherGenome.crownTypeAlien && (hair != null && otherGenome.hair != null && hair.ToString() == otherGenome.hair.ToString() || hair == null && otherGenome.hair == null) && traits.SequenceEqual(otherGenome.traits) && (hediffInfos != null && otherGenome.hediffInfos != null && hediffInfos.OrderBy(h => h.def.LabelCap).SequenceEqual(otherGenome.hediffInfos.OrderBy(h => h.def.LabelCap)) || hediffInfos == null && otherGenome.hediffInfos == null)) { return(base.CanStackWith(other)); } return(false); }