Beispiel #1
0
        /// <summary>
        /// Cleanses by BuffType on player
        /// </summary>
        static void BuffTypeCleansing()
        {
            //MASSIVE TODO: Check if the buff is "stuns, roots, taunts, fears, silences and slows" before using Mikaels
            //Player Cleansing
            if (OneReady())
            {
                var buffCount = Buffs.Count(buff => ObjectManager.Player.HasBuffOfType(buff) && BuffTypeEnabled(buff));
                if (buffCount >= PennyJinx.GetSliderValue("pennyjinx.cleanser.bufftype.minbuffs"))
                {
                    CastCleanseItem(ObjectManager.Player);
                }
            }
            //Ally Cleansing
            if (!MichaelReady())
            {
                return;
            }
            var allies       = ObjectManager.Player.GetAlliesInRange(600f);
            var highestAlly  = ObjectManager.Player;
            var highestCount = 0;

            foreach (var ally in allies)
            {
                var allyBCount = Buffs.Count(buff => ally.HasBuffOfType(buff) && BuffTypeEnabled(buff));
                if (allyBCount > highestCount && allyBCount >= PennyJinx.GetSliderValue("pennyjinx.cleanser.bufftype.minbuffs") && PennyJinx.IsMenuEnabled("pennyjinx.cleanser.allies.useon." + ally.ChampionName))
                {
                    highestCount = allyBCount;
                    highestAlly  = ally;
                }
            }
            if (!highestAlly.IsMe)
            {
                CastCleanseItem(highestAlly);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Will Cleanse only on Kill
        /// </summary>
        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 && PennyJinx.IsMenuEnabled("pennyjinx.cleanser.allies.useon." + ally.ChampionName))
                    {
                        highestSpell  = theSpell;
                        highestDamage = (float)damageDone;
                        highestAlly   = ally;
                    }
                }
            }
            if (!highestAlly.IsMe && highestSpell != null)
            {
                UseCleanser(highestSpell, highestAlly);
            }
        }
Beispiel #3
0
        static void UseOffensive()
        {
            var offensiveItems = ItemList.FindAll(item => item.Class == ItemClass.Offensive);

            foreach (var item in offensiveItems)
            {
                var selectedTarget = Hud.SelectedUnit as Obj_AI_Base ?? TargetSelector.GetTarget(item.Range, TargetSelector.DamageType.True);
                if (!selectedTarget.IsValidTarget())
                {
                    return;
                }
                if (PennyJinx.IsMenuEnabled("pennyjinx.activator." + item.Id + ".always"))
                {
                    UseItem(selectedTarget, item);
                }
                if (ObjectManager.Player.HealthPercentage() < PennyJinx.GetSliderValue("pennyjinx.activator." + item.Id + ".onmyhp"))
                {
                    UseItem(selectedTarget, item);
                }
                if (selectedTarget.HealthPercentage() < PennyJinx.GetSliderValue("pennyjinx.activator." + item.Id + ".ontghplesser") && !PennyJinx.IsMenuEnabled("pennyjinx.activator." + item.Id + ".ontgkill"))
                {
                    UseItem(selectedTarget, item);
                }
                if (selectedTarget.HealthPercentage() > PennyJinx.GetSliderValue("pennyjinx.activator." + item.Id + ".ontghpgreater"))
                {
                    UseItem(selectedTarget, item);
                }
                if (selectedTarget.Health < ObjectManager.Player.GetSpellDamage(selectedTarget, GetItemSpellSlot(item)) && PennyJinx.IsMenuEnabled("pennyjinx.activator." + item.Id + ".ontgkill"))
                {
                    UseItem(selectedTarget, item);
                }
            }
        }
