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); } } } }
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); } } } }
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); } } } }
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); } } } } } }
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); } } } } } }
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); } } } }
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; } }
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; } }
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(); } } } } }
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); } } } }