public static AIHeroClient GetTarget(Vector3 fromPosition)
{
foreach (var target in EntityManager.Heroes.Enemies.Where(h => h.IsValidTarget(Manager.SpellManager.E.Range)))
{
var pushDistance = Manager.MenuManager.CondemnPushDistance;
var targetPosition = Manager.SpellManager.E2.GetPrediction(target).UnitPosition;
var finalPosition = targetPosition.Extend(fromPosition, -pushDistance);
var finalPosition2 = targetPosition.Extend(fromPosition, -(pushDistance / 2f));
var collFlags = NavMesh.GetCollisionFlags(finalPosition);
var collFlags2 = NavMesh.GetCollisionFlags(finalPosition2);
var j4Flag = Manager.MenuManager.J4Flag && (Variables.IsJ4Flag(finalPosition.To3D(), target) || Variables.IsJ4Flag(finalPosition.To3D(), target));
if (collFlags.HasFlag(CollisionFlags.Wall) || collFlags.HasFlag(CollisionFlags.Building) || collFlags2.HasFlag(CollisionFlags.Wall) || collFlags2.HasFlag(CollisionFlags.Building) || j4Flag)
{
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))
{
return null;
}
if (target.Health + 10 <=
Variables._Player.GetAutoAttackDamage(target) *
Manager.MenuManager.CondemnBlock)
{
return null;
}
return target;
}
}
return null;
}