Пример #1
0
        public static bool EnemyHasShield(Obj_AI_Hero target)
        {
            var status = false;

            if (target.HasBuff("blackshield"))
            {
                status = true;
            }

            if (target.HasBuff("sivire"))
            {
                status = true;
            }

            if (target.HasBuff("nocturneshroudofdarkness"))
            {
                status = true;
            }

            if (target.HasBuff("bansheesveil"))
            {
                status = true;
            }
            return status;
        }
Пример #2
0
        private static int calcDamage(Obj_AI_Hero target)
        {
            //var vTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);
            // normal damage 2 Auto Attacks
            var AA = Player.CalcDamage(target, Damage.DamageType.Physical, Player.FlatPhysicalDamageMod + Player.BaseAttackDamage);
            var damage = AA;

            if (_igniteSlot != SpellSlot.Unknown &&
            Player.SummonerSpellbook.CanUseSpell(_igniteSlot) == SpellState.Ready)
            damage += ObjectManager.Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);

            if (Items.HasItem(3153) && Items.CanUseItem(3153))
            damage += Player.GetItemDamage(target, Damage.DamageItems.Botrk); //ITEM BOTRK

            if (E.IsReady() && Config.Item("UseE").GetValue<bool>()) // edamage
            {
            damage += Player.CalcDamage(target, Damage.DamageType.Physical,
            10 + (E.Level * 30) + (Player.FlatPhysicalDamageMod * 0.2));
            }

            if (Q.IsReady() && Config.Item("UseQ").GetValue<bool>()) // qdamage
            {
            damage += Player.CalcDamage(target, Damage.DamageType.Physical,
            30 + (Q.Level * 40) + (Player.FlatPhysicalDamageMod * 0.65));
            }

            if (!IsValorMode() && target.HasBuff("QuinnW") && E.IsReady())
            {
            damage += Player.CalcDamage(target, Damage.DamageType.Physical,
            15 + (Player.Level * 10) + (Player.FlatPhysicalDamageMod * 0.5)) * 2; // //if target has buff and E is ready passive*2
            }

            if (!IsValorMode() && !target.HasBuff("QuinnW") && E.IsReady()) // if e ISANT ready then calculate only 1 time passive
            {
            damage += Player.CalcDamage(target, Damage.DamageType.Physical,
            15 + (Player.Level * 10) + (Player.FlatPhysicalDamageMod * 0.5)); // passive
            }

            if (!IsValorMode() && target.HasBuff("QuinnW") && !E.IsReady()) // if e ISANT ready then calculate only 1 time passive
            {
            damage += Player.CalcDamage(target, Damage.DamageType.Physical,
            15 + (Player.Level * 10) + (Player.FlatPhysicalDamageMod * 0.5)); // passive
            }

            if (R.IsReady() && Config.Item("UseR").GetValue<bool>()) // rdamage
            {
            if (Player.CalcDamage(target, Damage.DamageType.Physical, (75 + (R.Level * 55) + (Player.FlatPhysicalDamageMod * 0.5)) * (2 - ((target.Health - damage - AA*3) / target.MaxHealth))) > target.Health)
            {
                damage += Player.CalcDamage(target, Damage.DamageType.Physical, (75 + (R.Level * 55) + (Player.FlatPhysicalDamageMod * 0.5)) * (2 - ((target.Health - damage) / target.MaxHealth)));
            }
            }

            return (int)damage;
        }
Пример #3
0
 public static bool ShouldUseCleanse(Obj_AI_Hero target)
 {
     return target.HasBuffOfType(BuffType.Charm)
         || target.HasBuffOfType(BuffType.Flee)
         || target.HasBuffOfType(BuffType.Polymorph)
         || target.HasBuffOfType(BuffType.Snare)
         || target.HasBuffOfType(BuffType.Stun)
         || target.HasBuffOfType(BuffType.Taunt)
         || target.HasBuff("summonerexhaust")
         || target.HasBuff("summonerdot");
 }
Пример #4
0
 /// <summary>
 /// Defines whether the player should use cleanse.
 /// </summary>
 public static bool ShouldUseCleanse(Obj_AI_Hero target)
 =>
     !ObjectManager.Player.IsInvulnerable &&
     !IsSpellShielded(ObjectManager.Player) &&
     (
         Bools.IsValidStun() ||
         Bools.IsValidSnare() ||
         target.HasBuff("summonerdot") ||
         target.HasBuff("summonerexhaust") ||
         target.HasBuffOfType(BuffType.Flee) ||
         target.HasBuffOfType(BuffType.Charm) ||
         target.HasBuffOfType(BuffType.Taunt) ||
         target.HasBuffOfType(BuffType.Polymorph)
     );
