public override void Pulse()
        {
            if (combatRoutine.Type == RotationType.SingleTarget)  // Do Single Target Stuff here
            {
                if (WoW.HasTarget && WoW.TargetIsEnemy)
                {
                    if (WoW.CanCast("Stormstrike", true, true, false, false))
                    {
                        WoW.CastSpellByName("Stormstrike");
                    }

                    if (WoW.CanCast("Boulderfist", true, true, false, false) && !WoW.HasBuff("Boulderfist"))
                    {
                        WoW.CastSpellByName("Boulderfist");
                    }

                    if (WoW.CanCast("Flametounge", true, true, false, false))
                    {
                        WoW.CastSpellByName("Flametounge");
                    }

                    if (WoW.CanCast("Crash Lightning", true, true, false, false) && WoW.Power > 80)
                    {
                        WoW.CastSpellByName("Crash Lightning");
                    }

                    if (WoW.CanCast("Lava Lash", true, true, false, false) && WoW.Power > 90)
                    {
                        WoW.CastSpellByName("Lava Lash");
                    }

                    if (WoW.CanCast("Boulderfist", true, true, false, false))
                    {
                        WoW.CastSpellByName("Boulderfist");
                    }
                }
            }
            if (combatRoutine.Type == RotationType.AOE)
            {
            }
        }
Exemple #2
0
 public override void Pulse()                             // Updated for Legion (tested and working for single target)
 {
     if (combatRoutine.Type == RotationType.SingleTarget) // Do Single Target Stuff here
     {
         if (WoW.HasTarget && WoW.TargetIsEnemy)
         {
             if (!WoW.HasDebuff("Virulent Plague") && WoW.CurrentRunes >= 1 && WoW.CanCast("Outbreak", true, false, true, false, true))
             {
                 WoW.CastSpellByName("Outbreak");
             }
             if (WoW.CanCast("Dark Transformation", true, true, true, false, true))
             {
                 WoW.CastSpellByName("Dark Transformation");
             }
             if ((WoW.CanCast("Death Coil", true, true, false, false, true) && (WoW.RunicPower >= 80)) ||
                 (WoW.HasBuff("Sudden Doom") && WoW.IsSpellOnCooldown("Dark Arbiter")))
             {
                 WoW.CastSpellByName("Death Coil");
             }
             if (WoW.CanCast("Festering Strike", true, true, true, false, true) && WoW.GetDebuffStacks("Festering Wound") <= 4)
             {
                 WoW.CastSpellByName("Festering Strike");
             }
             if (WoW.CanCast("Clawing Shadows", true, true, false, false, true) && WoW.CurrentRunes >= 3)
             {
                 WoW.CastSpellByName("Clawing Shadows");
             }
         }
     }
     if (combatRoutine.Type == RotationType.AOE)
     {
         // Do AOE stuff here
     }
     if (combatRoutine.Type == RotationType.SingleTargetCleave)
     {
         // Do Single Target Cleave stuff here if applicable else ignore this one
     }
 }
