Ejemplo n.º 1
0
        private static float TotalDmg(Obj_AI_Base enemy, bool useQ, bool useE, bool useR, bool qRange)
        {
            var  qaaDmg   = new Double[] { 20, 40, 60, 80, 100 };
            var  damage   = 0d;
            var  rTicks   = sliderLinks["rTicks"].Value.Value;
            bool inQRange = ((qRange && Orbwalking.InAutoAttackRange(enemy)) || qRange == false);

            //Base Q damage
            if (useQ && Q.IsReady() && inQRange)
            {
                damage += player.GetSpellDamage(enemy, SpellSlot.Q);
                damage += player.CalcDamage(enemy, Damage.DamageType.Magical, qaaDmg[Q.Level - 1] + 0.5 * player.TotalMagicalDamage + player.TotalAttackDamage);
            }

            // Q damage on AA
            if (useQ && !Q.IsReady() && player.HasBuff("viktorpowertransferreturn") && inQRange)
            {
                damage += player.CalcDamage(enemy, Damage.DamageType.Magical, qaaDmg[Q.Level - 1] + 0.5 * player.TotalMagicalDamage + player.TotalAttackDamage);
            }

            //E damage
            if (useE && E.IsReady())
            {
                if (player.HasBuff("viktoreaug") || player.HasBuff("viktorqeaug") || player.HasBuff("viktorqweaug"))
                {
                    damage += player.GetSpellDamage(enemy, SpellSlot.E, 1);
                }
                else
                {
                    damage += player.GetSpellDamage(enemy, SpellSlot.E);
                }
            }

            //R damage + 2 ticks
            if (useR && R.Level > 0 && R.IsReady() && R.Instance.Name == "ViktorChaosStorm")
            {
                damage += Damage.GetSpellDamage(player, enemy, SpellSlot.R, 1) * rTicks;
                damage += Damage.GetSpellDamage(player, enemy, SpellSlot.R);
            }

            // Ludens Echo damage
            if (Items.HasItem(3285))
            {
                damage += player.CalcDamage(enemy, Damage.DamageType.Magical, 100 + player.FlatMagicDamageMod * 0.1);
            }

            //sheen damage
            if (Items.HasItem(3057))
            {
                damage += player.CalcDamage(enemy, Damage.DamageType.Physical, 0.5 * player.BaseAttackDamage);
            }

            //lich bane dmg
            if (Items.HasItem(3100))
            {
                damage += player.CalcDamage(enemy, Damage.DamageType.Magical, 0.5 * player.FlatMagicDamageMod + 0.75 * player.BaseAttackDamage);
            }

            return((float)damage);
        }
Ejemplo n.º 2
0
        private void Clear()
        {
            var mob = Jungle.GetNearest(player.Position);

            if (mob != null && config.Item("usewLCSteal").GetValue <bool>() && CanW && W.CanCast(mob) &&
                player.CalcDamage(mob, Damage.DamageType.Physical, Wdmg(mob)) > mob.Health)
            {
                W.Cast(mob);
            }
            if (mob != null && config.Item("usewbsmite").GetValue <bool>() && CanW && W.CanCast(mob) &&
                Jungle.SmiteReady(config.Item("useSmite").GetValue <KeyBind>().Active) &&
                player.CalcDamage(mob, Damage.DamageType.Physical, Wdmg(mob)) + Jungle.smiteDamage(mob) > mob.Health)
            {
                W.Cast(mob);
            }
            float perc = config.Item("minmana").GetValue <Slider>().Value / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            var minions = MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly);

            if (config.Item("useeLC").GetValue <bool>() && E.IsReady() &&
                config.Item("ehitLC").GetValue <Slider>().Value <= minions.Count)
            {
                E.Cast();
            }
        }
