Exemple #1
0
        private static void JungleClear()
        {
            if (JungleClearOption.HasEnouguMana())
            {
                var mobs =
                    GameObjects.EnemyMinions.Where(x => x.IsValidTarget(R.Range) && x.IsMob() && !x.IsValidAutoRange())
                    .ToArray();

                if (mobs.Any())
                {
                    var mob = mobs.FirstOrDefault();

                    if (JungleClearOption.UseR && R.Ready &&
                        R.GetBasicSpell().Ammo >= JungleClearOption.GetSlider("JungleClearRLimit").Value&&
                        mob.IsValidTarget(R.Range) && !mob.IsValidAutoRange())
                    {
                        R.Cast(mob);
                    }

                    if (JungleClearOption.UseQ && Q.Ready &&
                        mob.IsValidTarget(Q.Range) && !mob.IsValidAutoRange())
                    {
                        Q.Cast(mob);
                    }
                }
            }
        }
Exemple #2
0
        private static void JungleClear()
        {
            if (JungleClearOption.HasEnouguMana())
            {
                var mobs =
                    GameObjects.Jungle.Where(x => x.IsValidTarget(R.Range) && x.GetJungleType() != JungleType.Unknown && !x.InAutoAttackRange())
                    .OrderByDescending(x => x.MaxHealth)
                    .ToList();

                if (mobs.Any())
                {
                    var mob = mobs.FirstOrDefault();

                    if (JungleClearOption.UseR && R.IsReady() &&
                        R.Ammo >= JungleClearOption.GetSlider("JungleClearRLimit").Value&&
                        mob.IsValidTarget(R.Range) && !mob.InAutoAttackRange())
                    {
                        R.CastIfHitchanceEquals(mob, HitChance.Medium);
                    }

                    if (JungleClearOption.UseQ && Q.IsReady() &&
                        mob.IsValidTarget(Q.Range) && !mob.InAutoAttackRange())
                    {
                        Q.CastIfHitchanceEquals(mob, HitChance.Medium);
                    }
                }
            }
        }
Exemple #3
0
        private static void JungleClear()
        {
            if (JungleClearOption.HasEnouguMana)
            {
                var mobs = MinionManager.GetMinions(Me.Position, R.Range, MinionTypes.All, MinionTeam.Neutral,
                                                    MinionOrderTypes.MaxHealth);

                if (mobs.Any())
                {
                    var mob    = mobs.FirstOrDefault();
                    var bigmob = mobs.FirstOrDefault(x => !x.Name.ToLower().Contains("mini"));

                    if (JungleClearOption.UseW && W.IsReady() && bigmob != null && bigmob.IsValidTarget(W.Range))
                    {
                        W.Cast();
                    }

                    if (JungleClearOption.UseR && R.IsReady() && JungleClearOption.GetSlider("JungleClearRLimit") >= GetRCount &&
                        bigmob != null)
                    {
                        R.Cast(bigmob);
                    }

                    if (JungleClearOption.UseE && E.IsReady())
                    {
                        if (bigmob != null && bigmob.IsValidTarget(E.Range))
                        {
                            E.Cast(bigmob);
                        }
                        else
                        {
                            var eMobs = MinionManager.GetMinions(Me.Position, E.Range, MinionTypes.All, MinionTeam.Neutral,
                                                                 MinionOrderTypes.MaxHealth);
                            var eFarm =
                                MinionManager.GetBestLineFarmLocation(eMobs.Select(x => x.Position.To2D()).ToList(),
                                                                      E.Width, E.Range);

                            if (eFarm.MinionsHit >= 2)
                            {
                                E.Cast(eFarm.Position);
                            }
                        }
                    }

                    if (JungleClearOption.UseQ && Q.IsReady() && mob != null && mob.IsValidTarget(Q.Range))
                    {
                        Q.Cast(mob);
                    }
                }
            }
        }
