Example #1
0
        public static void GameOnOnGameLoad()
        {
            enemySpawn = ObjectManager.Get <Obj_SpawnPoint>().FirstOrDefault(x => x.IsEnemy);
            Q          = new Spell(SpellSlot.Q);
            E          = new Spell(SpellSlot.E);
            W          = new Spell(SpellSlot.W);
            R          = new Spell(SpellSlot.R);

            Config = MainMenu.AddMenu("OneKeyToWin AIO", "OneKeyToWin_AIO" + ObjectManager.Player.ChampionName);

            #region MENU ABOUT OKTW

            Config.Add("debug", new CheckBox("Debug", false));
            Config.Add("debugChat", new CheckBox("Debug Chat", false));
            Config.Add("print", new CheckBox("OKTW NEWS in chat"));

            #endregion

            Config.Add("AIOmode", new Slider("AIO mode (0 : Util & Champ | 1 : Only Champ | 2 : Only Util)", 0, 0, 2));
            AIOmode = getSliderItem("AIOmode");

            Config.Add("PredictionMODE", new Slider("Prediction MODE (0 : Common Pred | 1 : OKTW© PREDICTION | 2 : SPrediction | 3 : SDK)", 0, 0, 3));
            Config.Add("HitChance", new Slider("AIO mode (0 : Very High | 1 : High | 2 : Medium)", 0, 0, 2));
            Config.Add("debugPred", new CheckBox("Draw Aiming OKTW© PREDICTION", false));
            Config.Add("harassLaneclear", new CheckBox("Skill-Harass in lane clear"));

            if (getSliderItem("PredictionMODE") == 2)
            {
                SPrediction.Prediction.Initialize(Config);
                SPredictionLoad = true;
            }
            else
            {
                Config.AddLabel("SPREDICTION NOT LOADED");
            }

            if (AIOmode != 2)
            {
                Config.Add("supportMode", new CheckBox("Support Mode", false));
                Config.Add("comboDisableMode", new CheckBox("Disable auto-attack in combo mode", false));
                Config.Add("manaDisable", new CheckBox("Disable mana manager in combo"));
                Config.Add("collAA", new CheckBox("Disable auto-attack if Yasuo wall collision"));

                #region LOAD CHAMPIONS

                switch (Player.ChampionName)
                {
                case "Anivia":
                    PortAIO.Champion.Anivia.Anivia.LoadOKTW();
                    break;

                case "Annie":
                    PortAIO.Champion.Annie.Program.LoadOKTW();
                    break;

                case "Ashe":
                    PortAIO.Champion.Ashe.Program.LoadOKTW();
                    break;

                case "Braum":
                    PortAIO.Champion.Braum.Program.LoadOKTW();
                    break;

                case "Caitlyn":
                    new Caitlyn().LoadOKTW();
                    break;

                case "Ekko":
                    PortAIO.Champion.Ekko.Program.LoadOKTW();
                    break;

                case "Ezreal":
                    Ezreal.LoadOKTW();
                    break;

                case "Graves":
                    Graves.LoadOKTW();
                    break;

                case "Jayce":
                    OneKeyToWin_AIO_Sebby.Champions.Jayce.LoadOKTW();
                    break;

                case "Jinx":
                    Jinx.LoadOKTW();
                    break;

                case "Karthus":
                    Karthus.LoadOKTW();
                    break;

                case "MissFortune":
                    MissFortune.LoadOKTW();
                    break;

                case "Malzahar":
                    Malzahar.LoadOKTW();
                    break;

                case "Orianna":
                    Orianna.LoadOKTW();
                    break;

                case "Sivir":
                    Sivir.LoadOKTW();
                    break;

                case "Twitch":
                    Twitch.LoadOKTW();
                    break;

                case "Syndra":
                    Syndra.LoadOKTW();
                    break;

                case "Velkoz":
                    Velkoz.LoadOKTW();
                    break;

                case "Xerath":
                    Xerath.LoadOKTW();
                    break;

                case "Swain":
                    Swain.LoadOKTW();
                    break;

                case "Urgot":
                    Urgot.LoadOKTW();
                    break;

                case "Ahri":
                    Ahri.LoadOKTW();
                    break;

                case "Thresh":
                    Thresh.LoadOKTW();
                    break;

                case "Brand":
                    Brand.LoadOKTW();
                    break;

                case "Blitzcrank":
                    Blitzcrank.LoadOKTW();
                    break;

                case "Corki":
                    Corki.LoadOKTW();
                    break;

                case "Darius":
                    Darius.LoadOKTW();
                    break;

                case "Evelynn":
                    OneKeyToWin_AIO_Sebby.Champions.Evelynn.LoadOKTW();
                    break;

                case "Jhin":
                    Jhin.LoadOKTW();
                    break;

                case "Kindred":
                    Kindred.LoadOKTW();
                    break;

                case "KogMaw":
                    OneKeyToWin_AIO_Sebby.KogMaw.LoadOKTW();
                    break;

                case "Lux":
                    Lux.LoadOKTW();
                    break;

                case "Morgana":
                    Morgana.LoadOKTW();
                    break;

                case "Quinn":
                    Quinn.LoadOKTW();
                    break;

                case "TwistedFate":
                    OneKeyToWin_AIO_Sebby.Champions.TwistedFate.LoadOKTW();
                    break;
                }
            }

            #endregion

            foreach (var hero in HeroManager.Enemies)
            {
                if (hero.IsEnemy && hero.Team != Player.Team)
                {
                    Enemies.Add(hero);
                    if (IsJungler(hero))
                    {
                        jungler = hero;
                    }
                }
            }

            foreach (var hero in HeroManager.Allies)
            {
                if (hero.IsAlly && hero.Team == Player.Team)
                {
                    Allies.Add(hero);
                }
            }

            if (AIOmode != 1)
            {
                new OKTWward().LoadOKTW();
                new OKTWtracker().LoadOKTW();
            }

            Game.OnUpdate         += OnUpdate;
            Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;
            Drawing.OnDraw        += OnDraw;
        }
