예제 #1
0
파일: _R.cs 프로젝트: Real263/EloBuddy
 private static void Game_OnTick(EventArgs args)
 {
     if (HasEndBuff)
     {
         if (!ModeManager.IsNone)
         {
             Champion.ForceQ2();
         }
     }
 }
예제 #2
0
파일: _Q.cs 프로젝트: Real263/EloBuddy
 private static void Game_OnTick(EventArgs args)
 {
     if (MissileIsValid)
     {
         SpellManager.Q1.SourcePosition        = _missile.Position;
         SpellManager.Q1.RangeCheckSource      = _missile.Position;
         SpellManager.Q1.AllowedCollisionCount = int.MaxValue;
         SpellManager.Q1.CastDelay             = 0;
     }
     else
     {
         SpellManager.Q1.SourcePosition        = Util.MyHero.Position;
         SpellManager.Q1.RangeCheckSource      = Util.MyHero.Position;
         SpellManager.Q1.AllowedCollisionCount = 0;
         SpellManager.Q1.CastDelay             = 250;
     }
     if (IsTryingToSmite)
     {
         if (IsWaitingMissile)//
         {
             var canSmite = false;
             if (Game.Time - _lastCastTime <= 0.25f)
             {
                 if ((SpellManager.Q1.Width + _smiteTarget.BoundingRadius).Pow() > Util.MyHero.Distance(_smiteTarget, true))
                 {
                     canSmite = true;
                 }
             }
             else if (WillHit(_smiteTarget))
             {
                 var pred          = SpellManager.Q1.GetPrediction(_smiteTarget);
                 var width         = _smiteTarget.BoundingRadius + SpellManager.Q1.Width;//
                 var timeToArriveQ = (_missile.Distance(pred.CastPosition) - width) / SpellManager.Q1.Speed - SpellManager.SmiteCastDelay - (Game.Ping / 2000f + 0.07f);
                 if (timeToArriveQ <= 0)
                 {
                     canSmite = true;
                 }
             }
             if (canSmite && _smiteTarget.IsInSmiteRange())
             {
                 Util.MyHero.Spellbook.CastSpell(SpellManager.Smite.Slot, _smiteTarget);
             }
         }
     }
     if (EndTime - Game.Time <= 0.25f)
     {
         if (!ModeManager.IsNone)
         {
             Champion.ForceQ2();
         }
     }
 }
예제 #3
0
 private static void Game_OnTick(EventArgs args)
 {
     if (MissileIsValid)
     {
         SpellManager.Q1.SourcePosition        = Missile.Position;
         SpellManager.Q1.RangeCheckSource      = Missile.Position;
         SpellManager.Q1.AllowedCollisionCount = int.MaxValue;
         SpellManager.Q1.CastDelay             = 0;
     }
     else
     {
         SpellManager.Q1.SourcePosition        = Util.myHero.Position;
         SpellManager.Q1.RangeCheckSource      = Util.myHero.Position;
         SpellManager.Q1.AllowedCollisionCount = 0;
         SpellManager.Q1.CastDelay             = 250;
     }
     if (IsTryingToSmite)
     {
         if (IsWaitingMissile)//
         {
             var CanSmite = false;
             if (Game.Time - LastCastTime <= 0.25f)
             {
                 if (SpellManager.Q1.Width + Smite_Target.BoundingRadius > Extensions.Distance(Util.myHero, Smite_Target))
                 {
                     CanSmite = true;
                 }
             }
             else if (WillHit(Smite_Target))
             {
                 var pred          = SpellManager.Q1.GetPrediction(Smite_Target);
                 var width         = Smite_Target.BoundingRadius + SpellManager.Q1.Width;//
                 var TimeToArriveQ = (Extensions.Distance(Missile, pred.CastPosition) - width) / SpellManager.Q1.Speed - SpellManager.Smite_Delay + Game.Ping / 2000 - 0.1f;
                 if (TimeToArriveQ <= 0)
                 {
                     CanSmite = true;
                 }
             }
             if (CanSmite)
             {
                 Util.myHero.Spellbook.CastSpell(SpellManager.Smite.Slot, Smite_Target);
             }
         }
     }
     if (EndTime - Game.Time < 0.25f)
     {
         if (!ModeManager.IsNone)
         {
             Champion.ForceQ2();
         }
     }
 }
예제 #4
0
 public static void CastQ2(Obj_AI_Base target)
 {
     if (SpellSlot.Q.IsReady() && !SpellSlot.Q.IsFirstSpell() && target.IsValidTarget(Q2.Range))
     {
         if (target.HaveQ())
         {
             Util.MyHero.Spellbook.CastSpell(SpellSlot.Q, true);
         }
         else if (_Q.EndTime - Game.Time < 0.5f)
         {
             Champion.ForceQ2(target);
         }
     }
 }
