Ejemplo n.º 1
0
        public void OnUpdate(EventArgs args)
        {
            if (!DelayHandler.CheckOrbwalk())
            {
                return;
            }
            DelayHandler.UseOrbwalk();

            if (CommonOrbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && SMenu.Item(MenuNameBase + "Clear.Boolean.FocusETarget").GetValue <bool>())
            {
                foreach (
                    var minon in
                    MinionManager.GetMinions(Champion.Player.Position, Champion.GetSpellQ.Range,
                                             MinionTypes.All, MinionTeam.NotAlly).Where(charge => charge.HasBuff("TristanaECharge") && charge.IsValidTarget(Champion.GetSpellQ.Range)))
                {
                    Logger.WriteLog($"Orbwalker Force Target {minon.Name}");
                    CommonOrbwalker.ForceTarget(minon);
                    return;
                }
            }
            else if (CommonOrbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed &&
                     SMenu.Item(MenuNameBase + "Mixed.Boolean.FocusETarget").GetValue <bool>() ||
                     CommonOrbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo &&
                     SMenu.Item(MenuNameBase + "Combo.Boolean.FocusETarget").GetValue <bool>())
            {
                foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(target => target.HasBuff("TristanaECharge") && target.IsValidTarget(Champion.GetSpellQ.Range)))
                {
                    Logger.WriteLog($"Orbwalker Force Target {enemy.Name}");
                    CommonOrbwalker.ForceTarget(enemy);
                    return;
                }
            }

            OrbwalkModeHandler();
        }
Ejemplo n.º 2
0
        private Result JungleClear()
        {
            if (!SMenu.Item(MenuNameBase + "Clear.Boolean.UseQ.Monsters").GetValue <bool>() &&
                !SMenu.Item(MenuNameBase + "Clear.Boolean.UseE.Monsters").GetValue <bool>())
            {
                return(Result.Invalid);
            }

            var validMonsters = MinionManager.GetMinions(Champion.GetSpellQ.Range, MinionTypes.All, MinionTeam.Neutral);

            if (validMonsters.Count <= 0)
            {
                return(Result.Failure);
            }

            foreach (var monster in validMonsters.Where(name => !name.Name.ToLower().Contains("mini") && !name.BaseSkinName.ToLower().Contains("mini") && name.IsValidTarget(Champion.GetSpellE.Range)).OrderBy(hp => hp.Health))
            {
                if (SMenu.Item(MenuNameBase + "Clear.Boolean.UseE.Monsters").GetValue <bool>() && ClearUseE())
                {
                    Logger.WriteLog($"Jungle Use E on {monster.Name}");
                    Champion.GetSpellE.Cast(monster);
                    CommonOrbwalker.ForceTarget(monster);
                }
                if (SMenu.Item(MenuNameBase + "Clear.Boolean.UseQ.Monsters").GetValue <bool>() && ClearUseQ())
                {
                    Logger.WriteLog($"Jungle Use Q on {monster.Name}");
                    Champion.GetSpellQ.Cast();
                    CommonOrbwalker.ForceTarget(monster);
                    return(Result.Success);
                }
            }

            return(Result.Success);
        }
Ejemplo n.º 3
0
        private Result TurretClear()
        {
            if (!SMenu.Item(MenuNameBase + "Clear.Boolean.UseQ.Turret").GetValue <bool>() &&
                !SMenu.Item(MenuNameBase + "Clear.Boolean.UseE.Turret").GetValue <bool>())
            {
                return(Result.Invalid);
            }

            var validTurets = ObjectManager.Get <Obj_AI_Turret>().OrderBy(dis => dis.ServerPosition.Distance(Champion.Player.ServerPosition));

            var target = validTurets.Where(turret => turret.IsEnemy).Where(turret => !turret.IsDead).FirstOrDefault(turret => turret.IsValidTarget(Champion.GetSpellQ.Range));

            if (target == null)
            {
                //  Logger.WriteLog($"No vlaid turret");
                return(Result.Failure);
            }

            if (SMenu.Item(MenuNameBase + "Clear.Boolean.UseE.Turret").GetValue <bool>() && ClearUseE())
            {
                Logger.WriteLog($"Turret Clear Use E on {target.Name}");
                Champion.GetSpellE.Cast(target);
                CommonOrbwalker.ForceTarget(target);
            }

            if (SMenu.Item(MenuNameBase + "Clear.Boolean.UseQ.Turret").GetValue <bool>() && ClearUseQ())
            {
                Logger.WriteLog($"Turret Clear Use Q on {target.Name}");
                Champion.GetSpellQ.Cast();
                CommonOrbwalker.ForceTarget(target);
            }

            return(Result.Success);
        }