Ejemplo n.º 3
0
        static double IsRapeble(AIHeroClient victim)
        {
            int UC = ultiCount();
            int jumpCount = (UC - (int)(victim.Distance(player.Position) / R.Range));
            double comboDamage = 0d;
            if (Q.IsReady()) comboDamage += player.GetSpellDamage(victim, SpellSlot.Q) + player.CalcDamage(victim, Damage.DamageType.Magical, (45 + 35 * Q.Level + 0.5 * player.FlatMagicDamageMod));
            if (E.IsReady()) comboDamage += player.GetSpellDamage(victim, SpellSlot.E);

            if (hasBuff(victim, "AkaliMota")) comboDamage += player.CalcDamage(victim, Damage.DamageType.Magical, (45 + 35 * Q.Level + 0.5 * player.FlatMagicDamageMod));
            //comboDamage += player.GetAutoAttackDamage(victim, true);

            comboDamage += player.CalcDamage(victim, Damage.DamageType.Magical, CalcPassiveDmg());
            comboDamage += player.CalcDamage(victim, Damage.DamageType.Magical, CalcItemsDmg(victim));

            foreach (var item in player.InventoryItems)
                if ((int)item.Id == 3128)
                    if (player.Spellbook.CanUseSpell((SpellSlot)item.Slot) == SpellState.Ready)
                        comboDamage *= 1.2;
            if (hasBuff(victim, "deathfiregraspspell")) comboDamage *= 1.2;

            if (UC > 0) comboDamage += jumpCount > 0 ? player.GetSpellDamage(victim, SpellSlot.R) * jumpCount : player.GetSpellDamage(victim, SpellSlot.R);
            if (IgniteSlot != SpellSlot.Unknown && player.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
                comboDamage += ObjectManager.Player.GetSummonerSpellDamage(victim, Damage.SummonerSpell.Ignite);
            return comboDamage;
        }
Ejemplo n.º 4
0
 internal static double GetQDamage(Obj_AI_Base t)
 {
     return(Me.CalcDamage
                (t, Damage.DamageType.Magical,
                (float)new double[] { 70, 110, 150, 190, 230 }[Q.Level - 1] +0.65f *
                Me.TotalMagicalDamage));
 }
Ejemplo n.º 5
0
 internal static float QDmg(Obj_AI_Base unit)
 {
     return
         ((float)
          Player.CalcDamage(unit, Damage.DamageType.Physical,
                            new[] { 20, 20, 35, 50, 65, 80 }[Spellbook["Q"].Level] +
                            (new[] { 1.0, 1.0, 1.1, 1.2, 1.3, 1.4 }[Spellbook["Q"].Level] *Player.FlatPhysicalDamageMod)));
 }
Ejemplo n.º 6
0
 private static double EDamage(Obj_AI_Base unit)
 {
     return(_e.IsReady()
         ? _player.CalcDamage(unit, DamageType.Physical,
                              new[] { 0.8, 0.9, 1, 1.1, 1.2 }[_e.Level - 1] *_player.TotalAttackDamage *
                              (1 + _player.Mana / _player.MaxMana))
         : 0d);
 }
Ejemplo n.º 7
0
 public static float getJayceEQDmg(Obj_AI_Base target)
 {
     return
         ((float)
          Player.CalcDamage(target, Damage.DamageType.Physical,
                            (7 + (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).Level * 77)) +
                            (1.68 * ObjectManager.Player.FlatPhysicalDamageMod)));
 }
Ejemplo n.º 8
0
        public static float getTrueRDmgOn(Obj_AI_Base target, float minus = 0)
        {
            float baseDmg       = 40 + 40 * R.Level + 0.6f * Player.FlatPhysicalDamageMod;
            float eneMissHpProc = ((((target.MaxHealth - target.Health - minus) / target.MaxHealth) * 100f) > 75f)?75f:(((target.MaxHealth - target.Health) / target.MaxHealth) * 100f);

            float multiplier = 1 + (eneMissHpProc * 2.66f) / 100;

            return((float)Player.CalcDamage(target, Damage.DamageType.Physical, baseDmg * multiplier));
        }
