Esempio n. 1
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(SpellManager.Q.Range);

            if (target == null)
            {
                return;
            }

            if (SpellManager.E.Ready && MenuConfig.Combo["E"].Enabled && Dmg.Damage(target) * 1.2f > target.Health &&
                !Global.Player.ServerPosition.Extend(target.ServerPosition, SpellManager.E.Range * 2).PointUnderEnemyTurret())
            {
                SpellManager.CastE(target);
            }

            if (SpellManager.Q.Ready && MenuConfig.Combo["Q"].Enabled)
            {
                SpellManager.CastQ(target);
            }

            if (SpellManager.R.Ready && MenuConfig.Combo["R"].Enabled && Dmg.Damage(target) * 1.2f > target.Health)
            {
                SpellManager.CastR(target);
            }

            if (SpellManager.W.Ready && MenuConfig.Combo["W"].Enabled)
            {
                SpellManager.CastW(target);
            }
        }
Esempio n. 2
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(2000);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            if (SpellManager.R.Ready && MenuConfig.Combo["R"].Enabled &&
                (!MenuConfig.Combo["Killable"].Enabled || Dmg.Damage(target) > target.Health || !target.IsValidTarget(SpellManager.R.Range)))
            {
                SpellManager.CastR(target);
            }

            else if (SpellManager.Q.Ready && MenuConfig.Combo["Q"].Enabled)
            {
                SpellManager.CastQ(target);
            }

            else if (SpellManager.W.Ready && MenuConfig.Combo["W"].Enabled)
            {
                SpellManager.CastW(target);
            }

            else if (SpellManager.E.Ready && MenuConfig.Combo["E"].Enabled)
            {
                SpellManager.CastE(target, MenuConfig.Combo["Flash"].Enabled);
            }
        }
Esempio n. 3
0
        public void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(_spellConfig.FullRange);

            if (target == null || Global.Orbwalker.IsWindingUp)
            {
                return;
            }

            if (_spellConfig.Q.Ready && _menuConfig.Combo["Q"].Enabled)
            {
                _spellConfig.Q.Cast();
            }

            if (_spellConfig.W.Ready &&
                _menuConfig.Combo["W"].Enabled &&
                target.Health <_dmg.Damage(target) &&
                               target.Distance(Global.Player)> Global.Player.AttackRange + 100 &&
                Global.Player.CountEnemyHeroesInRange(2000) <= 2 &&
                target.ServerPosition.CountAllyHeroesInRange(900) == 0)
            {
                _spellConfig.W.Cast(target);
            }

            if (_spellConfig.E.Ready && _menuConfig.Combo["E"].Enabled)
            {
                if (!_menuConfig.Combo[target.ChampionName].Enabled)
                {
                    return;
                }

                _spellConfig.E.CastOnUnit(target);
            }
        }
Esempio n. 4
0
        private static ComboPattern Generate()
        {
            var target = Global.TargetSelector.GetTarget(Extensions.EngageRange + 700);

            if (target == null)
            {
                return(ComboPattern.MaximizeDmg);
            }

            switch (MenuConfig.Combo["Mode"].Value)
            {
            case 0:
                DebugConsole.Write(Maths.Percent(target.Health, Dmg.Damage(target)).ToString());
                if (Maths.Percent(target.Health, Dmg.Damage(target)) >= MenuConfig.Combo["Change"].Value)
                {
                    return(ComboPattern.FastCombo);
                }
                return(ComboPattern.MaximizeDmg);

            case 1: return(ComboPattern.MaximizeDmg);

            case 2: return(ComboPattern.FastCombo);
            }

            return(ComboPattern.MaximizeDmg);
        }
