Esempio n. 1
0
        private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe || args.Slot != SpellSlot.R)
            {
                return;
            }
            BadaoMissFortuneVariables.Rcount = Utils.GameTimeTickCount;
            Vector2 x1          = new Vector2();
            Vector2 x2          = new Vector2();
            Vector2 CenterPolar = new Vector2();
            Vector2 CenterEnd   = new Vector2();

            BadaoMissFortuneHelper.RPrediction(args.End.To2D(), ObjectManager.Player,
                                               out CenterPolar, out CenterEnd, out x1, out x2);
            BadaoMissFortuneVariables.CenterPolar = CenterPolar;
            BadaoMissFortuneVariables.CenterEnd   = CenterEnd;
        }
Esempio n. 2
0
 private static void Orbwalking_OnAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (!unit.IsMe || BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
     {
         return;
     }
     if (Utils.GameTimeTickCount - BadaoMissFortuneVariables.Rcount <= 500)
     {
         return;
     }
     if (ObjectManager.Player.IsChannelingImportantSpell())
     {
         return;
     }
     if (BadaoMissFortuneHelper.UseWCombo() && target.BadaoIsValidTarget() && target is AIHeroClient)
     {
         BadaoMainVariables.W.Cast();
     }
 }
 private static void Orbwalking_OnAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (!unit.IsMe || BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear ||
         !(target is Obj_AI_Minion) || target.Team == GameObjectTeam.Neutral)
     {
         return;
     }
     if (Utils.GameTimeTickCount - BadaoMissFortuneVariables.Rcount <= 500)
     {
         return;
     }
     if (ObjectManager.Player.IsChannelingImportantSpell())
     {
         return;
     }
     if (!BadaoMissFortuneHelper.CanLaneClearMana())
     {
         return;
     }
     if (BadaoMissFortuneHelper.UseWLaneClear() && target.BadaoIsValidTarget())
     {
         BadaoMainVariables.W.Cast();
     }
 }
 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);
         }
     }
 }
