예제 #1
0
        static void LaneClear_Cougar()
        {
            var lane_Q2 = Config.Item("lane.Q2").GetValue <bool>();
            var lane_W2 = Config.Item("lane.W2").GetValue <bool>();
            var lane_E2 = Config.Item("lane.E2").GetValue <bool>();


            var ELocation = MinionManager.GetMinions(E2.Range, MinionTypes.All, MinionTeam.Enemy).Where(m => m.IsEnemy &&
                                                                                                        !m.IsDead && m.IsMinion && m.Distance(ObjectManager.Player.Position) < E2.Range);
            var EfarmPred = E2.GetLineFarmLocation(new List <Obj_AI_Base>(ELocation), E2.Width);

            var WLocation = MinionManager.GetMinions(W2.Range, MinionTypes.All, MinionTeam.Enemy).Where(m => m.IsEnemy &&
                                                                                                        !m.IsDead && m.IsMinion && ObjectManager.Player.Distance(m.Position) > 100 && m.IsValidTarget(W3.Range));
            var WfarmPred = W2.GetLineFarmLocation(new List <Obj_AI_Base>(WLocation), W3.Width);

            var Minions            = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Enemy).Where(m => m.IsMinion && !m.IsDead && m.IsEnemy);
            var GetKillableMinions = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Enemy).Where(m =>
                                                                                                                m.IsMinion && m.IsEnemy && !m.IsDead && m.Distance(ObjectManager.Player.Position) < ObjectManager.Player.AttackRange + m.BoundingRadius && m.Health < ObjectManager.Player.GetAutoAttackDamage(m));


            if (Q2.IsReady() && lane_Q2)
            {
                foreach (var min in Minions.Where(m => m.Distance(ObjectManager.Player.Position) <= ObjectManager.Player.AttackRange + m.BoundingRadius))
                {
                    if (min.Health < Damages.Cougar_Q_Damage(min) && min.Health > ObjectManager.Player.GetAutoAttackDamage(min))
                    {
                        Q2.Cast();
                        EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, min);
                    }
                }
            }
            if (W3.IsReady() && lane_W2)
            {
                if (WfarmPred.MinionsHit >= 2)
                {
                    W3.Cast(WfarmPred.Position);
                }
            }
            if (E2.IsReady() && lane_E2)
            {
                if (ELocation.Count() >= 1)
                {
                    E.Cast(EfarmPred.Position);
                }
            }
        }
예제 #2
0
        static void Combo_Cougar()
        {
            //Main Target Selector, Use Spell with Highest Range for Range.
            var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (target == null || !target.IsValid)
            {
                return;                                    //Important! Without checking if target is null it will spamm console errors.
            }
            var combo_Q = Config.Item("combat.Q2").GetValue <bool>();
            var combo_W = Config.Item("combat.W2").GetValue <bool>();
            var combo_E = Config.Item("combat.E2").GetValue <bool>();
            var combo_R = Config.Item("combat.R2").GetValue <bool>();

            if (Q2.IsReady() && target.IsValidTarget(ObjectManager.Player.AttackRange + 50) && combo_Q && !W.IsReady() && !E.IsReady())
            {
                if (W.IsReady() && target.IsValidTarget(W2.Range / 2) && ObjectManager.Player.Distance(target) > 70 && Damages.Cougar_W_Damage(target) > target.Health && combo_W)
                {
                    return;
                }
                if (E.IsReady() && target.IsValidTarget(E2.Range - 25) && combo_E && target.Health < Damages.Cougar_E_Damage(target))
                {
                    return;
                }

                if (Q2.IsReady() && target.Health < Damages.Cougar_Q_Damage(target))
                {
                    Q2.Cast();
                    Printconsole("Casted Takedown! - Reason: Targets gonna die yo");
                }
                if (Q2.IsReady() && !W.IsReady() && !E.IsReady())
                {
                    Q2.Cast();
                    Printconsole("Casted Takedown! - Reason: No Spells CD's left");
                }
            }


            if (target.IsValidTarget(W2.Range) && combo_W)
            {
                if (Q2.IsReady() && target.Health < Damages.Cougar_Q_Damage(target) && target.IsValidTarget(ObjectManager.Player.AttackRange))
                {
                    return;
                }
                if (R_Manager.IsHunted(target) && target.IsValidTarget(W2.Range))
                {
                    W2.Cast(target);
                    Printconsole("Casted Pounce! - Reason: Target is Hunted and in Pounce [W] Range");
                }
                if (target.IsValidTarget(W2.Range / 2) && !R_Manager.IsHunted(target) && ObjectManager.Player.Distance(target) > 150)
                {
                    W2.Cast(target);
                    Printconsole("Casted Pounce! - Reason: in Pounce [W] Range");
                }
                if (target.Health > Damages.Cougar_W_Damage(target) &&
                    target.Health < Damages.Cougar_W_Damage(target) + Damages.Cougar_Q_Damage(target) &&
                    R_Manager.IsHunted(target) && Q.IsReady() && W.IsReady() && combo_Q && combo_W && ObjectManager.Player.Distance(target) > 150)
                {
                    W2.Cast(target);
                    Printconsole("Casted Pounce! - Reason: in Pounce [W+Q Combo]");
                }
            }

            if (E2.IsReady() && target.IsValidTarget(E2.Range - 25) && combo_E)
            {
                if (E2.IsReady() && !W.IsReady())
                {
                    E2.Cast(target);
                    Printconsole("Casted Swipe! - Reason: Target is Valid and in [E] Range");
                }
                if (target.Health >
                    Damages.Cougar_E_Damage(target) && target.Health < Damages.Cougar_E_Damage(target) + Damages.Cougar_Q_Damage(target) &&
                    Q.IsReady() && E.IsReady() && combo_Q && combo_E)
                {
                    E2.Cast(target);
                    Printconsole("Casted Swipe! Reason: [E/Q] Combo");
                }
            }

            if (R.IsReady() && target.IsValidTarget(R.Range) && combo_R)
            {
                var qprediction = Q.GetPrediction(target);
                if (R_Manager.QhumanReady && qprediction.Hitchance >= QPrediction())
                {
                    if (W.IsReady() && R_Manager.IsHunted(target) && target.IsValidTarget(W2.Range) ||
                        Q.IsReady() && ObjectManager.Player.HasBuff("Takedown") && target.IsValidTarget(ObjectManager.Player.AttackRange + 20) ||
                        E2.IsReady() && target.Health < Damages.Cougar_E_Damage(target) && target.IsValidTarget(E2.Range - 25))
                    {
                        return;
                    }
                    R.Cast();
                    Printconsole("Switched to Human Form! - Reason: Q is Ready && Prediction equals hitchance");

                    if (!W.IsReady() && !Q.IsReady() && !E.IsReady() && ObjectManager.Player.HealthPercent < 35)
                    {
                        R.Cast();
                    }
                }
            }
        }