Esempio n. 5
0
        public static void OnUpdate()
        {
            var target = GameObjects.EnemyHeroes.FirstOrDefault(x => x.Distance(Global.Player) < SpellConfig.E.Range && x.HealthPercent() <= 30);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            if (SpellConfig.Q.Ready && target.Health < Dmg.Damage(target) || target.Health < Global.Player.GetSpellDamage(target, SpellSlot.Q) &&
                target.Distance(Global.Player) < SpellConfig.Q.Range && MenuConfig.Killsteal["Q"].Enabled)
            {
                SpellConfig.Q.Cast(target);
            }
            else if (SpellConfig.W.Ready && target.Health < Dmg.Damage(target) || target.Health < Global.Player.GetSpellDamage(target, SpellSlot.W) &&
                     target.Distance(Global.Player) < SpellConfig.W.Range && MenuConfig.Killsteal["W"].Enabled)
            {
                SpellConfig.W.Cast(target);
            }
            else if (SpellConfig.E.Ready && target.Health < Dmg.Damage(target) || target.Health < Global.Player.GetSpellDamage(target, SpellSlot.E) &&
                     target.Distance(Global.Player) < SpellConfig.E.Range && MenuConfig.Killsteal["E"].Enabled)
            {
                SpellConfig.E.Cast(target);
            }
        }
Esempio n. 6
0
 public static bool CanCastR1(Obj_AI_Base target)
 {
     return(MenuConfig.Combo["R"].Value != 0 &&
            SpellConfig.R.Ready &&
            !(MenuConfig.Combo["Check"].Enabled && target.HealthPercent() < MenuConfig.Combo["Check"].Value) &&
            Enums.UltimateMode == UltimateMode.First &&
            !(MenuConfig.Combo["R"].Value == 2 && Dmg.Damage(target) < target.Health));
 }
Esempio n. 7
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(SpellManager.Q.Range + Global.Player.AttackRange);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            if (SpellManager.Q.Ready && MenuConfig.Combo["Q"].Value == 1)
            {
                SpellManager.CastQ(target, MenuConfig.Combo["Mode"].Value, MenuConfig.Combo["ToE"].Enabled);
            }

            else if (SpellManager.E.Ready && MenuConfig.Combo["E"].Enabled && MenuConfig.Combo[target.ChampionName].Enabled)
            {
                SpellManager.CastE(target);
            }

            else if (SpellManager.R.Ready && MenuConfig.Combo["R"].Enabled)
            {
                if (target.Health > Dmg.Damage(target) && MenuConfig.Combo["Killable"].Enabled)
                {
                    return;
                }

                if (Global.Player.CountEnemyHeroesInRange(1500) >= MenuConfig.Combo["Count"].Value && target.HealthPercent() >= 25)
                {
                    SpellManager.R.Cast();
                }
            }

            if (!MenuConfig.Combo["Flash"].Enabled || !SpellManager.E.Ready || !SummonerSpells.IsValid(SummonerSpells.Flash))
            {
                return;
            }

            var allyT = GameObjects.AllyTurrets.FirstOrDefault(x => x.Distance(target) <= 900);

            if (allyT == null)
            {
                return;
            }

            var pos = target.ServerPosition + (target.ServerPosition - allyT.ServerPosition).Normalized() * 200;

            if (pos.Distance(Global.Player) > 425)
            {
                return;
            }

            SpellManager.E.CastOnUnit(target);
            DelayAction.Queue(100, () => SummonerSpells.Flash.Cast(pos), new CancellationToken(false));
        }
Esempio n. 8
0
        private static BurstPattern GeneratePattern(Obj_AI_Base target)
        {
            switch (MenuConfig.BurstMenu["Mode"].Value)
            {
            case 0: return(Maths.Percent(target.Health, Dmg.Damage(target)) > 135 ? BurstPattern.Execution : BurstPattern.TheShy);

            case 1: return(BurstPattern.TheShy);

            case 2: return(BurstPattern.Execution);

            default: throw new ArgumentOutOfRangeException();
            }
        }
Esempio n. 9
0
        public static void OnEndScene(EventArgs args)
        {
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(ene => ene.IsValidTarget(1350)))
            {
                if (!MenuConfig.DrawDmg)
                {
                    return;
                }

                Indicator.Unit = enemy;
                Indicator.DrawDmg(Dmg.Damage(enemy), Color.LawnGreen);
            }
        }