Ejemplo n.º 9
0
        internal static double GetDamage_Q1(Obj_AI_Base unit)
        {
            List <double> baseDmg = new List <double> {
                50, 80, 110, 140, 170
            };
            double bonus = (myHero.TotalAttackDamage - myHero.BaseAttackDamage) * 0.9;
            double total = baseDmg[Q.Level - 1] + bonus;

            return(myHero.CalcDamage(unit, Damage.DamageType.Physical, total));
        }
Ejemplo n.º 10
0
 // WorstPing
 public static double GetDamageQ(Obj_AI_Base target) // fixed
 {
     return(Q.IsReady()
                ? Player.CalcDamage(
                target,
                DamageType.Magical,
                new double[] { 120, 160, 200, 240, 280 }[Q.Level - 1]
                +Player.TotalMagicalDamage * .8f)
                : 0d);
 }
Ejemplo n.º 11
0
        public static float GetItemsDamage(AIHeroClient target)
        {
            double damage = 0;

            if (Items.HasItem(odins.Id) && Items.CanUseItem(odins.Id))
            {
                damage += Damage.GetItemDamage(player, target, Damage.DamageItems.OdingVeils);
            }
            if (Items.HasItem(hexgun.Id) && Items.CanUseItem(hexgun.Id))
            {
                damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Hexgun);
            }
            var ludenStacks = player.Buffs.FirstOrDefault(buff => buff.Name == "itemmagicshankcharge");

            if (ludenStacks != null && (Items.HasItem(Ludens.Id) && ludenStacks.Count == 100))
            {
                damage += player.CalcDamage(
                    target, Damage.DamageType.Magical,
                    Damage.CalcDamage(player, target, Damage.DamageType.Magical, 100 + player.FlatMagicDamageMod * 0.15));
            }
            if (Items.HasItem(lich.Id) && Items.CanUseItem(lich.Id))
            {
                damage += player.CalcDamage(
                    target, Damage.DamageType.Magical, player.BaseAttackDamage * 0.75 + player.FlatMagicDamageMod * 0.5);
            }
            if (Items.HasItem(Dfg.Id) && Items.CanUseItem(Dfg.Id))
            {
                damage  = damage * 1.2;
                damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Dfg);
            }
            if (Items.HasItem(Bft.Id) && Items.CanUseItem(Bft.Id))
            {
                damage  = damage * 1.2;
                damage += Damage.GetItemDamage(player, target, Damage.DamageItems.BlackFireTorch);
            }
            if (Items.HasItem(tiamat.Id) && Items.CanUseItem(tiamat.Id))
            {
                damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Tiamat);
            }
            if (Items.HasItem(hydra.Id) && Items.CanUseItem(hydra.Id))
            {
                damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Hydra);
            }
            if (Items.HasItem(bilgewater.Id) && Items.CanUseItem(bilgewater.Id))
            {
                damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Bilgewater);
            }
            if (Items.HasItem(botrk.Id) && Items.CanUseItem(botrk.Id))
            {
                damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Botrk);
            }
            damage += GetSheenDmg(target);
            return((float)damage);
        }
Ejemplo n.º 12
0
        private static double getRDamage(AIHeroClient hero)
        {
            var dmg = new double[] { 175, 350, 525 }[R.Level - 1] +
            new[] { 28.57, 33.33, 40 }[R.Level - 1] / 100 * (hero.MaxHealth - hero.Health);

            if (hero.HasBuff("garenpassiveenemytarget"))
            {
                return(player.CalcDamage(hero, DamageType.True, dmg));
            }
            return(player.CalcDamage(hero, DamageType.Magical, dmg));
        }