Exemple #4
0
        private static void JungleClear()
        {
            if (JungleClearOption.HasEnouguMana())
            {
                var mobs = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(R.Range) && x.IsMob()).ToArray();

                if (mobs.Any())
                {
                    var bigmob = mobs.FirstOrDefault(x => !x.Name.ToLower().Contains("mini"));

                    if (JungleClearOption.UseR && R.Ready &&
                        JungleClearOption.GetSlider("JungleClearRLimit").Value >= GetRCount &&
                        bigmob != null && (!bigmob.IsValidAutoRange() || !Orbwalker.CanAttack()))
                    {
                        R.Cast(bigmob);
                    }

                    if (JungleClearOption.UseE && E.Ready)
                    {
                        if (bigmob != null && bigmob.IsValidTarget(E.Range) && (!bigmob.IsValidAutoRange() || !Orbwalker.CanAttack()))
                        {
                            E.Cast(bigmob);
                        }
                        else
                        {
                            var eMobs = mobs.Where(x => x.IsValidTarget(E.Range)).ToArray();
                            var eFarm = E.GetSpellFarmPosition(eMobs);

                            if (eFarm.HitCount >= 2)
                            {
                                E.Cast(eFarm.CastPosition);
                            }
                        }
                    }
                }
            }
        }
Exemple #5
0
        private static void JungleClear()
        {
            if (JungleClearOption.HasEnouguMana())
            {
                var mobs = GameObjects.Jungle.Where(x => x.IsValidTarget(R.Range) && x.GetJungleType() != JungleType.Unknown).ToList();

                if (mobs.Any())
                {
                    var bigmob = mobs.FirstOrDefault(x => !x.Name.ToLower().Contains("mini"));

                    if (JungleClearOption.UseR && R.IsReady() &&
                        JungleClearOption.GetSlider("JungleClearRLimit").Value > GetRCount &&
                        bigmob != null && (!bigmob.InAutoAttackRange() || !Orbwalker.CanAttack()))
                    {
                        R.Cast(bigmob);
                    }

                    if (JungleClearOption.UseE && E.IsReady())
                    {
                        if (bigmob != null && bigmob.IsValidTarget(E.Range) && (!bigmob.InAutoAttackRange() || !Orbwalker.CanAttack()))
                        {
                            E.Cast(bigmob);
                        }
                        else
                        {
                            var eMobs = mobs.Where(x => x.IsValidTarget(E.Range)).ToList();
                            var eFarm = E.GetLineFarmLocation(eMobs);

                            if (eFarm.MinionsHit >= 2)
                            {
                                E.Cast(eFarm.Position);
                            }
                        }
                    }
                }
            }
        }
Exemple #6
0
        private static void AfterAttack(AttackableUnit unit, AttackableUnit ArgsTarget)
        {
            if (!unit.IsMe)
            {
                return;
            }

            if (isComboMode)
            {
                var target = (AIHeroClient)ArgsTarget;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (ComboOption.UseW && W.IsReady() && target.IsValidTarget(W.Range))
                    {
                        W.Cast();
                    }
                    else if (ComboOption.UseR && R.IsReady() && ComboOption.GetSlider("ComboRLimit") >= GetRCount &&
                             target.IsValidTarget(R.Range))
                    {
                        SpellManager.PredCast(R, target, true);
                    }
                    else if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(Q.Range))
                    {
                        SpellManager.PredCast(Q, target);
                    }
                    else if (ComboOption.UseE && E.IsReady() && target.IsValidTarget(E.Range))
                    {
                        SpellManager.PredCast(E, target, true);
                    }
                }
            }
            else if (isJungleClearMode && JungleClearOption.HasEnouguMana)
            {
                var mobs = MinionManager.GetMinions(Me.Position, R.Range, MinionTypes.All, MinionTeam.Neutral,
                                                    MinionOrderTypes.MaxHealth);

                if (mobs.Any())
                {
                    var mob    = mobs.FirstOrDefault();
                    var bigmob = mobs.FirstOrDefault(x => !x.Name.ToLower().Contains("mini"));

                    if (JungleClearOption.UseW && W.IsReady() && bigmob != null && bigmob.IsValidTarget(W.Range))
                    {
                        W.Cast();
                    }
                    else if (JungleClearOption.UseR && R.IsReady() && JungleClearOption.GetSlider("JungleClearRLimit") >= GetRCount &&
                             bigmob != null)
                    {
                        R.Cast(bigmob);
                    }
                    else if (JungleClearOption.UseE && E.IsReady())
                    {
                        if (bigmob != null && bigmob.IsValidTarget(E.Range))
                        {
                            E.Cast(bigmob);
                        }
                        else
                        {
                            var eMobs = MinionManager.GetMinions(Me.Position, E.Range, MinionTypes.All, MinionTeam.Neutral,
                                                                 MinionOrderTypes.MaxHealth);
                            var eFarm = E.GetLineFarmLocation(eMobs, E.Width);

                            if (eFarm.MinionsHit >= 2)
                            {
                                E.Cast(eFarm.Position);
                            }
                        }
                    }
                    else if (JungleClearOption.UseQ && Q.IsReady() && mob != null && mob.IsValidTarget(Q.Range))
                    {
                        Q.Cast(mob);
                    }
                }
            }
        }