Esempio n. 10
0
        public static void OnEndScene(EventArgs args)
        {
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(ene => ene.LSIsValidTarget(Spells.Q.Range) && !ene.IsZombie))
            {
                if (!MenuConfig.DrawDmg)
                {
                    continue;
                }

                Indicator.unit = enemy;
                Indicator.drawDmg(Dmg.Damage(enemy), new ColorBGRA(255, 204, 0, 170));
            }
        }
Esempio n. 11
0
        public static void OnUpdate()
        {
            if (SpellConfig.E.Ready && MenuConfig.Combo["E"].Enabled)
            {
                var end   = Global.Player.Position.Extend(Game.CursorPos, 200);
                var point = NavMesh.WorldToCell(end).Flags == NavCellFlags.Wall;

                if (point)
                {
                    SpellConfig.E.Cast();
                }
            }

            var target = Global.TargetSelector.GetTarget(SpellConfig.R.Range);

            if (target == null)
            {
                return;
            }

            if (SpellConfig.W.Ready && MenuConfig.Combo["W"].Enabled && target.IsValidTarget(SpellConfig.W.Range))
            {
                SpellConfig.W.Cast(target);
            }
            else if (SpellConfig.Q.Ready && MenuConfig.Combo["Q"].Enabled)
            {
                if (target.IsValidTarget(SpellConfig.W.Range))
                {
                    Global.Player.SpellBook.CastSpell(SpellSlot.Q, target.ServerPosition);
                    DelayAction.Queue(500, () => Items.CastTiamat(), new CancellationToken(false));
                }
                else if (SpellConfig.R.Ready && MenuConfig.Combo["Beyblade"].Enabled && SummonerSpells.IsValid(SummonerSpells.Flash) &&
                         target.Distance(Global.Player) > SpellConfig.Q.Range &&
                         Dmg.Damage(target) * 1.5f >= target.Health)
                {
                    SummonerSpells.Flash.Cast(target.ServerPosition);
                    Global.Player.SpellBook.CastSpell(SpellSlot.Q, target.ServerPosition);
                }
            }

            if (SpellConfig.R.Ready && MenuConfig.Combo["R"].Enabled && (MenuConfig.Combo["R"].Value >= Global.Player.HealthPercent() ||
                                                                         MenuConfig.Combo["R"].Value >= target.HealthPercent() ||
                                                                         Dmg.Damage(target) * 1.5 > target.Health))
            {
                if (MenuConfig.Whitelist[target.ChampionName].Enabled)
                {
                    SpellConfig.R.CastOnUnit(target);
                }
            }
        }
Esempio n. 12
0
        public static void OnPresent()
        {
            if (Global.Player.IsDead || !MenuConfig.Drawings["Dmg"].Enabled)
            {
                return;
            }

            foreach (var target in GameObjects.EnemyHeroes.Where(x => !x.IsDead && x.IsFloatingHealthBarActive && x.IsVisible))
            {
                var damage = Dmg.Damage(target);

                Global.DamageIndicator.Unit = target;
                Global.DamageIndicator.DrawDmg((float)damage, Color.FromArgb(153, 12, 177, 28));
            }
        }
Esempio n. 13
0
        public static void OnPostAttack()
        {
            if (SpellConfig.W.Ready)
            {
                SpellConfig.W.Cast();
                Items.CastTiamat();
                Global.Orbwalker.ResetAutoAttackTimer();
            }
            var target = GameObjects.EnemyHeroes.FirstOrDefault(x => x.IsValidAutoRange());

            if (target == null)
            {
                return;
            }
            if (SpellConfig.R.Ready && Dmg.Damage(target) * 2 > target.Health || target.HealthPercent() <= 40)
            {
                SpellConfig.R.Cast();
            }
        }