Пример #5
0
 public static bool Check(Obj_AI_Hero target, DamageType damageType = DamageType.True, bool ignoreShields = true)
 {
     if (target.HasBuffOfType(BuffType.Invulnerability) || target.IsInvulnerable)
     {
         return true;
     }
     foreach (var invulnerable in Items)
     {
         if (invulnerable.Champion == null || invulnerable.Champion == target.ChampionName)
         {
             if (invulnerable.DamageType == null || invulnerable.DamageType == damageType)
             {
                 if (!ignoreShields && invulnerable.IsShield && target.HasBuff(invulnerable.BuffName))
                 {
                     return true;
                 }
                 if (invulnerable.CustomCheck != null)
                 {
                     return CustomCheck(invulnerable, target, damageType);
                 }
             }
         }
     }
     return false;
 }
 public static bool Check(Obj_AI_Hero target, DamageType damageType = DamageType.True, bool ignoreShields = true)
 {
     try
     {
         if (target.HasBuffOfType(BuffType.Invulnerability) || target.IsInvulnerable)
         {
             return true;
         }
         foreach (var invulnerable in Items)
         {
             if (invulnerable.Champion == null || invulnerable.Champion == target.ChampionName)
             {
                 if (invulnerable.DamageType == null || invulnerable.DamageType == damageType)
                 {
                     if (!ignoreShields && invulnerable.IsShield && target.HasBuff(invulnerable.BuffName))
                     {
                         return true;
                     }
                     if (invulnerable.CustomCheck != null && CustomCheck(invulnerable, target, damageType))
                     {
                         return true;
                     }
                 }
             }
         }
         return false;
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return false;
 }
Пример #7
0
        public override void Execute(Obj_AI_Hero target)
        {
            if (target == null)
                target = TargetSelector.GetTarget(1200, TargetSelector.DamageType.Magical);
            if (target == null) return;

            var dmgPerBounce = ObjectManager.Player.GetSpellDamage(target, Slot) + BrandCombo.GetPassiveDamage(target);
            if (dmgPerBounce > target.Health && target.Distance(ObjectManager.Player) > 750)
            {
                TryBridgeUlt(target);

                //   Console.WriteLine("ayy lmao bridge bois");
            }

            if (dmgPerBounce > target.Health && !Provider.ShouldBeDead(target) && ObjectManager.Player.GetAutoAttackDamage(target, true) < target.Health && ((_otherSkills.All(skill => skill.Instance.State != SpellState.Ready && skill.Instance.State != SpellState.Surpressed /*&& !skill.IsSafeCasting(1)*/) /*|| target.Distance(ObjectManager.Player) > 650*/) || ObjectManager.Player.GetSpellDamage(target, SpellSlot.Q) + dmgPerBounce + ObjectManager.Player.GetAutoAttackDamage(target) > target.Health && !target.HasBuff("brandablaze") && target.Distance(ObjectManager.Player) < 750))
            {
                if (ObjectManager.Player.HealthPercent - target.HealthPercent < OverkillPercent || !AntiOverkill || IgnoreAntiOverkillOnFlee && target.Distance(ObjectManager.Player) > ObjectManager.Player.AttackRange)
                {
                    Cast(target);
                }
                else if (ObjectManager.Player.HealthPercent < target.HealthPercent && IgniteManager.CanBeUsed() && IgniteManager.GetDamage() + dmgPerBounce > target.Health)
                {
                    if (target.Distance(ObjectManager.Player) < 600)
                        IgniteManager.UseIgnite(target);
                    Cast(target);
                }
            }

            // if (target.Distance(ObjectManager.Player) > 750) return;
            var inBounce = new bool[HeroManager.Enemies.Count];
            var canBounce = BounceCheck(target, inBounce);
            if (canBounce)
            {

                var inBounceEnemies = HeroManager.Enemies.Where(enemy => inBounce[HeroManager.Enemies.IndexOf(enemy)]).ToArray();
                var distance = target.Distance(ObjectManager.Player);

                var bounceCount = inBounce.Count(item => item);
                if (bounceCount <= 1) return;
                //Console.WriteLine("bounce r " + bounceCount);

                if ((inBounceEnemies.Any(enemy => (dmgPerBounce > enemy.Health && MaxDamage > enemy.Health)) && (bounceCount == 2 || RiskyUlt)))
                {
                    TryUlt(target, inBounceEnemies, distance);
                }
                else if (bounceCount == 2 && dmgPerBounce * 3 > target.Health && MaxDamage > target.Health && distance < 750 && RiskyUlt)
                {
                    Cast(target);
                }
                else if (dmgPerBounce * 2 > target.Health && MaxDamage > target.Health)
                {
                    TryUlt(target, inBounceEnemies, distance);
                }
                else if (UltNonKillable && MinBounceTargets <= bounceCount)
                {
                    TryUlt(target, inBounceEnemies, distance, false);
                }
            }
        }
Пример #8
0
        public override void Interruptable(ComboProvider combo, Obj_AI_Hero sender, ComboProvider.InterruptableSpell interruptableSpell, float endTime)
        {
            var distance = sender.Distance(ObjectManager.Player);
            if (sender.HasBuff("brandablaze") || Provider.IsMarked(sender) || !_brandQ.CouldHit(sender) || !InterruptW) return;

            if (Cast(sender) == CastStates.SuccessfullyCasted)
                Provider.SetMarked(sender); //Todo: risky, keep an eye on this. If the W misses u r f****d
        }
Пример #9
0
        public static float GetRealDamage(Obj_AI_Hero target)
        {
            if (target.HasBuff("ferocioushowl"))
            {
                return Program.E.GetDamage(target) * 0.7f;
            }

            return Program.E.GetDamage(target);
        }
Пример #10
0
 public static bool Check(Obj_AI_Hero target, DamageType damageType = DamageType.True, bool ignoreShields = true)
 {
     return target.HasBuffOfType(BuffType.Invulnerability) || target.IsInvulnerable ||
            (from invulnerable in Items
                where invulnerable.Champion == null || invulnerable.Champion == target.ChampionName
                where invulnerable.DamageType == null || invulnerable.DamageType == damageType
                where target.HasBuff(invulnerable.BuffName)
                where !ignoreShields || !invulnerable.IsShield
                select invulnerable).Any(
                    invulnerable =>
                        invulnerable.CheckFunction == null || CheckFunction(invulnerable, target, damageType));
 }
Пример #11
0
        //some part of combo from diabaths
        private void Combo(Obj_AI_Hero t)
        {
 

            if (R.IsReady())
            {
                if (t.IsValidTarget(Q.Range) && !haveUlti)
                    if (!t.HasBuff("JudicatorIntervention") && !t.HasBuff("Undying Rage"))
                        R.CastIfHitchanceEquals(t, HitChance.Medium);
            }
            if ( E.IsReady() && t.IsValidTarget(Q.Range) && Q.IsReady())
            {
                //xsalice Code
                var vec = t.ServerPosition - Player.ServerPosition;
                var castBehind = E.GetPrediction(t).CastPosition + Vector3.Normalize(vec) * 100;
                E.Cast(castBehind);
            }
            if (t.IsValidTarget(Q.Range) && Q.IsReady() && _epos != default(Vector3) &&
                t.IsValidTarget(200, true, _epos))
            {
                Q.Cast(_epos);
            }

            if (W.IsReady())
            {
                if (t.IsValidTarget(W.Range))
                    W.Cast();
            }
            if (Q.IsReady() && !E.IsReady())
            {
                if (t.IsValidTarget(Q.Range))
                    Q.Cast(t, UsePackets, true);
            }
            if (R.IsReady() && !haveUlti)
            {
                if (GetNumberHitByR(t) >= 2)
                    R.Cast(t, UsePackets, true);
            }
        }
Пример #12
0
 /// <summary>
 /// Judge Target MoveMent Status (This Part From SebbyLib)
 /// </summary>
 /// <param name="Target">Target</param>
 /// <returns></returns>
 public static bool CanMove(Obj_AI_Hero Target)
 {
     if (Target.MoveSpeed < 50 || Target.IsStunned || Target.HasBuffOfType(BuffType.Stun) ||
         Target.HasBuffOfType(BuffType.Fear) || Target.HasBuffOfType(BuffType.Snare) ||
         Target.HasBuffOfType(BuffType.Knockup) || Target.HasBuff("Recall") ||
         Target.HasBuffOfType(BuffType.Knockback) || Target.HasBuffOfType(BuffType.Charm) ||
         Target.HasBuffOfType(BuffType.Taunt) || Target.HasBuffOfType(BuffType.Suppression)
         || (Target.IsCastingInterruptableSpell() && !Target.IsMoving))
     {
         return false;
     }
     else
         return true;
 }
Пример #13
0
        public static float GetKsDamage(Obj_AI_Hero t, Spell QWER)
        {
            var totalDmg = QWER.GetDamage(t);
            totalDmg -= t.HPRegenRate;

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

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

                if (t.ChampionName == "Blitzcrank" && !t.HasBuff("BlitzcrankManaBarrierCD") && !t.HasBuff("ManaBarrier"))
                {
                    totalDmg -= t.Mana / 2f;
                }
            }
            //if (Thunderlord && !Player.HasBuff( "masterylordsdecreecooldown"))
            //totalDmg += (float)Player.CalcDamage(t, Damage.DamageType.Magical, 10 * Player.Level + 0.1 * Player.FlatMagicDamageMod + 0.3 * Player.FlatPhysicalDamageMod);
            totalDmg += (float)OktwCommon.GetIncomingDamage(t);
            return totalDmg;
        }
Пример #14
0
 public static float Q2Damage(Obj_AI_Hero target,Spell Q)
 {
     if (target == null)
     {
         return 0f;
     }
     var damage = 0f;
     if (target.HasBuff("BlindMonkQOne") && Q.Instance.Name == "blindmonkqtwo")
     {
         var total = Q2Dmg[Q.Level - 1] + 0.9*ObjectManager.Player.FlatPhysicalDamageMod +
                     0.08*(target.MaxHealth - target.Health);
         damage += (float)ObjectManager.Player.CalcDamage(target, Damage.DamageType.Physical, total);
     }
     return (float)damage;
 }
Пример #15
0
        public override void Execute(Obj_AI_Hero target)
        {
            if (_brandQWE.Any(spell => spell.Instance.State == SpellState.Ready || spell.Instance.CooldownExpires > Game.Time && spell.Instance.CooldownExpires - Game.Time < spell.Instance.Cooldown / 2f) || _w.Instance.Cooldown - (_w.Instance.CooldownExpires - Game.Time) < 1)
            {
                if ((!target.HasBuff("brandablaze") || target.GetBuff("brandablaze").EndTime - Game.Time < Delay) && !Provider.IsMarked(target) && !(ObjectManager.Player.GetSpellDamage(target, Instance.Slot) + ObjectManager.Player.GetAutoAttackDamage(target, true) > target.Health))
                    return;
            }

            //if ((((!target.HasBuff("brandablaze") || target.GetBuff("brandablaze").EndTime - Game.Time < Delay) && !Provider.IsMarked(target)) &&
            //    (!(ObjectManager.Player.GetSpellDamage(target, Instance.Slot) + ObjectManager.Player.GetAutoAttackDamage(target, true) > target.Health))) &&
            //    _brandQWE.Any(spell => spell.Instance.State == SpellState.Ready || spell.Instance.CooldownExpires > Game.Time && spell.Instance.CooldownExpires - Game.Time < spell.Instance.Cooldown / 2f)) return;
            //// wenn any skill ready || half cooldown

            Cast(target);
        }
