Пример #1
0
 public override void Execute(Obj_AI_Hero target)
 {
     if (CanKill(target) || target.GetBuffCount("twitchdeadlyvenom") == 6 && AlwaysExecuteAtFullStacks)
     {
         Cast();
     }
 }
Пример #2
0
 public override void Execute(Obj_AI_Hero target)
 {
     if (((target.GetBuffCount("twitchdeadlyvenom") >= ComboAfterStacks || ComboAfterStacks == 0) && _afterAttack || !Orbwalking.InAutoAttackRange(target)) && (!NotDuringR || !ObjectManager.Player.HasBuff("TwitchFullAutomatic")))
     {
         Cast(target, aoe: IsAreaOfEffect);
     }
 }
Пример #3
0
 private void handeQ(Obj_AI_Hero target, HitChance hitChance)
 {
     if (player.Distance(target) <= Orbwalking.GetRealAutoAttackRange(target) && !Orbwalking.CanAttack() &&
         Orbwalking.CanMove(100) && target.GetBuffCount("TahmKenchPDebuffCounter") != 2)
     {
         if (Program.IsSPrediction)
         {
             Q.SPredictionCast(target, hitChance);
         }
         else
         {
             Q.CastIfHitchanceEquals(target, hitChance, config.Item("packets").GetValue <bool>());
         }
     }
     else if (player.Distance(target) > Orbwalking.GetRealAutoAttackRange(target))
     {
         if (Program.IsSPrediction)
         {
             Q.SPredictionCast(target, hitChance);
         }
         else
         {
             Q.CastIfHitchanceEquals(target, hitChance, config.Item("packets").GetValue <bool>());
         }
     }
 }
Пример #4
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            orbwalker.SetMovement(true);
            Jungle.CastSmite(config.Item("useSmite").GetValue <KeyBind>().Active);
            blockW = false;
            if (config.Item("useDevour", true).GetValue <bool>() && W.IsReady() && !justQ)
            {
                EatAlly();
            }
            switch (orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo();
                break;

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

            case Orbwalking.OrbwalkingMode.LaneClear:
                Clear();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                Console.WriteLine(player.GetBuffCount("talentreaperdisplay"));
                break;

            default:
                break;
            }
            if (config.Item("useShield", true).GetValue <bool>() && E.IsReady())
            {
                UseShield();
            }
        }
Пример #5
0
        private static float TotalDmg(Obj_AI_Base enemy, bool useQ, bool useE, bool useR)
        {
            var damage  = 0d;
            var estacks = Player.GetBuffCount("vladimirtidesofbloodcost");

            //Base Q damage
            if (useQ && Q.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.Q);
            }

            //E damage
            if (useE && E.IsReady())
            {
                var edmg = new double[] { 60, 85, 110, 135, 160 }[Player.Spellbook.GetSpell(SpellSlot.E).Level];
                edmg    = edmg * (1 + 0.25 * estacks);
                edmg    = edmg + 0.45 * Player.FlatMagicDamageMod;
                damage += edmg;
            }

            //R damage
            if (useR && R.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.R);
                damage += TotalDmg(enemy, true, true, false) * 0.12;
            }

            // Ludens Echo damage
            if (Items.HasItem(3285))
            {
                damage += Player.CalcDamage(enemy, Damage.DamageType.Magical, 100 + Player.FlatMagicDamageMod * 0.1);
            }
            return((float)damage);
        }
Пример #6
0
 public override void Harass(Obj_AI_Hero target)
 {
     if (((target.GetBuffCount("twitchdeadlyvenom") >= HarassAfterStacks || HarassAfterStacks == 0) && _afterAttack || !Orbwalking.InAutoAttackRange(target)) && (!NotDuringR || !ObjectManager.Player.HasBuff("TwitchFullAutomatic")))
     {
         Cast(target, aoe: IsAreaOfEffect);
     }
 }
Пример #7
0
        public static double CalcDamage(Obj_AI_Hero enemy)
        {
            double damage = 0;

            if (enemy.GetBuffCount("EkkoStacks") == 2)
            {
                damage += 10 + 10 * Player.Level + 0.7 * Player.TotalMagicalDamage;
            }
            if (SpellManager.Q.IsReady())
            {
                damage += 45 + SpellManager.Q.Level * 15 + Player.TotalMagicalDamage * 0.1;
            }
            if (SpellManager.E.IsReady() || Player.HasBuff("ekkoeattackbuff"))
            {
                damage += 20 + SpellManager.E.Level * 30 + Player.TotalMagicalDamage() * 0.2;
            }
            if (EkkoUlt != null)
            {
                if (enemy.Distance(EkkoUlt.Position) <= SpellManager.R.Range)
                {
                    damage += Rdamage();
                }
            }

            return(Player.CalcDamage(enemy, Damage.DamageType.Magical, damage));
        }
Пример #8
0
 public static int Damage(Obj_AI_Hero target)
 =>
 Bools.IsCharged(target) ?
 (int)(Variables.E.GetDamage(target) *
       ((0.30f * target.GetBuffCount("TristanaECharge")) + 1f) +
       Variables.R.GetDamage(target))
     :
 (int)Variables.R.GetDamage(target);
Пример #9
0
 public override void Harass(Obj_AI_Hero target)
 {
     base.Harass(target);
     if (HarassActivateWhenLeaving <= target.GetBuffCount("twitchdeadlyvenom") && target.Distance(ObjectManager.Player) > Orbwalking.GetRealAutoAttackRange(target))
     {
         Cast();
     }
 }
