Пример #1
0
        protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
        {
            if (!R.IsReady() || (args.DangerLevel != DangerLevel.Medium && args.DangerLevel != DangerLevel.High) ||
                !(Player.Instance.Mana > 200) || !sender.IsValidTarget(Settings.Misc.MaxInterrupterRange))
            {
                return;
            }

            var rPrediction = R.GetPrediction(sender);

            if (rPrediction.HitChance < HitChance.High && rPrediction.HitChance != HitChance.Collision)
            {
                return;
            }

            if (rPrediction.HitChance == HitChance.Collision)
            {
                var polygon = new Geometry.Polygon.Rectangle(Player.Instance.Position,
                                                             rPrediction.CastPosition, 120);

                if (!EntityManager.Heroes.Enemies.Any(x => polygon.IsInside(x)))
                {
                    R.Cast(rPrediction.CastPosition);
                }
            }
            else
            {
                R.Cast(rPrediction.CastPosition);
            }
        }
Пример #2
0
        protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
        {
            if (!R.IsReady() || (args.DangerLevel != DangerLevel.Medium && args.DangerLevel != DangerLevel.High) ||
                !(Player.Instance.Mana > 200) || !sender.IsValidTargetCached(Settings.Misc.MaxInterrupterRange))
            {
                return;
            }

            var rPrediction = Prediction.Manager.GetPrediction(new Prediction.Manager.PredictionInput
            {
                CollisionTypes = new HashSet <CollisionType> {
                    Prediction.Manager.PredictionSelected == "ICPrediction" ? CollisionType.AiHeroClient : CollisionType.ObjAiMinion
                },
                Delay          = .25f,
                From           = Player.Instance.Position,
                Radius         = 130,
                Range          = Settings.Combo.RMaximumRange,
                RangeCheckFrom = Player.Instance.Position,
                Speed          = R.Speed,
                Target         = sender,
                Type           = SkillShotType.Linear
            });

            if (rPrediction.HitChance < HitChance.High)
            {
                return;
            }

            R.Cast(rPrediction.CastPosition);
        }
Пример #3
0
        protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
        {
            if (!R.IsReady() || !Settings.Misc.UseRToInterrupt || !sender.IsValidTarget(R.Range) || sender.IsUnderTurret())
            {
                return;
            }

            if (args.Delay == 0)
            {
                R.Cast(sender);
            }
            else
            {
                Core.DelayAction(() => R.Cast(sender), args.Delay);
            }
        }
Пример #4
0
        protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
        {
            if (!Settings.Misc.EnableInterrupter || !E.IsReady() || !sender.IsValidTarget(E.Range))
            {
                return;
            }

            if (args.Delay == 0)
            {
                E.Cast(sender);
            }
            else
            {
                Core.DelayAction(() => E.Cast(sender), args.Delay);
            }
        }
Пример #5
0
        protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
        {
            if (!Settings.Misc.EnableInterrupter || !E.IsReady() || (args.End.Distance(Player.Instance) > 350) ||
                !sender.IsValidTarget(E.Range))
            {
                return;
            }

            if (args.Delay == 0)
            {
                E.Cast(E.GetPrediction(sender).CastPosition);
            }
            else
            {
                Core.DelayAction(() => E.Cast(E.GetPrediction(sender).CastPosition), args.Delay);
            }
        }
Пример #6
0
        protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
        {
            if (!R.IsReady() || !sender.IsValidTarget(R.Range) || !Settings.Combo.UseRVsInterruptible)
            {
                return;
            }

            if (args.Delay == 0)
            {
                R.Cast(sender);
            }
            else
            {
                Core.DelayAction(() => R.Cast(sender), args.Delay);
            }

            Console.WriteLine("[DEBUG] OnInterruptible {0}", sender.Hero);
        }
Пример #7
0
        protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
        {
            if (!E.IsReady() || !sender.IsValidTarget(E.Range))
            {
                return;
            }

            if (args.Delay == 0)
            {
                E.Cast(sender);
            }
            else
            {
                Core.DelayAction(() => E.Cast(sender), args.Delay);
            }

            Misc.PrintInfoMessage("Interrupting " + sender.ChampionName + "'s " + args.SpellName);

            Console.WriteLine("[DEBUG] OnInterruptible | Champion : {0} | SpellSlot : {1}", sender.ChampionName, args.SpellSlot);
        }
Пример #8
0
 protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
 {
 }
Пример #9
0
 protected abstract void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args);
Пример #10
0
 void IHeroAddon.OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
 {
     OnInterruptible(sender, args);
 }
Пример #11
0
 protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args)
 {
     throw new NotImplementedException();
 }