Пример #16
0
        public static float Damage(Obj_AI_Hero target)
        {
            double dmg = 0f;

            if (target.HasBuff("TristanaECharge"))
            {
                dmg += Variables.E.GetDamage(target) * (0.3 * target.GetBuffCount("TristanaECharge") + 1);
            }

            if (Variables.R.IsReady())
            {
                dmg += Variables.R.GetDamage(target);
            }

            return (float)dmg;
        }
Пример #17
0
        public static float GetDamage(Obj_AI_Hero hero)
        {
            var baseDamage = Variables.spells[SpellSlot.E].GetDamage(hero);

            if (ObjectManager.Player.HasBuff("summonerexhaust"))
            {
                baseDamage *= 0.4f;
            }

            if (hero.HasBuff("FerociousHowl"))
            {
                baseDamage *= 0.35f;
            }

            return baseDamage;
        }
Пример #18
0
 public static void CastR(Obj_AI_Hero target)
 {
     if (!RSpell || !Champion.R.IsReady())
     {
         return;
     }
     if (target.IsValidTarget(Champion.W.Range) &&
         target.Health > (Champion.Q.GetDamage(target) + Champion.E.GetDamage(target)))
     {
         if (RwwSpell && target.HasBuff("RyzeW"))
         {
             Champion.R.Cast();
         }
         if (!RwwSpell)
         {
             Champion.R.Cast();
         }
     }
 }
Пример #19
0
        public static void Drawing_OnDraw(EventArgs args)
        {
            //Draw W
            if (CamilleMenu.Item("DrawW").GetValue <bool>() && W.IsReady())
            {
                Render.Circle.DrawCircle(Player.Position, 630, Color.Black);
            }

            //Draw E
            if (CamilleMenu.Item("DrawE").GetValue <bool>() && E.IsReady() && !Player.HasBuff("CamilleEDash1") && !Player.HasBuff("CamilleEOnWall") && !Player.HasBuff("camilleedashtoggle"))
            {
                Render.Circle.DrawCircle(Player.Position, 900, Color.BlueViolet);
            }

            if (CamilleMenu.Item("DrawR").GetValue <bool>() && R.IsReady())
            {
                Render.Circle.DrawCircle(Player.Position, 475, Color.Red);
            }
        }
Пример #20
0
        internal static bool isKillableAndValidTarget(this Obj_AI_Hero Target, double CalculatedDamage, float distance = float.MaxValue)
        {
            if (Target == null || !Target.IsValidTarget(distance) || Target.Health <= 0)
            {
                return(false);
            }

            if (ObjectManager.Player.HasBuff("summonerexhaust"))
            {
                CalculatedDamage *= 0.6;
            }

            if (Target.HasBuff("FerociousHowl"))
            {
                CalculatedDamage *= 0.3;
            }

            return(Target.Health + Target.HPRegenRate + Target.PhysicalShield < CalculatedDamage);
        }
Пример #21
0
        private void Cast_W(Obj_AI_Hero target)
        {
            if (Menu.Item("W_Always", true).GetValue <bool>() && Player.ServerPosition.Distance(target.ServerPosition) < Q.Range)
            {
                W.Cast();
            }

            if (target.HasBuff("urgotcorrosivedebuff"))
            {
                W.Cast();
            }

            var hp = Menu.Item("W_If_HP", true).GetValue <Slider>().Value;

            if (Player.HealthPercent <= hp)
            {
                W.Cast();
            }
        }
Пример #22
0
        public static float EDamage(Obj_AI_Hero unit)
        {
            float damage = 0;
            if (unit == null) return 0;
            var data = Player.Buffs.FirstOrDefault(b => b.DisplayName == "TristanaECharge");
                var i = data != null ? data.Count : 0;
            
            var buff = unit.GetBuff("TristanaECharge").Count;
            if (!unit.HasBuff("tristanaechargesound"))
                return 0;
            if (i != 0)
            {
                damage += (float) (Tristana.E.GetDamage(unit)*((0.3*(i + 1)))
                                   + (Player.TotalMagicalDamage*0.5));
                damage += BonusDamagePerStack(unit)*(i + 1);
            }

            return damage;
        }
Пример #23
0
        public static void OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args)
        {
            if (!MenuConfig.InterruptMenu || !sender.IsEnemy || !sender.IsValidTarget(Spells.W.Range) || sender.HasBuff("FioraW"))
            {
                return;
            }

            if (Spells.W.IsReady())
            {
                Spells.W.Cast(sender);
            }

            if (Qstack != 3)
            {
                return;
            }

            Spells.Q.Cast(sender);
        }
Пример #24
0
        public static void UseDeathmarkItems()
        {
            var items = ItemList.FindAll(item => item.Class == ItemClass.Offensive);

            foreach (DzItem item in items)
            {
                Obj_AI_Hero target = TargetSelector.GetTarget(item.Range, TargetSelector.DamageType.True);
                if (!target.IsValidTarget())
                {
                    return;
                }

                if (MenuHelper.IsMenuEnabled("com.idz.zed.activator.afterDeathmark") &&
                    target.HasBuff("zedulttargetmark"))
                {
                    UseItem(target, item);
                }
            }
        }
Пример #25
0
        private static void OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args)
        {
            if (!Config.SubMenu("Misc").Item("interrupt").GetValue <bool>())
            {
                return;
            }

            if (sender.HasBuff("brandablaze") && _Q.IsReady())
            {
                _Q.Cast(sender);
            }
            else
            {
                if (_E.IsReady() && _Q.IsReady())
                {
                    _E.CastOnUnit(sender);
                }
            }
        }
Пример #26
0
        public override void Execute(Obj_AI_Hero target)
        {
            if (_brandQWE.Any(spell => spell.Instance.State == SpellState.Ready || spell.Instance.CooldownExpires > Game.Time && spell.Instance.CooldownExpires - Game.Time < spell.Instance.Cooldown / 2f) || _w.Instance.Cooldown - (_w.Instance.CooldownExpires - Game.Time) < 1)
            {
                if ((!target.HasBuff("brandablaze") || target.GetBuff("brandablaze").EndTime - Game.Time < Delay) && !Provider.IsMarked(target) && !(ObjectManager.Player.GetSpellDamage(target, Instance.Slot) + ObjectManager.Player.GetAutoAttackDamage(target, true) > target.Health))
                {
                    return;
                }
            }



            //if ((((!target.HasBuff("brandablaze") || target.GetBuff("brandablaze").EndTime - Game.Time < Delay) && !Provider.IsMarked(target)) &&
            //    (!(ObjectManager.Player.GetSpellDamage(target, Instance.Slot) + ObjectManager.Player.GetAutoAttackDamage(target, true) > target.Health))) &&
            //    _brandQWE.Any(spell => spell.Instance.State == SpellState.Ready || spell.Instance.CooldownExpires > Game.Time && spell.Instance.CooldownExpires - Game.Time < spell.Instance.Cooldown / 2f)) return;
            //// wenn any skill ready || half cooldown

            Cast(target);
        }
Пример #27
0
        private static void Harass(Obj_AI_Hero t)
        {
            if (t == null)
            {
                return;
            }

            var jumpObject = ObjectManager.Get <Obj_AI_Base>()
                             .OrderBy(obj => obj.Distance(firstpos))
                             .FirstOrDefault(obj =>
                                             obj.IsAlly && !obj.IsMe &&
                                             !(obj.Name.IndexOf("turret", StringComparison.InvariantCultureIgnoreCase) >= 0) &&
                                             obj.Distance(t.Position) < 550);

            if (_config.Item("UseEHar").GetValue <bool>())
            {
                CastECombo();
            }
            if (_config.Item("UseQ1Har").GetValue <bool>())
            {
                CastQ1(t);
            }
            if (_config.Item("UseQ2Har").GetValue <bool>() && (t.HasBuff("BlindMonkQOne") || t.HasBuff("blindmonkqonechaos")) && jumpObject != null && WStage == WCastStage.First)
            {
                _q.Cast();
                q2casttime = Environment.TickCount;
            }
            if (_player.Distance(t.Position) < 300 && !_q.IsReady() && q2casttime + 2500 > Environment.TickCount && Environment.TickCount > q2casttime + 500)
            {
                CastW(jumpObject);
            }

            var useItemsH = _config.Item("UseItemsharass").GetValue <bool>();

            if (useItemsH && _tiamat.IsReady() && t.Distance(_player.Position) < _tiamat.Range)
            {
                _tiamat.Cast();
            }
            if (useItemsH && _hydra.IsReady() && t.Distance(_player.Position) < _hydra.Range)
            {
                _hydra.Cast();
            }
        }
