예제 #1
0
        protected override void LaneClear()
        {
            var useQ = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady() && !Player.IsWindingUp &&
                       ResourceManager.Check("lane-clear");

            if (useQ)
            {
                var minion =
                    MinionManager.GetMinions(Q.Range)
                    .Where(
                        m =>
                        Q.GetDamage(m) > m.Health ||
                        HealthPrediction.LaneClearHealthPrediction(
                            m, (int)(Player.AttackDelay * 1000), (int)(Q.Delay * 1000)) >
                        Player.GetAutoAttackDamage(m) * 1.5f)
                    .OrderBy(m => !Orbwalking.InAutoAttackRange(m))
                    .ThenBy(m => m.Health)
                    .FirstOrDefault();
                if (minion != null)
                {
                    Q.Cast(minion);
                    if (Q.GetDamage(minion) > minion.Health)
                    {
                        _lastFarmQKill = minion.NetworkId;
                    }
                }
            }
        }
예제 #2
0
        private void QLogic(HitChance hitChance)
        {
            var target = TargetSelector.GetTarget(Q);

            if (target != null)
            {
                var prediction = CPrediction.Line(Q, target, hitChance);
                if (prediction.TotalHits <= 0 || prediction.CastPosition.Equals(Vector3.Zero) ||
                    SpellCollision(Q, target) && !Orbwalking.InAutoAttackRange(target))
                {
                    var newTarget = TargetSelector.GetTarget(
                        Q, true, default(Vector3), new List <Obj_AI_Hero> {
                        target
                    });
                    if (newTarget != null && !SpellCollision(Q, newTarget))
                    {
                        prediction = CPrediction.Line(Q, newTarget, hitChance);
                    }
                }
                if (prediction.TotalHits > 0 && !prediction.CastPosition.Equals(Vector3.Zero))
                {
                    Q.Cast(prediction.CastPosition);
                }
            }
        }