示例#1
0
        private static void RegisterSpell(string champName, InterruptableSpell spell)
        {
            if (!InterruptableSpells.ContainsKey(champName))
            {
                InterruptableSpells.Add(champName, new List<InterruptableSpell>());
            }

            InterruptableSpells[champName].Add(spell);
        }
示例#2
0
        public override void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
        {
            if (spell.DangerLevel < InterruptableDangerLevel.High || unit.IsAlly)
            {
                return;
            }

            if (R.CastCheck(unit, "Interrupt.R"))
            {
                R.Cast(unit);
                return;
            }
        }
示例#3
0
        private static void Interrupter_OnPossibleToInterrupt(Obj_AI_Base vTarget, InterruptableSpell args)
        {
            if (!Config.Item("stun").GetValue <bool>())
            {
                return;
            }

            if (Player.Distance(vTarget) < Q.Range - 50)
            {
                E.Cast();
                Q.Cast(vTarget);
            }
        }
示例#4
0
        private static void OnInterruptCreate(Obj_AI_Base unit, InterruptableSpell spell)
        {
            if (!isEn("EInterrupt"))
            {
                return;
            }
            var EPred = E.GetPrediction(unit);

            if (EPred.Hitchance >= HitChance.Medium)
            {
                E.Cast(EPred.CastPosition);
            }
        }
示例#5
0
 // not tested
 private void BlitzOnInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (_menu.Item("interrupt").GetValue <bool>())
     {
         if (unit.Distance(_player.Position) < Q.Range)
         {
             Q.Cast(unit);
         }
         else if (unit.Distance(_player.Position) < R.Range)
         {
             R.Cast();
         }
     }
 }
示例#6
0
 private static void Interrupter_OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (unit.IsValidTarget(_q.Range) && _config.Item("UseEQInt").GetValue <bool>())
     {
         if (_e.IsReady() && _q.IsReady())
         {
             _e.Cast(unit, Packets());
         }
         if (_q.IsReady() && _epos != default(Vector3) && unit.IsValidTarget(200, true, _epos))
         {
             _q.Cast(_epos, Packets());
         }
     }
 }
示例#7
0
        static void Interrupter_OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
        {
            var packetCast      = Config.Item("PacketCast").GetValue <bool>();
            var WInterruptSpell = Config.Item("WInterruptSpell").GetValue <bool>();

            if (WInterruptSpell && W.IsReady() && unit.IsValidTarget(W.Range))
            {
                W.CastOnUnit(unit, packetCast);
                if (mustDebug)
                {
                    Game.PrintChat("W to Interrup");
                }
            }
        }
示例#8
0
        private static void Interrupter_OnPosibleToInterrupt(Obj_AI_Base vTarget, InterruptableSpell args)
        {
            var interruptSpells = Config.Item("InterruptSpells").GetValue <KeyBind>().Active;

            if (!interruptSpells)
            {
                return;
            }

            if (Player.Distance(vTarget) < Orbwalking.GetRealAutoAttackRange(ObjectManager.Player))
            {
                R.Cast();
            }
        }
示例#9
0
        private static void Interrupter_OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
        {
            if (!Variable.Config.Item("stopChannel").GetValue <bool>())
            {
                return;
            }

            if (!(Variable.Player.Distance(unit) <= Variable.W.Range) || !Variable.W.IsReady())
            {
                return;
            }

            Variable.W.CastOnUnit(unit, Variable.Config.Item("usePackets").GetValue <bool>());
        }
示例#10
0
        private static void Interrupter_OnPosibleToInterrupt(Obj_AI_Base t, InterruptableSpell args)
        {
            var interruptSpells = Config.Item("InterruptSpells").GetValue <KeyBind>().Active;

            if (!interruptSpells)
            {
                return;
            }

            if (ObjectManager.Player.Distance(t) < Q.Range)
            {
                E.Cast(t.Position);
            }
        }
示例#11
0
        static void Interrupter_OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
        {
            var packetCast              = Config.Item("PacketCast").GetValue <bool>();
            var RInterrupetSpell        = Config.Item("RInterrupetSpell").GetValue <bool>();
            var RAntiGapcloserMinHealth = Config.Item("RAntiGapcloserMinHealth").GetValue <Slider>().Value;

            if (RInterrupetSpell && Player.GetHealthPerc() < RAntiGapcloserMinHealth && unit.IsValidTarget(R.Range) && spell.DangerLevel >= InterruptableDangerLevel.High)
            {
                if (R.CastIfHitchanceEquals(unit, unit.IsMoving ? HitChance.High : HitChance.Medium, packetCast))
                {
                    Game.PrintChat(string.Format("OnPosibleToInterrupt -> RInterrupetSpell on {0} !", unit.SkinName));
                }
            }
        }
