Example #1
0
    private static void BuffRotation()
    {
        if (Me.ManaPercentage > 50 && ShamanLevelSettings.CurrentSetting.Ghostwolf && !Me.IsMounted)
        {
            Extension.BuffSpell(GhostWolf);
        }
        if (Me.ManaPercentage < 40)
        {
            Extension.BuffSpell(WaterShield);
        }
        if (Me.ManaPercentage > 90)
        {
            Extension.BuffSpell(LightningShield);
        }
        if (Me.HealthPercent < 40 && !Me.IsMounted)
        {
            Extension.HealSpell(HealingWave);
        }
        bool Poison  = Extension.HasPoisonDebuff();
        bool Disease = Extension.HasDiseaseDebuff();

        if (Poison)
        {
            Extension.BuffSpell(CurePoison);
        }
        if (Disease)
        {
            Extension.BuffSpell(CurePoison);
        }
    }
Example #2
0
 public static void CombatRotation()
 {
     if (Me.ComboPoint > 1)
     {
         Extension.BuffSpell(SliceandDice);
     }
     if (MyTarget.HealthPercent < 20 && Me.ComboPoint <= 4)
     {
         Extension.FightSpell(Eviscerate);
     }
     Extension.FightSpell(Riposte);
     if (Me.ComboPoint <= 5)
     {
         Extension.FightSpell(Eviscerate);
     }
     if (MyTarget.GetDistance > 10)
     {
         Extension.BuffSpell(Sprint);
     }
     if (Extension.InterruptableUnit(5f) != null && Kick.KnownSpell)
     {
         ObjectManager.Me.FocusGuid = Extension.InterruptableUnit(5f).Guid;
         Extension.FightSpell(Kick, true);
     }
     //Extension.InterruptSpell(Kick);
     Extension.FightSpell(KillingSpree);
     Extension.FightSpell(SinisterStrike);
     if (Extension.GetAttackingUnits(5).Count() > 1)
     {
         Extension.BuffSpell(Evasion);
         Extension.BuffSpell(BladeFlurry);
         Extension.BuffSpell(AdrenalineRush);
     }
 }
Example #3
0
    private static void Pethandler()
    {
        if (!ObjectManager.Pet.IsValid && !Me.IsMounted)
        {
            if (Me.ManaPercentage < 80 && !Me.HaveBuff("Drink"))
            {
                wManager.wManagerSetting.CurrentSetting.DrinkPercent = 95;
                Thread.Sleep(1000);
            }
            wManager.wManagerSetting.CurrentSetting.DrinkPercent = SaveDrink;
            Thread.Sleep(100); //workaround for recast after dismount

            if (!summonvoid.KnownSpell || !summonvoid.IsSpellUsable || !summonfelguard.IsSpellUsable || !summonfelguard.KnownSpell)
            {
                Extension.BuffSpell(summonimp);
            }
            if (WarlockLevelSettings.CurrentSetting.Pet == "VoidWalker")
            {
                Extension.BuffSpell(summonvoid);
            }
            if (WarlockLevelSettings.CurrentSetting.Pet == "Felguard")
            {
                Extension.BuffSpell(summonfelguard);
            }
            if (ObjectManager.Pet.HealthPercent < 30 &&
                ObjectManager.Pet.IsAlive &&
                Me.HealthPercent > 50)
            {
                Extension.BuffSpell(healthfunnel);
            }
        }
    }
Example #4
0
    internal static void Under10Rotation()
    {
        if (lowlevel != true)
        {
            lowlevel = true;
        }

        if (MyTarget.GetDistance < 20)
        {
            TotemManager.CastTotems();
        }
        if (Me.Level < 4)
        {
            Extension.FightSpell(LightningBolt);
        }
        if (MyTarget.GetDistance > 7)
        {
            Extension.FightSpell(LightningBolt);
        }
        Extension.FightSpell(EarthShock);
        if (Me.ManaPercentage > 40)
        {
            Extension.BuffSpell(LightningShield);
        }
    }
Example #5
0
 private static void BuffRotation()
 {
     if (Me.ManaPercentage < HunterBeastMasterySettings.CurrentSetting.AspecofViper)
     {
         Extension.BuffSpell(AspecoftheViper);
     }
     if (!AspecoftheDragonhawk.KnownSpell && !AspecoftheCheetah.HaveBuff &&
         (Me.ManaPercentage > 90 || !AspecoftheViper.KnownSpell))
     {
         Extension.BuffSpell(AspecoftheHawk);
     }
     if (Me.ManaPercentage > 90 && !AspecoftheCheetah.HaveBuff)
     {
         Extension.BuffSpell(AspecoftheDragonhawk);
     }
     if (HunterBeastMasterySettings.CurrentSetting.Checkpet)
     {
         if (ObjectManager.Pet.IsAlive && ObjectManager.Pet.IsValid &&
             ObjectManager.Pet.HealthPercent < HunterBeastMasterySettings.CurrentSetting.PetHealth)
         {
             if (PetHealTimer.IsReady)
             {
                 Extension.PetSpell(MendPet);
                 PetHealTimer = new Timer(1000 * 15);
             }
         }
         return;
     }
 }
Example #6
0
 private static void CombatRotation()
 {
     if (Extension.InterruptableUnit(10f) != null && Pummel.KnownSpell && Pummel.IsSpellUsable)
     {
         Logging.Write("Interrupt Target found");
         ObjectManager.Me.FocusGuid = Extension.InterruptableUnit(5f).Guid;
         Logging.Write("Interrupt Target Set" + Extension.InterruptableUnit(5f).Guid);
         Extension.FightSpell(Pummel, true);
     }
     if (MyTarget.HealthPercent < 20)
     {
         Extension.FightSpell(Execute);
     }
     Extension.FightSpell(VictoryRush);
     Extension.FightSpell(Rend);
     if (MyTarget.GetDistance > 7)
     {
         Extension.FightSpell(Intercept);
         Extension.FightSpell(Charge);
     }
     if (Extension.GetAttackingUnits(5).Count() > 1)
     {
         Extension.FightSpell(ThunderClap);
         Extension.FightSpell(Cleave);
         Extension.FightSpell(Whirlwind);
         Extension.BuffSpell(Bloodthirst);
     }
     if (ObjectManager.Me.Rage >= 40)
     {
         Extension.FightSpell(HeroicStrike);
     }
 }