Пример #10
0
        public static void Game_OnGameUpdate(EventArgs args)
        {
            Player.SetSkin(Player.BaseSkinName, Config.Item("Ahri.SkinChanger").GetValue <bool>() ? Config.Item("Ahri.SkinChangerName").GetValue <StringList>().SelectedIndex : Player.BaseSkinId);

            if (Config.Item("Ahri.AutoLevelSpell").GetValue <bool>())
            {
                LevelUpSpells();
            }

            if (Player.IsDead)
            {
                return;
            }

            if (Player.GetBuffCount("Recall") == 1)
            {
                return;
            }

            ManaManager();
            PotionManager();

            KillSteal();

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                Combo();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                LaneClear();
                JungleClear();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)
            {
                LastHit();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                LastHit();
            }

            if (Config.Item("Ahri.HarassActive").GetValue <KeyBind>().Active || Config.Item("Ahri.HarassActiveT").GetValue <KeyBind>().Active)
            {
                Harass();
            }
        }
Пример #11
0
        public static double CalcDamage(Obj_AI_Hero enemy)
        {
            double damage = 0;
            if (enemy.GetBuffCount("EkkoStacks") == 2)
                damage += 10 + 10 * Player.Level + 0.7 * Player.TotalMagicalDamage;
            if (SpellManager.Q.IsReady())
                damage += 45 + SpellManager.Q.Level * 15 + Player.TotalMagicalDamage * 0.1;
            if (SpellManager.E.IsReady() || Player.HasBuff("ekkoeattackbuff"))
                damage += 20 + SpellManager.E.Level * 30 + Player.TotalMagicalDamage() * 0.2;
            if (EkkoUlt != null)
                if (enemy.Distance(EkkoUlt.Position) <= SpellManager.R.Range)
                    damage += Rdamage();

            return Player.CalcDamage(enemy, Damage.DamageType.Magical, damage);
        }
Пример #12
0
        /// <summary>
        /// Gets the Killsteal damage.
        /// </summary>
        public static float GetDamage(Obj_AI_Hero target)
        {
            float dmg = 0f;

            if (target.GetBuffCount("vaynesilvereddebuff") == 2)
            {
                dmg += Variables.W.GetDamage(target);
            }

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

            return(dmg);
        }
Пример #13
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;
        }
Пример #14
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);
        }
Пример #15
0
        private void handleWEnemyHero(Obj_AI_Hero target)
        {
            if (target.GetBuffCount("TahmKenchPDebuffCounter") == 3 && !CombatHelper.CheckCriticalBuffs(target) &&
                !target.HasBuffOfType(BuffType.Stun) && !target.HasBuffOfType(BuffType.Snare) && !Q.CanCast(target) &&
                !justQ)
            {
                orbwalker.SetMovement(false);
                if (Orbwalking.CanMove(100) && Game.CursorPos.Distance(target.Position) < 300)
                {
                    player.IssueOrder(GameObjectOrder.MoveTo, target.Position.Extend(player.Position, 100));
                }

                lastWtarget = Team.Enemy;
                W.CastOnUnit(target, true);
            }
        }
Пример #16
0
        /// <summary>
        /// Gets the Killsteal damage.
        /// </summary>
        public static float GetDamage(Obj_AI_Hero target)
        {
            float dmg = 0f;

            if (target.GetBuffCount("vaynesilvereddebuff") == 2)
            {
                dmg += Variables.W.GetDamage(target);
            }

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

            return dmg;
        }
Пример #17
0
        public static Vector3 FindTumblePosition(Obj_AI_Hero target)
        {
            if ((Only2W || (s_Champion.Orbwalker.ActiveMode == SCommon.Orbwalking.Orbwalker.Mode.Mixed && Only2WHarass)) && target.GetBuffCount("vaynesilvereddebuff") == 1) // == 1 cuz calling this after attack which is aa missile still flying
                return Vector3.Zero;

            if(WallIfPossible)
            {
                var outRadius = ObjectManager.Player.BoundingRadius / (float)Math.Cos(2 * Math.PI / 8);

                for (var i = 1; i <= 8; i++)
                {
                    var angle = i * 2 * Math.PI / 8;
                    float x = ObjectManager.Player.Position.X + outRadius * (float)Math.Cos(angle);
                    float y = ObjectManager.Player.Position.Y + outRadius * (float)Math.Sin(angle);
                    var colFlags = NavMesh.GetCollisionFlags(x, y);
                    if (colFlags.HasFlag(CollisionFlags.Wall) || colFlags.HasFlag(CollisionFlags.Building))
                        return new Vector3(x, y, 0);
                }
            }

            if (Mode == 0)
            {
                Vector3 vec = target.ServerPosition;

                if (target.Path.Length > 0)
                {
                    if (ObjectManager.Player.Distance(vec) < ObjectManager.Player.Distance(target.Path.Last()))
                        return IsSafe(target, Game.CursorPos);
                    else
                        return IsSafe(target, Game.CursorPos.To2D().Rotated(Geometry.DegreeToRadian((vec - ObjectManager.Player.ServerPosition).To2D().AngleBetween((Game.CursorPos - ObjectManager.Player.ServerPosition).To2D()) % 90)).To3D());
                }
                else
                {
                    if (target.IsMelee)
                        return IsSafe(target, Game.CursorPos);
                }

                return IsSafe(target, ObjectManager.Player.ServerPosition + (target.ServerPosition - ObjectManager.Player.ServerPosition).Normalized().To2D().Rotated(Geometry.DegreeToRadian(90 - (vec - ObjectManager.Player.ServerPosition).To2D().AngleBetween((Game.CursorPos - ObjectManager.Player.ServerPosition).To2D()))).To3D() * 300f);
            }
            else if(Mode == 1)
            {
                return Game.CursorPos;
            }

            return Vector3.Zero;
        }
Пример #18
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;
        }
