Esempio n. 1
0
        private static void LogicR()
        {
            if (Range && getCheckBoxItem(rMenu, "autoRm"))
            {
                var t = TargetSelector.GetTarget(Q2.Range + 200, DamageType.Physical);
                if (Program.Combo && Qcd > 0.5 && t.LSIsValidTarget() &&
                    ((!W.IsReady() && !t.IsMelee) ||
                     (!W.IsReady() && !Player.HasBuff("jaycehyperchargevfx") && t.IsMelee)))
                {
                    if (Q2cd < 0.5 && t.CountEnemiesInRange(800) < 3)
                    {
                        R.Cast();
                    }
                    else if (Player.CountEnemiesInRange(300) > 0 && E2cd < 0.5)
                    {
                        R.Cast();
                    }
                }
            }
            else if (Program.Combo && getCheckBoxItem(rMenu, "autoR"))
            {
                var t = TargetSelector.GetTarget(1400, DamageType.Physical);
                if (t.LSIsValidTarget() && !t.LSIsValidTarget(Q2.Range + 200) && Q.GetDamage(t) * 1.4 > t.Health && Qcd < 0.5 &&
                    Ecd < 0.5)
                {
                    R.Cast();
                }

                if (!Q.IsReady() && (!E.IsReady() || getCheckBoxItem(eMenu, "autoEks")))
                {
                    R.Cast();
                }
            }
        }
Esempio n. 2
0
 private void LogicR()
 {
     if (Player.CountEnemiesInRange(Config.Item("Renemy", true).GetValue <Slider>().Value) == 0)
     {
         var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
         if (t.IsValidTargetLS() && t.Distance(Player.Position) > Q.Range && t.CountAlliesInRange(Config.Item("RenemyA", true).GetValue <Slider>().Value) == 0)
         {
             if (Q.GetDamage(t) + W.GetDamage(t) + Player.GetAutoAttackDamage(t) * 3 > t.Health && t.CountEnemiesInRange(1000) < 3)
             {
                 var rPos = R.GetPrediction(t).CastPosition;
                 if (Config.Item("turetR", true).GetValue <bool>())
                 {
                     if (!rPos.UnderTurret(true))
                     {
                         R.Cast(rPos);
                     }
                 }
                 else
                 {
                     R.Cast(rPos);
                 }
             }
         }
     }
 }
Esempio n. 3
0
        private static void LogicQ()
        {
            if (Program.Combo || Program.Farm)
            {
                foreach (
                    var enemy in
                    Program.Enemies.Where(
                        enemy => enemy.IsValidTarget(Q2.Range) && enemy.HasBuff("urgotcorrosivedebuff")))
                {
                    if (W.IsReady() && (Player.Mana > WMANA + QMANA * 4 || Q.GetDamage(enemy) * 3 > enemy.Health) &&
                        getCheckBoxItem(w, "autoW"))
                    {
                        W.Cast();
                        Program.debug("W");
                    }
                    Program.debug("E");
                    Q2.Cast(enemy.ServerPosition);
                    return;
                }
            }

            var t = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

            if (Player.CountEnemiesInRange(Q.Range - 200) > 0)
            {
                t = TargetSelector.GetTarget(Q.Range - 200, DamageType.Physical);
            }

            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    foreach (
                        var enemy in
                        Program.Enemies.Where(
                            enemy =>
                            enemy.IsValidTarget(Q.Range) && getCheckBoxItem(harass, "harras" + t.NetworkId)))
                    {
                        Program.CastSpell(Q, enemy);
                    }
                }
                else if (OktwCommon.GetKsDamage(t, Q) * 2 > t.Health)
                {
                    Program.CastSpell(Q, t);
                }
                if (!Program.None && Player.Mana > RMANA + QMANA)
                {
                    foreach (
                        var enemy in
                        Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy, true);
                    }
                }
            }
        }
Esempio n. 4
0
        private void Clear()
        {
            float perc = config.Item("minmana", true).GetValue <Slider>().Value / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            if (Q.IsReady() && config.Item("useqLC", true).GetValue <bool>())
            {
                var minions =
                    MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly)
                    .Where(
                        m =>
                        Q.CanCast(m) &&
                        (Q.GetDamage(m) > m.Health || m.Health > player.GetAutoAttackDamage(m) * 5))
                    .OrderByDescending(m => Q.GetDamage(m) > m.Health)
                    .ThenBy(m => m.Distance(player));
                foreach (var mini in minions)
                {
                    if (!EloBuddy.SDK.Orbwalker.CanAutoAttack && mini.Distance(player) <= Orbwalking.GetRealAutoAttackRange(mini))
                    {
                        Q.CastOnUnit(mini);
                        return;
                    }
                    if (Orbwalking.CanMove(100) && !player.Spellbook.IsAutoAttacking &&
                        mini.Distance(player) > Orbwalking.GetRealAutoAttackRange(mini))
                    {
                        Q.CastOnUnit(mini);
                        return;
                    }
                }
            }
        }
Esempio n. 5
0
        private static void LastHit()
        {
            var minions = MinionManager.GetMinions(Player.Position, _q.Range, MinionTypes.All, MinionTeam.Enemy,
                                                   MinionOrderTypes.MaxHealth);

            var mana        = GetValue("minmanal");
            var useqlasthit = GetBool("qlasthit", typeof(bool));
            var usewlasthit = GetBool("wlasthit", typeof(bool));

            if (Player.ManaPercent < mana)
            {
                return;
            }

            foreach (var minion in minions)
            {
                if (minion.Health <= _q.GetDamage(minion) && useqlasthit && _q.IsReady())
                {
                    _q.Cast(minion);
                }
                if (minion.Health <= _w.GetDamage(minion) && usewlasthit && _w.IsReady() && minion.Distance(Player) <= _w.Range)
                {
                    _w.Cast(minion);
                }
            }
        }
