Пример #1
0
        public void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(1600);

            if (!target.IsValidTarget())
            {
                return;
            }

            var distance = target.Distance(Global.Player);

            if (spellConfig.Q.Ready && this.Q1Enabled)
            {
                if (distance > 1300)
                {
                    return;
                }

                if (spellConfig.IsQ2())
                {
                    if (this.TurretCheckEnabled && target.IsUnderEnemyTurret() || !this.Q2Enabled)
                    {
                        return;
                    }

                    if (spellConfig.QAboutToEnd || distance >= Global.Player.AttackRange + 100)
                    {
                        spellConfig.Q.Cast();
                    }
                }
                else if (target.IsValidTarget(spellConfig.Q.Range))
                {
                    spellConfig.QSmite(target);
                    spellConfig.Q.Cast(target);
                }
            }

            if (spellConfig.R.Ready && spellConfig.Q.Ready && this.Q1Enabled && distance <= 550 && target.Health <= Global.Player.GetSpellDamage(target, SpellSlot.R) +
                Global.Player.GetSpellDamage(target, SpellSlot.Q) + Global.Player.GetSpellDamage(target, SpellSlot.Q, DamageStage.SecondCast))
            {
                spellConfig.R.CastOnUnit(target);
                spellConfig.Q.Cast(target);
            }

            if (spellConfig.E.Ready && this.EEnabled && spellConfig.IsFirst(spellConfig.E) && distance <= 350)
            {
                if (Items.CanUseTiamat())
                {
                    Items.CastTiamat(false);
                    DelayAction.Queue(50, () => spellConfig.E.Cast(target));
                }
                else
                {
                    spellConfig.E.Cast(target);
                }
            }

            if (spellConfig.W.Ready && spellConfig.IsFirst(spellConfig.W) && wardTracker.IsWardReady() && this.WEnabled && this.WardEnabled &&
                distance > (spellConfig.Q.Ready ? 1000 : spellConfig.WardRange))
            {
                if (Game.TickCount - spellConfig.Q.LastCastAttemptT <= 3000 || target.Position.CountEnemyHeroesInRange(2000) > 1)
                {
                    return;
                }

                wardManager.WardJump(target.Position, spellConfig.WardRange);
            }
        }
Пример #2
0
        public void OnKeyPressed()
        {
            if (!this.Enabled || !Target.IsValidTarget() || Global.Player.Level < 6)
            {
                return;
            }

            Temp.IsBubbaKush = this.Bk;

            var dist = GetInsecPosition().Distance(Global.Player);

            if (_spellConfig.Q.Ready && !(this.CanWardJump && dist <= _spellConfig.WardRange && this.QLast))
            {
                if (_spellConfig.IsQ2())
                {
                    _spellConfig.Q.Cast();
                }
                else if (!Global.Player.IsDashing())
                {
                    if (Target.IsValidTarget(_spellConfig.Q.Range))
                    {
                        _lastQUnit = Target;

                        _spellConfig.QSmite(Target);
                        _spellConfig.Q.Cast(Target);
                    }

                    if (!this.ObjectEnabled || this.EnemyObject == null)
                    {
                        return;
                    }

                    _lastQUnit = this.EnemyObject;
                    _spellConfig.Q.Cast(this.EnemyObject);
                }
            }

            if (this.CanWardJump && dist <= InsecRange())
            {
                if (dist <= _spellConfig.WardRange)
                {
                    _wardManager.WardJump(GetInsecPosition(), (int)dist);
                }
                else if (this.FlashReady)
                {
                    if (Game.TickCount - _spellConfig.LastQ1CastAttempt <= 900 || _lastQUnit != null && _spellConfig.IsQ2() && InsecInRange(_lastQUnit.ServerPosition))
                    {
                        return;
                    }

                    if (Game.TickCount - _spellConfig.Q.LastCastAttemptT <= 1000)
                    {
                        return;
                    }

                    _wardManager.WardJump(GetInsecPosition(), _spellConfig.WardRange);
                }
            }

            if (_spellConfig.R.Ready)
            {
                if (dist <= 125 || this.FlashReady)
                {
                    if (_isBkActive)
                    {
                        var enemy = GameObjects.EnemyHeroes.FirstOrDefault(x => x.IsValidTarget(_spellConfig.R.Range) && x.NetworkId != Target.NetworkId);
                        if (enemy != null)
                        {
                            _spellConfig.R.CastOnUnit(enemy);
                        }
                    }
                    else if (Target.IsValidTarget(_spellConfig.R.Range))
                    {
                        _spellConfig.R.CastOnUnit(Target);
                    }
                }

                if (_insecManager.InsecKickValue == 0 && this.FlashReady && GetInsecPosition().Distance(Global.Player) <= 425 && GetInsecPosition().Distance(Global.Player) > 220 &&
                    (!this.CanWardJump || _wardTracker.DidJustWard))
                {
                    if (Global.Player.GetDashInfo().EndPos.Distance(GetInsecPosition()) <= 215 || this.CanWardJump)
                    {
                        return;
                    }

                    SummonerSpells.Flash.Cast(GetInsecPosition());
                    _spellConfig.R.CastOnUnit(Target);
                }
            }
        }