Пример #19
0
        public static void Game_OnGameUpdate(EventArgs args)
        {
            if (Config.Item("Udyr.AutoLevelSpell").GetValue <bool>())
            {
                LevelUpSpells();
            }

            if (Player.IsDead)
            {
                return;
            }

            if (Player.GetBuffCount("Recall") == 1)
            {
                return;
            }

            ManaManager();
            PotionManager();

            if (!Player.InFountain() && Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo && Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear && Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LastHit && Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Mixed &&
                Config.Item("Udyr.AutoEMovement").GetValue <bool>() && Player.ManaPercent >= Config.Item("Udyr.AutoEMovementMana").GetValue <Slider>().Value&& E.IsReady() && Player.CountEnemiesInRange(700) == 0)
            {
                E.Cast();
            }

            if (Config.Item("Udyr.StackPassiveInFountain").GetValue <bool>() && ObjectManager.Player.InFountain() && Player.ManaPercent >= Config.Item("Udyr.StackPassiveInFountainMinMana").GetValue <Slider>().Value)
            {
                var buffEndTime = Config.Item("Udyr.StackPassiveInFountainKeepBuffUp").GetValue <bool>() ? float.MaxValue : GetPassiveBuffTimer(Player);

                if (Q.IsReady() && (MonkeyAgility != 3 || buffEndTime > Game.Time + (buffEndTime / 2)))
                {
                    Q.Cast();
                    return;
                }

                if (W.IsReady() && !Q.IsReady() && (MonkeyAgility != 3 || buffEndTime > Game.Time + (buffEndTime / 2)))
                {
                    W.Cast();
                    return;
                }

                if (R.IsReady() && !Q.IsReady() && !W.IsReady() && (MonkeyAgility != 3 || buffEndTime > Game.Time + (buffEndTime / 2)))
                {
                    R.Cast();
                    return;
                }
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                Combo();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                LaneClear();
                JungleClear();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)
            {
                LastHit();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                LastHit();
            }
        }
Пример #20
0
 public static float GetRDamage(Obj_AI_Hero target)
 =>
 (float)(Variables.R.GetDamage(target) * (1 + 0.20 * target.GetBuffCount("dariushemo")));
Пример #21
0
        public static Vector3 FindTumblePosition(Obj_AI_Hero target)
        {
            if ((Only2W || (s_Champion.Orbwalker.ActiveMode == SCommon.Orbwalking.Orbwalker.Mode.Mixed && Only2WHarass)) && target.GetBuffCount("vaynesilvereddebuff") == 1) // == 1 cuz calling this after attack which is aa missile still flying
            {
                return(Vector3.Zero);
            }

            if (WallIfPossible)
            {
                var outRadius = ObjectManager.Player.BoundingRadius / (float)Math.Cos(2 * Math.PI / 8);

                for (var i = 1; i <= 8; i++)
                {
                    var   angle    = i * 2 * Math.PI / 8;
                    float x        = ObjectManager.Player.Position.X + outRadius * (float)Math.Cos(angle);
                    float y        = ObjectManager.Player.Position.Y + outRadius * (float)Math.Sin(angle);
                    var   colFlags = NavMesh.GetCollisionFlags(x, y);
                    if (colFlags.HasFlag(CollisionFlags.Wall) || colFlags.HasFlag(CollisionFlags.Building))
                    {
                        return(new Vector3(x, y, 0));
                    }
                }
            }

            if (Mode == 0)
            {
                Vector3 vec = target.ServerPosition;

                if (target.Path.Length > 0)
                {
                    if (ObjectManager.Player.Distance(vec) < ObjectManager.Player.Distance(target.Path.Last()))
                    {
                        return(IsSafe(target, Game.CursorPos));
                    }
                    else
                    {
                        return(IsSafe(target, Game.CursorPos.To2D().Rotated(Geometry.DegreeToRadian((vec - ObjectManager.Player.ServerPosition).To2D().AngleBetween((Game.CursorPos - ObjectManager.Player.ServerPosition).To2D()) % 90)).To3D()));
                    }
                }
                else
                {
                    if (target.IsMelee)
                    {
                        return(IsSafe(target, Game.CursorPos));
                    }
                }

                return(IsSafe(target, ObjectManager.Player.ServerPosition + (target.ServerPosition - ObjectManager.Player.ServerPosition).Normalized().To2D().Rotated(Geometry.DegreeToRadian(90 - (vec - ObjectManager.Player.ServerPosition).To2D().AngleBetween((Game.CursorPos - ObjectManager.Player.ServerPosition).To2D()))).To3D() * 300f));
            }
            else if (Mode == 1)
            {
                return(Game.CursorPos);
            }

            return(Vector3.Zero);
        }
Пример #22
0
 public override void Execute(Obj_AI_Hero target)
 {
     if (CanKill(target) || target.GetBuffCount("twitchdeadlyvenom") == 6 && AlwaysExecuteAtFullStacks)
         Cast();
 }
Пример #23
0
        private void Interrupter2_OnInterruptableTarget(
            Obj_AI_Hero unit,
            Interrupter2.InterruptableTargetEventArgs args)
        {
            switch (unit.GetBuffCount(this.tahmPassive))
            {
                case 1:
                    if (TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchQ")
                            .Item("SAssembliesChampionsTahmKenchQInterrupt")
                            .GetValue<bool>()
                        && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchW")
                               .Item("SAssembliesChampionsTahmKenchWInterrupt")
                               .GetValue<bool>())
                    {
                        if (Orbwalking.InAutoAttackRange(unit) && CustomSpell.Q.IsReady() && (CustomSpell.W.IsReady()
                            && this.swallowedUnit == SwallowedUnit.None))
                        {
                            ObjectManager.Player.IssueOrder(GameObjectOrder.AttackUnit, unit);
                            Utility.DelayAction.Add(100, () => CustomSpell.Q.Cast(unit));
                            Utility.DelayAction.Add(200, () => CustomSpell.W.CastOnUnit(unit));
                        }
                    }
                    break;

                case 2:
                    if ((CustomSpell.Q.IsReady() && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchQ")
                            .Item("SAssembliesChampionsTahmKenchQInterrupt")
                            .GetValue<bool>()) || (CustomSpell.W.IsReady() && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchW")
                               .Item("SAssembliesChampionsTahmKenchWInterrupt")
                               .GetValue<bool>() && this.swallowedUnit == SwallowedUnit.None))
                    {
                        if (Orbwalking.InAutoAttackRange(unit))
                        {
                            ObjectManager.Player.IssueOrder(GameObjectOrder.AttackUnit, unit);
                            if (CustomSpell.Q.IsReady())
                            {
                                Utility.DelayAction.Add(100, () => CustomSpell.Q.Cast(unit));
                            }
                            else if (CustomSpell.W.IsReady())
                            {
                                Utility.DelayAction.Add(100, () => CustomSpell.W.CastOnUnit(unit));
                            }
                        }
                        else if (CustomSpell.Q.IsReady() && CustomSpell.W.IsReady())
                        {
                            CustomSpell.Q.Cast(unit);
                            Utility.DelayAction.Add(100, () => CustomSpell.W.CastOnUnit(unit));
                        }
                    }
                    break;

                case 3:
                    if ((CustomSpell.Q.IsReady() && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchQ")
                            .Item("SAssembliesChampionsTahmKenchQInterrupt")
                            .GetValue<bool>()) || (CustomSpell.W.IsReady() && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchW")
                               .Item("SAssembliesChampionsTahmKenchWInterrupt")
                               .GetValue<bool>() && this.swallowedUnit == SwallowedUnit.None))
                    {
                        if (CustomSpell.Q.IsReady())
                        {
                            CustomSpell.Q.Cast(unit);
                        }
                        else if (CustomSpell.W.IsReady())
                        {
                            CustomSpell.W.CastOnUnit(unit);
                        }
                    }
                    break;
            }
        }
