예제 #1
0
        public Lulu()
        {
            Q = SpellManager.Q;
            W = SpellManager.W;
            E = SpellManager.E;
            R = SpellManager.R;

            Menu = MainMenu.AddMenu("Lulu", "Lulu");

            pixMenu = Menu.AddSubMenu("Pix", "Pix");
            pixMenu.AddGroupLabel("Q");
            pixMenu.Add("QPixCombo", new CheckBox("Use in Combo", false));
            pixMenu.Add("QPixHarass", new CheckBox("Use in Harass", false));
            pixMenu.AddGroupLabel("EQ");
            pixMenu.Add("EQPixCombo", new CheckBox("Use in Combo"));
            pixMenu.Add("EQPixHarass", new CheckBox("Use in Harass"));

            qMenu = Menu.AddSubMenu("Q", "Q");
            qMenu.Add("QCombo", new CheckBox("Use in Combo"));
            qMenu.Add("QHarass", new CheckBox("Use in Harass"));
            qMenu.Add("QGapcloser", new CheckBox("Use Q on Gapcloser"));
            qMenu.Add("QImpaired", new CheckBox("Auto Q Movement Impaired", false));
            qMenu.Add("QFarm", new KeyBind("Use Q to Farm", true, KeyBind.BindTypes.PressToggle, 'K'));
            qMenu.Add("QLC", new CheckBox("Use in LaneClear"));
            qMenu.Add("QLH", new CheckBox("Use in LastHit", false));

            wMenu = Menu.AddSubMenu("W", "W");
            wMenu.AddGroupLabel("Enemy Priority");
            foreach (var enemy in Enemies)
            {
                wMenu.Add(enemy.NetworkId + "WPriority", new Slider(enemy.ChampionName, 1, 0, 5));
            }
            wMenu.Add("WPriority", new CheckBox("Priority Enabled", false));
            wMenu.AddSeparator();
            wMenu.Add("WCombo", new CheckBox("Use on Enemy in Combo"));
            wMenu.Add("WHarass", new CheckBox("Use on Enemy in Harass"));
            wMenu.Add("WGapcloser", new CheckBox("Use W on Gapcloser"));
            wMenu.Add("WInterrupter", new CheckBox("Use W to Interrupt"));

            eMenu = Menu.AddSubMenu("E", "E");
            eMenu.AddGroupLabel("Ally Shielding");
            foreach (var ally in Allies)
            {
                eMenu.Add(ally.NetworkId + "EPriority", new Slider(ally.ChampionName + " Min Health", 20));
            }
            eMenu.Add("EAuto", new CheckBox("Use E on Allies"));
            eMenu.Add("ECombo", new CheckBox("Use on Enemy in Combo"));
            eMenu.Add("EHarass", new CheckBox("Use on Enemy in Harass"));

            rMenu = Menu.AddSubMenu("R", "R");
            rMenu.AddGroupLabel("Saver");
            foreach (var ally in Allies)
            {
                rMenu.Add(ally.NetworkId + "RPriority", new Slider(ally.ChampionName + " Min Health", 15));
            }
            rMenu.Add("RAuto", new CheckBox("Use R on Allies"));
            rMenu.AddSeparator();
            rMenu.Add("RForce", new KeyBind("Force Ult Ally", false, KeyBind.BindTypes.HoldActive, 'K'));
            rMenu.Add("RInterrupter", new CheckBox("Use R on Interrupt"));
            rMenu.Add("RKnockup", new CheckBox("Auto R to Knockup"));
            rMenu.Add("RKnockupEnemies", new Slider("Min Enemes to Knockup", 2, 1, 5));

            ksMenu = Menu.AddSubMenu("Killsteal", "Killsteal");
            ksMenu.Add("KSEnabled", new CheckBox("Enabled"));
            ksMenu.Add("KSQ", new CheckBox("Use Q"));
            ksMenu.Add("KSE", new CheckBox("Use E"));
            ksMenu.Add("KSEQ", new CheckBox("Use E->Q"));

            ManaManager.Initialize(Menu);
            Q.SetManaCondition(ManaManager.ManaMode.Combo, 5);
            Q.SetManaCondition(ManaManager.ManaMode.Harass, 5);
            Q.SetManaCondition(ManaManager.ManaMode.Farm, 30);

            W.SetManaCondition(ManaManager.ManaMode.Combo, 15);
            W.SetManaCondition(ManaManager.ManaMode.Harass, 15);

            E.SetManaCondition(ManaManager.ManaMode.Combo, 10);
            E.SetManaCondition(ManaManager.ManaMode.Harass, 10);

            fleeMenu = Menu.AddSubMenu("Flee", "Flee");
            fleeMenu.Add("Flee", new KeyBind("Flee", false, KeyBind.BindTypes.HoldActive, 'T'));
            fleeMenu.Add("FleeW", new CheckBox("Use W"));
            fleeMenu.Add("FleeMove", new CheckBox("Move to Cursor Position"));

            drawMenu = Menu.AddSubMenu("Drawings", "Drawings");
            drawMenu.Add("DrawQ", new CheckBox("Draw Q"));   //, System.Drawing.Color.Purple, Q.Range));
            drawMenu.Add("DrawW", new CheckBox("Draw W/E")); //, System.Drawing.Color.Purple, W.Range));
            drawMenu.Add("DrawR", new CheckBox("Draw R"));   //, System.Drawing.Color.Purple, R.Range));
            drawMenu.Add("DrawPix", new CheckBox("Draw Pix"));

            miscMenu = Menu.AddSubMenu("Misc", "Misc");
            miscMenu.Add("Support", new CheckBox("Support Mode", false));
            CustomAntiGapcloser.Initialize(miscMenu);
            CustomInterrupter.Initialize(miscMenu);

            superMMenu = Menu.AddSubMenu("Superman", "Speedy Up!");
            foreach (var ally in Allies.Where(a => a.Team == ObjectManager.Player.Team))
            {
                superMMenu.Add(ally.NetworkId + "WEPriority", new Slider(ally.ChampionName + " Priority", 1, 0, 5));
            }
            superMMenu.Add("Superman", new KeyBind("Use Speedy Up!", false, KeyBind.BindTypes.HoldActive, 'A'));


            ManaBarIndicator.Initialize(drawMenu, ManaCostDictionary);
            Pix.Initialize(drawMenu["DrawPix"].Cast <CheckBox>().CurrentValue);
            SpellManager.Initialize();

            CustomAntiGapcloser.OnEnemyGapcloser    += CustomAntiGapcloser_OnEnemyGapcloser;
            CustomInterrupter.OnInterruptableTarget += CustomInterrupter_OnInterruptableTarget;
        }
