Example #1
0
        private static void ProcessSpells(bool useQ,
                                          bool useW,
                                          bool useE,
                                          bool useR,
                                          bool useSphereE,
                                          Obj_AI_Hero target = null)
        {
            var targets = GetTargets(target);

            if (useR && Spells[SpellSlot.R].IsReady() && targets[SpellSlot.R].IsValidTarget(Spells[SpellSlot.R].Range))
            {
                ProcessUltimate(targets[SpellSlot.R]);
            }

            if (IgniteSpell.IsReady())
            {
                ProcessIgnite(targets[SpellSlot.Ignite]);
            }

            if (useSphereE && targets[SpellSlot.SphereE].IsValidTarget() &&
                !Collision.DetectCollision(targets[SpellSlot.SphereE]) && Spells[SpellSlot.Q].IsReady() &&
                (Spells[SpellSlot.E].IsReady() ||
                 (Spells[SpellSlot.E].Instance.Instance.CooldownExpires - Game.Time < 1 && Spells[SpellSlot.E].Level > 0)) &&
                Spells[SpellSlot.Q].Instance.Instance.ManaCost + Spells[SpellSlot.E].Instance.Instance.ManaCost <=
                EntryPoint.Player.Mana)
            {
                ProcessSphereE(targets[SpellSlot.SphereE]);
            }

            if (useQ && targets[SpellSlot.SphereE].IsValidTarget() && Spells[SpellSlot.Q].IsReady())
            {
                ProcessQ(targets[SpellSlot.SphereE]);
            }

            if (useE && Spells[SpellSlot.E].IsReady() &&
                (int)(Game.ClockTime * 0x3E8) - Spells[SpellSlot.W].LastCastAttemptTick > Game.Ping + 150 &&
                (int)(Game.ClockTime * 0x3E8) - Spells[SpellSlot.Q].LastCastAttemptTick > Game.Ping)
            {
                foreach (var enemy in ObjectCache.GetHeroes().Where(e => e.IsValidTarget(Spells[SpellSlot.E].Range)))
                {
                    if (enemy.GetComboDamage(useQ, useW, true, useR) > enemy.Health &&
                        EntryPoint.Player.Distance(enemy, true) <= Math.Pow(Spells[SpellSlot.E].Range, 2))
                    {
                        Spells[SpellSlot.E].Instance.Cast(enemy);
                        Spells[SpellSlot.E].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8);
                    }
                    else if (EntryPoint.Player.Distance(enemy, true) <= Math.Pow(Spells[SpellSlot.SphereE].Range, 2))
                    {
                        ProcessE(enemy);
                    }
                }
            }

            if (useW && targets[SpellSlot.W].IsValidTarget() && Spells[SpellSlot.W].IsReady())
            {
                ProcessW(targets[SpellSlot.SphereE], targets[SpellSlot.W]);
            }
        }
Example #2
0
        private void Game_OnUpdate(EventArgs args)
        {
            if (orbwalker == null)
            {
                return;
            }

            var target = TargetSelector.GetTarget(Player, 1337f, TargetSelector.DamageType.Physical);

            switch (orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Mechanics.ProcessCombo(target);
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                Mechanics.ProcessFarm(true);
                Mechanics.JungleFarm();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                Mechanics.ProcessFarm();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                if (Menu.Item("l33t.stds.harass.usemixed").GetValue <bool>())
                {
                    Mechanics.ProcessHarass(target);
                }
                break;
            }
            if (Menu.Item("l33t.stds.harass.togglekey").GetValue <KeyBind>().Active)
            {
                Mechanics.ProcessHarass(target);
            }
            if (Menu.Item("l33t.stds.qesettings.qetocursor").GetValue <KeyBind>().Active&&
                Mechanics.Spells[SpellSlot.E].IsReady() && Mechanics.Spells[SpellSlot.Q].IsReady())
            {
                foreach (var enemy in
                         ObjectCache.GetHeroes()
                         .Where(
                             e =>
                             e.IsValidTarget() &&
                             Player.Distance(e.Position, true) <=
                             Math.Pow(Mechanics.Spells[SpellSlot.SphereE].Range, 2) &&
                             e.Distance(Game.CursorPos, true) <= 22500))
                {
                    Mechanics.ProcessSphereE(enemy);
                }
            }
            if (Menu.Item("l33t.stds.ks.togglekey").GetValue <KeyBind>().Active)
            {
                Mechanics.ProcessKillSteal();
            }
        }