Esempio n. 6
0
        private static void LastHit()
        {
            var minions = MinionManager.GetMinions(Player.Position, _q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth);

            var mana        = getSliderItem(MenuConfig.lasthitMenu, "minmanal");
            var useqlasthit = getCheckBoxItem(MenuConfig.lasthitMenu, "qlasthit");
            var usewlasthit = getCheckBoxItem(MenuConfig.lasthitMenu, "wlasthit");

            if (Player.ManaPercent < mana)
            {
                return;
            }

            foreach (var minion in minions)
            {
                if (minion.Health <= _q.GetDamage(minion) && useqlasthit && _q.IsReady())
                {
                    _q.Cast(minion);
                }
                if (minion.Health <= _w.GetDamage(minion) && usewlasthit && _w.IsReady() && minion.LSDistance(Player) <= _w.Range)
                {
                    _w.Cast(minion);
                }
            }
        }
Esempio n. 7
0
        private static void Combo()
        {
            var useQ  = getCheckBoxItem(comboMenu, "UseQC");
            var useW  = getCheckBoxItem(comboMenu, "UseWC");
            var useR  = getCheckBoxItem(comboMenu, "UseRC");
            var autoR = getCheckBoxItem(comboMenu, "UseRE");

            if (getCheckBoxItem(comboMenu, "smitecombo"))
            {
                Smiteontarget();
            }

            if (useQ && _q.IsReady())
            {
                var t = TargetSelector.GetTarget(_q.Range, DamageType.Physical);
                if (t.IsValidTarget(_q.Range - 70))
                {
                    _q.CastIfHitchanceEquals(t, HitChance.High, true);
                }
            }

            if (useW && _w.IsReady())
            {
                var t = TargetSelector.GetTarget(_w.Range, DamageType.Magical);
                if (t.IsValidTarget(_w.Range))
                {
                    _w.CastIfHitchanceEquals(t, HitChance.High, true);
                }
            }

            if (_r.IsReady() && useR)
            {
                var t = TargetSelector.GetTarget(_r.Range, DamageType.Physical);
                if (t.IsInvulnerable)
                {
                    return;
                }
                if (_q.IsReady() && t.IsValidTarget(_q.Range) &&
                    (_q.GetDamage(t) > t.Health || _player.GetAutoAttackDamage(t, true) > t.Health))
                {
                    return;
                }
                if (_r.GetDamage(t) - 80 > t.Health && t.IsValidTarget(_r.Range))
                {
                    _r.CastIfHitchanceEquals(t, HitChance.High, true);
                }

                if (autoR)
                {
                    var fuckr = _r.GetPrediction(t, true);
                    if (fuckr.AoeTargetsHitCount >= getSliderItem(comboMenu, "MinTargets") &&
                        t.IsValidTarget(_r.Range))
                    {
                        _r.CastIfHitchanceEquals(t, HitChance.High, true);
                    }
                }
            }

            UseItemes();
        }
Esempio n. 8
0
 static float getComboDamage(Obj_AI_Base enemy)
 {
     try
     {
         if (enemy != null)
         {
             float damage = 0;
             if (_Q.IsReady())
             {
                 damage += _Q.GetDamage(enemy);
             }
             if (_R.IsReady())
             {
                 damage += _R.GetDamage(enemy);
             }
             if (!Player.Spellbook.IsAutoAttacking)
             {
                 damage += (float)Player.GetAutoAttackDamage(enemy, true);
             }
             return(damage);
         }
         return(0);
     }
     catch (Exception)
     {
         if (NowTime() > ErrorTime)
         {
             Chat.Print(ChampName + " in FreshBooster isn't Load. Error Code 04");
             ErrorTime = TickCount(10000);
         }
         return(0);
     }
 }
Esempio n. 9
0
 private static void LogicR()
 {
     if (Player.CountEnemiesInRange(getSliderItem(rMenu, "Renemy")) == 0)
     {
         var t = TargetSelector.GetTarget(R.Range, DamageType.Magical);
         if (t.IsValidTarget() && t.Distance(Player.Position) > Q.Range && t.CountAlliesInRange(getSliderItem(rMenu, "RenemyA")) == 0)
         {
             if (Q.GetDamage(t) + W.GetDamage(t) + Player.GetAutoAttackDamage(t) * 3 > t.Health && t.CountEnemiesInRange(1000) < 3)
             {
                 var rPos = R.GetPrediction(t).CastPosition;
                 if (getCheckBoxItem(rMenu, "turetR"))
                 {
                     if (!rPos.UnderTurret(true))
                     {
                         R.Cast(rPos);
                     }
                 }
                 else
                 {
                     R.Cast(rPos);
                 }
             }
         }
     }
 }
Esempio n. 10
0
        private static void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (t.LSIsValidTarget())
            {
                if (t.Health < OktwCommon.GetKsDamage(t, Q) + E.GetDamage(t))
                {
                    Q.Cast(t);
                }
                if (!getCheckBoxItem(q, "Quse" + t.NetworkId))
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + EMANA)
                {
                    Q.Cast(t);
                }
                else if (Program.Farm && getCheckBoxItem(q, "harrasQ") && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Q.Cast(t);
                }
                else if ((Program.Combo || Program.Farm))
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
        }
Esempio n. 11
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                var qDmg = Q.GetDamage(t);
                var wDmg = OktwCommon.GetKsDamage(t, W) + BonusDmg(t);
                if (wDmg > t.Health)
                {
                    W.Cast(Player.Position.Extend(t.Position, 450));
                }
                else if (wDmg + qDmg > t.Health && Player.Mana > QMANA + EMANA)
                {
                    W.Cast(Player.Position.Extend(t.Position, 450));
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA)
                {
                    W.Cast(Player.Position.Extend(t.Position, 450));
                }
                else if (Program.Farm && Config.Item("harrasW", true).GetValue <bool>() && !Player.UnderTurret(true) && Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    W.Cast(Player.Position.Extend(t.Position, 450));
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmW", true).GetValue <bool>())
            {
                var allMinions = Cache.GetMinions(Player.ServerPosition, W.Range);
                var farmPos    = W.GetCircularFarmLocation(allMinions, W.Width);
                if (farmPos.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    W.Cast(farmPos.Position);
                }
            }
        }
