public static void Combo() { //Qcast if (Q.IsReady() && Qcombo) { if (CastQPassiveCombo || CastQPrePassiveCombo || CastQGapCloseCombo) { if (TargetingMode == TargetMode.Normal) { foreach (var hero in HeroManager.Enemies.Where(x => x.LSIsValidTarget() && !x.IsZombie) .OrderBy(x => x.LSDistance(Player.Position))) { var status = hero.GetPassiveStatus(0); if (status.HasPassive && !(Orbwalking.InAutoAttackRange(hero) && status.PassivePredictedPositions.Any(x => Player.Position.LSTo2D() .InTheCone(status.TargetPredictedPosition, x, 90)))) { if (CastQPassiveCombo && status.PassiveType == PassiveType.UltiPassive && castQtoUltPassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQPassiveCombo && status.PassiveType == PassiveType.NormalPassive && castQtoPassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQPrePassiveCombo && status.PassiveType == PassiveType.PrePassive && castQtoPrePassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQGapCloseCombo && castQtoGapClose(hero, getQGapClosedelay(hero))) { goto Wcast; } } } } else { var hero = GetTarget(); if (hero != null) { var status = hero.GetPassiveStatus(0); if (status.HasPassive && !(Orbwalking.InAutoAttackRange(hero) && status.PassivePredictedPositions.Any(x => Player.Position.LSTo2D() .InTheCone(status.TargetPredictedPosition, x, 90)))) { if (CastQPassiveCombo && status.PassiveType == PassiveType.UltiPassive && castQtoUltPassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQPassiveCombo && status.PassiveType == PassiveType.NormalPassive && castQtoPassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQPrePassiveCombo && status.PassiveType == PassiveType.PrePassive && castQtoPrePassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQGapCloseCombo && castQtoGapClose(hero, getQGapClosedelay(hero))) { goto Wcast; } } } } } if (CastQGapCloseCombo && !CastQPassiveCombo && !CastQPrePassiveCombo) { if (TargetingMode == TargetMode.Normal) { foreach (var hero in HeroManager.Enemies.Where(x => x.LSIsValidTarget() && !x.IsZombie) .OrderBy(x => x.LSDistance(Player.Position))) { if (castQtoGapClose(hero, getQGapClosedelay(hero))) { goto Wcast; } } } else { var hero = GetTarget(); if (hero != null) { if (castQtoGapClose(hero, getQGapClosedelay(hero))) { goto Wcast; } } } } if (CastQMinionGapCloseCombo && Math.Abs(Player.PercentCooldownMod) * 100 >= ValueQMinionGapCloseCombo) { var hero = GetTarget(); if (hero != null && Player.Position.LSDistance(hero.Position) >= 500) { if (Player.Position.LSExtend(hero.Position, 400).CountMinionsInRange(300, false) >= 1) { Q.Cast(Player.Position.LSExtend(hero.Position, 400)); } } } } if (R.IsReady() && Rcombo) { var hero = GetTarget(); if (hero.LSIsValidTarget(500) && !hero.IsZombie) { var status = hero.GetPassiveStatus(0); if (!status.HasPassive || (status.HasPassive && !(Orbwalking.InAutoAttackRange(hero) && status.PassivePredictedPositions.Any(x => Player.Position.LSTo2D() .InTheCone(status.TargetPredictedPosition, x, 90))))) { if (UseRComboLowHP && Player.HealthPercent <= ValueRComboLowHP) { R.Cast(hero); return; } if (UseRComboKillable && GetFastDamage(hero) >= hero.Health && hero.Health >= GetFastDamage(hero) / 3) { R.Cast(hero); return; } if (UseRComboAlways) { R.Cast(hero); return; } } if (UseRComboOnTap && RTapKeyActive) { R.Cast(hero); return; } } } Wcast: if (W.IsReady()) { } }
public static void Harass() { //Qcast if (Q.IsReady() && Qharass && Player.ManaPercent >= Manaharass) { if (CastQPassiveHarasss || CastQPrePassiveHarass || CastQGapCloseHarass) { if (TargetingMode == TargetMode.Normal) { foreach (var hero in HeroManager.Enemies.Where(x => x.LSIsValidTarget() && !x.IsZombie).OrderBy(x => x.LSDistance(Player.Position))) { var status = hero.GetPassiveStatus(0); if (status.HasPassive && !(Orbwalking.InAutoAttackRange(hero) && status.PassivePredictedPositions.Any(x => Player.Position.LSTo2D() .InTheCone(status.TargetPredictedPosition, x, 90)))) { if (CastQPassiveHarasss && status.PassiveType == PassiveType.UltiPassive && castQtoUltPassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQPassiveHarasss && status.PassiveType == PassiveType.NormalPassive && castQtoPassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQPrePassiveHarass && status.PassiveType == PassiveType.PrePassive && castQtoPrePassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQGapCloseHarass && castQtoGapClose(hero, getQGapClosedelay(hero))) { goto Wcast; } } } } else { var hero = GetTarget(); if (hero != null) { var status = hero.GetPassiveStatus(0); if (status.HasPassive && !(Orbwalking.InAutoAttackRange(hero) && status.PassivePredictedPositions.Any(x => Player.Position.LSTo2D() .InTheCone(status.TargetPredictedPosition, x, 90)))) { if (CastQPassiveHarasss && status.PassiveType == PassiveType.UltiPassive && castQtoUltPassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQPassiveHarasss && status.PassiveType == PassiveType.NormalPassive && castQtoPassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQPrePassiveHarass && status.PassiveType == PassiveType.PrePassive && castQtoPrePassive(hero, getQPassivedelay(hero))) { goto Wcast; } if (CastQGapCloseHarass && castQtoGapClose(hero, getQGapClosedelay(hero))) { goto Wcast; } } } } } if (CastQGapCloseHarass && !CastQPassiveHarasss && !CastQPrePassiveHarass) { if (TargetingMode == TargetMode.Normal) { foreach (var hero in HeroManager.Enemies.Where(x => x.LSIsValidTarget() && !x.IsZombie) .OrderBy(x => x.LSDistance(Player.Position))) { if (castQtoGapClose(hero, getQGapClosedelay(hero))) { goto Wcast; } } } else { var hero = GetTarget(); if (hero != null) { if (castQtoGapClose(hero, getQGapClosedelay(hero))) { goto Wcast; } } } } } Wcast: if (W.IsReady()) { } }
public virtual bool InAutoAttackRange(AttackableUnit target) { return(Orbwalking.InAutoAttackRange(target)); }