Example #1
0
        private void LaneClear()
        {
            LastHit();

            if (q.UseOnLaneClear && energy.ReadyToLaneClear)
            {
                MinionManager.FarmLocation farmLocation = q.GetLineFarmLocation(MinionManager.GetMinions(q.Range));

                if (farmLocation.MinionsHit >= zedMenu.GetParamSlider("koreanzed.laneclearmenu.useqif"))
                {
                    q.Cast(farmLocation.Position);
                }
                else
                {
                    Obj_AI_Base jungleMob =
                        MinionManager.GetMinions(q.Range / 1.5F, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth)
                        .FirstOrDefault();

                    if (jungleMob != null)
                    {
                        q.Cast(q.GetPrediction(jungleMob).CastPosition);
                    }
                }
            }

            if (e.UseOnLaneClear && energy.ReadyToLaneClear)
            {
                if (MinionManager.GetMinions(e.Range).Count()
                    >= zedMenu.GetParamSlider("koreanzed.laneclearmenu.useeif"))
                {
                    e.Cast();
                }
                else
                {
                    if (MinionManager.GetMinions(e.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth)
                        .Any())
                    {
                        e.Cast();
                    }
                }
            }
        }
Example #2
0
        public void LaneClear(ActionQueue actionQueue, ActionQueueList laneClearQueue)
        {
            Obj_AI_Base shadow = GetShadows().FirstOrDefault();

            if (!energy.ReadyToLaneClear || shadow == null)
            {
                return;
            }

            if (e.UseOnLaneClear && e.IsReady())
            {
                int extendedWillHit = MinionManager.GetMinions(shadow.Position, e.Range).Count();
                int shortenWillHit  = MinionManager.GetMinions(e.Range).Count;
                int param           = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useeif");

                if (extendedWillHit >= param || shortenWillHit >= param)
                {
                    actionQueue.EnqueueAction(
                        laneClearQueue,
                        () => true,
                        () => e.Cast(),
                        () => !e.IsReady());
                    //Console.WriteLine("shadow lc e 1");
                    return;
                }
            }

            if (q.UseOnLaneClear && q.IsReady())
            {
                int     extendedWillHit      = 0;
                Vector3 extendedFarmLocation = Vector3.Zero;
                foreach (Obj_AI_Base objAiBase in MinionManager.GetMinions(shadow.Position, q.Range))
                {
                    var colisionList = q.GetCollision(
                        shadow.Position.To2D(),
                        new List <Vector2>()
                    {
                        objAiBase.Position.To2D()
                    },
                        w.Delay);

                    if (colisionList.Count > extendedWillHit)
                    {
                        extendedFarmLocation =
                            colisionList.OrderByDescending(c => c.Distance(shadow.Position)).FirstOrDefault().Position;
                        extendedWillHit = colisionList.Count;
                    }
                }

                var shortenFarmLocation = q.GetLineFarmLocation(MinionManager.GetMinions(q.Range));

                int shortenWillHit = shortenFarmLocation.MinionsHit;
                int param          = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useqif");

                if (CanCast && shadow.Position != Vector3.Zero && extendedWillHit >= param)
                {
                    actionQueue.EnqueueAction(
                        laneClearQueue,
                        () => CanCast,
                        () => Cast(shadow.Position),
                        () => !CanCast);
                    //Console.WriteLine("shadow lc w 2");
                    actionQueue.EnqueueAction(
                        laneClearQueue,
                        () => w.Instance.ToggleState != 0,
                        () => q.Cast(extendedFarmLocation),
                        () => !q.IsReady());
                    //Console.WriteLine("shadow lc q 3");
                    return;
                }
                else if (shortenWillHit >= param)
                {
                    actionQueue.EnqueueAction(
                        laneClearQueue,
                        () => q.IsReady(),
                        () => q.Cast(shortenFarmLocation.Position),
                        () => !q.IsReady());
                    //Console.WriteLine("shadow lc q 4");
                    return;
                }
            }
        }
Example #3
0
        private void LaneClear()
        {
            if (actionQueue.ExecuteNextAction(laneClearQueue))
            {
                return;
            }

            LastHit();

            JungleClear();

            if ((zedMenu.GetParamBool("koreanzed.laneclearmenu.items.hydra") ||
                 zedMenu.GetParamBool("koreanzed.laneclearmenu.items.tiamat")) &&
                (MinionManager.GetMinions(300F).Count() >= zedMenu.GetParamSlider("koreanzed.laneclearmenu.items.when") ||
                 MinionManager.GetMinions(300F, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth).Any()))
            {
                zedItems.UseItemsLaneClear();
            }

            if (shadows.GetShadows().Any())
            {
                shadows.LaneClear(actionQueue, laneClearQueue);
                return;
            }

            if (w.UseOnLaneClear)
            {
                WlaneClear();
                return;
            }
            else
            {
                if (e.UseOnLaneClear && e.IsReady())
                {
                    int willHit = MinionManager.GetMinions(e.Range).Count;
                    int param   = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useeif");

                    if (willHit >= param)
                    {
                        actionQueue.EnqueueAction(
                            laneClearQueue,
                            () => true,
                            () => e.Cast(),
                            () => !e.IsReady());
                        return;
                    }
                }

                if (q.UseOnLaneClear && q.IsReady())
                {
                    var farmLocation = q.GetLineFarmLocation(MinionManager.GetMinions(q.Range));

                    int willHit = farmLocation.MinionsHit;
                    int param   = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useqif");

                    if (willHit >= param)
                    {
                        actionQueue.EnqueueAction(
                            laneClearQueue,
                            () => q.IsReady(),
                            () => q.Cast(farmLocation.Position),
                            () => !q.IsReady());
                        return;
                    }
                }
            }
        }