Esempio n. 14
0
        public static void OnPresent()
        {
            if (Global.Player.IsDead ||
                MenuConfig.Drawings["Dmg"].Value == 0)
            {
                return;
            }

            if (SpellManager.R.Ready && !SpellManager.CastingUltimate && MenuConfig.Drawings["Minimap"].Enabled)
            {
                Geometry.DrawCircleOnMinimap(Global.Player.ServerPosition, SpellManager.R.Range, Color.DeepPink, 5);
            }

            foreach (var target in GameObjects.EnemyHeroes.Where(x => x.IsVisible && !x.IsDead))
            {
                var damage = Dmg.Damage(target);

                Global.DamageIndicator.Unit = target;
                Global.DamageIndicator.DrawDmg((float)damage, Color.FromArgb(153, 12, 177, 28));
            }
        }
Esempio n. 15
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(SpellConfig.Q.Range + 600);

            if (target == null)
            {
                return;
            }

            if (SpellConfig.R.Ready && Global.Player.CountEnemyHeroesInRange(SpellConfig.Q.Range) >= MenuConfig.Combo["R"].Value && MenuConfig.Combo["R"].Enabled)
            {
                SpellConfig.R.Cast();
            }

            if (SpellConfig.E.Ready && target.Distance(Global.Player) <= MenuConfig.Combo["E"].Value && MenuConfig.Combo["E"].Enabled)
            {
                SpellManager.CastE(target);
            }

            if (MenuConfig.Combo["Jump"].Enabled && !(SpellConfig.E.Ready || Dmg.Damage(target) > target.Health * 0.75f) ||
                MenuConfig.Combo["Delay"].Enabled && (Game.TickCount - SpellConfig.E.LastCastAttemptT < 800 || SpellConfig.E.Ready && SpellConfig.E.LastCastAttemptT == 0))
            {
                return;
            }

            if (target.Distance(Global.Player) > SpellConfig.Q.Range)
            {
                var minion = GameObjects.EnemyMinions.FirstOrDefault(x => x.IsValid &&
                                                                     x.Distance(target) < 300 &&
                                                                     x.Distance(target) < Global.Player.Distance(target));
                if (minion != null)
                {
                    SpellConfig.Q.CastOnUnit(minion);
                }
            }
            else
            {
                SpellConfig.Q.CastOnUnit(target);
            }
        }
Esempio n. 16
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(SpellConfig.Q.Range);

            if (target == null)
            {
                return;
            }

            if (SpellConfig.Q.Ready && MenuConfig.Harass["Q"].Enabled && target.IsValidTarget(SpellConfig.Q.Range))
            {
                SpellConfig.Q.Cast(target);
            }

            if (SpellConfig.W.Ready && Global.Player.ManaPercent() >= MenuConfig.Harass["W"].Value)
            {
                if (MenuConfig.Harass["W"].Enabled && target.IsValidTarget(SpellConfig.W.Range))
                {
                    SpellConfig.W.Cast(target);
                }

                if (MenuConfig.Harass["WA"].Enabled)
                {
                    var ally = GameObjects.AllyHeroes.FirstOrDefault(x => x.IsValidTarget(SpellConfig.W.Range - 100));
                    if (ally != null)
                    {
                        SpellConfig.W.Cast(ally);
                    }
                }
            }

            if (SpellConfig.E.Ready && MenuConfig.Harass["E"].Enabled && Global.Player.ManaPercent() >= 50 && target.IsValidTarget(SpellConfig.E.Range) &&
                Dmg.Damage(target) >= target.Health)
            {
                SpellConfig.E.Cast(target);
            }
        }
