コード例 #1
0
 private static void Game_OnUpdate(EventArgs args)
 {
     if (BadaoGravesVariables.AutoSmite.GetValue <bool>() && BadaoMainVariables.Smite != SpellSlot.Unknown && BadaoMainVariables.Smite.IsReady())
     {
         var creep = MinionManager.GetMinions(800, MinionTypes.All, MinionTeam.Neutral)
                     .Where(x => x.CharacterData.SkinName.Contains("SRU_Dragon") || x.CharacterData.SkinName.Contains("SRU_Baron"));
         foreach (var x in creep.Where(y => Player.Distance(y.Position) <= Player.BoundingRadius + 500 + y.BoundingRadius))
         {
             if (x != null && x.Health <= BadaoChecker.BadaoGetSmiteDamage())
             {
                 Player.Spellbook.CastSpell(BadaoMainVariables.Smite, x);
             }
         }
     }
     if (BadaoMainVariables.R.IsReady() && BadaoGravesVariables.AutoRKS.GetValue <bool>())
     {
         foreach (var hero in HeroManager.Enemies.Where(x => x.BadaoIsValidTarget(BadaoMainVariables.R.Range)))
         {
             if (BadaoMainVariables.R.GetDamage(hero) >= hero.Health)
             {
                 BadaoMainVariables.R.Cast(hero);
             }
         }
     }
 }
コード例 #2
0
 private static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Mixed || !unit.IsMe || !(target is Obj_AI_Hero))
     {
         return;
     }
     if (target.Position.Distance(ObjectManager.Player.Position) <= 200 + 125 + 140)
     {
         BadaoChecker.BadaoUseTiamat();
     }
 }
コード例 #3
0
 private static void Orbwalking_AfterAttack(AttackableUnit target, EventArgs args)
 {
     if (!BadaoPoppyHelper.AssasinateActive())
     {
         return;
     }
     if (target.Position.LSDistance(ObjectManager.Player.Position) <= 200 + 125 + 140)
     {
         BadaoChecker.BadaoUseTiamat();
     }
 }
コード例 #4
0
 private static void Orbwalking_AfterAttack(AttackableUnit target, EventArgs args)
 {
     if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass) || !(target is AIHeroClient))
     {
         return;
     }
     if (target.Position.Distance(ObjectManager.Player.Position) <= 200 + 125 + 140)
     {
         BadaoChecker.BadaoUseTiamat();
     }
 }
コード例 #5
0
 private static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear)
     {
         return;
     }
     if (target.Team != GameObjectTeam.Neutral)
     {
         return;
     }
     if (target.Position.Distance(ObjectManager.Player.Position) <= 200 + 125 + 140)
     {
         BadaoChecker.BadaoUseTiamat();
     }
 }
コード例 #6
0
 private static void Orbwalking_AfterAttack(AttackableUnit target, EventArgs args)
 {
     if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
     {
         return;
     }
     if (target.Team != GameObjectTeam.Neutral)
     {
         return;
     }
     if (target.Position.LSDistance(ObjectManager.Player.Position) <= 200 + 125 + 140)
     {
         BadaoChecker.BadaoUseTiamat();
     }
 }
コード例 #7
0
 private static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
     {
         return;
     }
     if (!unit.IsMe)
     {
         return;
     }
     if (BadaoChecker.BadaoHasTiamat())
     {
         BadaoChecker.BadaoUseTiamat();
     }
 }
コード例 #8
0
        public static void RPrediction(Vector2 CastPos, Obj_AI_Base TargetToCheck, out Vector2 CenterPolar, out Vector2 CenterEnd, out Vector2 x1, out Vector2 x2)
        {
            //changeable
            float goc = 36f;
            //process
            float goc1rad  = (float)Math.PI * (90f - goc / 2f) / 180f;
            float backward = TargetToCheck.BoundingRadius / (float)Math.Cos(goc1rad);

            CenterPolar = ObjectManager.Player.Position.To2D().Extend(CastPos, -backward);
            CenterEnd   = ObjectManager.Player.Position.To2D().Extend(CastPos, 1400);
            Vector2 Rangestraight = ObjectManager.Player.Position.To2D().Extend(CastPos, ObjectManager.Player.BoundingRadius
                                                                                + ObjectManager.Player.AttackRange + TargetToCheck.BoundingRadius);
            float goc2rad = (float)Math.PI * (goc / 2f + 90f) / 180f - (float)Math.Acos(TargetToCheck.BoundingRadius /
                                                                                        (ObjectManager.Player.BoundingRadius + ObjectManager.Player.AttackRange + TargetToCheck.BoundingRadius));

            x1 = BadaoChecker.BadaoRotateAround(Rangestraight, ObjectManager.Player.Position.To2D(), goc2rad);
            x2 = BadaoChecker.BadaoRotateAround(Rangestraight, ObjectManager.Player.Position.To2D(), -goc2rad);
        }
