Ejemplo n.º 1
0
 /// <summary>
 ///     Sets the resetter slots.
 /// </summary>
 public static void Initialize()
 {
     if (GameObjects.Player.Spellbook.Spells.Any(s => AutoAttack.IsAutoAttackReset(s.Name.ToLower())))
     {
         Vars.HasAnyReset = true;
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        ///     OnProcessSpellCast event.
        /// </summary>
        /// <param name="sender">
        ///     The sender
        /// </param>
        /// <param name="args">
        ///     The event data
        /// </param>
        private void OnObjAiBaseProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsValid && sender.IsMe)
            {
                var spellName = args.SData.Name;
                var target    = args.Target as AttackableUnit;

                if (target != null && target.IsValid && AutoAttack.IsAutoAttack(spellName))
                {
                    this.LastAutoAttackTick    = Variables.TickCount - (Game.Ping / 2);
                    this.MissileLaunched       = false;
                    this.LastMovementOrderTick = 0;
                    this.TotalAutoAttacks++;

                    if (!target.Compare(this.LastTarget))
                    {
                        this.InvokeAction(
                            new OrbwalkingActionArgs {
                            Target = target, Type = OrbwalkingType.TargetSwitch
                        });
                        this.LastTarget = target;
                    }

                    this.InvokeAction(
                        new OrbwalkingActionArgs {
                        Target = target, Sender = sender, Type = OrbwalkingType.OnAttack
                    });
                }

                if (AutoAttack.IsAutoAttackReset(spellName))
                {
                    this.ResetSwingTimer();
                }
            }
        }