Example #3
0
        private static IDictionary <SpellSlot, Obj_AI_Hero> GetTargets(Obj_AI_Hero target)
        {
            if (target.IsValidTarget())
            {
                return(new Dictionary <SpellSlot, Obj_AI_Hero>
                {
                    { SpellSlot.Q, target },
                    { SpellSlot.W, target },
                    { SpellSlot.E, target },
                    { SpellSlot.R, target },
                    { SpellSlot.SphereE, target },
                    { SpellSlot.Ignite, target }
                });
            }
            var qTarget = TargetSelector.GetTarget(Spells[SpellSlot.Q].Range + 25f, TargetSelector.DamageType.Magical);
            var wTarget = TargetSelector.GetTarget(
                Spells[SpellSlot.W].Range + Spells[SpellSlot.W].Instance.Width, TargetSelector.DamageType.Magical);
            var rTarget = TargetSelector.GetTarget(Spells[SpellSlot.R].Range, TargetSelector.DamageType.Magical);

            if (rTarget.IsValidTarget() &&
                !EntryPoint.Menu.Item("l33t.stds.ups.ignore." + rTarget.ChampionName).GetValue <bool>())
            {
                rTarget =
                    ObjectCache.GetHeroes()
                    .FirstOrDefault(
                        hero => !EntryPoint.Menu.Item("l33t.stds.ups.ignore." + hero.ChampionName).GetValue <bool>());
            }
            var qeTarget     = TargetSelector.GetTarget(Spells[SpellSlot.SphereE].Range, TargetSelector.DamageType.Magical);
            var igniteTarget = TargetSelector.GetTarget(IgniteSpell.Range, TargetSelector.DamageType.True);

            return(new Dictionary <SpellSlot, Obj_AI_Hero>
            {
                { SpellSlot.Q, qTarget },
                { SpellSlot.W, wTarget },
                { SpellSlot.R, rTarget },
                { SpellSlot.SphereE, qeTarget },
                { SpellSlot.Ignite, igniteTarget }
            });
        }
Example #4
0
        private static void DrawDebug()
        {
            var minions = ObjectCache.GetMinions();
            var heros   = ObjectCache.GetHeroes();

            Sprite.Begin(SpriteFlags.AlphaBlend);

            Font.DrawText(
                Sprite,
                "Close Minion Count: " + (minions != null ? minions.Count(m => m.IsValidTarget(475f)) : 0),
                (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.64f), Color.White);
            Font.DrawText(
                Sprite, "Minion Count: " + (minions != null ? minions.Count() : 0),
                (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.625f), Color.White);
            Font.DrawText(
                Sprite, "Hero Count: " + (heros != null ? heros.Count() : 0), (int)(Drawing.Width * 0.90f),
                (int)(Drawing.Height * 0.615f), Color.White);
            FontB.DrawText(
                Sprite, "Welcome back, " + ObjectManager.Player.Name + ".", (int)(Drawing.Width * 0.90f),
                (int)(Drawing.Height * 0.60f), Color.Red);

            Sprite.End();
        }
