Exemple #1
0
        public static void OnLoad()
        {
            const string champName    = "Lucian";
            var          spellSubmenu = new Menu(champName + " - Cleanser", champName + "Cleanser");

            //Spell Cleanser Menu
            var spellCleanserMenu = new Menu("Cleanser - Spell Cleanser", "com.idzlucian.cleanser.spell");

            foreach (var spell in QssSpells.Where(h => GetChampByName(h.ChampName) != null))
            {
                var sMenu = new Menu(spell.SpellName, champName + spell.SpellBuff);
                sMenu.AddItem(
                    new MenuItem("com.idzlucian.cleanser.spell." + spell.SpellBuff + "A", "Always").SetValue(
                        !spell.OnlyKill));
                sMenu.AddItem(
                    new MenuItem("com.idzlucian.cleanser.spell." + spell.SpellBuff + "K", "Only if killed by it")
                    .SetValue(spell.OnlyKill));
                sMenu.AddItem(
                    new MenuItem("com.idzlucian.cleanser.spell." + spell.SpellBuff + "D", "Delay before cleanse")
                    .SetValue(new Slider((int)spell.Delay, 0, 10000)));
                spellCleanserMenu.AddSubMenu(sMenu);
            }
            //Bufftype cleanser menu
            var buffCleanserMenu = new Menu(
                "Cleanser - Bufftype Cleanser", champName + "com.idzlucian.cleanser.bufftype");

            foreach (var buffType in Buffs)
            {
                buffCleanserMenu.AddItem(new MenuItem(champName + buffType, buffType.ToString()).SetValue(true));
            }

            buffCleanserMenu.AddItem(
                new MenuItem("com.idzlucian.cleanser.bufftype.minbuffs", "Min Buffs").SetValue(new Slider(2, 1, 5)));

            var allyMenu = new Menu("Cleanser - Use On", "UseOn");

            foreach (var ally in HeroManager.Allies)
            {
                allyMenu.AddItem(
                    new MenuItem("com.idzlucian.cleanser.allies.useon." + ally.ChampionName, ally.ChampionName).SetValue
                        (true));
            }

            spellSubmenu.AddItem(new MenuItem("com.idzlucian.cleanser.items.qss", "Use QSS").SetValue(true));
            spellSubmenu.AddItem(
                new MenuItem("com.idzlucian.cleanser.items.scimitar", "Use Mercurial Scimitar").SetValue(true));
            spellSubmenu.AddItem(
                new MenuItem("com.idzlucian.cleanser.items.dervish", "Use Dervish Blade").SetValue(true));
            spellSubmenu.AddItem(
                new MenuItem("com.idzlucian.cleanser.items.michael", "Use Mikael's Crucible").SetValue(true));
            spellSubmenu.AddItem(new MenuItem("com.idzlucian.cleanser.items.cleanse", "Use Cleanse").SetValue(true));
            spellSubmenu.AddItem(
                new MenuItem("com.idzlucian.cleanser.hpbuffer", "Health Buffer").SetValue(new Slider(20)));
            spellSubmenu.AddItem(
                new MenuItem("com.idzlucian.cleanser.delay", "Global Delay (Prevents Lag)").SetValue(
                    new Slider(100, 0, 200)));

            spellSubmenu.AddSubMenu(spellCleanserMenu);
            spellSubmenu.AddSubMenu(buffCleanserMenu);
            spellSubmenu.AddSubMenu(allyMenu);
            MenuInstance.AddSubMenu(spellSubmenu);

            //Subscribe the Events
            Game.OnUpdate += Game_OnGameUpdate;
        }
Exemple #2
0
        /// <summary>
        ///     Will Cleanse only on Kill
        /// </summary>
        private static void KillCleansing()
        {
            if (OneReady())
            {
                QssSpell mySpell = null;
                if (
                    QssSpells.Where(
                        spell =>
                        ObjectManager.Player.HasBuff(spell.SpellBuff, true) && SpellEnabledOnKill(spell.SpellBuff) &&
                        GetChampByName(spell.ChampName).GetSpellDamage(ObjectManager.Player, spell.Slot) >
                        ObjectManager.Player.Health + HealthBuffer)
                    .OrderBy(
                        spell => GetChampByName(spell.ChampName).GetSpellDamage(ObjectManager.Player, spell.Slot))
                    .Any())
                {
                    mySpell =
                        QssSpells.Where(
                            spell =>
                            ObjectManager.Player.HasBuff(spell.SpellBuff, true) && SpellEnabledOnKill(spell.SpellBuff))
                        .OrderBy(
                            spell =>
                            GetChampByName(spell.ChampName).GetSpellDamage(ObjectManager.Player, spell.Slot))
                        .First();
                }
                if (mySpell != null)
                {
                    UseCleanser(mySpell, ObjectManager.Player);
                }
            }
            if (!MichaelReady())
            {
                return;
            }
            //Ally Cleansing
            var      allies        = ObjectManager.Player.GetAlliesInRange(600f);
            var      highestAlly   = ObjectManager.Player;
            var      highestDamage = 0f;
            QssSpell highestSpell  = null;

            foreach (var ally in allies)
            {
                QssSpell theSpell = null;
                if (
                    QssSpells.Where(
                        spell =>
                        ally.HasBuff(spell.SpellBuff, true) && SpellEnabledOnKill(spell.SpellBuff) &&
                        GetChampByName(spell.ChampName).GetSpellDamage(ally, spell.Slot) >
                        ally.Health + HealthBuffer)
                    .OrderBy(spell => GetChampByName(spell.ChampName).GetSpellDamage(ally, spell.Slot))
                    .Any())
                {
                    theSpell =
                        QssSpells.Where(
                            spell => ally.HasBuff(spell.SpellBuff, true) && SpellEnabledOnKill(spell.SpellBuff))
                        .OrderBy(spell => GetChampByName(spell.ChampName).GetSpellDamage(ally, spell.Slot))
                        .First();
                }
                if (theSpell != null)
                {
                    var damageDone = GetChampByName(theSpell.ChampName).GetSpellDamage(ally, theSpell.Slot);
                    if (damageDone >= highestDamage &&
                        MenuHelper.IsMenuEnabled("com.idzlucian.cleanser.allies.useon." + ally.ChampionName))
                    {
                        highestSpell  = theSpell;
                        highestDamage = (float)damageDone;
                        highestAlly   = ally;
                    }
                }
            }
            if (!highestAlly.IsMe && highestSpell != null)
            {
                UseCleanser(highestSpell, highestAlly);
            }
        }