コード例 #9
0
ファイル: BadaoVeigarHelper.cs プロジェクト: waldow90/PortAIO
        public static void CastETarget(AIHeroClient target, int extraDistance = 50)
        {
            var     pred        = Prediction.GetPrediction(target, 1.25f + (float)Game.Ping / 1000f);
            Vector2 UnitPredPos = pred.UnitPosition.To2D();

            if (target.IsChannelingImportantSpell() && pred.UnitPosition.Distance(target.Position) <= 50)
            {
                UnitPredPos = target.Position.To2D();
            }
            else if (pred.UnitPosition.Distance(target.Position) <= 20)
            {
                return;
            }
            else
            {
                UnitPredPos = pred.UnitPosition.To2D().Extend(target.Position.To2D(), 0);
            }
            List <Vector2> extraPoses = new List <Vector2>();
            List <Vector2> CastPoses  = new List <Vector2>();
            Vector2        direction  = UnitPredPos.Extend(target.Direction.To2D(), extraDistance);

            for (int i = 0; i < 360; i = i + 5)
            {
                extraPoses.Add(BadaoChecker.BadaoRotateAround(direction, UnitPredPos, BadaoChecker.AngleToRadian(i)));
            }
            foreach (var pos in extraPoses)
            {
                CastPoses.Add(pos.Extend(UnitPredPos, 300));
            }
            Vector2 CastPos = CastPoses.Where(x => BadaoMainVariables.E.IsInRange(x)).OrderByDescending(x => x.Distance(target.Position) <= 300)
                              .ThenByDescending(x => LeagueSharp.Common.Utility.CountEnemiesInRange(x.To3D(), 300)).FirstOrDefault();

            if (CastPos != null && CastPos.IsValid())
            {
                BadaoMainVariables.E.Cast(CastPos);
            }
        }
コード例 #10
0
 private static void Game_OnUpdate(EventArgs args)
 {
     if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear)
     {
         return;
     }
     if (Utils.GameTimeTickCount - BadaoMissFortuneVariables.Rcount <= 500)
     {
         return;
     }
     if (ObjectManager.Player.IsChannelingImportantSpell())
     {
         return;
     }
     if (!BadaoMissFortuneHelper.CanLaneClearMana())
     {
         return;
     }
     // Q logic
     if (BadaoMissFortuneHelper.UseQLaneClear() && Orbwalking.CanMove(80))
     {
         foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range).OrderBy(x => x.Health))
         {
             if (minion.BadaoIsValidTarget())
             {
                 var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                 var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()
                                                                                                                         / 1400 + Game.Ping / 1000));
                 Vector2 endpos1 = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                   ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                 Vector2 endpos2 = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                   ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 150);
                 if (MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x => x.BadaoIsValidTarget() &&
                                                                                    x.NetworkId != minion.NetworkId &&
                                                                                    BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x,
                                                                                                                                         0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                               1400 + Game.Ping / 1000)).UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos1, 110)) ||
                     MinionManager.GetMinions(BadaoMainVariables.Q.Range + 150).Any(x => x.NetworkId != minion.NetworkId &&
                                                                                    BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x,
                                                                                                                                         0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                               1400 + Game.Ping / 1000)).UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos2, 160)))
                 {
                     if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                     {
                         goto xyz;
                     }
                 }
             }
         }
         var minionQ1 = MinionManager.GetMinions(BadaoMainVariables.Q.Range).FirstOrDefault();
         {
             if (minionQ1.BadaoIsValidTarget() && BadaoMainVariables.Q.Cast(minionQ1) == Spell.CastStates.SuccessfullyCasted)
             {
                 goto xyz;
             }
         }
         xyz :;
     }
     // E logic
     if (BadaoMissFortuneHelper.UseELaneClear() && Orbwalking.CanMove(80))
     {
         var minion = MinionManager.GetMinions(BadaoMainVariables.E.Range).OrderByDescending
                          (x => MinionManager.GetMinions(x.Position, 250).Count()).FirstOrDefault();
         if (minion.BadaoIsValidTarget())
         {
             BadaoMainVariables.E.Cast(minion);
         }
     }
 }