示例#12
0
        private void OnPossibleToInterrupt(Obj_AI_Hero unit, InterruptableSpell spell)
        {
            if (Player.IsDead || !GetValue <bool>("Interrupt", "Q") ||
                !GetValue <bool>("Interrupt", unit.ChampionName + "_" + spell.Slot) || !E.CanCast(unit))
            {
                return;
            }
            var predE = E.GetPrediction(unit);

            if (predE.Hitchance >= HitChance.High)
            {
                E.Cast(predE.CastPosition.Extend(Player.ServerPosition, -100), PacketCast);
            }
        }
示例#13
0
 private void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (!ItemBool("Misc", "EQInterrupt") || !Q.IsReady())
     {
         return;
     }
     if (Q.InRange(unit) && E.IsReady() && Player.Mana >= Q.Instance.ManaCost + E.Instance.ManaCost)
     {
         E.Cast(unit.Position.Extend(Player.Position, -100), PacketCast());
     }
     if (FlagPos != default(Vector3) && (FlagPos.Distance(unit.Position) <= 60 || (Q.WillHit(unit.Position, FlagPos, 110) && Player.Distance3D(unit) > 50)))
     {
         Q.Cast(FlagPos, PacketCast());
     }
 }
示例#14
0
 private void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (!Config.Item("useInterEQ").GetValue <bool>() || !SkillQ.IsReady())
     {
         return;
     }
     if (unit.IsValidTarget(SkillQ.Range) && SkillE.IsReady())
     {
         SkillE.Cast(unit.Position + Vector3.Normalize(unit.Position - Player.Position) * 100, PacketCast());
     }
     if (flagPos != default(Vector3) && unit.IsValidTarget(180, true, flagPos))
     {
         SkillQ.Cast(flagPos, PacketCast());
     }
 }
示例#15
0
 private void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (!Config.Item("useInterE").GetValue <bool>())
     {
         return;
     }
     if (SkillQ.IsReady() && SkillE.IsReady() && !SkillE.InRange(unit.Position) && unit.IsValidTarget(SkillQ.Range))
     {
         SkillQ.CastOnUnit(unit, PacketCast());
     }
     if (unit.IsValidTarget(SkillE.Range) && SkillE.IsReady())
     {
         SkillE.Cast(PacketCast());
     }
 }
示例#16
0
 private void OnPossibleToInterrupt(Obj_AI_Hero unit, InterruptableSpell spell)
 {
     if (Player.IsDead || !GetValue <bool>("Interrupt", "EQ") || !GetValue <bool>("Interrupt", unit.ChampionName + "_" + spell.Slot.ToString()) || !Q.IsReady())
     {
         return;
     }
     if (E.CanCast(unit) && Player.Mana >= Q.Instance.ManaCost + E.Instance.ManaCost && E.CastIfWillHit(unit, -1, PacketCast) && Q.Cast(unit.ServerPosition, PacketCast))
     {
         return;
     }
     if (FlagPos != default(Vector3) && Q.IsInRange(FlagPos) && (unit.Distance(FlagPos) <= 60 || (Player.Distance(unit, true) >= Math.Pow(50, 2) && Q.WillHit(unit.ServerPosition, FlagPos, 110))) && Q.Cast(FlagPos, PacketCast))
     {
         return;
     }
 }
示例#17
0
 private void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (!ItemBool("Misc", "EInterrupt") || Player.IsDead || !E.IsReady())
     {
         return;
     }
     if (!E.InRange(unit) && Q.CanCast(unit) && Player.Mana >= Q.Instance.ManaCost + E.Instance.ManaCost)
     {
         Q.CastOnUnit(unit, PacketCast());
     }
     if (E.InRange(unit))
     {
         E.Cast(PacketCast());
     }
 }
示例#18
0
 private void OnPossibleToInterrupt(Obj_AI_Hero unit, InterruptableSpell spell)
 {
     if (Player.IsDead || !GetValue <bool>("Interrupt", "EQ") || !GetValue <bool>("Interrupt", unit.ChampionName + "_" + spell.Slot.ToString()) || !Q.IsReady())
     {
         return;
     }
     if (E.CanCast(unit) && Player.Mana >= Q.Instance.ManaCost + E.Instance.ManaCost && E.Cast(unit.ServerPosition.Extend(Player.ServerPosition, -E.Width / 2), PacketCast) && Q.Cast(unit.ServerPosition, PacketCast))
     {
         return;
     }
     if (Flag != null && (unit.Distance(Flag, true) <= Math.Pow(60, 2) || (Player.Distance(unit, true) >= Math.Pow(50, 2) && Q.WillHit(unit, Flag.ServerPosition, 110))) && Q.Cast(Flag.ServerPosition, PacketCast))
     {
         return;
     }
 }