Exemple #7
0
        private static void OnAction(object sender, OrbwalkerActionArgs Args)
        {
            if (Args.Type != OrbwalkerType.AfterAttack)
            {
                return;
            }

            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0)
            {
                return;
            }

            switch (Args.Target.Type)
            {
            case GameObjectType.AIHeroClient:
            {
                if (Orbwalker.ActiveMode == OrbwalkerMode.Combo)
                {
                    var target = (AIHeroClient)Args.Target;
                    if (target != null && target.IsValidTarget() && !target.IsUnKillable())
                    {
                        if (ComboOption.UseR && R.IsReady() &&
                            R.Ammo >= ComboOption.GetSlider("ComboRLimit").Value&&
                            target.IsValidTarget(R.Range) &&
                            target.HealthPercent <= ComboOption.GetSlider("ComboRHP").Value)
                        {
                            var rPred = R.GetPrediction(target);

                            if (rPred.Hitchance >= HitChance.High)
                            {
                                R.Cast(rPred.UnitPosition);
                            }
                        }
                        else if (ComboOption.UseQ && Q.IsReady() && target.IsValidTarget(Q.Range))
                        {
                            var qPred = Q.GetPrediction(target);

                            if (qPred.Hitchance >= HitChance.High)
                            {
                                Q.Cast(qPred.CastPosition);
                            }
                        }
                        else if (ComboOption.UseE && E.IsReady() && target.InAutoAttackRange())
                        {
                            E.Cast(Me.PreviousPosition);
                        }
                    }
                }
            }
            break;

            case GameObjectType.AIMinionClient:
            {
                if (Orbwalker.ActiveMode == OrbwalkerMode.LaneClear)
                {
                    if (Args.Target is AIMinionClient)
                    {
                        var mob = (AIMinionClient)Args.Target;
                        if (mob != null && mob.IsValidTarget() && mob.GetJungleType() != JungleType.Unknown)
                        {
                            if (JungleClearOption.HasEnouguMana())
                            {
                                if (JungleClearOption.UseR && R.IsReady() &&
                                    R.Ammo >=
                                    JungleClearOption.GetSlider("JungleClearRLimit").Value)
                                {
                                    R.CastIfHitchanceEquals(mob, HitChance.Medium);
                                }
                                else if (JungleClearOption.UseQ && Q.IsReady() && mob.IsValidTarget(Q.Range))
                                {
                                    Q.CastIfHitchanceEquals(mob, HitChance.Medium);
                                }
                                else if (JungleClearOption.UseE && E.IsReady() && mob.InAutoAttackRange())
                                {
                                    E.Cast(Me.PreviousPosition);
                                }
                            }
                        }
                    }
                }
            }
            break;
            }
        }
