Example #1
0
        public static void Combo()
        {
            var target = TargetSelector2.GetTarget(GetDynamicRange() + 100, DamageType.Magical);
            var t = TargetSelector2.GetTarget(Program.R.Range, DamageType.Magical);
            var summonerIgnite = Player.Spells.FirstOrDefault(o => o.SData.Name == "summonerdot"); // Thanks finn

            if (target == null) return;

            var manaPre = _Player.ManaPercent > Program.MinNumberManaC;

            if (!manaPre)
            {
                return;
            }

            if (summonerIgnite != null)
            {
                SpellSlot igSlot = extent.GetSpellSlotFromName(_Player, "summonerdot");
                ignite = new Spell.Targeted(igSlot, 600);
                if (Program.ComboMenu["igniteKill"].Cast<CheckBox>().CurrentValue && ignite.IsReady())
                {
                    if (getIgniteDamage() >= target.Health - 5) //-5 on enemy health for safecheck & HP regen
                    {
                        ignite.Cast(target);
                    }
                }
                else if (Program.ComboMenu["igniteAlways"].Cast<CheckBox>().CurrentValue && ignite.IsReady())
                {
                    ignite.Cast(target);
                }
            }

            if (Program.ComboMenu["useRCombo"].Cast<CheckBox>().CurrentValue && Program.R.IsReady() && target.IsValidTarget(Program.R.Range))
            {
                Program.R.Cast(target);
            }
            if (Program.ComboMenu["useECombo"].Cast<CheckBox>().CurrentValue && Program.E.IsReady() && target.IsValidTarget(Program.E.Range))
            {
                Program.E.Cast(target);
                if (_Player.Spellbook.GetSpell(SpellSlot.E).Name == "fizzjumptwo")
                {
                    EloBuddy.SDK.Core.DelayAction(() => { Program.E.Cast(target); }, 50);
                }
            }
            if (Program.ComboMenu["useWCombo"].Cast<CheckBox>().CurrentValue && Program.W.IsReady())
            {
                Program.W.Cast();
            }
            if (Program.ComboMenu["useQCombo"].Cast<CheckBox>().CurrentValue && Program.Q.IsReady())
            {
                Program.Q.Cast(target);
            }
        }
Example #2
0
        public static void Combo()
        {
            var target = TargetSelector2.GetTarget(GetDynamicRange() + 100, DamageType.Magical);
            var t = TargetSelector2.GetTarget(Program.R.Range, DamageType.Magical);
            var summonerIgnite = Player.Spells.FirstOrDefault(o => o.SData.Name == "summonerdot"); // Thanks finn
            var hpPre = _Player.HealthPercent > Program.MinHQNoQ;
            var manaPre = _Player.ManaPercent > Program.MinNumberManaC;

            if (target == null) return;

            if (manaPre == false)
            {
                return;
            }

            if (summonerIgnite != null)
            {
                SpellSlot igSlot = extent.GetSpellSlotFromName(_Player, "summonerdot");
                ignite = new Spell.Targeted(igSlot, 600);
                if (Program.ComboMenu["igniteKill"].Cast<CheckBox>().CurrentValue && ignite.IsReady())
                {
                    if (getIgniteDamage() >= target.Health - 5) //-5 on enemy health for safecheck
                    {
                        ignite.Cast(target);
                    }
                }
                if (Program.ComboMenu["igniteAlways"].Cast<CheckBox>().CurrentValue && ignite.IsReady())
                {
                    if (summonerIgnite != null)
                    {
                        ignite.Cast(target);
                    }
                }
            }

            if (Program.ComboMenu["useWCombo"].Cast<CheckBox>().CurrentValue && Program.W.IsReady())
            {
                Program.W.Cast();
            }
            if (Program.ComboMenu["useQCombo"].Cast<CheckBox>().CurrentValue && Program.Q.IsReady() && target.IsValidTarget(Program.Q.Range) && hpPre && Program.MiscMenu["grab" + target.ChampionName].Cast<CheckBox>().CurrentValue)
            {
                CheckCollisionAndCastQ(target, HitChance.High);
            }
            if (Program.ComboMenu["useECombo"].Cast<CheckBox>().CurrentValue && Program.E.IsReady() && target.IsValidTarget(Program.E.Range))
            {
                Program.E.Cast();
                Orbwalker.ResetAutoAttack();
            }
            if (Program.ComboMenu["useRCombo"].Cast<CheckBox>().CurrentValue && Program.R.IsReady() && t.CountEnemiesInRange(Program.R.Range) >= Program.MinNumberR)
            {
                Program.R.Cast();
            }
        }
Example #3
0
        public static void Combo()
        {
            var target = TargetSelector2.GetTarget(GetDynamicRange() + 100, DamageType.Magical);
            var t = TargetSelector2.GetTarget(Program.R.Range, DamageType.Magical);
            var summonerIgnite = Player.Spells.FirstOrDefault(o => o.SData.Name == "summonerdot"); // Thanks finn

            float rdmg = EloBuddy.SDK.DamageLibrary.GetSpellDamage(_Player, target, EloBuddy.SpellSlot.R); // damage of cho R

            if (target == null) return;

            var manaPre = _Player.ManaPercent > Program.MinNumberManaC;

            if (!manaPre)
            {
                return;
            }

            if (summonerIgnite != null)
            {
                SpellSlot igSlot = extent.GetSpellSlotFromName(_Player, "summonerdot");
                ignite = new Spell.Targeted(igSlot, 600);
                if (Program.ComboMenu["igniteKill"].Cast<CheckBox>().CurrentValue && ignite.IsReady())
                {
                    if (getIgniteDamage() > target.Health - 10) //-10 on enemy health for safecheck
                    {
                        ignite.Cast(target);
                    }
                }
            }

            if (Program.ComboMenu["useQCombo"].Cast<CheckBox>().CurrentValue && Program.Q.IsReady() && target.IsValidTarget(Program.Q.Range))
            {
                var qPred = Program.Q.GetPrediction(target);
                if (qPred.HitChance >= HitChance.High)
                {
                    Program.Q.Cast(target);
                }
            }
            if (Program.ComboMenu["useWCombo"].Cast<CheckBox>().CurrentValue && Program.W.IsReady() && target.IsValidTarget(Program.W.Range))
            {
                Program.W.Cast(target);
            }
            if (Program.ComboMenu["useRCombo"].Cast<CheckBox>().CurrentValue && Program.ComboMenu["useRKill"].Cast<CheckBox>().CurrentValue && Program.R.IsReady() && rdmg > target.Health - 10)
            {
                Program.R.Cast(target);
            }
            if (Program.ComboMenu["useRCombo"].Cast<CheckBox>().CurrentValue && !Program.ComboMenu["useRKill"].Cast<CheckBox>().CurrentValue && Program.R.IsReady())
            {
                Program.R.Cast(target);
            }
        }