예제 #3
0
        static void JungleClear_Cougar()
        {
            var jungle_Q2 = Config.Item("Jungle.Q2").GetValue <bool>();
            var jungle_W2 = Config.Item("Jungle.W2").GetValue <bool>();
            var jungle_E2 = Config.Item("Jungle.E2").GetValue <bool>();
            var Jungle_R  = Config.Item("Jungle.R").GetValue <bool>();

            var Qminion = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => !m.IsDead && m.Distance(ObjectManager.Player.Position) < W2.Range).OrderBy(m => m.MaxHealth).LastOrDefault();

            var Minions = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => !m.IsDead);

            var GetKillableMinions = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => !m.IsDead && m != null && m.Distance(ObjectManager.Player.Position) < ObjectManager.Player.AttackRange + m.BoundingRadius && m.Health < ObjectManager.Player.GetAutoAttackDamage(m));

            if (Q2.IsReady() && jungle_Q2)
            {
                foreach (var min in Minions.Where(m => m.Distance(ObjectManager.Player.Position) <= ObjectManager.Player.AttackRange + m.BoundingRadius && m != null))
                {
                    if (min == null)
                    {
                        return;
                    }
                    if (min.Health < Damages.Cougar_Q_Damage(min) && min.Health > ObjectManager.Player.GetAutoAttackDamage(min))
                    {
                        Q2.Cast();
                        EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, min);
                    }
                    if (!W.IsReady() && !E.IsReady())
                    {
                        Q2.Cast();
                        EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, min);
                    }
                }
            }
            if (W2.IsReady() && jungle_W2)
            {
                if (Qminion.IsValidTarget(W2.Range / 2))
                {
                    W2.Cast(Qminion);
                }

                if (R_Manager.IsHunted(Qminion) && Qminion.IsValidTarget(W2.Range))
                {
                    W2.Cast(Qminion);
                }
            }

            if (E2.IsReady() && jungle_E2)
            {
                if (E2.IsReady() && Qminion.IsValidTarget(E2.Range))
                {
                    E2.Cast(Qminion);
                }
            }

            if (R.IsReady() && Jungle_R)
            {
                if (W2.IsReady() && Qminion.IsValidTarget(W2.Range / 2) ||
                    E2.IsReady() && Qminion.IsValidTarget(E2.Range) ||
                    Q.IsReady() && Qminion.IsValidTarget(ObjectManager.Player.AttackRange) ||
                    R_Manager.IsHunted(Qminion) && Qminion.IsValidTarget(W2.Range) && W.IsReady())
                {
                    return;
                }

                var qpred = Q.GetPrediction(Qminion);

                if (R_Manager.QhumanReady && Qminion.IsValidTarget(Q.Range))
                {
                    R.Cast();
                }
            }
        }