Example #7
0
    private static void Healing()
    {
        bool Poison  = Extension.HasPoisonDebuff();
        bool Disease = Extension.HasDiseaseDebuff();

        if (Poison && PaladinLevelSettings.CurrentSetting.Purify)
        {
            Extension.BuffSpell(Purify);
        }
        if (Disease && PaladinLevelSettings.CurrentSetting.Purify)
        {
            Extension.BuffSpell(Purify);
        }
        if (Me.HaveBuff(TheartofWar.Id) && Me.HealthPercent <= 75)
        {
            Extension.HealSpell(FlashofLight, false, true);
        }

        if (Me.HealthPercent <= PaladinLevelSettings.CurrentSetting.HL)
        {
            Extension.HealSpell(HolyLight, false, true);
        }
        if (Me.HealthPercent <= PaladinLevelSettings.CurrentSetting.FL)
        {
            Extension.HealSpell(FlashofLight, false, true);
        }
    }
Example #8
0
 private static void Pethandler()
 {
     if (!ObjectManager.Pet.IsAlive && SummonWaterElemental.KnownSpell)
     {
         Thread.Sleep(500); //workaround for recast after dismount
         Extension.BuffSpell(SummonWaterElemental);
     }
 }
Example #9
0
 private static void Healthstone()
 {
     if (!Consumables.HaveHealthstone())
     {
         Extension.Frameunlock();
         Extension.BuffSpell(createhealthstone);
     }
 }
Example #10
0
 private static void BuffRotation()
 {
     Extension.BuffSpell(ArcaneIntellect);
     if (!IceArmor.KnownSpell)
     {
         Extension.BuffSpell(FrostArmor);
     }
     Extension.BuffSpell(IceArmor);
     if (Me.HealthPercent < 37 || Me.ManaPercentage < 37)
     {
         Extension.BuffSpell(Evocation);
     }
 }