Ejemplo n.º 4
0
        private static void OrbWalkMinions()
        {
            if (!SMenu.Item(_MenuItemBase + "Boolean.MinonOrbwalk").GetValue <bool>())
            {
                return;
            }
            if (CommonOrbwalker.GetTarget() != null)
            {
                return;
            }

            var enemiesHero = HeroManager.Enemies.Where(x => x.IsEnemy && ObjectManager.Player.Distance(x) <= Orbwalking.GetRealAutoAttackRange(x));

            if (enemiesHero.Any())
            {
                return;                                                                                         // There is a champion we can attack
            }
            var target = TargetSelector.GetTarget(Champion.E.Range * 1.2f, TargetSelector.DamageType.Physical); // Champion in E range

            var autoMinions = MinionManager.GetMinions(Player.Position, Orbwalking.GetRealAutoAttackRange(Player), MinionTypes.All, MinionTeam.NotAlly);

            if (!autoMinions.Any())
            {
                return;
            }

            if (target != null && target.GetBuffCount("kalistaexpungemarker") <= 0)// There is a target with a rend stack
            {
                if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.RendDelay"))
                {
                    return;
                }
                var rendMinions = MinionManager.GetMinions(Player.ServerPosition, Champion.E.Range);
                var count       = rendMinions.Count(minion => minion.Health <= Damage.DamageCalc.CalculateRendDamage(minion) && minion.IsValid);

                if (count > 0) // Use Rend
                {
                    Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.RendDelay");
                    Champion.E.Cast();
                    return;
                }
            }

            //if no other event occurs
            foreach (var minion in autoMinions)
            {
                if (Vector3.Distance(ObjectManager.Player.ServerPosition, minion.Position) > Orbwalking.GetRealAutoAttackRange(Player) + 50)
                {
                    continue;
                }
                if (minion.CharData.BaseSkinName == "gangplankbarrel")
                {
                    continue;
                }
                Player.IssueOrder(GameObjectOrder.AttackUnit, minion);
                return;
            }
        }
Ejemplo n.º 5
0
        // ReSharper disable once UnusedMethodReturnValue.Local
        private Result LaneClearE()
        {
            if (!SMenu.Item(MenuNameBase + "Clear.Boolean.UseE.Minons").GetValue <bool>() &&
                !SMenu.Item(MenuNameBase + "Clear.Boolean.UseQ.Minons").GetValue <bool>())
            {
                return(Result.Invalid);
            }

            var validMinons = MinionManager.GetMinions(Champion.Player.Position, Champion.GetSpellQ.Range - 50, MinionTypes.All, MinionTeam.NotAlly);

            if (validMinons.Count < SMenu.Item(MenuNameBase + "Clear.Minons.Slider.MinMinons").GetValue <Slider>().Value)
            {
                return(Result.Failure);
            }

            if (Champion.GetSpellE.IsReady() && SMenu.Item(MenuNameBase + "Clear.Boolean.UseE.Minons").GetValue <bool>() && ClearUseE())
            {
                Obj_AI_Base target      = null;
                var         bestInRange = 0;
                foreach (var minon in validMinons.Where(minon => minon.IsValidTarget(Champion.GetSpellE.Range)))
                {
                    var inRange = 1 + validMinons.Count(minon2 => minon.Distance(minon) < 125);
                    if (inRange <= bestInRange)
                    {
                        continue;
                    }
                    bestInRange = inRange;
                    target      = minon;
                }
                if (target != null && bestInRange >= SMenu.Item(MenuNameBase + "Clear.Minons.Slider.MinMinons").GetValue <Slider>().Value)
                {
                    Logger.WriteLog($"Laneclear Use E on {target.Name} in range {bestInRange}");
                    Champion.GetSpellE.Cast(target);
                    CommonOrbwalker.ForceTarget(target);
                }
            }

            if (SMenu.Item(MenuNameBase + "Clear.Boolean.UseQ.Minons").GetValue <bool>() && Champion.GetSpellQ.IsReady() && ClearUseQ())
            {
                foreach (
                    var minion in
                    validMinons.Where(
                        charge =>
                        charge.HasBuff("TristanaECharge") &&
                        charge.IsValidTarget(Champion.GetSpellQ.Range)).OrderBy(hp => hp.Health))
                {
                    Logger.WriteLog($"Force target {minion.Name}");
                    Champion.GetSpellQ.Cast();
                    CommonOrbwalker.ForceTarget(minion);
                    return(Result.Success);
                }
            }

            return(Result.Success);
        }
