public static bool IsPositionSafeForE(AIHeroClient target, LeagueSharp.Common.Spell spell) { var predPos = spell.GetPrediction(target).UnitPosition.LSTo2D(); var myPos = ObjectManager.Player.Position.LSTo2D(); var newPos = (target.Position.LSTo2D() - myPos); newPos.Normalize(); var checkPos = predPos + newPos * (spell.Range - Vector2.Distance(predPos, myPos)); Obj_Turret closestTower = null; foreach (var tower in ObjectManager.Get <Obj_Turret>() .Where(tower => tower.IsValid && !tower.IsDead && Math.Abs(tower.Health) > float.Epsilon) .Where(tower => Vector3.Distance(tower.Position, ObjectManager.Player.Position) < 1450)) { closestTower = tower; } if (closestTower == null) { return(true); } if (Vector2.Distance(closestTower.Position.LSTo2D(), checkPos) <= 910) { return(false); } return(true); }
public static bool IsPositionSafe(Obj_AI_Hero target, Spell spell) // use underTurret and .Extend for this please { var predPos = spell.GetPrediction(target).UnitPosition.To2D(); var myPos = ObjectManager.Player.Position.To2D(); var newPos = (target.Position.To2D() - myPos); newPos.Normalize(); var checkPos = predPos + newPos * (spell.Range - Vector2.Distance(predPos, myPos)); Obj_Turret closestTower = null; foreach ( var tower in ObjectManager.Get <Obj_Turret>().Where(tower => tower.IsValid && !tower.IsDead && Math.Abs(tower.Health) > float.Epsilon)) { if (Vector3.Distance(tower.Position, ObjectManager.Player.Position) < 1450) { closestTower = tower; } } if (closestTower == null) { return(true); } if (Vector2.Distance(closestTower.Position.To2D(), checkPos) <= 910) { return(false); } return(true); }
public static bool IsPositionSafe(Obj_AI_Base vTarget, Spell vSpell) { Vector2 predPos = vSpell.GetPrediction(vTarget).CastPosition.To2D(); Vector2 myPos = ObjectManager.Player.Position.To2D(); Vector2 newPos = (vTarget.Position.To2D() - myPos); newPos.Normalize(); Vector2 checkPos = predPos + newPos * (vSpell.Range - Vector2.Distance(predPos, myPos)); Obj_Turret closestTower = null; foreach ( Obj_Turret tower in ObjectManager.Get <Obj_Turret>() .Where(tower => tower.IsValid && !tower.IsDead && tower.Health != 0 && tower.IsEnemy)) { if (Vector3.Distance(tower.Position, ObjectManager.Player.Position) < 1450) { closestTower = tower; } } if (closestTower == null) { return(true); } if (Vector2.Distance(closestTower.Position.To2D(), checkPos) <= 910) { return(false); } return(true); }
public static bool isPositionSafe(Obj_AI_Hero target, Spell spell) { // if (Vector3.Distance(ObjectManager.Player.Position, target.Position) <= E.Range && Vector3.Distance(ObjectManager.Player.Position, target.Position) > 0) // { Vector2 predPos = spell.GetPrediction(target).Position.To2D(); Vector2 myPos = ObjectManager.Player.Position.To2D(); Vector2 newPos = (target.Position.To2D() - myPos); newPos.Normalize(); Vector2 checkPos = predPos + newPos * (spell.Range - Vector2.Distance(predPos, myPos)); Obj_Turret closestTower = null; foreach (var tower in ObjectManager.Get <Obj_Turret>().Where(tower => tower.IsValid && !tower.IsDead && tower.Health != 0)) { if (Vector3.Distance(tower.Position, ObjectManager.Player.Position) < 1450) { closestTower = tower; } } if (closestTower == null) { // No towers in range return(true); } if (Vector2.Distance(closestTower.Position.To2D(), checkPos) <= 910) { // Within tower range return(false); } //} return(true); }