Ejemplo n.º 1
0
        public static List <Geometry.Polygon> DangerZone()
        {
            var polygons = new List <Geometry.Polygon>();

            foreach (
                var enemy in
                ObjectManager.Player.GetEnemiesInRange(1400)
                .OrderBy(e => e.Distance(ObjectManager.Player.Position)).Where(e => e.IsVisible && e.IsValidTarget()))
            {
                if (enemy.IsDead)
                {
                    continue;
                }
                var highestSpellRange = 0;
                foreach (var slot in SpellSlots)
                {
                    var spell = enemy.Spellbook.GetSpell(slot);
                    if (enemy.Spellbook.CanUseSpell(slot) != SpellState.NotLearned &&
                        (enemy.Spellbook.CanUseSpell(slot) != SpellState.Cooldown || spell.IsReady()))
                    {
                        var sd = SpellDb.GetByName(spell.Name);
                        if (sd != null)
                        {
                            if (sd.Range > highestSpellRange && sd.Range < 2000)
                            {
                                highestSpellRange = (int)sd.Range;
                            }
                        }
                    }
                }
                polygons.Add(new Geometry.Circle(enemy.Position.To2D(), highestSpellRange).ToPolygon());
            }
            return(polygons);
        }
Ejemplo n.º 2
0
        public static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.Distance(Player) > 1400)
            {
                return;
            }
            var qss = ItemId.Quicksilver_Sash;

            if (Items.HasItem((int)ItemId.Mercurial_Scimitar))
            {
                qss = ItemId.Mercurial_Scimitar;
            }

            if (sender.IsValid <Obj_AI_Hero>() && sender.IsEnemy && args.Target == Player)
            {
                var sData = SpellDb.GetByName(args.SData.Name);
                if (sData != null && sData.ChampionName.ToLower() == "syndra" && sData.Spellslot == Utils.SpellSlot.R)
                {
                    Utility.DelayAction.Add(150, () => UseItem(qss));
                }
                if (args.SData.Name == "summonerdot" && sender.GetSpellDamage(Player, "summonerdot") < Player.Health + sender.GetAutoAttackDamage(Player))
                {
                    UseItem(qss);
                }
            }

            if (!Program.ActivatorMenu.Item("exploits").GetValue <bool>())
            {
                return;
            }

            if (sender.Name.ToLower() == "cassiopeia" && args.SData.Name.ToLower().Contains("petrifying") && Player.IsFacing(sender) && Player.ServerPosition.Distance(sender.ServerPosition) + Player.BoundingRadius <= 1000)
            {
                if (exploitEndTime < Environment.TickCount)
                {
                    exploitEndTime = Environment.TickCount + 1000;
                }
                Player.IssueOrder(GameObjectOrder.MoveTo, sender.ServerPosition.Extend(Player.ServerPosition, Player.ServerPosition.Distance(sender.ServerPosition) + 100));
            }

            if (sender.Name.ToLower() == "shaco" && args.SData.Name.ToLower().Contains("twoshiv") && !Player.IsFacing(sender) && args.Target.IsMe && !Player.IsFacing(sender))
            {
                if (exploitEndTime < Environment.TickCount)
                {
                    exploitEndTime = Environment.TickCount + 300;
                }
                Player.IssueOrder(GameObjectOrder.MoveTo, sender.ServerPosition.Extend(Player.ServerPosition, Player.ServerPosition.Distance(sender.ServerPosition) - 100));
            }

            if (sender.Name.ToLower() == "tryndamere" && args.SData.Name.ToLower().Contains("mockingshout") && !Player.IsFacing(sender) && Player.ServerPosition.Distance(sender.ServerPosition) + Player.BoundingRadius <= 900)
            {
                if (exploitEndTime < Environment.TickCount)
                {
                    exploitEndTime = Environment.TickCount + 800;
                }
                Player.IssueOrder(GameObjectOrder.MoveTo, sender.ServerPosition.Extend(Player.ServerPosition, Player.ServerPosition.Distance(sender.ServerPosition) - 100));
            }
        }
