Esempio n. 1
0
        static float getComboDamage2(Obj_AI_Base enemy)
        {
            if (enemy != null)
            {
                float damage = 0;

                if (Q.IsReady())
                {
                    damage += Q.GetDamage2(enemy) + (float)Player.GetAutoAttackDamage2(enemy, true);
                }

                if (E.IsReady())
                {
                    damage += E.GetDamage2(enemy);
                }

                if (W.IsReady())
                {
                    damage += (float)Player.GetAutoAttackDamage2(enemy, true);
                }

                if (!Player.IsWindingUp)
                {
                    damage += (float)Player.GetAutoAttackDamage2(enemy, true);
                }

                return(damage);
            }
            return(0);
        }
Esempio n. 2
0
        private static float getComboDamage(Obj_AI_Base enemy)
        {
            if (enemy != null)
            {
                float damage = 0;
                if (Q.IsReady())
                {
                    damage += Q.GetDamage2(enemy) + (float)Player.GetAutoAttackDamage2(enemy);
                }
                if (W.IsReady())
                {
                    damage += W.GetDamage2(enemy) * 2;
                }
                if (R.IsReady())
                {
                    damage += R.GetDamage2(enemy) * 2;
                }
                if (HasItem())
                {
                    damage += (float)Player.GetAutoAttackDamage2(enemy) * 0.7f;
                }

                return(damage);
            }
            return(0);
        }
Esempio n. 3
0
 private bool ShouldWait()
 {
     return
         (ObjectManager.Get <Obj_AI_Minion>()
          .Any(
              minion =>
              minion.IsValidTarget() && minion.Team != GameObjectTeam.Neutral &&
              InAutoAttackRange(minion) &&
              HealthPrediction.LaneClearHealthPrediction(
                  minion, (int)((Player.AttackDelay * 1000) * LaneClearWaitTimeMod), FarmDelay) <=
              Player.GetAutoAttackDamage2(minion)));
 }
Esempio n. 4
0
        static float getComboDamage2(Obj_AI_Base enemy)
        {
            if (enemy != null)
            {
                float damage = 0;
                if (E.IsReady())
                {
                    damage = damage + (float)Player.GetAutoAttackDamage2(enemy) * 2;
                }
                if (W.IsReady())
                {
                    damage = damage + W.GetDamage2(enemy) + (float)Player.GetAutoAttackDamage2(enemy);
                }
                if (Q.IsReady())
                {
                    damage = damage + Q.GetDamage2(enemy) + (float)Player.GetAutoAttackDamage2(enemy);
                }
                damage = damage + (float)Player.GetAutoAttackDamage2(enemy);

                return(damage);
            }
            return(0);
        }
Esempio n. 5
0
        static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            var spellName = args.SData.Name;

            if (!sender.IsMe || !Orbwalking.IsAutoAttack(spellName))
            {
                return;
            }
            QTarget = (Obj_AI_Base)args.Target;

            if (args.Target is Obj_AI_Minion)
            {
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
                {
                    var Mobs = MinionManager.GetMinions(120 + 70 + Player.BoundingRadius, MinionTypes.All,
                                                        MinionTeam.Neutral, MinionOrderTypes.MaxHealth);
                    if (Mobs.Count != 0)
                    {
                        if (Q.IsReady())
                        {
                            UseCastItem(300);
                            forcecastQ(Mobs[0]);
                        }
                        else if (W.IsReady())
                        {
                            UseCastItem(300);
                            Utility.DelayAction.Add(1, () => UseW(500));
                        }
                        else if (E.IsReady())
                        {
                            E.Cast(Mobs[0].Position);
                        }
                    }
                }
            }
            if (args.Target is Obj_AI_Turret || args.Target is Obj_Barracks || args.Target is Obj_BarracksDampener || args.Target is Obj_Building)
            {
                if (args.Target.IsValid && args.Target != null && Q.IsReady() && LaneQ && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
                {
                    forcecastQ((Obj_AI_Base)args.Target);
                }
            }
            if (args.Target is Obj_AI_Hero)
            {
                var target = (Obj_AI_Hero)args.Target;
                if (KillstealR && R.IsReady() && R.Instance.Name == IsSecondR)
                {
                    if (target.Health < (Rdame(target, target.Health) + Player.GetAutoAttackDamage2(target)) && target.Health > Player.GetAutoAttackDamage2(target))
                    {
                        R.Cast(target.Position);
                    }
                }
                if (KillstealW && W.IsReady())
                {
                    if (target.Health < (W.GetDamage2(target) + Player.GetAutoAttackDamage2(target)) && target.Health > Player.GetAutoAttackDamage2(target))
                    {
                        W.Cast();
                    }
                }
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    if (Q.IsReady())
                    {
                        UseCastItem(200);
                        forcecastQ(target);
                    }
                    else if (W.IsReady() && InWRange(target))
                    {
                        UseCastItem(200);
                        Utility.DelayAction.Add(1, () => UseW(500));
                    }
                    else if (E.IsReady() && !Orbwalking.InAutoAttackRange(target))
                    {
                        E.Cast(target.Position);
                    }
                }
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.FastHarass)
                {
                    if (W.IsReady() && InWRange(target))
                    {
                        UseCastItem(200);
                        Utility.DelayAction.Add(1, () => UseW(500));
                        Utility.DelayAction.Add(2, () => forcecastQ(target));
                    }
                    else if (Q.IsReady())
                    {
                        UseCastItem(200);
                        forcecastQ(QTarget);
                    }
                    else if (E.IsReady() && !Orbwalking.InAutoAttackRange(target) && !InWRange(target))
                    {
                        E.Cast(target.Position);
                    }
                }

                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
                {
                    if (QStack == 2 && Q.IsReady())
                    {
                        UseCastItem(200);
                        forcecastQ(QTarget);
                    }
                }

                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Burst)
                {
                    if (R.IsReady() && R.Instance.Name == IsSecondR)
                    {
                        UseCastItem(500);
                        UseR(500);
                    }
                    else if (Q.IsReady())
                    {
                        UseCastItem(200);
                        forcecastQ(QTarget);
                    }
                }
            }
        }