Example #11
0
    private static void EnchantWeapon()
    {
        bool hasMainHandEnchant = Lua.LuaDoString <bool>
                                      (@"local hasMainHandEnchant, _, _, _, _, _, _, _, _ = GetWeaponEnchantInfo()
            if (hasMainHandEnchant) then 
               return '1'
            else
               return '0'
            end");

        bool hasOffHandEnchant = Lua.LuaDoString <bool>
                                     (@"local _, _, _, _, hasOffHandEnchant, _, _, _, _ = GetWeaponEnchantInfo()
            if (hasOffHandEnchant) then 
               return '1'
            else
               return '0'
            end");

        bool hasoffHandWeapon = Lua.LuaDoString <bool>(@"local hasWeapon = OffhandHasWeapon()
            return hasWeapon");

        if (Extension.GetSpec() == "Enhancement")
        {
            if (!hasMainHandEnchant || (hasoffHandWeapon && !hasOffHandEnchant))
            {
                if (!WindfuryWeapon.KnownSpell && RockbiterWeapon.KnownSpell && !FlametongueWeapon.KnownSpell)
                {
                    Extension.BuffSpell(RockbiterWeapon);
                }
                if (!WindfuryWeapon.KnownSpell && FlametongueWeapon.KnownSpell)
                {
                    Extension.BuffSpell(FlametongueWeapon);
                }

                if (WindfuryWeapon.KnownSpell)
                {
                    Extension.BuffSpell(WindfuryWeapon);
                }
            }
        }
        if (Extension.GetSpec() == "Restoration")
        {
            if (!hasMainHandEnchant)
            {
                if (EarthlivingWeapon.KnownSpell)
                {
                    Extension.BuffSpell(EarthlivingWeapon);
                }
            }
        }
    }
Example #12
0
    private static void BuffRotation()
    {
        List <WoWUnit> attackers = ObjectManager.GetUnitAttackPlayer();

        if (ObjectManager.Me.HealthPercent < 30 && attackers.Count > 1)
        {
            Extension.BuffSpell(IceBoundFortitude);
        }
        if (DeathKnightLevelSettings.CurrentSetting.BloodPresence)
        {
            Extension.BuffSpell(BloodPresence);
        }
        Extension.BuffSpell(HornofWinter);
    }
Example #13
0
 private static void BuffRotation()
 {
     if (!demonarmor.KnownSpell && !felarmor.KnownSpell)
     {
         Extension.BuffSpell(demonskin, false);
     }
     if (!felarmor.KnownSpell)
     {
         Extension.BuffSpell(demonarmor, false);
     }
     Extension.BuffSpell(felarmor, false);
     Extension.BuffSpell(unendingbreath, false);
     Extension.BuffSpell(soullink);
 }
Example #14
0
 public static void CombatRotation()
 {
     if (Extension.GetAttackingUnits(5).Count() > 1 && !Me.IsStunned && PaladinLevelSettings.CurrentSetting.HammerofJustice)
     {
         WoWUnit mainTarget   = Extension.GetAttackingUnits(5).Where(u => u.HealthPercent == Extension.GetAttackingUnits(5).Min(x => x.HealthPercent)).FirstOrDefault();
         WoWUnit hammerTarget = Extension.GetAttackingUnits(5).Where(u => u.HealthPercent == Extension.GetAttackingUnits(5).Max(x => x.HealthPercent)).FirstOrDefault();
         if (hammerTarget != mainTarget)
         {
             ObjectManager.Me.FocusGuid = hammerTarget.Guid;
             Extension.FightSpell(HammerofJustice, true, true);
             Logging.Write("Cast Hammer on " + hammerTarget);
             Thread.Sleep(500);
         }
     }
     if (MyTarget.GetDistance <= 25 && MyTarget.GetDistance >= 7 && PaladinLevelSettings.CurrentSetting.HOR)
     {
         Extension.FightSpell(HandofReckoning, false);
     }
     if (Extension.GetAttackingUnits(20).Count() >= 3)
     {
         Extension.BuffSpell(AvengingWrath);
     }
     Extension.FightSpell(HammerofWrath, false);
     if (!JudgementofWisdom.KnownSpell)
     {
         Extension.FightSpell(JudgementofLight, false);
     }
     Extension.FightSpell(JudgementofWisdom, false);
     Extension.FightSpell(CrusaderStrike, false);
     Extension.FightSpell(DivineStorm, false);
     if (Me.Level < 43 && MyTarget.HealthPercent > 25 && Extension.GetAttackingUnits(10).Count() > 1) //new
     {
         Extension.FightSpell(Consecration, false);
     }
     if (Me.Level > 42 && Extension.GetAttackingUnits(10).Count() > 1) //new
     {
         Extension.FightSpell(Consecration, false);
     }
     if (Me.HaveBuff("The Art of War") && MyTarget.HealthPercent > 20)
     {
         Extension.FightSpell(Exorcism, false);
     }
     if (Me.Level < 50 && MyTarget.Health > 20)
     {
         Extension.FightSpell(Exorcism, false);
     }
     Extension.FightSpell(HolyWrath, false);
 }
Example #15
0
 private static void BuffRotation()
 {
     Extension.BuffSpell(MarkoftheWild);
     if (Me.Rage < 20)
     {
         Extension.BuffSpell(Thorns);
     }
     if (Me.Rage < 20)
     {
         Extension.BuffSpell(Thorns);
     }
     if (!Me.HaveBuff(CatForm.Id) && Me.HaveBuff(Thorns.Id) && Me.HaveBuff(MarkoftheWild.Id) && !Me.IsMounted && wManager.wManagerSetting.CurrentSetting.GroundMountName == string.Empty)
     {
         Logging.Write("Using  Catform, traveltime");
         Extension.BuffSpell(CatForm);
     }
 }
Example #16
0
 private void BuffRotation()
 {
     if (Me.IsMounted)
     {
         Extension.BuffSpell(CrusaderAura, true);
     }
     if (PaladinRetributionSettings.CurrentSetting.Autobuffing)
     {
         Extension.BuffSpell(BlessingofMight, false);
         Extension.BuffSpell(DevotionAura, false);
         Extension.BuffSpell(SealofRighteousness, false);
     }
     if (Me.ManaPercentage < 70 && !Fight.InFight)
     {
         Extension.BuffSpell(DivinePlea, false);
     }
 }
Example #17
0
    private static void BuffRotation()
    {
        Extension.GroupBuffSpell(Fortitude);
        Extension.BuffSpell(ShadowForm);
        Extension.BuffSpell(DivineSpirit);
        if (Me.ManaPercentage < 25)
        {
            Extension.BuffSpell(Dispersion, false, true);
        }

        if (Me.HealthPercent < 20 && Extension.GetAttackingUnits(20).Count() > 0 && MyTarget.HealthPercent > 10 && !FlashHeal.KnownSpell)
        {
            Extension.HealSpell(LesserHeal);
        }
        if (Me.HealthPercent < 20 && Extension.GetAttackingUnits(20).Count() > 0 && MyTarget.HealthPercent > 10 && FlashHeal.KnownSpell)
        {
            Extension.HealSpell(FlashHeal);
        }
    }
Example #18
0
 private static void ShadowHealRotation()
 {
     if (Me.HealthPercent < PriestLevelSettings.CurrentSetting.ShadowUseShieldTresh && Extension.GetAttackingUnits(20).Count() > 0)
     {
         Extension.BuffSpell(Shield);
     }
     if (Me.HealthPercent < PriestLevelSettings.CurrentSetting.ShadowUseRenewTresh && Extension.GetAttackingUnits(20).Count() >= 1)
     {
         Extension.HealSpell(Renew);
     }
     if (Me.HealthPercent < PriestLevelSettings.CurrentSetting.ShadowUseLessFlashTresh && Extension.GetAttackingUnits(20).Count() > 0 && MyTarget.HealthPercent > 10 && !FlashHeal.KnownSpell)
     {
         Extension.HealSpell(LesserHeal);
     }
     if (Me.HealthPercent < PriestLevelSettings.CurrentSetting.ShadowUseLessFlashTresh && Extension.GetAttackingUnits(20).Count() > 0 && MyTarget.HealthPercent > 10 && FlashHeal.KnownSpell)
     {
         Extension.HealSpell(FlashHeal);
     }
 }
Example #19
0
    private static void Pull()
    {
        if (Me.Level > 9 && Me.Level < 20)
        {
            if (Me.HasTarget && MyTarget.IsAttackable)
            {
                if (Me.HaveBuff(BearForm.Id))
                {
                    Extension.FightSpell(Growl);
                    Extension.FightSpell(FaerieFireFeral);
                }
            }
        }
        if (Me.Level > 19 && Me.Level < 81)
        {
            if (Me.HasTarget && MyTarget.IsAttackable)
            {
                if (!Me.HaveBuff(CatForm.Id))
                {
                    Extension.BuffSpell(CatForm);

                    if (!Me.HaveBuff(Prowl.Id))
                    {
                        Extension.BuffSpell(Prowl);

                        if (Me.HaveBuff(Prowl.Id))
                        {
                            Extension.FightSpell(Ravage);
                            Extension.FightSpell(Pounce);
                            Extension.FightSpell(Shred);
                        }
                        if (!Prowl.IsSpellUsable)
                        {
                            Extension.FightSpell(FaerieFireFeral);
                        }
                    }
                }
            }
        }
    }
Example #20
0
    private static void CombatRotation()
    {
        if (WarlockLevelSettings.CurrentSetting.Fear)
        {
            //Fear Management
            if (Extension.GetAttackingUnits(5).Count() > 1)
            {
                Extension.Frameunlock();
                Logging.Write("2 Attackers, one will get Feared");
                WoWUnit mainTarget = Extension.GetAttackingUnits(10).Where(u => u.HealthPercent == Extension.GetAttackingUnits(10).Min(x => x.HealthPercent)).FirstOrDefault();
                WoWUnit fearTarget = Extension.GetAttackingUnits(10).Where(u => u.HealthPercent == Extension.GetAttackingUnits(10).Max(x => x.HealthPercent)).FirstOrDefault();
                if (fearTarget != mainTarget && !fearTarget.HaveBuff("Fear"))
                {
                    ObjectManager.Me.FocusGuid = fearTarget.Guid;
                    Extension.FightSpell(fear, true);
                    Logging.Write("Cast Fear on " + fearTarget);
                    Thread.Sleep(1000);
                }
            }
        }
        if (_icanusewand && Me.ManaPercentage < 5)
        {
            Extension.FightSpell(UseWand);
        }
        if (_icanusewand &&
            WarlockLevelSettings.CurrentSetting.UseWand &&
            MyTarget.HealthPercent < WarlockLevelSettings.CurrentSetting.UseWandTresh)
        {
            Extension.FightSpell(UseWand);
            return;
        }
        if (Me.HealthPercent > 50 &&
            Me.ManaPercentage < WarlockLevelSettings.CurrentSetting.Lifetap)
        {
            Extension.BuffSpell(lifetap);
        }
        if (Me.HaveBuff("Shadow Trance"))
        {
            Extension.FightSpell(shadowbolt);
        }
        if (Me.HealthPercent < WarlockLevelSettings.CurrentSetting.Drainlife)
        {
            Extension.FightSpell(drainlife);
        }
        if (ObjectManager.Pet.HealthPercent < 30 &&
            ObjectManager.Pet.IsAlive &&
            Me.HealthPercent > 50)
        {
            Extension.FightSpell(healthfunnel);
        }
        Extension.FightSpell(corruption);
        Extension.FightSpell(curseofagony);
        if (WarlockLevelSettings.CurrentSetting.unstableaffl)
        {
            Extension.FightSpell(unstableaffliction);
        }
        if (!curseofagony.KnownSpell)
        {
            Extension.FightSpell(immolate);
        }
        if (MyTarget.HealthPercent <= 25)
        {
            Extension.FightSpell(drainsoul);
        }
        if (MyTarget.HealthPercent > 15)
        {
            Extension.FightSpell(shadowbolt);
        }

        Extension.Frameunlock();
    }
Example #21
0
 private static void BuffRotation()
 {
     Extension.BuffSpell(BattleShout);
 }
Example #22
0
    private static void CombatRotation()
    {
        // Pet attack
        if (Fight.InFight && Me.Target > 0UL &&
            ObjectManager.Target.IsAttackable &&
            ObjectManager.Pet.Target != Me.Target)
        {
            Lua.LuaDoString("PetAttack();", false);
        }

        if (Extension.InterruptableUnit(20f) != null &&
            Intimidation.KnownSpell &&
            Intimidation.IsSpellUsable)
        {
            Logging.Write("Interrupt Target found");
            ObjectManager.Me.Target = Extension.InterruptableUnit(20f).Guid;
            Logging.Write("Interrupt Target Set" + Extension.InterruptableUnit(20f).Guid);
            Extension.FightSpell(Intimidation);
        }
        if (BossList.isboss)
        {
            Extension.FightSpell(BestialWrath);
        }
        //Ranged Attacks
        if (MyTarget.GetDistance >= 7)
        {
            if (MyTarget.HealthPercent < 20)
            {
                Extension.FightSpell(KillShot);
            }
            Extension.FightSpell(HuntersMark);
            if (BossList.isboss)
            {
                Extension.BuffSpell(RapidFire);
            }
            if (!Me.HaveBuff("Kill Command"))
            {
                Extension.FightSpell(KillCommand);
            }
            Extension.FightSpell(SerpentSting);
            Extension.FightSpell(ArcaneShot);
            Extension.FightSpell(MultiShot);
            Extension.FightSpell(SteadyShot, false, false, true);

            if (Me.ManaPercentage < HunterBeastMasterySettings.CurrentSetting.AspecofViper)
            {
                Extension.BuffSpell(AspecoftheViper);
            }
            if (Me.ManaPercentage > 30)
            {
                Extension.BuffSpell(AspecoftheDragonhawk);
            }
            if (!AspecoftheDragonhawk.KnownSpell && Me.ManaPercentage > 30)
            {
                Extension.BuffSpell(AspecoftheHawk);
            }
        }
        //Close  Combat  Attacks
        if (MyTarget.GetDistance <= 6)
        {
            Extension.FightSpell(RaptorStrike);
        }
    }
Example #23
0
 private static void ShadowRotation()
 {
     Extension.BuffSpell(ShadowForm);
     if (Extension.GetAttackingUnits(6).Count() > 1)
     {
         Extension.FightSpell(PsychicScream);
     }
     if (Extension.GetAttackingUnits(6).Count() > 1)
     {
         Extension.BuffSpell(InnerFire);
     }
     if (_icanusewand && Me.ManaPercentage < 5)
     {
         Extension.FightSpell(UseWand);
     }
     if (_icanusewand &&
         PriestLevelSettings.CurrentSetting.UseWand &&
         MyTarget.HealthPercent < PriestLevelSettings.CurrentSetting.UseWandTresh)
     {
         Extension.FightSpell(UseWand);
         return;
     }
     if (Me.Level >= 10 && Me.Level < 20)
     {
         Extension.FightSpell(MindBlast);
         if (!MindBlast.IsSpellUsable)
         {
             Extension.FightSpell(ShadowWordPain);
         }
         if (!MindBlast.IsSpellUsable)
         {
             Extension.FightSpell(Smite);
         }
     }
     if (Me.Level > 19 && Me.Level < 30)
     {
         if (Extension.GetAttackingUnits(20).Count() > 1 && !Me.IsStunned)
         {
             WoWUnit MainTarget = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Min(x => x.HealthPercent)).FirstOrDefault();
             WoWUnit DotTarget  = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Max(x => x.HealthPercent)).FirstOrDefault();
             if (DotTarget != MainTarget)
             {
                 ObjectManager.Me.FocusGuid = DotTarget.Guid;
                 Extension.FightSpell(ShadowWordPain, true, true);
                 Logging.Write("Cast Dot on " + DotTarget);
                 Thread.Sleep(50);
             }
         }
         Extension.FightSpell(HolyFire);
         Extension.FightSpell(DevouringPlague);
         Extension.FightSpell(ShadowWordPain);
         if (MyTarget.HaveBuff(DevouringPlague.Id) && MyTarget.HaveBuff(ShadowWordPain.Id) && PriestLevelSettings.CurrentSetting.ShadowUseMindflay)
         {
             Extension.FightSpell(MindFlay);
         }
         Extension.FightSpell(MindBlast);
     }
     if (Me.Level > 29 && Me.Level < 40)
     {
         //Vampiric Touch > Vampiric Embrace > Mind Blast > Mind Flay
         if (Extension.GetAttackingUnits(20).Count() > 1 && !Me.IsStunned)
         {
             WoWUnit MainTarget = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Min(x => x.HealthPercent)).FirstOrDefault();
             WoWUnit DotTarget  = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Max(x => x.HealthPercent)).FirstOrDefault();
             if (DotTarget != MainTarget)
             {
                 ObjectManager.Me.FocusGuid = DotTarget.Guid;
                 Extension.FightSpell(ShadowWordPain, true, true);
                 Logging.Write("Cast Dot on " + DotTarget);
                 Thread.Sleep(50);
             }
         }
         Extension.FightSpell(HolyFire);
         Extension.FightSpell(DevouringPlague);
         if (MyTarget.HaveBuff(DevouringPlague.Id))
         {
             Extension.BuffSpell(VampiricEmbrace);
         }
         Extension.FightSpell(ShadowWordPain);
         if (MyTarget.HaveBuff(DevouringPlague.Id) && MyTarget.HaveBuff(ShadowWordPain.Id) && PriestLevelSettings.CurrentSetting.ShadowUseMindflay)
         {
             Extension.FightSpell(MindFlay);
         }
         Extension.FightSpell(MindBlast);
     }
     if (Me.Level > 39 && Me.Level < 50)
     {
         //Vampiric Touch > Vampiric Embrace > Mind Blast > Mind Flay
         if (Extension.GetAttackingUnits(20).Count() > 1 && !Me.IsStunned)
         {
             WoWUnit MainTarget = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Min(x => x.HealthPercent)).FirstOrDefault();
             WoWUnit DotTarget  = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Max(x => x.HealthPercent)).FirstOrDefault();
             if (DotTarget != MainTarget)
             {
                 ObjectManager.Me.FocusGuid = DotTarget.Guid;
                 Extension.FightSpell(ShadowWordPain, true, true);
                 Logging.Write("Cast Dot on " + DotTarget);
                 Thread.Sleep(50);
             }
         }
         if (PriestLevelSettings.CurrentSetting.ShadowDPUse)
         {
             Extension.FightSpell(DevouringPlague);
         }
         Extension.FightSpell(ShadowWordPain);
         if (MyTarget.HaveBuff(ShadowWordPain.Id))
         {
             Extension.BuffSpell(VampiricEmbrace);
         }
         Extension.FightSpell(MindBlast);
         if (MyTarget.HaveBuff(ShadowWordPain.Id) && PriestLevelSettings.CurrentSetting.ShadowUseMindflay)
         {
             Extension.FightSpell(MindFlay);
         }
     }
     if (Me.Level > 49 && Me.Level < 60)
     {
         //Vampiric Touch > Vampiric Embrace > Mind Blast > Mind Flay
         if (Extension.GetAttackingUnits(20).Count() > 1 && !Me.IsStunned)
         {
             WoWUnit MainTarget = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Min(x => x.HealthPercent)).FirstOrDefault();
             WoWUnit DotTarget  = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Max(x => x.HealthPercent)).FirstOrDefault();
             if (DotTarget != MainTarget)
             {
                 ObjectManager.Me.FocusGuid = DotTarget.Guid;
                 Extension.FightSpell(ShadowWordPain, true, true);
                 Logging.Write("Cast Dot on " + DotTarget);
                 Thread.Sleep(50);
             }
         }
         if (PriestLevelSettings.CurrentSetting.ShadowDPUse)
         {
             Extension.FightSpell(DevouringPlague);
         }
         Extension.FightSpell(VampiricTouch);
         if (MyTarget.HaveBuff(VampiricTouch.Id))
         {
             Extension.FightSpell(ShadowWordPain);
         }
         Extension.BuffSpell(VampiricEmbrace);
         Extension.FightSpell(MindBlast);
         if (MyTarget.HaveBuff(VampiricTouch.Id) &&
             MyTarget.HaveBuff(ShadowWordPain.Id) && PriestLevelSettings.CurrentSetting.ShadowUseMindflay)
         {
             Extension.FightSpell(MindFlay);
         }
     }
     if (Me.Level > 59)
     {
         //Vampiric Touch > Vampiric Embrace > Mind Blast > Mind Flay
         if (Extension.GetAttackingUnits(20).Count() > 1 && !Me.IsStunned)
         {
             WoWUnit MainTarget = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Min(x => x.HealthPercent)).FirstOrDefault();
             WoWUnit DotTarget  = Extension.GetAttackingUnits(20).Where(u => u.HealthPercent == Extension.GetAttackingUnits(20).Max(x => x.HealthPercent)).FirstOrDefault();
             if (DotTarget != MainTarget)
             {
                 ObjectManager.Me.FocusGuid = DotTarget.Guid;
                 Extension.FightSpell(ShadowWordPain, true, true);
                 Logging.Write("Cast Dot on " + DotTarget);
                 Thread.Sleep(50);
             }
         }
         if (PriestLevelSettings.CurrentSetting.ShadowDPUse)
         {
             Extension.FightSpell(DevouringPlague);
         }
         Extension.FightSpell(VampiricTouch);
         if (MyTarget.HaveBuff(VampiricTouch.Id))
         {
             Extension.FightSpell(ShadowWordPain);
         }
         Extension.BuffSpell(VampiricEmbrace);
         if (Me.ManaPercentage < 20)
         {
             Extension.FightSpell(ShadowFiend);
         }
         Extension.FightSpell(MindBlast);
         if (MyTarget.HaveBuff(VampiricTouch.Id) &&
             MyTarget.HaveBuff(ShadowWordPain.Id) && PriestLevelSettings.CurrentSetting.ShadowUseMindflay)
         {
             Extension.FightSpell(MindFlay);
         }
     }
 }
