/// <summary> /// /// </summary> /// <param name="gapcloser"></param> private void OnEnemyGapcloser(ActiveGapcloser gapcloser) { try { var qSpell = new SpellQ(); if (qSpell.SpellObject.IsCharging) { return; } var eSpell = new SpellE(); if (MyMenu.RootMenu.Item("gapclosereuse").IsActive() && eSpell.SpellSlot.IsReady()) { if (gapcloser.End.Distance(ObjectManager.Player.Position) <= eSpell.Range) { eSpell.SpellObject.Cast(gapcloser.End); } } } catch (Exception e) { Logging.AddEntry(LoggingEntryTrype.Error, "@SpellManager.cs: AntiGapcloser - {0}", e); throw; } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args) { if (args.DangerLevel != Interrupter2.DangerLevel.High) { return; } try { var eSpell = new SpellE(); if (MyMenu.RootMenu.Item("interrupt.e").IsActive()) { if (eSpell.SpellSlot.IsReady() && eSpell.SpellObject.IsInRange(sender)) { eSpell.SpellObject.Cast(sender); } } } catch (Exception e) { Logging.AddEntry(LoggingEntryTrype.Error, "@SpellManager.cs: OnInterruptableTarget - {0}", e); throw; } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnDash(Obj_AI_Base sender, Dash.DashItem args) { if (!sender.IsEnemy) { return; } var eSpell = new SpellE(); var distance = ObjectManager.Player.Distance(sender); if (MyMenu.RootMenu.Item("interrupt.e.dash").IsActive() && MyMenu.RootMenu.Item("interrupt.e.dash.mana").GetValue <Slider>().Value <= ObjectManager.Player.ManaPercent) { if (eSpell.SpellSlot.IsReady()) { if (!args.IsBlink && eSpell.Range <= distance) { eSpell.SpellObject.Cast(); } } } }
/// <summary> /// /// </summary> /// <param name="gapcloser"></param> private void OnEnemyGapcloser(ActiveGapcloser gapcloser) { try { var eSpell = new SpellE(); if (!gapcloser.Sender.IsValidTarget(eSpell.Range)) { return; } if (MyMenu.RootMenu.Item("gapcloser.e").IsActive()) { if (eSpell.SpellSlot.IsReady()) { eSpell.SpellObject.Cast(gapcloser.Sender); } } } catch (Exception e) { Logging.AddEntry(LoggingEntryTrype.Error, "@SpellManager.cs: AntiGapcloser - {0}", e); throw; } }
public static void Combo() { var target = TargetSelector.GetTarget(spells[Spells.Q].Range, TargetSelector.DamageType.Physical); if (target == null) { return; } if (Misc.GetMenuItem("ElLeeSin.Combo.Q") && spells[Spells.Q].IsReady() && Misc.IsQOne) { CastQ(target, Misc.GetMenuItem("ElLeeSin.Smite.Q")); } if (spells[Spells.R].IsReady() && Misc.GetMenuItem("ElLeeSin.Combo.R") && Misc.GetMenuItem("ElLeeSin.Combo.Q") && Misc.GetMenuItem("ElLeeSin.Combo.Q2")) { var qTarget = HeroManager.Enemies.FirstOrDefault(x => x.HasBuff("BlindMonkSonicWave")); if (qTarget != null) { if ((target.Health + target.AttackShield > spells[Spells.Q].GetDamage(target, 1) + ObjectManager.Player.GetAutoAttackDamage(target)) && (target.Health + target.AttackShield <= Misc.Q2Damage(target, spells[Spells.R].GetDamage(target)) + ObjectManager.Player.GetAutoAttackDamage(target))) { if (spells[Spells.R].CastOnUnit(target)) { return; } if (Misc.GetMenuItem("ElLeeSin.Combo.StarKill1") && !spells[Spells.R].IsInRange(target) && (target.Distance(ObjectManager.Player) < 600 + spells[Spells.R].Range - 50) && (ObjectManager.Player.Mana >= 80) && !ObjectManager.Player.IsDashing()) { Wardmanager.WardJump(target.Position, false, true); } } } } if (Misc.GetMenuItem("ElLeeSin.Combo.Q2") && !ObjectManager.Player.IsDashing() && target.HasQBuff() && target.IsValidTarget(1300f) && !isInQ2) { if (castQAgain || (spells[Spells.Q].GetDamage(target, 1) > target.Health + target.AttackShield) || ((Misc.ReturnQBuff()?.Distance(target) < ObjectManager.Player.Distance(target)) && !target.IsValidTarget(Orbwalking.GetRealAutoAttackRange(ObjectManager.Player)))) { spells[Spells.Q].Cast(); } } if ((spells[Spells.R].GetDamage(target) > target.Health) && Misc.GetMenuItem("ElLeeSin.Combo.KS.R") && target.IsValidTarget(spells[Spells.R].Range)) { spells[Spells.R].CastOnUnit(target); } if (Misc.GetMenuItem("ElLeeSin.Combo.AAStacks") && (PassiveStacks > MyMenu.Menu.Item("ElLeeSin.Combo.PassiveStacks").GetValue <Slider>().Value) && (Orbwalking.GetRealAutoAttackRange(ObjectManager.Player) > ObjectManager.Player.Distance(target))) { return; } if (Misc.GetMenuItem("ElLeeSin.Combo.W")) { if (Misc.GetMenuItem("ElLeeSin.Combo.Mode.WW") && (target.Distance(ObjectManager.Player) > Orbwalking.GetRealAutoAttackRange(ObjectManager.Player))) { Wardmanager.WardJump(target.Position, false, true); } if (!Misc.GetMenuItem("ElLeeSin.Combo.Mode.WW") && (target.Distance(ObjectManager.Player) > spells[Spells.Q].Range)) { Wardmanager.WardJump(target.Position, false, true); } } if (Misc.GetMenuItem("ElLeeSin.Combo.E")) { SpellE.CastE(); } if (spells[Spells.W].IsReady() && Misc.GetMenuItem("ElLeeSin.Combo.W2") && (!Misc.GetMenuItem("ElLeeSin.Combo.W") || !Misc.GetMenuItem("ElLeeSin.Combo.Mode.WW"))) { if (Environment.TickCount - lastSpellCastTime <= 500) { return; } if (Misc.IsWOne) { if (target.IsValidTarget(ObjectManager.Player.AttackRange + 50)) { spells[Spells.W].Cast(); lastSpellCastTime = Environment.TickCount; } } else { if ((PassiveStacks == 0) || (Environment.TickCount - LastW >= 2500)) { spells[Spells.W].Cast(); lastSpellCastTime = Environment.TickCount; } } } }