예제 #2
0
        public Lulu()
        {
            Q = SpellManager.Q;
            W = SpellManager.W;
            E = SpellManager.E;
            R = SpellManager.R;

            Menu = new Menu("Lulu", "Lulu", true);
            Menu.SetFontStyle(FontStyle.Regular, Color.MediumPurple);
            Orbwalker = Menu.AddOrbwalker();

            var combo = Menu.AddMenu("Spells", "Spells");

            combo.SetFontStyle(FontStyle.Regular, System.Drawing.Color.DeepSkyBlue.ToSharpDXColor());

            var q = combo.AddMenu("Q", "Q");

            q.AddBool("QCombo", "Use in Combo");
            q.AddBool("QHarass", "Use in Harass");
            q.AddInfo("QMisc2", "-- Misc --", Color.DeepSkyBlue);
            q.AddBool("QPix", "Use Pix Q", false);
            q.Item("QPix").SetTooltip("Use Pix to Cast Q");
            q.AddBool("EQPix", "Use Extended Q (E->Q)");
            q.Item("EQPix").SetTooltip("Use E to cast Pix Q");
            q.AddBool("QGapcloser", "Use Q on Gapcloser");
            q.AddBool("QImpaired", "Auto Q Movement Impaired", false);
            q.AddInfo("QMisc1", "-- Farm --", Color.Red);
            q.AddBool("QFarm", "Use Q to Farm");
            q.AddBool("QLC", "Use in LaneClear");
            q.AddBool("QLH", "Use in LastHit", false);


            var w = combo.AddMenu("W", "W");

            var wEnemies = w.AddMenu("WEnemies", "Enemy Priority");

            foreach (var enemy in Enemies)
            {
                wEnemies.AddSlider(enemy.ChampionName + "WPriority", enemy.ChampionName, 1, 0, 5);
            }

            wEnemies.AddInfo("WEnemiesInfo", "0 means don't cast, 5 is highest priority", Color.DeepSkyBlue);
            wEnemies.AddBool("WPriority", "Priority Enabled", false);

            w.AddBool("WCombo", "Use on Enemy in Combo");
            w.AddBool("WHarass", "Use on Enemy in Harass");
            w.AddBool("WGapcloser", "Use W on Gapcloser");
            w.AddBool("WInterrupter", "Use W to Interrupt");

            var e = combo.AddMenu("E", "E");

            var eAllies = e.AddMenu("EAllies", "Ally Shielding");

            foreach (var ally in Allies)
            {
                eAllies.AddSlider(ally.ChampionName + "EPriority", ally.ChampionName + " Min Health", 20);
            }

            eAllies.AddInfo("EAlliesInfo", "Set to 0 to never shield ally.", Color.DeepSkyBlue);
            eAllies.AddBool("EAuto", "Use E on Allies");

            e.AddBool("ECombo", "Use on Enemy in Combo");
            e.AddBool("EHarass", "Use on Enemy in Harass");

            var r = combo.AddMenu("R", "R");

            var saver = r.AddMenu("Saver", "Saver");

            foreach (var ally in Allies)
            {
                saver.AddSlider(ally.ChampionName + "RPriority", ally.ChampionName + " Min Health", 15);
            }

            saver.AddInfo("RAlliesInfo", "Set to 0 to never ult ally.", Color.DeepSkyBlue);
            saver.AddBool("RAuto", "Use R on Allies");

            r.AddKeyBind("RForce", "Force Ult Ally", 'K');
            r.Item("RForce").SetTooltip("Casts R on the lowest HP ally in R range");
            r.AddBool("RInterrupter", "Use R on Interrupt");

            r.AddBool("RKnockup", "Auto R to Knockup");
            r.AddSlider("RKnockupEnemies", "Min Enemes to Knockup", 2, 1, 5);

            var ks = Menu.AddMenu("Killsteal", "Killsteal");

            ks.SetFontStyle(FontStyle.Regular, Color.Red);
            ks.AddBool("KSEnabled", "Enabled");
            ks.AddBool("KSQ", "Use Q");
            ks.AddBool("KSE", "Use E");
            ks.AddBool("KSEQ", "Use E->Q");

            ManaManager.Initialize(Menu);
            Q.SetManaCondition(ManaManager.ManaMode.Combo, 5);
            Q.SetManaCondition(ManaManager.ManaMode.Harass, 5);
            Q.SetManaCondition(ManaManager.ManaMode.Farm, 30);
            W.SetManaCondition(ManaManager.ManaMode.Combo, 15);
            W.SetManaCondition(ManaManager.ManaMode.Harass, 15);
            E.SetManaCondition(ManaManager.ManaMode.Combo, 10);
            E.SetManaCondition(ManaManager.ManaMode.Harass, 10);

            var flee = Menu.AddMenu("Flee", "Flee");

            flee.SetFontStyle(FontStyle.Regular, Color.Yellow);
            flee.AddInfo("FleeInfo", " --> Flees towards cursor position.", Color.Yellow);
            flee.AddKeyBind("Flee", "Flee", 'T');
            flee.AddBool("FleeW", "Use W");
            flee.AddBool("FleeMove", "Move to Cursor Position");

            var draw = Menu.AddMenu("Drawings", "Drawings");

            draw.SetFontStyle(FontStyle.Regular, Color.DeepPink);

            draw.AddCircle("DrawQ", "Draw Q", System.Drawing.Color.Purple, Q.Range);
            draw.AddCircle("DrawW", "Draw W/E", System.Drawing.Color.Purple, W.Range);
            draw.AddCircle("DrawR", "Draw R", System.Drawing.Color.Purple, R.Range);
            draw.AddBool("DrawPix", "Draw Pix");

            var misc = Menu.AddMenu("Misc", "Misc");

            misc.SetFontStyle(FontStyle.Regular, Color.MediumPurple);

            CustomAntiGapcloser.Initialize(misc);
            CustomInterrupter.Initialize(misc);

            var superman = misc.AddMenu("Superman", "Speedy Up!");

            superman.SetFontStyle(FontStyle.Regular, Color.Red);
            superman.AddInfo("SupermanInfo", " --> Casts W+E on prioritized ally.", Color.Red);
            foreach (var ally in Allies.Where(a => !a.IsMe))
            {
                superman.AddSlider(ally.ChampionName + "WEPriority", ally.ChampionName + " Priority", 1, 0, 5);
            }

            superman.AddInfo("SupermanInfo2", "Set to 0 to never speedy up ally.", Color.Red);
            superman.AddKeyBind("Superman", "Use Speedy Up!", 'A');

            misc.AddBool("Support", "Support Mode", false);
            misc.AddBool("Sounds", "Sounds");

            if (misc.Item("Sounds").IsActive())
            {
                new SoundObject(Resources.Load).Play();
            }

            Menu.AddInfo("Info", "By Trees and Lilith!", Color.MediumPurple);
            Menu.AddToMainMenu();

            var manaCost = new Dictionary <SpellSlot, int[]>
            {
                { SpellSlot.Q, new[] { 0, 60, 65, 70, 75, 80 } },
                { SpellSlot.W, new[] { 0, 65, 65, 65, 65, 65 } },
                { SpellSlot.E, new[] { 0, 60, 70, 80, 90, 100 } },
                { SpellSlot.R, new[] { 0, 0, 0, 0, 0, 0 } }
            };

            var dmg = draw.AddMenu("DamageIndicator", "Damage Indicator");

            dmg.AddBool("DmgEnabled", "Draw Damage Indicator");
            dmg.AddCircle("HPColor", "Predicted Health Color", System.Drawing.Color.White);
            dmg.AddCircle("FillColor", "Damage Color", System.Drawing.Color.MediumPurple);
            dmg.AddBool("Killable", "Killable Text");
            DamageIndicator.Initialize(dmg, Utility.GetComboDamage);

            ManaBarIndicator.Initialize(draw, manaCost);
            Pix.Initialize(Menu.Item("DrawPix"));
            SpellManager.Initialize(combo, Orbwalker);

            CustomAntiGapcloser.OnEnemyGapcloser    += CustomAntiGapcloser_OnEnemyGapcloser;
            CustomInterrupter.OnInterruptableTarget += CustomInterrupter_OnInterruptableTarget;
        }