Пример #24
0
        /// <summary>
        ///     Get the spell damage value.
        /// </summary>
        /// <param name="source">
        ///     The source
        /// </param>
        /// <param name="target">
        ///     The target
        /// </param>
        /// <param name="spellSlot">
        ///     The spell slot
        /// </param>
        /// <param name="stage">
        ///     The stage
        /// </param>
        /// <returns>
        ///     The <see cref="double" /> value of damage.
        /// </returns>
        public static double GetSpellDamage(
            this Obj_AI_Hero source,
            Obj_AI_Base target,
            SpellSlot spellSlot,
            DamageStage stage = DamageStage.Default)
        {
            if (source == null || !source.IsValid || target == null || !target.IsValid)
            {
                return(0);
            }

            ChampionDamage value;

            if (!DamageCollection.TryGetValue(source.ChampionName, out value))
            {
                return(0);
            }

            var spellData = value.GetSlot(spellSlot)?.FirstOrDefault(e => e.Stage == stage)?.SpellData;

            if (spellData == null)
            {
                return(0);
            }

            var spellLevel =
                source.Spellbook.GetSpell(spellData.ScaleSlot != SpellSlot.Unknown ? spellData.ScaleSlot : spellSlot)
                .Level;

            if (spellLevel == 0)
            {
                return(0);
            }

            bool alreadyAdd1 = false, alreadyAdd2 = false;
            var  targetHero   = target as Obj_AI_Hero;
            var  targetMinion = target as Obj_AI_Minion;

            double dmgBase = 0, dmgBonus = 0, dmgPassive = 0;
            var    dmgReduce = 1d;

            if (spellData.DamagesPerLvl?.Count > 0)
            {
                dmgBase = spellData.DamagesPerLvl[Math.Min(source.Level - 1, spellData.DamagesPerLvl.Count - 1)];
            }
            else if (spellData.Damages?.Count > 0)
            {
                dmgBase = spellData.Damages[Math.Min(spellLevel - 1, spellData.Damages.Count - 1)];
                if (!string.IsNullOrEmpty(spellData.ScalingBuff))
                {
                    var buffCount =
                        (spellData.ScalingBuffTarget == DamageScalingTarget.Source ? source : target).GetBuffCount(
                            spellData.ScalingBuff);
                    dmgBase = buffCount > 0 ? dmgBase * (buffCount + spellData.ScalingBuffOffset) : 0;
                }
            }
            if (dmgBase > 0)
            {
                if (targetMinion != null && spellData.BonusDamageOnMinion?.Count > 0)
                {
                    dmgBase +=
                        spellData.BonusDamageOnMinion[Math.Min(spellLevel - 1, spellData.BonusDamageOnMinion.Count - 1)];
                }
                if (spellData.IsApplyOnHit || spellData.IsModifiedDamage ||
                    spellData.SpellEffectType == SpellEffectType.Single)
                {
                    if (source.HasBuff("Serrated"))
                    {
                        dmgBase += 15;
                    }
                    if (targetHero != null)
                    {
                        if (!spellData.IsApplyOnHit && Items.HasItem((int)ItemId.Dorans_Shield, targetHero))
                        {
                            dmgBase -= 8;
                        }
                    }
                    else if (targetMinion != null)
                    {
                        var savagery = source.GetCunning(Cunning.Savagery);
                        if (savagery.IsValid())
                        {
                            dmgBase += savagery.Points;
                        }
                    }
                    alreadyAdd1 = true;
                }
                dmgBase = source.CalculateDamage(target, spellData.DamageType, dmgBase);
                if (spellData.IsModifiedDamage && spellData.DamageType == DamageType.Physical && targetHero != null &&
                    targetHero.ChampionName == "Fizz")
                {
                    dmgBase    -= 4 + (2 * Math.Floor((targetHero.Level - 1) / 3d));
                    alreadyAdd2 = true;
                }
            }
            if (spellData.BonusDamages?.Count > 0)
            {
                foreach (var bonusDmg in spellData.BonusDamages)
                {
                    var dmg = source.ResolveBonusSpellDamage(target, bonusDmg, spellLevel - 1);
                    if (dmg <= 0)
                    {
                        continue;
                    }
                    if (!alreadyAdd1 &&
                        (spellData.IsModifiedDamage || spellData.SpellEffectType == SpellEffectType.Single))
                    {
                        if (source.HasBuff("Serrated"))
                        {
                            dmg += 15;
                        }
                        if (targetHero != null)
                        {
                            if (Items.HasItem((int)ItemId.Dorans_Shield, targetHero))
                            {
                                dmg -= 8;
                            }
                        }
                        else if (targetMinion == null)
                        {
                            var savagery = source.GetCunning(Cunning.Savagery);
                            if (savagery.IsValid())
                            {
                                dmg += savagery.Points;
                            }
                        }
                        alreadyAdd1 = true;
                    }
                    dmgBonus += source.CalculateDamage(target, bonusDmg.DamageType, dmg);
                    if (!alreadyAdd2 && spellData.IsModifiedDamage && bonusDmg.DamageType == DamageType.Physical &&
                        targetHero != null && targetHero.ChampionName == "Fizz")
                    {
                        dmgBonus   -= 4 + (2 * Math.Floor((targetHero.Level - 1) / 3d));
                        alreadyAdd2 = true;
                    }
                }
            }

            var totalDamage = dmgBase + dmgBonus;

            if (totalDamage > 0)
            {
                if (spellData.ScalePerTargetMissHealth > 0)
                {
                    totalDamage *= (target.MaxHealth - target.Health) / target.MaxHealth
                                   * spellData.ScalePerTargetMissHealth + 1;
                }
                if (target is Obj_AI_Minion && spellData.MaxDamageOnMinion?.Count > 0)
                {
                    totalDamage = Math.Min(
                        totalDamage,
                        spellData.MaxDamageOnMinion[Math.Min(spellLevel - 1, spellData.MaxDamageOnMinion.Count - 1)]);
                }
                if (spellData.IsApplyOnHit || spellData.IsModifiedDamage)
                {
                    dmgPassive += source.GetPassiveDamageInfo(target, false).Value;
                    if (targetHero != null)
                    {
                        if (spellData.IsModifiedDamage &&
                            new[] { 3047, 1316, 1318, 1315, 1317 }.Any(i => Items.HasItem(i, targetHero)))
                        {
                            dmgReduce *= 0.9;
                        }
                        if (source.GetFerocity(Ferocity.FervorofBattle).IsValid())
                        {
                            var fervorBuffCount = source.GetBuffCount("MasteryOnHitDamageStacker");
                            if (fervorBuffCount > 0)
                            {
                                dmgPassive += source.CalculateDamage(
                                    target,
                                    DamageType.Physical,
                                    (0.13 + (0.77 * source.Level)) * fervorBuffCount);
                            }
                        }
                    }
                }
            }

            return
                (Math.Max(
                     Math.Floor(
                         totalDamage * dmgReduce
                         + (spellData.IsApplyOnHit || spellData.IsModifiedDamage ? source.PassiveFlatMod(target) : 0)
                         + dmgPassive),
                     0));
        }