Exemple #3
0
 public override void Pulse()
 {
     if (combatRoutine.Type == RotationType.SingleTarget)
     {
         if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.HasBuff("Moonkin") && !WoW.IsMoving())
         {
             if (WoW.IsSpellInRange("Moonfire") && WoW.CanCast("Moonfire") && !WoW.HasDebuff("Moonfire"))
             {
                 WoW.CastSpellByName("Moonfire");
                 return;
             }
             if (WoW.IsSpellInRange("Sunfire") && WoW.CanCast("Sunfire") && !WoW.HasDebuff("Sunfire"))
             {
                 WoW.CastSpellByName("Sunfire");
                 return;
             }
             if (WoW.IsSpellInRange("LStrike") && WoW.CanCast("LStrike") && WoW.GetBuffStacks("LunarEmp") == 3 && WoW.Astral <= 80)
             {
                 WoW.CastSpellByName("LStrike");
                 return;
             }
             if ((WoW.IsSpellInRange("SolarW") && WoW.CanCast("SolarW") && WoW.HasBuff("SolarEmp") && WoW.Astral <= 80) || (WoW.IsSpellInRange("SolarW") &&
                                                                                                                            WoW.Astral <= 40 && WoW.GetSpellCharges("Moon") < 1 && WoW.GetSpellCharges("HalfMoon") < 1 && WoW.GetSpellCharges("FullMoon") < 1 && WoW.GetBuffStacks("LunarEmp") <= 2))
             {
                 WoW.CastSpellByName("SolarW");
                 return;
             }
             if (WoW.IsSpellInRange("StarSurge") && WoW.CanCast("StarSurge") && WoW.Astral >= 40 && !(WoW.GetBuffStacks("LunarEmp") == 3) && !(WoW.GetBuffStacks("SolarEmp") == 3))
             {
                 WoW.CastSpellByName("StarSurge");
                 return;
             }
             if (WoW.IsSpellInRange("Moon") && WoW.CanCast("Moon") && WoW.Astral <= 60 && WoW.HasDebuff("Moonfire") && WoW.HasDebuff("Sunfire"))
             {
                 WoW.CastSpellByName("Moon");
                 return;
             }
         }
         if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.HasBuff("Moonkin") && WoW.IsMoving())
         {
             if (WoW.IsSpellInRange("Moonfire") && WoW.CanCast("Moonfire") && WoW.Astral <= 40)
             {
                 WoW.CastSpellByName("Moonfire");
                 return;
             }
             if (WoW.IsSpellInRange("StarSurge") && WoW.CanCast("StarSurge") && WoW.Astral >= 40)
             {
                 WoW.CastSpellByName("StarSurge");
                 return;
             }
             if (WoW.IsSpellInRange("Sunfire") && WoW.CanCast("Sunfire") && !WoW.HasDebuff("Sunfire"))
             {
                 WoW.CastSpellByName("Sunfire");
                 return;
             }
         }
     }
     //12 e 18
     if (combatRoutine.Type == RotationType.AOE)
     {
         if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.HasBuff("Moonkin") && !WoW.IsMoving())
         {
             if (WoW.CanCast("Moonfire") && !WoW.HasDebuff("Moonfire"))
             {
                 WoW.CastSpellByName("Moonfire");
                 return;
             }
             if (WoW.CanCast("Sunfire") && !WoW.HasDebuff("Sunfire"))
             {
                 WoW.CastSpellByName("Sunfire");
                 return;
             }
             if (WoW.CanCast("SolarW") && WoW.GetBuffStacks("SolarEmp") == 3 && WoW.Astral <= 80)
             {
                 WoW.CastSpellByName("SolarW");
                 return;
             }
             if ((WoW.CanCast("LStrike") && WoW.HasBuff("LunarEmp") && WoW.Astral <= 80) || (
                     WoW.Astral <= 40 && WoW.GetSpellCharges("Moon") < 1 && WoW.GetSpellCharges("HalfMoon") < 1 && WoW.GetSpellCharges("FullMoon") < 1 && WoW.GetBuffStacks("SolarEmp") <= 2))
             {
                 WoW.CastSpellByName("LStrike");
                 return;
             }
             if (WoW.CanCast("StarSurge") && WoW.Astral >= 40 && !(WoW.GetBuffStacks("LunarEmp") == 3) && !(WoW.GetBuffStacks("SolarEmp") == 3))
             {
                 WoW.CastSpellByName("StarSurge");
                 return;
             }
             if (WoW.CanCast("Moon") && WoW.Astral <= 60 && WoW.HasDebuff("Sunfire") && WoW.HasDebuff("Moonfire"))
             {
                 WoW.CastSpellByName("Moon");
                 return;
             }
         }
         if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.HasBuff("Moonkin") && WoW.IsMoving())
         {
             if (WoW.IsSpellInRange("Moonfire") && WoW.CanCast("Moonfire") && WoW.Astral <= 40)
             {
                 WoW.CastSpellByName("Moonfire");
                 return;
             }
             if (WoW.IsSpellInRange("StarSurge") && WoW.CanCast("StarSurge") && WoW.Astral >= 40)
             {
                 WoW.CastSpellByName("StarSurge");
                 return;
             }
             if (WoW.IsSpellInRange("Sunfire") && WoW.CanCast("Sunfire") && !WoW.HasDebuff("Sunfire"))
             {
                 WoW.CastSpellByName("Sunfire");
                 return;
             }
         }
     }
 }