Пример #28
0
        private static void Combo(Obj_AI_Hero target)
        {
            if (Player.HasBuff("GalioIdolOfDurand"))
            {
                Orbwalker.SetMovement(false);
            }

            if (target.IsValidTarget())
            {
                if (Q.IsReady() && Player.Distance(target) <= Q.Range && Config.Item("UseQCombo").GetValue <bool>())
                {
                    var qPred = Q.GetPrediction(target);

                    if (qPred.Hitchance >= HitChance.High)
                    {
                        Q.Cast(qPred.CastPosition);
                    }
                }
                if (E.IsReady() && Player.Distance(target) <= E.Range && Config.Item("UseECombo").GetValue <bool>())
                {
                    var ePred = E.GetPrediction(target);

                    if (ePred.Hitchance >= HitChance.High)
                    {
                        E.Cast(ePred.CastPosition);
                    }
                }
                if (Config.Item("UseWCombo").GetValue <bool>() && Config.Item("WMode").GetValue <StringList>().SelectedIndex == 0 && W.IsReady())
                {
                    W.Cast(Player);
                }

                if (R.IsReady() && Player.CountEnemysInRange(560) >= Config.Item("MinEnemys").GetValue <Slider>().Value&& Config.Item("UseRCombo").GetValue <bool>())
                {
                    if (Config.Item("UseWCombo").GetValue <bool>() && Config.Item("WMode").GetValue <StringList>().SelectedIndex == 1 && W.IsReady())
                    {
                        W.Cast(Player);
                    }
                    R.Cast(target, PacketCast, true);
                }
            }
        }
Пример #29
0
        private static List <double> GetComboDmg(Obj_AI_Hero target, bool useQ, bool useW, bool useE, bool useR)
        {
            var dmgTotal  = 0d;
            var manaTotal = 0f;

            if (useQ)
            {
                dmgTotal  += GetQDmg(target);
                manaTotal += Q.Instance.ManaCost;
            }
            if (useW)
            {
                if (useQ)
                {
                    dmgTotal += GetQDmg(target) / 2;
                }
                if (WState == 0)
                {
                    manaTotal += W.Instance.ManaCost;
                }
            }
            if (useE)
            {
                dmgTotal  += GetEDmg(target);
                manaTotal += E.Instance.ManaCost;
            }
            dmgTotal += Player.GetAutoAttackDamage(target, true);
            if (target.HealthPercent <= 50 && !target.HasBuff("ZedPassiveCD"))
            {
                dmgTotal += Player.CalculateDamage(
                    target,
                    DamageType.Magical,
                    target.MaxHealth * (Player.Level > 16 ? 0.1 : (Player.Level > 6 ? 0.08 : 0.06)));
            }
            if (useR || HaveRMark(target))
            {
                dmgTotal += new[] { 0.2, 0.35, 0.5 }[R.Level - 1] *dmgTotal + Player.TotalAttackDamage;
            }
            return(new List <double> {
                dmgTotal *OverkillValue, manaTotal
            });
        }