예제 #3
0
        private static bool Killsteal()
        {
            if (!Menu.Item("KSEnabled").IsActive())
            {
                return(false);
            }

            var useQ = Menu.Item("KSQ").IsActive() && Q.IsReady();
            var useE = Menu.Item("KSE").IsActive() && E.IsReady();

            if (!useQ && !useE)
            {
                return(false);
            }

            foreach (var enemy in Enemies.Where(e => e.IsValidTarget(E.Range + Q.Range)).OrderBy(e => e.Health))
            {
                var eDmg = E.GetDamage(enemy);

                if (useE && E.IsInRange(enemy) && eDmg > enemy.Health && E.CastOnUnit(enemy))
                {
                    return(true);
                }

                var qDmg = Q.GetDamage(enemy);

                if (useQ && qDmg > enemy.Health)
                {
                    if (Q.IsInRange(enemy) && Q.Cast(enemy).IsCasted())
                    {
                        return(true);
                    }

                    if (Pix.IsValid() && SpellManager.PixQ.IsInRange(enemy) && SpellManager.PixQ.Cast(enemy).IsCasted())
                    {
                        return(true);
                    }
                }

                if (useQ && useE && E.IsInRange(enemy) && qDmg + eDmg > enemy.Health && E.CastOnUnit(enemy))
                {
                    QAfterETarget = enemy;
                    return(true);
                }

                if (Menu.Item("KSEQ").IsActive() && useQ && useE && qDmg > enemy.Health)
                {
                    var eTarget = Pix.GetETarget(enemy);
                    if (eTarget == null)
                    {
                        continue;
                    }

                    if (E.CastOnUnit(eTarget))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
예제 #4
0
        public override void OnCombo(Orbwalking.OrbwalkingMode mode)
        {
            if (W.IsActive() && !W.HasManaCondition() && W.IsReady() && Menu.Item("WPriority").IsActive())
            {
                var wTarg = Utility.GetBestWTarget();
                if (wTarg != null && W.CanCast(wTarg) && W.CastOnUnit(wTarg))
                {
                    Console.WriteLine("[AUTO] Cast W");
                    return;
                }
            }

            var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical) ?? Pix.GetTarget();

            if (!target.IsValidTarget() || !SpellManager.Q.IsInRange(target))
            {
                PixCombo();
                return;
            }

            if (PixCombo())
            {
                return;
            }

            if (E.IsActive() && !E.HasManaCondition() && E.CanCast(target) && E.CastOnUnit(target))
            {
                Console.WriteLine("[Combo] Cast E");
                return;
            }

            if (Q.IsReady() && W.IsActive() && !W.HasManaCondition() && W.CanCast(target) && W.CastOnUnit(target))
            {
                Console.WriteLine("[Combo] Cast W");
                return;
            }

            if (!Q.IsActive() || !Q.IsReady() || Q.HasManaCondition())
            {
                return;
            }

            if (Q.Cast(target).IsCasted())
            {
                Console.WriteLine("[Combo] Cast Q");
            }
        }