Exemple #4
0
        public override void Pulse()
        {
            if (combatRoutine.Type == RotationType.SingleTarget)  // Do Single Target Stuff here
            {
                if (WoW.HasTarget && WoW.TargetIsEnemy)
                {
                    if (!WoW.IsSpellOnCooldown("Swipe"))
                    {
                        if (WoW.CanCast("Tigers Fury") && WoW.Energy <= 50) // Wtf
                        {
                            WoW.CastSpellByName("Tigers Fury");
                            return;
                        }

                        if (WoW.CanCast("Healing Touch") && WoW.CurrentComboPoints >= 4 && WoW.HasBuff("Clearcasting") && !WoW.HasBuff("Bloodtalons")) //
                        {
                            WoW.CastSpellByName("Healing Touch");
                            return;
                        }

                        if (WoW.CanCast("Ferocious Bite") && WoW.CurrentComboPoints >= 5 && WoW.Energy >= 50 && (WoW.TargetHealthPercent <= 25 || WoW.GetDebuffTimeRemaining("Rip") >= 10)) //
                        {
                            WoW.CastSpellByName("Ferocious Bite");
                            return;
                        }

                        if (WoW.CanCast("Rake") && WoW.Energy >= 35 && (!WoW.HasDebuff("Rake") || WoW.GetDebuffTimeRemaining("Rake") <= 3)) // Rake
                        {
                            WoW.CastSpellByName("Rake");
                            return;
                        }

                        if (WoW.CanCast("Rip") && WoW.Energy >= 30 && (!WoW.HasDebuff("Rip") || (WoW.GetDebuffTimeRemaining("Rip") <= 4.7 && WoW.CurrentComboPoints >= 5)))  //
                        {
                            WoW.CastSpellByName("Rip");
                            return;
                        }

                        if (WoW.CanCast("Shred") && WoW.CurrentComboPoints <= 5)  //
                        {
                            WoW.CastSpellByName("Shred");
                            return;
                        }
                    }
                }
            }
            if (combatRoutine.Type == RotationType.AOE)
            {
                // Do AOE Stuff here

                // Log.Write("Has Aura: " + WoW.HasAura("Furious Howl"));
                // Log.Write("Aura Count: " + WoW.GetAuraCount("Furious Howl"));
                // Log.Write("Aura Count: " + WoW.GetAuraCount("Taste for Blood"));
            }
        }