Ejemplo n.º 13
0
            private double GetAADamage(Obj_AI_Base target)
            {
                double dmg = Player.GetAutoAttackDamage(target, false);

                // BotRK
                if (Items.HasItem(3153, Player))
                {
                    var d = 0.08 * target.Health;
                    if (target is Obj_AI_Minion)
                    {
                        d = Math.Min(d, 60);
                    }

                    dmg += d;
                }

                if (Player.Masteries.Any(m => m.Page == MasteryPage.Offense && m.Id == 132 && m.Points == 1))
                {
                    dmg += Player.CalcDamage(target, Damage.DamageType.Magical, 0.05 * Player.FlatMagicDamageMod);
                }


                if (Player.ChampionName.ToLower() == "orianna")
                {
                    float[] orianna_passive = new float[] { 10, 10, 10, 18, 18, 18, 26, 26, 26, 34, 34, 34, 42, 42, 42, 50, 50, 50 };
                    if (Player.HasBuff("orianaspellsword"))
                    {
                        int count = Player.GetBuff("orianaspellsword").Count;
                        if (_lastTarget == target)
                        {
                            if (count < 2)
                            {
                                count++;
                            }
                        }
                        else
                        {
                            count = 0;
                        }

                        dmg += Player.CalcDamage(target, Damage.DamageType.Magical, (0.15 * Player.FlatMagicDamageMod + orianna_passive[Player.Level - 1]) * (1 + count * 0.2));
                    }
                    else
                    {
                        dmg += Player.CalcDamage(target, Damage.DamageType.Magical, 0.15 * Player.FlatMagicDamageMod + orianna_passive[Player.Level - 1]);
                    }
                }


                return(dmg);
            }
Ejemplo n.º 14
0
        private static double GetQDamage(Obj_AI_Base target)
        {
            if (!target.IsValidTarget())
            {
                return(0d);
            }

            return(Q.Level > 0 && Qcd == 0
                ? Me.CalcDamage
                       (target, Damage.DamageType.Magical,
                       new[] { 60, 77.5, 95, 112.5, 130 }[Q.Level - 1] +
                       0.4 * Me.TotalMagicalDamage)
                : 0d);
        }
Ejemplo n.º 15
0
        public static float GetQDamage(Obj_AI_Base target)
        {
            float damage = 0f;

            damage += (float)Player.GetSpellDamage(target, SpellSlot.Q);
            if (SpellManager.HasQBuff)
            {
                var afterQDmgs = new float[] { 20, 25, 30, 35, 40, 45, 50, 55, 60, 70, 80, 90, 110, 130, 150, 170, 190, 210 };
                var afterQDmg  = afterQDmgs[Player.Level - 1];
                damage  = afterQDmg;
                damage += (float)(Player.TotalMagicalDamage * 0.5) + Player.TotalAttackDamage;
                damage  = (float)Player.CalcDamage(target, Damage.DamageType.Magical, (double)damage);
            }
            return(damage);
        }
Ejemplo n.º 16
0
        public static float fullComboDmgOn(Obj_AI_Base target)
        {
            float dmg = 0f;

            if (gotPassiveDmg())
            {
                dmg +=
                    (float)
                    Player.CalcDamage(target, Damage.DamageType.Magical,
                                      10 + 10 * Player.Level + 0.5 * Player.FlatMagicDamageMod); //DamageLib.CalcMagicDmg(10 + 10* Player.Level + 0.5*Player.FlatMagicDamageMod,target);
            }
            if (Q.IsReady())
            {
                if (targetIsIsolated(target))
                {
                    dmg += Q.GetDamage(target, 1);// DamageLib.getDmg(target, DamageLib.SpellType.Q, DamageLib.StageType.FirstDamage);
                }
                else
                {
                    dmg += Q.GetDamage(target);
                }
            }
            if (W.IsReady())
            {
                dmg += W.GetDamage(target);
            }
            if (E.IsReady())
            {
                dmg += E.GetDamage(target);
            }


            return(dmg);
        }
Ejemplo n.º 17
0
        public static double GetQ2Damage(Obj_AI_Base target, double dmg)
        {
            var hpafter = target.Health - dmg;
            var qDmg    = ((Program._Q.Level * 30) + 20) + (Player.FlatPhysicalDamageMod * 0.9) + (0.08 * (target.MaxHealth - hpafter));

            return(Player.CalcDamage(target, Damage.DamageType.Physical, qDmg));
        }