Esempio n. 17
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(2500);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            var targetDist = target.Distance(Global.Player);
            var minion     = MinionHelper.GetDashableMinion(target);

            var m2 = MinionHelper.GetClosest(target);
            var positionBehindMinion = MinionHelper.WalkBehindMinion(target);

            if (!positionBehindMinion.IsZero && positionBehindMinion.Distance(Global.Player) <= MenuConfig.Combo["MRange"].Value)
            {
                MinionHelper.ExtendedMinion = positionBehindMinion;
                MinionHelper.ExtendedTarget = target.ServerPosition;
            }

            var dashDistance = MinionHelper.DashDistance(minion, target);

            if (SpellConfig.E.Ready)
            {
                if (targetDist <= Global.Player.AttackRange && !SpellConfig.Q.Ready)
                {
                    return;
                }

                if (!target.HasBuff("YasuoDashWrapper") && targetDist <= SpellConfig.E.Range && (targetDist > SpellConfig.E.Range - 50 && minion == null || Extension.CurrentMode == Mode.Tornado))
                {
                    SpellConfig.E.CastOnUnit(target);
                }

                if (positionBehindMinion.Distance(Global.Player) <= MenuConfig.Combo["MRange"].Value &&
                    MenuConfig.Combo["Walk"].Enabled &&
                    Global.Orbwalker.CanMove() &&
                    !(MenuConfig.Combo["Turret"].Enabled && target.IsUnderEnemyTurret()))
                {
                    Global.Orbwalker.Move(positionBehindMinion);

                    if (positionBehindMinion.Distance(Global.Player) <= 65)
                    {
                        SpellConfig.E.CastOnUnit(m2);
                    }
                }
                else if (minion != null)
                {
                    if (MenuConfig.Combo["Turret"].Enabled && minion.ServerPosition.PointUnderEnemyTurret() ||
                        MenuConfig.Combo["Dash"].Value == 0 &&
                        minion.Distance(Game.CursorPos) > MenuConfig.Combo["Range"].Value)
                    {
                        return;
                    }

                    SpellConfig.E.CastOnUnit(minion);
                }
            }

            if (SpellConfig.Q.Ready)
            {
                switch (Extension.CurrentMode)
                {
                case Mode.Dashing:
                case Mode.DashingTornado:
                    if (MenuConfig.Combo["Flash"].Enabled && dashDistance < 470 && dashDistance > 220 && (Dmg.Damage(target) * 1.25 > target.Health || target.ServerPosition.CountEnemyHeroesInRange(220) >= 2))
                    {
                        SpellConfig.Q.Cast();
                        DelayAction.Queue(Game.Ping / 2 + 30, () => SummonerSpells.Flash.Cast(target.Position), new CancellationToken(false));
                    }
                    else
                    {
                        var circle = new Geometry.Circle(Global.Player.GetDashInfo().EndPos, 220);
                        var count  = GameObjects.EnemyHeroes.Count(x => x.IsValidTarget() && x.Distance(circle.Center.To3D()) <= circle.Radius);

                        if (count != 0)
                        {
                            SpellConfig.Q.Cast(target);
                        }
                    }
                    break;

                default:
                    if (!Global.Player.IsDashing() && target.IsValidSpellTarget(SpellConfig.Q.Range) && !(SpellConfig.E.Ready && !target.HasBuff("YasuoDashWrapper") && Extension.CurrentMode == Mode.Tornado))
                    {
                        var enemyHero = GameObjects.EnemyHeroes.OrderBy(x => x.Health).FirstOrDefault(x => x.IsValidTarget(SpellConfig.Q.Range));
                        if (enemyHero != null)
                        {
                            SpellConfig.Q.Cast(enemyHero);
                        }
                    }
                    break;
                }
            }

            if (SpellConfig.R.Ready && KnockUpHelper.KnockedUp(target) && KnockUpHelper.IsItTimeToUlt(target))
            {
                var airbourneTargets = GameObjects.EnemyHeroes.Where(x => KnockUpHelper.KnockedUp(x) && x.Distance(Global.Player) <= SpellConfig.R.Range);
                var targetCount      = (airbourneTargets as Obj_AI_Hero[] ?? airbourneTargets.ToArray()).Length;

                if (targetCount >= MenuConfig.Combo["Count"].Value || targetDist > 350)
                {
                    SpellConfig.R.Cast();
                }
            }
        }
