コード例 #1
0
ファイル: Lulu.cs プロジェクト: sadnecc/CHportcn
        private static bool Saver()
        {
            if (Player.InFountain())
            {
                return(false);
            }

            var useE = getCheckBoxItem(eMenu, "EAuto") && E.IsReady();
            var useR = getCheckBoxItem(rMenu, "RAuto") && R.IsReady();

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

            foreach (var ally in Allies.Where(h => h.LSIsValidTarget(R.Range, false) && h.LSCountEnemiesInRange(300) > 0))
            {
                var hp = ally.GetPredictedHealthPercent();

                if (useE && E.IsInRange(ally) &&
                    hp <= getSliderItem(eMenu, ally.NetworkId + "EPriority"))
                {
                    E.CastOnUnit(ally);
                }

                if (useR && hp <= getSliderItem(rMenu, ally.NetworkId + "RPriority") && R.CastOnUnit(ally))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #2
0
        private static bool Saver()
        {
            if (Player.InFountain())
            {
                return(false);
            }

            var useE = Menu.Item("EAuto").IsActive() && E.IsReady();
            var useR = Menu.Item("RAuto").IsActive() && R.IsReady();

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

            foreach (var ally in Allies.Where(h => h.IsValidTarget(R.Range, false) && h.CountEnemiesInRange(300) > 0))
            {
                var hp = ally.GetPredictedHealthPercent();

                if (useE && E.IsInRange(ally) &&
                    hp <= Menu.Item(ally.ChampionName + "EPriority").GetValue <Slider>().Value)
                {
                    E.CastOnUnit(ally);
                }

                if (useR && hp <= Menu.Item(ally.ChampionName + "RPriority").GetValue <Slider>().Value&&
                    R.CastOnUnit(ally))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #3
0
ファイル: FightGame.cs プロジェクト: Kuh4ku/Mercybot
        public FighterEntry GetNearestAlly(Func <FighterEntry, bool> filter = null)
        {
            MapPoint     charMp = MapPoint.FromCellId(PlayedFighter.CellId), allyMp;
            int          distance = -1, tempDistance;
            FighterEntry ally = null;

            foreach (var allyEntry in filter == null ? Allies : Allies.Where(f => filter(f)))
            {
                if (!allyEntry.Alive)
                {
                    continue;
                }

                allyMp       = MapPoint.FromCellId(allyEntry.CellId);
                tempDistance = charMp.DistanceToCell(allyMp);

                if (distance == -1 || tempDistance < distance)
                {
                    distance = tempDistance;
                    ally     = allyEntry;
                }
            }

            return(ally);
        }
コード例 #4
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        private static void GameOnOnUpdate(EventArgs args)
        {
            var enemies = Enemies.Where(x => x.IsValidTarget(CalculateRange)).ToArray();
            var allies  = Allies.Where(x => x.IsValidTarget(CalculateRange, false)).ToArray();

            if (!enemies.Any())
            {
                Status = CalcStatus.NoEnemies;
                return;
            }

            var spellReadyCheck = Menu.Item("SpellReadyCheck").IsActive();

            allyDamage  = CalculateDamage(allies.ToList(), spellReadyCheck);
            enemyDamage = CalculateDamage(enemies.ToList(), spellReadyCheck);

            allyHealth  = allies.Sum(x => x.Health);
            enemyHealth = enemies.Sum(x => x.Health);

            var result = allyHealth - enemyDamage > enemyHealth - allyDamage ? GreenBitmap : RedBitmap;

            if (LastResult != result)
            {
                IndicatorSprite.Remove();
                IndicatorSprite.UpdateTextureBitmap((Bitmap)result.Clone());
                IndicatorSprite.Add();
            }

            LastResult = result;

            Status = CalcStatus.Calculated;
        }
コード例 #5
0
        private static UltTarget GetBestUltTarget()
        {
            var possibleAllies = Allies.Where(o => SpellManager.R.IsInRange(o));

            Obj_AI_Hero bestAlly   = null;
            var         allyCount  = 0;
            var         enemyCount = 0;
            var         allies     = new List <Obj_AI_Hero>();

            foreach (var ally in possibleAllies)
            {
                if (!ally.IsMe && !Menu.Item("R" + ally.ChampionName).IsActive())
                {
                    continue;
                }

                var alliesInRange =
                    Allies.Where(
                        o =>
                        !ally.Equals(o) && ally.Distance(o) <= UltimateRadius &&
                        o.HealthPercent <
                        (o.IsMe
                                ? Menu.Item("RSelf").GetValue <Slider>().Value
                                : Menu.Item("RHP" + o.ChampionName).GetValue <Slider>().Value));
                var count = alliesInRange.Count();
                if (count < MinAllies)
                {
                    continue;
                }
                Console.WriteLine("ALLIES IN RANGE: {0}/{1}", count, MinAllies);
                var enemiesInRange = Enemies.Count(o => ally.Distance(o) <= UltimateRadius);

                if (enemiesInRange > MaxEnemies)
                {
                    continue;
                }

                Console.WriteLine("ENEMIES IN RANGE: {0}/{1}", enemiesInRange, MaxEnemies);
                if (count > allyCount || (count == allyCount && enemyCount > enemiesInRange))
                {
                    bestAlly   = ally;
                    allyCount  = count;
                    allies     = alliesInRange.ToList();
                    enemyCount = enemiesInRange;
                }
            }
            return(new UltTarget(bestAlly, allies));
        }
コード例 #6
0
 public void Update(GameTime gameTime)
 {
     Level.Update(gameTime);
     Globals.Camera.Update(gameTime);
     Beings.ForEach(b => b.Update(gameTime));
     Enemies = Enemies.Where(e => e.IsActive).ToList();
     Enemies.ForEach(e => e.GetAI().Run(gameTime));
     Allies = Allies.Where(e => e.IsActive).ToList();
     Allies.ForEach(e => e.GetAI().Run(gameTime));
     Missiles = Missiles.Where(m => m.IsActive).ToList();
     Missiles.ForEach(m => m.Update(gameTime));
     Items = Items.Where(i => i.IsActive).ToList();
     Items.ForEach(i => i.Update(gameTime));
     DamageTexts = DamageTexts.Where(d => d.IsActive).ToList();
     DamageTexts.ForEach(d => d.Update(gameTime));
     EnemyCreatorFactory.Update(gameTime);
 }
コード例 #7
0
        private static bool AutoR()
        {
            if (!R.IsReady() || Player.InFountain())
            {
                return(false);
            }

            if (Menu.Item("RForce").IsActive() &&
                Allies.Where(h => h.IsValidTarget(R.Range, false)).OrderBy(o => o.Health).Any(o => R.CastOnUnit(o)))
            {
                return(true);
            }


            if (!Menu.Item("RKnockup").IsActive())
            {
                return(false);
            }

            var count    = 0;
            var bestAlly = Player;

            foreach (var ally in Allies.Where(a => a.IsValidTarget(R.Range, false)))
            {
                var c = ally.CountEnemiesInRange(RRadius);

                if (c <= count)
                {
                    continue;
                }

                count    = c;
                bestAlly = ally;
            }

            return(count >= Menu.Item("RKnockupEnemies").GetValue <Slider>().Value&& R.CastOnUnit(bestAlly));
        }
コード例 #8
0
ファイル: Lulu.cs プロジェクト: sadnecc/CHportcn
        private static bool AutoR()
        {
            if (!R.IsReady() || Player.InFountain())
            {
                return(false);
            }

            if (getKeyBindItem(rMenu, "RForce") &&
                Allies.Where(h => h.LSIsValidTarget(R.Range, false)).OrderBy(o => o.Health).Any(o => R.CastOnUnit(o)))
            {
                return(true);
            }


            if (!getCheckBoxItem(rMenu, "RKnockup"))
            {
                return(false);
            }

            var count    = 0;
            var bestAlly = Player;

            foreach (var ally in Allies.Where(a => a.LSIsValidTarget(R.Range, false)))
            {
                var c = ally.LSCountEnemiesInRange(RRadius);

                if (c <= count)
                {
                    continue;
                }

                count    = c;
                bestAlly = ally;
            }

            return(count >= getSliderItem(rMenu, "RKnockupEnemies") && R.CastOnUnit(bestAlly));
        }
コード例 #9
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 pix = combo.AddMenu("Pix", "Pix");

            pix.AddInfo("PixQ", "-- Pix Q --", Color.Purple);
            pix.Item("PixQ").SetTooltip("Use Pix to Cast Q");
            pix.AddBool("QPixCombo", "Use in Combo", false);
            pix.AddBool("QPixHarass", "Use in Harass", false);

            pix.AddInfo("PixEQ", "-- Pix E->Q --", Color.Purple);
            pix.Item("PixEQ").SetTooltip("Use E into Pix Q");
            pix.AddBool("EQPixCombo", "Use in Combo");
            pix.AddBool("EQPixHarass", "Use in Harass");

            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("QGapcloser", "Use Q on Gapcloser");
            q.AddBool("QImpaired", "Auto Q Movement Impaired", false);
            q.AddInfo("QMisc1", "-- Farm --", Color.Red);
            q.AddKeyBind("QFarm", "Use Q to Farm", 'K', KeyBindType.Toggle, true);
            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");
            draw.AddBool("FarmPermashow", "Permashow Farm Enabled");

            if (draw.Item("FarmPermashow").IsActive())
            {
                q.Item("QFarm").Permashow();
            }

            draw.Item("FarmPermashow").ValueChanged +=
                (sender, eventArgs) => { q.Item("QFarm").Permashow(eventArgs.GetNewValue <bool>()); };

            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);

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

            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, ManaCostDictionary);
            Pix.Initialize(Menu.Item("DrawPix"));
            SpellManager.Initialize(combo, Orbwalker);

            CustomAntiGapcloser.OnEnemyGapcloser    += CustomAntiGapcloser_OnEnemyGapcloser;
            CustomInterrupter.OnInterruptableTarget += CustomInterrupter_OnInterruptableTarget;
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: wade1990/PortAIO
        static void Game_OnGameLoad()
        {
            if (!Player.IsChampion("Kindred"))
            {
                return;
            }

            Menu = new Menu("KindredSpirits", "KindredSpirits", true);
            Menu.SetFontStyle(FontStyle.Regular, ScriptColor);

            Orbwalker = Menu.AddOrbwalker();
            Menu.AddTargetSelector();

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

            var qMenu = spells.AddMenu("Q", "Q");

            qMenu.AddBool("QCombo", "Use in Combo");
            qMenu.AddBool("QHarass", "Use in Harass");
            qMenu.AddBool("QSafety", "Q Safety Check");
            qMenu.AddBool("QKiteMachine", "Q KiteMachine");
            qMenu.AddInfo("KiteInfo", " --> Q's towards cursor position if enemy will be hit.", ScriptColor);
            qMenu.AddBool("QAlwaysKite", "Q Always to Cursor", false);
            qMenu.AddBool("QGapClose", "AntiGapclose with Q");
            qMenu.AddBool("QKillsteal", "Use for Killsteal");

            var wMenu = spells.AddMenu("W", "W");

            wMenu.AddBool("WCombo", "Use in Combo");
            wMenu.AddBool("WHarass", "Use in Harass");

            var eMenu = spells.AddMenu("E", "E");

            eMenu.AddBool("ECombo", "Use in Combo");
            eMenu.AddBool("EHarass", "Use in Harass");
            eMenu.AddBool("EBeforeAttack", "Only Use E Before Attack", false);
            eMenu.AddInfo("BeforeAttackInfo", " --> When enemy is close to leaving AA range.", ScriptColor);
            eMenu.AddBool("ESelectedTarget", "Only E Selected Target", false);

            var rMenu = spells.AddMenu("R", "R");

            var savingMenu = rMenu.AddMenu("SavingMode", "Saving Spirits Settings");
            var allyMenu   = savingMenu.AddMenu("RAlly", "Allied Champions");

            foreach (var ally in Allies.Where(a => !a.IsMe))
            {
                allyMenu.AddBool("R" + ally.ChampionName, "Use on " + ally.ChampionName);
                allyMenu.AddSlider("RHP" + ally.ChampionName, "Health Percent", 15);
            }

            savingMenu.AddSlider("SavingAllies", "Minimum Allies In Range", 0, 0, 5);
            savingMenu.AddSlider("SavingEnemies", "Maximum Enemies In Range", 0, 0, 5);

            rMenu.AddBool("RCombo", "Use R");
            rMenu.AddSlider("RSelf", "Self Health Percent", 15);

            var items = spells.AddMenu("Items", "Items");

            items.AddBool("ItemsCombo", "Use in Combo");
            items.AddBool("ItemsHarass", "Use in Harass");

            spells.AddBool("IgniteKillsteal", "Ignite Killsteal");
            spells.AddBool("SmiteKillsteal", "Smite Killsteal");
            spells.AddSlider("ManaHarass", "Harass Min Mana Percent", 40);

            var farm = Menu.AddMenu("Farm", "Farm");

            farm.AddBool("QLaneClear", "Q LaneClear");
            farm.AddBool("QJungleClear", "Q Jungle Clear");
            farm.AddSlider("QFarmMana", "Q Min Mana Percent", 40);
            farm.AddBool("WLaneClear", "Farm with W");
            farm.AddBool("EJungleClear", "E Jungle Clear");

            farm.AddKeyBind("FarmEnabled", "Farm Enabled", 'J', KeyBindType.Toggle, true);
            farm.AddInfo("FarmInfo", " --> Enabled in LaneClear and LastHit", ScriptColor);
            farm.AddBool("ItemsLaneClear", "Use Items in LaneClear");

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

            flee.AddInfo("FleeInfo", " --> Flees towards cursor position.", ScriptColor);
            flee.AddKeyBind("Flee", "Flee", 'T');
            flee.AddBool("FleeQ", "Use Q");
            flee.AddBool("FleeW", "Use W");
            flee.AddBool("FleeMove", "Move to Cursor Position");

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

            draw.AddCircle("0Draw", "Draw Q", System.Drawing.Color.Purple, SpellManager.Q.Range);
            draw.AddCircle("1Draw", "Draw W", System.Drawing.Color.DeepPink, SpellManager.W.Range);
            draw.AddCircle("2Draw", "Draw E", System.Drawing.Color.Blue, SpellManager.E.Range);
            draw.AddCircle("3Draw", "Draw R", System.Drawing.Color.White, SpellManager.R.Range);
            draw.AddBool("FarmPermashow", "Permashow Farm Enabled");

            if (draw.Item("FarmPermashow").IsActive())
            {
                farm.Item("FarmEnabled").Permashow(true, null, ScriptColor);
            }

            draw.Item("FarmPermashow").ValueChanged +=
                (sender, eventArgs) =>
            {
                farm.Item("FarmEnabled").Permashow(eventArgs.GetNewValue <bool>(), null, ScriptColor);
            };


            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.Blue);
            dmg.AddBool("Killable", "Killable Text");

            PassiveManager.Initialize();

            //Menu.AddBool("Sounds", "Sounds");
            Menu.AddInfo("Info", "By Trees and Lilith!", ScriptColor);
            Menu.AddToMainMenu();

            /*if (Menu.Item("Sounds").IsActive())
             * {
             *  new SoundObject(Resources.OnLoad).Play();
             * }*/

            DamageIndicator.DamageToUnit = GetComboDamage;
            UltimateManager.Initialize();

            Game.OnUpdate                  += Game_OnGameUpdate;
            Orbwalking.BeforeAttack        += BeforeAttack;
            Orbwalking.AfterAttack         += AfterAttack;
            AntiGapcloser.OnEnemyGapcloser += AntiGapcloser_OnEnemyGapcloser;
            Drawing.OnDraw                 += Drawing_OnDraw;
            Chat.Print(
                "<font color=\"{0}\">Kindred Spirits Loaded!</font>", System.Drawing.Color.Blue.ToHexString());
        }
コード例 #11
0
ファイル: FightGame.cs プロジェクト: Kuh4ku/Mercybot
        public IEnumerable <FighterEntry> GetHandToHandAllies(short cellId = -1)
        {
            MapPoint charMp = MapPoint.FromCellId(cellId == -1 ? PlayedFighter.CellId : cellId);

            return(Allies.Where(a => a.Alive && charMp.DistanceToCell(MapPoint.FromCellId(a.CellId)) == 1));
        }
コード例 #12
0
ファイル: Lulu.cs プロジェクト: sadnecc/CHportcn
        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;
        }