Example #24
0
    internal static void EnhancementRotation()
    {
        bool Poison  = Extension.HasPoisonDebuff();
        bool Disease = Extension.HasDiseaseDebuff();

        if (Extension.InterruptableUnit(10f) != null && WindShear.KnownSpell && WindShear.IsSpellUsable)
        {
            Logging.Write("Interrupt Target found");
            ObjectManager.Me.FocusGuid = Extension.InterruptableUnit(10f).Guid;
            Logging.Write("Interrupt Target Set" + Extension.InterruptableUnit(10f).Guid);
            Extension.FightSpell(WindShear, true);
        }

        if (Me.HealthPercent < 30 && MyTarget.HealthPercent > ShamanLevelSettings.CurrentSetting.Enemylife)
        {
            Extension.HealSpell(HealingWave);
        }
        if (Poison)
        {
            Extension.BuffSpell(CurePoison);
        }
        if (Disease)
        {
            Extension.BuffSpell(CurePoison);
        }
        if (Extension.GetAttackingUnits(20).Count() > 1)
        {
            Extension.FightSpell(FeralSpirit);
        }

        if (Me.Level < 10)
        {
            if (lowlevel != true)
            {
                lowlevel = true;
            }

            if (MyTarget.GetDistance < 20)
            {
                TotemManager.CastTotems();
            }
            if (Me.Level < 4)
            {
                Extension.FightSpell(LightningBolt);
            }
            if (MyTarget.GetDistance > 7)
            {
                Extension.FightSpell(LightningBolt);
            }
            Extension.FightSpell(EarthShock);
            if (Me.ManaPercentage > 40)
            {
                Extension.BuffSpell(LightningShield);
            }
        }
        if (Me.Level > 9 && Me.Level < 20)
        {
            if (lowlevel != true)
            {
                lowlevel = true;
            }
            if (MyTarget.GetDistance < 20)
            {
                TotemManager.CastTotems();
            }
            //_lastTotemPosition.DistanceTo(ObjectManager.Me.Position)

            //if (_fireTotemPosition.DistanceTo(Me.Position) < 10 && Extension.GetAttackingUnits(5).Count() > 1 && ShamanLevelSettings.CurrentSetting.UseFireNova)
            //{
            //    Extension.FightSpell(FireNova);
            //}
            if (MyTarget.GetDistance > 7)
            {
                Extension.FightSpell(LightningBolt);
            }
            if (!FlameShock.KnownSpell)
            {
                Extension.FightSpell(EarthShock);
            }
            Extension.FightSpell(FlameShock);
            if (Me.ManaPercentage > 40)
            {
                Extension.BuffSpell(LightningShield);
            }
        }
        if (Me.Level > 19 && Me.Level < 40)
        {
            if (lowlevel == true)
            {
                lowlevel = false;
            }
            if (MyTarget.GetDistance < 20)
            {
                TotemManager.CotE();
                TotemManager.CastTotems();
            }
            if (MyTarget.GetDistance > 20)
            {
                Extension.FightSpell(LightningBolt);
            }
            Extension.FightSpell(EarthShock);
            if (Me.ManaPercentage < 20)
            {
                Extension.BuffSpell(WaterShield);
            }
            if (Me.ManaPercentage > 20 && !Me.HaveBuff(WaterShield.Id))
            {
                Extension.BuffSpell(LightningShield);
            }
        }
        if (Me.Level > 39 && Me.Level < 50)
        {
            if (MyTarget.GetDistance < 20)
            {
                TotemManager.CotE();
                TotemManager.CastTotems();
            }
            if (lowlevel == true)
            {
                lowlevel = false;
            }
            if (MyTarget.GetDistance > 20)
            {
                Extension.FightSpell(LightningBolt);
            }
            Extension.FightSpell(Stormstrike);
            Extension.FightSpell(EarthShock);
            Extension.FightSpell(LavaLash);
            if (Me.ManaPercentage < 20)
            {
                Extension.BuffSpell(WaterShield);
            }
            if (Me.ManaPercentage > 20 && !Me.HaveBuff(WaterShield.Id))

            {
                Extension.BuffSpell(LightningShield);
            }
        }
        if (Me.Level > 49 && Me.Level <= 80)
        {
            if (lowlevel == true)
            {
                lowlevel = false;
            }
            if (MyTarget.GetDistance < 20)
            {
                TotemManager.CotE();
                TotemManager.CastTotems();
            }
            if (MyTarget.GetDistance > 20 && ShamanLevelSettings.CurrentSetting.LNB)
            {
                Extension.FightSpell(LightningBolt);
            }
            if (Me.BuffStack(53817) >= 4)
            {
                if (Extension.GetAttackingUnits(5).Count() == 1)
                {
                    Extension.FightSpell(LightningBolt);
                }
                if (Extension.GetAttackingUnits(5).Count() > 1)
                {
                    Extension.FightSpell(ChainLightning);
                }
            }
            if (MyTarget.GetDistance < 7)
            {
                Extension.BuffSpell(ShamanisticRage);
            }
            Extension.FightSpell(Stormstrike);
            Extension.FightSpell(EarthShock);
            Extension.FightSpell(LavaLash);
            if (Me.ManaPercentage < 30)
            {
                Extension.BuffSpell(WaterShield);
            }
            if (Me.ManaPercentage > 30 && !Me.HaveBuff(WaterShield.Id))

            {
                Extension.BuffSpell(LightningShield);
            }
        }
    }