Ejemplo n.º 3
0
 public static void OnProcessSpellcast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (Program.ComboMenu.Item("WCombo").GetValue <bool>() && sender.IsEnemy && args.Target.IsMe)
     {
         if (SpellDb.GetByName(args.SData.Name).Dangerous)
         {
             Program.W.Cast();
         }
     }
 }
Ejemplo n.º 4
0
        public override void Complete()
        {
            switch (First.ItemId)
            {
            case HeldItemId.ScrollDisarmTrap:
                SpellDb.GetSpell(SpellName.DisarmTraps).HaveEffect(Actor, Tile);
                break;

            case HeldItemId.ScrollSparkFire:
                SpellDb.GetSpell(SpellName.SparkFire).HaveEffect(Actor, Tile);
                break;
            }

            Actor.HeldItems.Remove(First);
        }
Ejemplo n.º 5
0
        public static int EnemyCC()
        {
            var i = 0;

            foreach (
                var enemy in
                HeroManager.Enemies.Where(h => !h.IsDead && h.Distance(ObjectManager.Player) < 1400 && h.IsMeele))
            {
                foreach (var slot in SpellSlots)
                {
                    var spell = enemy.Spellbook.GetSpell(slot);
                    if (enemy.Spellbook.CanUseSpell(slot) != SpellState.NotLearned &&
                        (enemy.Spellbook.CanUseSpell(slot) != SpellState.Cooldown || spell.IsReady()))
                    {
                        var sd = SpellDb.GetByName(spell.Name);
                        if (sd == null)
                        {
                            continue;
                        }
                        var cct = sd.CcType;
                        if (ObjectManager.Player.BaseSkinName == "Katarina")
                        {
                            if (cct != CcType.No && cct != CcType.Slow && cct != CcType.Snare)
                            {
                                i++;
                            }
                        }
                        else
                        {
                            if (cct != CcType.No && cct != CcType.Slow && sd.Type == SpellType.Targeted)
                            {
                                i++;
                            }
                        }
                    }
                }
            }
            return(i);
        }
