using RimWorld;
using System.Linq;
using Verse;
namespace RJWSexperience.Ideology
{
public static class RelationHelpers
{
///
/// Get degree of blood relation between two pawns
///
public static BloodRelationDegree GetBloodRelationDegree(Pawn pawn, Pawn partner)
{
PawnRelationDef closestBloodRelation = pawn
.GetRelations(partner)
?.Where(def => def.familyByBloodRelation)
?.OrderByDescending(def => def.importance)
?.FirstOrFallback();
if (closestBloodRelation == null)
{
return BloodRelationDegree.NotRelated;
}
return GetBloodRelationDegree(closestBloodRelation);
}
///
/// Get degree of blood relation for a relationDef
///
public static BloodRelationDegree GetBloodRelationDegree(PawnRelationDef relationDef)
{
if (!relationDef.familyByBloodRelation)
{
return BloodRelationDegree.NotRelated;
}
else if (relationDef.importance <= PawnRelationDefOf.Cousin.importance)
{
return BloodRelationDegree.FarRelative;
}
else
{
return BloodRelationDegree.CloseRelative;
}
}
}
}