Esempio n. 18
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(SpellManager.WCastRange + SpellManager.Q.Range);

            if (target == null)
            {
                return;
            }

            if (SpellManager.R.Ready &&
                target.IsValidTarget(SpellManager.R.Range) &&
                !(MenuConfig.Combo["Killable"].Enabled && Dmg.Damage(target) < target.Health))
            {
                if (target.HealthPercent() <= 25 ||
                    !MenuConfig.Combo[target.ChampionName].Enabled)
                {
                    return;
                }

                SpellManager.CastR(target);
            }

            if (SpellManager.W.Ready &&
                MenuConfig.Combo["W"].Enabled &&
                target.IsValidTarget(SpellManager.WCastRange + SpellManager.R.Range))
            {
                if (ShadowManager.CanCastFirst(SpellSlot.W))
                {
                    if (Game.TickCount - SpellManager.LastR < 1500)
                    {
                        foreach (var shadow in ShadowManager.Shadows)
                        {
                            if (shadow == null)
                            {
                                continue;
                            }

                            if (target.IsDashing())
                            {
                                SpellManager.W.Cast(target.GetDashInfo().EndPos);
                            }

                            switch (MenuConfig.Combo["Style"].Value)
                            {
                            case 0:
                                var trianglePos = target.ServerPosition + (target.ServerPosition - shadow.ServerPosition).To2D().Perpendicular().To3D().Normalized() * 350;
                                if (trianglePos.Distance(target) > SpellManager.WCastRange)
                                {
                                    goto case 1;
                                }

                                SpellManager.W.Cast(trianglePos);
                                break;

                            case 1:
                                SpellManager.W.Cast(target.ServerPosition.Extend(shadow.ServerPosition, -SpellManager.WCastRange));
                                break;

                            case 2:
                                SpellManager.W.Cast(Game.CursorPos);
                                break;
                            }
                        }
                    }

                    else if (target.IsValidTarget(SpellManager.WCastRange + 200) && ShadowManager.CanCastFirst(SpellSlot.W) && !(SpellManager.R.Ready && target.HealthPercent() > 25))
                    {
                        SpellManager.W.Cast(target.ServerPosition);
                    }
                }
                else if (ShadowManager.CanSwitchToShadow(SpellSlot.W) &&
                         ShadowManager.Shadows.FirstOrDefault().Distance(target) <= Global.Player.Distance(target) &&
                         target.Distance(Global.Player) > Global.Player.AttackRange + 65)
                {
                    SpellManager.W.Cast();
                }
            }

            else if (SpellManager.Q.Ready &&
                     MenuConfig.Combo["Q"].Enabled)
            {
                SpellManager.CastQ(target);
            }

            if (SpellManager.E.Ready &&
                MenuConfig.Combo["E"].Enabled)
            {
                SpellManager.CastE(target);
            }
        }
Esempio n. 19
0
 private static bool CanFlashKill(Obj_AI_Base target)
 {
     return(target.Health < Dmg.Damage(target) * .3 && Global.Player.HealthPercent() >= 65 ||
            target.Health < Global.Player.GetAutoAttackDamage(target) && GameObjects.AllyHeroes.FirstOrDefault(x => x.Distance(target) < 300) == null ||
            target.Health < Dmg.Damage(target) * .75f && target.HealthPercent() <= 25);
 }
Esempio n. 20
0
        public static void OnUpdate()
        {
            var target = TargetSelector.GetTarget(SpellManager.WCastRange + SpellManager.R.Range);

            if (target == null)
            {
                return;
            }

            if (SpellManager.R.Ready && target.IsValidTarget(SpellManager.R.Range) && !(MenuConfig.Combo["Killable"].Enabled && Dmg.Damage(target) < target.Health))
            {
                if (!MenuConfig.Combo[target.ChampionName].Enabled)
                {
                    return;
                }

                SpellManager.CastR(target);
            }

            if (SpellManager.W.Ready && MenuConfig.Combo["W"].Enabled)
            {
                if (ShadowManager.CanCastW1())
                {
                    if (!target.IsValidTarget(SpellManager.R.Range))
                    {
                        SpellManager.W.Cast(target.ServerPosition);
                    }
                    else if (MenuConfig.Combo["Extend"].Enabled)
                    {
                        foreach (var shadow in ShadowManager.Shadows)
                        {
                            SpellManager.W.Cast(target.ServerPosition.Extend(shadow.ServerPosition, -2000f));
                        }
                    }
                }
                else if (ShadowManager.CanSwitchToShadow() && ShadowManager.Shadows.FirstOrDefault().Distance(target) <= Global.Player.Distance(target) && target.Distance(Global.Player) > Global.Player.AttackRange + 65)
                {
                    SpellManager.W.Cast();
                }
            }
            else if (SpellManager.Q.Ready && MenuConfig.Combo["Q"].Enabled)
            {
                SpellManager.CastQ(target);
            }

            if (SpellManager.E.Ready && MenuConfig.Combo["E"].Enabled)
            {
                SpellManager.CastE(target);
            }
        }