Ejemplo n.º 6
0
        public static void OnProcessSpellcast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            try
            {
                #region ward brush after condemn
                if (sender.IsMe && args.SData.Name.ToLower().Contains("condemn") && args.Target.IsValid <AIHeroClient>())
                {
                    var target = (AIHeroClient)args.Target;
                    if (Program.ComboMenu.Item("EQ").GetValue <bool>() && target.IsVisible && !target.HasBuffOfType(BuffType.Stun) && Program.Q.IsReady()) //#TODO: fix
                    {
                        var tumblePos = target.GetTumblePos();
                        Tumble.Cast(tumblePos);
                    }
                    if (NavMesh.IsWallOfGrass(args.End, 100))
                    {
                        var blueTrinket = ItemId.Farsight_Alteration;
                        if (Items.HasItem((int)ItemId.Farsight_Alteration, Heroes.Player) && Items.CanUseItem((int)ItemId.Farsight_Alteration))
                        {
                            blueTrinket = ItemId.Farsight_Alteration;
                        }

                        var yellowTrinket = ItemId.Warding_Totem_Trinket;
                        if (Items.HasItem((int)ItemId.Greater_Stealth_Totem_Trinket, Heroes.Player))
                        {
                            yellowTrinket = ItemId.Greater_Stealth_Totem_Trinket;
                        }

                        if (Items.CanUseItem((int)blueTrinket))
                        {
                            Items.UseItem((int)blueTrinket, args.End.Randomize(0, 100));
                        }
                        if (Items.CanUseItem((int)yellowTrinket))
                        {
                            Items.UseItem((int)yellowTrinket, args.End.Randomize(0, 100));
                        }
                    }
                }
                #endregion

                #region Anti-Stealth
                if (args.SData.Name.ToLower().Contains("talonshadow")) //#TODO get the actual buff name
                {
                    if (Items.HasItem((int)ItemId.Oracle_Alteration) && Items.CanUseItem((int)ItemId.Oracle_Alteration))
                    {
                        Items.UseItem((int)ItemId.Oracle_Alteration, Heroes.Player.Position);
                    }
                    else if (Items.HasItem((int)ItemId.Control_Ward, Heroes.Player))
                    {
                        Items.UseItem((int)ItemId.Control_Ward, Heroes.Player.Position.Randomize(0, 125));
                    }
                }
                #endregion

                if (MyWizard.ShouldSaveCondemn())
                {
                    return;
                }
                if (sender.Distance(Heroes.Player) > 1500 || !args.Target.IsMe || args.SData == null)
                {
                    return;
                }
                //how to milk alistar/thresh/everytoplaner
                var spellData = SpellDb.GetByName(args.SData.Name);
                if (spellData != null && !Heroes.Player.UnderTurret(true) && !Lists.UselessChamps.Contains(sender.BaseSkinName))
                {
                    if (spellData.CcType == CcType.Knockup || spellData.CcType == CcType.Stun ||
                        spellData.CcType == CcType.Knockback || spellData.CcType == CcType.Suppression)
                    {
                        Program.E.Cast(sender);
                    }
                }
            }
            catch (Exception exception)
            {
                //normal
            }
        }
        public static void OnProcessSpellcast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args)
        {
            if (args.Target == null)
            {
                return;
            }

            #region ward brush after condemn

            /*if (sender.IsMe && args.SData.Name.ToLower().Contains("condemn") && args.Target.IsValid<AIHeroClient>())
             * {
             *  var target = (AIHeroClient)args.Target;
             *  if (Program.ComboMenu.Item("EQ").GetValue<bool>() && target.IsVisible &&
             *      !target.HasBuffOfType(BuffType.Stun) && Program.Q.IsReady()) //#TODO: fix
             *  {
             *      var tumblePos = target.GetTumblePos();
             *      Tumble.Cast(tumblePos);
             *  }
             *
             *  if (NavMesh.IsWallOfGrass(args.End, 100))
             *  {
             *     var blueTrinket = ItemId.Farsight_Alteration;
             *      if (Items.HasItem((int)ItemId.Farsight_Alteration, Heroes.Player) &&
             *          Items.CanUseItem((int)ItemId.Farsight_Alteration))
             *          blueTrinket = ItemId.Farsight_Alteration;
             *
             *      var yellowTrinket = ItemId.Warding_Totem;
             *      if (Items.HasItem((int)ItemId.Greater_Stealth_Totem_Trinket, Heroes.Player))
             *          yellowTrinket = ItemId.Greater_Stealth_Totem_Trinket;
             *
             *      if (Items.CanUseItem((int)blueTrinket))
             *          Items.UseItem((int)blueTrinket, args.End.Randomize(0, 100));
             *      if (Items.CanUseItem((int)yellowTrinket))
             *          Items.UseItem((int)yellowTrinket, args.End.Randomize(0, 100));
             *  }
             * }*/

            #endregion ward brush after condemn

            // need to fix "ward brush after condemn + Anti-Stealth"

            #region Anti-Stealth

            if (args.SData.Name.ToLower().Contains("talonshadow")) //#TODO get the actual buff name
            {
                /* if (Items.HasItem((int)ItemId.Oracle_Alteration) &&
                 *   Items.CanUseItem((int)ItemId.Oracle_Alteration))
                 *   Items.UseItem((int)ItemId.Oracle_Alteration, Heroes.Player.Position);
                 * else if (Items.HasItem((int)ItemId.Control_Ward, Heroes.Player))
                 *   Items.UseItem((int)ItemId.Control_Ward, Heroes.Player.Position.Randomize(0, 125));*/
            }


            #endregion Anti-Stealth

            if (MyWizard.ShouldSaveCondemn())
            {
                return;
            }
            if (sender.Distance(Heroes.Player) > 1500 || !args.Target.IsMe || args.SData == null)
            {
                return;
            }
            //how to milk alistar/thresh/everytoplaner
            var spellData = SpellDb.GetByName(args.SData.Name);

            /* if (spellData != null && !Heroes.Player.IsUnderEnemyTurret(true) &&
             * !Lists.UselessChamps.Contains(sender.CharacterName))
             *  if (spellData.CcType == CcType.Knockup || spellData.CcType == CcType.Stun ||
             *      spellData.CcType == CcType.Knockback || spellData.CcType == CcType.Suppression)
             *      Program.E.Cast(sender);*/
        }