Ejemplo n.º 6
0
        private void Mixed()
        {
            GeassLib.Globals.Variables.InCombo = false;
            var minValue = SMenu.Item(MenuNameBase + "Mixed.Slider.MaxDistance").GetValue <Slider>().Value;

            if (SMenu.Item(MenuNameBase + "Mixed.Boolean.UseE").GetValue <bool>() && Champion.GetSpellE.IsReady() && MixedUseE())
            {
                foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellE.Range - minValue)).OrderBy(hp => hp.HealthPercent))
                {
                    if (!SMenu.Item(MenuNameBase + "Mixed.Boolean.UseE.On." + enemy.ChampionName).GetValue <bool>())
                    {
                        continue;
                    }

                    Logger.WriteLog($"Mixed Use E on {enemy.Name}");
                    Champion.GetSpellE.Cast(enemy);
                    CommonOrbwalker.ForceTarget(enemy);

                    if (SMenu.Item(MenuNameBase + "Mixed.Boolean.UseQ").GetValue <bool>() && MixedUseQ())
                    {
                        if (Champion.GetSpellQ.IsReady())
                        {
                            Logger.WriteLog($"Mixed Use Q on {enemy.Name}");
                            Champion.GetSpellQ.Cast();
                        }
                    }
                    return;
                }
            }
            else if (SMenu.Item(MenuNameBase + "Mixed.Boolean.UseQ").GetValue <bool>() && Champion.GetSpellQ.IsReady() && MixedUseQ())
            {
                foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellQ.Range - minValue)).OrderBy(hp => hp.Health))
                {
                    Logger.WriteLog($"Mixed Use Q on {enemy.Name}");
                    Champion.GetSpellQ.Cast();
                    CommonOrbwalker.ForceTarget(enemy);
                    return;
                }
            }

            //if (SMenu.Item(MenuNameBase + "Mixed.Boolean.UseR").GetValue<bool>() && Champion.GetSpellR.IsReady() && MixedUseR())
            //{
            //    foreach (var enemy in ObjectManager.Get<AIHeroClient>().OrderBy(hp => hp.Health))
            //    {
            //        if (enemy.IsDead) continue;
            //        if (!enemy.IsEnemy) continue;
            //        if (!SMenu.Item(MenuNameBase + "Mixed.Boolean.UseR.On." + enemy.ChampionName).GetValue<bool>()) continue;
            //        if (!enemy.IsValidTarget(Champion.GetSpellR.Range)) continue;
            //        if (_damageLib.CalculateDamage(enemy) < enemy.Health) continue;
            //        Champion.GetSpellR.Cast(enemy);
            //        break;
            //    }
            //}
        }
Ejemplo n.º 7
0
        private void Combo()
        {
            GeassLib.Globals.Variables.InCombo = true;
            if (!SMenu.Item(MenuNameBase + "Combo.Boolean.UseQ").GetValue <bool>() &&
                !SMenu.Item(MenuNameBase + "Combo.Boolean.UseE").GetValue <bool>() &&
                !SMenu.Item(MenuNameBase + "Combo.Boolean.UseR").GetValue <bool>())
            {
                return;
            }

            if (SMenu.Item(MenuNameBase + "Combo.Boolean.UseE").GetValue <bool>() && Champion.GetSpellE.IsReady() && ComboUseE())
            {
                foreach (var enemy in (ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellE.Range)).OrderBy(hp => hp.Health)))
                {
                    if (!SMenu.Item(MenuNameBase + "Combo.Boolean.UseE.On." + enemy.ChampionName).GetValue <bool>())
                    {
                        continue;
                    }
                    Logger.WriteLog($"Combo Use E on {enemy}");
                    Champion.GetSpellE.Cast(enemy);
                    break;
                }
            }

            if (SMenu.Item(MenuNameBase + "Combo.Boolean.UseQ").GetValue <bool>() && Champion.GetSpellQ.IsReady() && ComboUseQ())
            {
                foreach (var enemy in (ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellQ.Range)).OrderBy(hp => hp.Health)))
                {
                    Logger.WriteLog($"Combo Use Q on {enemy}");
                    Champion.GetSpellQ.Cast();
                    CommonOrbwalker.ForceTarget(enemy);
                    break;
                }
            }

            if (SMenu.Item(MenuNameBase + "Combo.Boolean.FocusETarget").GetValue <bool>())
            {
                foreach (var enemy in (ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellQ.Range) && e.HasBuff("TristanaECharge")).OrderBy(hp => hp.Health)))
                {
                    Logger.WriteLog($"Force target {enemy}");
                    CommonOrbwalker.ForceTarget(enemy);
                    break;
                }
            }

            if (SMenu.Item(MenuNameBase + "Combo.Boolean.UseR").GetValue <bool>() && Champion.GetSpellR.IsReady() && ComboUseR())
            {
                foreach (var enemy in (ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellR.Range)).OrderBy(hp => hp.Health)))
                {
                    if (!SMenu.Item(MenuNameBase + "Combo.Boolean.UseR.On." + enemy.ChampionName).GetValue <bool>())
                    {
                        continue;
                    }
                    if (_damageLib.CalcDamage(enemy) < enemy.Health)
                    {
                        continue;
                    }
                    Logger.WriteLog($"Combo Use R on {enemy}");
                    Champion.GetSpellR.Cast(enemy);
                    return;
                }
            }
        }