public static void ECheck() { if (!Variables.spells[SpellSlot.E].IsReady()) { return; } foreach (var target in GameObjects.EnemyHeroes.Where(h => !h.IsInvulnerable && !TargetSelector.IsInvulnerable(h, TargetSelector.DamageType.Physical, false) && h.IsValidTarget())) { var pushDistance = MenuExtensions.GetItemValue<Slider>("iseriesr.vayne.misc.condemn.pushdist").Value; var accuracy = MenuExtensions.GetItemValue<Slider>("iseriesr.vayne.misc.condemn.acc").Value / 100f; var targetPosition = Variables.spells[SpellSlot.E].GetPrediction(target).UnitPosition; var finalPosition = targetPosition.Extend(ObjectManager.Player.ServerPosition, -pushDistance); var finalPosition_ex = target.ServerPosition.Extend(ObjectManager.Player.ServerPosition, -pushDistance); var condemnRectangle = new iSRPolygon(iSRPolygon.Rectangle(targetPosition.To2D(), finalPosition.To2D(), target.BoundingRadius)); var condemnRectangle_ex = new iSRPolygon(iSRPolygon.Rectangle(target.ServerPosition.To2D(), finalPosition_ex.To2D(), target.BoundingRadius)); if (IsBothNearWall(target)) { return; } if (condemnRectangle.Points.Count(point => NavMesh.GetCollisionFlags(point.X, point.Y).HasFlag(CollisionFlags.Wall)) >= condemnRectangle.Points.Count() * accuracy && condemnRectangle_ex.Points.Count(point => NavMesh.GetCollisionFlags(point.X, point.Y).HasFlag(CollisionFlags.Wall)) >= condemnRectangle_ex.Points.Count() * accuracy) { Variables.spells[SpellSlot.E].Cast(target); return; } } }
public static void ECheck(Vector3 from, bool castQFirst = false) { if (!Variables.spells[SpellSlot.E].IsReady()) { return; } var pushDistance = MenuExtensions.GetItemValue<Slider>("iseriesr.vayne.misc.condemn.pushdist").Value; var accuracy = MenuExtensions.GetItemValue<Slider>("iseriesr.vayne.misc.condemn.acc").Value / 100f; if (pushDistance >= 410) { var PushEx = pushDistance; pushDistance -= (10 + (PushEx - 410) / 2); } foreach (var target in GameObjects.EnemyHeroes.Where(h => !h.IsInvulnerable && !TargetSelector.IsInvulnerable(h, TargetSelector.DamageType.Physical, false) && h.IsValidTarget())) { var targetPosition = Variables.spells[SpellSlot.E].GetPrediction(target).UnitPosition; var finalPosition = targetPosition.Extend(from, -pushDistance); var finalPosition_ex = target.ServerPosition.Extend(from, -pushDistance); var condemnRectangle = new iSRPolygon(iSRPolygon.Rectangle(targetPosition.To2D(), finalPosition.To2D(), target.BoundingRadius)); var condemnRectangle_ex = new iSRPolygon(iSRPolygon.Rectangle(target.ServerPosition.To2D(), finalPosition_ex.To2D(), target.BoundingRadius)); if (IsBothNearWall(target)) { return; } if (condemnRectangle.Points.Count(point => NavMesh.GetCollisionFlags(point.X, point.Y).HasFlag(CollisionFlags.Wall)) >= condemnRectangle.Points.Count() * accuracy && condemnRectangle_ex.Points.Count(point => NavMesh.GetCollisionFlags(point.X, point.Y).HasFlag(CollisionFlags.Wall)) >= condemnRectangle_ex.Points.Count() * accuracy) { if (castQFirst && VayneQ.IsSafe(from)) { Variables.spells[SpellSlot.Q].Cast(from); LeagueSharp.Common.Utility.DelayAction.Add((int)(250 + Game.Ping / 2f + 125), () => { WardBush(from, targetPosition.Extend(from, -pushDistance)); Variables.spells[SpellSlot.E].Cast(target); }); return; } WardBush(from, targetPosition.Extend(from, -pushDistance)); Variables.spells[SpellSlot.E].Cast(target); return; } } }
public static void ExecuteLogic() { if (Variables.spells[SpellSlot.E].IsEnabledAndReady()) { var firstTarget = TargetSelector.GetTarget(Variables.spells[SpellSlot.E].Range * 0.70f, TargetSelector.DamageType.Magical); if (firstTarget.IsValidTarget()) { var polygon = new iSRPolygon(iSRPolygon.Rectangle( ObjectManager.Player.ServerPosition.To2D(), firstTarget.ServerPosition.To2D(), 100f)); if (HeroManager.Enemies.Count(m => polygon.Contains(m.ServerPosition.To2D())) >= 2) { Variables.spells[SpellSlot.E].Cast(firstTarget.ServerPosition); } } } }