Ejemplo n.º 18
0
 private static float PassiveDmg(Obj_AI_Base hero)
 {
     return
         ((float)
          (player.CalcDamage(hero, DamageType.Magical, 20 + 5 * player.Level + player.TotalMagicalDamage * 0.3f) +
           player.GetAutoAttackDamage(hero)));
 }
Ejemplo n.º 19
0
        private static bool KillableWithAA(Obj_AI_Base target)
        {
            var qaaDmg = new Double[] { 20, 25, 30, 35, 40, 45, 50, 55, 60, 70, 80, 90, 110, 130, 150, 170, 190, 210 };

            if (player.HasBuff("viktorpowertransferreturn") && Orbwalker.CanAutoAttack && (player.CalcDamage(target, DamageType.Magical,
                                                                                                             qaaDmg[player.Level >= 18 ? 18 - 1 : player.Level - 1] +
                                                                                                             (player.TotalMagicalDamage * .5) + player.TotalAttackDamage) > target.Health))
            {
                Console.WriteLine("killable with aa");
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 20
0
 private static float getRDamage(AIHeroClient enemy)
 {
     return
         ((float)
          player.CalcDamage(enemy, DamageType.Magical,
                            (Rwave[R.Level - 1] + 0.1 * player.FlatMagicDamageMod) * waveLength()));
 }
Ejemplo n.º 21
0
        public float GetScalingDamage(Obj_AI_Base target, DamageType Type, ScalingType Stat, float percentScaling)
        {
            float amount = ScalingFunc[Stat.ToString()](percentScaling);

            if (Type == DamageType.Magical)
            {
                return((float)Magic_damage_m * (float)source.CalcDamage(target, Damage.DamageType.Magical, amount));
            }
            else if (Type == DamageType.Physical)
            {
                return((float)Physical_damage_m * (float)source.CalcDamage(target, Damage.DamageType.Physical, amount));
            }
            else if (Type == DamageType.True)
            {
                return(amount);
            }
            return(0f);
        }
Ejemplo n.º 22
0
        private double getWDamage(AIHeroClient target)
        {
            var r        = R.Level - 1;
            var Rpercent = new[] { 0.04f, 0.06f, 0.08f }[r >= 1 ? r: 1];
            var bonusDmg = 20 + (player.MaxHealth - (515f + 95f * (player.Level - 1f))) * Rpercent;
            var dmg      = (new[] { 0.20, 0.23, 0.26, 0.29, 0.32 }[W.Level - 1] +
                            0.02 * player.TotalMagicalDamage / 100) * target.MaxHealth;

            return(player.CalcDamage(target, DamageType.Magical, dmg + bonusDmg));
        }
Ejemplo n.º 23
0
        public static double GetAzirAASandwarriorDamage(Obj_AI_Base unit)
        {
            var damagelist = new List <int> {
                50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 110, 120, 130, 140, 150, 160, 170
            };
            var dmg = damagelist[MyHero.Level - 1] + (MyHero.BaseAbilityDamage * 0.7);

            if (
                ObjectManager.Get <Obj_AI_Minion>()
                .Count(
                    obj =>
                    obj.Name == "AzirSoldier" && obj.IsAlly && obj.BoundingRadius < 66 && obj.AttackSpeedMod > 1 &&
                    obj.LSDistance(unit) < 350) == 2)
            {
                return(MyHero.CalcDamage(unit, DamageType.Magical, dmg) +
                       (MyHero.CalcDamage(unit, DamageType.Magical, dmg) * 0.25));
            }
            return(MyHero.CalcDamage(unit, DamageType.Magical, dmg));
        }
Ejemplo n.º 24
0
        public static float GetRealDamage(this SpellSlot slot, Obj_AI_Base target)
        {
            // Helpers
            var   spellLevel  = player.Spellbook.GetSpell(slot).Level;
            var   damageType  = Damage.DamageType.Magical;
            float damage      = 0;
            float extraDamage = 0;

            // Validate spell level
            if (spellLevel == 0)
            {
                return(0);
            }
            spellLevel--;

            switch (slot)
            {
            case SpellSlot.Q:

                // First cast: Xerath charges Arcanopulse, gradually decreasing his Movement Speed while increasing the spell's range.
                // Second cast: Xerath fires Arcanopulse, dealing 80/120/160/200/240 (+0.75) magic damage to all enemies in a line.
                // While charging Arcanopulse, Xerath cannot attack or cast other spells. If Xerath does not fire the spell, half the Mana cost is refunded.
                damage = new float[] { 80, 120, 160, 200, 240 }[spellLevel] +0.75f * player.TotalMagicalDamage();
                break;

            case SpellSlot.W:

                // Xerath calls down a blast of arcane energy, dealing 60/90/120/150/180 (+0.6) magic damage to all enemies within the target area, slowing them by 10% for 2.5 seconds.
                // Enemies in the center of the blast take undefined (+undefined) magic damage and are slowed by 60/65/70/75/80%. This slow decays rapidly
                damage = new float[] { 60, 90, 120, 150, 180 }[spellLevel] +0.6f * player.TotalMagicalDamage();
                break;

            case SpellSlot.E:

                // Xerath fires an orb of raw magic. The first enemy hit takes 80/110/140/170/200 (+0.45) magic damage and is stunned for between 0.75 and 2 seconds.
                // The stun duration lengthens based on how far the orb travels.
                damage = new float[] { 80, 110, 140, 170, 200 }[spellLevel] +0.45f * player.TotalMagicalDamage();
                break;

            case SpellSlot.R:

                // Xerath ascends to his true form, becoming rooted in place and gaining 3 Arcane Barrages. This magic artillery deals 190/245/300 (+0.43) magic damage to all enemies hit.
                damage = new float[] { 200, 230, 260 }[spellLevel] +0.43f * player.TotalMagicalDamage();
                break;
            }

            // No damage set
            if (damage == 0 && extraDamage == 0)
            {
                return(0);
            }

            // Calculate damage on target and return (-20 to make it actually more accurate Kappa)
            return((float)player.CalcDamage(target, damageType, damage) + extraDamage - 20);
        }
Ejemplo n.º 25
0
        internal static float GetRDamage(AIHeroClient target)
        {
            if (target == null)
            {
                return(0f);
            }

            // impact physical damage
            var irdmg = Chargeshot.IsReady() && Proj2(target.ServerPosition, Chargeshot.Width, Chargeshot.Range) <= 1
                ? (float)Me.CalcDamage(target, Damage.DamageType.Physical,
                                       new double[] { 250, 400, 550 }[Chargeshot.Level - 1] +1.5 * Me.FlatPhysicalDamageMod)
                : 0;

            // explosion damage
            var erdmg = Chargeshot.IsReady() && Proj2(target.ServerPosition, Chargeshot.Width, Chargeshot.Range) > 1
                ? (float)Me.CalcDamage(target, Damage.DamageType.Physical,
                                       new double[] { 200, 320, 440 }[Chargeshot.Level - 1] +1.2 * Me.FlatPhysicalDamageMod)
                : 0;

            return(irdmg + erdmg);
        }
Ejemplo n.º 26
0
        internal static int GetCustomDamage(this AIHeroClient source, string auraname, AIHeroClient target)
        {
            if (auraname == "sheen")
            {
                return
                    ((int)
                     source.CalcDamage(target, Damage.DamageType.Physical,
                                       1.0 * source.FlatPhysicalDamageMod + source.BaseAttackDamage));
            }

            if (auraname == "lichbane")
            {
                return
                    ((int)
                     source.CalcDamage(target, Damage.DamageType.Magical,
                                       (0.75 * source.FlatPhysicalDamageMod + source.BaseAttackDamage) +
                                       (0.50 * source.FlatMagicDamageMod)));
            }

            return(0);
        }
Ejemplo n.º 27
0
        private static float ComboDamage(AIHeroClient hero)
        {
            float damage = 0;

            if (Q.IsReady())
            {
                damage += (float)Damage.GetSpellDamageLS(me, hero, SpellSlot.Q);
            }
            if (E.IsReady() || E.Instance.State == SpellState.Surpressed)
            {
                damage += (float)Damage.GetSpellDamageLS(me, hero, SpellSlot.E);
            }
            if (W.IsReady())
            {
                double watk = (new double[] { 4, 4.5, 5, 5.5, 6 }[W.Level - 1] +hero.FlatMagicDamageMod * 0.03) / 100 *
                              hero.Health;
                double wdot = new double[] { 40, 70, 100, 130, 160 }[W.Level - 1] +
                (new double[] { 4, 6, 8, 10, 12 }[W.Level - 1] / 100) * me.MaxHealth;
                damage += (float)me.CalcDamage(hero, Damage.DamageType.Magical, wdot);
                damage += (float)me.CalcDamage(hero, Damage.DamageType.Magical, watk);
            }
            if (R.IsReady())
            {
                damage += (float)Damage.GetSpellDamageLS(me, hero, SpellSlot.R);
            }

            if ((Items.HasItem(ItemHandler.Bft.Id) && Items.CanUseItem(ItemHandler.Bft.Id)) ||
                (Items.HasItem(ItemHandler.Dfg.Id) && Items.CanUseItem(ItemHandler.Dfg.Id)))
            {
                damage = (float)(damage * 1.2);
            }
            if (me.Spellbook.CanUseSpell(me.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + me.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite))
            {
                damage += (float)me.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);
            }
            damage += ItemHandler.GetItemsDamage(hero);
            return(damage);
        }
Ejemplo n.º 28
0
        private static float RivenDamageQ(SpellDataInst spell, AIHeroClient src, AIHeroClient dsc)
        {
            double dmg = 0;

            if (spell.IsReady())
            {
                dmg += src.CalcDamage(
                    dsc, DamageType.Physical,
                    (-10 + spell.Level * 20 +
                     (0.35 + spell.Level * 0.05) * (src.FlatPhysicalDamageMod + src.BaseAttackDamage)) * 3);
            }
            return((float)dmg);
        }
Ejemplo n.º 29
0
        private void Clear()
        {
            var mob = Jungle.GetNearest(player.Position);

            if (mob != null && getCheckBoxItem(menuLC, "usewLCSteal") && CanW && W.CanCast(mob) &&
                player.CalcDamage(mob, DamageType.Physical, Wdmg(mob)) > mob.Health)
            {
                W.Cast(mob, getCheckBoxItem(config, "packets"));
            }
            var perc = getSliderItem(menuLC, "minmana") / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            var minions = MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly);

            if (getCheckBoxItem(menuLC, "useeLC") && E.IsReady() &&
                getSliderItem(menuLC, "ehitLC") <= minions.Count)
            {
                E.Cast(getCheckBoxItem(config, "packets"));
            }
        }
