Exemplo n.º 1
0
 private void afterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (unit.IsMe && !player.IsBurrowed() &&
         E1.IsReady() &&
         player.ManaPercent > 99f)
     {
         E1.CastOnUnit((Obj_AI_Base)target);
     }
 }
Exemplo n.º 2
0
        private static void AutoHeal(bool healAllies)
        {
            if (Player.HasBuff("Recall"))
            {
                return;
            }

            Obj_AI_Hero Target = healAllies
                ? ObjectManager.Get <Obj_AI_Hero>()
                                 .OrderBy(hero => hero.Health)
                                 .First(hero => hero.IsAlly && hero.IsValidTarget(E1.Range, false))
                : Target = Player;

            if (E1.IsReady() && Target.Health / Target.MaxHealth < Config.Item("autoHealPct").GetValue <Slider>().Value / 100f)
            {
                E1.CastOnUnit(Target, PacketCasting);
            }
        }
Exemplo n.º 3
0
 private static void doFarm()
 {
     foreach (
         var Minion in
         ObjectManager.Get <Obj_AI_Minion>()
         .Where(
             minion =>
             minion.Team != Player.Team && !minion.IsDead &&
             Vector2.Distance(minion.ServerPosition.To2D(), Player.ServerPosition.To2D()) < 600f)
         .OrderBy(minion => Vector2.Distance(minion.Position.To2D(), Player.Position.To2D())))
     {
         if (IsCougar)
         {
             if (Q2.IsReady() && Config.Item("farm_Q2").GetValue <bool>())
             {
                 Q2.CastOnUnit(Player, PacketCasting);
             }
             else if (W2.IsReady() && Config.Item("farm_W2").GetValue <bool>() && Player.Distance(Minion) > 200f)
             {
                 W2.Cast(Minion.Position, PacketCasting);
             }
             else if (E2.IsReady() && Config.Item("farm_E2").GetValue <bool>())
             {
                 E2.Cast(Minion.Position, PacketCasting);
             }
         }
         else if (R.IsReady() && Config.Item("farm_R").GetValue <bool>())
         {
             R.CastOnUnit(Player, PacketCasting);
         }
         else if (E1.IsReady() && Config.Item("farm_E1").GetValue <bool>())
         {
             E1.CastOnUnit(Player, PacketCasting);
         }
         return;
     }
 }