コード例 #11
0
 private static void Game_OnUpdate(EventArgs args)
 {
     if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
     {
         return;
     }
     // cancle R
     if (Utils.GameTimeTickCount - BadaoMissFortuneVariables.Rcount <= 500)
     {
         return;
     }
     if (ObjectManager.Player.IsChannelingImportantSpell())
     {
         if (!HeroManager.Enemies.Any(x => x.BadaoIsValidTarget() &&
                                      BadaoChecker.BadaoInTheCone(x.Position.To2D(),
                                                                  BadaoMissFortuneVariables.CenterPolar, BadaoMissFortuneVariables.CenterEnd, 36)))
         {
             EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
         }
         else
         {
             return;
         }
     }
     // Q logic
     if (BadaoMissFortuneHelper.UseQ2Combo() && Orbwalking.CanMove(80))
     {
         // Q2 logic
         var targetQ = TargetSelector.GetTarget(BadaoMainVariables.Q.Range + 600, TargetSelector.DamageType.Physical);
         if (targetQ.BadaoIsValidTarget())
         {
             if (BadaoMissFortuneVariables.TapTarget.BadaoIsValidTarget() &&
                 targetQ.NetworkId == BadaoMissFortuneVariables.TapTarget.NetworkId)
             {
                 foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                         x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(hero) >= hero.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(minion) >= minion.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                         x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
             }
             else if (!BadaoMissFortuneVariables.TapTarget.IsValidTarget() ||
                      targetQ.NetworkId != BadaoMissFortuneVariables.TapTarget.NetworkId)
             {
                 //40
                 foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                         x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(hero) >= hero.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredHero.UnitPosition.To2D(), endpos, 40)))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(minion) >= minion.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                         x.NetworkId != minion.NetworkId &&
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredMinion.UnitPosition.To2D(), endpos, 40)))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                         x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredHero.UnitPosition.To2D(), endpos, 40)))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                         x.NetworkId != minion.NetworkId &&
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredMinion.UnitPosition.To2D(), endpos, 40)))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 //20
                 foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                         x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(hero) >= hero.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 20) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredHero.UnitPosition.To2D(), endpos, 20)))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(minion) >= minion.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 20) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                         x.NetworkId != minion.NetworkId &&
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredMinion.UnitPosition.To2D(), endpos, 20)))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                         x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 20) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredHero.UnitPosition.To2D(), endpos, 20)))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 20) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                         x.NetworkId != minion.NetworkId &&
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredMinion.UnitPosition.To2D(), endpos, 20)))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
             }
         }
         abc :;
     }
     // Q1 logic
     if (BadaoMissFortuneHelper.UseQ1Combo() && Orbwalking.CanMove(80))
     {
         var targetQ1 = TargetSelector.GetTarget(BadaoMainVariables.Q.Range, TargetSelector.DamageType.Physical);
         if (targetQ1.BadaoIsValidTarget())
         {
             if (BadaoMainVariables.Q.Cast(targetQ1) == Spell.CastStates.SuccessfullyCasted)
             {
                 goto abc;
             }
         }
         abc :;
     }
     // E logic
     if (BadaoMissFortuneHelper.UseECombo() && Orbwalking.CanMove(80))
     {
         var targetE = TargetSelector.GetTarget(BadaoMainVariables.E.Range + 200, TargetSelector.DamageType.Physical);
         if (targetE.BadaoIsValidTarget())
         {
             var PredTargetE = Prediction.GetPrediction(targetE, 0.25f);
             if (PredTargetE.UnitPosition.To2D().Distance(ObjectManager.Player.Position.To2D()) <= BadaoMainVariables.E.Range)
             {
                 if (BadaoMainVariables.E.Cast(PredTargetE.UnitPosition) == true)
                 {
                     goto xyz;
                 }
             }
         }
         xyz :;
     }
     // R logic
     if (BadaoMainVariables.R.IsReady() && Orbwalking.CanMove(80) && BadaoMissFortuneVariables.ComboRifhit.GetValue <bool>())
     {
         foreach (AIHeroClient hero in HeroManager.Enemies)
         {
             List <AIHeroClient> a = new List <AIHeroClient>();
             if (hero.BadaoIsValidTarget())
             {
                 var     PredTarget  = Prediction.GetPrediction(hero as Obj_AI_Base, 0.25f + Game.Ping / 1000f);
                 Vector2 x1          = new Vector2();
                 Vector2 x2          = new Vector2();
                 Vector2 CenterPolar = new Vector2();
                 Vector2 CenterEnd   = new Vector2();
                 BadaoMissFortuneHelper.RPrediction(PredTarget.UnitPosition.To2D(), hero as Obj_AI_Base,
                                                    out CenterPolar, out CenterEnd, out x1, out x2);
                 foreach (AIHeroClient hero2 in HeroManager.Enemies)
                 {
                     if (hero2.BadaoIsValidTarget() && BadaoChecker.BadaoInTheCone(hero2.Position.To2D(), CenterPolar, CenterEnd, 36))
                     {
                         a.Add(hero2);
                     }
                 }
                 if (a.Count() >= BadaoMissFortuneVariables.ComboRifwillhit.GetValue <Slider>().Value)
                 {
                     BadaoMainVariables.R.Cast(PredTarget.UnitPosition.To2D());
                     BadaoMissFortuneVariables.TargetRChanneling = hero as AIHeroClient;
                     BadaoMissFortuneVariables.CenterPolar       = CenterPolar;
                     BadaoMissFortuneVariables.CenterEnd         = CenterEnd;
                     BadaoMissFortuneVariables.Rcount            = Utils.GameTimeTickCount;
                 }
             }
         }
     }
 }