Example #4
0
 private static void Drawing_OnDraw(EventArgs args)
 {
     if (DrawMenu["Draw.Q"].Cast <CheckBox>().CurrentValue)
     {
         Circle.Draw(QSpell.IsReady() ? DrawMenu.GetColour("Draw.Q.Colour") : DrawMenu.GetColour("Draw.OFF"), QSpell.Range, Player.Instance.Position);
     }
     if (DrawMenu["Draw.W"].Cast <CheckBox>().CurrentValue)
     {
         Circle.Draw(WSpellSwallow.IsReady() ? DrawMenu.GetColour("Draw.W.Colour") : DrawMenu.GetColour("Draw.OFF"), WSpellSwallow.Range, Player.Instance.Position);
         Circle.Draw(WSpellSpit.IsReady() ? DrawMenu.GetColour("Draw.W.Colour") : DrawMenu.GetColour("Draw.OFF"), WSpellSpit.Range, Player.Instance.Position);
     }
     if (DrawMenu["Draw.E"].Cast <CheckBox>().CurrentValue)
     {
         Circle.Draw(ESpell.IsReady() ? DrawMenu.GetColour("Draw.E.Colour") : DrawMenu.GetColour("Draw.OFF"), ESpell.Range, Player.Instance.Position);
     }
 }
