private static void WaveClear() { if (Player.ManaPercent() < Getsliderf("WC.Mana")) { return; } var minions = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.IsEnemy && Player.Distance(m) <= incrange); if (minions.Any() && GetBool("UseEwc") && E.Ready && !Eon) { E.CastOnUnit(Player); } if (Config["UseQwc"].Enabled && Q.Ready) { var allMinions = ObjectManager.Get <Obj_AI_Base>().Where(minion => minion.IsValidSpellTarget(Q.Range)); var vminions = allMinions.Where( minion => minion.IsValidTarget() && Player.Distance(minion) > Player.GetFullAttackRange(minion) && Player.Distance(minion) <= Q.Range && HealthPrediction.Implementation.GetPrediction(minion, (int)((Player.Distance(minion) * 1000) / 1500) + 300 + Game.Ping / 2) < 0.75 * Player.GetSpellDamage(minion, SpellSlot.Q)); var bestminion = vminions.MaxBy(x => x.MaxHealth); if (bestminion != null) { Orbwalker.Implementation.AttackingEnabled = false; Q.CastOnUnit(bestminion); Orbwalker.Implementation.AttackingEnabled = true; } } }
/// <summary> /// Determines whether the target is a valid target in the auto attack range from the specified check range from /// vector. /// </summary> /// <param name="target">The target.</param> /// <param name="allyIsValidTarget">if set to <c>true</c> allies will be set as valid targets.</param> /// <param name="checkRangeFrom">The check range from.</param> /// <returns><c>true</c> if the target is a valid target in the auto attack range; otherwise, <c>false</c>.</returns> public static bool IsValidAutoRange( this AttackableUnit target, bool allyIsValidTarget = false, Vector3 checkRangeFrom = default(Vector3)) { if (target == null || !target.IsValid || target.IsDead || target.IsInvulnerable || !target.IsVisible || !target.IsTargetable) { return(false); } if (!allyIsValidTarget && target.Team == Player.Team) { return(false); } return(target.Distance(checkRangeFrom != Vector3.Zero ? checkRangeFrom : Player.Position) < Player.GetFullAttackRange(target)); }
private static void LastHitting() { var minManaPct = MenuManager.LastHitting["lastHitManaPct"].As <MenuSlider>().Value; if (MenuManager.LastHitting_Q["lastHittingQ"].As <MenuBool>().Enabled&& SpellManager.Q.Ready && Player.ManaPercent() >= minManaPct) { var onlyOutOfRange = MenuManager.LastHitting_Q["lastHittingQOutOfRange"].As <MenuBool>().Enabled; var minions = GameObjects.EnemyMinions.Where(x => x.IsInRange(SpellManager.Q.Range) && x.UnitSkinName.Contains("Minion") && Player.GetSpellDamage(x, SpellSlot.Q) >= x.Health && x.IsValidTarget()).OrderBy(x => x.Health); var target = onlyOutOfRange ? minions.FirstOrDefault(x => !x.IsInRange(Player.GetFullAttackRange(x))) : minions.FirstOrDefault(); if (target.IsValidTarget()) { SpellManager.Q.Cast(target); } } }