Example #2
0
        private void AutoWardLogic()
        {
            foreach (var enemy in Program.Enemies)
            {
                if (enemy.IsHPBarRendered)
                {
                    return;
                }
                var need = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                if (need == null || need.PredictedPos == null)
                {
                    continue;
                }


                var PPDistance = need.PredictedPos.LSDistance(Player.Position);

                if (PPDistance > 1400)
                {
                    continue;
                }

                var timer = Game.Time - need.LastVisableTime;

                if (timer > 1 && timer < 3)
                {
                    if (Program.Combo && PPDistance < 1500 && Player.ChampionName == "Quinn" && W.IsReady() && Quinn.getAutoW())
                    {
                        W.Cast();
                    }

                    if (Program.Combo && PPDistance < 900 && Player.ChampionName == "Karthus" && Q.IsReady() && Player.LSCountEnemiesInRange(900) == 0)
                    {
                        Q.Cast(need.PredictedPos);
                    }

                    if (Program.Combo && PPDistance < 1400 && Player.ChampionName == "Ashe" && E.IsReady() && Player.LSCountEnemiesInRange(800) == 0 && PortAIO.Champion.Ashe.Program.getAutoE())
                    {
                        E.Cast(Player.Position.LSExtend(need.PredictedPos, 5000));
                    }

                    if (PPDistance < 800 && Player.ChampionName == "MissFortune" && E.IsReady() && Program.Combo &&
                        Player.Mana > 200)
                    {
                        E.Cast(Player.Position.LSExtend(need.PredictedPos, 800));
                    }

                    if (!Orbwalker.IsAutoAttacking && PPDistance < 800 && Player.ChampionName == "Caitlyn" && W.IsReady() && Player.Mana > 200f && Caitlyn.getBushW() && Utils.TickCount - W.LastCastAttemptT > 2000)
                    {
                        W.Cast(need.PredictedPos);
                    }
                    if (!Orbwalker.IsAutoAttacking && PPDistance < 760 && Player.ChampionName == "Jhin" && E.IsReady() && Player.Mana > 200f && OneKeyToWin_AIO_Sebby.Champions.Jhin.getBushE() && Utils.TickCount - E.LastCastAttemptT > 2000)
                    {
                        E.Cast(need.PredictedPos);
                    }
                }


                if (timer < 4)
                {
                    if (getCheckBoxItem("AutoWardCombo") && Program.AIOmode != 2 && !Program.Combo)
                    {
                        return;
                    }
                    if (NavMesh.IsWallOfGrass(need.PredictedPos, 0))
                    {
                        if (PPDistance < 600 && getCheckBoxItem("AutoWard"))
                        {
                            if (TrinketN.IsReady())
                            {
                                TrinketN.Cast(need.PredictedPos);
                                need.LastVisableTime = Game.Time - 5;
                            }
                            else if (RSightStone.IsReady())
                            {
                                RSightStone.Cast(need.PredictedPos);
                                need.LastVisableTime = Game.Time - 5;
                            }
                            else if (SightStone.IsReady())
                            {
                                SightStone.Cast(need.PredictedPos);
                                need.LastVisableTime = Game.Time - 5;
                            }
                            else if (EOTOasis.IsReady())
                            {
                                EOTOasis.Cast(need.PredictedPos);
                                need.LastVisableTime = Game.Time - 5;
                            }
                            else if (EOTEquinox.IsReady())
                            {
                                EOTEquinox.Cast(need.PredictedPos);
                                need.LastVisableTime = Game.Time - 5;
                            }
                            else if (EOTWatchers.IsReady())
                            {
                                EOTWatchers.Cast(need.PredictedPos);
                                need.LastVisableTime = Game.Time - 5;
                            }
                        }

                        if (getCheckBoxItem("AutoWardBlue"))
                        {
                            if (FarsightOrb.IsReady())
                            {
                                FarsightOrb.Cast(need.PredictedPos);
                                need.LastVisableTime = Game.Time - 5;
                            }
                        }
                    }
                }
            }
        }