示例#19
0
 private void OnPossibleToInterrupt(Obj_AI_Hero unit, InterruptableSpell spell)
 {
     if (Player.IsDead || !GetValue <bool>("Interrupt", "W") || !GetValue <bool>("Interrupt", unit.ChampionName + "_" + spell.Slot.ToString()) || !W.CanCast(unit) || !unit.HasBuff("KennenMarkOfStorm"))
     {
         return;
     }
     if (HaveWStun(unit) && W.Cast(PacketCast))
     {
         return;
     }
     else if (!HaveWStun(unit) && Q.CastIfHitchanceEquals(unit, HitChance.High, PacketCast))
     {
         return;
     }
 }
示例#20
0
 private void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (!ItemBool("Misc", "EInterrupt"))
     {
         return;
     }
     if (Player.Mana >= SkillQ.Instance.ManaCost + SkillE.Instance.ManaCost && !SkillE.InRange(unit.Position) && IsValid(unit, SkillQ.Range))
     {
         SkillQ.CastOnUnit(unit, PacketCast());
     }
     if (IsValid(unit, SkillE.Range) && SkillE.IsReady())
     {
         SkillE.Cast(PacketCast());
     }
 }
示例#21
0
 private void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (!ItemBool("Misc", "QInterrupt") || Player.IsDead || !Q.IsReady())
     {
         return;
     }
     if (Player.Mana >= Q.Instance.ManaCost + W.Instance.ManaCost && Player.Distance3D(unit) > 100 && IsValid(unit, W.Range) && W.IsReady())
     {
         W.CastOnUnit(unit, PacketCast());
     }
     if (IsValid(unit, Q.Range) && Player.Distance3D(unit) <= 100)
     {
         Q.Cast(unit.Position, PacketCast());
     }
 }
示例#22
0
        private static void FireOnInterruptable(Obj_AI_Base unit, InterruptableSpell spell)
        {
            if (OnPossibleToInterrupt != null)
            {
                OnPossibleToInterrupt(unit, spell);
            }

            if (OnPosibleToInterrupt != null)
            {
                OnPosibleToInterrupt(unit, spell);
            }
        }
示例#23
0
 public static void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (getCheckBoxItem(miscMenu, "enabled"))
     {
         if (
             getCheckBoxItem(miscMenu, "useE") && _E.IsReady() &&
             Player.LSDistance(unit) < _E.Range)
         {
             if (ShouldPull((AIHeroClient) unit))
                 PullFlay(unit);
             else
                 PushFlay(unit);
         }
         else if (
             getCheckBoxItem(miscMenu, "useQ") && _Q.IsReady() &&
             !_Q.GetPrediction(unit).CollisionObjects.Any())
         {
             _Q.Cast(unit);
         }
     }
 }
示例#24
0
 void Interrupter_OnPossibleToInterrupt(AttackableUnit unit, InterruptableSpell spell)
 {
     var Sender = (Obj_AI_Hero)unit;
     if (!isMenuEnabled("Interrupt") || !E.IsReady() || !Sender.IsValidTarget()) return;
     CastE(Sender,true);
 }
示例#25
0
 public static void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (
         Config.SubMenu("Misc")
             .SubMenu("InterruptSpells")
             .SubMenu(spell.SpellName)
             .Item("enabled")
             .GetValue<bool>())
     {
         if (
             Config.SubMenu("Misc")
                 .SubMenu("InterruptSpells")
                 .SubMenu(spell.SpellName)
                 .Item("useE")
                 .GetValue<bool>() && _E.IsReady() &&
             Player.Distance(unit) < _E.Range)
         {
             if (ShouldPull((Obj_AI_Hero) unit))
                 PullFlay(unit);
             else
                 PushFlay(unit);
         }
         else if (
             Config.SubMenu("Misc")
                 .SubMenu("InterruptSpells")
                 .SubMenu(spell.SpellName)
                 .Item("useQ")
                 .GetValue<bool>() && _Q.IsReady() &&
             !_Q.GetPrediction(unit).CollisionObjects.Any())
         {
             _Q.Cast(unit);
         }
     }
 }