예제 #1
0
        public bool CanMove(OrbwalkerMode mode)
        {
            if (mode == null)
            {
                return(false);
            }

            if (!this.MovingEnabled || !mode.MovingEnabled)
            {
                return(false);
            }

            if (Player.Distance(Game.CursorPos) < this.HoldPositionRadius)
            {
                return(false);
            }

            if (this.NoCancelChamps.Contains(Player.ChampionName))
            {
                return(true);
            }

            if (this.IsWindingUp)
            {
                return(false);
            }

            return(true);
        }
예제 #2
0
        public override void Orbwalk()
        {
            OrbwalkerMode mode = this.GetActiveMode();

            if (mode == null)
            {
                return;
            }

            /// <summary>
            ///     Execute the specific logic for this mode if any
            /// </summary>
            mode.Execute();

            if (!mode.BaseOrbwalkingEnabled)
            {
                return;
            }

            if (this.CanAttack(mode))
            {
                var target = GetTarget(mode);
                if (target != null)
                {
                    this.Attack(target);
                }
            }

            if (this.CanMove(mode))
            {
                this.Move(Game.CursorPos);
            }
        }
예제 #3
0
        public bool CanAttack(OrbwalkerMode mode)
        {
            if (mode == null)
            {
                return(false);
            }

            if (!this.AttackingEnabled || !mode.AttackingEnabled)
            {
                return(false);
            }

            if (!this.BlindCheck())
            {
                return(false);
            }

            if (Player.ChampionName.Equals("Jhin") && Player.HasBuff("JhinPassiveReload"))
            {
                return(false);
            }

            if (this.NoCancelChamps.Contains(Player.ChampionName))
            {
                return(true);
            }

            if (this.IsWindingUp)
            {
                return(false);
            }

            return(this.AttackReady);
        }
예제 #4
0
        private void Initialize()
        {
            this.Config = new Menu("Orbwalker", "Orbwalker")
            {
                new Menu("Advanced", "Advanced")
                {
                    new MenuSlider("attackDelayReduction", "Attack Delay Reduction", 90, 0, 180, true),
                },

                new Menu("Drawings", "Drawings")
                {
                    new MenuBool("drawAttackRange", "Draw Attack Range", true),
                    new MenuBool("drawHoldRadius", "Draw Hold Radius", false),
                },

                new Menu("Misc", "Misc")
                {
                    new MenuSlider("holdPositionRadius", "Hold Radius", 50, 0, 400, true),
                    new MenuSlider("extraWindup", "Additional Windup", 30, 0, 200, true),
                    new MenuBool("noBlindAA", "No AA when Blind", true, true),
                }
            };

            this.AddMode(Combo     = new OrbwalkerMode("Combo", GlobalKeys.ComboKey, GetHeroTarget, null));
            this.AddMode(LaneClear = new OrbwalkerMode("Laneclear", GlobalKeys.WaveClearKey, GetLaneClearTarget, null));
            this.AddMode(LastHit   = new OrbwalkerMode("Lasthit", GlobalKeys.LastHitKey, GetLastHitTarget, null));
            this.AddMode(Mixed     = new OrbwalkerMode("Mixed", GlobalKeys.MixedKey, GetMixedModeTarget, null));
        }
예제 #5
0
        public override AttackableUnit FindTarget(OrbwalkerMode mode)
        {
            if (this.ForcedTarget != null && this.ForcedTarget.IsValidAutoRange())
            {
                return(this.ForcedTarget);
            }

            return(mode?.GetTarget());
        }
예제 #6
0
        public bool CanAttack(OrbwalkerMode mode)
        {
            if (mode == null)
            {
                return(false);
            }

            if (!this.AttackingEnabled || !mode.AttackingEnabled)
            {
                return(false);
            }

            if (Player.HasBuffOfType(BuffType.Polymorph))
            {
                return(false);
            }

            if (Player.HasBuffOfType(BuffType.Blind) &&
                !this.noWasteAttackChamps.Contains(Player.ChampionName))
            {
                return(false);
            }

            if (Player.ChampionName.Equals("Jhin") && Player.HasBuff("JhinPassiveReload"))
            {
                return(false);
            }

            if (Player.ChampionName.Equals("Graves") && !Player.HasBuff("GravesBasicAttackAmmo1"))
            {
                return(false);
            }

            if (this.NoCancelChamps.Contains(Player.ChampionName))
            {
                if (Player.ChampionName.Equals("Kalista") && this.Config["Misc"]["KalistaFly"].Enabled)
                {
                    return(true);
                }
            }

            if (this.IsWindingUp)
            {
                return(false);
            }

            return(this.AttackReady);
        }