Ejemplo n.º 3
0
        private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe || !Enabled)
            {
                return;
            }
            var spellName = args.SData.Name;
            var target    = args.Target as AttackableUnit;

            if (target != null && target.IsValid && AutoAttack.IsAutoAttack(spellName))
            {
                LastAutoAttackTick = Variables.TickCount - Game.Ping / 2;
                MissileLaunched    = false;
                if (!target.Compare(LastTarget))
                {
                    InvokeAction(new OrbwalkerActionArgs {
                        Target = target, Type = OrbwalkingType.TargetSwitch
                    });
                    LastTarget = target;
                }
                InvokeAction(
                    new OrbwalkerActionArgs {
                    Target = target, Sender = sender, Type = OrbwalkingType.OnAttack
                });
            }
            if (AutoAttack.IsAutoAttackReset(spellName))
            {
                DelayAction.Add(250, ResetAutoAttackTimer);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     OnProcessSpellCast event.
        /// </summary>
        /// <param name="sender">
        ///     The sender
        /// </param>
        /// <param name="args">
        ///     The event data
        /// </param>
        private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Enabled)
            {
                return;
            }

            if (sender.IsMe)
            {
                var spellName = args.SData.Name;
                var target    = args.Target as AttackableUnit;

                if (target != null && target.IsValid && AutoAttack.IsAutoAttack(spellName))
                {
                    LastAutoAttackTick = Variables.TickCount - (Game.Ping / 2);
                    MissileLaunched    = false;

                    if (!target.Compare(LastTarget))
                    {
                        InvokeAction(new OrbwalkerActionArgs {
                            Target = target, Type = OrbwalkerType.TargetSwitch
                        });

                        LastTarget = target;
                    }

                    var time = Variables.TickCount + (sender.AttackCastDelay * 1000) + 40;
                    if (!AfterAttackTime.ContainsKey(time))
                    {
                        AfterAttackTime.Add(
                            time,
                            new OrbwalkerActionArgs {
                            Target = target, Type = OrbwalkerType.AfterAttack
                        });
                    }

                    InvokeAction(
                        new OrbwalkerActionArgs {
                        Target = target, Sender = sender, Type = OrbwalkerType.OnAttack
                    });
                }

                if (AutoAttack.IsAutoAttackReset(spellName))
                {
                    ResetAutoAttackTimer();
                }
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 ///     Delayed OnDoCast event.
 /// </summary>
 /// <param name="sender">
 ///     The sender
 /// </param>
 /// <param name="args">
 ///     The event data
 /// </param>
 private void OnObjAiBaseDoCastDelayed(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (AutoAttack.IsAutoAttackReset(args.SData.Name))
     {
         this.ResetSwingTimer();
     }
     else if (AutoAttack.IsAutoAttack(args.SData.Name))
     {
         this.MissileLaunched = true;
         this.InvokeAction(
             new OrbwalkingActionArgs
         {
             Target = args.Target as AttackableUnit, Sender = sender, Type = OrbwalkingType.AfterAttack
         });
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void Resetters(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Vars.getCheckBoxItem(Vars.TypesMenu, "resetters"))
            {
                return;
            }

            if (!Vars.getKeyBindItem(Vars.KeysMenu, "combo") &&
                !Vars.getKeyBindItem(Vars.KeysMenu, "laneclear"))
            {
                return;
            }

            /// <summary>
            ///     If the player has no AA-Resets, triggers after normal AA, else after AA-Reset.
            /// </summary>
            if (sender.IsMe)
            {
                if ((!Vars.HasAnyReset && AutoAttack.IsAutoAttack(args.SData.Name)) ||
                    ObjectManager.Player.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)))
                {
                    /// <summary>
                    ///     The Tiamat Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3077))
                    {
                        Items.UseItem(3077);
                    }

                    /// <summary>
                    ///     The Ravenous Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3074))
                    {
                        Items.UseItem(3074);
                    }

                    /// <summary>
                    ///     The Titanic Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3748))
                    {
                        Items.UseItem(3748);
                    }
                }
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void Resetters(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Vars.TypesMenu["resetters"].Cast <CheckBox>().CurrentValue)
            {
                return;
            }

            if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) &&
                !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
            {
                return;
            }

            /// <summary>
            ///     If the player has no AA-Resets, triggers after normal AA, else after AA-Reset.
            /// </summary>
            if (sender.IsMe)
            {
                if ((!Vars.HasAnyReset && AutoAttack.IsAutoAttack(args.SData.Name)) ||
                    ObjectManager.Player.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)))
                {
                    /// <summary>
                    ///     The Tiamat Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3077))
                    {
                        Items.UseItem(3077);
                    }

                    /// <summary>
                    ///     The Ravenous Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3074))
                    {
                        Items.UseItem(3074);
                    }

                    /// <summary>
                    ///     The Titanic Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3748))
                    {
                        Items.UseItem(3748);
                    }
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void Resetters(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Vars.Menu["resetters"].GetValue <MenuBool>().Value)
            {
                return;
            }
            if (!Vars.Menu["keys"]["combo"].GetValue <MenuKeyBind>().Active &&
                !Vars.Menu["keys"]["laneclear"].GetValue <MenuKeyBind>().Active)
            {
                return;
            }

            /// <summary>
            ///     If the player has no AA-Resets, triggers after normal AA, else after AA-Reset.
            /// </summary>
            if (sender.IsMe)
            {
                if (!Vars.HasAnyReset && AutoAttack.IsAutoAttack(args.SData.Name) ||
                    ObjectManager.Player.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)))
                {
                    /// <summary>
                    ///     The Tiamat Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3077))
                    {
                        Items.UseItem(3077);
                    }

                    /// <summary>
                    ///     The Ravenous Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3074))
                    {
                        Items.UseItem(3074);
                    }

                    /// <summary>
                    ///     The Titanic Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3748))
                    {
                        Items.UseItem(3748);
                    }
                }
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        ///     Sets the menu.
        /// </summary>
        public static void Initialize()
        {
            /// <summary>
            ///     Sets the spells menu.
            /// </summary>
            Vars.SpellsMenu = new Menu("spells", "Spells");
            {
                /// <summary>
                ///     Sets the menu for the Q.
                /// </summary>
                Vars.QMenu = new Menu("q", "Use Q to:");
                {
                    Vars.QMenu.Add(new MenuBool("combo", "Combo", true));
                    Vars.QMenu.Add(new MenuBool("killsteal", "KillSteal", true));
                    Vars.QMenu.Add(new MenuBool("logical", "Logical", true));
                    Vars.QMenu.Add(new MenuSliderButton("harass", "Harass / if Mana >= x%", 50, 0, 99, true));
                    Vars.QMenu.Add(new MenuSliderButton("laneclear", "LaneClear / if Mana >= x%", 50, 0, 99, true));
                    Vars.QMenu.Add(new MenuSliderButton("jungleclear", "JungleClear / if Mana >= x%", 50, 0, 99, true));
                }
                Vars.SpellsMenu.Add(Vars.QMenu);

                /// <summary>
                ///     Sets the menu for the W.
                /// </summary>
                Vars.WMenu = new Menu("w", "Use W to:");
                {
                    Vars.WMenu.Add(new MenuBool("combo", "Combo", true));
                    Vars.WMenu.Add(new MenuSliderButton("laneclear", "LaneClear / if Mana >= x%", 50, 0, 99, true));
                    Vars.WMenu.Add(new MenuSliderButton("jungleclear", "JungleClear / if Mana >= x%", 50, 0, 99, true));
                    Vars.WMenu.Add(new MenuSliderButton("buildings", "Buildings / if Mana >= x%", 50, 0, 99, true));
                }
                Vars.SpellsMenu.Add(Vars.WMenu);

                /// <summary>
                ///     Sets the menu for the E.
                /// </summary>
                Vars.EMenu = new Menu("e", "Use E to:");
                {
                    Vars.EMenu.Add(new MenuSeparator("separator", "Evade#/EzEvade: Can shield skillshots."));
                    Vars.EMenu.Add(new MenuSeparator("separator2", "ExorSivir: Can shield everything else."));
                    Vars.EMenu.Add(new MenuBool("logical", "Logical", true));
                    Vars.EMenu.Add(new MenuSlider("delay", "E Delay (ms)", 0, 0, 250));
                    {
                        /// <summary>
                        ///     Sets the menu for the E Whitelist.
                        /// </summary>
                        Vars.WhiteListMenu = new Menu("whitelist", "Shield: Whitelist Menu", true);
                        {
                            Vars.WhiteListMenu.Add(new MenuBool("minions", "Shield: Dragon's Attacks", true));
                            foreach (var enemy in GameObjects.EnemyHeroes)
                            {
                                if (enemy.ChampionName.Equals("Alistar"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.pulverize",
                                            $"Shield: {enemy.ChampionName}'s Pulverize (Q)",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Braum"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.passive",
                                            $"Shield: {enemy.ChampionName}'s Passive",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Jax"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.jaxcounterstrike",
                                            $"Shield: {enemy.ChampionName}'s JaxCounterStrike (E)",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("KogMaw"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.kogmawicathiansurprise",
                                            $"Shield: {enemy.ChampionName}'s KogMawIcathianSurprise (Passive)",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Nautilus"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.nautilusravagestrikeattack",
                                            $"Shield: {enemy.ChampionName}'s NautilusRavageStrikeAttack (Passive)",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Udyr"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.udyrbearattack",
                                            $"Shield: {enemy.ChampionName}'s UdyrBearAttack (E)",
                                            true));
                                }

                                string[] excludedSpellsList = { "KatarinaE", "nautiluspiercinggaze" };
                                string[] assassinList       = { "Akali", "Leblanc", "Talon" };

                                foreach (var spell in
                                         SpellDatabase.Get()
                                         .Where(
                                             s =>
                                             !excludedSpellsList.Contains(s.SpellName) &&
                                             s.ChampionName.Equals(enemy.ChampionName)))
                                {
                                    if (spell.CastType != null)
                                    {
                                        if (enemy.IsMelee && spell.CastType.Contains(CastType.Activate) &&
                                            spell.SpellType.HasFlag(SpellType.Activated) &&
                                            AutoAttack.IsAutoAttackReset(spell.SpellName) ||
                                            spell.CastType.Contains(CastType.EnemyChampions) &&
                                            (spell.SpellType.HasFlag(SpellType.Targeted) ||
                                             spell.SpellType.HasFlag(SpellType.TargetedMissile)))
                                        {
                                            Vars.WhiteListMenu.Add(
                                                new MenuBool(
                                                    $"{enemy.ChampionName.ToLower()}.{spell.SpellName.ToLower()}",
                                                    $"Shield: {enemy.ChampionName}'s {spell.SpellName} ({spell.Slot})"
                                                    + (assassinList.Contains(enemy.ChampionName) ? "[May not work]" : ""),
                                                    true));
                                        }
                                    }
                                }
                            }
                        }

                        Vars.EMenu.Add(Vars.WhiteListMenu);
                    }
                }

                Vars.SpellsMenu.Add(Vars.EMenu);
            }

            Vars.Menu.Add(Vars.SpellsMenu);

            /// <summary>
            ///     Sets the drawings menu.
            /// </summary>
            Vars.DrawingsMenu = new Menu("drawings", "Drawings");
            {
                Vars.DrawingsMenu.Add(new MenuBool("q", "Q Range"));
            }
            Vars.Menu.Add(Vars.DrawingsMenu);
        }