Пример #30
0
 // ReSharper restore StringLiteralTypo
 public static bool HasBuff(Obj_AI_Hero target,
     LeagueSharp.Common.TargetSelector.DamageType damageType = LeagueSharp.Common.TargetSelector.DamageType.True,
     bool ignoreShields = true)
 {
     try
     {
         return target.HasBuffOfType(BuffType.Invulnerability) ||
                Invulnerables.Any(
                    i =>
                        (i.Champion == null || i.Champion == target.ChampionName) &&
                        (!ignoreShields || !i.IsShield) && (i.DamageType == null || i.DamageType == damageType) &&
                        target.HasBuff(i.BuffName) &&
                        (i.CustomCheck == null || i.CustomCheck(target, damageType)));
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return false;
 }
Пример #31
0
 public static void useRSmart(Obj_AI_Base target)
 {
     if (!Player.HasBuff("RivenFengShuiEngine") && !E.IsReady())
     {
         R.Cast();
     }
     else if (target is Obj_AI_Hero)
     {
         Game.PrintChat("shield?: " + target.ScriptHealthBonus);
         var targ            = target as Obj_AI_Hero;
         PredictionOutput po = R.GetPrediction(targ, true);
         if (po.Hitchance == HitChance.High)
         {
             if (Player.GetSpellDamage(target, SpellSlot.R) > ((targ.Health + target.ScriptHealthBonus)) && R.IsReady())
             {
                 R.Cast(po.CastPosition);
             }
         }
     }
 }
Пример #32
0
        private static void TaricOnUpdate(EventArgs args)
        {
            hasPassive = Player.HasBuff(buffName);

            switch (Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;
            }

            if (!MenuCheck("taric.heal.disable", Config) && Q.IsReady())
            {
                QManager();
            }
        }
Пример #33
0
        private static void OnSpellCast(Obj_AI_Base sender1, GameObjectProcessSpellCastEventArgs args)
        {
            Obj_AI_Hero sender = sender1 as Obj_AI_Hero;

            if (sender != null && sender.IsEnemy && sender.Team != Player.Team)
            {
                if (args.SData.Name == "ZhonyasHourglass" && sender.HasBuff("zedulttargetmark") &&
                    Player.Distance(sender, true) < _spells[SpellSlot.W].Range - 20 * _spells[SpellSlot.W].Range - 20)
                {
                    Vector3 bestPosition = VectorHelper.GetBestPosition(
                        sender, VectorHelper.GetVertices(sender, true)[0], VectorHelper.GetVertices(sender, true)[1]);
                    if (_spells[SpellSlot.W].IsReady() && WShadowSpell.ToggleState == 0 &&
                        Environment.TickCount - _spells[SpellSlot.W].LastCastAttemptT > 0)
                    {
                        _spells[SpellSlot.W].Cast(bestPosition);
                        _spells[SpellSlot.W].LastCastAttemptT = Environment.TickCount + 500;
                    }
                }
            }
        }
Пример #34
0
        private static void Harass(Obj_AI_Hero target)
        {
            if (_lastSpellCast + 300 <= Utils.GameTimeTickCount)
            {
                if (HUseQ && _Q.IsReady() && IsQOne && target.IsValidTarget(_Q.Range))
                {
                    _lastSpellCast = Utils.GameTimeTickCount;
                    CastQHarass(target);
                }
                if (HUseE && _E.IsReady() && IsEOne && target.IsValidTarget(_E.Range))
                {
                    _lastSpellCast = Utils.GameTimeTickCount;
                    _E.Cast();
                }

                if (target.HasBuff("BlindMonkQOne") && HUseQ2 && IsQTwo)
                {
                    _lastSpellCast = Utils.GameTimeTickCount;
                    _Q2.CastOnUnit(target);
                }
                if (HUseE2 && _E2.IsReady() && IsETwo && target.IsValidTarget(_E2.Range) && Player.Mana >= 50)
                {
                    _lastSpellCast = Utils.GameTimeTickCount;
                    _E2.Cast();
                }

                if (!(_Q.IsReady() && HUseQ) && !(_E.IsReady() && HUseE))
                {
                    var obj = GetHarassObject(target);
                    if (obj != null)
                    {
                        Console.WriteLine("Harass obj: " + obj.Name);
                    }
                    if (obj != null && _W.IsReady() && IsWOne)
                    {
                        _lastSpellCast = Utils.GameTimeTickCount;
                        _W.CastOnUnit(obj);
                    }
                }
            }
        }
Пример #35
0
Файл: Program.cs Проект: ncmp/L-
        private static void Flee()
        {
            Orbwalker.Move(Game.CursorPos);

            if (!Q.IsReady() || !(player.HasBuff("viktorqaug") || player.HasBuff("viktorqeaug") || player.HasBuff("viktorqwaug") || player.HasBuff("viktorqweaug")))
            {
                return;
            }
            var closestenemy = GameObjects.Enemy.MinOrDefault(m => m.IsValidTarget(Q.Range));

            if (Q.CanCast(closestenemy))
            {
                Q.Cast(closestenemy);
            }
        }
Пример #36
0
        private static void Game_OnUpdate(EventArgs args)
        {
            if (!_menu.Item("manualUse").GetValue <KeyBind>().Active&& !_menu.Item("autoUse").GetValue <bool>())
            {
                return;
            }

            if (_player.GetSpell(SpellSlot.Summoner1).Name == "SiegeLaserAffix")
            {
                _beamOfDestruction.Slot = SpellSlot.Summoner1;
            }
            else if (_player.GetSpell(SpellSlot.Summoner2).Name == "SiegeLaserAffix")
            {
                _beamOfDestruction.Slot = SpellSlot.Summoner1;
            }

            if (_player.HasBuff("SiegeLaserAffix"))
            {
                var turret =
                    ObjectManager.Get <Obj_AI_Turret>()
                    .Where(
                        t =>
                        t.HasBuff("siegelaseraffixactive") &&
                        t.GetBuff("siegelaseraffixactive").Caster.NetworkId == _player.NetworkId)
                    .OrderBy(t => t.Distance(_player))
                    .FirstOrDefault();
                if (turret != null)
                {
                    var target = TargetSelector.GetTarget(
                        3100, TargetSelector.DamageType.Magical, false,
                        HeroManager.Enemies.Where(e => e.Distance(turret) > _beamOfDestruction.Range));
                    if (target != null && _beamOfDestruction.IsReady())
                    {
                        if (_beamOfDestruction.GetPrediction(target).Hitchance >= HitChance.High)
                        {
                            _beamOfDestruction.Cast(target);
                        }
                    }
                }
            }
        }
Пример #37
0
        static void Game_OnGameUpdate(EventArgs args)
        {
            DamageType = Config.DamageMode == "AD" ? TargetSelector.DamageType.Physical : TargetSelector.DamageType.Magical;
            if (Config.RecallBlock && (Player.HasBuff("Recall") || Player.IsWindingUp))
            {
                return;
            }
            ItemManager.UseDefensiveItemsIfInDanger(0);
            SpellManager.UseHealIfInDanger(0);
            if (Config.UltLowest.Active)
            {
                UltLowest();
            }
            switch (Config.Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                LastHit();
                if (Config.ToggleAuto.Active)
                {
                    Auto();
                }
                break;

            default:
                if (Config.ToggleAuto.Active)
                {
                    Auto();
                }
                break;
            }
            KillSteal();
            SpellManager.IgniteIfPossible();
        }
Пример #38
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            if (_player.IsDead)
            {
                return;
            }
            if (_config.Item("useRaim").GetValue <KeyBind>().Active&& _r.IsReady())
            {
                _player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                var t = TargetSelector.GetTarget(_r.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget(_r.Range) && !_player.HasBuff("LucianR"))
                {
                    _r.Cast(t.Position);
                }
            }
            if (_config.Item("ActiveCombo").GetValue <KeyBind>().Active)
            {
                Combo();
            }
            if (!_config.Item("ActiveCombo").GetValue <KeyBind>().Active &&
                (_config.Item("ActiveHarass").GetValue <KeyBind>().Active ||
                 _config.Item("harasstoggle").GetValue <KeyBind>().Active) &&
                (100 * (_player.Mana / _player.MaxMana)) > _config.Item("Harrasmana").GetValue <Slider>().Value)
            {
                Harass();
            }
            if (_config.Item("ActiveLane").GetValue <KeyBind>().Active &&
                (100 * (_player.Mana / _player.MaxMana)) > _config.Item("Lanemana").GetValue <Slider>().Value)
            {
                Laneclear();
            }
            if (_config.Item("ActiveJungle").GetValue <KeyBind>().Active &&
                (100 * (_player.Mana / _player.MaxMana)) > _config.Item("Junglemana").GetValue <Slider>().Value)
            {
                JungleClear();
            }
            if (_config.Item("ActiveLast").GetValue <KeyBind>().Active &&
                (100 * (_player.Mana / _player.MaxMana)) > _config.Item("Lastmana").GetValue <Slider>().Value)
            {
                LastHit();
            }

            _player = ObjectManager.Player;

            Usecleanse();
            KillSteal();
            Usepotion();
        }
Пример #39
0
        static void KnightsVow()
        {
            if (GameObjects.AllyHeroes.Where(a => !a.IsMe).Count() > 0 &&
                Menus._menu["defensive"]["vow"].Enabled &&
                _player.HasAndCanUseItem(ItemId.KnightsVow))
            {
                Obj_AI_Base target = GameObjects.AllyHeroes
                                     .OrderBy(a => a.TotalAttackDamage)
                                     .Where(a => !a.IsMe && a.IsLegitimate() && a.IsInRange(1000) &&
                                            Menus._menu["defensive"]["partner"][a.Name].Enabled &&
                                            !_player.HasBuff("itemknightsvowknight") && !a.HasBuff("itemknightsvowliege"))
                                     .FirstOrDefault();

                if (target != null)
                {
                    _player.UseItem(ItemId.KnightsVow, target);
                }
            }
        }
Пример #40
0
        private static void AutoQ()
        {
            if (!Q.IsReady() || me.HasBuff("Recall"))
            {
                return;
            }
            if (config.Item("autoqwithe").GetValue <bool>() || config.Item("autoqwithe").GetValue <bool>() && (currEnergy - me.Spellbook.GetManaCost(SpellSlot.Q) < eEnergy))
            {
                return;
            }
            Obj_AI_Hero target = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);

            if (target.Distance(me) < Q.Range)
            {
                if (target.IsValidTarget(Q.Range))
                {
                    Q.CastOnUnit(target, config.Item("packets").GetValue <bool>());
                }
                currEnergy -= me.Spellbook.GetManaCost(SpellSlot.Q);
            }
        }
Пример #41
0
        private static void Game_OnUpdate(EventArgs args)
        {
            if (_player.HasBuff("CorkiMissileBarrageCounterBig"))
            {
                _r.Range = _r2.Range;
            }
            else
            {
                _r.Range = _r1.Range;
            }
            if (_config.Item("skinC").GetValue <bool>() && SkinChanged())
            {
                GenModelPacket(_player.ChampionName, _config.Item("skinCorki").GetValue <Slider>().Value);
                _lastSkin = _config.Item("skinCorki").GetValue <Slider>().Value;
            }
            if (_config.Item("ActiveCombo").GetValue <KeyBind>().Active)
            {
                Combo();
            }
            if ((_config.Item("ActiveHarass").GetValue <KeyBind>().Active || _config.Item("harasstoggle").GetValue <KeyBind>().Active) && (100 * (_player.Mana / _player.MaxMana)) > _config.Item("Harrasmana").GetValue <Slider>().Value)
            {
                Harass();
            }
            if (_config.Item("ActiveLane").GetValue <KeyBind>().Active&& (100 * (_player.Mana / _player.MaxMana)) > _config.Item("Lanemana").GetValue <Slider>().Value)
            {
                Laneclear();
                JungleClear();
            }
            if (_config.Item("ActiveLast").GetValue <KeyBind>().Active&& (100 * (_player.Mana / _player.MaxMana)) > _config.Item("Lanemana").GetValue <Slider>().Value)
            {
                LastHit();
            }

            _player = ObjectManager.Player;

            _orbwalker.SetAttack(true);

            KillSteal();
            Usepotion();
        }
