private void Harass() { if (ManaManager.HasEnoughMana(Menu.GetSlider("HarassMana"))) { var target = TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical); if (target.Check(QExtend.Range)) { if (Menu.GetBool("HarassE") && E.IsReady() && target.IsValidTarget(E.Range)) { SpellManager.PredCast(E, target, true); } if (Menu.GetBool("HarassW") && W.IsReady()) { if (HaveEBuff(target) && Q.IsReady()) { W.Cast(); } } if (Menu.GetBool("HarassQ") && Q.IsReady() && target.IsValidTarget(QExtend.Range)) { if (!HaveEBuff(target) && target.IsValidTarget(Q.Range)) { SpellManager.PredCast(Q, target); } else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target)) { QExtend.Cast(target); } } } } }
private void CastQCannon(Obj_AI_Hero target, bool useE) { var gateDis = Menu.Item("gatePlace", true).GetValue <Slider>().Value; var tarPred = QExtend.GetPrediction(target, true); if (tarPred.Hitchance >= HitChance.VeryHigh && Qcd == 0 && Ecd == 0 && useE) { var gateVector = Player.Position + Vector3.Normalize(target.ServerPosition - Player.Position) * gateDis; if (Player.Distance(tarPred.CastPosition) < QExtend.Range + 100) { if (E.IsReady() && QExtend.IsReady()) { E.Cast(gateVector); QExtend.Cast(tarPred.CastPosition); return; } } } if ((Menu.Item("UseQAlways", true).GetValue <bool>() || !useE) && Qcd == 0 && Q.GetPrediction(target, true).Hitchance >= HitChance.VeryHigh && Player.Distance(target.ServerPosition) <= Q.Range && Q.IsReady() && Ecd != 0) { Q.Cast(target); } }
private void CastQ(Obj_AI_Hero target) { if (soilderCount() < 1) { return; } var slaves = xSLxOrbwalker.Soilders.ToList(); foreach (var slave in slaves) { if (target != null && Player.Distance(target) < QExtend.Range && ShouldQ(target, slave)) { var qPred = GetP(slave.Position, QExtend, target, true); if (Q.IsReady() && Player.Distance(target) < 800 && qPred.Hitchance >= getQHitchance()) { Q.Cast(qPred.CastPosition, packets()); return; } if (Q.IsReady() && Player.Distance(target) > 800 && qPred.Hitchance >= getQHitchance() && menu.Item("qExtend", true).GetValue <bool>()) { var qVector = Player.ServerPosition + Vector3.Normalize(qPred.CastPosition - Player.ServerPosition) * 800; //Game.PrintChat("QHarass"); QExtend.Cast(qVector, packets()); return; } } } }
private static void Harass() { if (HarassOption.HasEnouguMana) { var target = TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical); if (target.IsValidTarget(QExtend.Range)) { if (HarassOption.UseE && E.IsReady() && target.IsValidTarget(E.Range)) { SpellManager.PredCast(E, target, true); } if (HarassOption.UseW && W.IsReady()) { if (HaveEBuff(target) && Q.IsReady()) { W.Cast(); } } if (HarassOption.UseQ && Q.IsReady() && target.IsValidTarget(QExtend.Range)) { if (!HaveEBuff(target) && target.IsValidTarget(Q.Range)) { SpellManager.PredCast(Q, target); } else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target)) { QExtend.Cast(target, true); } } } } }
private void CastQ(Obj_AI_Hero target) { if (soilderCount() < 1) { return; } var slaves = (from obj in ObjectManager.Get <Obj_AI_Base>() where obj.Name == "AzirSoldier" && obj.IsAlly && target.Distance(obj.ServerPosition) < 2000 select obj).ToList(); foreach (var slave in slaves) { if (target != null && Player.Distance(target) < QExtend.Range && ShouldQ(target, slave)) { var qPred = GetP(slave.ServerPosition, QExtend, target, true); if (Q.IsReady() && Player.Distance(target) < 800 && qPred.Hitchance >= getQHitchance()) { Q.Cast(qPred.CastPosition, packets()); return; } if (Q.IsReady() && Player.Distance(target) > 800 && qPred.Hitchance >= getQHitchance() && menu.Item("qExtend").GetValue <bool>()) { var qVector = Player.ServerPosition + Vector3.Normalize(qPred.CastPosition - Player.ServerPosition) * 800; //Game.PrintChat("QHarass"); QExtend.Cast(qVector, packets()); return; } } } }
private void CastWq(Obj_AI_Hero target) { if (Player.Distance(target) < 1150 && Player.Distance(target) > 450) { if (W.IsReady() && (Q.IsReady() || qSpell.State == SpellState.Surpressed)) { Vector3 wVec = Player.ServerPosition + Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * 450; var qPred = GetP(wVec, QExtend, target, true); if (qPred.Hitchance >= getQHitchance()) { W.Cast(wVec); QExtend.Cast(qPred.CastPosition, packets()); } } } }
private void CastQe(Obj_AI_Hero target) { if (soilderCount() > 0) { if ((Q.IsReady() || QSpell.State == SpellState.Surpressed) && E.IsReady()) { var slaves = xSLxOrbwalker.Soilders.ToList(); foreach (var slave in slaves) { if (target != null && Player.Distance(target) < 800) { var qPred = GetP(slave.Position, QExtend, target, true); if (Q.IsReady() && Player.Distance(target) < 800 && qPred.Hitchance >= getQHitchance()) { var vec = target.ServerPosition - Player.ServerPosition; var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75; Q.Cast(castBehind, packets()); E.Cast(slave.Position, packets()); return; } } } } } else if (W.IsReady()) { Vector3 wVec = Player.ServerPosition + Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * W.Range; var qPred = GetP(wVec, QExtend, target, true); if ((Q.IsReady() || QSpell.State == SpellState.Surpressed) && (E.IsReady() || ESpell.State == SpellState.Surpressed) && Player.Distance(target) < 800 && qPred.Hitchance >= getQHitchance()) { var vec = target.ServerPosition - Player.ServerPosition; var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75; W.Cast(wVec); QExtend.Cast(castBehind, packets()); Utility.DelayAction.Add(1, () => E.Cast(getNearestSoilderToEnemy(target).Position, packets())); } } }
private void CastQe(Obj_AI_Hero target) { if (soilderCount() > 0) { if ((Q.IsReady() || qSpell.State == SpellState.Surpressed) && E.IsReady()) { var slaves = (from obj in ObjectManager.Get <Obj_AI_Base>() where obj.Name == "AzirSoldier" && obj.IsAlly && target.Distance(obj.ServerPosition) < 2000 select obj).ToList(); foreach (var slave in slaves) { if (target != null && Player.Distance(target) < 800) { var qPred = GetP(slave.ServerPosition, QExtend, target, true); if (Q.IsReady() && Player.Distance(target) < 800 && qPred.Hitchance >= getQHitchance()) { var vec = target.ServerPosition - Player.ServerPosition; var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75; Q.Cast(castBehind, packets()); E.Cast(slave.ServerPosition, packets()); return; } } } } } else if (W.IsReady()) { Vector3 wVec = Player.ServerPosition + Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * 450; var qPred = GetP(wVec, QExtend, target, true); if ((Q.IsReady() || qSpell.State == SpellState.Surpressed) && (E.IsReady() || eSpell.State == SpellState.Surpressed) && Player.Distance(target) < 800 && qPred.Hitchance >= getQHitchance()) { var vec = target.ServerPosition - Player.ServerPosition; var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75; W.Cast(wVec); QExtend.Cast(castBehind, packets()); Utility.DelayAction.Add(1, () => E.Cast(getNearestSoilderToEnemy(target).ServerPosition, packets())); } } }
private void Harass() { if (Me.UnderTurret(true)) { return; } if (Me.ManaPercent >= Menu.Item("HarassMana", true).GetValue <Slider>().Value) { var target = TargetSelector.GetSelectedTarget() ?? TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical); if (CheckTarget(target, QExtend.Range)) { if (Menu.Item("HarassE", true).GetValue <bool>() && E.IsReady() && target.IsValidTarget(E.Range)) { E.CastTo(target); } if (Menu.Item("HarassW", true).GetValue <bool>() && W.IsReady()) { if (HaveEBuff(target) && Q.IsReady()) { W.Cast(); } } if (Menu.Item("HarassQ", true).GetValue <bool>() && Q.IsReady() && target.IsValidTarget(QExtend.Range)) { if (!HaveEBuff(target) && target.IsValidTarget(Q.Range)) { Q.CastTo(target); } else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target)) { QExtend.Cast(target); } } } } }
private void CastWq(Obj_AI_Hero target) { if (soilderCount() < 1 && menu.Item("qMulti", true).GetValue <KeyBind>().Active) { return; } if (Player.Distance(target) < 1150 && Player.Distance(target) > W.Range) { if (W.IsReady() && (Q.IsReady() || QSpell.State == SpellState.Surpressed)) { Vector3 wVec = Player.ServerPosition + Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * W.Range; var qPred = GetP(wVec, QExtend, target, true); if (qPred.Hitchance >= getQHitchance()) { W.Cast(wVec); QExtend.Cast(qPred.CastPosition, packets()); } } } }
private void Combo() { var target = TargetSelector.GetSelectedTarget() ?? TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical); if (CheckTarget(target, QExtend.Range)) { if (Menu.Item("ComboR", true).GetValue <bool>() && R.IsReady() && target.IsValidTarget(R.Range)) { if (Menu.Item("RSafe", true).GetValue <bool>() && !Me.UnderTurret(true)) { foreach ( var rTarget in HeroManager.Enemies.Where( x => x.IsValidTarget(R.Range) && !Menu.Item("Dontr" + target.ChampionName.ToLower(), true).GetValue <bool>()) .OrderByDescending(x => E.IsReady() ? E.GetDamage(x) : 0 + Q.GetDamage(x) * 2)) { if (rTarget.CountEnemiesInRange(R.Range) <= Menu.Item("RSwap", true).GetValue <Slider>().Value) { if (Menu.Item("RAlly", true).GetValue <bool>() && Me.UnderAllyTurret() && rTarget.DistanceToPlayer() <= 350) { R.CastOnUnit(rTarget); } if (Menu.Item("RKill", true).GetValue <bool>() && target.Health < ComboDamage(target)) { R.CastOnUnit(rTarget); } } } } } if (Menu.Item("ComboE", true).GetValue <bool>() && E.IsReady() && target.IsValidTarget(E.Range) && (Q.IsReady() || target.Health < E.GetDamage(target))) { E.CastTo(target); } if (Menu.Item("ComboW", true).GetValue <bool>() && W.IsReady()) { if (target.DistanceToPlayer() <= Orbwalking.GetRealAutoAttackRange(Me)) { if (Menu.Item("ComboWAlways", true).GetValue <bool>()) { W.Cast(); } if (Me.HealthPercent <= Menu.Item("ComboWLowHp", true).GetValue <Slider>().Value) { W.Cast(); } } if (Menu.Item("ComboWBuff", true).GetValue <bool>() && HaveEBuff(target) && Q.IsReady()) { W.Cast(); } } if (Menu.Item("ComboQ", true).GetValue <bool>() && Q.IsReady() && target.IsValidTarget(QExtend.Range)) { if (!HaveEBuff(target) && target.IsValidTarget(Q.Range)) { if (Menu.Item("ComboFirstE", true).GetValue <bool>() && E.IsReady() && Menu.Item("ComboE", true).GetValue <bool>() && target.IsValidTarget(E.Range)) { E.CastTo(target); } else { Q.CastTo(target); } } else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target)) { QExtend.Cast(target); } } } }
private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args) { if (!sender.IsMe || !Orbwalking.IsAutoAttack(Args.SData.Name)) { return; } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { var target = (Obj_AI_Hero)Args.Target; if (target != null && !target.IsDead && !target.IsZombie) { if (Menu.Item("ComboE", true).GetValue <bool>() && E.IsReady() && (Q.IsReady() || target.Health < E.GetDamage(target))) { E.Cast(target.Position, true); } if (Menu.Item("ComboW", true).GetValue <bool>() && W.IsReady()) { if (target.DistanceToPlayer() <= Orbwalking.GetRealAutoAttackRange(Me)) { if (Menu.Item("ComboWAlways", true).GetValue <bool>()) { W.Cast(); } if (Me.HealthPercent <= Menu.Item("ComboWLowHp", true).GetValue <Slider>().Value) { W.Cast(); } } if (Menu.Item("ComboWBuff", true).GetValue <bool>() && HaveEBuff(target) && Q.IsReady()) { W.Cast(); } } if (Menu.Item("ComboQ", true).GetValue <bool>() && Q.IsReady() && target.IsValidTarget(QExtend.Range)) { if (!HaveEBuff(target) && target.IsValidTarget(Q.Range)) { if (Menu.Item("ComboFirstE", true).GetValue <bool>() && E.IsReady() && Menu.Item("ComboE", true).GetValue <bool>() && target.IsValidTarget(E.Range)) { E.Cast(target.Position, true); } else { Q.CastTo(target); } } else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target)) { QExtend.Cast(target); } } } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { if (Me.ManaPercent >= Menu.Item("JungleClearMana", true).GetValue <Slider>().Value) { var mobs = MinionManager.GetMinions(Me.Position, R.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Any()) { var mob = mobs.FirstOrDefault(); var bigmob = mobs.FirstOrDefault(x => !x.Name.ToLower().Contains("mini")); if (Menu.Item("JungleClearW", true).GetValue <bool>() && W.IsReady() && bigmob != null && bigmob.IsValidTarget(W.Range)) { W.Cast(); } if (Menu.Item("JungleClearQ", true).GetValue <bool>() && Q.IsReady() && mob != null && mob.IsValidTarget(Q.Range)) { Q.Cast(mob); } } } } }
private void Insec() { var target = (Obj_AI_Hero)_insecTarget; if (target == null) { return; } if (soilderCount() > 0) { if ((Q.IsReady() || qSpell.State == SpellState.Surpressed) && E.IsReady()) { var slaves = (from obj in ObjectManager.Get <Obj_AI_Base>() where obj.Name == "AzirSoldier" && obj.IsAlly && target.Distance(obj.ServerPosition) < 2000 select obj).ToList(); foreach (var slave in slaves) { if (Player.Distance(target) < 800) { var qPred = GetP(slave.ServerPosition, QExtend, target, true); var vec = target.ServerPosition - Player.ServerPosition; var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75; _rVec = qPred.CastPosition - Vector3.Normalize(vec) * 300; if (Q.IsReady() && (E.IsReady() || eSpell.State == SpellState.Surpressed) && R.IsReady() && qPred.Hitchance >= getQHitchance()) { Q.Cast(castBehind, packets()); E.Cast(slave.ServerPosition, packets()); E.LastCastAttemptT = Environment.TickCount; } } } } if (R.IsReady()) { if (Player.Distance(target) < 200 && Environment.TickCount - E.LastCastAttemptT > Game.Ping + 150) { //Game.PrintChat("rawr"); R.Cast(_rVec); } } } else if (W.IsReady()) { Vector3 wVec = Player.ServerPosition + Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * 450; var qPred = GetP(wVec, QExtend, target, true); if ((Q.IsReady() || qSpell.State == SpellState.Surpressed) && (E.IsReady() || eSpell.State == SpellState.Surpressed) && R.IsReady() && Player.Distance(target) < 800 && qPred.Hitchance >= getQHitchance()) { var vec = target.ServerPosition - Player.ServerPosition; var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75; _rVec = Player.Position; W.Cast(wVec); QExtend.Cast(castBehind, packets()); E.Cast(getNearestSoilderToEnemy(target).ServerPosition, packets()); } if (R.IsReady()) { if (Player.Distance(target) < 200 && Environment.TickCount - E.LastCastAttemptT > Game.Ping + 150) { //Game.PrintChat("rawr2"); R.Cast(_rVec); } } } }
private static void AfterAttack(AttackableUnit unit, AttackableUnit ArgsTarget) { if (!unit.IsMe) { return; } if (isComboMode) { var target = (AIHeroClient)ArgsTarget; if (target != null && !target.IsDead && !target.IsZombie) { if (ComboOption.UseE && E.IsReady() && (Q.IsReady() || target.Health < E.GetDamage(target))) { SpellManager.PredCast(E, target, true); } if (ComboOption.UseW && W.IsReady()) { if (target.DistanceToPlayer() <= Me.AttackRange + Me.BoundingRadius) { if (ComboOption.GetBool("ComboWAlways")) { W.Cast(); } if (Me.HealthPercent <= ComboOption.GetSlider("ComboWLowHp")) { W.Cast(); } } if (ComboOption.GetBool("ComboWBuff") && HaveEBuff(target) && Q.IsReady()) { W.Cast(); } } else if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(QExtend.Range)) { if (!HaveEBuff(target) && target.IsValidTarget(Q.Range)) { if (ComboOption.GetBool("ComboFirstE") && E.IsReady() && ComboOption.UseE && target.IsValidTarget(E.Range)) { SpellManager.PredCast(E, target, true); } else { SpellManager.PredCast(Q, target); } } else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target)) { QExtend.Cast(target); } } } } if (isJungleClearMode && JungleClearOption.HasEnouguMana) { var mobs = MinionManager.GetMinions(Me.Position, E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Any()) { var mob = mobs.FirstOrDefault(); if (mob != null) { if (JungleClearOption.UseW && W.IsReady()) { W.Cast(); } if (JungleClearOption.UseQ && Q.IsReady() && mob.IsValidTarget(Q.Range)) { Q.Cast(mob); } } } } }
private void Insec() { var target = (Obj_AI_Hero)_insecTarget; if (target == null) { return; } if (soilderCount() > 0) { if ((Q.IsReady() || QSpell.State == SpellState.Surpressed) && E.IsReady()) { var slaves = xSLxOrbwalker.Soilders.ToList(); foreach (var slave in slaves) { if (Player.Distance(target) < 800) { var qPred = GetP(slave.Position, QExtend, target, true); var vec = target.ServerPosition - Player.ServerPosition; var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75; _rVec = qPred.CastPosition - Vector3.Normalize(vec) * 300; if (Q.IsReady() && (E.IsReady() || ESpell.State == SpellState.Surpressed) && R.IsReady() && qPred.Hitchance >= getQHitchance()) { Q.Cast(castBehind, packets()); E.Cast(slave.Position, packets()); E.LastCastAttemptT = Environment.TickCount; } } } } if (R.IsReady()) { if (Player.Distance(target) < 200 && Environment.TickCount - E.LastCastAttemptT > Game.Ping + 150) { //Game.PrintChat("rawr"); R.Cast(_rVec); } } } else if (W.IsReady()) { Vector3 wVec = Player.ServerPosition + Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * W.Range; var qPred = GetP(wVec, QExtend, target, true); if ((Q.IsReady() || QSpell.State == SpellState.Surpressed) && (E.IsReady() || ESpell.State == SpellState.Surpressed) && R.IsReady() && Player.Distance(target) < 800 && qPred.Hitchance >= getQHitchance()) { var vec = target.ServerPosition - Player.ServerPosition; var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75; _rVec = Player.Position; W.Cast(wVec); QExtend.Cast(castBehind, packets()); E.Cast(getNearestSoilderToEnemy(target).Position, packets()); } if (R.IsReady()) { if (Player.Distance(target) < 200 && Environment.TickCount - E.LastCastAttemptT > Game.Ping + 150) { //Game.PrintChat("rawr2"); R.Cast(_rVec); } } } }
private void JungleClear() { if (!ManaManager.HasMana("JungleClear")) { return; } var mobs = MinionManager.GetMinions(Player.Position, 800, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Any()) { var mob = mobs.FirstOrDefault(); if (!IsMelee) { if (Menu.Item("UseEJungle", true).GetValue <bool>() && E.IsReady() && Menu.Item("UseQJungle", true).GetValue <bool>() && Q.IsReady()) { var gateVector = Player.ServerPosition + Vector3.Normalize(Game.CursorPos - Player.ServerPosition) * 50; if (mob != null && mob.IsValidTarget(QExtend.Range)) { E.Cast(gateVector); QExtend.Cast(mob.Position); } } if (Menu.Item("UseQJungle", true).GetValue <bool>() && Q.IsReady()) { var qFarm = MinionManager.GetBestLineFarmLocation(mobs.Select(x => x.Position.To2D()).ToList(), Q.Width, Q.Range); if (qFarm.MinionsHit >= 1) { Q.Cast(qFarm.Position); } } if (Menu.Item("UseWJungle", true).GetValue <bool>() && W.IsReady()) { if (mob.Distance(Player) <= 550) { W.Cast(); } } if (Menu.Item("UseRJungle", true).GetValue <bool>() && R.IsReady()) { if (Qcd != 0 && Wcd != 0 && Ecd != 0) { R.Cast(); } } } else { if (Menu.Item("UseWJungleHam", true).GetValue <bool>() && W2.IsReady() && mob.IsValidTarget(300)) { W2.Cast(); } if (Menu.Item("UseQJungleHam", true).GetValue <bool>() && Q2.IsReady() && mob.IsValidTarget(Q2.Range)) { Q2.CastOnUnit(mob); } if (Menu.Item("UseEJungleHam", true).GetValue <bool>() && E2.IsReady() && mob.IsValidTarget(E2.Range)) { E2.CastOnUnit(mob); } if (Menu.Item("UseRJungle", true).GetValue <bool>() && R.IsReady()) { if (Q1Cd != 0 && W1Cd != 0 && E1Cd != 0) { R.Cast(); } } } } }
private static void Combo() { var target = TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical); if (target.IsValidTarget(QExtend.Range)) { if (ComboOption.UseR && R.IsReady() && target.IsValidTarget(R.Range)) { if (MiscOption.GetBool("RSafe") && !Me.UnderTurret(true)) { foreach ( var rTarget in ObjectManager.Heroes.Enemies.Where( x => x.IsValidTarget(R.Range) && !MiscOption.GetBool("Dontr" + target.ChampionName.ToLower())) .OrderByDescending(x => E.IsReady() ? E.GetDamage(x) : 0 + Q.GetDamage(x) * 2)) { if (rTarget.CountEnemiesInRange(R.Range) <= MiscOption.GetSlider("RSwap")) { if (MiscOption.GetBool("RAlly") && Me.UnderAllyTurret() && rTarget.DistanceToPlayer() <= 350) { R.CastOnUnit(rTarget); } if (MiscOption.GetBool("RKill") && target.Health < MyDamageCalculate.GetComboDamage(target)) { R.CastOnUnit(rTarget); } } } } } if (ComboOption.UseE && E.IsReady() && target.IsValidTarget(E.Range) && (Q.IsReady() || target.Health < E.GetDamage(target))) { SpellManager.PredCast(E, target, true); } if (ComboOption.UseW && W.IsReady()) { if (target.DistanceToPlayer() <= Me.AttackRange + Me.BoundingRadius) { if (ComboOption.GetBool("ComboWAlways")) { W.Cast(); } if (Me.HealthPercent <= ComboOption.GetSlider("ComboWLowHp")) { W.Cast(); } } if (ComboOption.GetBool("ComboWBuff") && HaveEBuff(target) && Q.IsReady()) { W.Cast(); } } if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(QExtend.Range)) { if (!HaveEBuff(target) && target.IsValidTarget(Q.Range)) { if (ComboOption.GetBool("ComboFirstE") && E.IsReady() && ComboOption.UseE && target.IsValidTarget(E.Range)) { SpellManager.PredCast(E, target, true); } else { SpellManager.PredCast(Q, target); } } else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target)) { QExtend.Cast(target); } } } }