コード例 #12
0
 private static void Game_OnUpdate(EventArgs args)
 {
     if (BadaoMainVariables.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
     {
         return;
     }
     if (Utils.GameTimeTickCount - BadaoMissFortuneVariables.Rcount <= 500)
     {
         return;
     }
     if (ObjectManager.Player.IsChannelingImportantSpell())
     {
         return;
     }
     if (!BadaoMissFortuneHelper.CanAutoMana())
     {
         return;
     }
     foreach (AIHeroClient heroX in HeroManager.Enemies.Where(x => x.BadaoIsValidTarget() &&
                                                              x.Position.To2D().Distance(ObjectManager.Player.Position.To2D())
                                                              <= BadaoMainVariables.Q.Range + 500))
     {
         if (heroX.BadaoIsValidTarget() && BadaoMissFortuneHelper.UseQ2Auto(heroX))
         {
             if (Orbwalking.CanMove(80))
             {
                 List <Obj_AI_Base> a = new List <Obj_AI_Base>();
                 if (BadaoMissFortuneVariables.TapTarget.BadaoIsValidTarget() &&
                     heroX.NetworkId == BadaoMissFortuneVariables.TapTarget.NetworkId)
                 {
                     foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != heroX.NetworkId &&
                                                                             x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                     {
                         var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                         var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                         var PredheroX = Prediction.GetPrediction(heroX, 0.25f +
                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                         Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                          ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                         if (BadaoChecker.BadaoInTheCone(PredheroX.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40) &&
                             BadaoChecker.BadaoInTheCone(heroX.Position.To2D(), PredHero.UnitPosition.To2D(), endpos - 100, 40 - 5))
                         {
                             a.Add(hero);
                         }
                     }
                     foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                     {
                         var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                         var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                 1400 + Game.Ping / 1000));
                         var PredheroX = Prediction.GetPrediction(heroX, 0.25f +
                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                         Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                          ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                         if (BadaoChecker.BadaoInTheCone(PredheroX.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40) &&
                             BadaoChecker.BadaoInTheCone(heroX.Position.To2D(), PredMinion.UnitPosition.To2D(), endpos - 100, 40 - 5))
                         {
                             a.Add(minion);
                         }
                     }
                     var targetQ = a.OrderBy(x => (float)(180f - BadaoChecker.BadaoAngleBetween(heroX.Position.To2D(), Prediction.GetPrediction(x, 0.25f + ObjectManager.Player.Position.To2D().Distance(BadaoMainVariables.Q.GetPrediction(x).UnitPosition.To2D() /
                                                                                                                                                                                                         1400 + Game.Ping / 1000)).UnitPosition.To2D(), ObjectManager.Player.Position.To2D())) / 40f + Math.Abs(x.Position.To2D().Distance(heroX.Position.To2D()) - 300) / 100f).FirstOrDefault();
                     if (targetQ.BadaoIsValidTarget())
                     {
                         BadaoMainVariables.Q.Cast(targetQ);
                     }
                 }
                 else if (!BadaoMissFortuneVariables.TapTarget.IsValidTarget() ||
                          heroX.NetworkId != BadaoMissFortuneVariables.TapTarget.NetworkId)
                 {
                     //40
                     foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != heroX.NetworkId &&
                                                                             x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                     {
                         var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                         var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                         var PredheroX = Prediction.GetPrediction(heroX, 0.25f +
                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                         Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                          ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                         if (BadaoChecker.BadaoInTheCone(PredheroX.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40) &&
                             BadaoChecker.BadaoInTheCone(heroX.Position.To2D(), PredHero.UnitPosition.To2D(), endpos - 100, 40 - 5) &&
                             !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                             BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                                1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                         PredHero.UnitPosition.To2D(), endpos, 40 + 5)))
                         {
                             BadaoMainVariables.Q.Cast(hero);
                             goto abc;
                         }
                     }
                     foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                     {
                         var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                         var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                 1400 + Game.Ping / 1000));
                         var PredheroX = Prediction.GetPrediction(heroX, 0.25f +
                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                         Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                          ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                         if (BadaoChecker.BadaoInTheCone(PredheroX.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40) &&
                             BadaoChecker.BadaoInTheCone(heroX.Position.To2D(), PredMinion.UnitPosition.To2D(), endpos - 100, 40 - 5) &&
                             !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                             x.NetworkId != minion.NetworkId &&
                                                                                             BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                                1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                         PredMinion.UnitPosition.To2D(), endpos, 40 + 5)))
                         {
                             BadaoMainVariables.Q.Cast(minion);
                             goto abc;
                         }
                     }
                     //20
                     foreach (AIHeroClient hero in HeroManager.Enemies.Where(x => x.NetworkId != heroX.NetworkId &&
                                                                             x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                     {
                         var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                         var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                         var PredheroX = Prediction.GetPrediction(heroX, 0.25f +
                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                         Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                          ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                         if (BadaoChecker.BadaoInTheCone(PredheroX.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 20) &&
                             BadaoChecker.BadaoInTheCone(heroX.Position.To2D(), PredHero.UnitPosition.To2D(), endpos - 100, 20 - 3) &&
                             !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                             BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                                1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                         PredHero.UnitPosition.To2D(), endpos, 20 + 3)))
                         {
                             BadaoMainVariables.Q.Cast(hero);
                             goto abc;
                         }
                     }
                     foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                     {
                         var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                         var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                 1400 + Game.Ping / 1000));
                         var PredheroX = Prediction.GetPrediction(heroX, 0.25f +
                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                         Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                          ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                         if (BadaoChecker.BadaoInTheCone(PredheroX.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 20) &&
                             BadaoChecker.BadaoInTheCone(heroX.Position.To2D(), PredMinion.UnitPosition.To2D(), endpos - 100, 20 - 3) &&
                             !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                             x.NetworkId != minion.NetworkId &&
                                                                                             BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                                  ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                                1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                         PredMinion.UnitPosition.To2D(), endpos, 20 + 3)))
                         {
                             BadaoMainVariables.Q.Cast(minion);
                         }
                     }
                     abc :;
                 }
             }
         }
     }
 }