Пример #42
0
        //Calculating Damage
        static float CalculateDamage(Obj_AI_Hero target)
        {
            double damage = 0d;

            if (Q.IsReady())
            {
                damage += Player.GetSpellDamage(target, SpellSlot.Q) + Player.GetSpellDamage(target, SpellSlot.Q, 1);
                //Game.PrintChat("Q:" + Player.GetSpellDamage(target, SpellSlot.Q));
                //Game.PrintChat("Q2:" + Player.GetSpellDamage(target, SpellSlot.Q, 1));
            }
            if (target.HasBuff("katarinaqmark") || target == qTarget)
            {
                damage += Player.GetSpellDamage(target, SpellSlot.Q, 1);
                //Game.PrintChat("Q2:" + Player.GetSpellDamage(target, SpellSlot.Q, 1));
            }
            if (W.IsReady())
            {
                damage += W.GetDamage(target);
                //Game.PrintChat("W:" + W.GetDamage(target));
                //Game.PrintChat("TradW:" + Player.GetSpellDamage(target,SpellSlot.W));
            }
            if (E.IsReady())
            {
                damage += Player.GetSpellDamage(target, SpellSlot.E);
                //Game.PrintChat("E:" + Player.GetSpellDamage(target, SpellSlot.E));
            }
            if (R.IsReady() || (Player.GetSpell(R.Slot).State == SpellState.Surpressed && R.Level > 0))

            {
                damage += Player.GetSpellDamage(target, SpellSlot.R);
                //Game.PrintChat("R:" + Player.GetSpellDamage(target, SpellSlot.R));
            }
            if (Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite) > 0 && IgniteSpellSlot != SpellSlot.Unknown && IgniteSpellSlot.IsReady())
            {
                damage += Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
                //Game.PrintChat("F:" + Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite));
                damage -= target.HPRegenRate * 2.5;
            }
            return((float)damage);
        }
Пример #43
0
        private static void Interrupter2_OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args)
        {
            if (!Config.Item("e.q.interrupter").GetValue <bool>() || !sender.IsValidTarget())
            {
                return;
            }
            Interrupter2.DangerLevel a;
            switch (Config.Item("min.interrupter.danger.level").GetValue <StringList>().SelectedValue)
            {
            case "HIGH":
                a = Interrupter2.DangerLevel.High;
                break;

            case "MEDIUM":
                a = Interrupter2.DangerLevel.Medium;
                break;

            default:
                a = Interrupter2.DangerLevel.Low;
                break;
            }

            if (args.DangerLevel == Interrupter2.DangerLevel.High ||
                args.DangerLevel == Interrupter2.DangerLevel.Medium && a != Interrupter2.DangerLevel.High ||
                args.DangerLevel == Interrupter2.DangerLevel.Medium && a != Interrupter2.DangerLevel.Medium &&
                a != Interrupter2.DangerLevel.High)
            {
                if (sender.HasBuff("brandablaze") && Q.IsReady())
                {
                    Q.Cast(sender);
                }
                else
                {
                    if (E.IsReady() && Q.IsReady())
                    {
                        E.Cast(sender);
                    }
                }
            }
        }
Пример #44
0
        /// <summary>
        ///     Get the E damage.
        /// </summary>
        /// <param name="target">
        ///     The target.
        /// </param>
        /// <returns>
        /// </returns>
        public float GetChargeDamage(Obj_AI_Hero target)
        {
            if (target.HasBuff("tristanaecharge"))
            {
                var count=target.GetBuffCount("tristanaecharge");
                if (Objects.Player.IsWindingUp)
                    return (float)(E.GetDamage(target)*(count*0.30))+E.GetDamage(target);

                if (Objects.Player.Distance(target)<Objects.Player.AttackRange) // target in auto range
                    count++;

                return (float)(E.GetDamage(target)*(count*0.30))+E.GetDamage(target);
            }

            if (!E.IsReady())
                return 0f;

            if (Objects.Player.Distance(target)<E.Range)
                return (float)(E.GetDamage(target)*0.30)+E.GetDamage(target); // 1 auto charge

            return 0f;
        }
Пример #45
0
        public static double Overkillcheck(Obj_AI_Hero target)
        {
            var passivedmg = 10 + (8 * Player.Level) + Player.FlatMagicDamageMod * 0.2 - target.FlatMagicReduction;
            var lichdmg    = Player.CalculateDamage(target, DamageType.Magical,
                                                    (Player.BaseAttackDamage * 0.75) + ((Player.BaseAbilityDamage + Player.FlatMagicDamageMod) * 0.5));

            double dmg = 0;

            if (E.IsReady() && target.IsValidTarget(E.Range))
            {
                dmg += Edmg(target);
            }
            if (LuxE != null && target.Position.Distance(LuxE.Position) < 275)
            {
                dmg += Edmg(target);
            }
            if (Q.IsReady() && Q.GetPrediction(target).Hitchance >= HitChance.High && target.IsValidTarget(Q.Range))
            {
                dmg += Qdmg(target);
            }
            if (target.HasBuff("luxilluminatingfraulein") && target.IsValidTarget(Player.GetRealAutoAttackRange()))
            {
                dmg += passivedmg;
            }
            if (Player.HasBuff("lichbane") && target.IsValidTarget(Player.GetRealAutoAttackRange()))
            {
                dmg += lichdmg;
            }
            if (target.IsValidTarget(Player.GetRealAutoAttackRange()))
            {
                dmg += Player.GetAutoAttackDamage(target);
            }
            if (AlliesInRange(target.Position, 600) >= 1)
            {
                dmg += 100 + (3 * Player.Level);
            }

            return(dmg);
        }
Пример #46
0
        static int CanKill(Obj_AI_Hero target, bool useq, bool usew, bool usee, bool usef)
        {
            double damage = 0;

            if (!useq && !usew && !usee && !usef)
            {
                return(0);
            }
            if (Q.IsReady() && useq)
            {
                damage += ObjectManager.Player.GetSpellDamage(target, SpellSlot.Q);
                if ((W.IsReady() && usew) || (E.IsReady() && usee))
                {
                    damage += ObjectManager.Player.GetSpellDamage(target, SpellSlot.Q, 1);
                }
            }
            if (target.HasBuff("katarinaqmark") || target == qTarget)
            {
                damage += ObjectManager.Player.GetSpellDamage(target, SpellSlot.Q, 1);
            }
            if (W.IsReady() && usew)
            {
                damage += ObjectManager.Player.GetSpellDamage(target, SpellSlot.W);
            }
            if (E.IsReady() && usee)
            {
                damage += ObjectManager.Player.GetSpellDamage(target, SpellSlot.E);
            }
            if (damage >= target.Health)
            {
                return(1);
            }
            if (Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite) > 0 && !target.HasBuff("summonerdot") && !HasRBuff() && IgniteSpellSlot != SpellSlot.Unknown && IgniteSpellSlot.IsReady())
            {
                damage += Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
                damage -= target.HPRegenRate * 2.5;
            }
            return(damage >= target.Health? 2 : 0);
        }
Пример #47
0
        private static void HarassLogic()
        {
            if (Me.ManaPercent >= Menu.GetSlider("HarassMana"))
            {
                var target  = TargetSelector.GetTarget(Q.Range, Q.DamageType);
                var minions = MinionManager.GetMinions(Me.Position, E.Range);
                var min     = minions.Where(x => x.IsValidTarget(E.Range) && x.Position.Distance(target.Position) <= 300).FirstOrDefault();

                if (target.IsValidTarget() && target.IsHPBarRendered)
                {
                    if (Menu.GetBool("Q.Harass") && target.IsValidTarget(Q.Range) && !Me.HasBuff("ryzeqiconfullcharge"))
                    {
                        var QPred = Q.GetPrediction(target);

                        if (QPred.Hitchance >= HitChance.High)
                        {
                            Q.Cast(QPred.CastPosition, UsePacket);
                        }

                        if (min != null && min.Health < Q.GetDamage(min) && min.HasBuff("RyzeE"))
                        {
                            Q.Cast(min, UsePacket);
                        }
                    }

                    if (Menu.GetBool("E.Harass"))
                    {
                        if (min != null && min.Health < Q.GetDamage(min) + E.GetDamage(min))
                        {
                            E.CastOnUnit(min, UsePacket);
                        }
                        else if (target.IsValidTarget(E.Range))
                        {
                            E.CastOnUnit(target, UsePacket);
                        }
                    }
                }
            }
        }