Exemple #8
0
        private static void PostAttack(object sender, PostAttackEventArgs Args)
        {
            if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0)
            {
                return;
            }

            switch (Orbwalker.Mode)
            {
            case OrbwalkingMode.Combo:
            {
                if (Args.Target.Type == GameObjectType.obj_AI_Hero)
                {
                    var target = Args.Target as Obj_AI_Hero;

                    if (target != null && target.IsValidTarget() && !target.IsUnKillable())
                    {
                        if (ComboOption.UseR && R.Ready &&
                            R.GetBasicSpell().Ammo >= ComboOption.GetSlider("ComboRLimit").Value&&
                            target.IsValidTarget(R.Range) &&
                            target.HealthPercent() <= ComboOption.GetSlider("ComboRHP").Value)
                        {
                            var rPred = R.GetPrediction(target);

                            if (rPred.HitChance >= HitChance.High)
                            {
                                R.Cast(rPred.UnitPosition);
                            }
                        }
                        else if (ComboOption.UseQ && Q.Ready && target.IsValidTarget(Q.Range))
                        {
                            var qPred = Q.GetPrediction(target);

                            if (qPred.HitChance >= HitChance.High)
                            {
                                Q.Cast(qPred.CastPosition);
                            }
                        }
                        else if (ComboOption.UseE && E.Ready && target.IsValidAutoRange())
                        {
                            E.Cast();
                        }
                    }
                }
            }
            break;

            case OrbwalkingMode.Laneclear:
            {
                if (Args.Target.IsMob())
                {
                    if (JungleClearOption.HasEnouguMana())
                    {
                        var mob = Args.Target as Obj_AI_Minion;
                        if (mob != null && mob.IsValidTarget())
                        {
                            if (JungleClearOption.UseR && R.Ready &&
                                R.GetBasicSpell().Ammo >=
                                JungleClearOption.GetSlider("JungleClearRLimit").Value)
                            {
                                R.Cast(mob);
                            }
                            else if (JungleClearOption.UseQ && Q.Ready && mob.IsValidTarget(Q.Range))
                            {
                                Q.Cast(mob);
                            }
                            else if (JungleClearOption.UseE && E.Ready && mob.IsValidAutoRange())
                            {
                                E.Cast();
                            }
                        }
                    }
                }
            }
            break;
            }
        }
Exemple #9
0
        private static void AfterAttack(AttackableUnit unit, AttackableUnit ArgsTarget)
        {
            if (!unit.IsMe || Me.IsDead || ArgsTarget == null || ArgsTarget.IsDead || !ArgsTarget.IsValidTarget())
            {
                return;
            }

            if (isComboMode && ArgsTarget.ObjectType == GameObjectType.AIHeroClient)
            {
                var target = ArgsTarget as AIHeroClient;

                if (target != null)
                {
                    if (ComboOption.UseR && R.IsReady() && R.Instance.CurrentCharge >= ComboOption.GetSlider("ComboRLimit"))
                    {
                        SpellManager.PredCast(R, target, true);
                    }
                    else if (ComboOption.UseQ && Q.IsReady())
                    {
                        SpellManager.PredCast(Q, target, true);
                    }
                    else if (ComboOption.UseE && E.IsReady())
                    {
                        E.Cast();
                    }
                }
            }
            else if (isJungleClearMode && ArgsTarget.ObjectType == GameObjectType.obj_AI_Minion)
            {
                if (JungleClearOption.HasEnouguMana)
                {
                    var mobs = MinionManager.GetMinions(R.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

                    if (mobs.Any())
                    {
                        var mob = mobs.FirstOrDefault();

                        if (JungleClearOption.UseR && R.IsReady() && R.Instance.CurrentCharge >= JungleClearOption.GetSlider("JungleClearRLimit"))
                        {
                            R.Cast(mob, true);
                        }
                        else if (JungleClearOption.UseQ && Q.IsReady())
                        {
                            Q.Cast(mob, true);
                        }
                        else if (JungleClearOption.UseE && E.IsReady())
                        {
                            E.Cast();
                        }
                    }
                }
            }
        }
Exemple #10
0
        private static void JungleClear()
        {
            if (JungleClearOption.HasEnouguMana)
            {
                var mobs = MinionManager.GetMinions(R.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

                if (mobs.Any())
                {
                    var mob = mobs.FirstOrDefault();

                    if (JungleClearOption.UseR && R.IsReady() && R.Instance.CurrentCharge >= JungleClearOption.GetSlider("JungleClearRLimit"))
                    {
                        R.Cast(mob, true);
                    }

                    if (JungleClearOption.UseQ && Q.IsReady())
                    {
                        Q.Cast(mob, true);
                    }
                }
            }
        }