Example #5
0
        public void RegisterMenu()
        {
            orbwalker = new Orbwalking.Orbwalker(Menu.AddSubMenu(new Menu("Orbwalker", "l33t.stds.orbwalker")));
            TargetSelector.AddToMenu(Menu.AddSubMenu(new Menu("TargetSelector", "l33t.stds.targetselector")));

            var combo = new Menu("Combo Settings", "l33t.stds.combo");

            combo.AddItem(new MenuItem("l33t.stds.combo.useQ", "Use Dark Sphere (Q)")).SetValue(true);
            combo.AddItem(new MenuItem("l33t.stds.combo.useW", "Use Force of Will (W)")).SetValue(true);
            combo.AddItem(new MenuItem("l33t.stds.combo.useE", "Use Scatter the Weak (E)")).SetValue(true);
            combo.AddItem(new MenuItem("l33t.stds.combo.useR", "Use Unleashed Power (R)")).SetValue(true);
            combo.AddItem(
                new MenuItem("l33t.stds.combo.useQE", "[Combination] Use Dark Sphere (Q) + Scatter the Weak (E)"))
            .SetValue(true);
            Menu.AddSubMenu(combo);
            var harass = new Menu("Harass Settings", "l33t.stds.harass");

            harass.AddItem(new MenuItem("l33t.stds.harass.useQ", "Use Dark Sphere (Q)")).SetValue(true);
            harass.AddItem(new MenuItem("l33t.stds.harass.useQAA", "Use Dark Sphere (Q) when enemy auto attacks (Me)"))
            .SetValue(false);
            harass.AddItem(new MenuItem("l33t.stds.harass.useW", "Use Force of Will (W)")).SetValue(true);
            harass.AddItem(new MenuItem("l33t.stds.harass.useE", "Use Scatter the Weak (E)")).SetValue(true);
            harass.AddItem(
                new MenuItem("l33t.stds.harass.useQE", "[Combination] Use Dark Sphere (Q) + Scatter the Weak (E)"))
            .SetValue(true);
            harass.AddItem(
                new MenuItem("l33t.stds.harass.turret", "[Condition] Disable Harass under turret").SetValue(false));
            harass.AddItem(
                new MenuItem("l33t.stds.harass.mana", "[Condition] Harass if mana is above").SetValue(new Slider(30)));
            harass.AddItem(
                new MenuItem("l33t.stds.harass.usemixed", "[Condition] Use Orbwalker 'Mixed' key for Harass").SetValue(
                    true));
            harass.AddItem(
                new MenuItem("l33t.stds.harass.togglekey", "[Condition] Harass Toggle Key").SetValue(
                    new KeyBind('Z', KeyBindType.Toggle)));
            Menu.AddSubMenu(harass);
            var farm = new Menu("Farming Settings", "l33t.stds.farming");

            farm.AddItem(
                new MenuItem("l33t.stds.farming.qmode", "Use Dark Sphere (Q)").SetValue(
                    new StringList(new[] { "Freeze", "Lane Clear", "Both", "None" }, 2)));
            farm.AddItem(
                new MenuItem("l33t.stds.farming.wmode", "Use Force of Will (W)").SetValue(
                    new StringList(new[] { "Freeze", "Lane Clear", "Both", "None" }, 1)));
            farm.AddItem(
                new MenuItem("l33t.stds.farming.emode", "Use Scatter the Weak (E)").SetValue(
                    new StringList(new[] { "Freeze", "Lane Clear", "Both", "None" }, 3)));
            farm.AddItem(new MenuItem("l33t.stds.farming.farmmana", "[Condition] Minimum % of Mana for Last Hit").SetValue(new Slider(30)));
            farm.AddItem(new MenuItem("l33t.stds.farming.lcmana", "[Condition] Minimum % of Mana for Lane Clear").SetValue(new Slider(30)));
            Menu.AddSubMenu(farm);
            var jungleFarm = new Menu("Jungle Farm Settings", "l33t.stds.junglefarming");

            jungleFarm.AddItem(new MenuItem("l33t.stds.junglefarming.qmode", "Use Dark Sphere (Q)").SetValue(true));
            jungleFarm.AddItem(new MenuItem("l33t.stds.junglefarming.wmode", "Use Force of Will (W)").SetValue(true));
            jungleFarm.AddItem(new MenuItem("l33t.stds.junglefarming.emode", "Use Scatter the Weak (E)").SetValue(true));
            Menu.AddSubMenu(jungleFarm);
            var ks = new Menu("Killsteal Settings", "l33t.stds.ks");

            ks.AddItem(new MenuItem("l33t.stds.ks.useQ", "Use Dark Sphere (Q)")).SetValue(true);
            ks.AddItem(new MenuItem("l33t.stds.ks.useW", "Use Force of Will (W)")).SetValue(true);
            ks.AddItem(new MenuItem("l33t.stds.ks.useE", "Use Scatter the Weak (E)")).SetValue(true);
            ks.AddItem(new MenuItem("l33t.stds.ks.useQE", "[Combination] Use Dark Sphere (Q) + Scatter the Weak (E)"))
            .SetValue(true);
            ks.AddItem(new MenuItem("l33t.stds.ks.useR", "Use Unleashed Power (R)")).SetValue(true);
            ks.AddItem(
                new MenuItem("l33t.stds.ks.togglekey", "[Condition] Killsteal Toggle Key").SetValue(
                    new KeyBind('U', KeyBindType.Toggle)));
            ks.AddItem(new MenuItem("l33t.stds.ks.spacer0", ""));
            ks.AddItem(
                new MenuItem("l33t.stds.ks.usefqe", "[Flash Kill] Use Dark Sphere (Q) + Scatter the Weak (E)").SetValue(
                    true));
            ks.AddItem(new MenuItem("l33t.stds.ks.usefr", "[Flash Kill] Use Unleashed Power (R)").SetValue(false));
            var ksEnemies = new Menu("Use Flash Kill on", "l33t.stds.ks.kenemies");

            foreach (var hero in ObjectCache.GetHeroes())
            {
                ksEnemies.AddItem(
                    new MenuItem("l33t.stds.ks.kenemies." + hero.ChampionName, hero.ChampionName).SetValue(true));
            }
            ks.AddSubMenu(ksEnemies);
            ks.AddItem(new MenuItem("l33t.stds.ks.maxenemy", "Max Enemies").SetValue(new Slider(2, 1, 5)));
            ks.AddItem(
                new MenuItem("l33t.stds.ks.mana", "[Flash Kill] Flash only if enough mana for combo.").SetValue(false));
            Menu.AddSubMenu(ks);
            var ultimateSettings = new Menu("Unleashed Power Settings", "l33t.stds.ups");

            foreach (var hero in ObjectCache.GetHeroes())
            {
                ultimateSettings.AddItem(
                    new MenuItem(
                        "l33t.stds.ups.ignore." + hero.ChampionName,
                        "[Usage] Use Unleashed Power on " + hero.ChampionName)).SetValue(true);
            }
            ultimateSettings.AddItem(new MenuItem("l33t.stds.ups.spacer0", ""));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.spacer1", "[ Don't use Unleashed Power (R) if can be killed with ]"));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disable", "Damage From").SetValue(
                    new StringList(new[] { "All", "Either one", "None" })));
            ultimateSettings.AddItem(new MenuItem("l33t.stds.ups.disable.Q", "Dark Sphere (Q)").SetValue(true));
            ultimateSettings.AddItem(new MenuItem("l33t.stds.ups.disable.W", "Dark Sphere (W)").SetValue(true));
            ultimateSettings.AddItem(new MenuItem("l33t.stds.ups.disable.E", "Dark Sphere (E)").SetValue(true));
            ultimateSettings.AddItem(new MenuItem("l33t.stds.ups.disable.AA", "1 x Auto Attack").SetValue(true));
            ultimateSettings.AddItem(new MenuItem("l33t.stds.ups.spacer2", ""));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff", "[ Don't use Unleased Power (R) if enemy has buff ]"));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff.undying", "Tryndamere's Undying Rage (R)").SetValue(true));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff.judicator", "Kayle's Intervention (R)").SetValue(true));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff.alistar", "Alistar's Unbreakable Will (R)").SetValue(true));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff.zilean", "Zilean's Chronoshift (R)").SetValue(true));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff.zac", "Zac's Cell Division (Passive)").SetValue(true));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff.aatrox", "Aatrox's Blood Well (Passive)").SetValue(true));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff.sivir", "Sivir's Spell Shield (E)").SetValue(true));
            ultimateSettings.AddItem(
                new MenuItem("l33t.stds.ups.disablebuff.morgana", "Morgana's Black Shield (E)").SetValue(true));

            Menu.AddSubMenu(ultimateSettings);

            var qeSettings = new Menu("Dark Sphere (Q) + Scatter of the Weak (E) Settings", "l33t.stds.qesettings");

            qeSettings.AddItem(
                new MenuItem(
                    "l33t.stds.qesettings.qedelay", "[Combination] Dark Sphere (Q) + Scatter the Weak (E) delay")
                .SetValue(new Slider(1, 0, 150)));
            qeSettings.AddItem(
                new MenuItem(
                    "l33t.stds.qesettings.qerange", "[Condition] Dark Sphere (Q) + Scatter the Weak (E) max range %")
                .SetValue(new Slider(100)));
            qeSettings.AddItem(
                new MenuItem(
                    "l33t.stds.qesettings.qetocursor", "Use Dark Sphere (Q) + Scatter the Weak (E) to enemy near cursor")
                .SetValue(new KeyBind('T', KeyBindType.Press)));
            Menu.AddSubMenu(qeSettings);

            var misc = new Menu("Miscellaneous", "l33t.stds.misc");

            misc.AddItem(
                new MenuItem(
                    "l33t.stds.misc.ignitecd", "[Summoner Spell] Use Ignite only when all spells are on cooldown")
                .SetValue(false));
            misc.AddItem(new MenuItem("l33t.stds.misc.antigapcloser", "Use Anti Gapcloser").SetValue(true));
            misc.AddItem(
                new MenuItem("l33t.stds.misc.interrupt", "Use Interrupt on interruptable important spells").SetValue(
                    true));
            misc.AddItem(new MenuItem("l33t.stds.misc.welcomesound", "Startup Sound (Welcome)").SetValue(false));
            misc.AddItem(new MenuItem("l33t.stds.misc.sounds", "In-Game Sounds (Random)").SetValue(false));
            Menu.AddSubMenu(misc);

            var drawing = new Menu("Drawing", "l33t.stds.drawing");

            drawing.AddItem(new MenuItem("l33t.stds.drawing.enabledraw", "Enable Drawing").SetValue(true));
            drawing.AddItem(new MenuItem("l33t.stds.drawing.classic", "Draw Classic Circles").SetValue(false));
            drawing.AddItem(new MenuItem("l33t.stds.drawing.spacer0", ""));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawQ", "Draw Dark Sphere (Q) Range").SetValue(
                    new Circle(true, Color.FromArgb(100, 255, 0, 255))));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawW", "Draw Force of Will (W) Range").SetValue(
                    new Circle(false, Color.FromArgb(100, 255, 0, 255))));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawE", "Draw Scatter the Weak (E) Range").SetValue(
                    new Circle(false, Color.FromArgb(100, 255, 0, 255))));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawR", "Draw Unleashed Power (R) Range").SetValue(
                    new Circle(false, Color.FromArgb(100, 255, 0, 255))));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawSphereE", "Draw Dark Sphere (Q) + Scatter the Weak (E) Range")
                .SetValue(new Circle(true, Color.FromArgb(100, 255, 0, 255))));
            drawing.AddItem(
                new MenuItem(
                    "l33t.stds.drawing.drawQEC", "Draw Dark Sphere (Q) + Scatter the Weak (E) Cursor Indicator")
                .SetValue(new Circle(false, Color.FromArgb(100, 255, 0, 255))));
            drawing.AddItem(new MenuItem("l33t.stds.drawing.spacer1", ""));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawQEMAP", "Draw Dark Sphere (Q) + Scatter the Weak (E) Parameters")
                .SetValue(true));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawWMAP", "Draw Force of Will (W) Parameters").SetValue(true));
            drawing.AddItem(new MenuItem("l33t.stds.drawing.drawGank", "Draw Gankable Indicator").SetValue(true));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawHPFill", "Draw After Combo Health Points").SetValue(true));
            drawing.AddItem(new MenuItem("l33t.stds.drawing.drawHUD", "Draw Heads-up Display").SetValue(true));
            drawing.AddItem(new MenuItem("l33t.stds.drawing.drawKillText", "Draw Kill Text").SetValue(true));
            drawing.AddItem(
                new MenuItem("l33t.stds.drawing.drawKillTextHP", "Draw % Health Points after Combo Text").SetValue(true));
            drawing.AddItem(new MenuItem("l33t.stds.drawing.drawDebug", "Draw Debug").SetValue(false));
            Menu.AddSubMenu(drawing);

            Menu.AddItem(new MenuItem("l33ts.stds.spacer0", ""));
            Menu.AddItem(new MenuItem("l33t.stds.mode", "Mode"))
            .SetValue(new StringList(new[] { "Target Focused", "Team Focused" }, 1));

            Menu.AddToMainMenu();
        }