Ejemplo n.º 8
0
        public static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.Distance(Player) > 1400)
            {
                return;
            }
            var qss = ItemId.Quicksilver_Sash;

            if (Items.HasItem((int)ItemId.Mercurial_Scimitar))
            {
                qss = ItemId.Mercurial_Scimitar;
            }

            if (sender.IsValid <Obj_AI_Hero>() && sender.IsEnemy && args.Target == Player)
            {
                var sData = SpellDb.GetByName(args.SData.Name);
                if (sData != null && sData.ChampionName.ToLower() == "syndra" && sData.Spellslot == SpellSlot.R)
                {
                    Utility.DelayAction.Add(150, () => UseItem(qss));
                }
                if (args.SData.Name == "summonerdot" && sender.GetSpellDamage(Player, "summonerdot") < Player.Health + sender.GetAutoAttackDamage(Player))
                {
                    UseItem(qss);
                }
            }

            if (!ChallengerPlugin.ActivatorMenu.Item("exploits").GetValue <bool>())
            {
                return;
            }

            if (sender.Name.ToLower() == "cassiopeia" && args.SData.Name.ToLower().Contains("petrifying") && Player.Distance(sender) < 750 && Player.IsFacing(sender))
            {
                ChallengerPlugin.Orbwalker.SetMovement(false);
                ChallengerPlugin.Orbwalker.SetAttack(false);
                Player.IssueOrder(GameObjectOrder.MoveTo,
                                  sender.Position.To2D().Extend(Player.ServerPosition.To2D(), Player.Distance(sender) + 100).To3D());
                Utility.DelayAction.Add(300, () =>
                {
                    ChallengerPlugin.Orbwalker.SetMovement(true);
                    ChallengerPlugin.Orbwalker.SetAttack(true);
                });
            }

            if (sender.Name.ToLower() == "shaco" && args.SData.Name.ToLower().Contains("twoshiv") && args.Target.IsMe && !Player.IsFacing(sender))
            {
                ChallengerPlugin.Orbwalker.SetMovement(false);
                ChallengerPlugin.Orbwalker.SetAttack(false);
                Player.IssueOrder(GameObjectOrder.MoveTo,
                                  sender.Position.To2D().Extend(Player.ServerPosition.To2D(), Player.Distance(sender) - 100).To3D());
                Utility.DelayAction.Add(250, () =>
                {
                    ChallengerPlugin.Orbwalker.SetMovement(true);
                    ChallengerPlugin.Orbwalker.SetAttack(true);
                });
            }

            if (sender.Name.ToLower() == "tryndamere" && args.SData.Name.ToLower().Contains("mockingshout") && args.Target.IsMe && !Player.IsFacing(sender))
            {
                ChallengerPlugin.Orbwalker.SetMovement(false);
                ChallengerPlugin.Orbwalker.SetAttack(false);
                Player.IssueOrder(GameObjectOrder.MoveTo,
                                  sender.Position.To2D().Extend(Player.ServerPosition.To2D(), Player.Distance(sender) - 100).To3D());
                Utility.DelayAction.Add(250, () =>
                {
                    ChallengerPlugin.Orbwalker.SetMovement(true);
                    ChallengerPlugin.Orbwalker.SetAttack(true);
                });
            }
        }
