public override void Execute() { if (Orbwalker.IsAutoAttacking) { return; } var canUseQ = FarmMenu.GetCheckBoxValue(Q, "lane"); var canUseE = FarmMenu.GetCheckBoxValue(E, "lane"); //Normal Laneclear(safer) if (Me.CountEnemyChampionsInRange(1200) >= 1) { if (!Me.Dashing() && !HasQ3()) { if (canUseQ) { var minionQ = EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Q.Range)).OrderBy(m => m.Health) .FirstOrDefault( m => Prediction.Health.GetPrediction(m, Q.CastDelay + (E.IsReady() ? EDelay : 0) + Game.Ping) <= m.GetQDamage() + (E.IsReady() ? m.GetEDamage() : 0f)); if (!HasQ3()) { Q.SmartCast(minionQ); } } if (canUseE) { var minionE = EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderBy(m => m.Health) .FirstOrDefault( m => Prediction.Health.GetPrediction(m, EDelay + Game.Ping) <= m.GetEDamage()); minionE.CastE(); } } } //Faster Laneclear(faster, not safe) else { if (!Me.Dashing()) { if (canUseQ) { var minionQ = EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Q.Range)).OrderBy(m => m.Health) .FirstOrDefault( m => Prediction.Health.GetPrediction(m, Q.CastDelay + (E.IsReady() ? EDelay : 0) + Game.Ping) <= m.GetQDamage() + (E.IsReady() && m.IsSafeToE() ? m.GetEDamage() : 0f)); Q.SmartCast(minionQ); } if (canUseE) { var minionE = EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderByDescending( m => m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange)).ThenBy(m => m.Health) .FirstOrDefault( m => Prediction.Health.GetPrediction(m, EDelay + Game.Ping) <= m.GetEDamage()); minionE.CastE(); } } if (Me.CountAllyMinionsInRange(700) >= 5) { if (canUseE) { //Fast var minionEKinda = EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderByDescending( m => m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange)).ThenBy(m => m.Health) .FirstOrDefault( m => m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange) >= 1 && Prediction.Health.GetPrediction(m, +EDelay + Game.Ping) <= m.GetEDamage()); minionEKinda.CastE(); } if (canUseQ) { //Fast var minionQFast = EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Me.Dashing() ? QCircleRange : (int)Q.Range)).OrderBy(m => m.Health) .FirstOrDefault( m => DashManager.GetPlayerPosition().CountEnemyMinionsInRange(QCircleRange) >= 1); Q.SmartCast(minionQFast); } } if (Me.CountAllyMinionsInRange(700) <= 1) { if (canUseE) { //Fast var minionEFast = EntityCache.EnemyMinions.Where(m => m.IsValidTarget(E.Range)).OrderByDescending( m => m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange)).ThenBy(m => m.Health) .FirstOrDefault( m => m.GetPosAfterE().CountEnemyMinionsInRange(QCircleRange) >= 1); minionEFast.CastE(); } if (canUseQ) { var minionQFast = EntityCache.EnemyMinions.Where(m => m.IsValidTarget(Me.Dashing() ? QCircleRange : (int)Q.Range)).OrderBy(m => m.Health) .FirstOrDefault( m => DashManager.GetPlayerPosition().CountEnemyMinionsInRange(QCircleRange) >= 1); Q.SmartCast(minionQFast); //Fast } } } }
public override void Execute() { //SpellManager.CastOPCombo(1); if (Orbwalker.IsAutoAttacking) { return; } var target = TargetSelector.GetTarget(2000, DamageType.Physical); if (target == null) { return; } if (ComboMenu.GetCheckBoxValue(Q, "combo")) { if (!Me.Dashing()) { Q.CastMinimumHitchance(target, HasQ3() ? 71 : 51); } else { if (DashManager.GetPlayerPosition().CountEnemiesInRange(QCircleRange) >= 1) { Console.WriteLine("Q Dash COmbo"); Q.Cast(); } if (!HasQ3() && DashManager.GetPlayerPosition().CountEnemyMinionsInRange(QCircleRange) >= 1) { Console.WriteLine("Q Dash COmbo"); Q.Cast(); } } } if (ComboMenu.GetCheckBoxValue(E, "combo")) { if (!target.IsValidTarget(Me.GetAutoAttackRange() - 20) && E.IsReady()) { var targetToE = target.GetBestEnemyToE(); targetToE?.CastE(); } if (!target.IsInRange(Me, Me.GetAutoAttackRange() + 220) && target.IsValidTarget(E.Range) && E.IsReady()) { target.CastE(); } } #region Ult if (Me.CountEnemiesInRange(1000) >= 2) { //TeamFight if (ComboMenu.GetCheckBoxValue(R, "combo")) { var targetR = GetBestTargetToR(); if (targetR.Hero == null || targetR.EnemyCount < ComboMenu.GetSliderValue("rCount")) { return; } if (targetR.Time <= 90 + Game.Ping) { R.Cast(targetR.Hero); } } } else { //1v1 if (ComboMenu.GetCheckBoxValue("rSmart")) { var targetR = GetBestTargetToR(); if (targetR.Hero == null) { return; } if (Prediction.Health.GetPrediction(targetR.Hero, 400) >= Me.GetAutoAttackDamage(targetR.Hero) + targetR.Hero.GetQDamage() + targetR.Hero.GetEDamage() && targetR.Hero.IsInRange(Me, 550)) { return; } if (targetR.Time <= 90 + Game.Ping) { R.Cast(targetR.Hero); } } } #endregion Ult }