Example #3
0
        static void StartPlacement(Cell[,] Field)
        {
            King WhiteKing = new King(1, '♚', 7, 4);

            WhiteKing.SetToCell(Field, 7, 4);
            WhiteKing.SetFigureColor(Field, 7, 4);
            King BlackKing = new King(0, '♚', 0, 4);

            BlackKing.SetToCell(Field, 0, 4);
            BlackKing.SetFigureColor(Field, 0, 4);
            Quinn WhiteQuinn = new Quinn(1, '♛', 7, 3);

            WhiteQuinn.SetToCell(Field, 7, 3);
            WhiteQuinn.SetFigureColor(Field, 7, 3);
            Quinn BlackQuinn = new Quinn(0, '♛', 0, 3);

            BlackQuinn.SetToCell(Field, 0, 3);
            BlackQuinn.SetFigureColor(Field, 0, 3);
            Bishop WhiteBishop1 = new Bishop(1, '♝', 7, 2);

            WhiteBishop1.SetToCell(Field, 7, 2);
            WhiteBishop1.SetFigureColor(Field, 7, 2);
            Bishop WhiteBishop2 = new Bishop(1, '♝', 7, 5);

            WhiteBishop2.SetToCell(Field, 7, 5);
            WhiteBishop2.SetFigureColor(Field, 7, 5);
            Bishop BlackBishop1 = new Bishop(0, '♝', 0, 2);

            BlackBishop1.SetToCell(Field, 0, 2);
            BlackBishop1.SetFigureColor(Field, 0, 2);
            Bishop BlackBishop2 = new Bishop(0, '♝', 0, 5);

            BlackBishop2.SetToCell(Field, 0, 5);
            BlackBishop2.SetFigureColor(Field, 0, 5);
            Knight WhiteKnight1 = new Knight(1, '♞', 7, 1);

            WhiteKnight1.SetToCell(Field, 7, 1);
            WhiteKnight1.SetFigureColor(Field, 7, 1);
            Knight WhiteKnight2 = new Knight(1, '♞', 7, 6);

            WhiteKnight2.SetToCell(Field, 7, 6);
            WhiteKnight2.SetFigureColor(Field, 7, 6);
            Knight BlackKnight1 = new Knight(0, '♞', 0, 1);

            BlackKnight1.SetToCell(Field, 0, 1);
            BlackKnight1.SetFigureColor(Field, 0, 1);
            Knight BlackKnight2 = new Knight(0, '♞', 0, 6);

            BlackKnight2.SetToCell(Field, 0, 6);
            BlackKnight2.SetFigureColor(Field, 0, 6);
            Rook WhiteRook1 = new Rook(1, '♜', 7, 0);

            WhiteRook1.SetToCell(Field, 7, 0);
            WhiteRook1.SetFigureColor(Field, 7, 0);
            Rook WhiteRook2 = new Rook(1, '♜', 7, 7);

            WhiteRook2.SetToCell(Field, 7, 7);
            WhiteRook2.SetFigureColor(Field, 7, 7);
            Rook BlackRook1 = new Rook(0, '♜', 0, 0);

            BlackRook1.SetToCell(Field, 0, 0);
            BlackRook1.SetFigureColor(Field, 0, 0);
            Rook BlackRook2 = new Rook(0, '♜', 0, 7);

            BlackRook2.SetToCell(Field, 0, 7);
            BlackRook2.SetFigureColor(Field, 0, 7);
            Pawn WhitePawn1 = new Pawn(1, '♟', 6, 0);

            WhitePawn1.SetToCell(Field, 6, 0);
            WhitePawn1.SetFigureColor(Field, 6, 0);
            Pawn WhitePawn2 = new Pawn(1, '♟', 6, 1);

            WhitePawn2.SetToCell(Field, 6, 1);
            WhitePawn2.SetFigureColor(Field, 6, 1);
            Pawn WhitePawn3 = new Pawn(1, '♟', 6, 2);

            WhitePawn3.SetToCell(Field, 6, 2);
            WhitePawn3.SetFigureColor(Field, 6, 2);
            Pawn WhitePawn4 = new Pawn(1, '♟', 6, 3);

            WhitePawn4.SetToCell(Field, 6, 3);
            WhitePawn4.SetFigureColor(Field, 6, 3);
            Pawn WhitePawn5 = new Pawn(1, '♟', 6, 4);

            WhitePawn5.SetToCell(Field, 6, 4);
            WhitePawn5.SetFigureColor(Field, 6, 4);
            Pawn WhitePawn6 = new Pawn(1, '♟', 6, 5);

            WhitePawn6.SetToCell(Field, 6, 5);
            WhitePawn6.SetFigureColor(Field, 6, 5);
            Pawn WhitePawn7 = new Pawn(1, '♟', 6, 6);

            WhitePawn7.SetToCell(Field, 6, 6);
            WhitePawn7.SetFigureColor(Field, 6, 6);
            Pawn WhitePawn8 = new Pawn(1, '♟', 6, 7);

            WhitePawn8.SetToCell(Field, 6, 7);
            WhitePawn8.SetFigureColor(Field, 6, 7);
            Pawn BlackPawn1 = new Pawn(0, '♟', 1, 0);

            BlackPawn1.SetToCell(Field, 1, 0);
            BlackPawn1.SetFigureColor(Field, 1, 0);
            Pawn BlackPawn2 = new Pawn(0, '♟', 1, 1);

            BlackPawn2.SetToCell(Field, 1, 1);
            Pawn BlackPawn3 = new Pawn(0, '♟', 1, 2);

            BlackPawn3.SetToCell(Field, 1, 2);
            Pawn BlackPawn4 = new Pawn(0, '♟', 1, 3);

            BlackPawn4.SetToCell(Field, 1, 3);
            Pawn BlackPawn5 = new Pawn(0, '♟', 1, 4);

            BlackPawn5.SetToCell(Field, 1, 4);
            Pawn BlackPawn6 = new Pawn(0, '♟', 1, 5);

            BlackPawn6.SetToCell(Field, 1, 5);
            Pawn BlackPawn7 = new Pawn(0, '♟', 1, 6);

            BlackPawn7.SetToCell(Field, 1, 6);
            Pawn BlackPawn8 = new Pawn(0, '♟', 1, 7);

            BlackPawn8.SetToCell(Field, 1, 7);
        }
