/// <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); } }
/// <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); } }
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); } } }
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); } } }
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())); }
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 } }
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); }
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(); } }
private static int SpellDelay(String sName) { return(PennyJinx.GetSliderValue("pennyjinx.cleanser.spell." + sName + "D")); }
private static bool SpellEnabledAlways(String sName) { return(PennyJinx.IsMenuEnabled("pennyjinx.cleanser.spell." + sName + "A")); }
private static bool BuffTypeEnabled(BuffType buffType) { return(PennyJinx.IsMenuEnabled(ObjectManager.Player.ChampionName + buffType)); }
private static bool MichaelReady() { return(PennyJinx.IsMenuEnabled("pennyjinx.cleanser.items.michael") && Items.HasItem(3222) && Items.CanUseItem(3222)); }
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; }