Пример #48
0
        private void OnUpdate(EventArgs Args)
        {
            if (Me.IsDead)
            {
                return;
            }

            if (Me.HasBuff("missfortunebulletsound") || Me.IsCastingInterruptableSpell() || Utils.TickCount - lastRCast < 6000)
            {
                Orbwalker.SetAttack(false);
                Orbwalker.SetMovement(false);
            }
            else
            {
                Orbwalker.SetAttack(true);
                Orbwalker.SetMovement(true);
            }

            SemiRLogic();
            AutoHarass();
            KillSteal();

            switch (Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                LaneClear();
                JungleClear();
                break;
            }
        }
Пример #49
0
        static void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (!args.Unit.IsMe)
            {
                return;
            }

            if (args.Unit.IsMe || Q.IsReady())
            {
                if (Helpers.UltActive() && Helpers.TumbleActive() &&
                    FlowersVayne.Menu.Item("nightmoon.q.check").GetValue <bool>() &&
                    Helpers.EnemyHeroes.Any(h => h.IsMelee && h.Distance(Player) < h.AttackRange + h.BoundingRadius))
                {
                    args.Process = false;
                }
            }

            if (args.Unit.IsMe && Q.IsReady() && FlowersVayne.Menu.Item("nightmoon.q.use").GetValue <bool>())
            {
                if (args.Target.IsValid <Obj_AI_Hero>())
                {
                    var target = (Obj_AI_Hero)args.Target;
                    if (FlowersVayne.Menu.Item("nightmoon.r.use").GetValue <bool>() && R.IsReady() &&
                        Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                    {
                        if (!target.UnderTurret(true))
                        {
                            R.Cast();
                        }
                    }
                }
            }

            if (Player.HasBuff("vayneinquisition") && !Q.IsReady())
            {
                Q.Cast(Game.CursorPos);
            }
        }
Пример #50
0
        private void CastECombo()
        {
            Spell E = Spells.get("E");

            if (!E.IsReady())
            {
                return;
            }

            Obj_AI_Hero target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            if (target == null)
            {
                return;
            }
            if (!target.HasBuff("KalistaExpungeMarker"))
            {
                return;
            }

            int stacks = target.Buffs.FirstOrDefault(x => x.DisplayName == "KalistaExpungeMarker").Count;

            if (Menu.Item("Combo_e").GetValue <bool>())
            {
                if (stacks >= Menu.Item("Combo_estacks").GetValue <Slider>().Value)
                {
                    E.Cast();
                }
            }

            if (Menu.Item("Combo_erange").GetValue <bool>())
            {
                if (Player.Distance(target) > 825 && !Spells.get("Q").IsReady(2000))
                {
                    E.Cast();
                }
            }
        }
Пример #51
0
        public static void onGainBuff()
        {
            if (Player.HasBuff("OrianaGhostSelf"))
            {
                ballStatus          = 0;
                CurrentBallPosition = Player.ServerPosition;
                IsBallMoving        = false;
                return;
            }

            foreach (Obj_AI_Hero ally in
                     ObjectManager.Get <Obj_AI_Hero>()
                     .Where(ally => ally.IsAlly && !ally.IsDead && ally.HasBuff("orianaghost", true)))
            {
                ballStatus          = 2;
                CurrentBallPosition = ally.ServerPosition;
                allyDraw            = ally.Position;
                IsBallMoving        = false;
                return;
            }

            ballStatus = 1;
        }
Пример #52
0
        private static float GetDeathmarkDamage(Obj_AI_Hero target)
        {
            double totalDamage = 0;

            if (Zed._spells[SpellSlot.R].IsReady() || target.HasBuff("zedulttargetmark"))
            {
                totalDamage += Zed._spells[SpellSlot.R].GetDamage(target);

                switch (Zed._spells[SpellSlot.R].Level)
                {
                    case 1:
                        totalDamage += totalDamage * 1.2;
                        break;
                    case 2:
                        totalDamage += totalDamage * 1.35;
                        break;
                    case 3:
                        totalDamage += totalDamage * 1.5;
                        break;
                }
            }

            return (float) totalDamage;
        }
Пример #53
0
        private void Interrupter2_OnInterruptableTarget(Obj_AI_Hero t, Interrupter2.InterruptableTargetEventArgs args)
        {
            if (!Config.Item("intQ", true).GetValue<bool>() || Player.Mana < QMANA + EMANA)
                return;

            if (t.IsValidTarget(E.Range) && (t.HasBuff("brandablaze") || E.IsReady()))
            {
                E.CastOnUnit(t);
                if (Q.IsReady())
                    Q.Cast(t);
            }
        }
Пример #54
0
        private float GetRealDamage(Obj_AI_Hero target)
        {
            if (target.HasBuff("ferocioushowl") && target.ChampionName == "Alistar")
            {
                return this.spells[SpellSlot.E].GetDamage(target) * 0.7f;
            }

            return this.spells[SpellSlot.E].GetDamage(target) - this.sliderLinks["eDamageReduction"].Value.Value;
        }
Пример #55
0
        private static void CastSpell(Spell QWER, Obj_AI_Hero target, int HitChanceNum)
        {
            //HitChance 0 - 2
            // example CastSpell(Q, ts, 2);
            if (HitChanceNum == 0)
                QWER.Cast(target, true);
            else if (HitChanceNum == 1)
                QWER.CastIfHitchanceEquals(target, HitChance.VeryHigh, true);
            else if (HitChanceNum == 2)
            {
                if (QWER.Delay < 0.3)
                    QWER.CastIfHitchanceEquals(target, HitChance.Dashing, true);
                QWER.CastIfHitchanceEquals(target, HitChance.Immobile, true);
                QWER.CastIfWillHit(target, 2, true);
                if (target.Path.Count() < 2)
                    QWER.CastIfHitchanceEquals(target, HitChance.VeryHigh, true);
            }
            else if (HitChanceNum == 3)
            {
                List<Vector2> waypoints = target.GetWaypoints();
                //debug("" + target.Path.Count() + " " + (target.Position == target.ServerPosition) + (waypoints.Last<Vector2>().To3D() == target.ServerPosition));
                if (QWER.Delay < 0.3)
                    QWER.CastIfHitchanceEquals(target, HitChance.Dashing, true);
                QWER.CastIfHitchanceEquals(target, HitChance.Immobile, true);
                QWER.CastIfWillHit(target, 2, true);

                float SiteToSite = ((target.MoveSpeed * QWER.Delay) + (Player.Distance(target.ServerPosition) / QWER.Speed)) * 6 - QWER.Width;
                float BackToFront = ((target.MoveSpeed * QWER.Delay) + (Player.Distance(target.ServerPosition) / QWER.Speed));
                if (ObjectManager.Player.Distance(waypoints.Last<Vector2>().To3D()) < SiteToSite || ObjectManager.Player.Distance(target.Position) < SiteToSite)
                    QWER.CastIfHitchanceEquals(target, HitChance.High, true);
                else if (target.Path.Count() < 2
                    && (target.ServerPosition.Distance(waypoints.Last<Vector2>().To3D()) > SiteToSite
                    || Math.Abs(ObjectManager.Player.Distance(waypoints.Last<Vector2>().To3D()) - ObjectManager.Player.Distance(target.Position)) > BackToFront
                    || target.HasBuffOfType(BuffType.Slow) || target.HasBuff("Recall")
                    || (target.Path.Count() == 0 && target.Position == target.ServerPosition)
                    ))
                {
                    if (target.IsFacing(ObjectManager.Player) || target.Path.Count() == 0)
                    {
                        if (ObjectManager.Player.Distance(target.Position) < QWER.Range - ((target.MoveSpeed * QWER.Delay) + (Player.Distance(target.Position) / QWER.Speed)))
                            QWER.CastIfHitchanceEquals(target, HitChance.High, true);
                    }
                    else
                    {
                        QWER.CastIfHitchanceEquals(target, HitChance.High, true);
                    }
                }
            }
            else if (HitChanceNum == 4 && (int)QWER.GetPrediction(target).Hitchance > 4)
            {
                List<Vector2> waypoints = target.GetWaypoints();
                //debug("" + target.Path.Count() + " " + (target.Position == target.ServerPosition) + (waypoints.Last<Vector2>().To3D() == target.ServerPosition));
                if (QWER.Delay < 0.3)
                    QWER.CastIfHitchanceEquals(target, HitChance.Dashing, true);
                QWER.CastIfHitchanceEquals(target, HitChance.Immobile, true);
                QWER.CastIfWillHit(target, 2, true);

                float SiteToSite = ((target.MoveSpeed * QWER.Delay) + (Player.Distance(target.ServerPosition) / QWER.Speed)) * 6 - QWER.Width;
                float BackToFront = ((target.MoveSpeed * QWER.Delay) + (Player.Distance(target.ServerPosition) / QWER.Speed));
                if (ObjectManager.Player.Distance(waypoints.Last<Vector2>().To3D()) < SiteToSite || ObjectManager.Player.Distance(target.Position) < SiteToSite)
                    QWER.CastIfHitchanceEquals(target, HitChance.High, true);
                else if (target.Path.Count() < 2
                    && (target.ServerPosition.Distance(waypoints.Last<Vector2>().To3D()) > SiteToSite
                    || Math.Abs(ObjectManager.Player.Distance(waypoints.Last<Vector2>().To3D()) - ObjectManager.Player.Distance(target.Position)) > BackToFront
                    || target.HasBuffOfType(BuffType.Slow) || target.HasBuff("Recall")
                    || (target.Path.Count() == 0 && target.Position == target.ServerPosition)
                    ))
                {
                    if (target.IsFacing(ObjectManager.Player) || target.Path.Count() == 0)
                    {
                        if (ObjectManager.Player.Distance(target.Position) < QWER.Range - ((target.MoveSpeed * QWER.Delay) + (Player.Distance(target.Position) / QWER.Speed)))
                            QWER.CastIfHitchanceEquals(target, HitChance.High, true);
                    }
                    else
                    {
                        QWER.CastIfHitchanceEquals(target, HitChance.High, true);
                    }
                }
            }
        }