Esempio n. 12
0
        /// <summary>
        ///     Kill Steal
        /// </summary>
        #region Kill Steal
        private static void KillSteal()
        {
            var ks   = GlobalManager.getCheckBoxItem(ksMenu, "killstealMenu.ks");
            var useq = GlobalManager.getCheckBoxItem(ksMenu, "killstealMenu.q");
            var usew = GlobalManager.getCheckBoxItem(ksMenu, "killstealMenu.w");
            var user = GlobalManager.getCheckBoxItem(ksMenu, "killstealMenu.r");

            if (!ks)
            {
                return;
            }

            var target = TargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (target == null)
            {
                return;
            }

            if (useq && target.LSIsValidTarget(Q.Range) && Q.IsReady() && Q.GetDamage(target) >= target.Health)
            {
                Q.Cast(target);
            }

            if (usew && target.LSIsValidTarget(W.Range) && W.IsReady() && W.GetDamage(target) >= target.Health)
            {
                W.Cast(target);
            }

            if (user && target.LSIsValidTarget(R.Range) && R.IsReady() && R.GetDamage(target) >= target.Health)
            {
                Q.Cast(target);
            }
        }
Esempio n. 13
0
        public static Obj_AI_Base GetLineCollisionMinions(this LeagueSharp.Common.Spell spell, int minionCount = 1)
        {
            List <Obj_AI_Base> minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, spell.Range);

            foreach (var minion in minions.Where(x => x.Health <= spell.GetDamage(x)))
            {
                int killableMinionCount = 0;
                foreach (
                    Obj_AI_Base colminion in
                    spell.GetCollisionMinions(ObjectManager.Player,
                                              ObjectManager.Player.ServerPosition.LSExtend(minion.ServerPosition, spell.Range)))
                {
                    if (colminion.Health <= spell.GetDamage(colminion))
                    {
                        killableMinionCount++;
                    }
                    else
                    {
                        break;
                    }
                }

                if (killableMinionCount >= minionCount)
                {
                    return(minion);
                }
            }
            return(null);
        }
Esempio n. 14
0
        private void LogicR()
        {
            if (Range && Config.Item("autoRm", true).GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(Q2.Range + 200, TargetSelector.DamageType.Physical);
                if (Program.Combo && Qcd > 0.5 && t.IsValidTargetLS() && ((!W.IsReady() && !t.IsMelee) || (!W.IsReady() && !Player.HasBuff("jaycehyperchargevfx") && t.IsMelee)))
                {
                    if (Q2cd < 0.5 && t.CountEnemiesInRange(800) < 3)
                    {
                        R.Cast();
                    }
                    else if (Player.CountEnemiesInRange(300) > 0 && E2cd < 0.5)
                    {
                        R.Cast();
                    }
                }
            }
            else if (Program.Combo && Config.Item("autoR", true).GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(1400, TargetSelector.DamageType.Physical);
                if (t.IsValidTargetLS() && !t.IsValidTargetLS(Q2.Range + 200) && Q.GetDamage(t) * 1.4 > t.Health && Qcd < 0.5 && Ecd < 0.5)
                {
                    R.Cast();
                }

                if (!Q.IsReady() && (!E.IsReady() || Config.Item("autoEks", true).GetValue <bool>()))
                {
                    R.Cast();
                }
            }
        }
Esempio n. 15
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                if (t.Health < OktwCommon.GetKsDamage(t, Q) + E.GetDamage(t))
                {
                    Q.Cast(t);
                }
                if (!Config.Item("Quse" + t.ChampionName, true).GetValue <bool>())
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + EMANA)
                {
                    Q.Cast(t);
                }
                else if (Program.Farm && Config.Item("harrasQ", true).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Q.Cast(t);
                }
                else if ((Program.Combo || Program.Farm))
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
        }
Esempio n. 16
0
 private void Clear()
 {
     if (player.Spellbook.IsAutoAttacking)
     {
         return;
     }
     if (config.Item("useqLC", true).GetValue <bool>() && Q.IsReady() && !player.IsDashing())
     {
         var minis = MinionManager.GetMinions(player.AttackRange + 50, MinionTypes.All, MinionTeam.NotAlly);
         if (Environment.Minion.countMinionsInrange(player.Position, Q.Range) >=
             config.Item("minimumMini", true).GetValue <Slider>().Value&&
             minis.Count(m => m.Health - Q.GetDamage(m) < 50 && m.Health - Q.GetDamage(m) > 0) == 0 &&
             (!Environment.Minion.KillableMinion(player.AttackRange) || !EloBuddy.SDK.Orbwalker.CanAutoAttack))
         {
             Q.Cast();
             return;
         }
     }
     if (config.Item("useeLC", true).GetValue <bool>() && E.IsReady())
     {
         var minionsForE = MinionManager.GetMinions(
             ObjectManager.Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly);
         MinionManager.FarmLocation bestPosition = E.GetLineFarmLocation(minionsForE);
         if (bestPosition.Position.IsValid() &&
             !player.Position.Extend(bestPosition.Position.To3D(), E.Range).To3DWorld().UnderTurret(true) &&
             !bestPosition.Position.IsWall())
         {
             if (bestPosition.MinionsHit >= 2)
             {
                 E.Cast(bestPosition.Position);
             }
         }
     }
 }
Esempio n. 17
0
        private void LogicR()
        {
            if (Config.Item("autoR", true).GetValue <bool>())
            {
                if (Program.LagFree(4) && Program.Combo && RMissile != null && RMissile.IsValid)
                {
                    if (RMissile.Position.CountEnemiesInRange(R.Range) >= Config.Item("rCount", true).GetValue <Slider>().Value&& Config.Item("rCount", true).GetValue <Slider>().Value > 0)
                    {
                        R.Cast();
                    }

                    foreach (var t in HeroManager.Enemies.Where(t => t.IsValidTarget() && RMissile.Position.Distance(LeagueSharp.Common.Prediction.GetPrediction(t, R.Delay).CastPosition) < R.Range && RMissile.Position.Distance(t.ServerPosition) < R.Range))
                    {
                        var comboDMG = OktwCommon.GetKsDamage(t, R);

                        if (Q.IsReady())
                        {
                            comboDMG += Q.GetDamage(t);
                        }

                        if (E.IsReady())
                        {
                            comboDMG += E.GetDamage(t);
                        }

                        if (W.IsReady())
                        {
                            comboDMG += W.GetDamage(t);
                        }

                        if (t.Health < comboDMG && OktwCommon.ValidUlt(t))
                        {
                            R.Cast();
                        }

                        Program.debug("ks");
                    }
                }

                double dmg    = OktwCommon.GetIncomingDamage(Player, 1);
                var    enemys = Player.CountEnemiesInRange(800);

                if (dmg > 0 || enemys > 0)
                {
                    if (dmg > Player.Level * 50)
                    {
                        R.Cast();
                    }
                    else if (Player.Health - dmg < enemys * Player.Level * 20)
                    {
                        R.Cast();
                    }
                    else if (Player.Health - dmg < Player.Level * 10)
                    {
                        R.Cast();
                    }
                }
            }
        }