Exemple #5
0
 public override void Pulse()
 {
     if (combatRoutine.Type == RotationType.SingleTarget)
     {
         if (WoW.HasTarget && WoW.TargetIsEnemy && !WoW.PlayerIsChanneling && !WoW.PlayerIsCasting && !WoW.HasDebuff("Paralysis"))
         {
             if (WoW.CanCast("Energizing Elixir") && WoW.IsSpellInRange("Tiger Palm") && !WoW.IsSpellOnCooldown("Energizing Elixir") && !WoW.IsSpellOnCooldown("Fists of Fury") && WoW.CurrentChi <= 1)
             {
                 WoW.CastSpellByName("Energizing Elixir");
                 return;
             }
             if (WoW.CanCast("Strike of the Windlord") && WoW.CurrentChi >= 2 && !WoW.lastSpell.Equals("Strike of the Windlord") && WoW.IsSpellInRange("Tiger Palm"))
             {
                 WoW.CastSpellByName("Strike of the Windlord");
                 return;
             }
             if (WoW.CanCast("Fists of Fury") && WoW.CurrentChi >= 3 && !WoW.lastSpell.Equals("Fists of Fury") && WoW.IsSpellInRange("Tiger Palm"))
             {
                 WoW.CastSpellByName("Fists of Fury");
                 return;
             }
             if (WoW.CanCast("Rising Sun Kick") && !WoW.lastSpell.Equals("Rising Sun Kick") && WoW.CurrentChi >= 2 && WoW.IsSpellInRange("Tiger Palm"))
             {
                 WoW.CastSpellByName("Rising Sun Kick");
                 return;
             }
             if (WoW.CanCast("Whirling Dragon Punch") && WoW.IsSpellOnCooldown("Rising Sun Kick") && WoW.IsSpellOnCooldown("Fists of Fury") && WoW.IsSpellInRange("Tiger Palm"))
             {
                 WoW.CastSpellByName("Whirling Dragon Punch");
                 return;
             }
             if (WoW.CanCast("Chi Wave") && !WoW.lastSpell.Equals("Chi Wave"))
             {
                 WoW.CastSpellByName("Chi Wave");
                 return;
             }
             if (WoW.CanCast("Touch of Death") && !WoW.lastSpell.Equals("Touch of Death") && WoW.IsSpellInRange("Tiger Palm"))
             {
                 WoW.CastSpellByName("Touch of Death");
                 return;
             }
             if (WoW.CanCast("Blackout Kick") && !WoW.lastSpell.Equals("Blackout Kick") && (WoW.CurrentChi >= 1 || WoW.HasBuff("Blackout Kick!")) && WoW.IsSpellInRange("Tiger Palm"))
             {
                 WoW.CastSpellByName("Blackout Kick");
                 return;
             }
             if (WoW.CanCast("Tiger Palm") && !WoW.lastSpell.Equals("Tiger Palm") && WoW.CurrentChi < 4 && WoW.Energy >= 50 && WoW.IsSpellInRange("Tiger Palm"))
             {
                 WoW.CastSpellByName("Tiger Palm");
                 return;
             }
         }
     }
     if (combatRoutine.Type == RotationType.AOE)
     {
         if (WoW.HasTarget && WoW.TargetIsEnemy)
         {
         }
     }
 }