Ejemplo n.º 9
0
        public static void OnProcessSpellcast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            try
            {
                #region ward brush after E

                /*if (sender.IsMe && args.SData.Name.ToLower().Contains("condemn") && args.Target.IsValid<Obj_AI_Hero>())
                 * {
                 *  var target = (Obj_AI_Hero)args.Target;
                 *  if (NavMesh.IsWallOfGrass(args.End, 100))
                 *  {
                 *      var blueTrinket = ItemId.Scrying_Orb_Trinket;
                 *      if (Items.HasItem((int)ItemId.Farsight_Orb_Trinket, Heroes.Player) && Items.CanUseItem((int)ItemId.Farsight_Orb_Trinket)) blueTrinket = ItemId.Farsight_Orb_Trinket;
                 *
                 *      var yellowTrinket = ItemId.Warding_Totem_Trinket;
                 *      if (Items.HasItem((int)ItemId.Greater_Stealth_Totem_Trinket, Heroes.Player)) yellowTrinket = ItemId.Greater_Stealth_Totem_Trinket;
                 *
                 *      if (Items.CanUseItem((int)blueTrinket))
                 *          Items.UseItem((int)blueTrinket, args.End.Randomize(0, 100));
                 *      if (Items.CanUseItem((int)yellowTrinket))
                 *          Items.UseItem((int)yellowTrinket, args.End.Randomize(0, 100));
                 *  }
                 * }*/
                #endregion

                #region Anti-Stealth
                if (args.SData.Name.ToLower().Contains("talonshadow")) //#TODO get the actual buff name
                {
                    if (Items.HasItem((int)ItemId.Oracles_Lens_Trinket) && Items.CanUseItem((int)ItemId.Oracles_Lens_Trinket))
                    {
                        Items.UseItem((int)ItemId.Oracles_Lens_Trinket, Heroes.Player.Position);
                    }
                    else if (Items.HasItem((int)ItemId.Vision_Ward, Heroes.Player))
                    {
                        Items.UseItem((int)ItemId.Vision_Ward, Heroes.Player.Position.Randomize(0, 125));
                    }
                }
                #endregion

                if (MyWizard.ShouldSaveCondemn())
                {
                    return;
                }
                if (sender.Distance(Heroes.Player) > 1500 || !args.Target.IsMe || args.SData == null)
                {
                    return;
                }
                //how to milk alistar/thresh/everytoplaner
                var spellData = SpellDb.GetByName(args.SData.Name);
                if (spellData != null && !Heroes.Player.UnderTurret(true) && !Lists.UselessChamps.Contains(sender.CharData.BaseSkinName))
                {
                    if (spellData.CcType == CcType.Knockup || spellData.CcType == CcType.Stun ||
                        spellData.CcType == CcType.Knockback || spellData.CcType == CcType.Suppression)
                    {
                        Program.E.Cast(sender);
                    }
                }
            }
            catch (Exception exception)
            {
                //normal
            }
        }
