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); } }
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); }
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); } }
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); } }
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); } }
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); }
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); }
protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args) { }
protected abstract void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args);
void IHeroAddon.OnInterruptible(AIHeroClient sender, InterrupterEventArgs args) { OnInterruptible(sender, args); }
protected override void OnInterruptible(AIHeroClient sender, InterrupterEventArgs args) { throw new NotImplementedException(); }