Beispiel #4
0
        private static void UsePotion()
        {
            if (ObjectManager.Player.IsDead || ObjectManager.Player.IsRecalling() || ObjectManager.Player.InFountain() || ObjectManager.Player.InShop())
            {
                return;
            }

            if (!HealthBuff() && ObjectManager.Player.HealthPercentage() < PennyJinx.GetSliderValue(ObjectManager.Player.ChampionName + "minHP"))
            {
                var hpSlot = GetHpSlot();

                if (hpSlot != SpellSlot.Unknown && hpSlot.IsReady())
                {
                    ObjectManager.Player.Spellbook.CastSpell(hpSlot, ObjectManager.Player);
                    return;
                }
            }
            if (!ManaBuff() && ObjectManager.Player.ManaPercentage() < PennyJinx.GetSliderValue(ObjectManager.Player.ChampionName + "minMana"))
            {
                var manaSlot = GetManaSlot();
                if (manaSlot != SpellSlot.Unknown && manaSlot.IsReady())
                {
                    ObjectManager.Player.Spellbook.CastSpell(manaSlot, ObjectManager.Player);
                }
            }
        }
Beispiel #5
0
 private static bool OneReady()
 {
     return((PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.qss") && Items.HasItem(3140) &&
             Items.CanUseItem(3140)) ||
            (PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.scimitar") && Items.HasItem(3139) &&
             Items.CanUseItem(3139)) ||
            (PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.dervish") && Items.HasItem(3137) &&
             Items.CanUseItem(3137)) ||
            (PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.cleanse") &&
             SummonerSpells.Cleanse.IsReady()));
 }
Beispiel #6
0
 static void Game_OnGameUpdate(EventArgs args)
 {
     if (!PennyJinx.IsMenuEnabled("pennyjinx.activator.enabledalways") ||
         !PennyJinx.GetKeyBindValue("pennyjinx.activator.enabledcombo"))
     {
         return;
     }
     if (Environment.TickCount - _lastCheckTick < PennyJinx.GetSliderValue("pennyjinx.activator.activatordelay"))
     {
         return;
     }
     _lastCheckTick = Environment.TickCount;
     UseOffensive();
 }
        public static void EnableCheck()
        {
            foreach (var spell in QssSpells)
            {
                if (PennyJinx.IsMenuEnabled("en" + spell.SpellBuff))
                {
                    PennyJinx.Menu.Item("onlyK" + spell.SpellBuff).SetValue(false);
                }

                if (PennyJinx.IsMenuEnabled("onlyK" + spell.SpellBuff))
                {
                    PennyJinx.Menu.Item("en" + spell.SpellBuff).SetValue(false);
                }
            }
        }
        public static void CleanserByBuffType()
        {
            var hasIt = Items.HasItem(3139) || Items.HasItem(3140) || Items.HasItem(3137);

            if (!PennyJinx.IsMenuEnabled("UseQSS") || !hasIt)
            {
                return;
            }

            var numBuffs = UnitBuffs(Player);

            if (numBuffs >= PennyJinx.Menu.Item("QSSMinBuffs").GetValue <Slider>().Value)
            {
                Cleanse();
            }
        }
        internal static void Cleanse()
        {
            if (Items.HasItem(3140))
            {
                PennyJinx.UseItem(3140, Player); //QSS
            }

            if (Items.HasItem(3139))
            {
                PennyJinx.UseItem(3139, Player); //Mercurial
            }

            if (Items.HasItem(3137))
            {
                PennyJinx.UseItem(3137, Player); //Dervish Blade
            }
        }
Beispiel #10
0
        private static SpellSlot GetManaSlot()
        {
            var ordered      = Potions.Where(p => p.Type == PotionType.Health || p.Type == PotionType.Flask).OrderByDescending(pot => pot.Priority);
            var potSlot      = SpellSlot.Unknown;
            var lastPriority = ordered.First().Priority;

            foreach (
                var Item in
                ObjectManager.Player.InventoryItems.Where(
                    item =>
                    GetManaIds().Contains((int)item.Id) &&
                    PennyJinx.IsMenuEnabled(((int)item.Id).ToString())))
            {
                var currentPriority = Potions.First(it => it.ItemId == Item.Id).Priority;
                if (currentPriority <= lastPriority)
                {
                    potSlot = Item.SpellSlot;
                }
            }
            return(potSlot);
        }