Example #25
0
    public static void CombatRotation()
    {
        if (Me.Level < 10)
        {
            Extension.FightSpell(Wrath);
            Extension.FightSpell(Moonfire);
        }
        if (Me.Level > 9 && Me.Level < 20)
        {
            if (BearForm.KnownSpell)
            {
                Extension.BuffSpell(BearForm);
            }
            if (Me.HaveBuff(BearForm.Id))
            {
                Extension.FightSpell(DemoralizingRoar);
                Extension.FightSpell(Maul);
                Extension.FightSpell(SwipeBear);
            }

            if (Me.HaveBuff(BearForm.Id) && MyTarget.GetDistance > 10)
            {
                Extension.FightSpell(Growl);
            }
            if (Me.HaveBuff(BearForm.Id) && MyTarget.GetDistance > 10)
            {
                Extension.FightSpell(FaerieFireFeral);
            }
            if (!Me.HaveBuff(BearForm.Id))
            {
                Extension.FightSpell(Moonfire);
            }
            if (!Me.HaveBuff(BearForm.Id))
            {
                Extension.FightSpell(Wrath);
            }
        }
        if (Me.Level > 19 && Me.Level < 80)
        {
            // Heal in Combat
            if (Me.HealthPercent < 36 && Me.ManaPercentage > 30 && MyTarget.HealthPercent > 13)
            {
                Extension.BuffSpell(Barkskin);
                Extension.HealSpell(Regrowth);
                if (!Regrowth.KnownSpell)
                {
                    Extension.HealSpell(HealingTouch);
                }
            }
            if (Me.HealthPercent < 92 && Me.ManaPercentage > 40 && Me.HaveBuff("Predator's Swiftness"))
            {
                Extension.HealSpell(Regrowth);
            }
            if (Me.Energy < 40 && Me.ComboPoint > 1 && MyTarget.HealthPercent > 40)
            {
                Extension.BuffSpell(TigersFury);
            }
            if (Extension.GetAttackingUnits(20).Count() > 1 && MyTarget.HealthPercent > 20)
            {
                if (Extension.GetAttackingUnits(20).Count() == 1 && Me.ManaPercentage > 40) //for Rejuve after bearform and one target died
                {
                    Extension.HealSpell(Rejuvenation);
                }
                if (!Me.HaveBuff(BearForm.Id) && !DireBearForm.KnownSpell)
                {
                    Extension.BuffSpell(BearForm);
                }
                if (!Me.HaveBuff(DireBearForm.Id))
                {
                    Extension.BuffSpell(DireBearForm);
                }
                if (Me.Rage > 16)
                {
                    Extension.FightSpell(Maul);
                }
                Extension.FightSpell(MangleBear, false, false, false, false);
                Extension.FightSpell(FaerieFireFeral);
                if (Extension.GetAttackingUnits(10).Count() > 3)
                {
                    Extension.FightSpell(DemoralizingRoar);
                }
            }
            if (Extension.GetAttackingUnits(20).Count() < 2)
            {
                if (!Me.HaveBuff(CatForm.Id))
                {
                    Extension.BuffSpell(CatForm);
                }
                if (Me.HaveBuff(CatForm.Id) && !Me.HaveBuff(Prowl.Id) && DruidLevelSettings.CurrentSetting.Prowl)
                {
                    Extension.BuffSpell(Prowl);
                }
                if (Me.HaveBuff(Prowl.Id))
                {
                    if (DruidLevelSettings.CurrentSetting.Dash)
                    {
                        Extension.BuffSpell(Dash);
                    }
                    Extension.FightSpell(Ravage);
                    Extension.FightSpell(Pounce);
                    Extension.FightSpell(Shred);
                }
                if (DruidLevelSettings.CurrentSetting.FFF && !Me.HaveBuff(Prowl.Id))
                {
                    Extension.FightSpell(FaerieFireFeral);
                }
                if (Extension.GetAttackingUnits(10).Count() > 1 && !DruidLevelSettings.CurrentSetting.TF)
                {
                    Extension.BuffSpell(TigersFury);
                }
                if (DruidLevelSettings.CurrentSetting.TF && !Me.HaveBuff(Prowl.Id))
                {
                    Extension.BuffSpell(TigersFury);
                }
                if (Me.ComboPoint <= 4 && MyTarget.HealthPercent >= 40)
                {
                    Extension.FightSpell(Rake);
                }
                if (!MangleCat.KnownSpell && Me.ComboPoint <= 4)
                {
                    Extension.FightSpell(Claw);
                }
                if (MangleCat.KnownSpell && Me.ComboPoint <= 4)
                {
                    Extension.FightSpell(MangleCat, false, false, false, false);
                }
                if (MyTarget.HealthPercent < DruidLevelSettings.CurrentSetting.FBH && Me.ComboPoint >= DruidLevelSettings.CurrentSetting.FBC)
                {
                    Extension.FightSpell(FerociousBite);
                }
                if (Me.ComboPoint >= 4 && MyTarget.HealthPercent > 50)
                {
                    Extension.FightSpell(Rip);
                }
            }
        }
    }