Esempio n. 21
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(2500);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            var targetDist = target.Distance(Global.Player);
            var minion     = MinionHelper.GetDashableMinion(target);

            var positionBehindMinion = MinionHelper.WalkBehindMinion(target, minion);

            if (!positionBehindMinion.IsZero && positionBehindMinion.Distance(Global.Player) <= MenuConfig.Combo["MRange"].Value)
            {
                MinionHelper.ExtendedMinion = positionBehindMinion;
                MinionHelper.ExtendedTarget = target.ServerPosition;
            }

            var dashDistance = MinionHelper.DashDistance(minion, target);

            if (SpellConfig.E.Ready && targetDist > Global.Player.AttackRange)
            {
                if (MinionHelper.IsDashable(target) && (Extension.CurrentMode == Mode.Tornado ||
                                                        targetDist > SpellConfig.E.Range - target.BoundingRadius && GameObjects.EnemyMinions.Count(MinionHelper.IsDashable) == 0))
                {
                    SpellConfig.E.CastOnUnit(target);
                }

                if (MenuConfig.Combo["Walk"].Enabled && Global.Orbwalker.CanMove() && !(MenuConfig.Combo["Turret"].Enabled && target.IsUnderEnemyTurret()))
                {
                    SpellConfig.CastE(target, true, MenuConfig.Combo["MRange"].Value);
                }
                else if (minion != null)
                {
                    if (MenuConfig.Combo["Turret"].Enabled && minion.ServerPosition.PointUnderEnemyTurret() ||
                        MenuConfig.Combo["Dash"].Value == 0 && minion.Distance(Game.CursorPos) > MenuConfig.Combo["Range"].Value)
                    {
                        return;
                    }

                    SpellConfig.CastE(minion);
                }
            }

            if (SpellConfig.Q.Ready)
            {
                switch (Extension.CurrentMode)
                {
                case Mode.Dashing:
                case Mode.DashingTornado:
                    if (MenuConfig.Combo["Flash"].Enabled && dashDistance < 425 && dashDistance > 250 && targetDist > 220 &&
                        (Dmg.Damage(target) * 1.25 > target.Health || target.ServerPosition.CountEnemyHeroesInRange(220) >= 2))
                    {
                        DelayAction.Queue(Game.Ping / 2,
                                          () =>
                        {
                            SpellConfig.Q.Cast();
                        },
                                          new CancellationToken(false));

                        DelayAction.Queue(Game.Ping / 2 + 50,
                                          () =>
                        {
                            SummonerSpells.Flash.Cast(target.Position);
                        },
                                          new CancellationToken(false));
                    }
                    else
                    {
                        var circle = new Geometry.Circle(Global.Player.GetDashInfo().EndPos, 220);
                        var count  = GameObjects.EnemyHeroes.Count(x => x.IsValidTarget() && x.Distance(circle.Center.To3D()) <= circle.Radius);

                        if (count != 0)
                        {
                            SpellConfig.Q.Cast(target);
                        }
                    }
                    break;

                default:
                    SpellConfig.CastQ(target);
                    break;
                }
            }

            if (SpellConfig.R.Ready && MenuConfig.Whitelist[target.ChampionName].Enabled && target.IsAirbone() && KnockUpHelper.IsItTimeToUlt(target))
            {
                var airbourneTargets = GameObjects.EnemyHeroes.Where(x => KnockUpHelper.KnockedUp(x) && x.Distance(Global.Player) <= SpellConfig.R.Range);
                var targetCount      = (airbourneTargets as Obj_AI_Hero[] ?? airbourneTargets.ToArray()).Length;

                if (targetCount >= MenuConfig.Combo["Count"].Value || targetDist > 350)
                {
                    SpellConfig.R.Cast();
                }
            }
        }