Exemple #6
0
        public override void Pulse()
        {
            if (combatRoutine.Type == RotationType.SingleTarget)  // Do Single Target Stuff here
            {
                if (WoW.CanCast("Barreira de Gelo") && !WoW.PlayerIsChanneling && !WoW.HasBuff("Invis"))
                {
                    WoW.CastSpellByName("Barreira de Gelo");
                    return;
                }
                if (WoW.HasTarget && WoW.TargetIsEnemy && !WoW.PlayerIsCasting && !WoW.PlayerIsChanneling && !WoW.HasBuff("Invis"))
                {
                    if (WoW.CanCast("Supernova"))
                    {
                        WoW.CastSpellByName("Supernova");
                        return;
                    }

                    if (WoW.CanCast("Retardar") && !WoW.HasDebuff("Retardar"))
                    {
                        WoW.CastSpellByName("Retardar");
                        return;
                    }
                    if ((WoW.CanCast("Rune of Power") && WoW.GetSpellCharges("Rune of Power") == 2 && !WoW.HasBuff("Rune of Power") && !WoW.IsSpellOnCooldown("Rune of Power")) ||
                        WoW.IsSpellOnCooldown("Aluneth") && !WoW.HasBuff("Rune of Power") && !WoW.IsSpellOnCooldown("Rune of Power"))
                    {
                        WoW.CastSpellByName("Rune of Power");
                        return;
                    }
                    if (WoW.CanCast("Poder Arcano"))
                    {
                        WoW.CastSpellByName("Poder Arcano");
                        return;
                    }
                    if (WoW.CanCast("Aluneth") && WoW.HasBuff("Rune of Power"))
                    {
                        WoW.CastSpellByName("Aluneth");
                        return;
                    }
                    if (WoW.CanCast("Evocation") && WoW.Mana <= 20)
                    {
                        WoW.CastSpellByName("Evocation");
                        return;
                    }
                    if (WoW.CanCast("Tempest") && !WoW.HasDebuff("Tempest") && WoW.CurrentArcaneCharges >= 4)
                    {
                        WoW.CastSpellByName("Tempest");
                        return;
                    }
                    if (WoW.CanCast("Arcane Miss") && WoW.HasBuff("Arcane Missiles"))
                    {
                        WoW.CastSpellByName("Arcane Miss");
                        return;
                    }
                    if ((WoW.CanCast("Impacto Arcano") && WoW.Mana >= 25 && WoW.IsSpellOnCooldown("Evocation") && !WoW.HasBuff("Arcane Missiles")) ||
                        WoW.CurrentArcaneCharges <= 3)
                    {
                        WoW.CastSpellByName("Impacto Arcano");
                        return;
                    }
                    if ((WoW.CanCast("Salva") && WoW.Mana <= 40 && !WoW.HasBuff("Arcane Missiles") && WoW.CurrentArcaneCharges == 4) ||
                        (WoW.CurrentArcaneCharges == 4 && !WoW.IsSpellOnCooldown("Evocation")))
                    {
                        WoW.CastSpellByName("Salva");
                        return;
                    }
                }
                if (WoW.CanCast("Familiar") && !WoW.PlayerIsCasting && !WoW.PlayerIsChanneling && !WoW.HasBuff("Invis") && !WoW.HasBuff("Familiar"))
                {
                    WoW.CastSpellByName("Familiar");
                    return;
                }
            }
            if (combatRoutine.Type == RotationType.AOE)
            {
                // Do AOE stuff here
            }
            if (combatRoutine.Type == RotationType.SingleTargetCleave)
            {
                // Do Single Target Cleave stuff here if applicable else ignore this one
            }
        }