Пример #25
0
 private void handeQ(Obj_AI_Hero target, HitChance hitChance)
 {
     if (player.Distance(target) <= Orbwalking.GetRealAutoAttackRange(target) && !Orbwalking.CanAttack() &&
         Orbwalking.CanMove(100) && target.GetBuffCount("TahmKenchPDebuffCounter") != 2)
     {
         Q.CastIfHitchanceEquals(target, hitChance, config.Item("packets").GetValue<bool>());
     }
     else if (player.Distance(target) > Orbwalking.GetRealAutoAttackRange(target))
     {
         Q.CastIfHitchanceEquals(target, hitChance, config.Item("packets").GetValue<bool>());
     }
 }
Пример #26
0
 /// <summary>
 ///     Gets the passive stacks.
 /// </summary>
 /// <param name="target"></param>
 /// <returns>
 ///     <see cref="GetPassiveStacks" />
 /// </returns>
 internal static int GetPassiveStacks(Obj_AI_Hero target) => target.GetBuffCount("tahmkenchpdebuffcounter");
Пример #27
0
 /// <summary>
 ///     Gets the current amount of rend stacks on the given <see cref="Obj_AI_Hero" /> target
 /// </summary>
 /// <param name="target">The target</param>
 /// <returns>amount of stacks</returns>
 public static int GetRendBuffCount(this Obj_AI_Hero target) => target.GetBuffCount("kalistaexpungemarker");
Пример #28
0
 private int GetPassiveCount(Obj_AI_Hero target)
 {
     return(target.HasBuff("varuswdebuff") ? target.GetBuffCount("varuswdebuff") : 0);
 }
Пример #29
0
 public static int Damage(Obj_AI_Hero target)
 =>
     Bools.IsCharged(target) ?
         (int)(Variables.E.GetDamage(target) *
             ((0.30f * target.GetBuffCount("TristanaECharge")) + 1f) + 
             Variables.R.GetDamage(target))
     :
         (int)Variables.R.GetDamage(target);
Пример #30
0
        public static bool Contains(Obj_AI_Hero unit, GameObjectProcessSpellCastEventArgs args)
        {
            var name = unit.ChampionName;
            var slot = args.Slot.Equals(48) ? SpellSlot.R : args.Slot;

            if (args.SData.Name.Equals("KalistaRAllyDash") && Program.Menu.Item("Oathsworn").IsActive())
            {
                return(true);
            }

            var spells = new List <BlockedSpell>();

            BlockedSpells.TryGetValue(name, out spells);

            if (spells == null || spells.Count == 0)
            {
                return(false);
            }

            foreach (var spell in
                     spells)
            {
                var item = Menu.Item(name + spell.MenuName);
                if (item == null || !item.IsActive())
                {
                    continue;
                }

                if (!spell.PassesModelCondition(unit))
                {
                    continue;
                }

                if (!spell.PassesSpellCondition(args.SData.Name))
                {
                    continue;
                }

                if (!spell.PassesBuffCondition(unit))
                {
                    continue;
                }

                if (!spell.PassesSlotCondition(args.Slot))
                {
                    continue;
                }

                if (spell.IsAutoAttack)
                {
                    if (!args.SData.IsAutoAttack())
                    {
                        continue;
                    }

                    if (spell.SpellName.Equals("-1"))
                    {
                        Console.WriteLine(args.SData.Name);
                    }

                    var condition = true;

                    if (unit.ChampionName.Equals("Gnar"))
                    {
                        var buff = ObjectManager.Player.Buffs.FirstOrDefault(b => b.Name.Equals("gnarwproc"));
                        condition = buff != null && buff.Count == 2;
                    }
                    else if (unit.ChampionName.Equals("Rengar"))
                    {
                        condition = unit.Mana.Equals(5);
                    }

                    if (condition)
                    {
                        return(true);
                    }

                    continue;
                }

                if (name.Equals("Riven"))
                {
                    return(unit.GetBuffCount("RivenTriCleave").Equals(2));
                }

                return(true);
            }

            return(false);
        }