Example #4
0
        private static void InitChampions()
        {
            if (!SuppoetChampions.Contains(herosName))
            {
                Chat.Print("Flowers' ADC Series" + "[" + herosName + "]: Not Support!");
                return;
            }

            MyMenuExtensions.myMenu = Menu.AddMenu("Flowers' ADC Series: " + herosName);

            MyMenuExtensions.ComboMenu = MyMenuExtensions.myMenu.AddSubMenu(":: Combo Settings");

            MyMenuExtensions.HarassMenu = MyMenuExtensions.myMenu.AddSubMenu(":: Harass Settings");

            MyMenuExtensions.LaneClearMenu = MyMenuExtensions.myMenu.AddSubMenu(":: LaneClear Settings");

            MyMenuExtensions.JungleClearMenu = MyMenuExtensions.myMenu.AddSubMenu(":: JungleClear Settings");

            MyMenuExtensions.LastHitMenu = MyMenuExtensions.myMenu.AddSubMenu(":: LastHit Settings");

            MyMenuExtensions.FleeMenu = MyMenuExtensions.myMenu.AddSubMenu(":: Flee Settings");

            MyMenuExtensions.KillStealMenu = MyMenuExtensions.myMenu.AddSubMenu(":: KillSteal Settings");

            MyMenuExtensions.MiscMenu = MyMenuExtensions.myMenu.AddSubMenu(":: Misc Settings");
            MyManaManager.AddSpellFarm(MyMenuExtensions.MiscMenu);

            MyMenuExtensions.DrawMenu = MyMenuExtensions.myMenu.AddSubMenu(":: Drawings Settings");

            switch (ObjectManager.Player.ChampionName)
            {
            case "Ashe":
                Ashe.Init();
                break;

            case "Caitlyn":
                Caitlyn.Init();
                break;

            case "Corki":
                Corki.Init();
                break;

            case "Draven":
                Draven.Init();
                break;

            case "Ezreal":
                Ezreal.Init();
                break;

            case "Graves":
                Graves.Init();
                break;

            case "Jayce":
                Jayce.Init();
                break;

            case "Jhin":
                Jhin.Init();
                break;

            case "Jinx":
                Jinx.Init();
                break;

            case "Kalista":
                Kalista.Init();
                break;

            case "Kindred":
                Kindred.Init();
                break;

            case "KogMaw":
                KogMaw.Init();
                break;

            case "Lucian":
                Lucian.Init();
                break;

            case "MissFortune":
                MissFortune.Init();
                break;

            case "Quinn":
                Quinn.Init();
                break;

            case "Sivir":
                Sivir.Init();
                break;

            case "Teemo":
                Teemo.Init();
                break;

            case "Tristana":
                Tristana.Init();
                break;

            case "TwistedFate":
                TwistedFate.Init();
                break;

            case "Twitch":
                Twitch.Init();
                break;

            case "Urgot":
                Urgot.Init();
                break;

            case "Varus":
                Varus.Init();
                break;

            case "Vayne":
                Vayne.Init();
                break;

            case "Xayah":
                Xayah.Init();
                break;
            }

            Chat.Print("Flowers' ADC Series" + "[" + herosName + "]: Init Successful! Made by NightMoon");
        }
