tbot - i will have to look at your script later.
I now have a version of the Ovale script that has been optimized based on Mew modeling (see the Mew thread for more details on the modeling that Alaron did along with my subsequent testing). rather than update the post on page 8, I am going to post it here - and make updates to this one in case people are attached to that other script. This one should produce close to 300 dps more in a raid environment.
One thing that is missing is RAVAGE code - I put some in based on the latest version of Ovale (275) but I was getting errors - so I commented it out for now as my day is at an end.
======================
New version 1.0.1 with support for Ravage/Stampede and Berserk
New version 1.0.2 folded in tbot's Bear code. I did move the option for Demo Roar higher in the script - otherwise it is never cast (it is on a toggle).
New version 1.0.3 - fixed a bug I introduced when adding in the bear code. Also did some cleanup on the Ripshred code. Everyone using the script should also make sure to update Ovale - 4.09 was released on 10/17.
New version 1.0.4 - changes text for swipe on cooldown checkbox, change max energy for berserk from 91 to 96, add optional small timer boxes (on checkbox) for rake/rip and mangle/swipe cooldowns.
New version 1.0.5 - adds two additional cooldown checkboxes for cat - Savage roar and mangle. This is controlled on a separate checkbox. Also added clipping to Rip conntrolled by a checkbox.
Per request, I will keep the last two versions of the script posted here.
Code: Select all
# Ovale Optimized Script Leafkiller 1.0.5
# Bear code from tbot
# Started with the Ovale default druid script, this includes significant work from Alaron and goes back to the work of Fatalsaints
# Script source: http://fluiddruid.net/forum/viewtopic.php?f=3&t=33
# Ovale source: http://wow.curse.com/downloads/wow-addons/details/ovale.aspx
# Initial optimized version based on Sim work from Alaron with some modifications from Leafkiller
# Revision History (post 1.0)
# 1.0.5 - 10/19/2010
# Add option to clip Rip
# Add two more small boxes - for cat: Mangle/SR, nothing for bear for now.
# 1.0.4 - 10/19/2010
# Change Berserk max energy to 96 (from 91)
# Add to small boxes to the right for cat to show Rake and Rip cooldowns and mangle/swipe for bears
# Change name for swipe switch to "Swipe on cooldown"
# 1.0.3 - 10/18/2010
# Fix bad "{" I put in with the bear code
# Fix Ripshred code that is now showing up with the new Ovale (it didn't show up before)
# 1.0.2 - 10/17/2010 - Included tbot's bear code
# Moved Demo Roar higher in the script so it will actually be called
# 1.0.1 - Changes based on Sim results
# FF refresh at 1 second (down from 2)
# Rake clip set to 2.9 rather than 2 - this could be a dps increase per the simulator
# Ravage code included - fires during TF or when 3 seconds left before Stampede falls off (to make sure we don't miss it)
# Berserk code included
Define(BARKSKIN 22812)
Define(BERSERK 50334) #cat+bear cd buff
SpellInfo(BERSERK cd=180)
Define(DEMOROAR 99) #bear
SpellAddTargetDebuff(DEMOROAR DEMOROAR=30)
Define(ENRAGE 5229) #bear
Define(FAERIEFIRE 770) #moonkin
SpellAddTargetDebuff(FAERIEFIRE FAERIEFIRE=300)
Define(FAERIEFERAL 16857) #bear+cat
SpellAddTargetDebuff(FAERIEFERAL FAERIEFERAL=300)
Define(FEROCIOUSBITE 22568) #cat finish 35-70 mana
SpellInfo(FEROCIOUSBITE combo=-5 mana=70)
Define(FRENZIEDREGENERATION 22842) #bear
Define(LACERATE 33745) #bear bleed*3
Define(MANGLECAT 33876) #cat bleed+debuff
SpellInfo(MANGLECAT combo=1)
SpellAddTargetDebuff(MANGLECAT MANGLECAT=12)
Define(MANGLEBEAR 33878) #bear bleed+debuff
Define(MAUL 6807) #bear
Define(PULVERIZE 80313) #bear after lacerate*3
Define(RAKE 1822) #cat bleed
SpellInfo(RAKE combo=1)
SpellAddTargetDebuff(RAKE RAKE=9)
Define(RAVAGE 6785) #cat behind+(prowling or stampede)
SpellInfo(RAVAGE combo=1)
SpellAddBuff(RAVAGE STAMPEDE=0)
Define(RIP 1079) #cat bleed
SpellInfo(RIP combo=-5 duration=16 resetcounter=ripshreds)
SpellInfo(RIP glyph=GLYPHOFSHRED addduration=6)
SpellAddTargetDebuff(RIP RIP=16)
Define(SAVAGEROAR 52610) #cat damage buff
SpellInfo(SAVAGEROAR combo=-5)
SpellAddBuff(SAVAGEROAR SAVAGEROAR=14)
Define(SHRED 5221) #cat behind
SpellInfo(SHRED combo=1 inccounter=ripshreds)
Define(SURVIVALINSTINCTS 61336) #cat+bear surv cd
Define(SWIPEBEAR 779) #bear aoe
SpellInfo(SWIPEBEAR cd=6)
Define(SWIPECAT 62078) #cat aoe
Define(TRASH 77758) #bear aoe bleed
Define(TIGERSFURY 5217) #cat buff
SpellInfo(TIGERSFURY cd=30)
#Glyphs
Define(GLYPHOFSHRED 54815)
Define(GLYPHOFRIP 54818)
Define(GLYPHOFBERSERK 62969)
#Buff
Define(CLEARCASTING 16870)
Define(STAMPEDE 81022)
AddCheckBox(adds "Swipe on Cooldown" default)
AddCheckBox(cooldowns "Show Cooldown Boxes" default)
AddCheckBox(cooldowns2 "Show More Cooldown Boxes" default)
AddCheckBox(clip "Clip Rip" default)
AddCheckBox(lucioles SpellName(FAERIEFIRE) default)
AddCheckBox(mangle SpellName(MANGLECAT) default mastery=2)
AddCheckBox(demo SpellName(DEMOROAR) default mastery=2)
AddCheckBox(berserk SpellName(BERSERK) default mastery=2)
ScoreSpells(FAERIEFERAL DEMOROAR MANGLEBEAR LACERATE SAVAGEROAR RIP
MANGLECAT RAKE SHRED FEROCIOUSBITE PULVERIZE MAUL)
AddIcon help=cd size=small mastery=2 { # TF Icon or Barkskin for Bear
if Stance(3) {Spell(TIGERSFURY)}
if Stance(1) {Spell(BARKSKIN)}
}
AddIcon help=cd size=small mastery=2 { # Berserk Icon
if Stance(3) or Stance(1) {
Spell(BERSERK)
}
}
AddIcon help=main mastery=2 {
if Stance(1) { #bear
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 2) {
Spell(FAERIEFERAL)
}
if 2s before Spell(MANGLEBEAR) {
Spell(MANGLEBEAR)
}
if CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 2) {
Spell(DEMOROAR)
}
unless TargetDebuffPresent(LACERATE stacks=1 mine=1) {
Spell(LACERATE)
}
if CheckBoxOn(adds) and 0s before Spell(SWIPEBEAR) {
Spell(SWIPEBEAR)
}
if TargetDebuffPresent(LACERATE stacks=3) unless 3s before Spell(MANGLEBEAR) {
Spell(PULVERIZE)
}
if Mana(more 10) and TargetDebuffExpires(LACERATE 4 stacks=3) {
Spell(LACERATE)
}
if Mana(more 15) {
Spell(LACERATE)
}
if Mana(less 15) {
Spell(FAERIEFERAL)
}
}
if Stance(3) { # cat
unless BuffPresent(BERSERK) or BuffPresent(CLEARCASTING) {
if Mana(less 36) Spell(TIGERSFURY)
}
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 1) and TargetDeadIn(more 15) {
Spell(FAERIEFERAL)
}
if TargetDebuffExpires(bleed 1) and CheckBoxOn(mangle) {
Spell(MANGLECAT)
}
# Ravage Code - this is the catch all
if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 3) {
Spell(RAVAGE)
}
# Berserk Code - having trouble getting the Glyph to be recognized
if CheckBoxOn(berserk) and Mana(more 69) and Mana(less 96) {
if Glyph(GLYPHOFBERSERK) {
unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
# Two conditions for FB during Blood of the Water phase
if ComboPoints(more 0) and TargetDebuffExpires(RIP 2 mine=1) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
# Add in FB code for end of fight - only do this is Rip buff is present
if ComboPoints(more 4) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
#Extends Rip with shred if glyph
if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3) {
Spell(SHRED)
}
# Burn combo points on FB if the target is about to die - on a boss fight this is redundant with BotW phase
if ComboPoints(more 4) and TargetDeadIn(less 7) {
Spell(FEROCIOUSBITE)
}
# Time to recast Rip - optional clip
if ComboPoints(more 4) and TargetDeadIn(more 6) {
if CheckBoxOn(clip) and TargetDebuffExpires(RIP 1.9 mine=1) Spell(RIP)
if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
}
# Cast FB is SR and Rip both have 8+ seconds left - with no restrictions on Berserk
if ComboPoints(more 4) and TargetDebuffPresent(RIP 8 mine=1) and BuffPresent(SAVAGEROAR 8) {
Spell(FEROCIOUSBITE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 15) {
Spell(RAKE)
}
# Savage Roar code - both when it is down and the desync code for Rip and Roar
if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) and TargetDebuffPresent(RIP 6 mine=1) {
Spell(SAVAGEROAR)
}
if ComboPoints(more 2) and BuffExpires(SAVAGEROAR 6) and less than 6s between BuffExpires(SAVAGEROAR) and TargetDebuffExpires(RIP mine=1 forceduration=22) {
unless TargetDebuffExpires(RIP 6 mine=1) Spell(SAVAGEROAR)
}
if BuffPresent(STAMPEDE) and BuffPresent(TIGERSFURY) {
unless BuffPresent(CLEARCASTING) Spell(RAVAGE)
}
# Conditions for Shreding now that everything else is taken into account
if Mana(more 69) Spell(SHRED)
if BuffPresent(CLEARCASTING) or TargetDeadIn(less 10) or BuffPresent(BERSERK)
Spell(SHRED)
if ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1) Spell(SHRED)
if ComboPoints(less 1) and BuffExpires(SAVAGEROAR 2) Spell(SHRED)
if { 3s before Spell(TIGERSFURY) } Spell(SHRED)
}
}
# Main Rotation (no filler shreds, otherwise copy of other rotation)
AddIcon help=main mastery=2
{
if Stance(1) {
if Mana (more 70) {
Spell(MAUL )
}
}
if Stance(3) { # cat
unless BuffPresent(BERSERK) or BuffPresent(CLEARCASTING) {
if Mana(less 36) Spell(TIGERSFURY)
}
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 1) and TargetDeadIn(more 15) {
Spell(FAERIEFERAL)
}
if TargetDebuffExpires(bleed 1) and CheckBoxOn(mangle) {
Spell(MANGLECAT)
}
# Ravage Code - this is the catch all
if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 3) {
Spell(RAVAGE)
}
# Berserk Code - having trouble getting the Glyph to be recognized
if CheckBoxOn(berserk) and Mana(more 69) and Mana(less 96) {
if Glyph(GLYPHOFBERSERK) {
unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
# Two conditions for FB during Blood of the Water phase
if ComboPoints(more 0) and TargetDebuffExpires(RIP 2 mine=1) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
# Add in FB code for end of fight - only do this is Rip buff is present
if ComboPoints(more 4) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
#Extends Rip with shred if glyph
if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3) {
Spell(SHRED)
}
# Burn combo points on FB if the target is about to die - on a boss fight this is redundant with BotW phase
if ComboPoints(more 4) and TargetDeadIn(less 7) {
Spell(FEROCIOUSBITE)
}
# Time to recast Rip - optional clip
if ComboPoints(more 4) and TargetDeadIn(more 6) {
if CheckBoxOn(clip) and TargetDebuffExpires(RIP 1.9 mine=1) Spell(RIP)
if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
}
# Cast FB is SR and Rip both have 8+ seconds left - with no restrictions on Berserk
if ComboPoints(more 4) and TargetDebuffPresent(RIP 8 mine=1) and BuffPresent(SAVAGEROAR 8) {
Spell(FEROCIOUSBITE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 15) {
Spell(RAKE)
}
# Savage Roar code - both when it is down and the desync code for Rip and Roar
if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) and TargetDebuffPresent(RIP 6 mine=1) {
Spell(SAVAGEROAR)
}
if ComboPoints(more 2) and BuffExpires(SAVAGEROAR 6) and less than 6s between BuffExpires(SAVAGEROAR) and TargetDebuffExpires(RIP mine=1 forceduration=22) {
unless TargetDebuffExpires(RIP 6 mine=1) Spell(SAVAGEROAR)
}
if BuffPresent(STAMPEDE) and BuffPresent(TIGERSFURY) {
unless BuffPresent(CLEARCASTING) Spell(RAVAGE)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rake/Manglebear Icon
if CheckBoxOn(cooldowns) {
if Stance(3) {
if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
}
if Stance(1) {
Spell(MANGLEBEAR)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rip/Swipebear Icon
if CheckBoxOn(cooldowns) {
if Stance(3) {
if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
}
if Stance(1) {
Spell(SWIPEBEAR)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rake/Manglebear Icon
if CheckBoxOn(cooldowns2) {
if Stance(3) {
if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rip/Swipebear Icon
if CheckBoxOn(cooldowns2) {
if Stance(3) {
if TargetDebuffExpires(MANGLECAT 0 mine=1) Spell(MANGLECAT)
}
}
}
AddIcon help=cd
{
if Stance(3) or Stance(1) {
Item(Trinket0Slot usable=1)
}
}AddIcon help=cd
{
if Stance(3) or Stance(1) {
Item(Trinket1Slot usable=1)
}
}
Code: Select all
# Ovale Optimized Script Leafkiller 1.0.4
# Bear code from tbot
# Started with the Ovale default druid script, this includes significant work from Alaron and goes back to the work of Fatalsaints
# Script source: http://fluiddruid.net/forum/viewtopic.php?f=3&t=33
# Ovale source: http://wow.curse.com/downloads/wow-addons/details/ovale.aspx
# Initial optimized version based on Sim work from Alaron with some modifications from Leafkiller
# Revision History (post 1.0)
# 1.0.4 - 10/19/2010
# Change Berserk max energy to 96 (from 91)
# Add to small boxes to the right for cat to show Rake and Rip cooldowns and mangle/swipe for bears
# Change name for swipe switch to "Swipe on cooldown"
# 1.0.3 - 10/18/2010
# Fix bad "{" I put in with the bear code
# Fix Ripshred code that is now showing up with the new Ovale (it didn't show up before)
# 1.0.2 - 10/17/2010 - Included tbot's bear code
# Moved Demo Roar higher in the script so it will actually be called
# 1.0.1 - Changes based on Sim results
# FF refresh at 1 second (down from 2)
# Rake clip set to 2.9 rather than 2 - this could be a dps increase per the simulator
# Ravage code included - fires during TF or when 3 seconds left before Stampede falls off (to make sure we don't miss it)
# Berserk code included
Define(BARKSKIN 22812)
Define(BERSERK 50334) #cat+bear cd buff
SpellInfo(BERSERK cd=180)
Define(DEMOROAR 99) #bear
SpellAddTargetDebuff(DEMOROAR DEMOROAR=30)
Define(ENRAGE 5229) #bear
Define(FAERIEFIRE 770) #moonkin
SpellAddTargetDebuff(FAERIEFIRE FAERIEFIRE=300)
Define(FAERIEFERAL 16857) #bear+cat
SpellAddTargetDebuff(FAERIEFERAL FAERIEFERAL=300)
Define(FEROCIOUSBITE 22568) #cat finish 35-70 mana
SpellInfo(FEROCIOUSBITE combo=-5 mana=70)
Define(FRENZIEDREGENERATION 22842) #bear
Define(LACERATE 33745) #bear bleed*3
Define(MANGLECAT 33876) #cat bleed+debuff
SpellInfo(MANGLECAT combo=1)
SpellAddTargetDebuff(MANGLECAT MANGLECAT=12)
Define(MANGLEBEAR 33878) #bear bleed+debuff
Define(MAUL 6807) #bear
Define(PULVERIZE 80313) #bear after lacerate*3
Define(RAKE 1822) #cat bleed
SpellInfo(RAKE combo=1)
SpellAddTargetDebuff(RAKE RAKE=9)
Define(RAVAGE 6785) #cat behind+(prowling or stampede)
SpellInfo(RAVAGE combo=1)
SpellAddBuff(RAVAGE STAMPEDE=0)
Define(RIP 1079) #cat bleed
SpellInfo(RIP combo=-5 duration=16 resetcounter=ripshreds)
SpellInfo(RIP glyph=GLYPHOFSHRED addduration=6)
SpellAddTargetDebuff(RIP RIP=16)
Define(SAVAGEROAR 52610) #cat damage buff
SpellInfo(SAVAGEROAR combo=-5)
SpellAddBuff(SAVAGEROAR SAVAGEROAR=14)
Define(SHRED 5221) #cat behind
SpellInfo(SHRED combo=1 inccounter=ripshreds)
Define(SURVIVALINSTINCTS 61336) #cat+bear surv cd
Define(SWIPEBEAR 779) #bear aoe
SpellInfo(SWIPEBEAR cd=6)
Define(SWIPECAT 62078) #cat aoe
Define(TRASH 77758) #bear aoe bleed
Define(TIGERSFURY 5217) #cat buff
SpellInfo(TIGERSFURY cd=30)
#Glyphs
Define(GLYPHOFSHRED 54815)
Define(GLYPHOFRIP 54818)
Define(GLYPHOFBERSERK 62969)
#Buff
Define(CLEARCASTING 16870)
Define(STAMPEDE 81022)
AddCheckBox(adds "Swipe on Cooldown" default)
AddCheckBox(cooldowns "Show Cooldown Boxes" default)
AddCheckBox(lucioles SpellName(FAERIEFIRE) default)
AddCheckBox(mangle SpellName(MANGLECAT) default mastery=2)
AddCheckBox(demo SpellName(DEMOROAR) default mastery=2)
AddCheckBox(berserk SpellName(BERSERK) default mastery=2)
ScoreSpells(FAERIEFERAL DEMOROAR MANGLEBEAR LACERATE SAVAGEROAR RIP
MANGLECAT RAKE SHRED FEROCIOUSBITE PULVERIZE MAUL)
AddIcon help=cd size=small mastery=2 { # TF Icon or Barkskin for Bear
if Stance(3) {Spell(TIGERSFURY)}
if Stance(1) {Spell(BARKSKIN)}
}
AddIcon help=cd size=small mastery=2 { # Berserk Icon
if Stance(3) or Stance(1) {
Spell(BERSERK)
}
}
AddIcon help=main mastery=2 {
if Stance(1) { #bear
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 2) {
Spell(FAERIEFERAL)
}
if 2s before Spell(MANGLEBEAR) {
Spell(MANGLEBEAR)
}
if CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 2) {
Spell(DEMOROAR)
}
unless TargetDebuffPresent(LACERATE stacks=1 mine=1) {
Spell(LACERATE)
}
if CheckBoxOn(adds) and 0s before Spell(SWIPEBEAR) {
Spell(SWIPEBEAR)
}
if TargetDebuffPresent(LACERATE stacks=3) unless 3s before Spell(MANGLEBEAR) {
Spell(PULVERIZE)
}
if Mana(more 10) and TargetDebuffExpires(LACERATE 4 stacks=3) {
Spell(LACERATE)
}
if Mana(more 15) {
Spell(LACERATE)
}
if Mana(less 15) {
Spell(FAERIEFERAL)
}
}
if Stance(3) { # cat
unless BuffPresent(BERSERK) or BuffPresent(CLEARCASTING) {
if Mana(less 36) Spell(TIGERSFURY)
}
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 1) and TargetDeadIn(more 15) {
Spell(FAERIEFERAL)
}
if TargetDebuffExpires(bleed 1) and CheckBoxOn(mangle) {
Spell(MANGLECAT)
}
# Ravage Code - this is the catch all
if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 3) {
Spell(RAVAGE)
}
# Berserk Code - having trouble getting the Glyph to be recognized
if CheckBoxOn(berserk) and Mana(more 69) and Mana(less 96) {
if Glyph(GLYPHOFBERSERK) {
unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
# Two conditions for FB during Blood of the Water phase
if ComboPoints(more 0) and TargetDebuffExpires(RIP 2 mine=1) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
# Add in FB code for end of fight - only do this is Rip buff is present
if ComboPoints(more 4) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
#Extends Rip with shred if glyph
if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3) {
Spell(SHRED)
}
# Burn combo points on FB if the target is about to die - on a boss fight this is redundant with BotW phase
if ComboPoints(more 4) and TargetDeadIn(less 7) {
Spell(FEROCIOUSBITE)
}
# Time to recast Rip - not clipping right now
if ComboPoints(more 4) and TargetDeadIn(more 6) and TargetDebuffExpires(RIP 0 mine=1) {
Spell(RIP) # not checking for OOC is a 7dps loss in my sim - opting for an easier rotation
}
# Cast FB is SR and Rip both have 8+ seconds left - with no restrictions on Berserk
if ComboPoints(more 4) and TargetDebuffPresent(RIP 8 mine=1) and BuffPresent(SAVAGEROAR 8) {
Spell(FEROCIOUSBITE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 15) {
Spell(RAKE)
}
# Savage Roar code - both when it is down and the desync code for Rip and Roar
if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) and TargetDebuffPresent(RIP 6 mine=1) {
Spell(SAVAGEROAR)
}
if ComboPoints(more 2) and BuffExpires(SAVAGEROAR 6) and less than 6s between BuffExpires(SAVAGEROAR) and TargetDebuffExpires(RIP mine=1 forceduration=22) {
unless TargetDebuffExpires(RIP 6 mine=1) Spell(SAVAGEROAR)
}
if BuffPresent(STAMPEDE) and BuffPresent(TIGERSFURY) {
unless BuffPresent(CLEARCASTING) Spell(RAVAGE)
}
# Conditions for Shreding now that everything else is taken into account
if Mana(more 69) Spell(SHRED)
if BuffPresent(CLEARCASTING) or TargetDeadIn(less 10) or BuffPresent(BERSERK)
Spell(SHRED)
if ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1) Spell(SHRED)
if ComboPoints(less 1) and BuffExpires(SAVAGEROAR 2) Spell(SHRED)
if { 3s before Spell(TIGERSFURY) } Spell(SHRED)
}
}
# Main Rotation (no filler shreds, otherwise copy of other rotation)
AddIcon help=main mastery=2
{
if Stance(1) {
if Mana (more 70) {
Spell(Maul)
}
}
if Stance(3) { # cat
unless BuffPresent(BERSERK) or BuffPresent(CLEARCASTING) {
if Mana(less 36) Spell(TIGERSFURY)
}
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 1) and TargetDeadIn(more 15) {
Spell(FAERIEFERAL)
}
if TargetDebuffExpires(bleed 1) and CheckBoxOn(mangle) {
Spell(MANGLECAT)
}
# Ravage Code - this is the catch all
if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 3) {
Spell(RAVAGE)
}
# Berserk Code - having trouble getting the Glyph to be recognized
if CheckBoxOn(berserk) and Mana(more 69) and Mana(less 96) {
if Glyph(GLYPHOFBERSERK) {
unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
# Two conditions for FB during Blood of the Water phase
if ComboPoints(more 4) and TargetDeadIn(more 6) and TargetDebuffExpires(RIP 1.9 mine=1) {
Spell(FEROCIOUSBITE)
}
# Add in FB code for end of fight - only do this is Rip buff is present
if ComboPoints(more 4) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
# Burn combo points on FB if the target is about to die - on a boss fight this is redundant with BotW phase
if ComboPoints(more 4) and TargetDeadIn(less 7) {
Spell(FEROCIOUSBITE)
}
# Time to recast Rip - not clipping right now
if ComboPoints(more 4) and TargetDeadIn(more 6) and TargetDebuffExpires(RIP 0 mine=1) {
Spell(RIP) # not checking for OOC is a 7dps loss in my sim - opting for an easier rotation
}
# Cast FB is SR and Rip both have 8+ seconds left - with no restrictions on Berserk
if ComboPoints(more 4) and TargetDebuffPresent(RIP 8 mine=1) and BuffPresent(SAVAGEROAR 8) {
Spell(FEROCIOUSBITE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 15) {
Spell(RAKE)
}
# Savage Roar code - both when it is down and the desync code for Rip and Roar
if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) and TargetDebuffPresent(RIP 6 mine=1) {
Spell(SAVAGEROAR)
}
if ComboPoints(more 2) and BuffExpires(SAVAGEROAR 6) and less than 6s between BuffExpires(SAVAGEROAR) and TargetDebuffExpires(RIP mine=1 forceduration=22) {
unless TargetDebuffExpires(RIP 6 mine=1) Spell(SAVAGEROAR)
}
if BuffPresent(STAMPEDE) and BuffPresent(TIGERSFURY) {
unless BuffPresent(CLEARCASTING) Spell(RAVAGE)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rake/Manglebear Icon
if CheckBoxOn(cooldowns) {
if Stance(3) {
if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
}
if Stance(1) {
Spell(MANGLEBEAR)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rip/Swipebear Icon
if CheckBoxOn(cooldowns) {
if Stance(3) {
if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
}
if Stance(1) {
Spell(SWIPEBEAR)
}
}
}
AddIcon help=cd
{
if Stance(3) or Stance(1) {
Item(Trinket0Slot usable=1)
}
}AddIcon help=cd
{
if Stance(3) or Stance(1) {
Item(Trinket1Slot usable=1)
}
}