Example #5
0
        public static float GetRealDamage(this Obj_AI_Base target, SpellSlot slot)
        {
            var damageType = DamageType.Magical;
            var ap         = Player.Instance.TotalMagicalDamage;
            var sLevel     = Player.GetSpell(slot).Level - 1;


            var dmg = 0f;

            switch (slot)
            {
            case SpellSlot.Q:
                if (Q.IsReady())
                {
                    dmg += new float[] { 80, 125, 170, 215, 260 }
                }
Example #6
0
        void SmartR()
        {
            var target = TargetSelector.GetTarget(1400, DamageType.Physical);

            if (!target.IsValidTarget(Q.Range) || target == null)
            {
                return;
            }
            var rdamage = Player.CalculateDamageOnUnit(target, DamageType.Physical,
                                                       (new float[] { 0, 250, 475, 700 }[R.Level] +(2f * Player.FlatMagicDamageMod))) - target.FlatPhysicalReduction;

            if (R.IsReady() && CaitlynTheTrollMeNu.ComboR() && Player.CountEnemiesInRange(R.Range) == 1 && target.Distance(Player) >= 800 && rdamage >= target.Health && !target.IsInvulnerable)
            {
                R.Cast(target);
            }
        }
Example #7
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(R.Range, DamageType.Magical);
            var useQ   = ComboMenu["ComboQ"].Cast <CheckBox>().CurrentValue;
            var useE   = ComboMenu["ComboE"].Cast <CheckBox>().CurrentValue;
            var useR   = ComboMenu["ComboR"].Cast <CheckBox>().CurrentValue;
            var turret = ComboMenu["CTurret"].Cast <KeyBind>().CurrentValue;
            var minR   = ComboMenu["CMinR"].Cast <Slider>().CurrentValue;
            var Minhp  = ComboMenu["Cihp"].Cast <Slider>().CurrentValue;

            if (target != null)
            {
                if (useE && E.IsReady() && target.IsValidTarget(E.Range) && EReady)
                {
                    E.Cast(target);
                }

                if (useQ && Q.IsReady() && target.IsValidTarget(Q.Range))
                {
                    if (_Player.Distance(target) < Player.Instance.GetAutoAttackRange(target) && !W.IsReady())
                    {
                        Q.Cast(target);
                    }
                    else if (_Player.Distance(target) > Player.Instance.GetAutoAttackRange(target))
                    {
                        Q.Cast(target);
                    }
                }

                if (useR && R.IsReady() && target.IsValidTarget(R.Range) && target.Position.CountEnemyChampionsInRange(R.Range) <= minR && _Player.HealthPercent >= Minhp)
                {
                    if (turret)
                    {
                        if (!UnderTuret(target))
                        {
                            R.Cast(target);
                        }
                    }
                    else
                    {
                        R.Cast(target);
                    }
                }
            }
        }
Example #8
0
        public static void PatenteAlta()
        {
            var ferido =
                EntityManager.Heroes.Allies.OrderBy(a => a.Hero)
                .FirstOrDefault(
                    a =>
                    W.IsInRange(a) && a.HealthPercent <= 70 && !a.IsRecalling() && !a.IsInShopRange() && !a.IsMe &&
                    !a.IsZombie && a.IsValid && a.IsTargetableToTeam);

            if (ferido == null || !W.IsReady() || Jho.ManaPercent < 15 || Jho.HealthPercent < 15)
            {
                return;
            }
            W.Cast(ferido);
            TickW = Environment.TickCount;
        }
Example #9
0
        public static void Execute()
        {
            if (!SummonerExhaust.IsReady() || Activator.lastUsed >= Environment.TickCount)
            {
                return;
            }
            var target = TargetSelector.GetTarget(SummonerExhaust.Range, DamageType.Mixed);

            var Ally = EntityManager.Heroes.Allies.FirstOrDefault(a => a.IsInRange(Player.Instance, SummonerExhaust.Range));

            if (Player.Instance.InDanger(30) || Ally.InDanger(30))
            {
                SummonerExhaust.Cast(target);
                Activator.lastUsed = Environment.TickCount + 500;
            }
        }
Example #10
0
        public static float GetRealDamage(this Obj_AI_Base target, SpellSlot slot)
        {
            var damageType = DamageType.Mixed;
            var ap         = Player.Instance.TotalMagicalDamage;
            var ad         = Player.Instance.TotalAttackDamage;
            var sLevel     = Player.GetSpell(slot).Level - 1;

            var dmg = 0f;

            switch (slot)
            {
            case SpellSlot.Q:
                if (Q.IsReady())
                {
                    dmg += new float[] { 60, 85, 110, 135, 160 }
                }
Example #11
0
        private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe || sender.IsAlly || args.SData.IsAutoAttack())
            {
                return;
            }
            var articunoPerfectCheck = Player.Position.PointOnLineSegment(args.Start,
                                                                          args.Start.Extend(args.End, args.SData.CastRangeDisplayOverride).To3D());

            if (ProcessSpells.DB.Contains(args.SData.Name) &&
                R.IsReady() && Player.HealthPercent <= FappadredMenu.UltiHP() && FappadredMenu.ComboR() &&
                (articunoPerfectCheck || (args.Target != null && args.Target.IsMe)))
            {
                R.Cast(Player);
            }
        }
Example #12
0
        /// <summary>
        /// It will return the damage but you need to set them before getting the damage
        /// </summary>
        /// <param name="target"></param>
        /// <param name="slot"></param>
        /// <returns></returns>
        public static float GetDamage(this Obj_AI_Base target, SpellSlot slot)
        {
            const DamageType damageType = DamageType.Magical;
            var AD     = Player.Instance.FlatPhysicalDamageMod;
            var AP     = Player.Instance.FlatMagicDamageMod;
            var sLevel = Player.GetSpell(slot).Level - 1;

            //You can get the damage information easily on wikia

            var dmg = 0f;

            switch (slot)
            {
            case SpellSlot.Q:
                if (Q.IsReady())
                {
                    //Information of Q damage
                    dmg += new float[] { 15, 40, 65, 90, 115 }[sLevel] +new [] { 0.6f, 0.65f, 0.7f, 0.75f, 0.8f }[sLevel] *AD;
                }
                break;

            case SpellSlot.W:
                if (W.IsReady())
                {
                    //Information of W damage
                    dmg += new float[] { 0, 0, 0, 0, 0 }[sLevel] +1f * AD;
                }
                break;

            case SpellSlot.E:
                if (E.IsReady())
                {
                    //Information of E damage
                    dmg += new float[] { 0, 0, 0, 0, 0 }[sLevel];
                }
                break;

            case SpellSlot.R:
                if (R.IsReady())
                {
                    //Information of R damage
                    dmg += new float[] { 20, 60, 95, 130, 165 }[sLevel] +0.45f * AP;
                }
                break;
            }
            return(Player.Instance.CalculateDamageOnUnit(target, damageType, dmg - 10));
        }
        private static void SmiteEvent()
        {
            if (!Smite.IsReady() || Player.Instance.IsDead)
            {
                return;
            }
            if (SmiteMenu["smiteActive"].Cast <KeyBind>().CurrentValue)
            {
                var unit =
                    EntityManager.MinionsAndMonsters.Monsters
                    .Where(
                        a =>
                        AkaActivator.SmiteableUnits.Contains(a.BaseSkinName) &&
                        a.Health < AkaActivator.GetSmiteDamage() &&
                        SmiteMenu[a.BaseSkinName].Cast <CheckBox>().CurrentValue)
                    .OrderByDescending(a => a.MaxHealth)
                    .FirstOrDefault();

                if (unit != null)
                {
                    Smite.Cast(unit);
                }
            }
            if (SmiteMenu["useSlowSmite"].Cast <CheckBox>().CurrentValue&&
                Smite.Handle.Name == "s5_summonersmiteplayerganker")
            {
                foreach (
                    var target in
                    EntityManager.Heroes.Enemies
                    .Where(h => h.IsValidTarget(Smite.Range) && h.Health <= 20 + 8 * Player.Instance.Level))
                {
                    Smite.Cast(target);
                }
            }
            if (SmiteMenu["comboWithDuelSmite"].Cast <CheckBox>().CurrentValue&&
                Smite.Handle.Name == "s5_summonersmiteduel" &&
                Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                foreach (
                    var target in
                    EntityManager.Heroes.Enemies
                    .Where(h => h.IsValidTarget(Smite.Range)).OrderByDescending(TargetSelector.GetPriority))
                {
                    AkaActivator.Smite.Cast(target);
                }
            }
        }
        /// <summary>
        /// It will return the damage but you need to set them before getting the damage
        /// </summary>
        /// <param name="target"></param>
        /// <param name="slot"></param>
        /// <returns></returns>
        public static float GetDamage(this Obj_AI_Base target, SpellSlot slot)
        {
            var damageType = DamageType.Magical;
            var AD         = Player.Instance.FlatPhysicalDamageMod;
            var AP         = Player.Instance.FlatMagicDamageMod;
            var sLevel     = Player.GetSpell(slot).Level - 1;

            //You can get the damage information easily on wikia

            var dmg = 0f;

            switch (slot)
            {
            case SpellSlot.Q:
                if (Q.IsReady())
                {
                    //Information of Q damage
                    dmg += new float[] { 20, 45, 70, 95, 120 }[sLevel] +1f * AD;
                }
                break;

            case SpellSlot.W:
                if (W.IsReady())
                {
                    //Information of W damage
                    dmg += new float[] { 0, 0, 0, 0, 0 }[sLevel] +1f * AD;
                }
                break;

            case SpellSlot.E:
                if (E.IsReady())
                {
                    //Information of E damage
                    dmg += new float[] { 80, 110, 140, 170, 200 }[sLevel];
                }
                break;

            case SpellSlot.R:
                if (R.IsReady())
                {
                    //Information of R damage
                    dmg += new float[] { 600, 840, 1080 }[sLevel] *0.6f + 1.2f * AP;
                }
                break;
            }
            return(Player.Instance.CalculateDamageOnUnit(target, damageType, dmg - 10));
        }
Example #15
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (drawMenu["useQ"].Cast <CheckBox>().CurrentValue)
            {
                Circle.Draw(Q.IsReady() ? SharpDX.Color.Aqua : SharpDX.Color.Red, Q.Range, Player.Instance.Position);
            }

            if (drawMenu["useW"].Cast <CheckBox>().CurrentValue)
            {
                Circle.Draw(W.IsReady() ? SharpDX.Color.Aqua : SharpDX.Color.Red, W.Range, Player.Instance.Position);
            }

            if (drawMenu["useE"].Cast <CheckBox>().CurrentValue)
            {
                Circle.Draw(E.IsReady() ? SharpDX.Color.Aqua : SharpDX.Color.Red, E.Range, Player.Instance.Position);
            }

            if (drawMenu["useR"].Cast <CheckBox>().CurrentValue)
            {
                Circle.Draw(R.IsReady() ? SharpDX.Color.Aqua : SharpDX.Color.Red, R.Range, Player.Instance.Position);
            }
        }
