http://fluiddruid.net/forum/viewtopic.php?f=3&t=381
There is no reason to run the old script or a reason to ask Leaf to discuss it:)
The following script is a continuation of the script that Alaron had created with some contributions I had made to the extra script boxes. The bear portion of the script is from tbot.
The 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).
To use this script, make sure you have the most current version of Ovale, and replace the default script in the Ovale configuration with the one below. Under the "Apparence" tab, make sure to select "Numeric display" and also "Hide empty buttons"
======================
Version 1.3.2 - put the ripshred spellinfo back in.
Version 1.3.1 - Fixes to Berserk and removal of spellinfo stuff that apparently is not needed and causes problems.
Version 1.2.6.2 - Add flag that allows disabling the t11 autochecking. Turn the flag on for the t11 code to work. Added two additional configurable cooldown boxes to the right side of the display.
Version 1.2.6 - Check for 2 points in BiTW for refreshing Rip with FB below 25%
Version 1.2.5.1 - Changed the Berserk logic to account for TF vs. non-TF casting (lower energy levels outside of TF)
Version 1.2.4 - Add in support for cooldown tracking of unheeded warning - also add in tracking of heroic Essence of the Cyclone. Put the demo roar checkbox back in - on aoe mobs it is annoying to not be able to turn it off.
Version 1.2.2 - Remove the switch to track T11 and use the built-in Ovale ArmorSetParts function to automatically detect the 4 piece bonus. Add in the first attempt to track a non-proc trinket - Unheeded Warning.
Version 1.2.1 - Change the Berserk rotation box to use the polar bear white texture when it should not be cast or is on cooldown (TF and energy are the constraints). Added drop downs to the 2 cooldown boxes on the right so you can select what spell or trinket slot to monitor. Default is none.
Version 1.2 - Removed all of the bear options - bear is single target only and demo roar/thrash are core to the rotation. Move the FC code to the top left button. It shows FC only when you can cast it - in range and off of cooldown. If you are in a "wait" state it shows the stampeding roar texture (which also shows the FC cooldown) and when it is time to run out the dash texture. There are a set of conditions that bound when to show the dash texture and these can be improved. There are only two cooldown boxes on the right side now - one for Rip and one for TF. The others are not as important to see. For bear, the right side boxes show SI and FR which complement the Barkskin shown for bears in the upper left hand box.
Version 1.1.5c - Make the FC cooldown part of the "Show Right Cooldown Boxes" switch. Change the texture displayed when it is time to run out for Feral Charge to "Spell_druid_stampedingroar_cat" so it is different than the
one displayed when you are out of range: "Ability_druid_dash."
Version 1.1.5b - This release has significantly enhanced code for Feral Charge. It will only show FC if it is selected (of course), off of cooldown, and in range to be cast (I have not tested this on a Drake with zero range). If you are in melee range and it is not castable, the normal rotation shows. If you are out of melee range the main rotation box ow shows a "dash" texture to tell you to move. There is a drop down to select the amount of FC travel time (as in running out). If this is set to a nonzero number and FC is selected (and some other spell constraints are met) it will flash the 'dash" texture to tell you to run out. As soon as you are in FC range and FC is off of cooldown, the icon changes to FC. I also added a cooldown tracking box for FC - so there are now 5 small boxes to the right side.
Version 1.1.5 - for use in 4.06. Removed FB from the rotation prior to 25% and also remove the SR desync code. Both simplify the rotation and end up as a net dps up.
Version 1.1.4 - Consider this the first version for 4.06, although the change is applicable to both 4.03 and 4.06. In this version I have added an option to call for Feral Charge whenever it is off of cooldown. This is prioritized ahead of everything else in the rotation. There are fights (such as Valiona/Theralion) where you can Feral Charge while in melee range. Doing so is a huge dps up.
Version 1.1.3a - removed swipe from level 80 rotation on the "adds" option. Fixed bug with Pulverize using wrong spellid for the buff.
Version 1.1.3 - Revamped bear code (level 85 ready) from tbot with feedback from Timbermaw and Astrylian on the rotation. Bear code includes Thrash and also an AOE option. Use level check for FB in place of checkbox. Slight adjustment to limits on when to FB.
Version 1.1.2 - Added code to Clip Rake if it has less than 9 seconds left and TF is up. Also, do not pool energy if
TF is up. Both of thse changes are based on sim work from Mihir. Also removed the option to disable clips on Rip - it should always be attempted.
Version 1.1.1 - Added code to FB more often during Berserk - small dps up - mostly it feels right to not just keep spamming shred. As a side note - this script does work for both level 80 and 85. Just make sure to adjust the FB setting to low if you are 85.
New version 1.1 - for use at level 85 - Add tier 11 4 piece set bonus code in two places - just before Shred code to stack it up and near the top of the script with a 4 second clip to keep it from falling off. Also put the refresh part into the second box as it is not a filler to refresh (while it is to stack). Also changed the "mangle" buff tracking box to use Panther for tracking with t11. Make sure to use "Few Ferocious Bites" at level 85.
New version 1.0.6 - Cleans up the interface - there is now a checkbox to toggle display for the cooldowns on the left side and a checkbox to toggle display for the cooldowns on the right. The trinket cooldowns (for bears) have been merged into the right cooldown boxes - and can be hidden. The emergency FB for Blood in the Water now looks for 2.1 seconds on Rip due to the bug where Rip drops off (2 dps loss in sim). Also, disabled the Savagee Roar desync code during Blood in the Water phase to preserve combo points (this is dps neutral). Added checkbox for two levels of ferocious bite (taken from Alaron's pre patch script) for later use (predicting at level 85 with lower crit rates we will want to FB less - still needs to be tested and optimized in a sim).
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.
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.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.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.1 with support for Ravage/Stampede and Berserk
The 4.06 scripts have been removed.
======================
Code: Select all
# Ovale Optimized Script Leafkiller 1.3.2
# 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.3.2 04/26/2011
# Put ripshreds code back in - but not other spellinfo params.
# 1.3.1 04/26/2011
# Change the Berserk code for the 4.1 patch (no longer on the GCD). Had to comment out the spellinfo stuff - caused problems.
# 1.2.6.2 03/18/2011
# Add in two extra cooldown boxes and a switch to ignore the t-11 code - did not change the FC code or the cooldown code for t-11 - just the rotations.
# 1.2.6 03/01/2011
# Look for talent points in Blood in the Water for FB refresh code.
# 1.2.5 02/25/2011
# Small optimization of the Berserk code (which wastes energy outside of TF)
# 1.2.4 02/21/2011
# Put demo roar checkbox back in. It is a problem on short lived mobs and packs. Add in support for the heroic Essence of Cyclone.
# 1.2.3 02/13/2011
# Enhance the Unheeded Heeded Warning code to show the internal cooldown after the buff expires.
# 1.2.2 02/12/2011
# Remove the T11 config switch and use ArmorSetParts (built in Ovale function). Add item tracking for Unheeded Warning.
# 1.2.1 02/12/2011
# Change the Berserk code to use a texture (polar bear white) to show its cooldown and when it is contrained by energy or
# TF cooldown. Show the Berserk icon when it is a good time to cast it. Change the cooldown boxes to the right side to be
# dropdowns so you can select which if any spells/trinkets to monitor there.
# 1.2 - 02/11/2011
# Restructure some to better deal with "out of rotation" skills. Removed the bear options - the rotation is only for single
# target now and Demo Roar is included if it is missing from the target. The FC code is now the top left box. It will
# show the Stampedingroar_cat texture during cooldowns, will show the "dash" texture when it is time to run out and will show
# the FC spell if it is off of cooldown and in range to be cast. The Dash texture is still in the rotation section to tell
# when you are out of melee range - but this is separate. Cut down to two cooldown boxes - TF and Rip, SI and FR for bear
# Removed older comments - to keep the file from growing too large.
Define(BARKSKIN 22812)
Define(BERSERK 50334) #cat+bear cd buff
Define(DEMOROAR 99) #bear
Define(ENRAGE 5229) #bear
Define(FAERIEFERAL 16857) #bear+cat
Define(FERALCHARGECAT 49376)
Define(FEROCIOUSBITE 22568) #cat finish 35-70 mana
Define(FRENZIEDREGENERATION 22842) #bear
Define(LACERATE 33745) #bear bleed*3
Define(MANGLECAT 33876) #cat bleed+debuff
Define(MANGLEBEAR 33878) #bear bleed+debuff
Define(MAUL 6807) #bear
Define (PANTHER 90166) #tier 11 4 piece cat
Define(PULVERIZE 80313) #bear after lacerate*3
Define (PULVERIZEBUFF 80951) #buff has a different spellid then the ability
Define(RAKE 1822) #cat bleed
Define(RAVAGE 6785) #cat behind+(prowling or stampede)
Define(RIP 1079) #cat bleed
SpellInfo(RIP resetcounter=ripshreds)
Define(SAVAGEROAR 52610) #cat damage buff
Define(SHRED 5221) #cat behind
SpellInfo(SHRED inccounter=ripshreds)
Define(SURVIVALINSTINCTS 61336) #cat+bear surv cd
Define(SWIPEBEAR 779) #bear aoe
Define(SWIPECAT 62078) #cat aoe
Define(THRASH 77758) #bear aoe bleed
Define(TIGERSFURY 5217) #cat buff
#Trinket Procs
Define(UNHEEDEDWARNING 59520)
Define(HEEDLESSCARNAGE 92108) #Unheeded Warning Proc
Define(ESSENCEOFCYCLONEH 65140) # heroic Esscence of Cyclone
Define(TWISTEDH 92351)
#Glyphs
Define(GLYPHOFSHRED 54815)
Define(GLYPHOFRIP 54818)
Define(GLYPHOFBERSERK 62969)
#Buff
Define(CLEARCASTING 16870)
Define(STAMPEDE 81022)
#Talents
Define(BLOODINTHEWATERTALENT 8341)
AddCheckBox(demo SpellName(DEMOROAR) default mastery=2)
AddCheckBox(berserk SpellName(BERSERK) default mastery=2)
AddCheckBox(cooldownsL "Show Left Rotation Boxes" default mastery=2)
AddCheckBox(cooldownsR "Show Right Cooldown Boxes" default mastery=2)
AddCheckBox(lucioles SpellName(FAERIEFERAL) default mastery=2)
AddCheckBox(mangle SpellName(MANGLECAT) default mastery=2)
AddCheckBox(t11 "Detect t11 set bonus" default mastery=2)
AddListItem(cd0 t0 "Top right - No Cooldown" default mastery=2)
AddListItem(cd0 t1 "Top right - Mangle" mastery=2)
AddListItem(cd0 t2 "Top right - Rake" mastery=2)
AddListItem(cd0 t3 "Top right - Rip" mastery=2)
AddListItem(cd0 t4 "Top right - Savage Roar" mastery=2)
AddListItem(cd0 t5 "Top right - Tiger's Fury" mastery=2)
AddListItem(cd0 t6 "Top right - Trinket 0" mastery=2)
AddListItem(cd0 t7 "Top right - Trinket 1" mastery=2)
AddListItem(cd0 t8 "Top right - Unheeded Warning" mastery=2)
AddListItem(cd0 t9 "Top right - Heroic Essence of Cyclone" mastery=2)
AddListItem(cd1 t0 "Bottom right - No Cooldown" default mastery=2)
AddListItem(cd1 t1 "Bottom right - Mangle" mastery=2)
AddListItem(cd1 t2 "Bottom right - Rake" mastery=2)
AddListItem(cd1 t3 "Bottom right - Rip" mastery=2)
AddListItem(cd1 t4 "Bottom right - Savage Roar" mastery=2)
AddListItem(cd1 t5 "Bottom right - Tiger's Fury" mastery=2)
AddListItem(cd1 t6 "Bottom right - Trinket 0" mastery=2)
AddListItem(cd1 t7 "Bottom right - Trinket 1" mastery=2)
AddListItem(cd1 t8 "Bottom right - Unheeded Warning" mastery=2)
AddListItem(cd1 t9 "Bottom right - Heroic Essence of Cyclone" mastery=2)
AddListItem(cd2 t0 "Top far right - No Cooldown" default mastery=2)
AddListItem(cd2 t1 "Top far right - Mangle" mastery=2)
AddListItem(cd2 t2 "Top far right - Rake" mastery=2)
AddListItem(cd2 t3 "Top far right - Rip" mastery=2)
AddListItem(cd2 t4 "Top far right - Savage Roar" mastery=2)
AddListItem(cd2 t5 "Top far right - Tiger's Fury" mastery=2)
AddListItem(cd2 t6 "Top far right - Trinket 0" mastery=2)
AddListItem(cd2 t7 "Top far right - Trinket 1" mastery=2)
AddListItem(cd2 t8 "Top far right - Unheeded Warning" mastery=2)
AddListItem(cd2 t9 "Top far right - Heroic Essence of Cyclone" mastery=2)
AddListItem(cd3 t0 "Bottom far right - No Cooldown" default mastery=2)
AddListItem(cd3 t1 "Bottom far right - Mangle" mastery=2)
AddListItem(cd3 t2 "Bottom far right - Rake" mastery=2)
AddListItem(cd3 t3 "Bottom far right - Rip" mastery=2)
AddListItem(cd3 t4 "Bottom far right - Savage Roar" mastery=2)
AddListItem(cd3 t5 "Bottom far right - Tiger's Fury" mastery=2)
AddListItem(cd3 t6 "Bottom far right - Trinket 0" mastery=2)
AddListItem(cd3 t7 "Bottom far right - Trinket 1" mastery=2)
AddListItem(cd3 t8 "Bottom far right - Unheeded Warning" mastery=2)
AddListItem(cd3 t9 "Bottom far right - Heroic Essence of Cyclone" 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 CheckBoxOn(cooldownsL) {
if Stance(3) {
# off of cooldown and in range
if TargetInRange(FERALCHARGECAT)
Spell(FERALCHARGECAT)
# FC Runaway code
unless BuffPresent(TIGERSFURY) or BuffPresent(BERSERK) or Mana(more 69) or BuffPresent(CLEARCASTING) {
unless ArmorSetParts(T11 more 3) and BuffExpires(PANTHER 4) {
if 2s before Spell(FERALCHARGECAT) {
unless TargetDebuffExpires(RAKE 5.9 mine=1) or TargetInRange(FERALCHARGECAT)
Texture(Ability_druid_dash)
}
}
}
# default - shows cooldown
if 0s before Spell(FERALCHARGECAT)
Texture(Spell_nature_timestop) # default - FC is off of cooldown other conditons not met
}
if Stance(1) {Spell(BARKSKIN)}
}
}
AddIcon help=cd size=small mastery=2 { # Berserk Icon
if CheckBoxOn(cooldownsL) {
if Stance(1) {
Spell(BERSERK)
}
if Stance(3) {
if BuffPresent(TIGERSFURY) Spell(BERSERK)
unless BuffPresent(TIGERSFURY) {
if Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
if 0s before Spell(BERSERK) Texture(Ability_mount_polarbear_white)
}
}
}
AddIcon help=main mastery=2 {
if Stance(1) { #bear
if CheckBoxOn(lucioles) and CheckBoxOff(aoe) and TargetDebuffExpires(lowerarmor 2 stacks=3) {
Spell(FAERIEFERAL)
}
if 1s before Spell(MANGLEBEAR) {
Spell(MANGLEBEAR priority=4)
}
if CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 4) {
Spell(DEMOROAR)
}
unless TargetDebuffPresent(LACERATE stacks=1 mine=1) {
Spell(LACERATE)
}
if 0s before Spell(THRASH) {
Spell(THRASH)
}
if TargetDebuffPresent(LACERATE stacks=3) and BuffExpires(PULVERIZEBUFF 1) {
Spell(PULVERIZE)
}
unless TargetDebuffPresent(LACERATE stacks=3) {
Spell(LACERATE)
}
if 0s before Spell(FAERIEFERAL) {
Spell(FAERIEFERAL)
}
Spell(LACERATE)
}
if Stance(3) { # cat
unless BuffPresent(BERSERK) or BuffPresent(CLEARCASTING) {
if Mana(less 36) Spell(TIGERSFURY)
}
unless TargetInRange(MANGLECAT) {
Texture(ability_druid_catformattack)
}
#refresh PANTHER (T11)
if ArmorSetParts(T11 more 3) and BuffPresent(PANTHER) and CheckBoxOn(t11) {
if BuffExpires(PANTHER 4) Spell(MANGLECAT)
}
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
if CheckBoxOn(berserk) {
if BuffPresent(TIGERSFURY) Spell(BERSERK)
unless BuffPresent(TIGERSFURY) {
if Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
}
# Two conditions for FB during Blood of the Water phase
# Add in FB code for end of fight - only do this is Rip buff is present
if TalentPoints(BLOODINTHEWATERTALENT more 1) and ComboPoints(more 0) and TargetDebuffExpires(RIP 2.1 mine=1) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
if TalentPoints(BLOODINTHEWATERTALENT more 1) and 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 - clip if possible
if ComboPoints(more 4) and TargetDeadIn(more 6) {
if TargetDebuffExpires(RIP 1.9 mine=1) Spell(RIP)
}
# clip Rake early if TF is up and rake ramining is less than 9 seconds
if TargetDebuffExpires(RAKE 8.9 mine=1) and TargetDeadIn(more 8) and BuffPresent(TIGERSFURY) {
Spell(RAKE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 8.4) {
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 BuffPresent(STAMPEDE) and BuffPresent(TIGERSFURY) {
unless BuffPresent(CLEARCASTING) Spell(RAVAGE)
}
#stack up PANTHER (T11)
if ArmorSetParts(T11 more 3) and CheckBoxOn(t11) {
unless BuffPresent(PANTHER stacks=3) Spell(MANGLECAT)
}
# 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) or BuffPresent(TIGERSFURY)
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)
}
#refresh PANTHER (T11)
if ArmorSetParts(T11 more 3) and BuffPresent(PANTHER) and CheckBoxOn(t11) {
if BuffExpires(PANTHER 4) Spell(MANGLECAT)
}
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
if CheckBoxOn(berserk) {
if BuffPresent(TIGERSFURY) Spell(BERSERK)
unless BuffPresent(TIGERSFURY) {
if Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
}
# Two conditions for FB during Blood of the Water phase
# Add in FB code for end of fight - only do this is Rip buff is present
if TalentPoints(BLOODINTHEWATERTALENT more 1) and ComboPoints(more 0) and TargetDebuffExpires(RIP 2.1 mine=1) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
if TalentPoints(BLOODINTHEWATERTALENT more 1) and 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 - clip if possible
if ComboPoints(more 4) and TargetDeadIn(more 6) {
if TargetDebuffExpires(RIP 1.9 mine=1) Spell(RIP)
}
# clip Rake early if TF is up and rake ramining is less than 9 seconds
if TargetDebuffExpires(RAKE 8.9 mine=1) and TargetDeadIn(more 8.4) and BuffPresent(TIGERSFURY) {
Spell(RAKE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 8.4) {
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 BuffPresent(STAMPEDE) and BuffPresent(TIGERSFURY) {
unless BuffPresent(CLEARCASTING) Spell(RAVAGE)
}
#stack up PANTHER (T11)
if ArmorSetParts(T11 more 3) and CheckBoxOn(t11) {
unless BuffPresent(PANTHER stacks=3) Spell(MANGLECAT)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rake/Manglebear Icon
if CheckBoxOn(cooldownsR) {
if Stance(3) {
if List(cd0 t1) {
if ArmorSetParts(T11 more 3) {
if BuffExpires(PANTHER 0) Spell(MANGLECAT)
}
unless ArmorSetParts(T11 more 3) {
if TargetDebuffExpires(bleed 0) Spell(MANGLECAT)
}
}
if List(cd0 t2) if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
if List(cd0 t3) if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
if List(cd0 t4) if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
if List(cd0 t5) Spell(TIGERSFURY)
if List(cd0 t6) Item(Trinket0Slot usable=1)
if List(cd0 t7) Item(Trinket1Slot usable=1)
if List(cd0 t8) {
unless BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffGain(HEEDLESSCARNAGE 50) Item(UNHEEDEDWARNING)
}
if BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffExpires(HEEDLESSCARNAGE 0) Texture(Spell_deathknight_butcher)
}
}
if List(cd0 t9) {
unless BuffPresent(TWISTEDH) {
if 0s before BuffGain(TWISTEDH 50) Item(ESSENCEOFCYCLONEH)
}
if BuffPresent(TWISTEDH) {
if 0s before BuffExpires(TWISTEDH 0) Texture(Ability_rogue_dirtydeeds)
}
}
}
if Stance(1) {
Spell(SURVIVALINSTINCTS)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rip/Swipebear Icon
if CheckBoxOn(cooldownsR) {
if Stance(3) {
if List(cd1 t1) {
if ArmorSetParts(T11 more 3) {
if BuffExpires(PANTHER 0) Spell(MANGLECAT)
}
unless ArmorSetParts(T11 more 3) {
if TargetDebuffExpires(bleed 0) Spell(MANGLECAT)
}
}
if List(cd1 t2) if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
if List(cd1 t3) if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
if List(cd1 t4) if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
if List(cd1 t5) Spell(TIGERSFURY)
if List(cd1 t6) Item(Trinket0Slot usable=1)
if List(cd1 t7) Item(Trinket1Slot usable=1)
if List(cd1 t8) {
unless BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffGain(HEEDLESSCARNAGE 50) Item(UNHEEDEDWARNING)
}
if BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffExpires(HEEDLESSCARNAGE 0) Texture(Spell_deathknight_butcher)
}
}
if List(cd1 t9) {
unless BuffPresent(TWISTEDH) {
if 0s before BuffGain(TWISTEDH 50) Item(ESSENCEOFCYCLONEH)
}
if BuffPresent(TWISTEDH) {
if 0s before BuffExpires(TWISTEDH 0) Texture(Ability_rogue_dirtydeeds)
}
}
}
if Stance(1) {
Spell(FRENZIEDREGENERATION)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rake/Manglebear Icon
if CheckBoxOn(cooldownsR) {
if Stance(3) {
if List(cd2 t1) {
if ArmorSetParts(T11 more 3) {
if BuffExpires(PANTHER 0) Spell(MANGLECAT)
}
unless ArmorSetParts(T11 more 3) {
if TargetDebuffExpires(bleed 0) Spell(MANGLECAT)
}
}
if List(cd2 t2) if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
if List(cd2 t3) if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
if List(cd2 t4) if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
if List(cd2 t5) Spell(TIGERSFURY)
if List(cd2 t6) Item(Trinket0Slot usable=1)
if List(cd2 t7) Item(Trinket1Slot usable=1)
if List(cd2 t8) {
unless BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffGain(HEEDLESSCARNAGE 50) Item(UNHEEDEDWARNING)
}
if BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffExpires(HEEDLESSCARNAGE 0) Texture(Spell_deathknight_butcher)
}
}
if List(cd2 t9) {
unless BuffPresent(TWISTEDH) {
if 0s before BuffGain(TWISTEDH 50) Item(ESSENCEOFCYCLONEH)
}
if BuffPresent(TWISTEDH) {
if 0s before BuffExpires(TWISTEDH 0) Texture(Ability_rogue_dirtydeeds)
}
}
}
}
}
AddIcon help=cd size=small mastery=2 { # Rip/Swipebear Icon
if CheckBoxOn(cooldownsR) {
if Stance(3) {
if List(cd3 t1) {
if ArmorSetParts(T11 more 3) {
if BuffExpires(PANTHER 0) Spell(MANGLECAT)
}
unless ArmorSetParts(T11 more 3) {
if TargetDebuffExpires(bleed 0) Spell(MANGLECAT)
}
}
if List(cd3 t2) if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
if List(cd3 t3) if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
if List(cd3 t4) if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
if List(cd3 t5) Spell(TIGERSFURY)
if List(cd3 t6) Item(Trinket0Slot usable=1)
if List(cd3 t7) Item(Trinket1Slot usable=1)
if List(cd3 t8) {
unless BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffGain(HEEDLESSCARNAGE 50) Item(UNHEEDEDWARNING)
}
if BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffExpires(HEEDLESSCARNAGE 0) Texture(Spell_deathknight_butcher)
}
}
if List(cd3 t9) {
unless BuffPresent(TWISTEDH) {
if 0s before BuffGain(TWISTEDH 50) Item(ESSENCEOFCYCLONEH)
}
if BuffPresent(TWISTEDH) {
if 0s before BuffExpires(TWISTEDH 0) Texture(Ability_rogue_dirtydeeds)
}
}
}
}
}