/// <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;
            }
        }
Esempio n. 2
0
 /// <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;
     }
 }
Esempio n. 3
0
        /// <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();
                    }
                }
            }
        }
Esempio n. 4
0
        /// <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;
            }
        }
Esempio n. 5
0
        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;
                    }
                }
            }
        }