Ejemplo n.º 10
0
        public static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (args.SData == null)
            {
                return;
            }
            if (sender.IsMe && args.SData.Name == "summonerflash")
            {
                FlashTime = Environment.TickCount;
            }
            #region ward brush after condemn
            if (sender.IsMe && args.SData.Name.ToLower().Contains("condemn") && args.Target.IsValid <Obj_AI_Hero>())
            {
                var target = (Obj_AI_Hero)args.Target;
                if (ComboMenu.Item("EQ").GetValue <bool>() && target.IsVisible && !target.HasBuffOfType(BuffType.Stun) && Q.IsReady()) //#TODO: fix
                {
                    TumbleOrder = target.GetTumblePos();
                    Q.Cast(TumbleOrder);
                }
                if (NavMesh.IsWallOfGrass(_condemnEndPos, 100))
                {
                    var blueTrinket = ItemId.Scrying_Orb_Trinket;
                    if (Items.HasItem((int)ItemId.Farsight_Orb_Trinket, Player) && Items.CanUseItem((int)ItemId.Farsight_Orb_Trinket))
                    {
                        blueTrinket = ItemId.Farsight_Orb_Trinket;
                    }

                    var yellowTrinket = ItemId.Warding_Totem_Trinket;
                    if (Items.HasItem((int)ItemId.Greater_Stealth_Totem_Trinket, Player))
                    {
                        yellowTrinket = ItemId.Greater_Stealth_Totem_Trinket;
                    }

                    if (Items.CanUseItem((int)blueTrinket))
                    {
                        Items.UseItem((int)blueTrinket, _condemnEndPos.Randomize(0, 100));
                    }
                    if (Items.CanUseItem((int)yellowTrinket))
                    {
                        Items.UseItem((int)yellowTrinket, _condemnEndPos.Randomize(0, 100));
                    }
                }
            }
            #endregion

            #region Anti-Stealth
            if (args.SData.Name.ToLower().Contains("talonshadow")) //#TODO get the actual buff name
            {
                if (Items.HasItem((int)ItemId.Oracles_Lens_Trinket) && Items.CanUseItem((int)ItemId.Oracles_Lens_Trinket))
                {
                    Items.UseItem((int)ItemId.Oracles_Lens_Trinket, Player.Position);
                }
                else if (Items.HasItem((int)ItemId.Vision_Ward, Player))
                {
                    Items.UseItem((int)ItemId.Vision_Ward, Player.Position.Randomize(0, 125));
                }
            }
            #endregion

            if (ShouldSaveCondemn())
            {
                return;
            }
            if (sender.Distance(Player) > 1500 || !args.Target.IsMe || args.SData == null)
            {
                return;
            }
            //how to milk alistar/thresh/everytoplaner
            var spellData = SpellDb.GetByName(args.SData.Name);
            if (spellData != null && !Heroes.Player.UnderTurret(true) && !Lists.UselessChamps.Contains(sender.CharData.BaseSkinName))
            {
                if (spellData.CcType == CcType.Knockup || spellData.CcType == CcType.Stun ||
                    spellData.CcType == CcType.Knockback || spellData.CcType == CcType.Suppression)
                {
                    E.Cast(sender);
                }
            }
        }
Ejemplo n.º 11
0
        protected override void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            #region ward brush after condemn
            if (sender.IsMe && args.SData.Name.ToLower().Contains("condemn"))
            {
                if (NavMesh.IsWallOfGrass(_condemnEndPos, 150))
                {
                    var blueTrinket = ItemId.Scrying_Orb_Trinket;
                    if (Items.HasItem((int)ItemId.Farsight_Orb_Trinket, Player))
                    {
                        blueTrinket = ItemId.Farsight_Orb_Trinket;
                    }

                    var yellowTrinket = ItemId.Warding_Totem_Trinket;
                    if (Items.HasItem((int)ItemId.Greater_Stealth_Totem_Trinket, Player))
                    {
                        yellowTrinket = ItemId.Greater_Stealth_Totem_Trinket;
                    }

                    if (Items.CanUseItem((int)blueTrinket))
                    {
                        Items.UseItem((int)blueTrinket, _condemnEndPos.Randomize(0, 150));
                    }
                    if (Items.CanUseItem((int)yellowTrinket))
                    {
                        Items.UseItem((int)yellowTrinket, _condemnEndPos.Randomize(0, 150));
                    }
                }
            }
            #endregion

            if (ShouldSaveCondemn())
            {
                return;
            }
            if (sender.Distance(Player) > 700 || !sender.IsMelee() || !args.Target.IsMe || sender.Distance(Player) > 700 ||
                !sender.IsValid <Obj_AI_Hero>() || !sender.IsEnemy || args.SData == null)
            {
                return;
            }
            //how to milk alistar/thresh/everytoplaner
            var spellData = SpellDb.GetByName(args.SData.Name);
            if (spellData != null)
            {
                if (spellData.CcType == CcType.Knockup || spellData.CcType == CcType.Stun)
                {
                    if (E.CanCast(sender))
                    {
                        E.Cast(sender);
                    }
                }
            }

            if (args.SData.Name.ToLower().Contains("talonshadow"))
            {
                if (Items.HasItem((int)ItemId.Oracles_Lens_Trinket))
                {
                    Items.UseItem((int)ItemId.Oracles_Lens_Trinket, Player.Position);
                }
                else if (Items.HasItem((int)ItemId.Vision_Ward, Player))
                {
                    Items.UseItem((int)ItemId.Vision_Ward, Player.Position.Randomize(0, 125));
                }
            }
        }
