public static void Loading_OnLoadingComplete(EventArgs args)
        {
            if (myHero.Hero != Champion.Vayne)
            {
                return;
            }
            Chat.Print("<font color=\"#F20000\"><b>Doctor Vayne:</b></font> Loaded!");
            Chat.Print("Good Luck!");

            Q = new Spell2(SpellSlot.Q);
            W = new Spell2(SpellSlot.W);
            E = new Spell2(SpellSlot.E, 590f);
            E.SetTargetted(0.25f, 2200f);
            R = new Spell2(SpellSlot.R);

            var slot = myHero.GetSpellSlotFromName("summonerheal");

            if (slot != SpellSlot.Unknown)
            {
                Heal = new Spell.Active(slot, 600);
            }

            menu = MainMenu.AddMenu(AddonName, AddonName + " by " + Author + " v1.0");
            menu.AddLabel(AddonName + " Doctor Vayne " + Author);
            menu.AddLabel("Good Luck!");

            SubMenu["Combo"] = menu.AddSubMenu("连招", "Combo");
            SubMenu["Combo"].AddGroupLabel("Q 设置");
            SubMenu["Combo"].Add("Q", new CheckBox("使用 Q", true));
            SubMenu["Combo"].Add("Qult", new CheckBox("大招智能 Q", true));
            var Q1 = SubMenu["Combo"].Add("Qmode", new Slider("Q 模式", 0, 0, 1));
            var Q2 = new[] { "智能", "鼠标位置" };

            Q1.DisplayName = Q2[Q1.CurrentValue];

            Q1.OnValueChange +=
                delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs changeArgs)
            {
                sender.DisplayName = Q2[changeArgs.NewValue];
            };
            SubMenu["Combo"].AddSeparator(10);
            SubMenu["Combo"].Add("E", new CheckBox("使用 E", true));
            SubMenu["Combo"].Add("ELast", new CheckBox("使用 E 击杀敌人", false));
            SubMenu["Combo"].Add("PushDistance", new Slider("E 推距离", 380, 300, 425));
            SubMenu["Combo"].Add("R", new CheckBox("使用 R", true));
            SubMenu["Combo"].Add("R2", new Slider("范围内敌人数量 X 时", 2, 0, 5));
            SubMenu["Combo"].Add("noaastealth", new CheckBox("隐身时不普攻", true));
            SubMenu["Combo"].Add("noaastealth2", new Slider("范围内敌人数量 X 时", 2, 0, 5));
            SubMenu["Combo"].AddSeparator(10);
            SubMenu["Combo"].AddGroupLabel("物品设置");
            SubMenu["Combo"].Add("useItems", new CheckBox("使用物品", true));
            SubMenu["Combo"].Add("myhp", new Slider("玩家生命低于X %时使用破败", 55, 0, 100));

            SubMenu["Harass"] = menu.AddSubMenu("骚扰", "Harass");
            SubMenu["Harass"].Add("Q", new CheckBox("使用 Q", true));
            SubMenu["Harass"].Add("E", new CheckBox("使用 E", true));

            SubMenu["LastHit"] = menu.AddSubMenu("尾兵", "LastHit");
            SubMenu["LastHit"].Add("Q", new CheckBox("使用 Q", true));
            SubMenu["LastHit"].Add("LastHitMana", new Slider("蓝量大于", 80, 0, 100));

            SubMenu["LaneClear"] = menu.AddSubMenu("清线", "LaneClear");
            SubMenu["LaneClear"].Add("Q", new CheckBox("使用 Q", true));
            SubMenu["LaneClear"].Add("LaneClearMana", new Slider("蓝量大于", 85, 0, 100));

            SubMenu["JungleClear"] = menu.AddSubMenu("清野", "JungleClear");
            SubMenu["JungleClear"].Add("E", new CheckBox("使用 E", true));
            SubMenu["JungleClear"].Add("JungleClearMana", new Slider("蓝量大于", 50, 0, 100));


            SubMenu["Misc"] = menu.AddSubMenu("杂项", "Misc");
            SubMenu["Misc"].AddGroupLabel("防突进/技能打断设置");
            SubMenu["Misc"].Add("UseEInterrupt", new CheckBox("使用E防突进/技能打断", true));
            SubMenu["Misc"].Add("AntiGapQ", new CheckBox("使用Q造成间距", true));
            SubMenu["Misc"].AddSeparator(10);
            foreach (var hero in EntityManager.Heroes.Enemies.Where(x => x.IsEnemy))
            {
                SubMenu["Misc"].Add(hero.ChampionName, new CheckBox("对英雄防突进/技能打断 " + hero.ChampionName, true));
            }
            SubMenu["Misc"].AddSeparator(10);
            foreach (var enemy in EntityManager.Heroes.Enemies.Where(x => x.IsEnemy))
            {
                SubMenu["Misc"].Add(enemy.ChampionName + "E", new CheckBox("对英雄使用E " + enemy.ChampionName, true));
            }
            SubMenu["Misc"].AddSeparator(10);
            SubMenu["Misc"].AddGroupLabel("优先攻击W目标");
            SubMenu["Misc"].Add("focusW", new CheckBox("优先攻击W目标触发3W", true));

            SubMenu["Misc"].Add("waypoint", new CheckBox("显示目标行径", true));

            SubMenu["Misc"].AddSeparator(10);
            SubMenu["Misc"].AddGroupLabel("治疗设置");
            SubMenu["Misc"].Add("heal", new CheckBox("使用治疗", true));
            SubMenu["Misc"].Add("hp", new Slider("生命低于", 25, 0, 100));

            SubMenu["QSS"] = menu.AddSubMenu("自动解控", "QSS");
            SubMenu["QSS"].AddGroupLabel("自动水银/米凯尔");
            SubMenu["QSS"].Add("use", new KeyBind("使用水银/米凯尔", false, KeyBind.BindTypes.PressToggle, 'K'));
            SubMenu["QSS"].Add("delay", new Slider("延迟施放设置", 1000, 0, 2000));

            buffs = new[]
            {
                BuffType.Blind, BuffType.Charm, BuffType.CombatDehancer, BuffType.Fear, BuffType.Flee, BuffType.Knockback,
                BuffType.Knockup, BuffType.Polymorph, BuffType.Silence, BuffType.Sleep, BuffType.Snare, BuffType.Stun,
                BuffType.Suppression, BuffType.Taunt, BuffType.Poison
            };

            for (int i = 0; i < buffs.Length; i++)
            {
                SubMenu["QSS"].Add(buffs[i].ToString(), new CheckBox(buffs[i].ToString(), true));
            }

            orbwalker = new Orbwalking.Orbwalker(menu);
            TargetSelector2.Initialize();
            Spell2.Initialize();
            Prediction2.Initialize();

            _traps = new List <GameObject>();

            Obj_AI_Base.OnProcessSpellCast += Obj_AI_Base_OnProcessSpellCast;
            Game.OnUpdate                      += Game_OnUpdate;
            Obj_AI_Base.OnSpellCast            += Obj_AI_Base_OnSpellCast;
            Obj_AI_Base.OnCreate               += Obj_AI_Base_OnCreate;
            Obj_AI_Base.OnDelete               += Obj_AI_Base_OnDelete;
            Orbwalking.AfterAttack             += Orbwalking_AfterAttack;
            Interrupter2.OnInterruptableTarget += Interrupter2_OnInterruptableTarget;
            AntiGapcloser.OnEnemyGapcloser     += AntiGapcloser_OnEnemyGapcloser;
            Drawing.OnDraw                     += Drawing_OnDraw;
            Player.OnIssueOrder                += Player_OnIssueOrder;
        }