Пример #31
0
 public static bool Has2WStacks(this Obj_AI_Hero target)
 {
     return(target.GetBuffCount("vaynesilvereddebuff") == 2);
 }
Пример #32
0
        private void Interrupter2_OnInterruptableTarget(
            Obj_AI_Hero unit,
            Interrupter2.InterruptableTargetEventArgs args)
        {
            switch (unit.GetBuffCount(this.tahmPassive))
            {
            case 1:
                if (TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchQ")
                    .Item("SAssembliesChampionsTahmKenchQInterrupt")
                    .GetValue <bool>() &&
                    TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchW")
                    .Item("SAssembliesChampionsTahmKenchWInterrupt")
                    .GetValue <bool>())
                {
                    if (Orbwalking.InAutoAttackRange(unit) && CustomSpell.Q.IsReady() && (CustomSpell.W.IsReady() &&
                                                                                          this.swallowedUnit == SwallowedUnit.None))
                    {
                        ObjectManager.Player.IssueOrder(GameObjectOrder.AttackUnit, unit);
                        Utility.DelayAction.Add(100, () => CustomSpell.Q.Cast(unit));
                        Utility.DelayAction.Add(200, () => CustomSpell.W.CastOnUnit(unit));
                    }
                }
                break;

            case 2:
                if ((CustomSpell.Q.IsReady() && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchQ")
                     .Item("SAssembliesChampionsTahmKenchQInterrupt")
                     .GetValue <bool>()) || (CustomSpell.W.IsReady() && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchW")
                                             .Item("SAssembliesChampionsTahmKenchWInterrupt")
                                             .GetValue <bool>() && this.swallowedUnit == SwallowedUnit.None))
                {
                    if (Orbwalking.InAutoAttackRange(unit))
                    {
                        ObjectManager.Player.IssueOrder(GameObjectOrder.AttackUnit, unit);
                        if (CustomSpell.Q.IsReady())
                        {
                            Utility.DelayAction.Add(100, () => CustomSpell.Q.Cast(unit));
                        }
                        else if (CustomSpell.W.IsReady())
                        {
                            Utility.DelayAction.Add(100, () => CustomSpell.W.CastOnUnit(unit));
                        }
                    }
                    else if (CustomSpell.Q.IsReady() && CustomSpell.W.IsReady())
                    {
                        CustomSpell.Q.Cast(unit);
                        Utility.DelayAction.Add(100, () => CustomSpell.W.CastOnUnit(unit));
                    }
                }
                break;

            case 3:
                if ((CustomSpell.Q.IsReady() && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchQ")
                     .Item("SAssembliesChampionsTahmKenchQInterrupt")
                     .GetValue <bool>()) || (CustomSpell.W.IsReady() && TahmKenchChampion.GetSubMenu("SAssembliesChampionsTahmKenchW")
                                             .Item("SAssembliesChampionsTahmKenchWInterrupt")
                                             .GetValue <bool>() && this.swallowedUnit == SwallowedUnit.None))
                {
                    if (CustomSpell.Q.IsReady())
                    {
                        CustomSpell.Q.Cast(unit);
                    }
                    else if (CustomSpell.W.IsReady())
                    {
                        CustomSpell.W.CastOnUnit(unit);
                    }
                }
                break;
            }
        }
Пример #33
0
        public static void Game_OnGameUpdate(EventArgs args)
        {
            Player.SetSkin(Player.BaseSkinName, Config.Item("Ryze.SkinChanger").GetValue <bool>() ? Config.Item("Ryze.SkinChangerName").GetValue <StringList>().SelectedIndex : Player.BaseSkinId);

            if (Config.Item("Ryze.AutoLevelSpell").GetValue <bool>())
            {
                LevelUpSpells();
            }

            if (Player.IsDead)
            {
                return;
            }

            if (Player.GetBuffCount("Recall") == 1)
            {
                return;
            }

            ManaManager();
            PotionManager();

            KillSteal();

            if (Config.Item("Ryze.StackTearInFountain").GetValue <bool>() && Q.IsReady() && ObjectManager.Player.InFountain() && Player.ManaPercent >= Config.Item("Ryze.AutoQTearMinMana").GetValue <Slider>().Value&&
                (TearoftheGoddess.IsOwned(Player) || TearoftheGoddessCrystalScar.IsOwned(Player) || ArchangelsStaff.IsOwned(Player) || ArchangelsStaffCrystalScar.IsOwned(Player) || Manamune.IsOwned(Player) || ManamuneCrystalScar.IsOwned(Player)))
            {
                Q.Cast(ObjectManager.Player, true, true);
            }

            if (Config.Item("Ryze.ChaseActive").GetValue <KeyBind>().Active)
            {
                Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                Chase();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo || Config.Item("Ryze.ComboActive").GetValue <KeyBind>().Active)
            {
                Combo();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                Orbwalking.Attack = true;
                JungleClear();
                LaneClear();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)
            {
                Orbwalking.Attack = true;
                LastHit();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                Orbwalking.Attack = true;
                LastHit();
            }

            if (Config.Item("Ryze.HarassActive").GetValue <KeyBind>().Active || Config.Item("Ryze.HarassActiveT").GetValue <KeyBind>().Active)
            {
                Orbwalking.Attack = true;
                Harass();
            }
        }
