//this causes us the long execution. This is the only way I can think of getting the chasing enemy elf private Elf GetChasingEnemyElf(Elf myElf) { Elf closestEnemyElf = (Elf)Constants.GameCaching.GetEnemyElvesInArea(new Circle(myElf, maxChasingDistance)).ToArray().GetClosest(myElf); if (closestEnemyElf != null && closestEnemyElf.DistanceF(myElf) <= maxChasingDistance) { if (closestEnemyElf.CurrentHealth >= myElf.CurrentHealth && closestEnemyElf.IsHeadingTowards(myElf)) { return(closestEnemyElf); } } return(null); }