Beispiel #11
0
        static void CastCleanseItem(Obj_AI_Hero target)
        {
            if (target == null)
            {
                return;
            }

            if (PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.michael") && Items.HasItem(3222) &&
                Items.CanUseItem(3222) && target.IsValidTarget(600f))    //TODO Put Michaels buff id
            {
                Items.UseItem(3222, target);
                return;
            }

            if (PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.cleanse") && SummonerSpells.Cleanse.IsReady()) //TODO Put Michaels buff id
            {
                SummonerSpells.Cleanse.Cast();
                return;
            }

            if (PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.qss") && Items.HasItem(3140) &&
                Items.CanUseItem(3140) && target.IsMe)
            {
                Items.UseItem(3140, ObjectManager.Player);
                return;
            }

            if (PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.scimitar") && Items.HasItem(3139) &&
                Items.CanUseItem(3139) && target.IsMe)
            {
                Items.UseItem(3139, ObjectManager.Player);
                return;
            }

            if (PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.dervish") && Items.HasItem(3137) &&
                Items.CanUseItem(3137) && target.IsMe)
            {
                Items.UseItem(3137, ObjectManager.Player);
            }
        }
        public static void CleanserBySpell()
        {
            var hasIt = Items.HasItem(3139) || Items.HasItem(3140) || Items.HasItem(3137);

            if (!PennyJinx.IsMenuEnabled("UseQSS") || !hasIt)
            {
                return;
            }

            var ccList = (from spell in QssSpells
                          where Player.HasBuff(spell.SpellBuff)
                          select new CC {
                BuffName = spell.SpellBuff, WillKillMe = WillSpellKillMe(spell)
            }).ToList();

            foreach (var cc in ccList)
            {
                if (PennyJinx.IsMenuEnabled("en" + cc.BuffName))
                {
                    Console.WriteLine(@"Should Cleanse. " + cc.BuffName + @" cause it is a spell");
                    if (cc.BuffName == "zedulttargetmark")
                    {
                        Utility.DelayAction.Add(500, Cleanse);
                    }
                    else
                    {
                        Cleanse();
                    }
                }
                if (!PennyJinx.IsMenuEnabled("onlyK" + cc.BuffName) || !cc.WillKillMe)
                {
                    continue;
                }

                Console.WriteLine(@"Should Cleanse. " + cc.BuffName + @" cause it will kill me");
                Cleanse();
            }
        }
Beispiel #13
0
 private static int SpellDelay(String sName)
 {
     return(PennyJinx.GetSliderValue("pennyjinx.cleanser.spell." + sName + "D"));
 }
Beispiel #14
0
 private static bool SpellEnabledAlways(String sName)
 {
     return(PennyJinx.IsMenuEnabled("pennyjinx.cleanser.spell." + sName + "A"));
 }
Beispiel #15
0
 private static bool BuffTypeEnabled(BuffType buffType)
 {
     return(PennyJinx.IsMenuEnabled(ObjectManager.Player.ChampionName + buffType));
 }
Beispiel #16
0
 private static bool MichaelReady()
 {
     return(PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.michael") && Items.HasItem(3222) &&
            Items.CanUseItem(3222));
 }
Beispiel #17
0
        internal static float GetItemsDamage(Obj_AI_Hero target)
        {
            var items = ItemList.Where(item => Items.HasItem(item.Id) && Items.CanUseItem(item.Id) && PennyJinx.IsMenuEnabled("pennyjinx.activator." + item.Id + ".displaydmg"));

            return(items.Sum(item => (float)ObjectManager.Player.GetSpellDamage(target, GetItemSpellSlot(item))));
        }
 public PennyJinx()
 {
     Instance = this;
     CustomEvents.Game.OnGameLoad += Game_OnGameLoad;
 }
Beispiel #19
0
 public PennyJinx()
 {
     Instance = this;
     CustomEvents.Game.OnGameLoad += Game_OnGameLoad;
 }