コード例 #13
0
 private static void Game_OnUpdate(EventArgs args)
 {
     if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Mixed)
     {
         return;
     }
     if (Utils.GameTimeTickCount - BadaoMissFortuneVariables.Rcount <= 500)
     {
         return;
     }
     if (ObjectManager.Player.IsChannelingImportantSpell())
     {
         return;
     }
     if (!BadaoMissFortuneHelper.CanHarassMana())
     {
         return;
     }
     if (BadaoMissFortuneHelper.UseQ2Harass() && Orbwalking.CanMove(80))
     {
         // Q2 logic
         var targetQ = TargetSelector.GetTarget(BadaoMainVariables.Q.Range + 600, TargetSelector.DamageType.Physical);
         if (targetQ.BadaoIsValidTarget())
         {
             if (BadaoMissFortuneVariables.TapTarget.BadaoIsValidTarget() &&
                 targetQ.NetworkId == BadaoMissFortuneVariables.TapTarget.NetworkId)
             {
                 foreach (Obj_AI_Hero hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                        x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(hero) >= hero.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(minion) >= minion.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Hero hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                        x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
             }
             else if (!BadaoMissFortuneVariables.TapTarget.IsValidTarget() ||
                      targetQ.NetworkId != BadaoMissFortuneVariables.TapTarget.NetworkId)
             {
                 //40
                 foreach (Obj_AI_Hero hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                        x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(hero) >= hero.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredHero.UnitPosition.To2D(), endpos, 40)))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(minion) >= minion.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                         x.NetworkId != minion.NetworkId &&
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredMinion.UnitPosition.To2D(), endpos, 40)))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Hero hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                        x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 40) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredHero.UnitPosition.To2D(), endpos, 40)))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 40) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                         x.NetworkId != minion.NetworkId &&
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredMinion.UnitPosition.To2D(), endpos, 40)))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 //20
                 foreach (Obj_AI_Hero hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                        x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(hero) >= hero.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 20) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredHero.UnitPosition.To2D(), endpos, 20)))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoMissFortuneHelper.Q1Damage(minion) >= minion.Health &&
                         BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 20) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                         x.NetworkId != minion.NetworkId &&
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredMinion.UnitPosition.To2D(), endpos, 20)))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Hero hero in HeroManager.Enemies.Where(x => x.NetworkId != targetQ.NetworkId &&
                                                                        x.BadaoIsValidTarget(BadaoMainVariables.Q.Range)))
                 {
                     var Qpred    = BadaoMainVariables.Q.GetPrediction(hero);
                     var PredHero = Prediction.GetPrediction(hero, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                         1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredHero.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredHero.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredHero.UnitPosition.To2D(), endpos, 20) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 600).Any(x =>
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredHero.UnitPosition.To2D(), endpos, 20)))
                     {
                         if (BadaoMainVariables.Q.Cast(hero) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
                 foreach (Obj_AI_Minion minion in MinionManager.GetMinions(BadaoMainVariables.Q.Range))
                 {
                     var Qpred      = BadaoMainVariables.Q.GetPrediction(minion);
                     var PredMinion = Prediction.GetPrediction(minion, 0.25f + ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                             1400 + Game.Ping / 1000));
                     var PredTargetQ = Prediction.GetPrediction(targetQ, 0.25f +
                                                                ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D()) / 1400 + Game.Ping / 1000);
                     Vector2 endpos = Geometry.Extend(ObjectManager.Player.Position.To2D(), PredMinion.UnitPosition.To2D(),
                                                      ObjectManager.Player.Position.To2D().Distance(PredMinion.UnitPosition.To2D()) + 500);
                     if (BadaoChecker.BadaoInTheCone(PredTargetQ.UnitPosition.To2D(), PredMinion.UnitPosition.To2D(), endpos, 20) &&
                         !MinionManager.GetMinions(BadaoMainVariables.Q.Range + 500).Any(x =>
                                                                                         x.NetworkId != minion.NetworkId &&
                                                                                         BadaoChecker.BadaoInTheCone(Prediction.GetPrediction(x, 0.25f +
                                                                                                                                              ObjectManager.Player.Position.To2D().Distance(Qpred.UnitPosition.To2D() /
                                                                                                                                                                                            1400 + Game.Ping / 1000)).UnitPosition.To2D(),
                                                                                                                     PredMinion.UnitPosition.To2D(), endpos, 20)))
                     {
                         if (BadaoMainVariables.Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                         {
                             goto abc;
                         }
                     }
                 }
             }
         }
         abc :;
     }
     // Q1 logic
     if (BadaoMissFortuneHelper.UseQ1Harass() && Orbwalking.CanMove(80))
     {
         var targetQ1 = TargetSelector.GetTarget(BadaoMainVariables.Q.Range, TargetSelector.DamageType.Physical);
         if (targetQ1.BadaoIsValidTarget())
         {
             if (BadaoMainVariables.Q.Cast(targetQ1) == Spell.CastStates.SuccessfullyCasted)
             {
                 goto abc;
             }
         }
         abc :;
     }
     // E logic
     if (BadaoMissFortuneHelper.UseEHarass() && Orbwalking.CanMove(80))
     {
         var targetE = TargetSelector.GetTarget(BadaoMainVariables.E.Range + 200, TargetSelector.DamageType.Physical);
         if (targetE.BadaoIsValidTarget())
         {
             var PredTargetE = Prediction.GetPrediction(targetE, 0.25f);
             if (PredTargetE.UnitPosition.To2D().Distance(ObjectManager.Player.Position.To2D()) <= BadaoMainVariables.E.Range)
             {
                 if (BadaoMainVariables.E.Cast(PredTargetE.UnitPosition) == true)
                 {
                     goto xyz;
                 }
             }
         }
         xyz :;
     }
 }