Пример #34
0
        private static void ImplementationOnPostAttack(object enemy, PostAttackEventArgs events)
        {
            if (Player.IsDead || MenuGUI.IsChatOpen())
            {
                return;
            }

            var turret = GameObjects.EnemyTurrets.FirstOrDefault(t => !t.IsDead);

            if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Combo) && Setup.Combo["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready)
            {
                Obj_AI_Hero target = events.Target as Obj_AI_Hero;
                if (target != null && Setup.Combo["Mana"].As <MenuSlider>().Value < Player.ManaPercent())
                {
                    var endPos = Player.ServerPosition.Extend(Game.CursorPos, 300);
                    if (endPos.CountEnemyHeroesInRange(850) < Setup.Misc["Qx"].As <MenuSlider>().Value&&
                        endPos.Distance(target.ServerPosition) < Player.AttackRange)
                    {
                        if (target.AttackRange < Player.AttackRange && endPos.Distance(target.ServerPosition) < target.AttackRange)
                        {
                            return;
                        }
                        if (endPos.Distance(turret.ServerPosition) < turret.AttackRange && Setup.Misc["Turret"].As <MenuBool>().Enabled)
                        {
                            return;
                        }
                        Spells.Q.Cast(endPos);
                    }
                }
            }

            if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Mixed) && Setup.Harass["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready)
            {
                Obj_AI_Hero target = events.Target as Obj_AI_Hero;
                if (target != null && Setup.Harass["Mana"].As <MenuSlider>().Value < Player.ManaPercent() && Setup.Harass["Key"].Enabled)
                {
                    var endPos = Player.ServerPosition.Extend(Game.CursorPos, 300);
                    if (endPos.CountEnemyHeroesInRange(850) < Setup.Misc["Qx"].As <MenuSlider>().Value&&
                        endPos.Distance(target.ServerPosition) < Player.AttackRange)
                    {
                        if (target.AttackRange < Player.AttackRange && endPos.Distance(target.ServerPosition) < target.AttackRange)
                        {
                            return;
                        }
                        if (Setup.Harass["QW"].As <MenuBool>().Enabled&& target.GetBuffCount("vaynesilvereddebuff") != 2)
                        {
                            return;
                        }
                        if (endPos.Distance(turret.ServerPosition) < turret.AttackRange && Setup.Misc["Turret"].As <MenuBool>().Enabled)
                        {
                            return;
                        }
                        Spells.Q.Cast(endPos);
                    }
                }
            }

            if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Laneclear) && Setup.Clear["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready)
            {
                Obj_AI_Minion target = events.Target as Obj_AI_Minion;
                if (target != null && Setup.Clear["Mana"].As <MenuSlider>().Value < Player.ManaPercent() && Setup.Clear["Key"].Enabled)
                {
                    var endPos = Player.ServerPosition.Extend(Game.CursorPos, 300);
                    if (endPos.CountEnemyHeroesInRange(850) < Setup.Misc["Qx"].As <MenuSlider>().Value&&
                        endPos.Distance(target.ServerPosition) < Player.AttackRange)
                    {
                        if (target.AttackRange < Player.AttackRange && endPos.Distance(target.ServerPosition) < target.AttackRange)
                        {
                            return;
                        }
                        if (endPos.Distance(turret.ServerPosition) < turret.AttackRange && Setup.Misc["Turret"].As <MenuBool>().Enabled)
                        {
                            return;
                        }
                        Spells.Q.Cast(endPos);
                    }
                }
            }
        }
Пример #35
0
 public static float GetRDamage(Obj_AI_Hero target)
 =>
     (float)(Variables.R.GetDamage(target) * (1 + 0.20 * target.GetBuffCount("dariushemo")));
Пример #36
0
        public static bool Contains(Obj_AI_Hero unit, GameObjectProcessSpellCastEventArgs args)
        {
            var name = unit.ChampionName;
            var slot = args.Slot.Equals(48) ? SpellSlot.R : args.Slot;

            if (args.SData.Name.Equals("KalistaRAllyDash") && Program.Menu.Item("Oathsworn").IsActive())
            {
                return true;
            }

            var spells = new List<BlockedSpell>();
            BlockedSpells.TryGetValue(name, out spells);

            if (spells == null || spells.Count == 0)
            {
                return false;
            }

            foreach (var spell in
                spells)
            {
                var item = Menu.Item(name + spell.MenuName);
                if (item == null || !item.IsActive())
                {
                    continue;
                }

                if (!spell.PassesModelCondition(unit))
                {
                    continue;
                }

                if (!spell.PassesSpellCondition(args.SData.Name))
                {
                    continue;
                }

                if (!spell.PassesBuffCondition(unit))
                {
                    continue;
                }

                if (!spell.PassesSlotCondition(args.Slot))
                {
                    continue;
                }

                if (spell.IsAutoAttack)
                {
                    if (!args.SData.IsAutoAttack())
                    {
                        continue;
                    }

                    if (spell.SpellName.Equals("-1"))
                    {
                        Console.WriteLine(args.SData.Name);
                    }

                    var condition = true;

                    if (unit.ChampionName.Equals("Gnar"))
                    {
                        var buff = ObjectManager.Player.Buffs.FirstOrDefault(b => b.Name.Equals("gnarwproc"));
                        condition = buff != null && buff.Count == 2;
                    }
                    else if (unit.ChampionName.Equals("Rengar"))
                    {
                        condition = unit.Mana.Equals(5);
                    }

                    if (condition)
                    {
                        return true;
                    }

                    continue;
                }

                if (name.Equals("Riven"))
                {
                    return unit.GetBuffCount("RivenTriCleave").Equals(2);
                }

                return true;
            }

            return false;
        }
