Пример #1
0
        private static void UseItemCount(string name, int itemId, float itemRange)
        {
            if (!Items.HasItem(itemId) || !Items.CanUseItem(itemId))
            {
                return;
            }

            if (_mainMenu.Item("use" + name).GetValue <bool>())
            {
                if (Me.CountHerosInRange("hostile", itemRange) >=
                    _mainMenu.Item("use" + name + "Count").GetValue <Slider>().Value)
                {
                    Items.UseItem(itemId);
                }
            }
        }
Пример #2
0
        private static void UseItemCount(string name, int itemId, float itemRange)
        {
            if (!Items.HasItem(itemId) || !Items.CanUseItem(itemId))
            {
                return;
            }

            if (_mainMenu.Item("use" + name).GetValue <bool>())
            {
                if (Me.CountHerosInRange(true, itemRange) >=
                    _mainMenu.Item("use" + name + "Count").GetValue <Slider>().Value)
                {
                    Items.UseItem(itemId);
                    OC.Logger(OC.LogType.Action, "Used " + name + " on me ! (Item count)");
                }
            }
        }
Пример #3
0
        private static void UseEvade(string sdataname, string menuvar, float range = float.MaxValue)
        {
            if (!menuvar.Contains(Oracle.ChampionName.ToLower()))
            {
                return;
            }

            var slot = Me.GetSpellSlot(sdataname);

            if (slot == SpellSlot.Unknown)
            {
                return;
            }

            if (slot != SpellSlot.Unknown && !_mainMenu.Item("use" + menuvar).GetValue <bool>())
            {
                return;
            }

            var spell = new Spell(slot, range);

            var target = range < 5000 ? Oracle.Friendly() : Me;

            if (target.Distance(Me.ServerPosition, true) > range * range)
            {
                return;
            }

            var aHealthPercent = target.Health / target.MaxHealth * 100;

            if (!spell.IsReady() || !_menuConfig.Item("ason" + target.ChampionName).GetValue <bool>() || !target.IsValidState())
            {
                return;
            }

            if (_mainMenu.Item("use" + menuvar + "Norm").GetValue <bool>())
            {
                if ((Oracle.Danger || Oracle.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 20) &&
                    menuvar.Contains("team"))
                {
                    if (Oracle.AggroTarget.NetworkId == target.NetworkId)
                    {
                        spell.CastOnUnit(target);
                        Oracle.Logger(Oracle.LogType.Action,
                                      "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + target.ChampionName + " (" + aHealthPercent + "%)");
                    }
                }

                if ((Oracle.Danger || Oracle.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 20) &&
                    menuvar.Contains("hero"))
                {
                    // +1 to allow for potential counterplay
                    if (target.CountHerosInRange(false) + 1 >= target.CountHerosInRange(true))
                    {
                        if (Oracle.AggroTarget.NetworkId == Me.NetworkId)
                        {
                            foreach (
                                var ene in
                                ObjectManager.Get <Obj_AI_Hero>()
                                .Where(x => x.IsValidTarget(range))
                                .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100))
                            {
                                spell.CastOnUnit(ene);
                                Oracle.Logger(Oracle.LogType.Action, "(Evade) Casting " + spell.Slot + "(DS) on " + ene.ChampionName);
                                Oracle.Logger(Oracle.LogType.Info, "Evade target info: ");
                                Oracle.Logger(Oracle.LogType.Info, "HP %: " + ene.Health / ene.MaxHealth * 100);
                                Oracle.Logger(Oracle.LogType.Info, "Current HP %: " + ene.Health);
                            }
                        }
                    }
                }
            }

            if (_mainMenu.Item("use" + menuvar + "Ults").GetValue <bool>())
            {
                foreach (var buff in GameBuff.EvadeBuffs)
                {
                    foreach (var aura in target.Buffs)
                    {
                        if (!aura.Name.ToLower().Contains(buff.SpellName) && aura.Name.ToLower() != buff.BuffName)
                        {
                            continue;
                        }

                        Utility.DelayAction.Add(
                            buff.Delay, delegate
                        {
                            Oracle.Attacker     = Oracle.GetEnemy(buff.ChampionName);
                            Oracle.AggroTarget  = target;
                            Oracle.IncomeDamage =
                                (float)Oracle.GetEnemy(buff.ChampionName).GetSpellDamage(Oracle.AggroTarget, buff.Slot);

                            // check if we still have buff and didn't walk out of it
                            if (aura.Name.ToLower().Contains(buff.SpellName) || aura.Name.ToLower() == buff.BuffName)
                            {
                                Oracle.DangerUlt = Oracle.Origin.Item(buff.SpellName + "ccc").GetValue <bool>();
                            }

                            Oracle.Logger(Oracle.LogType.Danger,
                                          "(" + Oracle.Attacker.ChampionName + ") Dangerous buff on " + Oracle.AggroTarget.ChampionName + " should evade!");
                        });
                    }
                }

                if ((Oracle.DangerUlt || Oracle.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 18) &&
                    menuvar.Contains("team"))
                {
                    if (Oracle.AggroTarget.NetworkId == target.NetworkId)
                    {
                        spell.CastOnUnit(target);
                        Oracle.Logger(Oracle.LogType.Action,
                                      "(Evade) Casting " + spell.Slot + "(DS) on " + target.ChampionName + " (" + aHealthPercent + "%)");
                    }
                }

                if ((Oracle.DangerUlt || Oracle.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 18) &&
                    menuvar.Contains("hero"))
                {
                    if (Me.CountHerosInRange(false) + 1 > Me.CountHerosInRange(true))
                    {
                        if (Oracle.AggroTarget.NetworkId == Me.NetworkId)
                        {
                            foreach (
                                var ene in
                                ObjectManager.Get <Obj_AI_Hero>()
                                .Where(x => x.IsValidTarget(range))
                                .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100))
                            {
                                spell.CastOnUnit(ene);
                                Oracle.Logger(Oracle.LogType.Action, "(Evade) Casting " + spell.Slot + "(DS) on " + ene.ChampionName);
                                Oracle.Logger(Oracle.LogType.Info, "Evade target info: ");
                                Oracle.Logger(Oracle.LogType.Info, "HP %: " + ene.Health / ene.MaxHealth * 100);
                                Oracle.Logger(Oracle.LogType.Info, "Current HP %: " + ene.Health);
                            }
                        }
                    }
                }
            }
        }