Esempio n. 18
0
 public static double basicdmg(Obj_AI_Base target)
 {
     if (target != null)
     {
         double dmg         = 0;
         double passivenhan = 0;
         if (Player.Level >= 18)
         {
             passivenhan = 0.5;
         }
         else if (Player.Level >= 15)
         {
             passivenhan = 0.45;
         }
         else if (Player.Level >= 12)
         {
             passivenhan = 0.4;
         }
         else if (Player.Level >= 9)
         {
             passivenhan = 0.35;
         }
         else if (Player.Level >= 6)
         {
             passivenhan = 0.3;
         }
         else if (Player.Level >= 3)
         {
             passivenhan = 0.25;
         }
         else
         {
             passivenhan = 0.2;
         }
         if (HasItem())
         {
             dmg = dmg + Player.LSGetAutoAttackDamage(target) * 0.7;
         }
         if (W.IsReady())
         {
             dmg = dmg + W.GetDamage(target);
         }
         if (Q.IsReady())
         {
             var qnhan = 4 - Qstate;
             dmg = dmg + Q.GetDamage(target) * qnhan + Player.LSGetAutoAttackDamage(target) * qnhan * (1 + passivenhan);
         }
         dmg = dmg + Player.LSGetAutoAttackDamage(target) * (1 + passivenhan);
         return(dmg);
     }
     else
     {
         return(0);
     }
 }
Esempio n. 19
0
 private static void LastHit()
 {
     // To be Done
     if (Player.ManaPercent > LaneClearMenu["LaneClearManaManager"].Cast <Slider>().CurrentValue)
     {
         var allMinionsQ = Cache.GetMinions(Player.ServerPosition, Q.Range, MinionTeam.Enemy);
         if (Q.IsReady())
         {
             if (allMinionsQ.Count > 0)
             {
                 foreach (var minion in allMinionsQ)
                 {
                     if (!minion.IsValidTarget() || minion == null)
                     {
                         return;
                     }
                     if (minion.Health < Q.GetDamage(minion))
                     {
                         Q.Cast(minion.Position);
                     }
                     else if (minion.Health < Q.GetDamage(minion) + Player.GetAutoAttackDamage(minion) && minion.IsValidTarget(SebbyLib.Orbwalking.GetRealAutoAttackRange(minion)))
                     {
                         Q.Cast(minion.Position);
                         Orbwalker.ForcedTarget = (minion);
                     }
                 }
             }
         }
     }
 }
