Code:
<?xml version="1.0" encoding="utf-8" ?><DRUID><Ability><Name>Rake</Name><Default>false</Default><SpellID>1822</SpellID><Actions>/startattack</Actions><Lua>local rake, _, _, _, _, _, raketimer = UnitDebuffID(&quot;target&quot;, 1822, &quot;PLAYER&quot;)
if rake ~= nil then
if raketimer - GetTime() &lt; 3 then
return true
end
else
return true
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Rip</Name><Default>false</Default><SpellID>1079</SpellID><Actions></Actions><Lua>local rip, _, _, _, _, _, riptimer = UnitDebuffID(&quot;target&quot;, 1079, &quot;PLAYER&quot;)
local ripCP = GetComboPoints(&quot;player&quot;, &quot;target&quot;)
local riphealth = 100 * UnitHealth(&quot;target&quot;) / UnitHealthMax(&quot;target&quot;)
if rip ~= nil then
if riphealth &gt; 25 then
if ripCP == 5 then
if riptimer - GetTime() &lt; 2 then
return true
end
end
end
else
if ripCP == 5 then
return true
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Shred</Name><Default>false</Default><SpellID>5221</SpellID><Actions>/startattack</Actions><Lua>-- Check for the debuffs.
local hasCatMangle = UnitDebuffID(&quot;target&quot;, 33876)
local hasBearMangle = UnitDebuffID(&quot;target&quot;, 33878)
local hasTrauma = UnitDebuffID(&quot;target&quot;, 46857)
local hasHemorrhage = UnitDebuffID(&quot;target&quot;, 16511)
local CP = GetComboPoints(&quot;player&quot;, &quot;target&quot;)
-- Just check for all buffs, we have no casting time on Shred so no need for a timer check
if hasCatMangle ~= nil or hasBearMangle ~= nil or hasTrauma ~= nil or hasHemorrhage ~= nil then
if PQR_NotBehindTarget() then
return false
else
if CP == 5 then
return false
else
return true
end
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Mangle</Name><Default>false</Default><SpellID>33876</SpellID><Actions>/startattack</Actions><Lua>-- Rogues and Warriors can handle it themselves.
local hasCatMangle, _, _, _, _, _, CatMangleTimer = UnitDebuffID(&quot;target&quot;, 33876)
local hasBearMangle, _, _, _, _, _, BearMangleTimer = UnitDebuffID(&quot;target&quot;, 33878, &quot;PLAYER&quot;)
local hasTrauma = UnitDebuffID(&quot;target&quot;, 46857)
local hasHemorrhage = UnitDebuffID(&quot;target&quot;, 16511)
local CP = GetComboPoints(&quot;player&quot;, &quot;target&quot;)
if PQR_NotBehindTarget() then
if CP == 5 then
return false
else
return true
end
end
-- First, let&apos;s let other people handle their own debuffs
if hasTrauma ~= nil then
return false
elseif hasHemorrhage ~= nil then
return false
elseif hasBearMangle ~= nil then
return false
-- Let us handle it!
elseif hasCatMangle ~= nil or hasBearMangle ~= nil then
-- Check the timer
if CatMangleTimer - GetTime() &lt; 1 then
return true
end
else
return true
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Faerie Fire (Feral)</Name><Default>false</Default><SpellID>16857</SpellID><Actions></Actions><Lua>local FF, _, _, _, _, _, timer = UnitDebuffID(&quot;target&quot;, 91565)
local FFstart, FFduration, FFenabled = GetSpellCooldown(16857)
local FFcooldown = (FFstart + FFduration - GetTime())
if FF == nil then
if FFcooldown &gt; 0 then
return false
else
return true
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Savage Roar</Name><Default>false</Default><SpellID>52610</SpellID><Actions></Actions><Lua>local _,_,_,SavageRoar = UnitBuffID(&quot;player&quot;, 62071)
local srCP = GetComboPoints(&quot;player&quot;, &quot;target&quot;)
local rip, _, _, _, _, _, riptimer = UnitDebuffID(&quot;target&quot;, 1079, &quot;PLAYER&quot;)
if SavageRoar ~= nil then
return false
else
if rip ~= nil then
if srCP &gt;= 1 then
if riptimer - GetTime() &gt;= 5 then
return true
end
end
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Ferocious Bite</Name><Default>false</Default><SpellID>22568</SpellID><Actions></Actions><Lua>local fbrip, _, _, _, _, _, fbtimer = UnitDebuffID(&quot;target&quot;, 1079, &quot;PLAYER&quot;)
local fbCP = GetComboPoints(&quot;player&quot;, &quot;target&quot;)
local fbhealth = 100 * UnitHealth(&quot;target&quot;) / UnitHealthMax(&quot;target&quot;)
local fbenergy = UnitPower(&quot;player&quot;) / UnitPowerMax(&quot;player&quot;) * 100
if fbhealth &lt;= 25 then
if fbrip ~= nil then
if fbCP == 5 then
return true
end
end
else
if fbrip ~= nil then
if fbtimer - GetTime() &gt; 7 and fbenergy &gt;= 60 and fbCP == 5 then
return true
end
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Berserk</Name><Default>false</Default><SpellID>50334</SpellID><Actions></Actions><Lua>local _, _, _, BS = UnitBuffID(&quot;player&quot;, 50334)
local BSstart, BSduration = GetSpellCooldown(50334)
local BScooldown = (BSstart + BSduration - GetTime())
local bsEnergy = UnitPower(&quot;player&quot;) / UnitPowerMax(&quot;player&quot;) * 100
local bsHealth = UnitHealth(&quot;target&quot;) / UnitHealthMax(&quot;target&quot;) * 100
local levelcheck = UnitLevel(&quot;target&quot;)
if levelcheck == -1 or levelcheck &gt;= 80 then
if BScooldown &gt; 0 then
return false
else
if bsHealth &gt; 50 then
return true
end
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Tigers Fury</Name><Default>false</Default><SpellID>5217</SpellID><Actions></Actions><Lua>local _,_,_,TF = UnitBuffID(&quot;player&quot;, 5217)
local TFstart, TFduration = GetSpellCooldown(5217)
local TFcooldown = (TFstart + TFduration - GetTime())
local tfEnergy = UnitPower(&quot;player&quot;) / UnitPowerMax(&quot;player&quot;) * 100
if TF ~= nil then
return false
else
if TFcooldown &gt; 0 then
return false
else
if tfEnergy &lt; 40 then
return true
end
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Swipe</Name><Default>false</Default><SpellID>62078</SpellID><Actions></Actions><Lua>local _,_,_,BS = UnitBuffID(&quot;player&quot;, 50334)
local energy = UnitPower(&quot;player&quot;) / UnitPowerMax(&quot;player&quot;) * 100
if BS ~= nil then
if energy &gt;= 22 then
return true
end
else
if energy &gt;= 45 then
return true
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Bear Mangle</Name><Default>false</Default><SpellID>33878</SpellID><Actions>/startattack</Actions><Lua>return true</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Bear Faerie Fire</Name><Default>false</Default><SpellID>16857</SpellID><Actions></Actions><Lua>return true</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Bear Maul</Name><Default>false</Default><SpellID>6807</SpellID><Actions></Actions><Lua>return true</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Lacerate</Name><Default>false</Default><SpellID>33745</SpellID><Actions></Actions><Lua>return true</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Pulverize</Name><Default>false</Default><SpellID>80313</SpellID><Actions></Actions><Lua>local _, _, _, LacerateCount = UnitDebuff(&quot;target&quot;, &quot;Lacerate&quot;)
if LacerateCount ~= nil then
if LacerateCount == 3 then
return true
end
else
return false;
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Thrash</Name><Default>false</Default><SpellID>77758</SpellID><Actions>/startattack</Actions><Lua>return true</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Bear Swipe</Name><Default>false</Default><SpellID>779</SpellID><Actions>/startattack</Actions><Lua>return true</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability></DRUID>
Code:
<?xml version="1.0" encoding="utf-8" ?><ROGUE><Ability><Name>Sinister Strike</Name><Default>false</Default><SpellID>1752</SpellID><Actions></Actions><Lua>local sinisterstrikeCP = GetComboPoints(&quot;player&quot;, &quot;target&quot;)
if sinisterstrikeCP &lt;= 3 then
return true
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>SnD</Name><Default>false</Default><SpellID>5171</SpellID><Actions></Actions><Lua>local sliceanddice, _, _, _, _, _, sliceanddicetimer = UnitBuffID(&quot;player&quot;, 5171)
if sliceanddice ~= nil then
if sliceanddicetimer - GetTime() &lt; 2 then
return true
end
else
return true
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Eviscerate</Name><Default>false</Default><SpellID>2098</SpellID><Actions></Actions><Lua>local eviscerateCP = GetComboPoints(&quot;player&quot;, &quot;target&quot;)
if eviscerateCP == 5 then
return true
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Revealing Strike</Name><Default>false</Default><SpellID>84617</SpellID><Actions></Actions><Lua>local revealingstrike, _, _, _, _, _, revealingstriketimer = UnitDebuffID(&quot;target&quot;, 84617)
if revealingstrike ~= nil then
if revealingstrike - GetTime() &gt; 1 then
return true
end
else
return true
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>Recuperate</Name><Default>false</Default><SpellID>73651</SpellID><Actions></Actions><Lua>local _,_,_,recuperate = UnitBuffID(&quot;player&quot;, 73651)
local recuperateCP = GetComboPoints(&quot;player&quot;, &quot;target&quot;)
local health = UnitHealth(&quot;player&quot;) / UnitHealthMax(&quot;player&quot;) * 100
if recuperate ~= nil then
return false
else
if health &lt; 95 then
if recuperateCP &gt;= 5 then
return true
end
end
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability><Ability><Name>WOTF</Name><Default>false</Default><SpellID>7744</SpellID><Actions></Actions><Lua>local fear, _, _, _, _, _, feartimer = UnitDebuffID(&quot;player&quot;, 5782)
local willoftheforsakencooldown = (willoftheforsakenstart + willoftheforsakenduration - GetTime())
if willoftheforsakencooldown &gt; 0 then
return false
else
if fear ~= nil then
if fear - GetTime() &gt; 1 then
return true
end
else
return true
end</Lua><RecastDelay>0</RecastDelay><SelfCast>False</SelfCast></Ability></ROGUE>