Ejemplo n.º 10
0
        /// <summary>
        ///     Called while processing Spellcasting operations.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs" /> instance containing the event data.</param>
        public static void AutoShield(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender == null || !sender.IsEnemy)
            {
                return;
            }

            switch (sender.Type)
            {
            case GameObjectType.AIHeroClient:
                if (Invulnerable.Check(GameObjects.Player, DamageType.Magical, false))
                {
                    return;
                }

                /// <summary>
                ///     Block Gangplank's Barrels.
                /// </summary>
                var hero = sender as AIHeroClient;
                if (hero != null && hero.ChampionName.Equals("Gangplank"))
                {
                    if (!(args.Target is Obj_AI_Minion))
                    {
                        return;
                    }

                    if (AutoAttack.IsAutoAttack(args.SData.Name) || args.SData.Name.Equals("GangplankQProceed"))
                    {
                        if (Math.Abs(((Obj_AI_Minion)args.Target).Health - 1) <= 0 &&
                            ((Obj_AI_Minion)args.Target).DistanceToPlayer() < 450 &&
                            ((Obj_AI_Minion)args.Target).BaseSkinName.Equals("gangplankbarrel"))
                        {
                            Vars.W.Cast();
                        }
                    }
                }

                if (hero != null)
                {
                    /// <summary>
                    ///     Check for Special On-Hit CC AutoAttacks & Melee AutoAttack Resets.
                    /// </summary>
                    if (AutoAttack.IsAutoAttack(args.SData.Name))
                    {
                        if (!args.Target.IsMe)
                        {
                            return;
                        }

                        switch (args.SData.Name)
                        {
                        case "UdyrBearAttack":
                        case "BraumBasicAttackPassiveOverride":

                            /// <summary>
                            ///     Whitelist Block.
                            /// </summary>
                            if (
                                Vars.Menu["spells"]["e"]["whitelist"][
                                    $"{hero.ChampionName.ToLower()}.{args.SData.Name.ToLower()}"] == null ||
                                !Vars.Menu["spells"]["e"]["whitelist"][
                                    $"{hero.ChampionName.ToLower()}.{args.SData.Name.ToLower()}"]
                                .GetValue <MenuBool>().Value)
                            {
                                return;
                            }
                            if (GameObjects.Player.HasBuff("udyrbearstuncheck") &&
                                hero.ChampionName.Equals("Udyr"))
                            {
                                return;
                            }

                            Vars.W.Cast();
                            break;

                        default:
                            if (!hero.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)) ||
                                Vars.Menu["spells"]["e"]["whitelist"][
                                    $"{hero.ChampionName.ToLower()}.{hero.Buffs.First(b => AutoAttack.IsAutoAttackReset(b.Name)).Name.ToLower()}"
                                ] == null ||
                                !Vars.Menu["spells"]["e"]["whitelist"][
                                    $"{hero.ChampionName.ToLower()}.{hero.Buffs.First(b => AutoAttack.IsAutoAttackReset(b.Name)).Name.ToLower()}"
                                ].GetValue <MenuBool>().Value)
                            {
                                return;
                            }

                            Vars.W.Cast();
                            break;
                        }
                    }

                    /// <summary>
                    ///     Shield all the Targetted Spells.
                    /// </summary>
                    else if (SpellDatabase.GetByName(args.SData.Name) != null)
                    {
                        /// <summary>
                        ///     Whitelist Block.
                        /// </summary>
                        if (
                            Vars.Menu["spells"]["e"]["whitelist"][
                                $"{hero.ChampionName.ToLower()}.{args.SData.Name.ToLower()}"] == null ||
                            !Vars.Menu["spells"]["e"]["whitelist"][
                                $"{hero.ChampionName.ToLower()}.{args.SData.Name.ToLower()}"].GetValue <MenuBool>()
                            .Value)
                        {
                            return;
                        }

                        switch (SpellDatabase.GetByName(args.SData.Name).SpellType)
                        {
                        /// <summary>
                        ///     Check for Targetted Spells.
                        /// </summary>
                        case SpellType.Targeted:
                        case SpellType.TargetedMissile:
                            if (!args.Target.IsMe ||
                                !SpellDatabase.GetByName(args.SData.Name)
                                .CastType.Contains(CastType.EnemyChampions))
                            {
                                return;
                            }

                            switch (hero.ChampionName)
                            {
                            case "Caitlyn":
                                DelayAction.Add(1050, () => { Vars.W.Cast(); });
                                break;

                            case "Nocturne":
                                DelayAction.Add(350, () => { Vars.W.Cast(); });
                                break;

                            case "Zed":
                                DelayAction.Add(200, () => { Vars.W.Cast(); });
                                break;

                            default:
                                DelayAction.Add(
                                    Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value,
                                    () => { Vars.W.Cast(); });
                                break;
                            }

                            break;

                        /// <summary>
                        ///     Check for AoE Spells.
                        /// </summary>
                        case SpellType.SkillshotCircle:
                            switch (hero.ChampionName)
                            {
                            case "Alistar":
                                if (hero.DistanceToPlayer() < 355 + GameObjects.Player.BoundingRadius)
                                {
                                    Vars.W.Cast();
                                }
                                break;
                            }

                            break;
                        }
                    }
                }

                break;

            case GameObjectType.obj_AI_Minion:
                if (args.Target == null || !args.Target.IsMe)
                {
                    return;
                }

                /// <summary>
                ///     Block Dragon/Baron/RiftHerald's AutoAttacks.
                /// </summary>
                if (Vars.Menu["spells"]["e"]["whitelist"]["minions"].GetValue <MenuBool>().Value)
                {
                    if (sender.BaseSkinName.Equals("SRU_Baron") ||
                        sender.BaseSkinName.Contains("SRU_Dragon") ||
                        sender.BaseSkinName.Equals("SRU_RiftHerald"))
                    {
                        Vars.W.Cast();
                    }
                }
                break;
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        ///     Sets the menu.
        /// </summary>
        public static void Initialize()
        {
            /// <summary>
            /// Sets the spells menu.
            /// </summary>
            Vars.SpellsMenu = new Menu("spells", "Spells");
            {
                /// <summary>
                ///     Sets the menu for the Q.
                /// </summary>
                Vars.QMenu = new Menu("q", "Use Q to:");
                {
                    Vars.QMenu.Add(new MenuBool("combo", "Combo", true));
                    Vars.QMenu.Add(new MenuBool("killsteal", "KillSteal", true));
                    Vars.QMenu.Add(new MenuSliderButton("harass", "Harass / if Mana >= x%", 50, 0, 99, true));
                    Vars.QMenu.Add(new MenuSliderButton("laneclear", "LaneClear / if Mana >= x%", 50, 0, 99, true));
                    Vars.QMenu.Add(new MenuSliderButton("jungleclear", "JungleClear / if Mana >= x%", 50, 0, 99, true));
                }
                Vars.SpellsMenu.Add(Vars.QMenu);

                /// <summary>
                ///     Sets the menu for the W.
                /// </summary>
                Vars.WMenu = new Menu("w", "Use W to:");
                {
                    Vars.WMenu.Add(
                        new MenuSeparator(
                            "separator",
                            "It has to be used in conjunction with Evade, else it will not shield Skillshots"));
                    Vars.WMenu.Add(
                        new MenuSeparator(
                            "separator2",
                            "It is meant to shield what Evade doesn't support, like targetted spells."));
                    Vars.WMenu.Add(new MenuBool("logical", "Logical", true));
                    Vars.WMenu.Add(new MenuSlider("delay", "E Delay (ms)", 0, 0, 250));
                    {
                        /// <summary>
                        ///     Sets the menu for the W Whitelist.
                        /// </summary>
                        Vars.WhiteListMenu = new Menu("whitelist", "Shield: Whitelist Menu", true);
                        {
                            Vars.WhiteListMenu.Add(new MenuBool("minions", "Shield: Dragon/Baron Attacks", true));
                            foreach (var enemy in GameObjects.EnemyHeroes)
                            {
                                if (enemy.ChampionName.Equals("Alistar"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.pulverize",
                                            $"Shield: {enemy.ChampionName}'s Q",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Braum"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.braumbasicattackpassiveoverride",
                                            $"Shield: {enemy.ChampionName}'s Passive",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Jax"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.jaxcounterstrike",
                                            $"Shield: {enemy.ChampionName}'s E",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("KogMaw"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.kogmawicathiansurprise",
                                            $"Shield: {enemy.ChampionName}'s Passive",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Udyr"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.udyrbearattack",
                                            $"Shield: {enemy.ChampionName}'s E",
                                            true));
                                }
                                foreach (var spell in
                                         SpellDatabase.Get()
                                         .Where(
                                             s =>
                                             !s.SpellName.Equals("KatarinaE") && !s.SpellName.Equals("TalonCutthroat") &&
                                             s.ChampionName.Equals(enemy.ChampionName)))
                                {
                                    if (enemy.IsMelee && spell.CastType.Contains(CastType.Activate) &&
                                        spell.SpellType.HasFlag(SpellType.Activated) &&
                                        AutoAttack.IsAutoAttackReset(spell.SpellName) ||
                                        (spell.SpellType.HasFlag(SpellType.Targeted) ||
                                         spell.SpellType.HasFlag(SpellType.TargetedMissile)) &&
                                        spell.CastType.Contains(CastType.EnemyChampions))
                                    {
                                        Vars.WhiteListMenu.Add(
                                            new MenuBool(
                                                $"{enemy.ChampionName.ToLower()}.{spell.SpellName.ToLower()}",
                                                $"Shield: {enemy.ChampionName}'s {spell.Slot}",
                                                true));
                                    }
                                }
                            }
                        }

                        Vars.WMenu.Add(Vars.WhiteListMenu);
                    }
                }

                Vars.SpellsMenu.Add(Vars.WMenu);

                /// <summary>
                ///     Sets the menu for the E.
                /// </summary>
                Vars.EMenu = new Menu("e", "Use E to:");
                {
                    Vars.EMenu.Add(new MenuBool("combo", "Combo", true));
                    Vars.EMenu.Add(new MenuBool("gapcloser", "Anti-Gapcloser", true));
                    Vars.EMenu.Add(new MenuBool("interrupter", "Interrupt Enemy Channels", true));
                }
                Vars.SpellsMenu.Add(Vars.EMenu);

                /// <summary>
                ///     Sets the menu for the R.
                /// </summary>
                Vars.RMenu = new Menu("r", "Use R to:");
                {
                    Vars.RMenu.Add(
                        new MenuSeparator(
                            "separator",
                            "The Semi-Automatic R will automatically ult the lowest on health, whitelisted and non-invulnerable enemy in range."));
                    Vars.RMenu.Add(new MenuBool("bool", "Semi-Automatic R", true));
                    Vars.RMenu.Add(new MenuKeyBind("key", "Key:", Keys.T, KeyBindType.Press));
                    {
                        /// <summary>
                        ///     Sets the whitelist menu for the R.
                        /// </summary>
                        Vars.WhiteList2Menu = new Menu("whitelist", "Ultimate: Whitelist Menu");
                        {
                            foreach (var target in GameObjects.EnemyHeroes)
                            {
                                Vars.WhiteList2Menu.Add(
                                    new MenuBool(
                                        target.ChampionName.ToLower(),
                                        $"Use against: {target.ChampionName}",
                                        true));
                            }
                        }

                        Vars.RMenu.Add(Vars.WhiteList2Menu);
                    }
                }

                Vars.SpellsMenu.Add(Vars.RMenu);
            }

            Vars.Menu.Add(Vars.SpellsMenu);

            /// <summary>
            ///     Sets the drawings menu.
            /// </summary>
            Vars.DrawingsMenu = new Menu("drawings", "Drawings");
            {
                Vars.DrawingsMenu.Add(new MenuBool("q", "Q Range"));
                Vars.DrawingsMenu.Add(new MenuBool("e", "E Range"));
                Vars.DrawingsMenu.Add(new MenuBool("r", "R Range"));
            }
            Vars.Menu.Add(Vars.DrawingsMenu);
        }