Example #6
0
        public static void ProcessKillSteal()
        {
            foreach (var enemy in
                     ObjectCache.GetHeroes()
                     .Where(
                         e =>
                         !e.HasBuff("UndyingRage") && !e.HasBuff("JudicatorIntervention") &&
                         e.IsValidTarget(Spells[SpellSlot.SphereE].Range) &&
                         (int)(Game.ClockTime * 0x3E8) - _flashCastTick > 650 + Game.Ping))
            {
                if (
                    enemy.GetComboDamage(
                        false, false, EntryPoint.Menu.Item("l33t.stds.ks.useQE").GetValue <bool>(), false) > enemy.Health &&
                    EntryPoint.Player.Distance(enemy, true) <= Math.Pow(Spells[SpellSlot.SphereE].Range, 2))
                {
                    ProcessSpells(
                        false, false, false, false, EntryPoint.Menu.Item("l33t.stds.ks.useQE").GetValue <bool>());
                    Audio.PlaySound();
                }
                else if (
                    enemy.GetComboDamage(
                        false, EntryPoint.Menu.Item("l33t.stds.ks.useW").GetValue <bool>(), false, false) >
                    enemy.Health &&
                    EntryPoint.Player.Distance(enemy, true) <= Math.Pow(Spells[SpellSlot.W].Range, 2))
                {
                    ProcessSpells(
                        false, EntryPoint.Menu.Item("l33t.stds.ks.useW").GetValue <bool>(), false, false, false);
                    Audio.PlaySound();
                }
                else if (
                    enemy.GetComboDamage(
                        EntryPoint.Menu.Item("l33t.stds.ks.useQ").GetValue <bool>(), false,
                        EntryPoint.Menu.Item("l33t.stds.ks.useE").GetValue <bool>(), false) > enemy.Health &&
                    EntryPoint.Player.Distance(enemy, true) <= Math.Pow(Spells[SpellSlot.Q].Range + 25f, 2))
                {
                    ProcessSpells(
                        EntryPoint.Menu.Item("l33t.stds.ks.useQ").GetValue <bool>(), false,
                        EntryPoint.Menu.Item("l33t.stds.ks.useE").GetValue <bool>(), false, false);
                    Audio.PlaySound();
                }
                else if (
                    enemy.GetComboDamage(
                        EntryPoint.Menu.Item("l33t.stds.ks.useQ").GetValue <bool>(), false, false, false) >
                    enemy.Health &&
                    EntryPoint.Player.Distance(enemy, true) <= Math.Pow(Spells[SpellSlot.Q].Range + 25f, 2))
                {
                    ProcessSpells(
                        EntryPoint.Menu.Item("l33t.stds.ks.useQ").GetValue <bool>(), false, false, false,
                        false);
                    Audio.PlaySound();
                }
                else if (
                    enemy.GetComboDamage(
                        false, false, false, EntryPoint.Menu.Item("l33t.stds.ks.useR").GetValue <bool>()) >
                    enemy.Health &&
                    EntryPoint.Player.Distance(enemy, true) <= Math.Pow(Spells[SpellSlot.R].Range, 2))
                {
                    ProcessSpells(
                        false, false, false, false,
                        EntryPoint.Menu.Item("l33t.stds.ks.useR").GetValue <bool>());
                    Audio.PlaySound();
                }
                else if (
                    enemy.GetComboDamage(
                        EntryPoint.Menu.Item("l33t.stds.ks.useQ").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.ks.useW").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.ks.useE").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.ks.useR").GetValue <bool>()) > enemy.Health &&
                    EntryPoint.Player.Distance(enemy, true) <= Math.Pow(1337f, 2))
                {
                    ProcessSpells(
                        EntryPoint.Menu.Item("l33t.stds.ks.useQ").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.ks.useW").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.ks.useE").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.ks.useR").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.ks.useQE").GetValue <bool>());
                    Audio.PlaySound();
                }

                ProcessFlashKillsteal(enemy);
            }
        }
