public ZedAntiGapCloser(ZedMenu menu, ZedSpells spells, ZedShadows shadows)
        {
            zedMenu = menu;
            w = spells.W;
            e = spells.E;
            this.shadows = shadows;
            player = ObjectManager.Player;

            actionQueue = new ActionQueue();
            antiGapCloserList = new ActionQueueList();

            AntiGapcloser.OnEnemyGapcloser += AntiGapcloser_OnEnemyGapcloser;
            
        }
示例#2
0
        public ZedCore(ZedSpells zedSpells, Orbwalking.Orbwalker zedOrbwalker, ZedMenu zedMenu, ZedShadows zedShadows)
        {
            q = zedSpells.Q;
            w = zedSpells.W;
            e = zedSpells.E;
            r = zedSpells.R;

            player = ObjectManager.Player;
            ZedOrbwalker = zedOrbwalker;
            this.zedMenu = zedMenu;

            actionQueue = new ActionQueue();
            harasQueue = new ActionQueueList();
            comboQueue = new ActionQueueList();
            zedItems = new ZedOffensiveItems(zedMenu);
            energy = new ZedEnergyChecker(zedMenu);
            shadows = zedShadows;

            Game.OnUpdate += Game_OnUpdate;
        }
示例#3
0
        public ZedCore(ZedSpells zedSpells, Orbwalking.Orbwalker zedOrbwalker, ZedMenu zedMenu, ZedShadows zedShadows, ZedEnergyChecker zedEnergy)
        {
            q = zedSpells.Q;
            w = zedSpells.W;
            e = zedSpells.E;
            r = zedSpells.R;

            player = ObjectManager.Player;
            ZedOrbwalker = zedOrbwalker;
            this.zedMenu = zedMenu;
            energy = zedEnergy;

            actionQueue = new ActionQueue();
            harasQueue = new ActionQueueList();
            comboQueue = new ActionQueueList();
            laneClearQueue = new ActionQueueList();
            lastHitQueue = new ActionQueueList();
            checkAutoAttack = new ActionQueueCheckAutoAttack();
            zedItems = new ZedOffensiveItems(zedMenu);
            shadows = zedShadows;
            zedComboSelector = new ZedComboSelector(zedMenu);

            Game.OnUpdate += Game_OnUpdate;
        }
示例#4
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());
                    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);
                    actionQueue.EnqueueAction(
                        laneClearQueue,
                        () => w.Instance.ToggleState != 0,
                        () => q.Cast(extendedFarmLocation),
                        () => !q.IsReady());
                    return;
                }
                else if (shortenWillHit >= param)
                {
                    actionQueue.EnqueueAction(
                        laneClearQueue,
                        () => q.IsReady(),
                        () => q.Cast(shortenFarmLocation.Position),
                        () => !q.IsReady());
                    return;
                }
            }
        }