private static bool ShouldWait() { return (MinionManager.GetCreeps(GetTrueAARangeTo(), MinionManager.Type.Attackable) .Any( minion => minion.IsValidTarget() && minion.Team != GameObjectTeam.Neutral && ObjectManager.Player.IsInAutoAttackRange(minion) && Prediction.Health.GetPrediction(minion, (int)((ObjectManager.Player.AttackDelay * 1000) * 2)) <= ObjectManager.Player.GetAutoAttackDamage(minion))); }
private static void OnDrawingDraw(EventArgs args) { if (_menuOrbwalk["_DrawMyBoundingRange"].Cast <CheckBox>().CurrentValue&& ObjectManager.Player.Health > 0) { Circle.Draw(Color.White, ObjectManager.Player.BoundingRadius, ObjectManager.Player.Position); } if (_menuOrbwalk["_DrawEnemyBoundingRange"].Cast <CheckBox>().CurrentValue) { foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(o => o.IsValidTarget(1500) && o.IsEnemy)) { Circle.Draw(Color.White, enemy.BoundingRadius, enemy.Position); } } if (_menuOrbwalk["_DrawMyAutoattackrange"].Cast <CheckBox>().CurrentValue&& ObjectManager.Player.Health > 0) { Circle.Draw(Color.White, GetTrueAARangeTo(), ObjectManager.Player.Position); } if (_menuOrbwalk["_DrawEnemyAutoattackrange"].Cast <CheckBox>().CurrentValue) { foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(o => o.IsValidTarget(1500) && o.IsEnemy)) { Circle.Draw(Color.Gray, GetTrueAARangeFrom(enemy), enemy.Position); } } if (_menuOrbwalk["_DrawLasthitMinions"].Cast <CheckBox>().CurrentValue) { var minions = MinionManager.GetCreeps(1500, MinionManager.Type.Attackable); foreach (var minion in from minion in minions let t = (int)(ObjectManager.Player.AttackCastDelay * 1000) - 100 + Game.Ping / 2 + 1000 * (int)Math.Max(0, ObjectManager.Player.Distance(minion) - ObjectManager.Player.BoundingRadius) / GetMyProjectileSpeed() where ObjectManager.Player.GetAutoAttackDamage(minion, true) > Prediction.Health.GetPrediction(minion, t) - 5 select minion) { Circle.Draw(Color.GreenYellow, minion.BoundingRadius, minion.Position); } } }
internal static Obj_AI_Base GetAALaneClearMinion() { var minions = MinionManager.GetCreeps(ObjectManager.Player.GetAutoAttackRange(), MinionManager.Type.Attackable); var objAiMinions = minions as Obj_AI_Minion[] ?? minions.ToArray(); var ret = (from minion in objAiMinions let t = (int)(ObjectManager.Player.AttackCastDelay * 1000) - 100 + Game.Ping / 2 + 1000 * (int)Math.Max(0, ObjectManager.Player.Distance(minion) - ObjectManager.Player.BoundingRadius) / Orbwalker.GetMyProjectileSpeed() where ObjectManager.Player.GetAutoAttackDamage(minion) * 2.5 < Prediction.Health.GetPrediction(minion, t) select minion).FirstOrDefault(); if (ret != null) { return(ret); } foreach (var minion in objAiMinions) { if (ret == null) { ret = minion; } if (ret.MaxHealth < minion.MaxHealth) { ret = minion; } } return(ret); }
internal static Obj_AI_Base GetAAOneHitMinion() { var minions = MinionManager.GetCreeps(ObjectManager.Player.GetAutoAttackRange(), MinionManager.Type.Attackable); return((from minion in minions let t = (int)(ObjectManager.Player.AttackCastDelay * 1000) - 100 + Game.Ping / 2 + 1000 * (int)Math.Max(0, ObjectManager.Player.Distance(minion) - ObjectManager.Player.BoundingRadius) / Orbwalker.GetMyProjectileSpeed() where ObjectManager.Player.GetAutoAttackDamage(minion, true) > Prediction.Health.GetPrediction(minion, t) - 5 select minion).FirstOrDefault()); }