コード例 #14
0
ファイル: BadaoYasuoHelper.cs プロジェクト: wade1990/PortAIO
 public static bool CanCastSpell()
 {
     return
         (!(HeroManager.Enemies.Any(x => x.IsValidTarget() && Orbwalking.InAutoAttackRange(x)) && (Orbwalking.CanAttack() || BadaoChecker.BadaoHasTiamat())) &&
          Orbwalking.CanMove(0));
 }
コード例 #15
0
ファイル: BadaoYasuoHelper.cs プロジェクト: wade1990/PortAIO
 public static bool CanCastSpell(AIHeroClient target)
 {
     return
         (!(target.IsValidTarget() && Orbwalking.InAutoAttackRange(target) && (Orbwalking.CanAttack() || BadaoChecker.BadaoHasTiamat())) &&
          Orbwalking.CanMove(0));
 }
コード例 #16
0
        private static void Game_OnUpdate(EventArgs args)
        {
            if (Environment.TickCount - RAutoTick >= 200 && BadaoJhinHelper.UseRAuto() &&
                BadaoMainVariables.R.Instance.SData.Name == "JhinRShot")
            {
                RAutoTick = Environment.TickCount;
                if (BadaoJhinHelper.AutoRTargetAuto())
                {
                    var target = TargetSelector.GetTarget(BadaoMainVariables.R.Range, TargetSelector.DamageType.Physical,
                                                          true, HeroManager.Enemies.Where(x => x.IsValid && !BadaoChecker.BadaoInTheCone(
                                                                                              x.Position.To2D(), ObjectManager.Player.Position.To2D(),
                                                                                              ObjectManager.Player.Position.To2D()
                                                                                              + ObjectManager.Player.Direction.To2D().Normalized().Perpendicular() * BadaoMainVariables.R.Range, 60)));
                    if (target.BadaoIsValidTarget())
                    {
                        RAutoTarget = target;
                    }
                }
                else if (BadaoJhinHelper.AutoRTargetNearMouse())
                {
                    var target = HeroManager.Enemies.Where(x => x.BadaoIsValidTarget(BadaoMainVariables.R.Range) &&
                                                           BadaoChecker.BadaoInTheCone(
                                                               x.Position.To2D(), ObjectManager.Player.Position.To2D(),
                                                               ObjectManager.Player.Position.To2D()
                                                               + ObjectManager.Player.Direction.To2D().Normalized().Perpendicular() * BadaoMainVariables.R.Range, 60))
                                 .OrderBy(x => x.Distance(Game.CursorPos)).FirstOrDefault();
                    if (target.BadaoIsValidTarget())
                    {
                        RAutoTarget = target;
                    }
                }
                else if (BadaoJhinHelper.AutoRTargetSelected())
                {
                    var target = TargetSelector.GetSelectedTarget();
                    if (target.BadaoIsValidTarget(BadaoMainVariables.R.Range) &&
                        BadaoChecker.BadaoInTheCone(
                            target.Position.To2D(), ObjectManager.Player.Position.To2D(),
                            ObjectManager.Player.Position.To2D()
                            + ObjectManager.Player.Direction.To2D().Normalized().Perpendicular() * BadaoMainVariables.R.Range, 60))
                    {
                        RAutoTarget = target;
                    }
                }
            }

            // auto ping

            if (BadaoJhinHelper.UseAutoPingKillable())
            {
                if (BadaoMainVariables.R.IsReady() && BadaoMainVariables.R.Instance.SData.Name != "JhinRShot")
                {
                    foreach (var hero in HeroManager.Enemies
                             .Where(x => x.BadaoIsValidTarget(BadaoMainVariables.R.Range) && BadaoJhinHelper.GetRdamage(x) >= x.Health))
                    {
                        BadaoJhinPing.Ping(hero.Position.To2D());
                        break;
                    }
                }
            }

            //JhinR
            if (BadaoJhinHelper.UseRAuto() && BadaoMainVariables.R.Instance.SData.Name == "JhinRShot")
            {
                if (BadaoJhinHelper.AutoRModeAuto())
                {
                    if (RAutoTarget.BadaoIsValidTarget())
                    {
                        BadaoMainVariables.R.Cast(RAutoTarget);
                    }
                }
            }
            if (BadaoMainVariables.R.Instance.SData.Name == "JhinRShot")
            {
                return;
            }
            if (BadaoJhinHelper.UseAutoKS())
            {
                foreach (var hero in HeroManager.Enemies.Where(x => x.BadaoIsValidTarget(BadaoMainVariables.W.Range)))
                {
                    if (BadaoMainVariables.W.IsReady() && BadaoJhinHelper.GetWDamage(hero) >= hero.Health)
                    {
                        var x = BadaoMainVariables.W.GetPrediction(hero).CastPosition;
                        var y = BadaoMainVariables.W.GetPrediction(hero).CollisionObjects;
                        if (!y.Any(z => z.IsChampion()) && ObjectManager.Player.Distance(x) <= BadaoMainVariables.W.Range)
                        {
                            if (BadaoMainVariables.W.Cast(x))
                            {
                                break;
                            }
                        }
                    }
                    if (BadaoMainVariables.Q.IsReady() && BadaoJhinHelper.GetQDamage(hero) >= hero.Health &&
                        hero.BadaoIsValidTarget(BadaoMainVariables.Q.Range))
                    {
                        BadaoMainVariables.Q.Cast(hero);
                    }
                }
            }
            if (!BadaoJhinHelper.CanAutoMana())
            {
                return;
            }
            if (BadaoJhinHelper.UseWAutoTrap())
            {
                foreach (var hero in HeroManager.Enemies.Where(x => x.BadaoIsValidTarget(BadaoMainVariables.W.Range)))
                {
                    var x = BadaoMainVariables.W.GetPrediction(hero).CastPosition;
                    var y = BadaoMainVariables.W.GetPrediction(hero).CollisionObjects;
                    if (!y.Any(z => z.IsChampion()) && ObjectManager.Player.Distance(x) <= BadaoMainVariables.W.Range &&
                        BadaoJhinPassive.JhinTrap.Any(i => i.Distance(x) <= 100))
                    {
                        if (BadaoMainVariables.W.Cast(x))
                        {
                            break;
                        }
                    }
                }
            }
            if (BadaoJhinHelper.UseWAuto())
            {
                foreach (var hero in HeroManager.Enemies.Where(x => x.BadaoIsValidTarget(BadaoMainVariables.W.Range)))
                {
                    if ((hero.HasBuffOfType(BuffType.Slow) || hero.HasBuffOfType(BuffType.Charm) || hero.HasBuffOfType(BuffType.Snare)) &&
                        BadaoJhinHelper.HasJhinPassive(hero))
                    {
                        var x = BadaoMainVariables.W.GetPrediction(hero).CastPosition;
                        var y = BadaoMainVariables.W.GetPrediction(hero).CollisionObjects;
                        if (!y.Any(z => z.IsChampion()) && ObjectManager.Player.Distance(x) <= BadaoMainVariables.W.Range)
                        {
                            if (BadaoMainVariables.W.Cast(x))
                            {
                                break;
                            }
                        }
                    }
                }
            }
        }