Ejemplo n.º 12
0
        /// <summary>
        ///     Sets the menu.
        /// </summary>
        public static void Initialize()
        {
            /// <summary>
            ///     Sets the menu for the Q.
            /// </summary>
            Vars.QMenu = Vars.Menu.AddSubMenu("Use Q to:", "q");
            {
                Vars.QMenu.Add("combo", new CheckBox("Combo", true));
                Vars.QMenu.Add("killsteal", new CheckBox("KillSteal", true));
                Vars.QMenu.Add("logical", new CheckBox("Logical", true));
                Vars.QMenu.AddLabel("Set the sliders to 101 below to disable them.");
                Vars.QMenu.Add("harass", new Slider("Harass / if Mana >= x%", 50, 0, 101));
                Vars.QMenu.Add("clear", new Slider("Clear / if Mana >= x%", 50, 0, 101));
            }

            /// <summary>
            ///     Sets the menu for the W.
            /// </summary>
            Vars.WMenu = Vars.Menu.AddSubMenu("Use W to:", "w");
            {
                Vars.WMenu.Add("combo", new CheckBox("Combo", true));
                Vars.QMenu.AddLabel("Set the sliders to 101 below to disable them.");
                Vars.WMenu.Add("clear", new Slider("Clear / if Mana >= x%", 50, 0, 101));
                Vars.WMenu.Add("buildings", new Slider("Buildings / if Mana >= x%", 50, 0, 101));
            }

            /// <summary>
            ///     Sets the menu for the E.
            /// </summary>
            Vars.EMenu = Vars.Menu.AddSubMenu("Use E to:", "e");
            {
                Vars.EMenu.AddLabel("It has to be used in conjunction with Evade, else it will not shield Skillshots");
                Vars.EMenu.AddLabel("It it meant to shield what Evade doesn't support, like targetted spells, AoE, etc.");
                Vars.EMenu.Add("logical", new CheckBox("Logical", true));
                Vars.EMenu.Add("delay", new Slider("E Delay (ms)", 0, 0, 250));
            }

            /// <summary>
            ///     Sets the menu for the E Whitelist.
            /// </summary>
            Vars.WhiteListMenu = Vars.Menu.AddSubMenu("Shield: Whitelist Menu");
            {
                Vars.WhiteListMenu.Add("minions", new CheckBox("Shield: Dragon/Baron Attacks"));
                foreach (var enemy in GameObjects.EnemyHeroes)
                {
                    if (enemy.ChampionName.Equals("Alistar"))
                    {
                        Vars.WhiteListMenu.Add($"{enemy.ChampionName.ToLower()}.pulverize", new CheckBox($"Shield: {enemy.ChampionName}'s Q"));
                    }

                    if (enemy.ChampionName.Equals("Braum"))
                    {
                        Vars.WhiteListMenu.Add($"{enemy.ChampionName.ToLower()}.braumbasicattackpassiveoverride", new CheckBox($"Shield: {enemy.ChampionName}'s Passive"));
                    }

                    if (enemy.ChampionName.Equals("Jax"))
                    {
                        Vars.WhiteListMenu.Add($"{enemy.ChampionName.ToLower()}.jaxcounterstrike", new CheckBox($"Shield: {enemy.ChampionName}'s E", true));
                    }

                    if (enemy.ChampionName.Equals("KogMaw"))
                    {
                        Vars.WhiteListMenu.Add($"{enemy.ChampionName.ToLower()}.kogmawicathiansurprise", new CheckBox($"Shield: {enemy.ChampionName}'s Passive", true));
                    }

                    if (enemy.ChampionName.Equals("Udyr"))
                    {
                        Vars.WhiteListMenu.Add($"{enemy.ChampionName.ToLower()}.udyrbearattack", new CheckBox($"Shield: {enemy.ChampionName}'s E"));
                    }

                    foreach (var spell in SpellDatabase.Get().Where(
                                 s =>
                                 !s.SpellName.Equals("KatarinaE") &&
                                 !s.SpellName.Equals("TalonCutthroat") &&
                                 s.ChampionName.Equals(enemy.ChampionName)))
                    {
                        if ((enemy.IsMelee &&
                             spell.CastType.Contains(CastType.Activate) &&
                             spell.SpellType.HasFlag(SpellType.Activated) &&
                             AutoAttack.IsAutoAttackReset(spell.SpellName)) ||

                            ((spell.SpellType.HasFlag(SpellType.Targeted) ||
                              spell.SpellType.HasFlag(SpellType.TargetedMissile)) &&
                             spell.CastType.Contains(CastType.EnemyChampions)))
                        {
                            Vars.WhiteListMenu.Add($"{enemy.ChampionName.ToLower()}.{spell.SpellName.ToLower()}", new CheckBox($"Shield: {enemy.ChampionName}'s {spell.Slot}"));
                        }
                    }
                }
            }

            /// <summary>
            ///     Sets the drawings menu.
            /// </summary>
            Vars.DrawingsMenu = Vars.Menu.AddSubMenu("Drawings");
            {
                Vars.DrawingsMenu.Add("q", new CheckBox("Q Range"));
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        ///     Called while processing Spelaneclearlearast operations.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs" /> instance containing the event data.</param>
        public static void AutoShield(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (Invulnerable.Check(GameObjects.Player, DamageType.True, false))
            {
                return;
            }

            if (sender.IsMe ||
                sender == null ||
                !sender.IsValid)
            {
                return;
            }

            /// <summary>
            ///     Special check for Kalista's E.
            /// </summary>
            if (args.SData.Name.Equals("KalistaExpungeWrapper"))
            {
                if (!ObjectManager.Player.HasBuff("KalistaExpungeMarker"))
                {
                    return;
                }
            }
            else
            {
                if (args.Target == null)
                {
                    return;
                }

                if (args.SData.Name.Equals("HextechGunblade") ||
                    args.SData.Name.Equals("BilgewaterCutlass") ||
                    args.SData.Name.Equals("ItemSwordOfFeastAndFamine"))
                {
                    return;
                }

                /// <summary>
                ///     Block Gangplank's Barrels.
                /// </summary>
                if ((sender as AIHeroClient).ChampionName.Equals("Gangplank"))
                {
                    if (AutoAttack.IsAutoAttack(args.SData.Name) ||
                        args.SData.Name.Equals("GangplankQProceed"))
                    {
                        if ((args.Target as Obj_AI_Minion).Health == 1 &&
                            (args.Target as Obj_AI_Minion).CharData.BaseSkinName.Equals("gangplankbarrel"))
                        {
                            if (GameObjects.Player.Distance(args.Target) < 450)
                            {
                                Vars.E.Cast();
                            }
                        }
                    }
                    else if (args.SData.Name.Equals("GangplankEBarrelFuseMissile"))
                    {
                        if (GameObjects.Player.Distance(args.End) < 450)
                        {
                            Vars.E.Cast();
                        }
                    }
                }

                if (!args.Target.IsMe)
                {
                    return;
                }

                /// <summary>
                ///     Block Dragon's AutoAttacks.
                /// </summary>
                if (sender is Obj_AI_Minion)
                {
                    if (!sender.CharData.BaseSkinName.Equals("SRU_Baron") &&
                        !sender.CharData.BaseSkinName.Contains("SRU_Dragon") &&
                        !sender.CharData.BaseSkinName.Equals("SRU_RiftHerald"))
                    {
                        return;
                    }
                }

                if (!sender.IsEnemy ||
                    !(sender as AIHeroClient).LSIsValidTarget())
                {
                    return;
                }

                /// <summary>
                ///     Special check for the AutoAttacks.
                /// </summary>
                if (AutoAttack.IsAutoAttack(args.SData.Name))
                {
                    if (!sender.IsMelee)
                    {
                        if (!args.SData.Name.Contains("Card"))
                        {
                            return;
                        }
                    }
                    else
                    {
                        if (sender.Buffs.Any(b => AutoAttack.IsAutoAttackReset(args.SData.Name)))
                        {
                            Vars.E.Cast();
                        }
                    }
                }

                /// <summary>
                ///     Special check for the Located AoE skillshots.
                /// </summary>
                if (args.SData.TargettingType.Equals(SpellDataTargetType.LocationAoe))
                {
                    if (args.SData.Name.Equals("GangplankE") ||
                        args.SData.Name.Equals("TrundleCircle") ||
                        args.SData.Name.Equals("TormentedSoil") ||
                        args.SData.Name.Equals("MissFortuneScattershot"))
                    {
                        return;
                    }
                }

                /// <summary>
                ///     Special check for the on target-position AoE spells.
                /// </summary>
                if (args.SData.TargettingType.Equals(SpellDataTargetType.SelfAoe))
                {
                    if (!args.SData.Name.Equals("MockingShout"))
                    {
                        return;
                    }
                }
            }

            if (args.Target.IsMe && sender.CharData.BaseSkinName.Equals("Zed") && args.SData.TargettingType.Equals(SpellDataTargetType.Self))
            {
                /// <summary>
                ///     If the sender is Zed and the processed arg is a Targetted spell (His Ultimate), delay the shieldcasting by 200ms.
                /// </summary>
                DelayAction.Add(200,
                                () =>
                {
                    Vars.E.Cast();
                }
                                );
            }
            else
            {
                DelayAction.Add(
                    Menus.getSliderItem(Vars.EMenu, "delay"),
                    () =>
                {
                    Vars.E.Cast();
                }
                    );
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        ///     Called while processing Spellcasting operations.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs" /> instance containing the event data.</param>
        public static void AutoShield(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender == null || !sender.IsEnemy)
            {
                return;
            }

            switch (sender.Type)
            {
            case GameObjectType.obj_AI_Hero:
                if (Invulnerable.Check(GameObjects.Player, DamageType.Magical, false))
                {
                    return;
                }

                var hero = sender as Obj_AI_Hero;
                if (hero != null)
                {
                    /// <summary>
                    ///     Block Gangplank's Barrels.
                    /// </summary>
                    if (hero.ChampionName.Equals("Gangplank"))
                    {
                        if (!(args.Target is Obj_AI_Minion))
                        {
                            return;
                        }

                        if (AutoAttack.IsAutoAttack(args.SData.Name) || args.SData.Name.Equals("GangplankQProceed"))
                        {
                            var target = (Obj_AI_Minion)args.Target;
                            if ((int)target.Health == 1 && target.DistanceToPlayer() < 450 &&
                                target.CharData.BaseSkinName.Equals("gangplankbarrel"))
                            {
                                Vars.E.Cast();
                                return;
                            }
                        }
                    }

                    var braumMenu = Vars.Menu["spells"]["e"]["whitelist"]["braum.passive"];
                    var spellMenu =
                        Vars.Menu["spells"]["e"]["whitelist"][
                            $"{hero.ChampionName.ToLower()}.{args.SData.Name.ToLower()}"];

                    var resetMenu = hero.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name))
                                            ? Vars.Menu["spells"]["e"]["whitelist"][
                        $"{hero.ChampionName.ToLower()}.{hero.Buffs.First(b => AutoAttack.IsAutoAttackReset(b.Name)).Name.ToLower()}"
                                    ]
                                            : null;

                    if (args.Target != null && args.Target.IsMe)
                    {
                        /// <summary>
                        ///     Check for Special On-Hit CC AutoAttacks.
                        /// </summary>
                        if (AutoAttack.IsAutoAttack(args.SData.Name))
                        {
                            switch (args.SData.Name)
                            {
                            case "UdyrBearAttack":
                            case "GoldCardPreAttack":
                            case "RedCardPreAttack":
                            case "BlueCardPreAttack":
                            case "NautilusRavageStrikeAttack":
                                if (spellMenu != null && spellMenu.GetValue <MenuBool>().Value &&
                                    (!hero.ChampionName.Equals("Udyr") ||
                                     !GameObjects.Player.HasBuff("udyrbearstuncheck")))
                                {
                                    Vars.E.Cast();
                                }
                                break;
                            }

                            /// <summary>
                            ///     Check for Melee AutoAttack Resets.
                            /// </summary>
                            if (resetMenu != null && resetMenu.GetValue <MenuBool>().Value &&
                                hero.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)))
                            {
                                Vars.E.Cast();
                                return;
                            }

                            /// <summary>
                            ///     Check for Braum Passive.
                            /// </summary>
                            if (braumMenu != null && braumMenu.GetValue <MenuBool>().Value &&
                                GameObjects.Player.GetBuffCount("BraumMark") == 3)
                            {
                                Vars.E.Cast();
                                return;
                            }
                        }
                    }

                    /// <summary>
                    ///     Shield all the Targetted Spells.
                    /// </summary>
                    if (spellMenu != null && spellMenu.GetValue <MenuBool>().Value &&
                        SpellDatabase.GetByName(args.SData.Name) != null)
                    {
                        switch (SpellDatabase.GetByName(args.SData.Name).SpellType)
                        {
                        /// <summary>
                        ///     Check for Targetted Spells.
                        /// </summary>
                        case SpellType.Targeted:
                        case SpellType.TargetedMissile:
                            if (args.Target != null && args.Target.IsMe)
                            {
                                var delay = Vars.Menu["spells"]["e"]["delay"].GetValue <MenuSlider>().Value;
                                switch (hero.ChampionName)
                                {
                                case "Caitlyn":
                                    delay = 1050;
                                    break;

                                case "Nocturne":
                                    delay = 350;
                                    break;

                                case "Zed":
                                    delay = 200;
                                    break;

                                case "Nautilus":
                                    delay = (int)GameObjects.Player.Distance(hero);
                                    break;
                                }

                                DelayAction.Add(delay, () => { Vars.E.Cast(); });
                            }
                            break;

                        /// <summary>
                        ///     Check for AoE Spells.
                        /// </summary>
                        case SpellType.SkillshotCircle:
                            switch (hero.ChampionName)
                            {
                            case "Alistar":
                                if (hero.DistanceToPlayer() < 355 + GameObjects.Player.BoundingRadius)
                                {
                                    Vars.E.Cast();
                                }
                                break;
                            }
                            break;
                        }
                    }
                }

                break;

            case GameObjectType.obj_AI_Minion:
                /// <summary>
                ///     Block Dragon/Baron/RiftHerald's AutoAttacks.
                /// </summary>
                if (args.Target != null && args.Target.IsMe && sender.CharData.BaseSkinName.Contains("SRU_Dragon") &&
                    Vars.Menu["spells"]["e"]["whitelist"]["minions"].GetValue <MenuBool>().Value)
                {
                    Vars.E.Cast();
                }
                break;
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        ///     Sets the menu.
        /// </summary>
        public static void Initialize()
        {
            /// <summary>
            ///     Sets the spells menu.
            /// </summary>
            Vars.SpellsMenu = new Menu("spells", "Spells");
            {
                /// <summary>
                ///     Sets the menu for the Q.
                /// </summary>
                Vars.QMenu = new Menu("q", "Use Q to:");
                {
                    Vars.QMenu.Add(new MenuBool("combo", "Combo", true));
                    Vars.QMenu.Add(new MenuBool("killsteal", "KillSteal", true));
                    Vars.QMenu.Add(new MenuBool("logical", "Logical", true));
                    Vars.QMenu.Add(new MenuSliderButton("harass", "Harass / if Mana >= x%", 50, 0, 99, true));
                    Vars.QMenu.Add(new MenuSliderButton("clear", "Clear / if Mana >= x%", 50, 0, 99, true));
                }
                Vars.SpellsMenu.Add(Vars.QMenu);

                /// <summary>
                ///     Sets the menu for the W.
                /// </summary>
                Vars.WMenu = new Menu("w", "Use W to:");
                {
                    Vars.WMenu.Add(new MenuBool("combo", "Combo", true));
                    Vars.WMenu.Add(new MenuSliderButton("clear", "Clear / if Mana >= x%", 50, 0, 99, true));
                    Vars.WMenu.Add(new MenuSliderButton("buildings", "Buildings / if Mana >= x%", 50, 0, 99, true));
                }
                Vars.SpellsMenu.Add(Vars.WMenu);

                /// <summary>
                ///     Sets the menu for the E.
                /// </summary>
                Vars.EMenu = new Menu("e", "Use E to:");
                {
                    Vars.EMenu.Add(
                        new MenuSeparator(
                            "separator",
                            "It has to be used in conjunction with Evade, else it will not shield Skillshots"));
                    Vars.EMenu.Add(
                        new MenuSeparator(
                            "separator2",
                            "It is meant to shield what Evade doesn't support, like targetted spells."));
                    Vars.EMenu.Add(new MenuBool("logical", "Logical", true));
                    Vars.EMenu.Add(new MenuSlider("delay", "E Delay (ms)", 0, 0, 250));
                    {
                        /// <summary>
                        ///     Sets the menu for the E Whitelist.
                        /// </summary>
                        Vars.WhiteListMenu = new Menu("whitelist", "Shield: Whitelist Menu", true);
                        {
                            Vars.WhiteListMenu.Add(new MenuBool("minions", "Shield: Dragon's Attacks", true));
                            foreach (var enemy in GameObjects.EnemyHeroes)
                            {
                                if (enemy.ChampionName.Equals("Alistar"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.pulverize",
                                            $"Shield: {enemy.ChampionName}'s Q",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Braum"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.braumbasicattackpassiveoverride",
                                            $"Shield: {enemy.ChampionName}'s Passive",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Jax"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.jaxcounterstrike",
                                            $"Shield: {enemy.ChampionName}'s E",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("KogMaw"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.kogmawicathiansurprise",
                                            $"Shield: {enemy.ChampionName}'s Passive",
                                            true));
                                }
                                if (enemy.ChampionName.Equals("Udyr"))
                                {
                                    Vars.WhiteListMenu.Add(
                                        new MenuBool(
                                            $"{enemy.ChampionName.ToLower()}.udyrbearattack",
                                            $"Shield: {enemy.ChampionName}'s E",
                                            true));
                                }

                                foreach (var spell in
                                         SpellDatabase.Get()
                                         .Where(
                                             s =>
                                             !s.SpellName.Equals("KatarinaE") && !s.SpellName.Equals("TalonCutthroat") &&
                                             s.ChampionName.Equals(enemy.ChampionName)))
                                {
                                    if (enemy.IsMelee && spell.CastType != null &&
                                        spell.CastType.Contains(CastType.Activate) &&
                                        spell.SpellType.HasFlag(SpellType.Activated) &&
                                        AutoAttack.IsAutoAttackReset(spell.SpellName) ||
                                        spell.CastType != null && spell.CastType.Contains(CastType.EnemyChampions) &&
                                        (spell.SpellType.HasFlag(SpellType.Targeted) ||
                                         spell.SpellType.HasFlag(SpellType.TargetedMissile)))
                                    {
                                        Vars.WhiteListMenu.Add(
                                            new MenuBool(
                                                $"{enemy.ChampionName.ToLower()}.{spell.SpellName.ToLower()}",
                                                $"Shield: {enemy.ChampionName}'s {(enemy.ChampionName.Equals("TwistedFate") ? spell.MissileSpellName : spell.Slot.ToString())}",
                                                true));
                                    }
                                }
                            }
                        }

                        Vars.EMenu.Add(Vars.WhiteListMenu);
                    }
                }

                Vars.SpellsMenu.Add(Vars.EMenu);
            }

            Vars.Menu.Add(Vars.SpellsMenu);

            /// <summary>
            ///     Sets the drawings menu.
            /// </summary>
            Vars.DrawingsMenu = new Menu("drawings", "Drawings");
            {
                Vars.DrawingsMenu.Add(new MenuBool("q", "Q Range"));
            }
            Vars.Menu.Add(Vars.DrawingsMenu);
        }
Ejemplo n.º 16
0
        /// <summary>
        ///     Called while processing Spellcasting operations.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs" /> instance containing the event data.</param>
        public static void AutoShield(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe ||
                Invulnerable.Check(GameObjects.Player, DamageType.True, false))
            {
                return;
            }

            /// <summary>
            ///     Block Traps.
            /// </summary>
            if (ObjectManager.Get <Obj_AI_Minion>().Any(
                    m =>
                    m.Distance(GameObjects.Player) < 175 &&
                    m.CharData.BaseSkinName.Equals("caitlyntrap")))
            {
                Vars.E.Cast();
                return;
            }

            if (args.Target == null ||
                !sender.LSIsValidTarget())
            {
                return;
            }

            /// <summary>
            ///     Block Dragon's AutoAttacks.
            /// </summary>
            if (args.Target.IsMe &&
                sender is Obj_AI_Minion)
            {
                if (sender.CharData.BaseSkinName.Equals("SRU_Baron") ||
                    sender.CharData.BaseSkinName.Contains("SRU_Dragon") ||
                    sender.CharData.BaseSkinName.Equals("SRU_RiftHerald"))
                {
                    Vars.E.Cast();
                }
            }
            else if (sender.IsEnemy &&
                     sender is AIHeroClient)
            {
                /// <summary>
                ///     Block Gangplank's Barrels.
                /// </summary>
                if ((sender as AIHeroClient).ChampionName.Equals("Gangplank"))
                {
                    if (AutoAttack.IsAutoAttack(args.SData.Name) ||
                        args.SData.Name.Equals("GangplankQProceed"))
                    {
                        if ((args.Target as Obj_AI_Minion).Health == 1 &&
                            (args.Target as Obj_AI_Minion).CharData.BaseSkinName.Equals("gangplankbarrel"))
                        {
                            if (GameObjects.Player.Distance(args.Target) < 450)
                            {
                                Vars.E.Cast();
                            }
                        }
                    }
                    else if (args.SData.Name.Equals("GangplankEBarrelFuseMissile"))
                    {
                        if (GameObjects.Player.Distance(args.End) < 450)
                        {
                            Vars.E.Cast();
                        }
                    }
                }

                if (!args.Target.IsMe)
                {
                    return;
                }

                if (args.SData.Name.Equals("KatarinaE") ||
                    args.SData.Name.Equals("SummonerDot") ||
                    args.SData.Name.Equals("TalonCutthroat") ||
                    args.SData.Name.Equals("HextechGunblade") ||
                    args.SData.Name.Equals("BilgewaterCutlass") ||
                    args.SData.Name.Equals("ItemSwordOfFeastAndFamine"))
                {
                    return;
                }

                switch (args.SData.TargettingType)
                {
                /// <summary>
                ///     Special check for the AutoAttacks.
                /// </summary>
                case SpellDataTargetType.Unit:
                case SpellDataTargetType.Self:
                case SpellDataTargetType.LocationAoe:

                    if (args.SData.Name.Equals("GangplankE") ||
                        args.SData.Name.Equals("TrundleCircle") ||
                        args.SData.Name.Equals("TormentedSoil") ||
                        args.SData.Name.Equals("SwainDecrepify") ||
                        args.SData.Name.Equals("MissFortuneScattershot") ||
                        args.SData.Name.Equals("OrianaDissonanceCommand"))
                    {
                        break;
                    }

                    if (AutoAttack.IsAutoAttack(args.SData.Name))
                    {
                        if (!sender.IsMelee)
                        {
                            if (args.SData.Name.Contains("Card"))
                            {
                                Vars.E.Cast();
                            }
                        }
                        else
                        {
                            if (args.SData.Name.Equals("PowerFistAttack") ||
                                sender.Buffs.Any(b => AutoAttack.IsAutoAttackReset(args.SData.Name)))
                            {
                                Vars.E.Cast();
                            }
                        }
                    }
                    else
                    {
                        DelayAction.Add(
                            sender.CharData.BaseSkinName.Equals("Zed")
                                    ? 200
                                    : sender.CharData.BaseSkinName.Equals("Caitlyn")
                                        ? 1000
                                        : sender.CharData.BaseSkinName.Equals("Nocturne") &&
                            args.SData.Name.Equals("NocturneUnspeakableHorror")
                                            ? 500
                                            : Vars.getSliderItem(Vars.EMenu, "delay"),
                            () =>
                        {
                            Vars.E.Cast();
                        }
                            );
                    }
                    break;

                default:
                    break;
                }
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        ///     Called while processing Spellcasting operations.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs" /> instance containing the event data.</param>
        public static void AutoShield(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender == null ||
                !sender.IsEnemy)
            {
                return;
            }

            switch (sender.Type)
            {
            case GameObjectType.AIHeroClient:

                if (Invulnerable.Check(GameObjects.Player, DamageType.True, false))
                {
                    return;
                }

                /// <summary>
                ///     Block Gangplank's Barrels 1st Part.
                /// </summary>
                if ((sender as AIHeroClient).ChampionName.Equals("Gangplank"))
                {
                    if (args.Target == null ||
                        !(args.Target is Obj_AI_Minion))
                    {
                        return;
                    }

                    if (AutoAttack.IsAutoAttack(args.SData.Name) ||
                        args.SData.Name.Equals("GangplankQProceed"))
                    {
                        if ((args.Target as Obj_AI_Minion).Health == 1 &&
                            (args.Target as Obj_AI_Minion).DistanceToPlayer() < 450 &&
                            (args.Target as Obj_AI_Minion).CharData.BaseSkinName.Equals("gangplankbarrel"))
                        {
                            Vars.E.Cast();
                        }
                    }
                }

                /// <summary>
                ///     Block Gangplank's Barrels 2nd Part.
                /// </summary>
                else if (GameObjects.Player.Distance(args.End) < 450 &&
                         args.SData.Name.Equals("GangplankEBarrelFuseMissile"))
                {
                    Vars.E.Cast();
                }

                /// <summary>
                ///     Check for Special On-Hit CC AutoAttacks & Melee AutoAttack Resets.
                /// </summary>
                if (AutoAttack.IsAutoAttack(args.SData.Name))
                {
                    if (!args.Target.IsMe)
                    {
                        return;
                    }

                    switch (args.SData.Name)
                    {
                    case "UdyrBearAttack":
                    case "BraumBasicAttackPassiveOverride":
                        /// <summary>
                        ///     Whitelist Block.
                        /// </summary>
                        if (Vars.WhiteListMenu[$"{(sender as AIHeroClient).ChampionName.ToLower()}.{args.SData.Name.ToLower()}"] == null ||
                            !Vars.getCheckBoxItem(Vars.WhiteListMenu, $"{(sender as AIHeroClient).ChampionName.ToLower()}.{args.SData.Name.ToLower()}"))
                        {
                            return;
                        }

                        if (GameObjects.Player.HasBuff("udyrbearstuncheck") &&
                            (sender as AIHeroClient).ChampionName.Equals("Udyr"))
                        {
                            return;
                        }

                        Vars.E.Cast();
                        break;

                    default:
                        if (!(sender as AIHeroClient).Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)) ||
                            Vars.WhiteListMenu[$"{(sender as AIHeroClient).ChampionName.ToLower()}.{(sender as AIHeroClient).Buffs.First(b => AutoAttack.IsAutoAttackReset(b.Name)).Name.ToLower()}"] == null ||
                            !Vars.getCheckBoxItem(Vars.WhiteListMenu, $"{(sender as AIHeroClient).ChampionName.ToLower()}.{(sender as AIHeroClient).Buffs.First(b => AutoAttack.IsAutoAttackReset(b.Name)).Name.ToLower()}"))
                        {
                            return;
                        }

                        Vars.E.Cast();
                        break;
                    }
                }

                /// <summary>
                ///     Shield all the Targetted Spells.
                /// </summary>
                else if (SpellDatabase.GetByName(args.SData.Name) != null)
                {
                    /// <summary>
                    ///     Whitelist Block.
                    /// </summary>
                    if (Vars.WhiteListMenu[$"{(sender as AIHeroClient).ChampionName.ToLower()}.{args.SData.Name.ToLower()}"] == null ||
                        !Vars.getCheckBoxItem(Vars.WhiteListMenu, $"{(sender as AIHeroClient).ChampionName.ToLower()}.{args.SData.Name.ToLower()}"))
                    {
                        return;
                    }

                    switch (SpellDatabase.GetByName(args.SData.Name).SpellType)
                    {
                    /// <summary>
                    ///     Check for Targetted Spells.
                    /// </summary>
                    case SpellType.Targeted:
                    case SpellType.TargetedMissile:

                        if (!args.Target.IsMe ||
                            !SpellDatabase.GetByName(args.SData.Name).CastType.Contains(CastType.EnemyChampions))
                        {
                            return;
                        }

                        switch ((sender as AIHeroClient).ChampionName)
                        {
                        case "Caitlyn":
                            DelayAction.Add(1050, () => { Vars.E.Cast(); });
                            break;

                        case "Nocturne":
                            DelayAction.Add(350, () => { Vars.E.Cast(); });
                            break;

                        case "Zed":
                            DelayAction.Add(200, () => { Vars.E.Cast(); });
                            break;

                        default:
                            DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () => { Vars.E.Cast(); });
                            break;
                        }
                        break;

                    /// <summary>
                    ///     Check for AoE Spells.
                    /// </summary>
                    case SpellType.SkillshotCircle:

                        switch ((sender as AIHeroClient).ChampionName)
                        {
                        case "Alistar":
                            if ((sender as AIHeroClient).DistanceToPlayer() < 355 + GameObjects.Player.BoundingRadius)
                            {
                                Vars.E.Cast();
                            }
                            break;

                        default:
                            break;
                        }
                        break;

                    default:
                        break;
                    }
                    break;
                }
                break;

            case GameObjectType.obj_AI_Minion:

                if (args.Target == null ||
                    !args.Target.IsMe)
                {
                    return;
                }

                /// <summary>
                ///     Block Dragon/Baron/RiftHerald's AutoAttacks.
                /// </summary>
                if (Vars.getCheckBoxItem(Vars.WhiteListMenu, "minions"))
                {
                    if (sender.CharData.BaseSkinName.Equals("SRU_Baron") ||
                        sender.CharData.BaseSkinName.Contains("SRU_Dragon") ||
                        sender.CharData.BaseSkinName.Equals("SRU_RiftHerald"))
                    {
                        Vars.E.Cast();
                    }
                }
                break;

            default:
                break;
            }
        }