Пример #4
0
        private static void UseEvade(string sdataname, string menuvar, float range = float.MaxValue)
        {
            if (!menuvar.Contains(OC.ChampionName.ToLower()))
            {
                return;
            }

            var slot = Me.GetSpellSlot(sdataname);

            if (slot != SpellSlot.Unknown && !_mainMenu.Item("use" + menuvar).GetValue <bool>())
            {
                return;
            }

            var spell = new Spell(slot, range);

            var target = range < 5000 ? OC.Friendly() : Me;

            if (target.Distance(Me.ServerPosition, true) > range * range)
            {
                return;
            }

            var aHealthPercent = target.Health / target.MaxHealth * 100;

            if (!spell.IsReady() || !_menuConfig.Item("ason" + target.SkinName).GetValue <bool>() || Me.IsRecalling())
            {
                return;
            }

            if (_mainMenu.Item("use" + menuvar + "Norm").GetValue <bool>())
            {
                if ((OC.Danger || OC.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 20) &&
                    menuvar.Contains("team"))
                {
                    if (OC.AggroTarget.NetworkId == target.NetworkId)
                    {
                        spell.CastOnUnit(target);
                        OC.Logger(Program.LogType.Action,
                                  "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + target.SkinName + " (" + aHealthPercent + "%)");
                    }
                }

                if ((OC.Danger || OC.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 20) &&
                    menuvar.Contains("hero"))
                {
                    // +1 to allow for potential counterplay
                    if (target.CountHerosInRange(false) + 1 >= target.CountHerosInRange(true))
                    {
                        if (OC.AggroTarget.NetworkId == Me.NetworkId)
                        {
                            foreach (
                                var ene in
                                ObjectManager.Get <Obj_AI_Hero>()
                                .Where(x => x.IsValidTarget(range))
                                .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100))
                            {
                                spell.CastOnUnit(ene);
                                OC.Logger(Program.LogType.Action, "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + ene.SkinName);
                                OC.Logger(OC.LogType.Info, "Evade target info: ");
                                OC.Logger(OC.LogType.Info, "HP %: " + ene.Health / ene.MaxHealth * 100);
                                OC.Logger(OC.LogType.Info, "Current HP %: " + ene.Health);
                            }
                        }
                    }
                }
            }

            if (_mainMenu.Item("use" + menuvar + "Ults").GetValue <bool>())
            {
                if ((OC.DangerUlt || OC.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 18) &&
                    menuvar.Contains("team"))
                {
                    if (OC.AggroTarget.NetworkId == target.NetworkId)
                    {
                        spell.CastOnUnit(target);
                        OC.Logger(Program.LogType.Action,
                                  "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + target.SkinName + " (" +
                                  aHealthPercent + "%)");
                    }
                }

                if ((OC.DangerUlt || OC.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 18) &&
                    menuvar.Contains("hero"))
                {
                    if (Me.CountHerosInRange(true) > Me.CountHerosInRange(false))
                    {
                        if (OC.AggroTarget.NetworkId == Me.NetworkId)
                        {
                            foreach (
                                var ene in
                                ObjectManager.Get <Obj_AI_Hero>()
                                .Where(x => x.IsValidTarget(range))
                                .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100))
                            {
                                spell.CastOnUnit(ene);
                                OC.Logger(Program.LogType.Action, "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + ene.SkinName);
                                OC.Logger(OC.LogType.Info, "Evade target info: ");
                                OC.Logger(OC.LogType.Info, "HP %: " + ene.Health / ene.MaxHealth * 100);
                                OC.Logger(OC.LogType.Info, "Current HP %: " + ene.Health);
                            }
                        }
                    }
                }
            }
        }
Пример #5
0
        private static void UseEvade(string sdataname, string menuvar, float range = float.MaxValue, bool usemana = true)
        {
            if (!menuvar.Contains(OC.ChampionName.ToLower()))
            {
                return;
            }

            var slot = Me.GetSpellSlot(sdataname);

            if (slot != SpellSlot.Unknown && !_mainMenu.Item("use" + menuvar).GetValue <bool>())
            {
                return;
            }

            var spell = new Spell(slot, range);

            var target = range < 5000 ? OC.Friendly() : Me;

            if (target.Distance(Me.ServerPosition, true) > range * range)
            {
                return;
            }

            if (!spell.IsReady() || !_menuConfig.Item("ason" + target.SkinName).GetValue <bool>())
            {
                return;
            }

            if (_mainMenu.Item("use" + menuvar + "Norm").GetValue <bool>())
            {
                if (OC.Danger && menuvar.Contains("team"))
                {
                    if (OC.AggroTarget.NetworkId == target.NetworkId)
                    {
                        spell.CastOnUnit(target);
                    }
                }

                if (OC.Danger && menuvar.Contains("hero"))
                {
                    if (Me.CountHerosInRange("hostile") > Me.CountHerosInRange("allies"))
                    {
                        if (OC.AggroTarget.NetworkId != Me.NetworkId)
                        {
                            return;
                        }

                        foreach (
                            var ene in
                            ObjectManager.Get <Obj_AI_Hero>()
                            .Where(x => x.IsValidTarget(range))
                            .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100))
                        {
                            spell.CastOnUnit(ene);
                        }
                    }
                    else
                    {
                        // if its 1v1 cast on the sender
                        if (OC.AggroTarget.NetworkId == Me.NetworkId)
                        {
                            spell.CastOnUnit(OC.Attacker);
                        }
                    }
                }
            }

            if (_mainMenu.Item("use" + menuvar + "Ults").GetValue <bool>())
            {
                if (OC.DangerUlt && menuvar.Contains("team"))
                {
                    if (OC.AggroTarget.NetworkId == target.NetworkId)
                    {
                        spell.CastOnUnit(target);
                    }
                }

                if (OC.DangerUlt && menuvar.Contains("hero"))
                {
                    if (Me.CountHerosInRange("hostile") > Me.CountHerosInRange("allies"))
                    {
                        if (OC.AggroTarget.NetworkId != Me.NetworkId)
                        {
                            return;
                        }

                        foreach (
                            var ene in
                            ObjectManager.Get <Obj_AI_Hero>()
                            .Where(x => x.IsValidTarget(range))
                            .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100))
                        {
                            spell.CastOnUnit(ene);
                        }
                    }
                    else
                    {
                        // if its 1v1 cast on the sender
                        if (OC.AggroTarget.NetworkId == Me.NetworkId)
                        {
                            spell.CastOnUnit(OC.Attacker);
                        }
                    }
                }
            }
        }