Example #7
0
        public static void OnDraw(EventArgs args)
        {
            if (EntryPoint.Menu.Item("l33t.stds.drawing.drawDebug").GetValue <bool>())
            {
                var minions = ObjectCache.GetMinions();
                var heros   = ObjectCache.GetHeroes();

                Sprite.Begin(SpriteFlags.AlphaBlend);

                Font.DrawText(
                    Sprite, "Close Minion Count: " + (minions != null ? minions.Count(m => m.IsValidTarget(475f)) : 0),
                    (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.64f), Color.White);
                Font.DrawText(
                    Sprite, "Minion Count: " + (minions != null ? minions.Count() : 0), (int)(Drawing.Width * 0.90f),
                    (int)(Drawing.Height * 0.625f), Color.White);
                Font.DrawText(
                    Sprite, "Hero Count: " + (heros != null ? heros.Count() : 0), (int)(Drawing.Width * 0.90f),
                    (int)(Drawing.Height * 0.615f), Color.White);
                FontB.DrawText(
                    Sprite, "Welcome back, " + ObjectManager.Player.Name + ".", (int)(Drawing.Width * 0.90f),
                    (int)(Drawing.Height * 0.60f), Color.Red);

                Sprite.End();
            }

            var classic        = EntryPoint.Menu.Item("l33t.stds.drawing.classic").GetValue <bool>();
            var playerPosition = EntryPoint.Player.Position;

            foreach (var spell in
                     Mechanics.Spells.Where(
                         spell =>
                         EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key) != null &&
                         EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Active))
            {
                if (classic)
                {
                    Drawing.DrawCircle(
                        playerPosition, spell.Value.Range,
                        EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Color);
                }
                else
                {
                    Render.Circle.DrawCircle(
                        playerPosition, spell.Value.Range,
                        EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Color);
                }
            }

            if (EntryPoint.Menu.Item("l33t.stds.drawing.drawText").GetValue <bool>())
            {
                foreach (var enemy in ObjectCache.GetHeroes().Where(e => e.IsVisible && !e.IsDead))
                {
                    var hpBarPos = enemy.HPBarPosition;
                    hpBarPos.X += 45;
                    hpBarPos.Y += 18;
                    var killText    = "";
                    var combodamage = enemy.GetComboDamage(
                        EntryPoint.Menu.Item("l33t.stds.combo.useQ").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.combo.useW").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.combo.useE").GetValue <bool>(),
                        EntryPoint.Menu.Item("l33t.stds.combo.useR").GetValue <bool>());

                    var percentHPleftAfterCombo = (enemy.Health - combodamage) / enemy.MaxHealth;
                    var percentHPleft           = enemy.Health / enemy.MaxHealth;
                    if (percentHPleftAfterCombo < 0)
                    {
                        percentHPleftAfterCombo = 0;
                    }

                    var    comboXPos     = hpBarPos.X - 36 + (107 * percentHPleftAfterCombo);
                    double currentHpxPos = hpBarPos.X - 36 + (107 * percentHPleft);
                    var    barcolor      = System.Drawing.Color.FromArgb(100, 0, 220, 0);
                    var    barcolorline  = System.Drawing.Color.WhiteSmoke;
                    if (combodamage + Mechanics.Spells[SpellSlot.Q].Damage(enemy) +
                        EntryPoint.Player.GetAutoAttackDamage(enemy) * 2 > enemy.Health)
                    {
                        killText = "Killable by: Full Combo + 1Q + 2AA";
                        if (combodamage >= enemy.Health)
                        {
                            killText = "Killable by: Full Combo";
                        }
                        barcolor     = System.Drawing.Color.FromArgb(100, 255, 255, 0);
                        barcolorline = System.Drawing.Color.SpringGreen;
                        var linecolor = barcolor;
                        if (
                            enemy.GetComboDamage(
                                EntryPoint.Menu.Item("l33t.stds.combo.useQ").GetValue <bool>(),
                                EntryPoint.Menu.Item("l33t.stds.combo.useW").GetValue <bool>(),
                                EntryPoint.Menu.Item("l33t.stds.combo.useE").GetValue <bool>(), false) > enemy.Health)
                        {
                            killText  = "Killable by: Q + W + E";
                            barcolor  = System.Drawing.Color.FromArgb(130, 255, 70, 0);
                            linecolor = System.Drawing.Color.FromArgb(150, 255, 0, 0);
                        }
                        if (EntryPoint.Menu.Item("l33t.stds.drawing.drawGank").GetValue <bool>())
                        {
                            var pos = EntryPoint.Player.Position +
                                      Vector3.Normalize(enemy.Position - EntryPoint.Player.Position) * 100;
                            var myPos = Drawing.WorldToScreen(pos);
                            pos = EntryPoint.Player.Position +
                                  Vector3.Normalize(enemy.Position - EntryPoint.Player.Position) * 350;
                            var ePos = Drawing.WorldToScreen(pos);
                            Drawing.DrawLine(myPos.X, myPos.Y, ePos.X, ePos.Y, 1, linecolor);
                        }
                    }
                    var killTextPos = Drawing.WorldToScreen(enemy.Position);
                    var hPleftText  = Math.Round(percentHPleftAfterCombo * 100) + "%";
                    Drawing.DrawLine((float)comboXPos, hpBarPos.Y, (float)comboXPos, hpBarPos.Y + 5, 1, barcolorline);
                    if (EntryPoint.Menu.Item("l33t.stds.drawing.drawKillText").GetValue <bool>())
                    {
                        Drawing.DrawText(killTextPos[0] - 105, killTextPos[1] + 25, barcolor, killText);
                    }
                    if (EntryPoint.Menu.Item("l33t.stds.drawing.drawKillTextHP").GetValue <bool>())
                    {
                        Drawing.DrawText(hpBarPos.X + 98, hpBarPos.Y + 5, barcolor, hPleftText);
                    }
                    if (EntryPoint.Menu.Item("l33t.stds.drawing.drawHPFill").GetValue <bool>())
                    {
                        var diff = currentHpxPos - comboXPos;
                        for (var i = 0; i < diff; i++)
                        {
                            Drawing.DrawLine(
                                (float)comboXPos + i, hpBarPos.Y + 2, (float)comboXPos + i, hpBarPos.Y + 10, 1,
                                barcolor);
                        }
                    }
                }
            }

            if (EntryPoint.Menu.Item("l33t.stds.drawing.drawQEC").GetValue <Circle>().Active&&
                EntryPoint.Menu.Item("l33t.stds.qesettings.qetocursor").GetValue <KeyBind>().Active&&
                Mechanics.Spells[SpellSlot.Q].IsReady())
            {
                var target = TargetSelector.GetTarget(
                    Mechanics.Spells[SpellSlot.SphereE].Range, TargetSelector.DamageType.Magical);
                if (target.IsValidTarget())
                {
                    if (classic)
                    {
                        Drawing.DrawCircle(
                            Game.CursorPos, 150f,
                            (target.Distance(Game.CursorPos, true) <= 22500)
                                ? System.Drawing.Color.Red
                                : EntryPoint.Menu.Item("l33t.stds.drawing.drawQEC").GetValue <Circle>().Color);
                    }
                    else
                    {
                        Render.Circle.DrawCircle(
                            Game.CursorPos, 150f,
                            (target.Distance(Game.CursorPos, true) <= 22500)
                                ? System.Drawing.Color.Red
                                : EntryPoint.Menu.Item("l33t.stds.drawing.drawQEC").GetValue <Circle>().Color);
                    }
                }
            }

            if (EntryPoint.Menu.Item("l33t.stds.drawing.drawHUD").GetValue <bool>())
            {
                if (EntryPoint.Menu.Item("l33t.stds.harass.togglekey").GetValue <KeyBind>().Active)
                {
                    Drawing.DrawText(
                        Drawing.Width * 0.90f, Drawing.Height * 0.68f, System.Drawing.Color.Yellow, "Auto Harass : On");
                }
                else
                {
                    Drawing.DrawText(
                        Drawing.Width * 0.90f, Drawing.Height * 0.68f, System.Drawing.Color.DarkRed, "Auto Harass : Off");
                }

                if (EntryPoint.Menu.Item("l33t.stds.ks.togglekey").GetValue <KeyBind>().Active)
                {
                    Drawing.DrawText(
                        Drawing.Width * 0.90f, Drawing.Height * 0.665f, System.Drawing.Color.Yellow, "Auto KS : On");
                }
                else
                {
                    Drawing.DrawText(
                        Drawing.Width * 0.90f, Drawing.Height * 0.665f, System.Drawing.Color.DarkRed, "Auto KS : Off");
                }
            }

            // Draw QE MAP
            if (EntryPoint.Menu.Item("l33t.stds.drawing.drawQEMAP").GetValue <bool>())
            {
                var qeTarget = TargetSelector.GetTarget(
                    Mechanics.Spells[SpellSlot.SphereE].Range, TargetSelector.DamageType.Magical);
                if (qeTarget.IsValidTarget())
                {
                    var sPos =
                        Prediction.GetPrediction(
                            qeTarget, Mechanics.Spells[SpellSlot.Q].Delay + Mechanics.Spells[SpellSlot.E].Delay)
                        .UnitPosition;
                    var tPos = Mechanics.Spells[SpellSlot.SphereE].Instance.GetPrediction(qeTarget);
                    if (tPos != null &&
                        EntryPoint.Player.Distance(sPos, true) > Math.Pow(Mechanics.Spells[SpellSlot.E].Range, 2) &&
                        (Mechanics.Spells[SpellSlot.E].IsReady() ||
                         Mechanics.Spells[SpellSlot.E].Instance.Instance.CooldownExpires - Game.Time < 2) &&
                        Mechanics.Spells[SpellSlot.E].Level > 0)
                    {
                        var color = System.Drawing.Color.Red;
                        var orb   = EntryPoint.Player.Position +
                                    Vector3.Normalize(sPos - EntryPoint.Player.Position) *
                                    Mechanics.Spells[SpellSlot.E].Range;
                        Mechanics.Spells[SpellSlot.SphereE].Instance.Delay = Mechanics.Spells[SpellSlot.Q].Delay +
                                                                             Mechanics.Spells[SpellSlot.E].Delay +
                                                                             EntryPoint.Player.Distance(orb) /
                                                                             Mechanics.Spells[SpellSlot.E].Instance
                                                                             .Speed;
                        if (tPos.Hitchance >= HitChance.Medium)
                        {
                            color = System.Drawing.Color.Green;
                        }
                        if (Mechanics.Spells[SpellSlot.Q].Instance.Instance.ManaCost +
                            Mechanics.Spells[SpellSlot.E].Instance.Instance.ManaCost > EntryPoint.Player.Mana)
                        {
                            color = System.Drawing.Color.DarkBlue;
                        }
                        var pos = EntryPoint.Player.Position +
                                  Vector3.Normalize(tPos.UnitPosition - EntryPoint.Player.Position) * 700;
                        if (classic)
                        {
                            Drawing.DrawCircle(pos, Mechanics.Spells[SpellSlot.Q].Instance.Width, color);
                            Drawing.DrawCircle(
                                tPos.UnitPosition, Mechanics.Spells[SpellSlot.Q].Instance.Width / 2, color);
                        }
                        else
                        {
                            Render.Circle.DrawCircle(pos, Mechanics.Spells[SpellSlot.Q].Instance.Width, color);
                            Render.Circle.DrawCircle(
                                tPos.UnitPosition, Mechanics.Spells[SpellSlot.Q].Instance.Width / 2, color);
                        }
                        var sp1 = pos + Vector3.Normalize(EntryPoint.Player.Position - pos) * 100f;
                        var sp  = Drawing.WorldToScreen(sp1);
                        var ep1 = pos + Vector3.Normalize(pos - EntryPoint.Player.Position) * 592;
                        var ep  = Drawing.WorldToScreen(ep1);
                        Drawing.DrawLine(sp.X, sp.Y, ep.X, ep.Y, 2, color);
                    }
                }
            }
            if (EntryPoint.Menu.Item("l33t.stds.drawing.drawWMAP").GetValue <bool>() &&
                Mechanics.Spells[SpellSlot.W].Level > 0)
            {
                var color2  = System.Drawing.Color.FromArgb(100, 255, 0, 0);
                var wTarget =
                    TargetSelector.GetTarget(
                        Mechanics.Spells[SpellSlot.W].Range + Mechanics.Spells[SpellSlot.W].Instance.Width,
                        TargetSelector.DamageType.Magical);
                if (wTarget.IsValidTarget())
                {
                    var pos2 = Mechanics.Spells[SpellSlot.W].Instance.GetPrediction(wTarget, true);
                    if (pos2.Hitchance >= HitChance.High)
                    {
                        color2 = System.Drawing.Color.FromArgb(100, 50, 150, 255);
                    }
                    if (classic)
                    {
                        Drawing.DrawCircle(pos2.UnitPosition, Mechanics.Spells[SpellSlot.W].Instance.Width, color2);
                    }
                    else
                    {
                        Render.Circle.DrawCircle(
                            pos2.UnitPosition, Mechanics.Spells[SpellSlot.W].Instance.Width, color2);
                    }
                }
            }
        }
