public FactionType GetRootUnitFaction()
{
Unit unit = this;
while( true )
{
Intellect objIntellect = unit.Intellect;
if( objIntellect != null && objIntellect.Faction != null )
return objIntellect.Faction;
Unit obj = unit.AttachedMapObjectParent as Unit;
if( obj == null )
return null;
unit = obj;
}
}