예제 #5
0
파일: _R.cs 프로젝트: Real263/EloBuddy
 private static void Obj_AI_Base_OnBuffLose(Obj_AI_Base sender, Obj_AI_BaseBuffLoseEventArgs args)
 {
     if (args.Buff.Caster.IsMe)
     {
         if (!sender.IsMe)
         {
             if (args.Buff.Name.ToLower().Contains("blindmonkrkick"))
             {
                 Target = null;
                 //Chat.Print("Speed: " + Extensions.Distance(StartPos, sender)/(args.Buff.EndTime - args.Buff.StartTime));
                 if (sender.HaveQ())
                 {
                     if (!ModeManager.IsNone)
                     {
                         Champion.ForceQ2(sender);
                     }
                 }
             }
         }
     }
 }
예제 #6
0
        public static void Execute()
        {
            var target = TargetSelector.Target;

            if (Orbwalker.CanMove && Game.Time - LastGapcloseAttempt > 0.25f)
            {
                if (target.IsValidTarget() && Extensions.Distance(Util.myHero, ExpectedEndPosition, true) > Extensions.Distance(target, ExpectedEndPosition, true) && IsReady)
                {
                    var gapclosepos = target.Position + (target.Position - ExpectedEndPosition).Normalized() * DistanceBetween;
                    Orbwalker.MoveTo(gapclosepos);
                }
                else
                {
                    Orbwalker.MoveTo(Util.mousePos);
                }
            }
            if (target.IsValidTarget())
            {
                if (IsReady)
                {
                    if (IsActive)
                    {
                        if (SpellManager.CanCastQ1)
                        {
                            var predtarget = SpellManager.Q1.GetPrediction(target);
                            if (Menu.GetCheckBoxValue("Object") && predtarget.CollisionObjects.Count() > 1)
                            {
                                foreach (Obj_AI_Base minion in EntityManager.MinionsAndMonsters.Get(EntityManager.MinionsAndMonsters.EntityType.Both, EntityManager.UnitTeam.Enemy, Util.myHero.Position, SpellManager.Q2.Range).Where(m => m.IsValidTarget() && SpellSlot.Q.GetSpellDamage(m) < Prediction.Health.GetPrediction(m, SpellManager.Q1.CastDelay + 1000 * (int)(Extensions.Distance(Util.myHero, m) / SpellManager.Q1.Speed)) && Extensions.Distance(Util.myHero, target, true) > Extensions.Distance(m, target, true) && Extensions.Distance(m, target, true) < Math.Pow(WardManager.WardRange - DistanceBetween - Offset, 2)).OrderBy(m => Extensions.Distance(target, m, true)))
                                {
                                    var pred = SpellManager.Q1.GetPrediction(minion);
                                    if (pred.HitChancePercent >= SpellSlot.Q.HitChancePercent())
                                    {
                                        SpellManager.Q1.Cast(pred.CastPosition);
                                    }
                                }
                                foreach (AIHeroClient enemy in EntityManager.Heroes.Enemies.Where(m => m.NetworkId != target.NetworkId && m.IsValidTarget(SpellManager.Q2.Range) && SpellSlot.Q.GetSpellDamage(m) < m.Health && Extensions.Distance(Util.myHero, target, true) > Extensions.Distance(m, target, true) && Extensions.Distance(m, target, true) < Math.Pow(WardManager.WardRange - DistanceBetween - Offset, 2)).OrderBy(m => Extensions.Distance(target, m, true)))
                                {
                                    SpellManager.CastQ1(enemy);
                                }
                            }
                            SpellManager.CastQ1(target);
                        }
                        if (Extensions.Distance(Util.myHero, target, true) > Math.Pow(WardManager.WardRange - DistanceBetween, 2))
                        {
                            if (_Q.HasQ2Buff)
                            {
                                if (_Q.IsValidTarget && Extensions.Distance(target, _Q.Target, true) < Math.Pow(WardManager.WardRange - DistanceBetween - Offset, 2))
                                {
                                    TargetSelector.ForcedTarget = target;
                                    Champion.ForceQ2(target);
                                }
                            }
                        }
                    }
                    if (Extensions.Distance(Util.myHero, target, true) < Math.Pow(WardManager.WardRange - DistanceBetween, 2) && !IsRecent)
                    {
                        switch (Priority)
                        {
                        case 0:
                            if (WardManager.CanWardJump)
                            {
                                WardJump(target);
                            }
                            else if (SpellManager.Flash_IsReady)
                            {
                                Flash(target);
                            }
                            break;

                        case 1:
                            if (SpellManager.Flash_IsReady)
                            {
                                Flash(target);
                            }
                            else if (WardManager.CanWardJump)
                            {
                                WardJump(target);
                            }
                            break;
                        }
                    }
                    CastR(target);
                }
                else
                {
                    NormalCombo.Execute();
                }
            }
        }