Example #8
0
        public static void OnDraw(EventArgs args)
        {
            if (EntryPoint.Menu.Item("l33t.stds.drawing.enabledraw").GetValue <bool>())
            {
                if (EntryPoint.Menu.Item("l33t.stds.drawing.drawDebug").GetValue <bool>())
                {
                    DrawDebug();
                }

                var classic        = EntryPoint.Menu.Item("l33t.stds.drawing.classic").GetValue <bool>();
                var playerPosition = EntryPoint.Player.Position;

                foreach (var spell in
                         Mechanics.Spells.Where(
                             spell =>
                             EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key) != null &&
                             EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Active))
                {
                    if (classic)
                    {
                        Drawing.DrawCircle(
                            playerPosition, spell.Value.Range,
                            EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Color);
                    }
                    else
                    {
                        Render.Circle.DrawCircle(
                            playerPosition, spell.Value.Range,
                            EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Color);
                    }
                }

                foreach (var enemy in ObjectCache.GetHeroes().Where(e => e.IsVisible && !e.IsDead))
                {
                    DrawEnemyInfo(enemy);
                }

                if (EntryPoint.Menu.Item("l33t.stds.drawing.drawQEC").GetValue <Circle>().Active&&
                    EntryPoint.Menu.Item("l33t.stds.qesettings.qetocursor").GetValue <KeyBind>().Active&&
                    Mechanics.Spells[SpellSlot.Q].IsReady())
                {
                    DrawSphereEToCursor(classic);
                }

                if (EntryPoint.Menu.Item("l33t.stds.drawing.drawHUD").GetValue <bool>())
                {
                    DrawHud();
                }

                // Draw QE MAP
                if (EntryPoint.Menu.Item("l33t.stds.drawing.drawQEMAP").GetValue <bool>())
                {
                    DrawSphereEMap(classic);
                }
                if (EntryPoint.Menu.Item("l33t.stds.drawing.drawWMAP").GetValue <bool>() &&
                    Mechanics.Spells[SpellSlot.W].Level > 0)
                {
                    DrawForceOfWillMap(classic);
                }
            }
        }