private void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender == null || args == null || !r.IsReady() || r.Instance.ToggleState != 0 || !player.GetEnemiesInRange(r.Range).Any() || args.Slot != SpellSlot.R || !sender.IsChampion() || !sender.IsEnemy || !zedMenu.GetParamBool("koreanzed.miscmenu.rdodge.user") || !zedMenu.CheckMenuItem("koreanzed.miscmenu.rdodge." + args.SData.Name.ToLowerInvariant())) { return; } if (((args.Target != null && args.Target.IsMe) || player.Distance(args.End) < Math.Max(args.SData.BounceRadius, args.SData.LineWidth)) && zedMenu.GetParamBool("koreanzed.miscmenu.rdodge." + args.SData.Name.ToLowerInvariant())) { int delay = (int)Math.Truncate((double)(player.Distance(sender) / args.SData.MissileSpeed)) - 1; Utility.DelayAction.Add(delay, () => { r.Cast(TargetSelector.GetTarget(r.Range, r.DamageType)); }); } }