// Count up Demon Hunter sentries
float xSentryRange = 60f;
float xSentryRangeSqr = xSentryRange*xSentryRange;
TimeSpan SentryLifeTime = TimeSpan.FromSeconds(30);
int SentryMaxCount = 2;
if (Passives.DemonHunter.CustomEngineering.IsActive)
{
SentryLifeTime = TimeSpan.FromSeconds(60);
SentryMaxCount = 3;
}
int PlayerSentriesAtRange = SpellHistory.HistoryQueue
.Where(p => p.Power.SNOPower == SNOPower.DemonHunter_Sentry &&
p.Power.TargetPosition.Distance2DSqr(Player.Position) < xSentryRangeSqr)
.OrderBy(s => s.TimeSinceUse < SentryLifeTime).Take(SentryMaxCount).Count();