public static void stackQ() { if (!Q.IsReady() || isQEmpovered() || !YasuoSharp.flee["fleeStack"].Cast <CheckBox>().CurrentValue)//fleeStack { return; } var minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range + 50); if (!isDashigPro) { List <Vector2> minionPs = YasMath.GetCastMinionsPredictedPositions(minions, getNewQSpeed() * 0.3f, 30f, float.MaxValue, Player.ServerPosition, 465, false, SkillshotType.SkillshotLine); Vector2 clos = LeagueSharp.Common.Geometry.Closest(Player.ServerPosition.LSTo2D(), minionPs); if (Player.LSDistance(clos) < 475) { Q.Cast(clos, false); return; } } else { if (minions.Count(min => !min.IsDead && min.IsValid && min.LSDistance(getDashEndPos()) < QCir.Range) > 1) { QCir.Cast(Player.Position, false); return; } } }
public static bool missleWillHit(MissileClient missle) { if (missle.Target.IsMe || YasMath.interCir(missle.StartPosition.LSTo2D(), missle.EndPosition.LSTo2D(), Player.Position.LSTo2D(), missle.SData.LineWidth + Player.BoundingRadius)) { if (missle.StartPosition.LSDistance(Player.Position) < (missle.StartPosition.LSDistance(missle.EndPosition))) { return(true); } } return(false); }
public static List <Obj_AI_Base> canGoThrough(YasDash dash) { List <Obj_AI_Base> jumps = ObjectManager.Get <Obj_AI_Base>().Where(enemy => enemyIsJumpable(enemy) && enemy.LSIsValidTarget(550, true, dash.to)).ToList(); List <Obj_AI_Base> canBejump = new List <Obj_AI_Base>(); foreach (var jumpe in jumps) { if (YasMath.interCir(dash.from.LSTo2D(), dash.to.LSTo2D(), jumpe.Position.LSTo2D(), 35) /*&& jumpe.LSDistance(dash.to) < Player.LSDistance(dash.to)*/) { canBejump.Add(jumpe); } } return(canBejump.OrderBy(jum => Player.LSDistance(jum)).ToList()); }
public static bool wontHitOnDash(Skillshot ss, Obj_AI_Base jumpOn, Skillshot skillShot, Vector2 dashDir) { float currentDashSpeed = 700 + Player.MoveSpeed;//At least has to be like this //Get intersection point Vector2 intersectionPoint = YasMath.LineIntersectionPoint(Player.Position.To2D(), V2E(Player.Position, jumpOn.Position, 475), ss.Start, ss.End); //Time when yasuo will be in intersection point float arrivingTime = Vector2.Distance(Player.Position.To2D(), intersectionPoint) / currentDashSpeed; //Estimated skillshot position Vector2 skillshotPosition = ss.GetMissilePosition((int)(arrivingTime * 1000)); if (Vector2.DistanceSquared(skillshotPosition, intersectionPoint) < (ss.SpellData.Radius + Player.BoundingRadius) && !YasMath.willColide(skillShot, Player.Position.To2D(), 700f + Player.MoveSpeed, dashDir, Player.BoundingRadius + skillShot.SpellData.Radius)) { return(false); } return(true); }
public static bool goesThroughWall(Vector3 vec1, Vector3 vec2) { if (wall.endtime < Game.Time || wall.pointL == null || wall.pointL == null) { return(false); } Vector2 inter = YasMath.LineIntersectionPoint(vec1.LSTo2D(), vec2.LSTo2D(), wall.pointL.Position.LSTo2D(), wall.pointR.Position.LSTo2D()); float wallW = (300 + 50 * W.Level); if (wall.pointL.Position.LSTo2D().LSDistance(inter) > wallW || wall.pointR.Position.LSTo2D().LSDistance(inter) > wallW) { return(false); } var dist = vec1.LSDistance(vec2); if (vec1.LSTo2D().LSDistance(inter) + vec2.LSTo2D().LSDistance(inter) - 30 > dist) { return(false); } return(true); }
public static void doLaneClear(AIHeroClient target) { List <Obj_AI_Base> minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, 1000, MinionTypes.All, MinionTeam.NotAlly); if (YasuoSharp.laneclear["useElc"].Cast <CheckBox>().CurrentValue&& E.IsReady()) { foreach (var minion in minions.Where(minion => minion.LSIsValidTarget(E.Range) && enemyIsJumpable(minion))) { if (minion.Health < Player.LSGetSpellDamage(minion, E.Slot) || Q.IsReady() && minion.Health < (Player.LSGetSpellDamage(minion, E.Slot) + Player.LSGetSpellDamage(minion, Q.Slot))) { if (useENormal(minion)) { return; } } } } if (Q.IsReady() && YasuoSharp.laneclear["useQlc"].Cast <CheckBox>().CurrentValue) { if (isQEmpovered() && !(target != null && Player.LSDistance(target) < 1050)) { if (canCastFarQ()) { List <Vector2> minionPs = YasMath.GetCastMinionsPredictedPositions(minions, getNewQSpeed(), 50f, 1200f, Player.ServerPosition, 900f, false, SkillshotType.SkillshotLine); MinionManager.FarmLocation farm = QEmp.GetLineFarmLocation(minionPs); //MinionManager.GetBestLineFarmLocation(minionPs, 50f, 900f); if (farm.MinionsHit >= YasuoSharp.laneclear["useEmpQHit"].Cast <Slider>().CurrentValue) { //Console.WriteLine("Cast q simp Emp"); QEmp.Cast(farm.Position, false); return; } } else { if (minions.Count(min => min.IsValid && !min.IsDead && min.LSDistance(getDashEndPos()) < QCir.Range) >= YasuoSharp.laneclear["useEmpQHit"].Cast <Slider>().CurrentValue) { QCir.Cast(Player.Position, false); Console.WriteLine("Cast q circ simp"); } } } else { if (!isDashigPro) { List <Vector2> minionPs = YasMath.GetCastMinionsPredictedPositions(minions, getNewQSpeed() * 0.3f, 30f, float.MaxValue, Player.ServerPosition, 465, false, SkillshotType.SkillshotLine); Vector2 clos = LeagueSharp.Common.Geometry.Closest(Player.ServerPosition.LSTo2D(), minionPs); if (Player.LSDistance(clos) < 475) { Console.WriteLine("Cast q simp"); Q.Cast(clos, false); return; } } else { if (minions.Count(min => !min.IsDead && min.IsValid && min.LSDistance(getDashEndPos()) < QCir.Range) > 1) { QCir.Cast(Player.Position, false); Console.WriteLine("Cast q circ simp"); return; } } } } }