Esempio n. 20
0
        private void LastHitQ()
        {
            if (!Q.IsReady())
            {
                return;
            }
            if (config.Item("useqLC", true).GetValue <bool>() || config.Item("useqLH", true).GetValue <bool>())
            {
                var minions =
                    MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly)
                    .Where(
                        m =>
                        m.Health > 5 &&
                        m.Health <
                        (orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LastHit
                                    ? Q.GetDamage(m)
                                    : Q.GetDamage(m) * config.Item("qLHDamage", true).GetValue <Slider>().Value / 100) &&
                        Q.CanCast(m) &&
                        HealthPrediction.GetHealthPrediction(m, (int)(m.Distance(player) / Q.Speed * 1000)) > 0);
                if (minions != null && LastAttackedminiMinion != null)
                {
                    foreach (var minion in
                             minions.Where(
                                 m =>
                                 m.NetworkId != LastAttackedminiMinion.NetworkId ||
                                 (m.NetworkId == LastAttackedminiMinion.NetworkId &&
                                  Utils.GameTimeTickCount - LastAttackedminiMinionTime > 700)))
                    {
                        if (minion.Team == GameObjectTeam.Neutral && minion.CountAlliesInRange(500) > 0 &&
                            minion.NetworkId != LastAttackedminiMinion.NetworkId)
                        {
                            continue;
                        }

                        if (minion.Distance(player) <= player.AttackRange && !EloBuddy.SDK.Orbwalker.CanAutoAttack &&
                            Orbwalking.CanMove(100))
                        {
                            if (Q.Cast(minion).IsCasted())
                            {
                                Environment.AddToBlackList(minion.NetworkId);
                            }
                        }
                        else if (minion.Distance(player) > player.AttackRange)
                        {
                            if (Q.Cast(minion).IsCasted())
                            {
                                Environment.AddToBlackList(minion.NetworkId);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 21
0
 static void killsteal()
 {
     if (KsQ && Q.IsReady())
     {
         var targets = HeroManager.Enemies.Where(x => x.LSIsValidTarget(Q.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.IsValid && target.Health < Q.GetDamage(target) && (!target.HasBuff("kindrednodeathbuff") || !target.HasBuff("Undying Rage") || !target.HasBuff("JudicatorIntervention")) && (!Orbwalking.InAutoAttackRange(target) || !Orbwalker.CanAutoAttack))
             {
                 Q.Cast(target);
             }
         }
     }
     if (KsB &&
         (ItemData.Bilgewater_Cutlass.GetItem().IsReady() ||
          ItemData.Blade_of_the_Ruined_King.GetItem().IsReady()))
     {
         var targets =
             HeroManager.Enemies.Where(
                 x => x.LSIsValidTarget(ItemData.Blade_of_the_Ruined_King.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Damage.GetItemDamage(Player, target, Damage.DamageItems.Bilgewater))
             {
                 ItemData.Bilgewater_Cutlass.GetItem().Cast(target);
             }
             if (target.Health < Damage.GetItemDamage(Player, target, Damage.DamageItems.Botrk))
             {
                 ItemData.Blade_of_the_Ruined_King.GetItem().Cast(target);
             }
         }
     }
     if (KsT &&
         (ItemData.Tiamat_Melee_Only.GetItem().IsReady() ||
          ItemData.Ravenous_Hydra_Melee_Only.GetItem().IsReady()))
     {
         var targets =
             HeroManager.Enemies.Where(
                 x => x.LSIsValidTarget(ItemData.Ravenous_Hydra_Melee_Only.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Damage.GetItemDamage(Player, target, Damage.DamageItems.Tiamat))
             {
                 ItemData.Tiamat_Melee_Only.GetItem().Cast();
             }
             if (target.Health < Damage.GetItemDamage(Player, target, Damage.DamageItems.Hydra))
             {
                 ItemData.Ravenous_Hydra_Melee_Only.GetItem().Cast();
             }
         }
     }
 }
Esempio n. 22
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                var  poutput = Q.GetPrediction(t);
                var  col     = poutput.CollisionObjects;
                bool cast    = true;
                foreach (var colobj in col)
                {
                    if (Q.GetDamage(colobj) < colobj.Health)
                    {
                        cast = false;
                    }
                }

                var qDmg = OktwCommon.GetKsDamage(t, Q) + Player.GetAutoAttackDamage(t);
                var eDmg = GetEdmg(t);

                if (qDmg > t.Health && eDmg < t.Health && Player.Mana > QMANA + EMANA)
                {
                    castQ(cast, t);
                }
                else if ((qDmg * 1.1) + eDmg > t.Health && eDmg < t.Health && Player.Mana > QMANA + EMANA && Orbwalking.InAutoAttackRange(t))
                {
                    castQ(cast, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA + EMANA)
                {
                    if (Config.Item("qMode", true).GetValue <StringList>().SelectedIndex == 0)
                    {
                        castQ(cast, t);
                    }
                    else if (!Orbwalking.InAutoAttackRange(t) || CountMeleeInRange(400) > 0)
                    {
                        castQ(cast, t);
                    }
                }
                else if (Program.Farm && !Orbwalking.InAutoAttackRange(t) && Config.Item("haras" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && Player.ManaPercent > Config.Item("qMana", true).GetValue <Slider>().Value)
                {
                    castQ(cast, t);
                }
                if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + QMANA + EMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        castQ(cast, t);
                    }
                }
            }
        }
Esempio n. 23
0
 static void killsteal()
 {
     if (KillstealQ && Q.IsReady())
     {
         var targets = HeroManager.Enemies.Where(x => x.LSIsValidTarget(Q.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Q.GetDamage(target) && (!target.HasBuff("kindrednodeathbuff") && !target.HasBuff("Undying Rage") && !target.HasBuff("JudicatorIntervention")))
             {
                 Q.Cast(target);
             }
         }
     }
 }
Esempio n. 24
0
        private static void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, DamageType.Magical);

            if (t.IsValidTarget())
            {
                var qDmg = Q.GetDamage(t);
                var wDmg = OktwCommon.GetKsDamage(t, W) + BonusDmg(t);
                if (wDmg > t.Health)
                {
                    Program.CastSpell(W, t);
                }
                else if (wDmg + qDmg > t.Health && Player.Mana > QMANA + EMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && getCheckBoxItem(wMenu, "harrasW") && !Player.UnderTurret(true) &&
                         (Player.Mana > Player.MaxMana * 0.8 || W.Level > Q.Level) &&
                         Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    Program.CastSpell(W, t);
                }

                if (Player.Mana > RMANA + WMANA)
                {
                    foreach (
                        var enemy in
                        Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") &&
                     getCheckBoxItem(farmMenu, "farmW"))
            {
                var allMinions = Cache.GetMinions(Player.ServerPosition, W.Range);
                var farmPos    = W.GetCircularFarmLocation(allMinions, W.Width);
                if (farmPos.MinionsHit >= getSliderItem(farmMenu, "LCminions"))
                {
                    W.Cast(farmPos.Position);
                }
            }
        }
Esempio n. 25
0
        private static void LogicQ()
        {
            foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(Q.Range) && E.GetDamage(enemy) + Q.GetDamage(enemy) + BonusDmg(enemy) > enemy.Health))
            {
                CastQ(enemy);
                return;
            }

            var t = Orbwalker.LastTarget as AIHeroClient;

            if (!t.LSIsValidTarget())
            {
                t = TargetSelector.GetTarget(Q.Range, DamageType.Magical);
            }
            if (t.LSIsValidTarget() && getCheckBoxItem(qMenu, "Qon" + t.ChampionName))
            {
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    CastQ(t);
                }
                else if (Program.Farm && getCheckBoxItem(qMenu, "harrasQ") && getCheckBoxItem(harassMenu, "harras" + t.ChampionName) && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    CastQ(t);
                }
                else if (OktwCommon.GetKsDamage(t, Q) > t.Health)
                {
                    CastQ(t);
                }

                foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                {
                    CastQ(enemy);
                }
            }
        }
Esempio n. 26
0
 public static void useQtoKill(Obj_AI_Base target)
 {
     if (Q.IsReady() && (target.Health <= Q.GetDamage(target) || iAmLow(0.20f)))
     {
         Q.Cast(target, MasterSharp.getCheckBoxItem(MasterSharp.extraMenu, "packets"));
     }
 }
Esempio n. 27
0
File: Heroe.cs Progetto: CjShu/L-CC
        public static float GetKillStealDamage(Obj_AI_Base e, Spell spell)
        {
            var dmg = spell.GetDamage(e);

            if (Tw_AIO.Player.HasBuff("summonerexhaust"))
                dmg = dmg * 0.6f;

            if (e.HasBuff("ferocioushowl"))
                dmg = dmg * 0.7f;

            if (e is Obj_AI_Hero)
            {
                var champion = (Obj_AI_Hero)e;

                if (champion.ChampionName == "Blitzcrank" && !champion.HasBuff("BlitzcrankManaBarrierCD") && !champion.HasBuff("ManaBarrier"))
                {
                    dmg -= champion.Mana / 2f;
                }
            }

            var extraHP = e.Health - LeagueSharp.Common.HealthPrediction.GetHealthPrediction(e, 500);

            dmg += extraHP;
            dmg -= e.HPRegenRate;
            dmg -= e.PercentLifeStealMod * 0.005f * e.FlatPhysicalDamageMod;

            return dmg;
        }