Ejemplo n.º 12
0
 public override void Complete()
 {
     SpellDb.GetSpell(SpellName).HaveEffect(Actor, Tile);
 }
Ejemplo n.º 13
0
 public CastSpellActivity(SpellName spellName, Character actor, Tile targetTile) :
     base(actor, 10, "Casting " + SpellDb.GetSpell(spellName).Name)
 {
     SpellName = spellName;
     Tile      = targetTile;
 }
Ejemplo n.º 14
0
        public static void OnProcessSpellcast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args)
        {
            if (args.Target == null)
            {
                return;
            }

            #region ward brush after condemn

            if (sender.IsMe && args.SData.Name.ToLower().Contains("condemn") && args.Target.IsValid)
            {
                var target = (AIBaseClient)args.Target;
                if (target != null)
                {
                    if (Program.MainMenu.GetMenuBool("Combo Settings", "EQ") && target.IsVisible &&
                        !target.HasBuffOfType(BuffType.Stun) && Program.Q.IsReady()) //#TODO: fix
                    {
                        var tumblePos = target.GetTumblePos();
                        Tumble.Cast(tumblePos);
                    }
                }

                /*if (NavMesh.IsWallOfType(args.End, 100))
                 * {
                 *  var blueTrinket = ItemId.Farsight_Alteration;
                 *  if (Items.HasItem((int)ItemId.Farsight_Alteration, Heroes.Player) &&
                 *      Items.CanUseItem((int)ItemId.Farsight_Alteration))
                 *      blueTrinket = ItemId.Farsight_Alteration;
                 *
                 *  var yellowTrinket = ItemId.Warding_Totem;
                 *  if (Items.HasItem((int)ItemId.Greater_Stealth_Totem_Trinket, Heroes.Player))
                 *      yellowTrinket = ItemId.Greater_Stealth_Totem_Trinket;
                 *
                 *  if (Items.CanUseItem((int)blueTrinket))
                 *      Items.UseItem((int)blueTrinket, args.End.Randomize(0, 100));
                 *  if (Items.CanUseItem((int)yellowTrinket))
                 *      Items.UseItem((int)yellowTrinket, args.End.Randomize(0, 100));
                 * }*/
            }

            #endregion ward brush after condemn

            #region Anti-Stealth

            if (args.SData.Name.ToLower().Contains("talonshadow")) //#TODO get the actual buff name
            {
                if (ObjectManager.Player.HasItem((int)ItemId.Oracle_Alteration) &&
                    ObjectManager.Player.CanUseItem((int)ItemId.Oracle_Alteration))
                {
                    ObjectManager.Player.UseItem((int)ItemId.Oracle_Alteration, Heroes.Player.Position);
                }
                else if (ObjectManager.Player.HasItem((int)ItemId.Control_Ward))
                {
                    ObjectManager.Player.UseItem((int)ItemId.Control_Ward, Heroes.Player.Position.Randomize());
                }
            }

            #endregion Anti-Stealth

            if (MyWizard.ShouldSaveCondemn())
            {
                return;
            }
            if (sender.Distance(Heroes.Player) > 1000 || !args.Target.IsMe || args.SData == null)
            {
                return;
            }
            //how to milk alistar/thresh/everytoplaner
            var spellData = SpellDb.GetByName(args.SData.Name);
            if (spellData != null &&
                !Lists.UselessChamps.Contains(sender.CharacterName))
            {
                if (spellData.CcType == CcType.Knockup || spellData.CcType == CcType.Stun ||
                    spellData.CcType == CcType.Knockback || spellData.CcType == CcType.Suppression)
                {
                    Program.E.Cast(sender);
                }
            }
        }