private void LogicQ() { var t = TargetSelector.GetTarget(Q3.Range, TargetSelector.DamageType.Magical); if (t.IsValidTarget()) { if (Program.Combo && Player.Mana > RMANA + QMANA + EMANA) { CastQ(t); } else if (Program.Harass && Config.Item("harassQ", true).GetValue <bool>() && Config.Item("Harass" + t.ChampionName).GetValue <bool>() && Player.ManaPercent > Config.Item("QHarassMana", true).GetValue <Slider>().Value&& OktwCommon.CanHarras()) { CastQ(t); } else if (OktwCommon.GetKsDamage(t, Q1) > t.Health) { CastQ(t); } else if (Player.Mana > RMANA + QMANA) { foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q3.Range) && !OktwCommon.CanMove(enemy))) { CastQ(t); } } } if (Player.IsWindingUp) { return; } if (!Program.None && !Program.Combo) { var allMinions = Cache.GetMinions(Player.ServerPosition, Q1.Range); if (Config.Item("farmQout", true).GetValue <bool>() && Player.Mana > RMANA + QMANA + EMANA + WMANA) { foreach (var minion in allMinions.Where(minion => minion.IsValidTarget(Q1.Range) && (!Orbwalker.InAutoAttackRange(minion) || (!minion.UnderTurret(true) && minion.UnderTurret())))) { var hpPred = SebbyLib.HealthPrediction.GetHealthPrediction(minion, 600); if (hpPred < Q1.GetDamage(minion) && hpPred > minion.Health - hpPred * 2) { Q1.Cast(minion); return; } } } if (FarmSpells && Config.Item("farmQ", true).GetValue <bool>()) { var farmPos = Q1.GetCircularFarmLocation(allMinions, Q1.Width); if (farmPos.MinionsHit >= FarmMinions) { Q1.Cast(farmPos.Position); } } } }