Exemple #7
0
        public override void Pulse()
        {
            if (combatRoutine.Type == RotationType.SingleTarget)
            {
                if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.HasBuff("Cat Form"))
                {
                    if (WoW.CanCast("Healing Touch") && WoW.HasBuff("PredatorySwiftness") && WoW.HealthPercent <= 80)
                    {
                        WoW.CastSpellByName("Healing Touch");
                        return;
                    }

                    if ((WoW.IsSpellInRange("Ferocious Bite") && WoW.CanCast("Ferocious Bite") && WoW.CurrentComboPoints >= 5 && WoW.HasDebuff("Rip")) && WoW.GetDebuffTimeRemaining("Rip") >= 5 && (WoW.Energy >= 50 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Ferocious Bite");
                        return;
                    }

                    if ((WoW.IsSpellInRange("Rake") && WoW.CanCast("Rake") && (!WoW.HasDebuff("Rake") || WoW.GetDebuffTimeRemaining("Rake") <= 3)) && (WoW.Energy >= 35 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Rake");
                        return;
                    }
                    if (WoW.IsSpellInRange("Frenesi") && WoW.CanCast("Frenesi") && !WoW.IsSpellOnCooldown("Frenesi") && WoW.CurrentComboPoints <= 2)
                    {
                        WoW.CastSpellByName("Frenesi");
                        return;
                    }

                    if ((WoW.IsSpellInRange("Rip") && WoW.CanCast("Rip") && WoW.CurrentComboPoints >= 5 && (!WoW.HasDebuff("Rip") || WoW.GetDebuffTimeRemaining("Rip") <= 5)) && (WoW.Energy >= 30 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Rip");
                        return;
                    }

                    if ((WoW.IsSpellInRange("Shred") && WoW.CanCast("Shred") && WoW.CurrentComboPoints < 5 && WoW.HasDebuff("Rake") && WoW.IsSpellOnCooldown("Brutal Slash")) && (WoW.Energy >= 40 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Shred");
                        return;
                    }
                    if (WoW.CanCast("Tigers Fury") && WoW.Energy <= 20 && !WoW.IsSpellOnCooldown("Tigers Fury"))
                    {
                        WoW.CastSpellByName("Tigers Fury");
                        return;
                    }
                    if ((WoW.IsSpellInRange("Shred") && WoW.CanCast("Brutal Slash") && !WoW.IsSpellOnCooldown("Brutal Slash")) && (WoW.Energy >= 20 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Brutal Slash");
                        return;
                    }
                }
            }
            if (combatRoutine.Type == RotationType.AOE)
            {
                if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.HasBuff("Cat Form"))
                {
                    if (WoW.CanCast("Healing Touch") && WoW.HasBuff("PredatorySwiftness") && WoW.HealthPercent <= 80)
                    {
                        WoW.CastSpellByName("Healing Touch");
                        return;
                    }

                    if ((WoW.IsSpellInRange("Ferocious Bite") && WoW.CanCast("Ferocious Bite") && WoW.CurrentComboPoints >= 5 && WoW.HasDebuff("Rip")) && WoW.GetDebuffTimeRemaining("Rip") >= 5 && (WoW.Energy >= 50 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Ferocious Bite");
                        return;
                    }

                    if ((WoW.IsSpellInRange("Rake") && WoW.CanCast("Rake") && (!WoW.HasDebuff("Rake") || WoW.GetDebuffTimeRemaining("Rake") <= 3)) && (WoW.Energy >= 35 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Rake");
                        return;
                    }
                    if (WoW.IsSpellInRange("Frenesi") && WoW.CanCast("Frenesi") && !WoW.IsSpellOnCooldown("Frenesi") && WoW.CurrentComboPoints <= 2)
                    {
                        WoW.CastSpellByName("Frenesi");
                        return;
                    }

                    if ((WoW.IsSpellInRange("Rip") && WoW.CanCast("Rip") && WoW.CurrentComboPoints >= 5 && (!WoW.HasDebuff("Rip") || WoW.GetDebuffTimeRemaining("Rip") <= 5)) && (WoW.Energy >= 30 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Rip");
                        return;
                    }

                    if ((WoW.IsSpellInRange("Shred") && WoW.CanCast("Shred") && WoW.CurrentComboPoints < 5 && WoW.HasDebuff("Rake") && WoW.IsSpellOnCooldown("Brutal Slash")) && (WoW.Energy >= 40 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Shred");
                        return;
                    }
                    if (WoW.CanCast("Tigers Fury") && WoW.Energy <= 40 && !WoW.IsSpellOnCooldown("Tigers Fury"))
                    {
                        WoW.CastSpellByName("Tigers Fury");
                        return;
                    }
                    if ((WoW.IsSpellInRange("Shred") && WoW.CanCast("Brutal Slash") && !WoW.IsSpellOnCooldown("Brutal Slash")) && (WoW.Energy >= 20 || WoW.HasBuff("Incarnation") || WoW.HasBuff("Berserk")))
                    {
                        WoW.CastSpellByName("Brutal Slash");
                        return;
                    }
                }
            }
        }
Exemple #8
0
        public override void Pulse()
        {
            if (combatRoutine.Type == RotationType.SingleTarget)
            {
                if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.HasBuff("Bear Form"))
                {
                    if (WoW.IsSpellInRange("Mangle") && WoW.CanCast("Mangle") && (!(WoW.GetDebuffStacks("Thrash") <= 2) || WoW.IsSpellOnCooldown("Thrash")))
                    {
                        WoW.CastSpellByName("Mangle");
                        return;
                    }
                    if (WoW.CanCast("Swipe") && WoW.IsSpellOnCooldown("Mangle") &&
                        (!(WoW.GetDebuffTimeRemaining("Thrash") <= 2) || !(WoW.GetDebuffStacks("Thrash") <= 2)))
                    {
                        WoW.CastSpellByName("Swipe");
                        return;
                    }
                    if (WoW.IsSpellInRange("Moonfire") && WoW.CanCast("Moonfire") && !WoW.HasDebuff("Moonfire") || WoW.HasBuff("Galactic Guardian"))
                    {
                        WoW.CastSpellByName("Moonfire");
                        return;
                    }
                    if (WoW.IsSpellInRange("growl") && WoW.CanCast("growl") && !WoW.HasDebuff("Intimidated"))
                    {
                        WoW.CastSpellByName("growl");
                        return;
                    }
                    if (WoW.CanCast("Frenzied Regeneration") && WoW.HealthPercent <= 85 && !WoW.HasBuff("Frenzied Regeneration"))
                    {
                        WoW.CastSpellByName("Frenzied Regeneration");
                        return;
                    }
                    if (WoW.CanCast("Ironfur") && (WoW.Rage >= 45))
                    {
                        WoW.CastSpellByName("Ironfur");
                        return;
                    }
                    if (WoW.CanCast("Thrash") && WoW.GetDebuffStacks("Thrash") < 3 || WoW.GetDebuffTimeRemaining("Thrash") < 3)
                    {
                        WoW.CastSpellByName("Thrash");
                        return;
                    }
                }
            }
            if (combatRoutine.Type == RotationType.AOE)
            {
                if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.HasBuff("Bear Form"))
                {
                    if (WoW.IsSpellInRange("Mangle") && WoW.CanCast("Mangle") && (!(WoW.GetDebuffStacks("Thrash") <= 2) || WoW.IsSpellOnCooldown("Thrash")))
                    {
                        WoW.CastSpellByName("Mangle");
                        return;
                    }
                    if (WoW.CanCast("Swipe") && WoW.IsSpellOnCooldown("Mangle") &&
                        (!(WoW.GetDebuffTimeRemaining("Thrash") <= 2) || !(WoW.GetDebuffStacks("Thrash") <= 2)))
                    {
                        WoW.CastSpellByName("Swipe");
                        return;
                    }
                    if (WoW.IsSpellInRange("Moonfire") && WoW.CanCast("Moonfire") && !WoW.HasDebuff("Moonfire") || WoW.HasBuff("Galactic Guardian"))
                    {
                        WoW.CastSpellByName("Moonfire");
                        return;
                    }
                    if (WoW.IsSpellInRange("growl") && WoW.CanCast("growl") && !WoW.HasDebuff("Intimidated"))
                    {
                        WoW.CastSpellByName("growl");
                        return;
                    }
                    if (WoW.CanCast("Frenzied Regeneration") && WoW.HealthPercent <= 85 && !WoW.HasBuff("Frenzied Regeneration"))
                    {
                        WoW.CastSpellByName("Frenzied Regeneration");
                        return;
                    }
                    if (WoW.CanCast("Thrash") && WoW.GetDebuffStacks("Thrash") < 3 || WoW.GetDebuffTimeRemaining("Thrash") < 3)
                    {
                        WoW.CastSpellByName("Thrash");
                        return;
                    }

                    if (WoW.CanCast("Ironfur") && WoW.HasBuff("Mark of Ursol") && (WoW.Rage >= 45))
                    {
                        WoW.CastSpellByName("Ironfur");
                        return;
                    }
                    if (WoW.CanCast("Mark of Ursol") && (WoW.Rage >= 45) && !WoW.HasBuff("Mark of Ursol"))
                    {
                        WoW.CastSpellByName("Mark of Ursol");
                        return;
                    }
                }
            }
        }