Пример #1
0
 public override void useQ(Obj_AI_Base target)
 {
     if (!Q1.IsReady() || target == null)
     {
         return;
     }
     CastQ(target);
 }
Пример #2
0
        private float GetW1Damage(Obj_AI_Base enemy)
        {
            var target = TargetSelector.GetTarget(W.Range + 200, DamageType.Magical);

            if (target == null)
            {
                return((float)0);
            }
            double damage = 0d;

            if (W1.IsReady() && R.IsReady())
            {
                damage += player.GetSpellDamage(target, SpellSlot.W, (SpellStages)1);
            }
            return((float)damage * 2);
        }
Пример #3
0
        private void Combo()
        {
            var target = ARAMTargetSelector.getBestTarget(W.Range);

            if (target == null)
            {
                return;
            }
            var qtarget = ARAMTargetSelector.getBestTarget(600);

            if (qtarget == null)
            {
                return;
            }
            var wpred = W.GetPrediction(target);

            if (E.IsReady() && target.IsValidTarget(E.Range))
            {
                E.CastIfHitchanceEquals(target, HitChance.Medium, true);
            }
            if (W.IsReady() &&
                R.IsReady() && target.IsValidTarget(W.Range) &&
                wpred.HitChance >= HitChance.High && CalcDamage(target) > target.Health)
            {
                R.Cast();

                Core.DelayAction(new Action(() =>
                {
                    W.CastIfHitchanceEquals(target, HitChance.High, true);
                }), 1010);
            }
            else
            {
                if (W.IsReady() && target.IsValidTarget(W.Range))
                {
                    W.CastIfHitchanceEquals(target, HitChance.High, true);
                }
            }

            if (Q.IsReady() && R.IsReady() &&
                qtarget.IsValidTarget(650) &&
                player.Position.CountEnemiesInRange(650) >=
                2)
            {
                R.Cast();
                Q.Cast(player.Position.Extend(target.Position, +300).To3D());
            }
            else
            {
                if (Q.IsReady() && qtarget.IsValidTarget(650) &&

                    player.Position.CountEnemiesInRange(650) >= 1)
                {
                    Q.Cast(player.Position.Extend(target.Position, +300).To3D());
                }
            }
            if (E3.IsReady() &&
                target.Position.CountEnemiesInRange(450 - 250) >=
                2)
            {
                CastER(target);
            }
            else
            {
            }
        }
Пример #4
0
        public override void useSpells()
        {
            var target = ARAMTargetSelector.getBestTarget(_humanW.Range);

            if (target == null)
            {
                return;                 //buffelisecocoon
            }
            CheckSpells();
            var qdmg = player.GetSpellDamage(target, SpellSlot.Q);
            var wdmg = player.GetSpellDamage(target, SpellSlot.W);

            if (_human)
            {
                if (target.Distance(player.Position) < _humanE.Range && _humanE.IsReady())
                {
                    if (_humanE.GetPrediction(target).HitChance >= HitChance.High)
                    {
                        _humanE.Cast(target);
                    }
                }

                if (player.Distance(target) <= _humanQ.Range && _humanQ.IsReady())
                {
                    _humanQ.Cast(target);
                }
                if (player.Distance(target) <= _humanW.Range && _humanW.IsReady())
                {
                    _humanW.Cast(target);
                }
                if (!_humanQ.IsReady() && !_humanW.IsReady() && !_humanE.IsReady() && _r.IsReady())
                {
                    _r.Cast();
                }
                if (!_humanQ.IsReady() && !_humanW.IsReady() && player.Distance(target) <= _spiderQ.Range && _r.IsReady())
                {
                    _r.Cast();
                }
            }
            if (!_spider)
            {
                return;
            }
            if (player.Distance(target) <= _spiderQ.Range && _spiderQ.IsReady())
            {
                _spiderQ.Cast(target);
            }
            if (player.Distance(target) <= 200 && _spiderW.IsReady())
            {
                _spiderW.Cast();
            }
            if (player.Distance(target) <= _spiderE.Range && player.Distance(target) > _spiderQ.Range && _spiderE.IsReady() && !_spiderQ.IsReady())
            {
                if ((safeGap(target)) || target.Distance(ARAMSimulator.fromNex.Position, true) < player.Distance(ARAMSimulator.fromNex.Position, true))
                {
                    _spiderE.Cast(target);
                }
            }
            if (player.Distance(target) > _spiderQ.Range && !_spiderE.IsReady() && _r.IsReady() && !_spiderQ.IsReady())
            {
                _r.Cast();
            }
            if (_humanQ.IsReady() && _humanW.IsReady() && _r.IsReady())
            {
                _r.Cast();
            }
            if (_humanQ.IsReady() && _humanW.IsReady() && _r.IsReady())
            {
                _r.Cast();
            }
            if ((_humanQ.IsReady() && qdmg >= target.Health || _humanW.IsReady() && wdmg >= target.Health))
            {
                _r.Cast();
            }

            Core.DelayAction(() => Player.IssueOrder(GameObjectOrder.AttackUnit, target), 100);
        }