Esempio n. 5
0
 private static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
     {
         return;
     }
     if (Utils.GameTimeTickCount - BadaoMissFortuneVariables.Rcount <= 500)
     {
         return;
     }
     if (BadaoMissFortuneHelper.UseRCombo() && unit.IsMe &&
         target.BadaoIsValidTarget() &&
         target is AIHeroClient && BadaoMissFortuneHelper.Rdamepior() &&
         target.Health <= 0.6f * BadaoMissFortuneHelper.RDamage(target as Obj_AI_Base))
     {
         float   reactiontime = 0.5f;
         var     PredTarget   = Prediction.GetPrediction(target 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(), target as Obj_AI_Base,
                                            out CenterPolar, out CenterEnd, out x1, out x2);
         float        dis1   = PredTarget.UnitPosition.To2D().Distance(x1);
         float        dis2   = PredTarget.UnitPosition.To2D().Distance(x2);
         AIHeroClient Target = target as AIHeroClient;
         if (PredTarget.UnitPosition.To2D().Distance(ObjectManager.Player.Position.To2D()) >= 250 &&
             (Target.HasBuffOfType(BuffType.Stun) || Target.HasBuffOfType(BuffType.Snare) ||
              (dis1 >= dis2 && (dis2 / Target.MoveSpeed >= 0.6f * 3f - reactiontime ||
                                BadaoMissFortuneHelper.RDamage(Target) * (dis2 / Target.MoveSpeed + reactiontime) / 3f >= Target.Health
                                - BadaoMissFortuneHelper.GetAADamage(Target)))))
         {
             BadaoMainVariables.R.Cast(PredTarget.UnitPosition.To2D());
             BadaoMissFortuneVariables.TargetRChanneling = target as AIHeroClient;
             BadaoMissFortuneVariables.CenterPolar       = CenterPolar;
             BadaoMissFortuneVariables.CenterEnd         = CenterEnd;
             BadaoMissFortuneVariables.Rcount            = Utils.GameTimeTickCount;
         }
         else if (PredTarget.UnitPosition.To2D().Distance(ObjectManager.Player.Position.To2D()) >= 250 &&
                  (Target.HasBuffOfType(BuffType.Stun) || Target.HasBuffOfType(BuffType.Snare) ||
                   (dis2 >= dis1 && (dis1 / Target.MoveSpeed >= 0.6f * 3f - reactiontime ||
                                     BadaoMissFortuneHelper.RDamage(Target) * (dis1 / Target.MoveSpeed + reactiontime) / 3f >= Target.Health
                                     - BadaoMissFortuneHelper.GetAADamage(Target)))))
         {
             BadaoMainVariables.R.Cast(PredTarget.UnitPosition.To2D());
             BadaoMissFortuneVariables.TargetRChanneling = target as AIHeroClient;
             BadaoMissFortuneVariables.CenterPolar       = CenterPolar;
             BadaoMissFortuneVariables.CenterEnd         = CenterEnd;
             BadaoMissFortuneVariables.Rcount            = Utils.GameTimeTickCount;
         }
     }
     if (BadaoMissFortuneHelper.UseRComboWise() && unit.IsMe &&
         target.BadaoIsValidTarget() &&
         target is AIHeroClient && BadaoMissFortuneHelper.Rdamepior() &&
         target.Health <= 0.8f * BadaoMissFortuneHelper.RDamage(target as Obj_AI_Base))
     {
         float   reactiontime = 1f;
         var     PredTarget   = Prediction.GetPrediction(target 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(), target as Obj_AI_Base,
                                            out CenterPolar, out CenterEnd, out x1, out x2);
         float        dis1   = PredTarget.UnitPosition.To2D().Distance(x1);
         float        dis2   = PredTarget.UnitPosition.To2D().Distance(x2);
         AIHeroClient Target = target as AIHeroClient;
         if (PredTarget.UnitPosition.To2D().Distance(ObjectManager.Player.Position.To2D()) >= 250 &&
             (Target.HasBuffOfType(BuffType.Stun) || Target.HasBuffOfType(BuffType.Snare) ||
              (dis1 >= dis2 && (dis2 / Target.MoveSpeed >= 0.8f * 3f - reactiontime ||
                                BadaoMissFortuneHelper.RDamage(Target) * (dis2 / Target.MoveSpeed + reactiontime) / 3f >= Target.Health
                                - BadaoMissFortuneHelper.GetAADamage(Target)))))
         {
             BadaoMainVariables.R.Cast(PredTarget.UnitPosition.To2D());
             BadaoMissFortuneVariables.TargetRChanneling = target as AIHeroClient;
             BadaoMissFortuneVariables.CenterPolar       = CenterPolar;
             BadaoMissFortuneVariables.CenterEnd         = CenterEnd;
             BadaoMissFortuneVariables.Rcount            = Utils.GameTimeTickCount;
         }
         else if (PredTarget.UnitPosition.To2D().Distance(ObjectManager.Player.Position.To2D()) >= 250 &&
                  (Target.HasBuffOfType(BuffType.Stun) || Target.HasBuffOfType(BuffType.Snare) ||
                   (dis2 >= dis1 && (dis1 / Target.MoveSpeed >= 0.8f * 3f - reactiontime ||
                                     BadaoMissFortuneHelper.RDamage(Target) * (dis1 / Target.MoveSpeed + reactiontime) / 3f >= Target.Health
                                     - BadaoMissFortuneHelper.GetAADamage(Target)))))
         {
             BadaoMainVariables.R.Cast(PredTarget.UnitPosition.To2D());
             BadaoMissFortuneVariables.TargetRChanneling = target as AIHeroClient;
             BadaoMissFortuneVariables.CenterPolar       = CenterPolar;
             BadaoMissFortuneVariables.CenterEnd         = CenterEnd;
             BadaoMissFortuneVariables.Rcount            = Utils.GameTimeTickCount;
         }
     }
 }
Esempio n. 6
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;
                 }
             }
         }
     }
 }
Esempio n. 7
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 :;
                 }
             }
         }
     }
 }
 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 :;
     }
 }