Example #5
0
        public static void GameOnOnGameLoad()
        {
            enemySpawn = ObjectManager.Get <Obj_SpawnPoint>().FirstOrDefault(x => x.IsEnemy);
            Q          = new Spell(SpellSlot.Q);
            E          = new Spell(SpellSlot.E);
            W          = new Spell(SpellSlot.W);
            R          = new Spell(SpellSlot.R);

            Config = MainMenu.AddMenu("一键制胜 合集", "OneKeyToWin_AIO" + ObjectManager.Player.ChampionName);

            #region MENU ABOUT OKTW

            Config.Add("debug", new CheckBox("调试", false));
            Config.Add("debugChat", new CheckBox("调试信息", false));
            Config.Add("print", new CheckBox("OKTW更新信息"));

            #endregion

            Config.Add("AIOmode", new Slider("合集模式 (0 : 功能集 & 英雄 | 1 : 只载入英雄 | 2 : 只载入功能集)", 0, 0, 2));
            AIOmode = getSliderItem("AIOmode");

            Config.Add("PredictionMODE", new Slider("预判库 (0 : 库预判 | 1 : OKTW© 预判 | 2 : S预判)", 0, 0, 2));
            Config.Add("HitChance", new Slider("AIO 预判模式 (0 : 非常高 | 1 : 高 | 2 : 中)", 0, 0, 2));
            Config.Add("debugPred", new CheckBox("显示 瞄准OKTW©预判", false));
            Config.Add("harassLaneclear", new CheckBox("清线时技能骚扰"));

            if (getSliderItem("PredictionMODE") == 2)
            {
                SPrediction.Prediction.Initialize(Config);
                SPredictionLoad = true;
            }
            else
            {
                Config.AddLabel("S预判未加载");
            }

            if (AIOmode != 2)
            {
                Config.Add("supportMode", new CheckBox("辅助模式", false));
                Config.Add("comboDisableMode", new CheckBox("连招屏蔽普攻", false));
                Config.Add("manaDisable", new CheckBox("连招时无视蓝量控制器"));
                Config.Add("collAA", new CheckBox("面对亚索风墙停止普攻"));

                #region LOAD CHAMPIONS

                switch (Player.ChampionName)
                {
                case "Anivia":
                    PortAIO.Champion.Anivia.Anivia.LoadOKTW();
                    break;

                case "Annie":
                    PortAIO.Champion.Annie.Program.LoadOKTW();
                    break;

                case "Ashe":
                    PortAIO.Champion.Ashe.Program.LoadOKTW();
                    break;

                case "Braum":
                    PortAIO.Champion.Braum.Program.LoadOKTW();
                    break;

                case "Caitlyn":
                    new Caitlyn().LoadOKTW();
                    break;

                case "Ekko":
                    PortAIO.Champion.Ekko.Program.LoadOKTW();
                    break;

                case "Ezreal":
                    Ezreal.LoadOKTW();
                    break;

                case "Graves":
                    Graves.LoadOKTW();
                    break;

                case "Jayce":
                    OneKeyToWin_AIO_Sebby.Champions.Jayce.LoadOKTW();
                    break;

                case "Jinx":
                    Jinx.LoadOKTW();
                    break;

                case "Karthus":
                    Karthus.LoadOKTW();
                    break;

                case "MissFortune":
                    MissFortune.LoadOKTW();
                    break;

                case "Malzahar":
                    Malzahar.LoadOKTW();
                    break;

                case "Orianna":
                    Orianna.LoadOKTW();
                    break;

                case "Sivir":
                    Sivir.LoadOKTW();
                    break;

                case "Twitch":
                    Twitch.LoadOKTW();
                    break;

                case "Syndra":
                    Syndra.LoadOKTW();
                    break;

                case "Velkoz":
                    Velkoz.LoadOKTW();
                    break;

                case "Xerath":
                    Xerath.LoadOKTW();
                    break;

                case "Swain":
                    Swain.LoadOKTW();
                    break;

                case "Urgot":
                    Urgot.LoadOKTW();
                    break;

                case "Ahri":
                    Ahri.LoadOKTW();
                    break;

                case "Thresh":
                    Thresh.LoadOKTW();
                    break;

                case "Brand":
                    Brand.LoadOKTW();
                    break;

                case "Blitzcrank":
                    Blitzcrank.LoadOKTW();
                    break;

                case "Corki":
                    Corki.LoadOKTW();
                    break;

                case "Darius":
                    Darius.LoadOKTW();
                    break;

                case "Evelynn":
                    OneKeyToWin_AIO_Sebby.Champions.Evelynn.LoadOKTW();
                    break;

                case "Jhin":
                    Jhin.LoadOKTW();
                    break;

                case "Kindred":
                    Kindred.LoadOKTW();
                    break;

                case "KogMaw":
                    OneKeyToWin_AIO_Sebby.KogMaw.LoadOKTW();
                    break;

                case "Lux":
                    Lux.LoadOKTW();
                    break;

                case "Morgana":
                    Morgana.LoadOKTW();
                    break;

                case "Quinn":
                    Quinn.LoadOKTW();
                    break;

                case "TwistedFate":
                    OneKeyToWin_AIO_Sebby.Champions.TwistedFate.LoadOKTW();
                    break;
                }
            }

            #endregion

            foreach (var hero in HeroManager.Enemies)
            {
                if (hero.IsEnemy && hero.Team != Player.Team)
                {
                    Enemies.Add(hero);
                    if (IsJungler(hero))
                    {
                        jungler = hero;
                    }
                }
            }

            foreach (var hero in HeroManager.Allies)
            {
                if (hero.IsAlly && hero.Team == Player.Team)
                {
                    Allies.Add(hero);
                }
            }

            if (AIOmode != 1)
            {
                new OKTWward().LoadOKTW();
                new OKTWtracker().LoadOKTW();
            }

            Game.OnUpdate         += OnUpdate;
            Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;
            Drawing.OnDraw        += OnDraw;
        }