public static AIHeroClient GetTarget(Vector3 fromPosition)
{
if (Variables.UnderEnemyTower((Vector2)Variables._Player.ServerPosition))
{
return null;
}
var pushDistance = Manager.MenuManager.CondemnPushDistance;
foreach (var target in EntityManager.Heroes.Enemies.Where(h => h.IsValidTarget(Manager.SpellManager.E.Range) && !h.HasBuffOfType(BuffType.SpellShield) && !h.HasBuffOfType(BuffType.SpellImmunity)))
{
var targetPosition = target.ServerPosition;
var finalPosition = targetPosition.Extend(fromPosition, -pushDistance);
var numberOfChecks = (float)Math.Ceiling(pushDistance / 30f);
if (Manager.MenuManager.OnlyStunCurrentTarget && TargetSelector.GetTarget((int)Variables._Player.GetAutoAttackRange(), DamageType.Physical) != null &&
!target.NetworkId.Equals(TargetSelector.GetTarget((int)Variables._Player.GetAutoAttackRange(), DamageType.Physical).NetworkId))
{
continue;
}
for (var i = 1; i <= 30; i++)
{
var v3 = (targetPosition - fromPosition).Normalized();
var extendedPosition = targetPosition + v3 * (numberOfChecks * i);
var j4Flag = Manager.MenuManager.J4Flag && (Variables.IsJ4Flag(extendedPosition, target));
//var underTurret = MenuExtensions.GetItemValue<bool>("dz191.vhr.misc.condemn.condemnturret") && (Helpers.UnderAllyTurret_Ex(finalPosition) || Helpers.IsFountain(finalPosition));
var collFlags = NavMesh.GetCollisionFlags(extendedPosition);
if ((collFlags.HasFlag(CollisionFlags.Wall) || collFlags.HasFlag(CollisionFlags.Building) || j4Flag) && (target.Path.Count() < 2) && !target.IsDashing())
{
if (target.Health + 10 <=
Variables._Player.GetAutoAttackDamage(target) *
Manager.MenuManager.CondemnBlock)
{
return null;
}
return target;
}
}
}
return null;
}