Example #16
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (DrawingsMenu.Get <CheckBox>("DrawQ").CurrentValue&& Q.IsLearned)
            {
                if (Q.IsReady())
                {
                    Circle.Draw(Color.White, Q.Range, ObjectManager.Player.Position);
                }
            }

            if (DrawingsMenu.Get <CheckBox>("DrawQ").CurrentValue&& Q.IsLearned)
            {
                if (!Q.IsReady())
                {
                    return;
                }
            }



            if (DrawingsMenu.Get <CheckBox>("DrawW").CurrentValue&& W.IsLearned)
            {
                if (W.IsReady())
                {
                    Circle.Draw(Color.Aqua, W.Range, ObjectManager.Player.Position);
                }
            }

            if (DrawingsMenu.Get <CheckBox>("DrawW").CurrentValue&& W.IsLearned)
            {
                if (!W.IsReady())
                {
                    return;
                }
            }



            if (DrawingsMenu.Get <CheckBox>("DrawE").CurrentValue&& E.IsLearned)
            {
                if (E.IsReady())
                {
                    Circle.Draw(Color.Red, E.Range, ObjectManager.Player.Position);
                }
            }

            if (DrawingsMenu.Get <CheckBox>("DrawE").CurrentValue&& E.IsLearned)
            {
                if (!E.IsReady())
                {
                    return;
                }
            }
        }
Example #17
0
 public static float QDamage(Obj_AI_Base target)
 {
     if (Q.IsReady())
     {
         return(Player.Instance.CalculateDamageOnUnit(target, DamageType.Magical, new[] { 0f, 75f, 105f, 135f, 165f, 195f }[Q.Level] +0.3f * Player.Instance.TotalMagicalDamage));
     }
     else
     {
         return(0f);
     }
 }
Example #18
0
 static void RLogic()
 {
     if (R.IsReady())
     {
         float extra = 0f;
         int   level = R.Level;
         if (level == 3)
         {
             extra = level * 25;
         }
         var target = TargetSelector.GetTarget(675f + extra, DamageType.Magical);
         if (target.IsValidTarget() && CanUlt(target) && Auto[target.ChampionName].Cast <CheckBox>().CurrentValue)
         {
             R.Cast(target);
         }
     }
 }
Example #19
0
        public override void Laneclear()
        {
            if (!Player.Instance.IsValid || Player.Instance.IsRecalling())
            {
                return;
            }

            if (Q.IsReady() && Value.Use("lane.q"))
            {
                var targetCount = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Instance.Position, Q.Range).Where(m => GetDamage(SpellSlot.Q, m) > m.Health);
                //var  = targetCount as IList<Obj_AI_Minion> ?? targetCount.ToList();
                //if(.Count() > Value.Get("lane.q.minions")|| !.Any()) return;
                //var target = .FirstOrDefault();
                // if (target == null) return;
                //Q.Cast(target);
            }
        }
Example #20
0
        public static int GetSmiteDamage()
        {
            if (Smite == null || !Smite.IsReady())
            {
                return(0);
            }
            int level = ObjectManager.Player.Level;

            int[] smitedamage =
            {
                20 * level + 370,
                30 * level + 330,
                40 * level + 240,
                50 * level + 100
            };
            return(smitedamage.Max());
        }
Example #21
0
        private static void Ignite()
        {
            var target = TargetSelector.GetTarget(700, DamageType.True, Player.Instance.Position);

            float IgniteDMG = 50 + (20 * myhero.Level);

            if (target != null)
            {
                float HP5 = target.HPRegenRate * 5;

                if (check(ActivatorMenu, "ignite") && ignt.IsReady() && target.IsValidTarget(ignt.Range) &&
                    (IgniteDMG > (target.TotalShieldHealth() + HP5)))
                {
                    ignt.Cast(target);
                }
            }
        }
Example #22
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(W.Range, DamageType.Mixed);


            if (target == null)
            {
                return;
            }

            if (ComboMenu["Q"].Cast <CheckBox>().CurrentValue)
            {
                //checks if spell = ready
                if (Q.IsReady())
                {
                    Q.Cast(target);
                }
            }

            if (ComboMenu["W"].Cast <CheckBox>().CurrentValue)
            {
                //checks if spell = ready
                if (W.IsReady())
                {
                    W.Cast();
                }
            }

            if (ComboMenu["E"].Cast <CheckBox>().CurrentValue)
            {
                //checks if spell = ready
                if (E.IsReady())
                {
                    E.Cast(target);
                }
            }

            if (ComboMenu["R"].Cast <CheckBox>().CurrentValue)
            {
                //checks if spell = ready
                if (R.IsReady)
                {
                    R.Cast(target);
                }
            }
        }