Пример #56
0
 private bool isKnockedUp(Obj_AI_Hero x)
 {
     return (x.HasBuffOfType(BuffType.Knockup) || x.HasBuffOfType(BuffType.Knockback) || x.HasBuff("yasuoq3mis"));
 }
Пример #57
0
 private bool checkChilled(Obj_AI_Hero target)
 {
     return target.HasBuff("Chilled");
 }
Пример #58
0
 public static bool Check(Obj_AI_Hero target,
     float damage,
     DamageType damageType = DamageType.True,
     bool ignoreShields = true)
 {
     if (target.HasBuffOfType(BuffType.Invulnerability) || target.IsInvulnerable)
     {
         return true;
     }
     foreach (var invulnerable in Items)
     {
         if (invulnerable.Champion == null || invulnerable.Champion == target.ChampionName)
         {
             if (invulnerable.DamageType == null || invulnerable.DamageType == damageType)
             {
                 if (target.HasBuff(invulnerable.BuffName))
                 {
                     if (!ignoreShields || !invulnerable.IsShield)
                     {
                         if (invulnerable.CheckFunction == null ||
                             CheckFunction(invulnerable, target, damageType))
                         {
                             if (invulnerable.MinHealthPercent > 0 &&
                                 (target.Health - damage) / target.MaxHealth * 100 <
                                 invulnerable.MinHealthPercent)
                             {
                                 return true;
                             }
                             return true;
                         }
                     }
                 }
             }
         }
     }
     return false;
 }
Пример #59
0
        private static void InsecCombo(Obj_AI_Hero target)
        {
            if (target != null && target.IsVisible)
            {
                if (Player.Distance(GetInsecPos(target)) < 200)
                {
                    insecComboStep = InsecComboStepSelect.Pressr;
                }
                else if (insecComboStep == InsecComboStepSelect.None
                         && GetInsecPos(target).Distance(Player.Position) < 600)
                {
                    insecComboStep = InsecComboStepSelect.Wgapclose;
                }
                else if (insecComboStep == InsecComboStepSelect.None
                         && target.Distance(Player) < spells[Spells.Q].Range)
                {
                    insecComboStep = InsecComboStepSelect.Qgapclose;
                }

                switch (insecComboStep)
                {
                    case InsecComboStepSelect.Qgapclose:
                        if (!(target.HasBuff("BlindMonkQOne") || target.HasBuff("blindmonkqonechaos"))
                            && spells[Spells.Q].Instance.Name == "BlindMonkQOne")
                        {
                            CastQ1(target);
                        }
                        else if ((target.HasBuff("BlindMonkQOne") || target.HasBuff("blindmonkqonechaos")))
                        {
                            spells[Spells.Q].Cast();
                            insecComboStep = InsecComboStepSelect.Wgapclose;
                        }
                        else
                        {
                            if (spells[Spells.Q].Instance.Name == "blindmonkqtwo"
                                && ReturnQBuff().Distance(target) <= 600)
                            {
                                spells[Spells.Q].Cast();
                            }
                        }
                        break;

                    case InsecComboStepSelect.Wgapclose:
                        if (FindBestWardItem() != null && spells[Spells.W].IsReady()
                            && spells[Spells.W].Instance.Name == "BlindMonkWOne"
                            && (ParamBool("waitForQBuff")
                                && (spells[Spells.Q].Instance.Name == "BlindMonkQOne"
                                    || (!spells[Spells.Q].IsReady() || spells[Spells.Q].Instance.Name == "blindmonkqtwo")
                                    && q2Done)) || !ParamBool("waitForQBuff"))
                        {
                            WardJump(GetInsecPos(target), false, false, true);
                            wardJumped = true;
                        }
                        else if (Player.Spellbook.CanUseSpell(flashSlot) == SpellState.Ready && ParamBool("flashInsec")
                                 && !wardJumped && Player.Distance(insecPos) < 400
                                 || Player.Spellbook.CanUseSpell(flashSlot) == SpellState.Ready
                                 && ParamBool("flashInsec") && !wardJumped && Player.Distance(insecPos) < 400
                                 && FindBestWardItem() == null)
                        {
                            Player.Spellbook.CastSpell(flashSlot, GetInsecPos(target));
                            Utility.DelayAction.Add(50, () => spells[Spells.R].CastOnUnit(target));
                        }
                        break;

                    case InsecComboStepSelect.Pressr:
                        spells[Spells.R].CastOnUnit(target);
                        break;
                }
            }
        }
        public static bool Contains(Obj_AI_Hero unit, GameObjectProcessSpellCastEventArgs args)
        {
            var name = unit.ChampionName;
            var slot = unit.GetSpellSlot(args.SData.Name);

            foreach (var spell in
                BlockedSpells.Where(o => o.Name.Equals(name))
                    .Where(spell => !spell.HasModelCondition || unit.CharData.BaseSkinName.Equals(spell.ModelName))
                    .Where(spell => !spell.HasBuffCondition || unit.HasBuff(spell.AutoAttackBuff)))
            {
                if (spell.IsAutoAttack)
                {
                    if (!args.SData.IsAutoAttack())
                    {
                        continue;
                    }

                    var condition = spell.AutoAttackName.Equals(args.SData.Name);

                    if (unit.ChampionName.Equals("Rengar"))
                    {
                        condition = condition && unit.Mana.Equals(5);
                    }
                    condition = condition && _menu.Item(_menu.Name + "." + name + "AA") != null &&
                                _menu.Item(_menu.Name + "." + name + "AA").GetValue<bool>();
                    if (condition)
                    {
                        return true;
                    }
                    continue;
                }

                if (_menu.Item(_menu.Name + "." + name) == null || !_menu.Item(_menu.Name + "." + name).GetValue<bool>() ||
                    !spell.Slot.Equals(slot))
                {
                    continue;
                }

                if (name.Equals("Riven"))
                {
                    var buff = unit.Buffs.FirstOrDefault(b => b.Name.Equals("RivenTriCleave"));
                    if (buff != null && buff.Count == 3)
                    {
                        return true;
                    }
                }
                return true;
            }
            return false;
        }