Beispiel #1
0
        private static void WaveClear()
        {
            if (Player.ManaPercent() < Getsliderf("WC.Mana"))
            {
                return;
            }

            var minions = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.IsEnemy && Player.Distance(m) <= incrange);

            if (minions.Any() && GetBool("UseEwc") && E.Ready && !Eon)
            {
                E.CastOnUnit(Player);
            }

            if (Config["UseQwc"].Enabled && Q.Ready)
            {
                var allMinions = ObjectManager.Get <Obj_AI_Base>().Where(minion => minion.IsValidSpellTarget(Q.Range));

                var vminions = allMinions.Where(
                    minion =>
                    minion.IsValidTarget() && Player.Distance(minion) >
                    Player.GetFullAttackRange(minion) && Player.Distance(minion) <= Q.Range &&
                    HealthPrediction.Implementation.GetPrediction(minion, (int)((Player.Distance(minion) * 1000) / 1500) + 300 + Game.Ping / 2) <
                    0.75 * Player.GetSpellDamage(minion, SpellSlot.Q));
                var bestminion = vminions.MaxBy(x => x.MaxHealth);
                if (bestminion != null)
                {
                    Orbwalker.Implementation.AttackingEnabled = false;
                    Q.CastOnUnit(bestminion);
                    Orbwalker.Implementation.AttackingEnabled = true;
                }
            }
        }
Beispiel #2
0
        /// <summary>
        ///     Determines whether the target is a valid target in the auto attack range from the specified check range from
        ///     vector.
        /// </summary>
        /// <param name="target">The target.</param>
        /// <param name="allyIsValidTarget">if set to <c>true</c> allies will be set as valid targets.</param>
        /// <param name="checkRangeFrom">The check range from.</param>
        /// <returns><c>true</c> if the target is a valid target in the auto attack range; otherwise, <c>false</c>.</returns>
        public static bool IsValidAutoRange(
            this AttackableUnit target,
            bool allyIsValidTarget = false,
            Vector3 checkRangeFrom = default(Vector3))
        {
            if (target == null || !target.IsValid || target.IsDead ||
                target.IsInvulnerable || !target.IsVisible || !target.IsTargetable)
            {
                return(false);
            }

            if (!allyIsValidTarget && target.Team == Player.Team)
            {
                return(false);
            }

            return(target.Distance(checkRangeFrom != Vector3.Zero
                ? checkRangeFrom
                : Player.Position) < Player.GetFullAttackRange(target));
        }
Beispiel #3
0
        private static void LastHitting()
        {
            var minManaPct = MenuManager.LastHitting["lastHitManaPct"].As <MenuSlider>().Value;

            if (MenuManager.LastHitting_Q["lastHittingQ"].As <MenuBool>().Enabled&& SpellManager.Q.Ready && Player.ManaPercent() >= minManaPct)
            {
                var onlyOutOfRange = MenuManager.LastHitting_Q["lastHittingQOutOfRange"].As <MenuBool>().Enabled;
                var minions        = GameObjects.EnemyMinions.Where(x => x.IsInRange(SpellManager.Q.Range) && x.UnitSkinName.Contains("Minion") && Player.GetSpellDamage(x, SpellSlot.Q) >= x.Health && x.IsValidTarget()).OrderBy(x => x.Health);
                var target         = onlyOutOfRange ? minions.FirstOrDefault(x => !x.IsInRange(Player.GetFullAttackRange(x))) : minions.FirstOrDefault();
                if (target.IsValidTarget())
                {
                    SpellManager.Q.Cast(target);
                }
            }
        }