Example #23
0
        private static void Killsteal()
        {
            var qenemy = TargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (MiscMenu["ksq"].Cast <CheckBox>().CurrentValue&& Q.IsReady())
            {
                try
                {
                    foreach (
                        var qtarget in
                        HeroManager.Enemies.Where(
                            hero =>
                            hero.IsValidTarget(Q.Range) && !hero.IsDead && !hero.IsZombie))
                    {
                        if (Eve.GetSpellDamage(qtarget, SpellSlot.Q) >= qtarget.Health)
                        {
                            Q.Cast(qenemy);
                        }
                        var eenemy = TargetSelector.GetTarget(E.Range, DamageType.Physical);
                        if (MiscMenu["kse"].Cast <CheckBox>().CurrentValue&& E.IsReady())
                        {
                            try
                            {
                                foreach (
                                    var etarget in
                                    HeroManager.Enemies.Where(
                                        hero =>
                                        hero.IsValidTarget(E.Range) && !hero.IsDead && !hero.IsZombie))
                                {
                                    if (Eve.GetSpellDamage(qtarget, SpellSlot.E) >= etarget.Health)
                                    {
                                        E.Cast(eenemy);
                                    }
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                }
                catch
                {
                }
            }
        }
Example #24
0
        private static void Ultimate()
        {
            var almin  = Ulti["Alhp"].Cast <Slider>().CurrentValue;
            var useR2  = Ulti["ultiR2"].Cast <CheckBox>().CurrentValue;
            var target = EntityManager.Heroes.Allies.Where(a => a.IsValidTarget() && a.Distance(_Player.Position) <= R.Range && !a.IsDead && !a.IsZombie && !a.HasBuff("kindredrnodeathbuff") && !a.HasBuff("Undying Rage") && !a.HasBuff("JudicatorIntervention") && !a.HasBuff("Recall"));

            foreach (var target2 in target)
            {
                if (useR2 && !Player.Instance.IsInShopRange() && R.IsReady() && (!Player.Instance.IsRecalling()) && (target2.Position.CountEnemiesInRange(R.Range) >= 1 || Tru(target2.Position)))
                {
                    if (Ulti["useRon" + target2.ChampionName].Cast <CheckBox>().CurrentValue&& (target2.HealthPercent <= almin || target2.HasBuff("ZedR")))
                    {
                        R.Cast(target2);
                    }
                }
            }
        }
Example #25
0
        private static void OnLaneClear()
        {
            var count =
                EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.ServerPosition,
                                                                Player.AttackRange, false).Count();
            var tawah  = EntityManager.Turrets.Enemies.FirstOrDefault(t => !t.IsDead && t.IsInRange(Player, 800));
            var source =
                EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.ServerPosition,
                                                                Player.AttackRange).OrderByDescending(a => a.MaxHealth).FirstOrDefault();
            var sourceE =
                EntityManager.MinionsAndMonsters.GetLaneMinions()
                .FirstOrDefault(m => m.IsValidTarget(Player.AttackRange) && m.GetBuffCount("tristanaecharge") > 0);

            if (count == 0)
            {
                return;
            }
            if (E.IsReady() && TristanaMenu.LcE() && source.IsValidTarget(E.Range) &&
                Player.ManaPercent >= TristanaMenu.LcM())
            {
                E.Cast(source);
                Orbwalker.ForcedTarget = sourceE;
            }
            if (Q.IsReady() && TristanaMenu.LcQ() && source.IsValidTarget(Q.Range) &&
                Player.ManaPercent >= TristanaMenu.LcM())
            {
                Q.Cast();
            }
            if (W.IsReady() && TristanaMenu.LcW() && TristanaMenu.LcW1() <= count &&
                Player.ManaPercent >= TristanaMenu.LcM())
            {
                if (source != null)
                {
                    W.Cast(source.Position);
                }
            }
            if (tawah == null)
            {
                return;
            }
            if (TristanaMenu.LcE1() && tawah.IsInRange(Player, E.Range) && E.IsReady() &&
                Player.ManaPercent >= TristanaMenu.LcM())
            {
                E.Cast(tawah);
                Q.Cast();
            }

            if (TristanaMenu.LcQ() && tawah.IsInRange(Player, Q.Range) && Q.IsReady() &&
                Player.ManaPercent >= TristanaMenu.LcM())
            {
                Q.Cast();
            }
        }
Example #26
0
        private static void AntiGapCloser(AIHeroClient sender, Gapcloser.GapcloserEventArgs e)
        {
            if (!e.Sender.IsValidTarget() || e.Sender.Type != Player.Type || !e.Sender.IsEnemy)
            {
                return;
            }

            if (E.IsReady() && E.IsInRange(sender) && FappadredMenu.gapcloserE())
            {
                E.Cast(sender);
            }
            if (W.IsReady() && W.IsInRange(sender) && FappadredMenu.gapcloserW())
            {
                W.Cast();
            }
        }
Example #27
0
        private static void AntiGapCloser(AIHeroClient sender, Gapcloser.GapcloserEventArgs e)
        {
            if (!e.Sender.IsValidTarget() || e.Sender.Type != Player.Type || !e.Sender.IsEnemy)
            {
                return;
            }

            if (E.IsReady() && E.IsInRange(sender) && OwlsticksMenu.gapcloserE())
            {
                E.Cast(sender);
            }
            if (Q.IsReady() && Q.IsInRange(sender) && OwlsticksMenu.gapcloserQ())
            {
                Q.Cast(sender);
            }
        }
Example #28
0
        private static void KillSteal()
        {
            // E Killsteal
            if (_e.IsReady())
            {
                foreach (var enemy in EntityManager.Heroes.Enemies)
                {
                    if (enemy.Distance(_user.Position) <= 550 &&
                        enemy.TotalShieldHealth() <= _user.GetSpellDamage(enemy, SpellSlot.E))
                    {
                        Player.CastSpell(SpellSlot.E, enemy);
                        return;
                    }
                }
            }

            // Autoattack creeps
            var killableMinion = EntityManager.MinionsAndMonsters.EnemyMinions.OrderBy(a => a.Health)
                                 .FirstOrDefault(b => b.Distance(_user) <= 500);

            if (killableMinion != null && !killableMinion.IsDead && killableMinion.BaseSkinName.Contains("Siege") &&
                killableMinion.Health <= _user.GetSpellDamage(killableMinion, SpellSlot.Q))
            {
                Player.CastSpell(SpellSlot.Q, killableMinion);
                return;
            }
            if (killableMinion != null && !killableMinion.IsDead &&
                killableMinion.Health <= _user.GetAutoAttackDamage(killableMinion, true))
            {
                Player.IssueOrder(GameObjectOrder.AttackTo, killableMinion);
                return;
            }

            // And jungle too
            var jungleCreep =
                EntityManager.MinionsAndMonsters.GetJungleMonsters()
                .OrderBy(a => a.Health)
                .FirstOrDefault(b => b.Distance(_user) <= 500);

            if (jungleCreep != null && !jungleCreep.IsDead &&
                jungleCreep.Health <= _user.GetAutoAttackDamage(jungleCreep, true))
            {
                Player.IssueOrder(GameObjectOrder.AttackTo, jungleCreep);
            }
        }
Example #29
0
        private static void QRCombo()
        {
            var target = TargetSelector.GetTarget(E.Range, DamageType.Magical);

            if (Player.Instance.Spellbook.GetSpell(SpellSlot.W).Name == "LeblancSlideReturn" && !W.IsReady())
            {
                if (target == null)
                {
                    return;
                }

                if (ComboMenu["E"].Cast <CheckBox>().CurrentValue&& E.IsReady() && E.IsInRange(target))
                {
                    E.Cast(target);
                }
            }
            else if (!Q.IsReady() && !QUlti.IsReady())
            {
                if (target == null)
                {
                    return;
                }
                if (ComboMenu["W"].Cast <CheckBox>().CurrentValue&& W.IsReady() && Player.Instance.Spellbook.GetSpell(SpellSlot.W).Name == "LeblancSlide" && Qmarked(target))
                {
                    W.Cast(target);
                }
            }

            else
            {
                if (target == null)
                {
                    return;
                }
                if (target.IsValidTarget() && Q.IsReady() && Q.IsInRange(target) && ComboMenu["Q"].Cast <CheckBox>().CurrentValue)
                {
                    Q.Cast(target);
                }

                if (target.IsValidTarget() && !Q.IsReady() && ComboMenu["R"].Cast <CheckBox>().CurrentValue&& QUlti.IsReady() && QUlti.IsInRange(target) && Player.Instance.Spellbook.GetSpell(SpellSlot.R).Name == "LeblancChaosOrbm")
                {
                    QUlti.Cast(target);
                }
            }
        }
Example #30
0
        internal override void OnPassive()
        {
            if (!R.IsReady())
            {
                return;
            }
            var buddyInDanger = EntityManager.Heroes.Allies.Where(u => !u.IsDead && !u.IsMe &&
                                                                  (PassiveMenu.GetValue("use.R.myHealth") * u.CountEnemiesInRange(900) <= Champions.Me.HealthPercent || (E.IsReady() && u.IsValidTarget(PassiveMenu.GetValue("use.R.distance2")))) &&
                                                                  (u.CountEnemiesInRange(900) >= 1) &&
                                                                  (Champions.Me.CountEnemiesInRange(PassiveMenu.GetValue("use.R.distance")) == 0 || u.IsValidTarget(PassiveMenu.GetValue("use.R.distance2"))) &&
                                                                  (u.HealthPercent <= PassiveMenu.GetValue("use.R.belowHealth") || (Prediction.Health.GetPrediction(u, 500) / u.MaxHealth * 100) <= PassiveMenu.GetValue("use.R.belowHealth")) &&
                                                                  PassiveMenu.IsActiveOnHeroList("use.R.on", u)).OrderBy(u => u.Health).FirstOrDefault();

            if (buddyInDanger != null)
            {
                R.Cast(buddyInDanger);
            }
        }
Example #31
0
        /// It will return the damage but you need to set them before getting the damage
        public static float GetDamage(this Obj_AI_Base target, SpellSlot slot)
        {
            var damageType = DamageType.Mixed;
            var AD         = Player.Instance.FlatPhysicalDamageMod;
            var AP         = Player.Instance.FlatMagicDamageMod;
            var sLevel     = Player.GetSpell(slot).Level - 1;

            //You can get the damage information easily on Wiki

            var dmg = 0f;

            switch (slot)
            {
            case SpellSlot.Q:
                if (Q.IsReady())
                {
                    dmg += new float[] { 80, 125, 170, 215, 260 }
                }
Example #32
0
        public static void Activator()
        {
            var target = TargetSelector.GetTarget(_Ignite.Range, DamageType.True);

            if (target == null)
            {
                return;
            }
            if (ActivatorMenu["IGNI"].Cast <CheckBox>().CurrentValue&& _Ignite.IsReady() && target.IsValidTarget())

            {
                if (target.Health + target.AttackShield <
                    _Player.GetSummonerSpellDamage(target, DamageLibrary.SummonerSpells.Ignite))
                {
                    _Ignite.Cast(target);
                }
            }
        }
Example #33
0
        public void Combo(AIHeroClient target)
        {
            if (target.HealthPercent <= 60)
            {
                if (target == null || target.IsZombie)
                {
                    return;
                }

                if (E.IsReady() && target.IsValidTarget(E.Range))
                {
                    E.Cast(target);
                }

                if (Q.IsReady() && target.IsValidTarget(Q.Range))
                {
                    Q.Cast();
                }

                if (W.IsReady() && target.IsValidTarget(W.Range) &&
                    !target.IsInvulnerable &&
                    target.Position.CountEnemiesInRange(800) < 2)
                {
                    if (W.GetPrediction(target).HitChancePercent >= 70)
                    {
                        var optimizedCircleLocation = OKTRGeometry.GetOptimizedCircleLocation(W, target);
                        if (optimizedCircleLocation != null)
                        {
                            W.Cast(optimizedCircleLocation.Value.Position.To3D());
                        }
                    }
                }


                if (R.IsReady())
                {
                    if (R.IsReady() && target.IsValidTarget(R.Range) && !target.IsInvulnerable &&
                        target.Health < Player.Instance.GetSpellDamage(target, SpellSlot.R))
                    {
                        R.Cast(target);
                    }
                }
            }
        }
Example #34
0
        private static void Game_OnUpdate(EventArgs args)
        {
            if (MobsToSmite["killsmite"].Cast<CheckBox>().CurrentValue)
            {
                var KillEnemy =
                    EntityManager.Heroes.Enemies.FirstOrDefault(hero => hero.IsValidTarget(500f)
                        && SmiteChampDamage() >= hero.Health);
                if (KillEnemy != null)
                    Player.CastSpell(Smite.Slot, KillEnemy);
            }
                if (SmiteGHMenu["active"].Cast<CheckBox>().CurrentValue || SmiteGHMenu["activekey"].Cast<KeyBind>().CurrentValue)
                {
                    double SpellDamage = 0;
                    Monster = GetNearest(ObjectManager.Player.ServerPosition);
                        if (Monster != null && MobsToSmite[Monster.BaseSkinName].Cast<CheckBox>().CurrentValue)
                        {
                            if (SupportedChampions.Contains(ObjectManager.Player.ChampionName))
                            {
                                if (SmiteGHMenu["disable"].Cast<CheckBox>().CurrentValue)
                                {
                                    switch (ObjectManager.Player.ChampionName)
                                    {
                                        #region Diana
                                        case "Diana":
                                            {
                                                Spell.Skillshot Q = new Spell.Skillshot(SpellSlot.Q, (uint)895, SkillShotType.Circular);
                                                Spell.Targeted R = new Spell.Targeted(SpellSlot.R, (uint)825);

                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.DianaQ(Q.Level) + GetDamages.DianaR(R.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Q.Cast(Monster.ServerPosition);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                else if (Smite.IsReady() && R.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < R.Range
                                                && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range && GetDamages.HasBuffs(Monster, "dianamoonlight"))
                                                {
                                                    SpellDamage = GetDamages.DianaR(R.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        R.Cast(Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Evelynn
                                        case "Evelynn":
                                            {
                                                Spell.Targeted E = new Spell.Targeted(SpellSlot.E, (uint)(225f + 2 * 65f));
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && E.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < E.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Evelynn(E.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        E.Cast(Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Irelia
                                        case "Irelia":
                                            {
                                                Spell.Targeted Q = new Spell.Targeted(SpellSlot.Q, (uint)650f + 20);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Irelia(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Q.Cast(Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Amumu
                                        case "Amumu":
                                            {
                                                Spell.Skillshot Q = new Spell.Skillshot(SpellSlot.Q, (uint)1100f + 20, SkillShotType.Linear);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Amumu(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Q.Cast(Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Hecarim
                                        case "Hecarim":
                                            {
                                                Spell.Active Q = new Spell.Active(SpellSlot.Q, (uint)350f + 20);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Hecarim(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Q.Cast();
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region MonkeyKing
                                        case "MonkeyKing":
                                            {
                                                Spell.Active Q = new Spell.Active(SpellSlot.Q, (uint)100f + 20);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.MonkeyKing(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Q.Cast();
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Pantheon
                                        case "Pantheon":
                                            {
                                                Spell.Targeted Q = new Spell.Targeted(SpellSlot.Q, (uint)600f + 20);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Pantheon(Q.Level, Monster);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Q.Cast(Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Olaf
                                        case "Olaf":
                                            {
                                                Spell.Targeted E = new Spell.Targeted(SpellSlot.E, (uint)325f + 20);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && E.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < E.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Olaf(E.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        E.Cast(Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Volibear
                                        case "Volibear":
                                            {
                                                Spell.Targeted W = new Spell.Targeted(SpellSlot.W, (uint)400f + 20);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && W.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < W.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Volibear(W.Level, Monster);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        W.Cast(Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region WarWick
                                        case "Warwick":
                                            {
                                                Spell.Targeted Q = new Spell.Targeted(SpellSlot.Q, (uint)400f + 20);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Warwick(Q.Level, Monster);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(Q.Slot, Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        //Will add Spell's E too soon! ^-^
                                        #region LeeSin
                                        case "LeeSin":
                                            {
                                                Spell.Skillshot Q = new Spell.Skillshot(SpellSlot.Q, (uint)1300f, SkillShotType.Linear);
                                                Spell.Active Q2 = new Spell.Active(SpellSlot.Q, (uint)1500f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (GetDamages.BuffedEnemy != null)
                                                        SpellDamage = GetDamages.Q2Damage(Monster, Q2.Level);
                                                    else
                                                        SpellDamage = GetDamages.QDamage(Monster, Q.Level - 1) + GetDamages.Q2Damage(Monster, Q2.Level - 1);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        if (GetDamages.BuffedEnemy != null)
                                                            Q2.Cast(Monster);
                                                        else
                                                            Q.Cast(Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Nunu
                                        case "Nunu":
                                            {
                                                Spell.Targeted Q = new Spell.Targeted(SpellSlot.Q, (uint)200f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Nunu(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(Q.Slot, Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region ChoGath
                                        case "Chogath":
                                            {
                                                Spell.Targeted R = new Spell.Targeted(SpellSlot.R, (uint)175f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && R.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < R.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.ChoGath();
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(R.Slot, Monster);
                                                        // Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Shaco
                                        case "Shaco":
                                            {
                                                Spell.Targeted E = new Spell.Targeted(SpellSlot.E, (uint)625f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && E.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < E.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Shaco(E.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(E.Slot, Monster);
                                                        //  Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Vi
                                        case "Vi":
                                            {
                                                Spell.Active E = new Spell.Active(SpellSlot.E, (uint)600f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && E.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < E.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Vi(E.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(E.Slot, Monster);
                                                        //  Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region MasterYi
                                        case "MasterYi":
                                            {
                                                Spell.Targeted Q = new Spell.Targeted(SpellSlot.Q, (uint)600f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Master(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(Q.Slot, Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Rengar
                                        case "Rengar":
                                            {
                                                Spell.Active Q = new Spell.Active(SpellSlot.Q, (uint)ObjectManager.Player.AttackRange);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Rengar(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(Q.Slot, Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Nasus
                                        case "Nasus":
                                            {
                                                Spell.Active Q = new Spell.Active(SpellSlot.Q, (uint)ObjectManager.Player.AttackRange);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Nasus(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(Q.Slot, Monster);
                                                        //Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region KhaZix
                                        case "Khazix":
                                            {
                                                Spell.Targeted Q = new Spell.Targeted(SpellSlot.Q, (uint)325f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Khazix(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(Q.Slot, Monster);
                                                        // Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Fizz
                                        case "Fizz":
                                            {
                                                Spell.Targeted Q = new Spell.Targeted(SpellSlot.Q, (uint)550f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Fizz(Q.Level);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(Q.Slot, Monster);
                                                        //    Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion
                                        #region Elise
                                        case "Elise":
                                            {
                                                Spell.Targeted Q = new Spell.Targeted(SpellSlot.Q, (uint)475f);
                                                //Smite and Spell  ==> OKAY
                                                if (Smite.IsReady() && Q.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Q.Range
                                                    && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    SpellDamage = GetDamages.Elise(Q.Level, Monster);
                                                    TotalDamage = SpellDamage + GetSmiteDamage();
                                                    if (Monster.Health <= TotalDamage)
                                                    {
                                                        Player.CastSpell(Q.Slot, Monster);
                                                        // Smite.Cast(Monster);
                                                    }
                                                }
                                                //If Spell is busy, Go Smite only! ^_^
                                                else if (Smite.IsReady() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                {
                                                    if (Monster.Health <= GetSmiteDamage())
                                                    {
                                                        Smite.Cast(Monster);
                                                    }
                                                    TotalDamage = 0;
                                                }
                                                break;
                                            }
                                        #endregion

                                        default:
                                            {
                                                if (Smite.IsReady() && Monster.Health <= GetSmiteDamage() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                                                    Smite.Cast(Monster);
                                                TotalDamage = 0;
                                            }
                                            break;
                                    }
                                }
                            }

                            if (Smite.IsReady() && Monster.Health <= GetSmiteDamage() && Vector3.Distance(ObjectManager.Player.ServerPosition, Monster.ServerPosition) < Smite.Range)
                            {
                                Smite.Cast(Monster);
                                TotalDamage = 0;
                            }
                        }
                }
        }
Example #35
0
        public static void KS()
        {
            var target = TargetSelector2.GetTarget(GetDynamicRange() + 100, DamageType.Magical);
            float qdmg = EloBuddy.SDK.DamageLibrary.GetSpellDamage(_Player, target, EloBuddy.SpellSlot.Q); // damage of cho Q
            float wdmg = EloBuddy.SDK.DamageLibrary.GetSpellDamage(_Player, target, EloBuddy.SpellSlot.W); // damage of cho W
            float rdmg = EloBuddy.SDK.DamageLibrary.GetSpellDamage(_Player, target, EloBuddy.SpellSlot.R); // damage of cho R
            var summonerIgnite = Player.Spells.FirstOrDefault(o => o.SData.Name == "summonerdot"); // Thanks finn

            if (summonerIgnite != null)
            {
                SpellSlot igSlot = extent.GetSpellSlotFromName(_Player, "summonerdot");
                ignite = new Spell.Targeted(igSlot, 600);
                if (Program.KSMenu["igniteKill"].Cast<CheckBox>().CurrentValue && ignite.IsReady())
                {
                    if (getIgniteDamage() > target.Health - 10) //-10 on enemy health for safecheck
                    {
                        ignite.Cast(target);
                    }
                }
            }

            if (Program.KSMenu["qKS"].Cast<CheckBox>().CurrentValue && qdmg >= target.Health - 10 && Program.Q.IsReady() && target.IsValidTarget(Program.Q.Range))
            {
                var qPred = Program.Q.GetPrediction(target);
                if (qPred.HitChance >= HitChance.High)
                {
                    Program.Q.Cast(target);
                }
            }
            else if (Program.KSMenu["wKS"].Cast<CheckBox>().CurrentValue && wdmg >= target.Health - 10 && Program.W.IsReady() && target.IsValidTarget(Program.W.Range))
            {
                Program.W.Cast(target);
            }
            else if (Program.KSMenu["rKS"].Cast<CheckBox>().CurrentValue && rdmg >= target.Health - 10 && Program.R.IsReady() && target.IsValidTarget(Program.R.Range))
            {
                Program.R.Cast(target);
            }
        }
Example #36
0
        public static void UseIgnite(List<Obj_AI_Base> enemies, bool ks)
        {
            Spell.Targeted ignite = new Spell.Targeted(Vi.GetSpellSlotFromName("SummonerDot"), 600, DamageType.True);

            if (ignite.Slot == SpellSlot.Unknown || !ignite.IsReady())
                return;

            Obj_AI_Base unit = enemies.Where(a =>
                a.IsInRange(Vi, ignite.Range)
                && (!ks || Calculations.Ignite(a) >= a.Health)
                && a.MeetsCriteria()).FirstOrDefault();

            if (unit != null)
                hasDoneActionThisTick = ignite.Cast(unit);
        }
Example #37
0
 /// <summary>
 /// Handles ignite (doesn't work always/buggy?)
 /// </summary>
 /// <param name="target"></param>
 private static void HandleIgnite()
 {
     if(!KillStealMenu["useignite"].Cast<CheckBox>().CurrentValue) return;
     var ignite = new Spell.Targeted(IgniteSlot, 600);
     if(ignite.IsReady() && ignite.IsInRange(target) && target != null) ignite.Cast(target);
 }
Example #38
0
        public static void UseSmite(List<Obj_AI_Base> enemies, bool ks)
        {
            Spell.Targeted blueSmite = new Spell.Targeted(Vi.GetSpellSlotFromName("S5_SummonerSmitePlayerGanker"), 500, DamageType.True);
            Spell.Targeted redSmite = new Spell.Targeted(Vi.GetSpellSlotFromName("S5_SummonerSmiteDuel"), 500, DamageType.True);

            if (blueSmite.Slot != SpellSlot.Unknown && blueSmite.IsReady())
            {
                var target = enemies.Where(a => a.MeetsCriteria() && a.IsTargetable && a.IsInRange(Vi, blueSmite.Range) && (!ks || (a.Type == GameObjectType.AIHeroClient && a.Health <= 54 + 6 * Vi.Level) || (a.Type != GameObjectType.AIHeroClient && a.Health <= Calculations.Smite()))).FirstOrDefault();

                if(target != null)
                    blueSmite.Cast(target);
            }

            if (redSmite.Slot != SpellSlot.Unknown && redSmite.IsReady())
            {
                var target = enemies.Where(a => a.MeetsCriteria() && a.IsTargetable && a.IsInRange(Vi, redSmite.Range) && a.IsInRange(Vi, Vi.GetAutoAttackRange()) && (!ks || (a.Type == GameObjectType.AIHeroClient && a.Health <= 54 + 6 * Vi.Level) || (a.Type != GameObjectType.AIHeroClient && a.Health <= Calculations.Smite()))).FirstOrDefault();

                if (target != null)
                    redSmite.Cast(target);
            }
        }