Example #26
0
    private static void CombatRotation()
    {
        // Pet attack
        if (Fight.InFight && Me.Target > 0UL && ObjectManager.Target.IsAttackable &&
            !ObjectManager.Pet.HaveBuff("Feed Pet Effect") && ObjectManager.Pet.Target != Me.Target)
        {
            Lua.LuaDoString("PetAttack();", false);
        }

        //Pethandle in Fight
        if (ObjectManager.Pet.HealthPercent < HunterLevelSettings.CurrentSetting.PetmendInFight &&
            PetHealTimer.IsReady)
        {
            Extension.PetSpell(MendPet);
            PetHealTimer = new Timer(1000 * 15);
            return;
        }

        if (Extension.InterruptableUnit(20f) != null && Intimidation.KnownSpell && Intimidation.IsSpellUsable)
        {
            Logging.Write("Interrupt Target found");
            ObjectManager.Me.Target = Extension.InterruptableUnit(20f).Guid;
            Logging.Write("Interrupt Target Set" + Extension.InterruptableUnit(20f).Guid);
            Extension.FightSpell(Intimidation);
        }

        if (ObjectManager.Target.IsElite || Extension.GetAttackingUnits(20).Count() > 1)
        {
            Extension.FightSpell(BestialWrath);
        }

        if (ObjectManager.Target.IsElite || Extension.GetAttackingUnits(20).Count() > 2)
        {
            Extension.BuffSpell(RapidFire);
        }

        //Ranged Attacks
        if (MyTarget.GetDistance >= 7)
        {
            Extension.FightSpell(HuntersMark);

            if (!Me.HaveBuff("Kill Command"))
            {
                Extension.FightSpell(KillCommand);
            }

            if (MyTarget.HealthPercent > 40)
            {
                Extension.FightSpell(SerpentSting);
            }
            Extension.FightSpell(ArcaneShot);

            if (MultiShotFeigndeath.IsReady && HunterLevelSettings.CurrentSetting.MultiS)
            {
                Extension.FightSpell(MultiShot);
            }

            Extension.FightSpell(SteadyShot, false, false, true);

            if (MyTarget.HealthPercent < 20)
            {
                Extension.FightSpell(KillShot);
            }

            if (Me.ManaPercentage < HunterLevelSettings.CurrentSetting.AspecofViper)
            {
                Extension.BuffSpell(AspecoftheViper);
            }

            if (Me.ManaPercentage > 30)
            {
                Extension.BuffSpell(AspecoftheDragonhawk);
            }

            if (!AspecoftheDragonhawk.KnownSpell && Me.ManaPercentage > 30)
            {
                Extension.BuffSpell(AspecoftheHawk);
            }
        }

        //Close  Combat  Attacks
        if (MyTarget.GetDistance <= 6)
        {
            Extension.FightSpell(RaptorStrike);

            if (!MyTarget.IsTargetingMe && ObjectManager.Pet.IsAlive && HunterLevelSettings.CurrentSetting.Dis)
            {
                Extension.BuffSpell(Disengage);
            }

            if (MyTarget.IsTargetingMe && ObjectManager.Pet.IsAlive)
            {
                Extension.BuffSpell(FeignDeath);
                Thread.Sleep(1500);
                MultiShotFeigndeath = new Timer(1000 * 5);
                return;
            }

            if (AspecoftheDragonhawk.KnownSpell)
            {
                Extension.BuffSpell(AspecoftheDragonhawk);
            }
        }
    }