Esempio n. 28
0
        private void Clear()
        {
            float perc = getSliderItem(farmMenu, "minmana") / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            var jungleMobQ = Jungle.GetNearest(player.Position, Q.Range);
            var Qminis     = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly);

            if (getCheckBoxItem(farmMenu, "useqLC") && Q.IsReady() &&
                (Qminis.Count >= getSliderItem(farmMenu, "qMinHit") || jungleMobQ != null ||
                 (Qminis.Count(m => m.Health < Q.GetDamage(m)) > 0 && !Orbwalker.CanAutoAttack)))
            {
                Q.Cast();
            }
            if (getCheckBoxItem(farmMenu, "usewLC") && W.IsReady() &&
                (MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly).Count >=
                 getSliderItem(farmMenu, "wMinHit") || jungleMobQ != null) &&
                Program.IncDamages.GetAllyData(player.NetworkId).DamageTaken > 50 && player.HealthPercent < 98)
            {
                W.Cast();
            }
        }
Esempio n. 29
0
        private void Clear()
        {
            float perc = config.Item("minmana", true).GetValue <Slider>().Value / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            var Qminis     = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly);
            var jungleMobQ = Qminis.Where(m => m.MaxHealth > 900).OrderByDescending(m => m.MaxHealth).FirstOrDefault();

            if (config.Item("useqLC", true).GetValue <bool>() && Q.IsReady() &&
                (Qminis.Count >= config.Item("qMinHit", true).GetValue <Slider>().Value || jungleMobQ != null ||
                 (Qminis.Count(m => m.Health < Q.GetDamage(m)) > 0 && !EloBuddy.SDK.Orbwalker.CanAutoAttack)))
            {
                Q.Cast();
            }
            if (config.Item("usewLC", true).GetValue <bool>() && W.IsReady() &&
                (MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly).Count >=
                 config.Item("wMinHit", true).GetValue <Slider>().Value || jungleMobQ != null) &&
                Program.IncDamages.GetAllyData(player.NetworkId).DamageTaken > 50 && player.HealthPercent < 98)
            {
                W.Cast();
            }
        }
Esempio n. 30
0
 public static void W(Spell spell)
 {
     foreach (var enemy in HeroManager.Enemies.Where(x => x.IsValidTarget(spell.Range) && x.Health < spell.GetDamage(x)))
     {
         spell.Cast(enemy);
     }
 }
Esempio n. 31
0
        private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe && args.SData.Name.ToLower() == "summonerflash")
            {
                LastFlash = Utils.GameTimeTickCount;
            }

            var hero = sender as AIHeroClient;

            if (hero != null && hero.IsEnemy && Q.IsReady() && getCheckBoxItem(comenu, "useqcombo"))
            {
                if (Player.HealthPercent < getSliderItem(qsmenu, "grabhp"))
                {
                    return;
                }

                if (hero.LSIsValidTarget(getSliderItem(qsmenu, "maxq")) && hero.Health > Q.GetDamage(hero))
                {
                    if (!getCheckBoxItem(qsmenu, "blq" + hero.NetworkId) &&
                        getCheckBoxItem(qsmenu, "auq" + hero.NetworkId))
                    {
                        if (hero.LSDistance(Player.ServerPosition) > getSliderItem(qsmenu, "minq"))
                        {
                            Q.CastIfHitchanceEquals(hero, HitChance.VeryHigh);
                        }
                    }
                }
            }
        }
Esempio n. 32
0
        public static float GetKsDamage(AIHeroClient t, Spell QWER)
        {
            var totalDmg = QWER.GetDamage(t);

            totalDmg -= t.HPRegenRate;

            if (totalDmg > t.Health)
            {
                if (Player.HasBuff("summonerexhaust"))
                {
                    totalDmg = totalDmg * 0.6f;
                }

                if (t.HasBuff("ferocioushowl"))
                {
                    totalDmg = totalDmg * 0.7f;
                }

                if (t.ChampionName == "Blitzcrank" && !t.HasBuff("BlitzcrankManaBarrierCD") && !t.HasBuff("ManaBarrier"))
                {
                    totalDmg -= t.Mana / 2f;
                }
            }
            //if (Thunderlord && !Player.HasBuff( "masterylordsdecreecooldown"))
            //totalDmg += (float)Player.CalcDamage(t, Damage.DamageType.Magical, 10 * Player.Level + 0.1 * Player.FlatMagicDamageMod + 0.3 * Player.FlatPhysicalDamageMod);
            totalDmg += (float)GetIncomingDamage(t);
            return(totalDmg);
        }
Esempio n. 33
0
        public static float GetKsDamage(Obj_AI_Base t, Spell QWER)
        {
            var totalDmg = QWER.GetDamage(t);

            if (Player.HasBuff("summonerexhaust"))
                totalDmg = totalDmg * 0.6f;

            if (t.HasBuff("ferocioushowl"))
                totalDmg = totalDmg * 0.7f;

            if (t is Obj_AI_Hero)
            {
                var champion = (Obj_AI_Hero)t;
                if (champion.ChampionName == "Blitzcrank" && !champion.HasBuff("BlitzcrankManaBarrierCD") && !champion.HasBuff("ManaBarrier"))
                {
                    totalDmg -= champion.Mana / 2f;
                }
            }

            var extraHP = t.Health - HealthPrediction.GetHealthPrediction(t, 500);

            totalDmg += extraHP;
            totalDmg -= t.HPRegenRate;
            totalDmg -= t.PercentLifeStealMod * 0.005f * t.FlatPhysicalDamageMod;

            return totalDmg;
        }
