public void HandleQ(OrbwalkingMode orbMode) { if (orbMode == OrbwalkingMode.Combo && IsOn(orbMode)) { var heroes = Variables.TargetSelector.GetTargets(SpellQ.Range, DamageType.Magical, false); foreach (var hero in heroes) { if (SpellQ.IsReady() && SpellQ.IsInRange(hero)) { var pred = SpellQ.GetPrediction(hero).CastPosition; SpellQ.Cast(pred); } } } else if ((orbMode == OrbwalkingMode.Hybrid || orbMode == OrbwalkingMode.LaneClear) && IsOn(orbMode)) { var minions = GameObjects.EnemyMinions.Where(m => SpellQ.IsInRange(m)).ToList(); var farmloc = SpellQ.GetLineFarmLocation(minions); var minionsN = GameObjects.Jungle.Where(m => SpellQ.IsInRange(m)).ToList(); var farmlocN = SpellQ.GetLineFarmLocation(minionsN); if (farmloc.MinionsHit >= 3) { SpellQ.Cast(farmloc.Position); } if (farmlocN.MinionsHit >= 1) { SpellQ.Cast(farmlocN.Position); } } else if (orbMode == OrbwalkingMode.LastHit && IsOn(orbMode)) { var minions = GameObjects.EnemyMinions.Where(m => SpellQ.IsInRange(m)).ToList(); var farmloc = SpellQ.GetLineFarmLocation(minions); if (farmloc.MinionsHit >= 3) { SpellQ.Cast(farmloc.Position); } } }
private static void Lane() { if (Me.ManaPercent >= laneMenu["Mana"].Cast <Slider>().CurrentValue) { if (Q.IsReady()) { var Minions = GameObjects.EnemyMinions.Where(x => x.LSIsValidTarget(Q.Range)).ToList(); if (Minions.Count() > 0) { var QFarm = Q.GetLineFarmLocation(Minions, Q.Width); if (QFarm.MinionsHit >= laneMenu["Q"].Cast <Slider>().CurrentValue) { Q.Cast(QFarm.Position); } } } } }
public static void SmartCast(this LeagueSharp.SDK.Spell spell, Obj_AI_Base target = null, HitChance hitchance = HitChance.Medium, int minimunHits = 0) { if (target == null) { return; } if (!spell.CanCast(target)) { return; } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass)) { if (spell.IsSkillshot) { if (spell.Collision) { if (Me.CountEnemyHeroesInRange(spell.Range) <= (minimunHits == 0 ? 2 : minimunHits)) { spell.CastOnBestTarget(0f, true); return; } if (Me.CountEnemyHeroesInRange(spell.Range) >= (minimunHits == 0 ? 2 : minimunHits)) { spell.CastOnBestTarget(0f, true, 1); return; } } else { spell.CastIfHitchanceMinimum(target, hitchance); return; } } else { spell.CastOnUnit(target); return; } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { if (spell.Collision) { spell.CastIfHitchanceMinimum(target, HitChance.Low); return; } else { var minions = GameObjects.EnemyMinions.Where(m => m.LSIsValidTarget()) .OrderBy(m => m.Distance(target)) .ThenBy(m => m.Health) .ToList(); if (minions != null) { switch (spell.Type) { case SkillshotType.SkillshotLine: var posLine = spell.GetLineFarmLocation(minions); if (posLine.MinionsHit >= (minimunHits == 0 ? 1 : minimunHits)) { spell.Cast(posLine.Position); return; } break; case SkillshotType.SkillshotCircle: var posCircle = spell.GetCircularFarmLocation(minions); if (posCircle.MinionsHit >= (minimunHits == 0 ? 1 : minimunHits)) { spell.Cast(posCircle.Position); return; } break; case SkillshotType.SkillshotCone: var posCone = spell.GetLineFarmLocation(minions, spell.Width); if (posCone.MinionsHit >= (minimunHits == 0 ? 1 : minimunHits)) { spell.Cast(posCone.Position); return; } break; } } spell.CastIfHitchanceMinimum(target, HitChance.Medium); } } else { spell.CastOnUnit(target); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LastHit)) { if (spell.IsSkillshot) { spell.CastIfHitchanceMinimum(target, HitChance.Low); return; } spell.CastOnUnit(target); } }