Example #27
0
    private static void CombatRotation()
    {
        if (Me.ManaPercentage < MageLevelSettings.CurrentSetting.Manastone)
        {
            _foodManager.UseManaStone();
        }

        if (MageLevelSettings.CurrentSetting.Sheep)
        {
            //Poly Management
            if (Extension.GetAttackingUnits(5).Count() > 1 && Polymorph.KnownSpell)
            {
                Extension.Frameunlock();
                Logging.Write("2 Attackers, one will get Feared");
                WoWUnit mainTarget = Extension.GetAttackingUnits(5).Where(u => u.HealthPercent == Extension.GetAttackingUnits(5).Min(x => x.HealthPercent)).FirstOrDefault();
                WoWUnit polyTarget = Extension.GetAttackingUnits(5).Where(u => u.HealthPercent == Extension.GetAttackingUnits(5).Max(x => x.HealthPercent)).FirstOrDefault();
                if (polyTarget != mainTarget && !polyTarget.HaveBuff("Polymorph"))
                {
                    ObjectManager.Me.FocusGuid = polyTarget.Guid;
                    Extension.FightSpell(Polymorph, true);
                    Logging.Write("Cast Poly on " + polyTarget);
                    Thread.Sleep(1000);
                }
            }
        }
        if (Extension.InterruptableUnit(20f) != null && CounterSpell.KnownSpell && CounterSpell.IsSpellUsable)
        {
            Logging.Write("Interrupt Target found");
            ObjectManager.Me.FocusGuid = Extension.InterruptableUnit(20f).Guid;
            Logging.Write("Interrupt Target Set" + Extension.InterruptableUnit(20f).Guid);
            Extension.FightSpell(CounterSpell, true);
        }
        if (Me.HaveBuff("Fireball!"))
        {
            Extension.FightSpell(FrostFirebolt);
        }
        if (!IceBarrier.IsSpellUsable && !IceBlock.IsSpellUsable)
        {
            Extension.BuffSpell(ColdSnap);
        }
        if (Me.HealthPercent < 15 && Extension.GetAttackingUnits(20).Count() >= 2)
        {
            Extension.BuffSpell(Evocation);
        }
        if (Me.HealthPercent < 14 && !IceBarrier.IsSpellUsable)
        {
            Extension.BuffSpell(IceBlock);
        }
        if (Me.HealthPercent < 95)
        {
            Extension.BuffSpell(IceBarrier);
        }
        if (Extension.GetAttackingUnits(25).Count() >= 3 || MyTarget.IsElite)
        {
            Extension.FightSpell(MirrorImage);
            Extension.FightSpell(SummonWaterElemental);
        }
        if (Extension.GetAttackingUnits(25).Count() >= 2 || MyTarget.IsElite)
        {
            Extension.BuffSpell(IcyVeins);
            Extension.FightSpell(SummonWaterElemental);
        }
        Extension.FightSpell(DeepFreeze);
        if (Me.HaveBuff("Fingers of Frost") || MyTarget.HaveBuff(FrostNova.Id))
        {
            Extension.FightSpell(IceLance);
        }
        if (!Frostbolt.KnownSpell)
        {
            Extension.FightSpell(Fireball, false, false, false, false);
        }
        Extension.FightSpell(Frostbolt, false, false, false, false);
        if (MyTarget.HealthPercent < 10)
        {
            Extension.FightSpell(FireBlast);
        }
        if (MyTarget.GetDistance < 7)
        {
            Extension.FightSpell(FrostNova);
        }
        Extension.Frameunlock();
    }