Esempio n. 34
0
        public static Obj_AI_Hero GetNearlyKillableTarget(Spell Spell, SpellSlot[] slots, TargetSelector.DamageType DamageType)
        {
            var targetSelectorTarget = TargetSelector.GetTarget(Spell.Range, TargetSelector.DamageType.Magical);
            var targetSelectorTargetIsKillable = Spell.GetDamage(targetSelectorTarget) > targetSelectorTarget.Health + 5;
            
            foreach (var target in HeroManager.Enemies.Where(n => n.IsValidTarget(Spell.Range)))
            {
                var SpellDamage = Spell.GetDamage(target);
                if (target.Health + 5 > SpellDamage 
                    && target.Health + 5 < SpellDamage 
                    + ObjectManager.Player.GetAutoAttackDamage(target) 
                    + ObjectManager.Player.GetComboDamage(target, slots
                    .Except(new List<SpellSlot>() { Spell.Slot }).ToList()))
                {
                    return target;
                }
            }

            return targetSelectorTargetIsKillable ? targetSelectorTarget : null;
        }
Esempio n. 35
0
        /// <summary>
        ///     Called when the game updates itself.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Killsteal(EventArgs args)
        {
            /// <summary>
            ///     The KillSteal R Logic.
            /// </summary>
            ///
            var target = TargetSelector.GetTarget(Vars.R.Range, DamageType.True);
            if (target == null || !target.IsValid)
            {
                return;
            }
            if (Vars.getCheckBoxItem(Vars.RMenu, "killsteal") && Vars.R.IsReady() && target.LSIsValidTarget(Vars.R.Range))
            {
                foreach (var hero in
                    ObjectManager.Get<AIHeroClient>().Where(hero => hero.LSIsValidTarget(Vars.R.Range) && !Invulnerable.Check(hero) && !hero.HasBuffOfType(BuffType.SpellShield) && !hero.HasBuff("kindredrnodeathbuff")))
                {
                    var R = new LeagueSharp.Common.Spell(SpellSlot.R, 460);
                    var dmgR = SebbyLib.OktwCommon.GetKsDamage(target, R);
                    if (target.HasBuff("dariushemo"))
                        dmgR += R.GetDamage(target) * target.GetBuff("dariushemo").Count * 0.2f;
                    if (dmgR > hero.Health + target.HPRegenRate)
                    {
                        Vars.R.CastOnUnit(target);
                    }

                    if (dmgR < hero.Health + target.HPRegenRate && hero.CountEnemiesInRange(1200) <= 1)
                    {
                        foreach (var buff in hero.Buffs.Where(buff => buff.Name == "dariushemo"))
                        {
                            if (ObjectManager.Player.LSGetSpellDamage(target, SpellSlot.R, 1) * (1 + buff.Count / 5) - 1
                                > target.Health + target.HPRegenRate)
                            {
                                Vars.R.CastOnUnit(target);
                            }
                        }
                    }
                    if (hero.CountEnemiesInRange(1200) <= 1)
                    {
                        if (RDmg(hero, PassiveCount(hero)) +
                            Hemorrhage(hero, PassiveCount(hero) - 1) >= hero.Health + target.HPRegenRate && 1 <= target.GetBuff("dariushemo").Count)
                        {
                                if (!hero.HasBuff("kindredrnodeathbuff"))
                                    Spellbook["R"].CastOnUnit(hero);
                        }
                    }
                    if (RDmg(hero, PassiveCount(hero)) >= hero.Health +
                        Hemorrhage(hero, 1))
                    {
                            if (!hero.HasBuff("kindredrnodeathbuff"))
                                Spellbook["R"].CastOnUnit(hero);
                    }
                }
            }
        }
Esempio n. 36
0
 /// <summary>
 ///     Thats basically provide combo damage
 /// </summary>
 /// <param name="spell1">Q Spell</param>
 /// <param name="spell2">W Spell</param>
 /// <param name="spell3">E Spell</param>
 /// <param name="spell4">R Spell</param>
 /// <param name="unit">Target</param>
 /// <returns></returns>
 public static float ComboDamage(this Spell spell1, Spell spell2, Spell spell3, Spell spell4, AIHeroClient unit)
 {
     var combodamage = 0f;
     if (spell1.IsReady())
     {
         combodamage += spell1.GetDamage(unit);
     }
     if (spell2.IsReady())
     {
         combodamage += spell2.GetDamage(unit);
     }
     if (spell3.IsReady())
     {
         combodamage += spell2.GetDamage(unit);
     }
     if (spell4.IsReady())
     {
         combodamage += spell2.GetDamage(unit);
     }
     return combodamage;
 }