Пример #37
0
        private void handleWEnemyHero(Obj_AI_Hero target)
        {
            if (target.GetBuffCount("TahmKenchPDebuffCounter") == 3 && !CombatHelper.CheckCriticalBuffs(target) &&
                !target.HasBuffOfType(BuffType.Stun) && !target.HasBuffOfType(BuffType.Snare) && !Q.CanCast(target) &&
                !justQ)
            {
                orbwalker.SetMovement(false);
                if (Orbwalking.CanMove(100) && Game.CursorPos.Distance(target.Position) < 300)
                {
                    player.IssueOrder(GameObjectOrder.MoveTo, target.Position.Extend(player.Position, 100));
                }

                lastWtarget = Team.Enemy;
                W.CastOnUnit(target, true);
            }
        }
Пример #38
0
        public static void Game_OnGameUpdate(EventArgs args)
        {
            Player.SetSkin(Player.BaseSkinName, Config.Item("Gangplank.SkinChanger").GetValue <bool>() ? Config.Item("Gangplank.SkinChangerName").GetValue <StringList>().SelectedIndex : Player.BaseSkinId);

            if (Config.Item("Gangplank.AutoLevelSpell").GetValue <bool>())
            {
                LevelUpSpells();
            }

            if (Player.IsDead)
            {
                return;
            }

            if (Player.GetBuffCount("Recall") == 1)
            {
                return;
            }

            ManaManager();
            PotionManager();

            KillSteal();

            if (W.IsReady() && Player.Mana >= WMANA && Config.Item("Gangplank.CleanseWithW").GetValue <bool>())
            {
                if ((Config.Item("Gangplank.UseWBlind").GetValue <bool>() && Player.HasBuffOfType(BuffType.Blind)) ||
                    (Config.Item("Gangplank.UseWCharm").GetValue <bool>() && Player.HasBuffOfType(BuffType.Charm)) ||
                    (Config.Item("Gangplank.UseWFear").GetValue <bool>() && Player.HasBuffOfType(BuffType.Fear)) ||
                    (Config.Item("Gangplank.UseWPolymorph").GetValue <bool>() && Player.HasBuffOfType(BuffType.Polymorph)) ||
                    (Config.Item("Gangplank.UseWSilence").GetValue <bool>() && Player.HasBuffOfType(BuffType.Silence)) ||
                    (Config.Item("Gangplank.UseWSleep").GetValue <bool>() && Player.HasBuffOfType(BuffType.Sleep)) ||
                    (Config.Item("Gangplank.UseWSlow").GetValue <bool>() && Player.HasBuffOfType(BuffType.Slow)) ||
                    (Config.Item("Gangplank.UseWSnare").GetValue <bool>() && Player.HasBuffOfType(BuffType.Snare)) ||
                    (Config.Item("Gangplank.UseWStun").GetValue <bool>() && Player.HasBuffOfType(BuffType.Stun)) ||
                    (Config.Item("Gangplank.UseWTaunt").GetValue <bool>() && Player.HasBuffOfType(BuffType.Taunt)) ||
                    (Config.Item("Gangplank.UseWPoison").GetValue <bool>() && Player.HasBuffOfType(BuffType.Poison)))
                {
                    W.Cast();
                }
            }

            if (W.IsReady() && Player.Mana >= WMANA + QMANA && Config.Item("Gangplank.UseWAuto").GetValue <bool>() && Player.HealthPercent <= Config.Item("Gangplank.UseWAutoHP").GetValue <Slider>().Value)
            {
                W.Cast();
            }

            if (W.IsReady() && Player.Mana >= WMANA + QMANA && Config.Item("Gangplank.UseWAutoNoEnemy").GetValue <bool>() && Player.HealthPercent <= Config.Item("Gangplank.UseWAutoHPNoEnemy").GetValue <Slider>().Value&& Player.CountEnemiesInRange(1500) == 0)
            {
                W.Cast();
            }


            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                Combo();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                LaneClear();
                JungleClear();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)
            {
                LastHit();
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                LastHit();
            }

            if (Config.Item("Gangplank.HarassActive").GetValue <KeyBind>().Active || Config.Item("Gangplank.HarassActiveT").GetValue <KeyBind>().Active)
            {
                Harass();
            }
        }
Пример #39
0
 public override void Harass(Obj_AI_Hero target)
 {
     base.Harass(target);
     if (HarassActivateWhenLeaving <= target.GetBuffCount("twitchdeadlyvenom") && target.Distance(ObjectManager.Player) > Orbwalking.GetRealAutoAttackRange(target))
         Cast();
 }
Пример #40
0
        /// <summary>
        /// Calculates mastery passives 
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="target">The target.</param>
        /// <returns></returns>
        private static float PassiveFlatMod(Obj_AI_Hero source, Obj_AI_Base target)
        {
            float value = 0f;
            
             //Offensive masteries:

            //Fervor of Battle: STACKTIVATE Your basic attacks and spells give you stacks of Fervor for 5 seconds, stacking 10 times. Each stack of Fervor adds 1-8 bonus physical damage to your basic attacks against champions, based on your level.
            if (target.Type == GameObjectType.obj_AI_Hero)
            {
                Mastery Fervor = ObjectManager.Player.Masteries.FirstOrDefault(p => p.Page == MasteryPage.Ferocity && p.Id == (int)Ferocity.FervorofBattle);
                if (Fervor != null && Fervor.Points >= 1)
                    value += (0.9f + source.Level * 0.42f) * source.GetBuffCount("MasteryOnHitDamageStacker");
            }

            // Defensive masteries:

            //Tough Skin DIRT OFF YOUR SHOULDERS You take 2 less damage from champion and monster basic attacks
            if (target.Type == GameObjectType.obj_AI_Hero)
            {
                Mastery Toughskin = ObjectManager.Player.Masteries.FirstOrDefault(p => p.Page == MasteryPage.Resolve && p.Id == (int)Resolve.ToughSkin);
                if (Toughskin != null && Toughskin.Points >= 1)
                    value -= 2;
            }

            return value;
        }