Exemple #1
0
 public static bool CanKill(this Spell spell, Obj_AI_Base target)
 {
     return spell.CanCast(target) && spell.IsKillable(target);
 }
Exemple #2
0
        public static void SmartCast(this LeagueSharp.SDK.Spell spell, Obj_AI_Base target = null, HitChance hitchance = HitChance.Medium,
            int minimunHits = 0)
        {
            if (target == null) return;
            if (!spell.CanCast(target)) return;

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                if (spell.IsSkillshot)
                {
                    if (spell.Collision)
                    {
                        if (Me.CountEnemyHeroesInRange(spell.Range) <= (minimunHits == 0 ? 2 : minimunHits))
                        {
                            spell.CastOnBestTarget(0f, true);
                            return;
                        }

                        if (Me.CountEnemyHeroesInRange(spell.Range) >= (minimunHits == 0 ? 2 : minimunHits))
                        {
                            spell.CastOnBestTarget(0f, true, 1);
                            return;
                        }
                    }
                    else
                    {
                        spell.CastIfHitchanceMinimum(target, hitchance);
                        return;
                    }
                }
                else
                {
                    spell.CastOnUnit(target);
                    return;
                }
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
            {
                if (spell.Collision)
                {
                    spell.CastIfHitchanceMinimum(target, HitChance.Low);
                    return;
                }
                else
                {
                    var minions =
                        GameObjects.EnemyMinions.Where(m => m.LSIsValidTarget())
                            .OrderBy(m => m.Distance(target))
                            .ThenBy(m => m.Health)
                            .ToList();

                    if (minions != null)
                    {
                        switch (spell.Type)
                        {
                            case SkillshotType.SkillshotLine:
                                var posLine = spell.GetLineFarmLocation(minions);
                                if (posLine.MinionsHit >= (minimunHits == 0 ? 1 : minimunHits))
                                {
                                    spell.Cast(posLine.Position);
                                    return;
                                }
                                break;
                            case SkillshotType.SkillshotCircle:
                                var posCircle = spell.GetCircularFarmLocation(minions);
                                if (posCircle.MinionsHit >= (minimunHits == 0 ? 1 : minimunHits))
                                {
                                    spell.Cast(posCircle.Position);
                                    return;
                                }
                                break;
                            case SkillshotType.SkillshotCone:
                                var posCone = spell.GetLineFarmLocation(minions, spell.Width);
                                if (posCone.MinionsHit >= (minimunHits == 0 ? 1 : minimunHits))
                                {
                                    spell.Cast(posCone.Position);
                                    return;
                                }
                                break;
                        }
                    }
                    spell.CastIfHitchanceMinimum(target, HitChance.Medium);
                }
            }
            else
            {
                spell.CastOnUnit(target);
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LastHit))
            {
                if (spell.IsSkillshot)
                {
                    spell.CastIfHitchanceMinimum(target, HitChance.Low);
                    return;
                }
                spell.CastOnUnit(target);
            }
        }
Exemple #3
0
 public static bool IsCastable(this Spell spell, Obj_AI_Base target, bool ks = false, bool checkKillable = true)
 {
     return spell.CanCast(target) && spell.IsActive(ks) && (!checkKillable || spell.IsKillable(target));
 }
Exemple #4
0
 public static bool CanCast(this Obj_AI_Base target, Spell.Targeted spell, Menu m)
 {
     var asBase = spell as Spell.SpellBase;
     return target.CanCast(asBase, m);
 }
Exemple #5
0
 public static bool CanCast(this Obj_AI_Base target, Spell.Skillshot spell, Menu m, int hitchancePercent = 75)
 {
     var asBase = spell as Spell.SpellBase;
     var pred = spell.GetPrediction(target);
     return target.CanCast(asBase, m) && pred.HitChancePercent >= 75;
 }
        /// <summary>
        ///     Checks if given unit can become invisible
        /// </summary>
        /// <param name="hero">
        ///     The hero.
        /// </param>
        /// <returns>
        ///     The <see cref="bool" />.
        /// </returns>
        public static bool CanGoInvis(this Hero hero)
        {
            var n = hero.Handle + "CanGoInvis";
            if (!Utils.SleepCheck(n))
            {
                return boolDictionary[n];
            }

            Ability invis = null;
            Ability riki = null;
            foreach (var x in hero.Spellbook.Spells)
            {
                var name = x.StoredName();
                if (name == "bounty_hunter_wind_walk" || name == "clinkz_skeleton_walk"
                    || name == "templar_assassin_meld")
                {
                    invis = x;
                    break;
                }

                if (name == "riki_permanent_invisibility")
                {
                    riki = x;
                }
            }

            if (invis == null)
            {
                invis =
                    hero.Inventory.Items.FirstOrDefault(
                        x =>
                        x.StoredName() == "item_invis_sword" || x.StoredName() == "item_silver_edge"
                        || x.StoredName() == "item_glimmer_cape");
            }

            var canGoInvis = (invis != null && hero.CanCast() && invis.CanBeCasted())
                             || (riki != null && riki.Level > 0 && !hero.IsSilenced());
            if (!boolDictionary.ContainsKey(n))
            {
                boolDictionary.Add(n, canGoInvis);
            }
            else
            {
                boolDictionary[n] = canGoInvis;
            }

            Utils.Sleep(150, n);
            return canGoInvis;
        }