Esempio n. 37
0
 public static float CountKillableMinions(Spell spell, float range)
 {
     int killable = 0;
     foreach (var minion in MinionManager.GetMinions(range))
     {
         if (spell.GetDamage(minion) > minion.Health + 15)
         {
             killable = killable + 1;
         }
     }
     return killable;
 }
 public static void Add(Spell spell, bool readyCheck = true)
 {
     try
     {
         if (_menu == null)
         {
             return;
         }
         _menu.AddItem(
             new MenuItem(_menu.Name + "." + spell.Slot, spell.Slot.ToString().ToUpper()).SetValue(false));
         if (readyCheck)
         {
             Functions.Add(spell.Slot.ToString(), hero => spell.IsReady() ? spell.GetDamage(hero) : 0);
         }
         else
         {
             Functions.Add(spell.Slot.ToString(), hero => spell.GetDamage(hero));
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Esempio n. 39
0
 public static float GetRealDmg(Spell QWER, Obj_AI_Hero target)
 {
     if (Orbwalking.InAutoAttackRange(target) || target.CountAlliesInRange(300) > 0)
         return QWER.GetDamage(target) + (float)ObjectManager.Player.GetAutoAttackDamage(target) * 2;
     else
         return QWER.GetDamage(target);
 }
Esempio n. 40
0
 internal static bool isKillable(Obj_AI_Base target, Spell spell, int stage = 0)
 {
     return target.Health + (target.HPRegenRate / 2) <= spell.GetDamage(target, stage);
 }
Esempio n. 41
0
        public static float GetKsDamage(AIHeroClient t, Spell QWER)
        {
            var totalDmg = QWER.GetDamage(t);
            totalDmg -= t.HPRegenRate;

            if (totalDmg > t.Health)
            {
                if (Player.HasBuff("summonerexhaust"))
                    totalDmg = totalDmg*0.6f;

                if (t.HasBuff("ferocioushowl"))
                    totalDmg = totalDmg*0.7f;

                if (t.ChampionName == "Blitzcrank" && !t.HasBuff("BlitzcrankManaBarrierCD") && !t.HasBuff("ManaBarrier"))
                {
                    totalDmg -= t.Mana/2f;
                }
            }
            //if (Thunderlord && !Player.HasBuff( "masterylordsdecreecooldown"))
            //totalDmg += (float)Player.CalcDamage(t, Damage.DamageType.Magical, 10 * Player.Level + 0.1 * Player.FlatMagicDamageMod + 0.3 * Player.FlatPhysicalDamageMod);
            totalDmg += (float) GetIncomingDamage(t);
            return totalDmg;
        }
Esempio n. 42
0
 public static bool CanKillableWith(this Obj_AI_Base t, Spell spell)
 {
     return t.Health < spell.GetDamage(t) - 5;
 }
Esempio n. 43
0
 public static bool CanKill(Obj_AI_Base target, Spell Skill, int Stage = 0)
 {
     return (Skill.GetHealthPrediction(target) + 20 < Skill.GetDamage(target, Stage)) ? true : false;
 }
Esempio n. 44
0
 public static bool GetCollision(Obj_AI_Base target, Spell QWER, bool champion, bool minion)
 {
     var rDmg = QWER.GetDamage(target);
     int collision = 0;
     PredictionOutput output = QWER.GetPrediction(target);
     Vector2 direction = output.CastPosition.To2D() - ObjectManager.Player.Position.To2D();
     direction.Normalize();
     if (champion)
     {
         foreach (var enemy in Program.Enemies.Where(x => x.IsEnemy && x.IsValidTarget()))
         {
             PredictionOutput prediction = QWER.GetPrediction(enemy);
             Vector3 predictedPosition = prediction.CastPosition;
             Vector3 v = output.CastPosition - ObjectManager.Player.ServerPosition;
             Vector3 w = predictedPosition - ObjectManager.Player.ServerPosition;
             double c1 = Vector3.Dot(w, v);
             double c2 = Vector3.Dot(v, v);
             double b = c1 / c2;
             Vector3 pb = ObjectManager.Player.ServerPosition + ((float)b * v);
             float length = Vector3.Distance(predictedPosition, pb);
             if (length < QWER.Width )
                 return true;
         }
     }
     if (minion)
     {
         var allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, QWER.Range, MinionTypes.All);
         foreach (var enemy in allMinions.Where(x => x.IsEnemy && x.IsValidTarget()))
         {
             PredictionOutput prediction = QWER.GetPrediction(enemy);
             Vector3 predictedPosition = prediction.CastPosition;
             Vector3 v = output.CastPosition - ObjectManager.Player.ServerPosition;
             Vector3 w = predictedPosition - ObjectManager.Player.ServerPosition;
             double c1 = Vector3.Dot(w, v);
             double c2 = Vector3.Dot(v, v);
             double b = c1 / c2;
             Vector3 pb = ObjectManager.Player.ServerPosition + ((float)b * v);
             float length = Vector3.Distance(predictedPosition, pb);
             if (length < QWER.Width)
                 return true;
         }
     }
     return false;
 }
Esempio n. 45
0
 private static bool getUnitsInPath(Obj_AI_Hero player, Obj_AI_Hero target, Spell spell)
 {
     float distance = player.Distance(target);
     List<Obj_AI_Base> minionList = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, spell.Range,
         MinionTypes.All, MinionTeam.NotAlly);
     int numberOfMinions = (from Obj_AI_Minion minion in minionList
                            let skillshotPosition =
                                V2E(player.Position,
                                    V2E(player.Position, target.Position,
                                        Vector3.Distance(player.Position, target.Position) - spell.Width + 1).To3D(),
                                    Vector3.Distance(player.Position, minion.Position))
                            where skillshotPosition.Distance(minion) < spell.Width
                            select minion).Count();
     int numberOfChamps = (from minion in ObjectManager.Get<Obj_AI_Hero>()
                           let skillshotPosition =
                               V2E(player.Position,
                                   V2E(player.Position, target.Position,
                                       Vector3.Distance(player.Position, target.Position) - spell.Width + 1).To3D(),
                                   Vector3.Distance(player.Position, minion.Position))
                           where skillshotPosition.Distance(minion) < spell.Width && minion.IsEnemy
                           select minion).Count();
     int totalUnits = numberOfChamps + numberOfMinions - 1;
     // total number of champions and minions the projectile will pass through.
     if (totalUnits == -1) return false;
     double damageReduction = 0;
     damageReduction = ((totalUnits > 7)) ? 0.4 : (totalUnits == 0) ? 1.0 : (1 - ((totalUnits) / 12.5));
     // the damage reduction calculations minus percentage for each unit it passes through!
     return spell.GetDamage(target) * damageReduction >= (target.Health + (distance / 2000) * target.HPRegenRate);
     // - 15 is a safeguard for certain kill.
 }
Esempio n. 46
0
        public static float GetKsDamage(Obj_AI_Hero t, Spell QWER)
        {
            var totalDmg = QWER.GetDamage(t);
            totalDmg -= t.HPRegenRate;

            if (totalDmg > t.Health)
            {
                if (Player.HasBuff("summonerexhaust"))
                    totalDmg = totalDmg * 0.6f;

                if (t.HasBuff("ferocioushowl"))
                    totalDmg = totalDmg * 0.7f;

                if (t.ChampionName == "Blitzcrank" && !t.HasBuff("BlitzcrankManaBarrierCD") && !t.HasBuff("ManaBarrier"))
                {
                    totalDmg -= t.Mana / 2f;
                }
            }

            totalDmg += (float)GetIncomingDamage(t);
            return totalDmg;
        }