Esempio n. 22
0
        public static void OnPreAttack(AttackableUnit target, PreAttackEventArgs preAttackEventArgs)
        {
            if (!SpellConfig.E.Ready)
            {
                return;
            }

            if (((Obj_AI_Base)target).HealthPercent() <= Global.Player.HealthPercent() || Dmg.Damage((Obj_AI_Base)target) * 2 > target.Health)
            {
                preAttackEventArgs.Cancel = true;
                SpellConfig.E.CastOnUnit(target);
            }
        }
Esempio n. 23
0
        public static void OnUpdate()
        {
            var ganked = MenuConfig.Combo["Force"].Enabled &&
                         GameObjects.AllyHeroes.FirstOrDefault(x => x.SpellBook.GetSpell(SpellSlot.Summoner1).Name.ToLower().Contains("smite") ||
                                                               x.SpellBook.GetSpell(SpellSlot.Summoner2).Name.ToLower().Contains("smite")) != null;

            if (SpellConfig.Q.Ready)
            {
                var killable = Global.TargetSelector.GetTarget(SpellConfig.Q.Range);
                if (killable != null && ganked || Dmg.Damage(killable) * 1.2 > killable?.Health)
                {
                    SpellConfig.Q.CastOnUnit(killable);
                }

                var longRangeTarget = Global.TargetSelector.GetTarget(SpellConfig.Q.Range * 3);

                if (longRangeTarget == null || longRangeTarget.IsUnderEnemyTurret() && MenuConfig.Combo["Turret"].Enabled && longRangeTarget.Health > Dmg.Damage(longRangeTarget))
                {
                    return;
                }

                var minion = GameObjects.EnemyMinions.
                             Where(x => x.Distance(Global.Player) < SpellConfig.Q.Range && x.Distance(longRangeTarget) < Global.Player.Distance(longRangeTarget)).
                             OrderBy(x => x.Distance(longRangeTarget)).
                             FirstOrDefault();

                if (minion == null || MenuConfig.Combo["Mode"].Value == 0 && minion.Distance(Game.CursorPos) > MenuConfig.Combo["Range"].Value)
                {
                    return;
                }

                if (minion.Health < Global.Player.GetSpellDamage(minion, SpellSlot.Q))
                {
                    SpellConfig.Q.CastOnUnit(minion);
                }
                else if (SpellConfig.R.Ready && minion.Health > Global.Player.GetSpellDamage(minion, SpellSlot.Q) &&
                         minion.Health < Global.Player.GetSpellDamage(minion, SpellSlot.R) + Global.Player.GetSpellDamage(minion, SpellSlot.Q) &&
                         (killable?.Health < Dmg.Damage(killable) || killable.HealthPercent() <= 40))
                {
                    SpellConfig.R.Cast(minion);
                }
            }

            var target = Global.TargetSelector.GetTarget(SpellConfig.R.Range);

            if (target == null)
            {
                return;
            }

            if (MenuConfig.Combo["Killable"].Enabled && target.Distance(Global.Player) < SpellConfig.Q.Range && target.Health < Dmg.Damage(target) && SpellConfig.Q.Ready)
            {
                SpellConfig.Q.CastOnUnit(target);
            }

            if (SpellConfig.E.Ready && target.Distance(Global.Player) <= SpellConfig.E.Range)
            {
                if (ganked)
                {
                    if (SpellConfig.Q.Ready)
                    {
                        SpellConfig.Q.CastOnUnit(target);
                    }
                    SpellConfig.E.CastOnUnit(target);
                }

                if (target.HealthPercent() <= Global.Player.HealthPercent() || Dmg.Damage(target) * 2 > target.Health)
                {
                    SpellConfig.E.CastOnUnit(target);
                }
            }

            if (SpellConfig.R.Ready && (target.Health < Dmg.Damage(target) || target.HealthPercent() <= 40 || SpellConfig.RCount < 4))
            {
                SpellConfig.R.Cast(target);
            }
        }