示例#1
0
        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)); });
            }
        }