Example #28
0
 private static void BuffRotation()
 {
     if (PaladinLevelSettings.CurrentSetting.Buffing)
     {
         if (Me.IsMounted && PaladinLevelSettings.CurrentSetting.Crusader)
         {
             Extension.BuffSpell(CrusaderAura, true);
         }
         if (PaladinLevelSettings.CurrentSetting.Seal == "Seal of Command" && !Me.HaveBuff(SealofCommand.Id))
         {
             Extension.BuffSpell(SealofCommand);
         }
         if (PaladinLevelSettings.CurrentSetting.Seal == "Seal of Righteousness" && !Me.HaveBuff(SealofRighteousness.Id))
         {
             Extension.BuffSpell(SealofRighteousness);
         }
         if (PaladinLevelSettings.CurrentSetting.Seal == "Seal of Justice" && !Me.HaveBuff(SealofJustice.Id))
         {
             Extension.BuffSpell(SealofJustice);
         }
         if (!Me.HaveBuff(GreaterBlessingOfMight.Id))
         {
             Extension.BuffSpell(BlessingofMight, false);
         }
         if (PaladinLevelSettings.CurrentSetting.Aura == "Retribution Aura")
         {
             Extension.BuffSpell(RetributionAura, false);
         }
         if (PaladinLevelSettings.CurrentSetting.Aura == "Devotion Aura")
         {
             Extension.BuffSpell(DevotionAura, false);
         }
         if (Me.ManaPercentage < 80 && !Fight.InFight)
         {
             Extension.BuffSpell(DivinePlea, false);
         }
         if (Extension.GetAttackingUnits(20).Count() > 2 && PaladinLevelSettings.CurrentSetting.SShield)
         {
             Extension.BuffSpell(SacredShield, false);
             return;
         }
         if (Me.HealthPercent < 15 && PaladinLevelSettings.CurrentSetting.LayOnHands && !Me.HaveBuff("Forbearance"))
         {
             Extension.BuffSpell(LayonHands);
             return;
         }
         if (Me.HealthPercent < 20 && PaladinLevelSettings.CurrentSetting.HoProtection && !Me.HaveBuff("Forbearance"))
         {
             Extension.BuffSpell(HandofProtection, false);
             return;
         }
         if (Me.HealthPercent < 40 && !Me.HaveBuff("Forbearance") && Extension.GetAttackingUnits(5).Count() >= 2 && PaladinLevelSettings.CurrentSetting.DivProtection)
         {
             Extension.BuffSpell(DivineProtection, false);
             return;
         }
         if (Me.Rooted)
         {
             Extension.BuffSpell(HandofFreedom);
         }
     }
 }