Пример #1
0
 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)));
 }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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());
        }