Ejemplo n.º 30
0
        public static float ComboDamage(AIHeroClient hero) // Thanks honda
        {
            var result = 0d;

            if (Spells.Q.IsReady())
            {
                result += QDamage(hero) + ExtraWDamage(hero) + SheenDamage(hero);
            }
            if (Spells.W.IsReady() || Player.HasBuff("ireliahitenstylecharged"))
            {
                result += (ExtraWDamage(hero) +
                           Player.CalcDamage(hero, DamageType.Physical, Player.TotalAttackDamage)) * 3; // 3 autos
            }
            if (Spells.E.IsReady())
            {
                result += Spells.E.GetDamage(hero);
            }
            if (Spells.R.IsReady())
            {
                result += Spells.R.GetDamage(hero) * rcount;
            }

            return((float)result);
        }
Ejemplo n.º 31
0
 private static float RivenDamageQ(SpellDataInst spell, AIHeroClient src, AIHeroClient dsc)
 {
     double dmg = 0;
     if (spell.IsReady())
     {
         dmg += src.CalcDamage(
             dsc, DamageType.Physical,
             (-10 + spell.Level*20 +
              (0.35 + spell.Level*0.05)*(src.FlatPhysicalDamageMod + src.BaseAttackDamage))*3);
     }
     return (float) dmg;
 }