Exemplo n.º 4
0
        private static void Harass()
        {
            if (Human() && Player.ManaPercent <= getSliderItem(harassMenu, "harassMana"))
            {
                return;
            }
            var target = TargetSelector.GetTarget(E.Range, DamageType.Magical);

            if (target == null)
            {
                return;
            }
            if (!target.LSIsValidTarget())
            {
                return;
            }

            if (Human())
            {
                if (W.IsReady() && getCheckBoxItem(harassMenu, "wHarassH") &&
                    target.LSDistance(Player.Position) <= W.Range)
                {
                    var wprediction = W.GetPrediction(target);

                    switch (wprediction.Hitchance)
                    {
                    case HitChance.Medium:
                    case HitChance.High:
                    case HitChance.VeryHigh:
                    case HitChance.Immobile:

                        W.Cast(wprediction.CastPosition);
                        break;

                    case HitChance.Collision:

                        var colliding = wprediction.CollisionObjects.OrderBy(o => o.LSDistance(Player, true)).ToList();
                        if (colliding.Count > 0)
                        {
                            if (colliding[0].LSDistance(target, true) <= 25000 ||
                                colliding[0].Type == GameObjectType.AIHeroClient)
                            {
                                W.Cast(wprediction.CastPosition);
                            }
                            else if (colliding[0].Type != GameObjectType.AIHeroClient &&
                                     colliding[0].LSDistance(target, true) > 25000 && R.IsReady() && realcdSQ <= 1 &&
                                     target.LSDistance(Player.Position) <= Q1.Range + 200 && getCheckBoxItem(harassMenu, "rComboHarass"))
                            {
                                var       playerPosition = ObjectManager.Player.Position.LSTo2D();
                                var       direction      = ObjectManager.Player.Direction.LSTo2D().LSPerpendicular();
                                const int distance       = 600;
                                const int stepSize       = 40;

                                for (var step = 0f; step < 360; step += stepSize)
                                {
                                    var currentAngel      = step * (float)Math.PI / 180;
                                    var currentCheckPoint = playerPosition +
                                                            distance * direction.LSRotated(currentAngel);

                                    var collision =
                                        Collision.GetCollision(new List <Vector3> {
                                        currentCheckPoint.To3D()
                                    },
                                                               new PredictionInput {
                                        Delay = 0.25f, Radius = 200, Speed = 1000
                                    });

                                    if (collision.Count == 0)
                                    {
                                        Q.CastOnUnit(target);
                                        W.Cast(currentCheckPoint);
                                        R.Cast();
                                        //if (Q.IsReady() && Config.Item("qHarassH").GetValue<bool>() &&
                                        //    target.LSDistance(Player.Position) <= Q.Range)
                                        //{
                                        //
                                        //}
                                    }
                                }
                            }
                        }
                        break;
                    }
                }


                if (E.IsReady() && getCheckBoxItem(harassMenu, "eHarassH") &&
                    target.LSDistance(Player.Position) <= E.Range)
                {
                    var eprediction = E.GetPrediction(target);
                    switch (eprediction.Hitchance)
                    {
                    case HitChance.VeryHigh:
                    case HitChance.Immobile:

                        E.Cast(eprediction.CastPosition);
                        break;

                    case HitChance.Collision:
                        var colliding = eprediction.CollisionObjects.OrderBy(o => o.LSDistance(Player, true)).ToList();
                        if (colliding.Count >= 1 && colliding[0].Type == GameObjectType.AIHeroClient)
                        {
                            E.Cast(eprediction.CastPosition);
                        }
                        break;
                    }
                }

                if (Q.IsReady() && getCheckBoxItem(harassMenu, "qHarassH") &&
                    target.LSDistance(Player.Position) <= Q.Range)
                {
                    Q.CastOnUnit(target);
                }

                if (getCheckBoxItem(harassMenu, "rHarass") && !Q.IsReady() && !W.IsReady() && !E.IsReady() &&
                    R.IsReady() && target.LSDistance(Player.Position) <= Q1.Range)
                {
                    if (realcdSQ == 0 || realcdSW == 0 || realcdSE == 0)
                    {
                        R.Cast();
                    }
                }
            }
            else
            {
                if (Q1.IsReady() && getCheckBoxItem(harassMenu, "qHarass") &&
                    target.LSDistance(Player.Position) <= Q1.Range)
                {
                    Q1.CastOnUnit(target);
                }

                if (E1.IsReady() && getCheckBoxItem(harassMenu, "eHarass") &&
                    target.LSDistance(Player.Position) <= E1.Range &&
                    target.LSDistance(Player.Position) >= getSliderItem(harassMenu, "eMinHarass"))
                {
                    E1.CastOnUnit(target);
                }

                if (getCheckBoxItem(harassMenu, "rHarass") && !Q.IsReady() && !W.IsReady() && !E.IsReady() && R.IsReady())
                {
                    if (!Player.HasBuff("EliseSpiderW") || target.LSDistance(Player.Position) >= Player.AttackRange + 100)
                    {
                        if (realcdQ == 0 || realcdW == 0 || realcdE == 0)
                        {
                            R.Cast();
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
        private static void doCombo()
        {
            var Target   = SimpleTs.GetTarget(Q1.Range, SimpleTs.DamageType.Magical);
            var Marked   = Target.HasBuff("nidaleepassivehunted", true);
            var Hunting  = Player.HasBuff("nidaleepassivehunting", true);
            var Distance = Player.Distance(Target);
            var useItems = Config.Item("combo_Items").GetValue <bool>();

            if (useItems)
            {
                if (Items.CanUseItem(Bork.Id))
                {
                    Bork.Cast(Target);
                }
                if (Items.CanUseItem(Cutlass.Id))
                {
                    Cutlass.Cast(Target);
                }
            }

            var comboUT = Config.Item("combo_UT").GetValue <bool>();

            /* Human Form */
            if (!IsCougar)
            {
                if (Marked && R.IsReady() && Config.Item("combo_R").GetValue <bool>() && Distance < 750f ||
                    (!Q1.IsReady() && !Q1.IsReady(2500) && Target.Distance(Player) < 300f) &&
                    (!Utility.UnderTurret(Target, true) || comboUT))
                {
                    R.CastOnUnit(Player, PacketCasting);
                }

                else if (Q1.IsReady() && Config.Item("combo_Q1").GetValue <bool>())
                {
                    Q1.Cast(Target, PacketCasting);
                }

                else if (W1.IsReady() && Config.Item("combo_W1").GetValue <bool>())
                {
                    W1.Cast(Target, PacketCasting);
                }

                else if (E1.IsReady() && Config.Item("combo_E1").GetValue <bool>() &&
                         (!R.IsReady() || !Marked && Distance < W2.Range + 75f))
                {
                    E1.CastOnUnit(Player, PacketCasting);
                }
            }

            /* Cougar Form */
            else
            {
                if (!Marked && R.IsReady() && Config.Item("combo_R").GetValue <bool>() && Distance < W2.Range + 75f)
                {
                    R.CastOnUnit(Player, PacketCasting);
                    return;
                }

                // Deathfire grasp / Blackfire Torch
                var dmg = Q1.GetDamage(Target, 1) + W1.GetDamage(Target, 1) + E1.GetDamage(Target, 1);
                if (Target.IsValidTarget(DFG.Range) && Q1.IsReady() && W1.IsReady() && E1.IsReady() && dmg < Target.Health && (dmg * 1.2f) + (Target.MaxHealth * (DFG.Id == 3188 ? 0.20f : 0.15f)) > Target.Health && useItems)
                {
                    DFG.Cast(Target);
                }

                if (Marked && Hunting && W2.IsReady() && Config.Item("combo_W2").GetValue <bool>() && Distance < 750f &&
                    Distance > 200f && (!Utility
                                        .UnderTurret(Target, true) || comboUT))
                {
                    Player.Spellbook.CastSpell(SpellSlot.W, Target);
                }
                else if (E2.IsReady() && Distance < 300f)
                {
                    var Pred = Prediction.GetPrediction(Target, 0.5f);
                    E2.Cast(Pred.CastPosition, PacketCasting);
                }
            }
        }