private int ancestorGenerations(int g = 0)
{
// to detect loop (if a creature is falsely listed as its own ancestor)
if (g > 99)
return 0;
int mgen = 0, fgen = 0;
if (mother != null)
mgen = mother.ancestorGenerations(g + 1) + 1;
if (father != null)
fgen = father.ancestorGenerations(g + 1) + 1;
if (isBred && mgen == 0 && fgen == 0)
return 1;
if (mgen > fgen)
return mgen;
else
return fgen;
}