diff --git a/Vect.lua b/Vect.lua index b7440fe..f3654e5 100644 --- a/Vect.lua +++ b/Vect.lua @@ -1,14 +1,13 @@ --TODOS: ---Way to show pet cds on the master -> currently looks impossible ---dr cleanup (PLAYER ENTER WORLD) ---Option to show pet cds on possible master (eg spell lock on all locks) ---interrupts first option (or last or don't care), or better -> rank system v ---3 option -> interrupt, stun, gap closers, strong nukes, the user can select which is first ---mana gem, fap ---support for rows +--Bug: have to check if dr is completed on adding it, also do the same with drs (reassign should update them too, because probably thats the cause for +--the comparer error, onupdate is called null out drs while its comparing) ---Message: ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:20: Cannot find a library instance of "AceGUI-3.0". +--Option to show pet cds on possible master (eg spell lock on all locks) + +--document the db these will be needed: +--silence, gapcloser, defensive, potion, nuke, anticc, cc, stun, disarm, cdreset, shield, uncategorized +--db-> class, type, isPet --"Globals" local aceDB = LibStub("AceDB-3.0"); @@ -52,7 +51,9 @@ Vect.defaults = { xPos = 350, yPos = 350, growOrder = 2, - sortOrder = 5 + sortOrder = 5, + colorframeenabled = true, + colorframesize = 4 }, focus = { enabled = true, @@ -60,7 +61,9 @@ Vect.defaults = { xPos = 380, yPos = 380, growOrder = 2, - sortOrder = 5 + sortOrder = 5, + colorframeenabled = true, + colorframesize = 4 }, targetdr = { enabled = true, @@ -91,6 +94,95 @@ Vect.defaults = { sortOrder = 5, drnumsize = 14, drnumposition = 1 + }, + colors = { + ["gapcloser"] = { + ["a"] = 1, + ["b"] = 0, + ["g"] = 0.8117647058823529, + ["r"] = 1, + }, + ["anticc"] = { + ["a"] = 1, + ["b"] = 0.796078431372549, + ["g"] = 1, + ["r"] = 0, + }, + ["disarm"] = { + ["a"] = 1, + ["b"] = 0.9647058823529412, + ["g"] = 1, + ["r"] = 0, + }, + ["defensive"] = { + ["a"] = 1, + ["b"] = 0.08627450980392157, + ["g"] = 1, + ["r"] = 0.2, + }, + ["nuke"] = { + ["a"] = 1, + ["b"] = 0, + ["g"] = 0, + ["r"] = 1, + }, + ["shield"] = { + ["a"] = 1, + ["b"] = 0.3333333333333333, + ["g"] = 1, + ["r"] = 0.8901960784313725, + }, + ["potion"] = { + ["a"] = 1, + ["b"] = 0.6313725490196078, + ["g"] = 0.7372549019607844, + ["r"] = 1, + }, + ["cdreset"] = { + ["a"] = 1, + ["b"] = 1, + ["g"] = 0, + ["r"] = 0.6274509803921569, + }, + ["silence"] = { + ["a"] = 1, + ["b"] = 1, + ["g"] = 0.03529411764705882, + ["r"] = 0.1882352941176471, + }, + ["stun"] = { + ["a"] = 1, + ["b"] = 1, + ["g"] = 0.07450980392156863, + ["r"] = 0.9137254901960784, + }, + ["uncategorized"] = { + ["a"] = 1, + ["b"] = 1, + ["g"] = 0.9058823529411765, + ["r"] = 0.9607843137254902, + }, + ["cc"] = { + ["a"] = 1, + ["b"] = 0.3686274509803922, + ["g"] = 0.3568627450980392, + ["r"] = 0.3764705882352941, + }, + }, + cdtypesortorder = { + enabled = true, + silence = 1, + gapcloser = 2, + defensive = 3, + potion = 4, + nuke = 5, + anticc = 6, + cc = 7, + stun = 8, + disarm = 9, + cdreset = 10, + shield = 11, + uncategorized = 12 } } } @@ -250,6 +342,7 @@ function Vect:PLAYER_ENTERING_WORLD() end end end + Vect.drs = {} end function Vect:ZONE_CHANGED_NEW_AREA() diff --git a/data/cooldowns.lua b/data/cooldowns.lua index 4418cbc..98f24ae 100644 --- a/data/cooldowns.lua +++ b/data/cooldowns.lua @@ -15,6 +15,8 @@ function Vect:ReassignCds(which) for i = 1, 23 do local frame = Vect.frames[which][i]["frame"]; frame:Hide(); + local colorframe = Vect.frames[which][i]["colorframe"]; + colorframe:Hide(); end --check if frames are unlocked if not db["locked"] then return end; @@ -22,6 +24,8 @@ function Vect:ReassignCds(which) if not db["selfCDRegister"] and self.targets[which] == UnitGUID("player") then return end; --check if we have cooldown for that unit if not self.cds[self.targets[which]] then return end; + --update cds + Vect:UpdateCds(which); --sort them local tmp = Vect:SortCDs(which); --let's fill them up @@ -33,6 +37,15 @@ function Vect:ReassignCds(which) local CoolDown = Vect.frames[which][i]["cooldown"]; CoolDown:SetCooldown(v["currentTime"], v["cd"]); frame:Show(); + if (db[which]["colorframeenabled"]) then + local colorframe = Vect.frames[which][i]["colorframe"]; + --self:Print(v["spellID"] .. " cat: " .. v["spellCategory"]); + colorframe:SetBackdropColor(db["color"][v["spellCategory"]]["r"], + db["color"][v["spellCategory"]]["g"], + db["color"][v["spellCategory"]]["b"], + db["color"][v["spellCategory"]]["a"]); + colorframe:Show(); + end i = i + 1; end end @@ -54,7 +67,7 @@ function Vect:AddCd(srcGUID, spellID) end local spec = Vect.cds[srcGUID]["spec"]; - local cd, reset = Vect.spells[spellID][spec], Vect.spells[spellID][2]; + local cd, reset, spellCategory = Vect.spells[spellID][spec], Vect.spells[spellID][2], Vect.spells[spellID][8]; if specchange and (not cd) then if self.targets["target"] == srcGUID then @@ -77,7 +90,8 @@ function Vect:AddCd(srcGUID, spellID) endTime, cd, spellIcon, - spellID + spellID, + spellCategory } --self:Print(Vect.cds[srcGUID][spellID][1] .. " " .. Vect.cds[srcGUID][spellID][2] .. " " .. Vect.cds[srcGUID][spellID][3]); @@ -146,7 +160,8 @@ function Vect:SortCDs(which) endTime = v[2], cd = v[3], spellIcon = v[4], - spellID = v[5] + spellID = v[5], + spellCategory = v[6] }; --self:Print(v[1] .. v[2] .. v[3] .. v[4] .. v[5]) @@ -157,20 +172,36 @@ function Vect:SortCDs(which) if not tmp then return end; - if db[which]["sortOrder"] == "1" then --["1"] = "Ascending (CD left)", - table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDLeft(a, b) end); - elseif db[which]["sortOrder"] == "2" then --["2"] = "Descending (CD left)", - table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDLeft(a, b) end); - elseif db[which]["sortOrder"] == "3" then --["3"] = "Ascending (CD total)", - table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDTotal(a, b) end); - elseif db[which]["sortOrder"] == "4" then --["4"] = "Descending (CD total)", - table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDTotal(a, b) end); - elseif db[which]["sortOrder"] == "5" then --["5"] = "Recent first", - table.sort(tmp, function(a, b) return Vect:ComparerRecentFirst(a, b) end); - elseif db[which]["sortOrder"] == "6" then --["6"] = "Recent Last", - table.sort(tmp, function(a, b) return Vect:ComparerRecentLast(a, b) end); + if not db["cdtypesortorder"]["enabled"] then + if db[which]["sortOrder"] == "1" then --["1"] = "Ascending (CD left)", + table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDLeft(a, b) end); + elseif db[which]["sortOrder"] == "2" then --["2"] = "Descending (CD left)", + table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDLeft(a, b) end); + elseif db[which]["sortOrder"] == "3" then --["3"] = "Ascending (CD total)", + table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDTotal(a, b) end); + elseif db[which]["sortOrder"] == "4" then --["4"] = "Descending (CD total)", + table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDTotal(a, b) end); + elseif db[which]["sortOrder"] == "5" then --["5"] = "Recent first", + table.sort(tmp, function(a, b) return Vect:ComparerRecentFirst(a, b) end); + elseif db[which]["sortOrder"] == "6" then --["6"] = "Recent Last", + table.sort(tmp, function(a, b) return Vect:ComparerRecentLast(a, b) end); + end --["7"] = "No order" + else + if db[which]["sortOrder"] == "1" then --["1"] = "Ascending (CD left)", + table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDLeftT(a, b) end); + elseif db[which]["sortOrder"] == "2" then --["2"] = "Descending (CD left)", + table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDLeftT(a, b) end); + elseif db[which]["sortOrder"] == "3" then --["3"] = "Ascending (CD total)", + table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDTotalT(a, b) end); + elseif db[which]["sortOrder"] == "4" then --["4"] = "Descending (CD total)", + table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDTotalT(a, b) end); + elseif db[which]["sortOrder"] == "5" then --["5"] = "Recent first", + table.sort(tmp, function(a, b) return Vect:ComparerRecentFirstT(a, b) end); + elseif db[which]["sortOrder"] == "6" then --["6"] = "Recent Last", + table.sort(tmp, function(a, b) return Vect:ComparerRecentLastT(a, b) end); + end --["7"] = "No order" end - --["7"] = "No order" + return tmp; end @@ -191,10 +222,24 @@ function Vect:CreateFrames(which) CoolDown:SetAllPoints() CoolDown:SetCooldown(GetTime(), 50); frame:Hide(); + + local colorframe = CreateFrame("Frame", nil, UIParent, nil); + colorframe:SetFrameStrata("BACKGROUND"); + colorframe:SetWidth(150); + colorframe:SetHeight(150); + colorframe:SetBackdrop({bgFile = "Interface/Tooltips/UI-Tooltip-Background", + --edgeFile = "Interface/Tooltips/UI-Tooltip-Border", + edgeFile = nil, + tile = true, tileSize = 16, edgeSize = 0, + --insets = { left = 4, right = 4, top = 4, bottom = 4 }}); + insets = nil}); + colorframe:Hide(); + Vect.frames[which][i] = {} Vect.frames[which][i]["frame"] = frame; Vect.frames[which][i]["texture"] = text; Vect.frames[which][i]["cooldown"] = CoolDown; + Vect.frames[which][i]["colorframe"] = colorframe; end end @@ -204,6 +249,7 @@ function Vect:MoveTimersStop(which) local y = db[which]["yPos"]; local size = db[which]["size"]; local growOrder = db[which]["growOrder"]; + local cdbacksize = db[which]["colorframesize"]; for i = 1, 23 do local frame = Vect.frames[which][i]["frame"]; @@ -214,15 +260,37 @@ function Vect:MoveTimersStop(which) local text = Vect.frames[which][i]["texture"]; text:SetAllPoints(frame); frame.texture = text; + + local colorframe = Vect.frames[which][i]["colorframe"]; + colorframe:ClearAllPoints(); + colorframe:SetFrameStrata("BACKGROUND"); + colorframe:SetBackdropColor(1, 1, 1, 1); + --set them based on the grow type if growOrder == "1" then --Up frame:SetPoint("BOTTOMLEFT", x, y + ((i - 1) * size)); + + colorframe:SetWidth(size + (2 * cdbacksize)); + colorframe:SetHeight(size); + colorframe:SetPoint("BOTTOMLEFT", x - cdbacksize, y + ((i - 1) * size)); elseif growOrder == "2" then --Right frame:SetPoint("BOTTOMLEFT", x + ((i - 1) * size), y); + + colorframe:SetWidth(size); + colorframe:SetHeight(size + (2 * cdbacksize)); + colorframe:SetPoint("BOTTOMLEFT", x + ((i - 1) * size), y - cdbacksize); elseif growOrder == "3" then --Down frame:SetPoint("BOTTOMLEFT", x, y - ((i - 1) * size)); + + colorframe:SetWidth(size + (2 * cdbacksize)); + colorframe:SetHeight(size); + colorframe:SetPoint("BOTTOMLEFT", x - cdbacksize, (y - ((i - 1) * size))); else --Left frame:SetPoint("BOTTOMLEFT", x - ((i - 1) * size), y); + + colorframe:SetWidth(size); + colorframe:SetHeight(size + (2 * cdbacksize)); + colorframe:SetPoint("BOTTOMLEFT", x - ((i - 1) * size), y - cdbacksize); end local CoolDown = Vect.frames[which][i]["cooldown"]; CoolDown:SetAllPoints(); @@ -231,19 +299,27 @@ function Vect:MoveTimersStop(which) end function Vect:VOnTimerUpdate(which) + if (Vect:UpdateCds(which)) then + --we have to update both, because if somebody is targeted and focused since sorting is + --implemented it triggers only one update, probably it had bugs before too, but got unnoticed + self:ReassignCds("target"); + self:ReassignCds("focus"); + end +end + +function Vect:UpdateCds(which) --check if we have cooldown for that unit if not self.cds[self.targets[which]] then return end local t = GetTime(); + local found = false; --let's check if one of the cooldowns finished for k, v in pairs(self.cds[self.targets[which]]) do if not (k == "spec") then if v[2] <= t then self.cds[self.targets[which]][v[5]] = nil; - --we have to update both, because if somebody is targeted and focused since sorting is - --implemented it triggers only one update, probably it had bugs before too, but got unnoticed - self:ReassignCds("target"); - self:ReassignCds("focus"); + found = true; end end end + return found; end diff --git a/data/options.lua b/data/options.lua index 9ce963b..1bbb8b2 100644 --- a/data/options.lua +++ b/data/options.lua @@ -52,6 +52,8 @@ function Vect:SetPartEnabledOrDisabled(which, enable) for i = 1, 23 do local frame = Vect.frames[which][i]["frame"]; frame:Hide(); + local colorframe = Vect.fremes[which][i]["colorframe"]; + colorframe:Hide(); end else self:ReassignCds(which); @@ -84,6 +86,38 @@ function Vect:setSpecDetectionEnabledorDisabled(enable) --self:ReassignCds(which); end +function Vect:getColorFrameEnabled(which) + local db = Vect.db.profile; + return db[which]["colorframeenabled"]; +end + +function Vect:setColorFrameEnabled(which, enable) + local db = Vect.db.profile; + db[which]["colorframeenabled"] = enable; + --hide all those frames + if not enable then + for i = 1, 23 do + local colorframe = Vect.frames[which][i]["colorframe"]; + colorframe:Hide(); + end + else + self:ReassignCds(which); + end +end + +function Vect:getCDTypeSortingEnable() + local db = Vect.db.profile; + return db["cdtypesortorder"]["enabled"]; +end + +function Vect:setCDTypeSortingEnable(v) + local db = Vect.db.profile; + db["cdtypesortorder"]["enabled"] = v; + + self:ReassignCds("target"); + self:ReassignCds("focus"); +end + --lock function Vect:isLocked() return Vect.db.profile["locked"]; @@ -219,10 +253,27 @@ end function Vect:setDRNumSize(which, size) local db = Vect.db.profile; - db[which]["drnumsize"] = size; + db[which]["size"] = size; Vect:MoveDRTimersStop(which) end +function Vect:getColorFrameSize(which) + local db = Vect.db.profile; + return db[which]["colorframesize"]; +end + +function Vect:setColorFrameSize(which, size) + local db = Vect.db.profile; + db[which]["colorframesize"] = size; + + Vect:MoveTimersStop(which); + Vect:ReassignCds(which); + + if not db["locked"] then + Vect:ShowMovableFrames(); + end +end + --Grow Order function Vect:getGrowOrder(which) local db = Vect.db.profile; @@ -253,6 +304,18 @@ function Vect:setSortOrder(which, v) Vect:ReassignCds(which); end +function Vect:getTypeSortOrder(which) + local db = Vect.db.profile; + return db["cdtypesortorder"][which]; +end + +function Vect:setTypeSortOrder(which, v) + local db = Vect.db.profile; + db["cdtypesortorder"][which] = v; + Vect:ReassignCds("target"); + Vect:ReassignCds("focus"); +end + --Num Position functions function Vect:getDRNumPosition(which) local db = Vect.db.profile; @@ -265,6 +328,34 @@ function Vect:setDRNumPosition(which, v) Vect:MoveDRTimersStop(which); end +--Color options +function Vect:getColor(part) + local db = Vect.db.profile; + + if not db["color"] then db["color"] = {} end + + if not db["color"][part] then + db["color"][part] = {}; + db["color"][part]["r"] = 1; + db["color"][part]["g"] = 0; + db["color"][part]["b"] = 0; + db["color"][part]["a"] = 1; + end + + return db["color"][part]["r"], db["color"][part]["g"], db["color"][part]["b"], db["color"][part]["a"]; +end + +function Vect:setColor(part, r, g, b, a) + local db = Vect.db.profile; + + if not db["color"][part] then db["color"][part] = {} end + + db["color"][part]["r"] = r; + db["color"][part]["g"] = g; + db["color"][part]["b"] = b; + db["color"][part]["a"] = a; +end + --Debug settings function Vect:getDebugLevel() local db = Vect.db.profile; diff --git a/data/optiontable.lua b/data/optiontable.lua index 4cd9706..85d59c6 100644 --- a/data/optiontable.lua +++ b/data/optiontable.lua @@ -29,9 +29,9 @@ function Vect:GetVectOptions() type = "group", name = "DRs", desc = "DR frame's settings.", childGroups = "tab",order = 3, args = Vect:getDROptions(); }, - selfdr = { - type = "group", name = "Self DRs", desc = "Self DR frame's settings.", childGroups = "tab",order = 4, - args = Vect:getSelfDROptions() + coloroptions = { + type = "group", name = "Global", desc = "Global settings.", childGroups = "tab",order = 4, + args = Vect:getGlobalOptions() }, debugoptions = { type = "group", name = "Debug", desc = "Debug settings.", childGroups = "tab", order = 5, @@ -61,7 +61,6 @@ function Vect:getTargetandFocusOptions() set = function(_, v) Vect:setFrameSize("target", v); end - }, targetGrowSelect = { type = "select", style = "dropdown", name = "targetGrow", @@ -94,18 +93,32 @@ function Vect:getTargetandFocusOptions() Vect:setSortOrder("target", v); end }, + targetcolortoggle = { + type = "toggle", name = "Colors", desc = "Enable/Disable showing the target's cooldown's colors.", order = 15, + get = function() return Vect:getColorFrameEnabled("target") end, + set = function(_, v) + Vect:setColorFrameEnabled("target", v); + end + }, + targetcolorrange = { + type = "range", name = "Target's Color size", order = 16, min = 1, max = 30, step = 1, + get = function() return Vect:getColorFrameSize("target") end, + set = function(_, v) + Vect:setColorFrameSize("target", v); + end + }, focusHeader = { - type = "header", name = "Focus's settings", order = 15 + type = "header", name = "Focus's settings", order = 17 }, focustoggle = { - type = "toggle", name = "Focus", desc = "Enable/Disable showing the focus's cooldowns", order = 16, + type = "toggle", name = "Focus", desc = "Enable/Disable showing the focus's cooldowns", order = 18, get = function() return Vect:isPartEnabled("focus") end, set = function(_, v) Vect:SetPartEnabledOrDisabled("focus", v); end }, focusRange = { - type = "range", name = "Focus's size", order = 17, min = 10, max = 150, step = 1, + type = "range", name = "Focus's size", order = 19, min = 10, max = 150, step = 1, get = function() return Vect:getFrameSize("focus") end, set = function(_, v) Vect:setFrameSize("focus", v); @@ -113,7 +126,7 @@ function Vect:getTargetandFocusOptions() }, focusGrowSelect = { type = "select", style = "dropdown", name = "focusGrow", - desc = "Change which way the focus's cooldowns will grow", order = 18, + desc = "Change which way the focus's cooldowns will grow", order = 20, values = { ["1"] = "Up", ["2"] = "Right", @@ -127,7 +140,7 @@ function Vect:getTargetandFocusOptions() }, focusSortSelect = { type = "select", style = "dropdown", name = "focusSortOrder", - desc = "Change the focus's cooldowns's sort order", order = 19, + desc = "Change the focus's cooldowns's sort order", order = 21, values = { ["1"] = "Ascending (CD left)", ["2"] = "Descending (CD left)", @@ -142,16 +155,20 @@ function Vect:getTargetandFocusOptions() Vect:setSortOrder("focus", v); end }, - globalHeader = { - type = "header", name = "Global settings", order = 20 + focuscolortoggle = { + type = "toggle", name = "Colors", desc = "Enable/Disable showing the target's cooldown's colors.", order = 22, + get = function() return Vect:getColorFrameEnabled("focus") end, + set = function(_, v) + Vect:setColorFrameEnabled("focus", v); + end + }, + focuscolorrange = { + type = "range", name = "Focus's Color size", order = 23, min = 1, max = 30, step = 1, + get = function() return Vect:getColorFrameSize("focus") end, + set = function(_, v) + Vect:setColorFrameSize("focus", v); + end }, - specdetectiontoggle = { - type = "toggle", name = "Spec Detection", desc = "Enable/Disable Spec Detection", order = 21, - get = function() return Vect:isSpecDetectionEnabled() end, - set = function(_, v) - Vect:setSpecDetectionEnabledorDisabled(v); - end - } } return args; end @@ -160,7 +177,7 @@ end function Vect:getDROptions() local args = { targetdrHeader = { - type = "header", name = "Target's DR settings", order = 10 + type = "header", name = "Target's settings", order = 10 }, targetdrtoggle = { type = "toggle", name = "Enabled", desc = "Enable/Disable showing the target's DRs.", order = 11, @@ -304,22 +321,18 @@ function Vect:getDROptions() Vect:setDRNumPosition("focusdr", v); end }, - } - return args; -end - ---order 40-50 -function Vect:getSelfDROptions() - local args = { + selfdrHeader = { + type = "header", name = "Self's settings", order = 24 + }, selfdrtoggle = { - type = "toggle", name = "Enabled", desc = "Enable/Disable showing the your DRs.", order = 11, + type = "toggle", name = "Enabled", desc = "Enable/Disable showing the your DRs.", order = 25, get = function() return Vect:isPartEnabled("selfdr") end, set = function(_, v) Vect:SetDRPartEnabledOrDisabled("selfdr", v); end }, selfdrrange = { - type = "range", name = "Self's DRs size", order = 12, min = 10, max = 150, step = 1, + type = "range", name = "Self's DRs size", order = 26, min = 10, max = 150, step = 1, get = function() return Vect:getFrameSize("selfdr") end, set = function(_, v) Vect:setFrameSize("selfdr", v); @@ -327,7 +340,7 @@ function Vect:getSelfDROptions() }, selfdrGrowSelect = { type = "select", style = "dropdown", name = "selfDRGrow", - desc = "Change which way the your DRs will grow", order = 13, + desc = "Change which way the your DRs will grow", order = 27, values = { ["1"] = "Up", ["2"] = "Right", @@ -341,7 +354,7 @@ function Vect:getSelfDROptions() }, selfdrSortSelect = { type = "select", style = "dropdown", name = "selfDRSortOrder", - desc = "Change the your DR's sort order", order = 14, + desc = "Change the your DR's sort order", order = 28, values = { ["1"] = "Ascending (CD left)", ["2"] = "Descending (CD left)", @@ -358,7 +371,7 @@ function Vect:getSelfDROptions() }, selfdrnumsizerange = { type = "range", name = "Number's size", desc = "Your DR's Number's size. Set it to 0 to disable it!", - order = 15, min = 1, max = 30, step = 1, + order = 29, min = 1, max = 30, step = 1, get = function() return Vect:getDRNumSize("selfdr") end, set = function(_, v) Vect:setDRNumSize("selfdr", v); @@ -367,7 +380,7 @@ function Vect:getSelfDROptions() }, selfdrnumposselect = { type = "select", style = "dropdown", name = "selfDRNumPos", - desc = "Change your DR's number's position.", order = 16, + desc = "Change your DR's number's position.", order = 30, values = { ["1"] = "Up", ["2"] = "Right", @@ -384,6 +397,215 @@ function Vect:getSelfDROptions() return args; end +--order 40-50 +function Vect:getGlobalOptions() + local args = { + globalHeader = { + type = "header", name = "Global CD settings", order = 10 + }, + specdetectiontoggle = { + type = "toggle", name = "Spec Detection", desc = "Enable/Disable Spec Detection", order = 11, + get = function() return Vect:isSpecDetectionEnabled() end, + set = function(_, v) + Vect:setSpecDetectionEnabledorDisabled(v); + end + }, + petcdguessingtoggle = { + type = "toggle", name = "Pet CD Guessing", + desc = "Enable/Disable Pet Cd Guessing, this will show pet cds on all possible masters, since there is no reasonable way of determining who's pet it is from combatlog events and GUIDs, this will be really inaccurate if there are 2-3 lock for example.", + order = 12, + get = function() return Vect:isSpecDetectionEnabled() end, + set = function(_, v) + Vect:setSpecDetectionEnabledorDisabled(v); + end + }, + globalcdtypesortHeader = { + type = "header", name = "Global CD Type sorting", order = 13 + }, + cdtypesortordertoggle = { + type = "toggle", name = "Enabled", desc = "Enable/Disable CD Type Sort Order", order = 15, + get = function() return Vect:getCDTypeSortingEnable() end, + set = function(_, v) + Vect:setCDTypeSortingEnable(v); + end + }, + silencerange = { + type = "range", name = "Silence's Type Order", order = 17, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("silence") end, + set = function(_, v) + Vect:setTypeSortOrder("silence", v); + end + }, + gapcloserrange = { + type = "range", name = "Gapcloser's Type Order", order = 18, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("gapcloser") end, + set = function(_, v) + Vect:setTypeSortOrder("gapcloser", v); + end + }, + defensiverange = { + type = "range", name = "Defensive's Type Order", order = 19, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("defensive") end, + set = function(_, v) + Vect:setTypeSortOrder("defensive", v); + end + }, + potionrange = { + type = "range", name = "Potion's Type Order", order = 20, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("potion") end, + set = function(_, v) + Vect:setTypeSortOrder("potion", v); + end + }, + nukerange = { + type = "range", name = "Nuke's Type Order", order = 21, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("nuke") end, + set = function(_, v) + Vect:setTypeSortOrder("nuke", v); + end + }, + anticcrange = { + type = "range", name = "Anticc's Type Order", order = 22, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("anticc") end, + set = function(_, v) + Vect:setTypeSortOrder("anticc", v); + end + }, + ccrange = { + type = "range", name = "Cc's Type Order", order = 23, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("cc") end, + set = function(_, v) + Vect:setTypeSortOrder("cc", v); + end + }, + stunrange = { + type = "range", name = "Stun's Type Order", order = 24, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("stun") end, + set = function(_, v) + Vect:setTypeSortOrder("stun", v); + end + }, + disarmrange = { + type = "range", name = "Disarm's Type Order", order = 25, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("disarm") end, + set = function(_, v) + Vect:setTypeSortOrder("disarm", v); + end + }, + cdresetrange = { + type = "range", name = "Cdreset's Type Order", order = 26, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("cdreset") end, + set = function(_, v) + Vect:setTypeSortOrder("cdreset", v); + end + }, + shieldrange = { + type = "range", name = "shield's Type Order", order = 27, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("shield") end, + set = function(_, v) + Vect:setTypeSortOrder("shield", v); + end + }, + uncategorizedrange = { + type = "range", name = "Uncategorized's Type Order", order = 28, min = 1, max = 15, step = 1, + get = function() return Vect:getTypeSortOrder("uncategorized") end, + set = function(_, v) + Vect:setTypeSortOrder("uncategorized", v); + end + }, + + --50+ + globalcolorHeader = { + type = "header", name = "CD Color settings", order = 51 + }, + silencecolorsel = { + type = "color", name = "Silence's color", hasAlpha = true, order = 52, + get = function() return Vect:getColor("silence") end, + set = function(_, r, g, b, a) + Vect:setColor("silence", r, g, b, a); + end + }, + gapclosercolorsel = { + type = "color", name = "Gapcloser's color", hasAlpha = true, order = 53, + get = function() return Vect:getColor("gapcloser") end, + set = function(_, r, g, b, a) + Vect:setColor("gapcloser", r, g, b, a); + end + }, + defensivecolorsel = { + type = "color", name = "Defensive's color", hasAlpha = true, order = 54, + get = function() return Vect:getColor("defensive") end, + set = function(_, r, g, b, a) + Vect:setColor("defensive", r, g, b, a); + end + }, + potioncolorsel = { + type = "color", name = "Potion's color", hasAlpha = true, order = 55, + get = function() return Vect:getColor("potion") end, + set = function(_, r, g, b, a) + Vect:setColor("potion", r, g, b, a); + end + }, + nukecolorsel = { + type = "color", name = "Nuke's color", hasAlpha = true, order = 56, + get = function() return Vect:getColor("nuke") end, + set = function(_, r, g, b, a) + Vect:setColor("nuke", r, g, b, a); + end + }, + anticccolorsel = { + type = "color", name = "Anticc's color", hasAlpha = true, order = 57, + get = function() return Vect:getColor("anticc") end, + set = function(_, r, g, b, a) + Vect:setColor("anticc", r, g, b, a); + end + }, + cccolorsel = { + type = "color", name = "Cc's color", hasAlpha = true, order = 58, + get = function() return Vect:getColor("cc") end, + set = function(_, r, g, b, a) + Vect:setColor("cc", r, g, b, a); + end + }, + stuncolorsel = { + type = "color", name = "Stun's color", hasAlpha = true, order = 59, + get = function() return Vect:getColor("stun") end, + set = function(_, r, g, b, a) + Vect:setColor("stun", r, g, b, a); + end + }, + disarmcolorsel = { + type = "color", name = "Disarm's color", hasAlpha = true, order = 60, + get = function() return Vect:getColor("disarm") end, + set = function(_, r, g, b, a) + Vect:setColor("disarm", r, g, b, a); + end + }, + cdresetcolorsel = { + type = "color", name = "Cdreset's color", hasAlpha = true, order = 61, + get = function() return Vect:getColor("cdreset") end, + set = function(_, r, g, b, a) + Vect:setColor("cdreset", r, g, b, a); + end + }, + shieldcolorsel = { + type = "color", name = "Shield's color", hasAlpha = true, order = 62, + get = function() return Vect:getColor("shield") end, + set = function(_, r, g, b, a) + Vect:setColor("shield", r, g, b, a); + end + }, + uncategorizedcolorsel = { + type = "color", name = "Uncategorized's color", hasAlpha = true, order = 63, + get = function() return Vect:getColor("uncategorized") end, + set = function(_, r, g, b, a) + Vect:setColor("uncategorized", r, g, b, a); + end + }, + } + return args; +end + --order 50+ function Vect:getDebugOptions() local args = { @@ -429,3 +651,24 @@ function Vect:getDebugOptions() } return args; end + +function Vect:GetTypeSortDropdown(num) + local arr = { + type = "select", style = "dropdown", name = "selfDRSortOrder", + desc = "Change the your DR's sort order", order = 28, + values = { + ["1"] = "Ascending (CD left)", + ["2"] = "Descending (CD left)", + ["3"] = "Ascending (CD total)", + ["4"] = "Descending (CD total)", + ["5"] = "Recent first", + ["6"] = "Recent Last", + ["7"] = "No order" + }, + get = function() return Vect:getSortOrder("selfdr") end, + set = function(_, v) + Vect:setSortOrder("selfdr", v); + end + } + return arr; +end diff --git a/data/sorters.lua b/data/sorters.lua index 0af6866..e1940ea 100644 --- a/data/sorters.lua +++ b/data/sorters.lua @@ -1,13 +1,6 @@ --- table.sort(tmp, function(a, b) if db.growUp then return self:C_RemainingComparer(a, b) else return self:C_ReversalRemainingComparer(a, b) end end) - ---function Aesa:C_RemainingComparer(a, b) --- return b.remaining < a.remaining ---end - --["1"] = "Ascending (CD left)", function Vect:ComparerAscendingCDLeft(a, b) - local time = GetTime(); if a.endTime < b.endTime then return true; else @@ -17,7 +10,6 @@ end --["2"] = "Descending (CD left)", function Vect:ComparerDescendingCDLeft(a, b) - local time = GetTime(); if a.endTime < b.endTime then return false; else @@ -60,3 +52,107 @@ function Vect:ComparerRecentLast(a, b) return false; end end + +--CD Type sorters + +--["1"] = "Ascending (CD left)", +function Vect:ComparerAscendingCDLeftT(a, b) + local db = Vect.db.profile; + + if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then + return true; + elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then + return false + else -- they are == + if a.endTime < b.endTime then + return true; + else + return false; + end + end +end + +--["2"] = "Descending (CD left)", +function Vect:ComparerDescendingCDLeftT(a, b) + local db = Vect.db.profile; + + if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then + return true; + elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then + return false + else -- they are == + if a.endTime < b.endTime then + return false; + else + return true; + end + end +end + +--["3"] = "Ascending (CD total)", +function Vect:ComparerAscendingCDTotalT(a, b) + local db = Vect.db.profile; + + if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then + return true; + elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then + return false + else -- they are == + if a.cd < b.cd then + return true; + else + return false; + end + end +end + +--["4"] = "Descending (CD total)", +function Vect:ComparerDescendingCDTotalT(a, b) + local db = Vect.db.profile; + + if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then + return true; + elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then + return false + else -- they are == + if a.cd < b.cd then + return false; + else + return true; + end + end +end + +--["5"] = "Recent first", +function Vect:ComparerRecentFirstT(a, b) + local db = Vect.db.profile; + + if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then + return true; + elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then + return false + else -- they are == + if a.currentTime < b.currentTime then + return false; + else + return true; + end + end +end + +--["6"] = "Recent Last", +function Vect:ComparerRecentLastT(a, b) + local db = Vect.db.profile; + + if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then + return true; + elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then + return false + else -- they are == + if a.currentTime < b.currentTime then + return true; + else + return false; + end + end +end diff --git a/data/spells.lua b/data/spells.lua index d28655d..ee3dee1 100644 --- a/data/spells.lua +++ b/data/spells.lua @@ -1,575 +1,585 @@ +--dk pet spells (gnaw) + Vect.spells = { --Trinkets - [42292] = {120, nil, 120, 120, 120, 0}, --PvP Trinket + [42292] = {120, nil, 120, 120, 120, 0, "", "anticc", false}, --PvP Trinket --Other Stuff - [54861] = {180, nil, 180, 180, 180, 0}, --Rocket Boots (Enchant) + [54861] = {180, nil, 180, 180, 180, 0, "", "gapcloser", false}, --Rocket Boots (Enchant) --Racials (War Stomp no combatlog entry) - [59752] = {120, nil, 120, 120, 120, 0}, --Every Man For Himself - [7744] = {120, nil, 120, 120, 120, 0}, --Will of the Forsaken - [25046] = {120, nil, 120, 120, 120, 0}, --Arcane Torrent (Energy Version) - [28730] = {120, nil, 120, 120, 120, 0}, --Arcane Torrent (Mana version) - [50613] = {120, nil, 120, 120, 120, 0}, --Arcane Torrent (Runic Power version) - [28730] = {120, nil, 120, 120, 120, 0}, --Arcane Torrent (Heroes Warrior) - [65116] = {120, nil, 120, 120, 120, 0}, --Stoneform - [58984] = {120, nil, 120, 120, 120, 0}, --Shadowmeld - [20589] = {105, nil, 105, 105, 105, 0}, --Escape Artist - [28880] = {180, nil, 180, 180, 180, 0}, --Gift of the Naaru + [59752] = {120, nil, 120, 120, 120, 0, "", "anticc", false}, --Every Man For Himself + [7744] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Will of the Forsaken + [25046] = {120, nil, 120, 120, 120, 0, "", "silence", false}, --Arcane Torrent (Energy Version) + [28730] = {120, nil, 120, 120, 120, 0, "", "silence", false}, --Arcane Torrent (Mana version) + [50613] = {120, nil, 120, 120, 120, 0, "", "silence", false}, --Arcane Torrent (Runic Power version) + [28730] = {120, nil, 120, 120, 120, 0, "", "silence", false}, --Arcane Torrent (Heroes Warrior) + [65116] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Stoneform + [58984] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Shadowmeld + [20589] = {105, nil, 105, 105, 105, 0, "", "defensive", false}, --Escape Artist + [28880] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Gift of the Naaru + --Potions + [6615] = {60, nil, 60, 60, 60, 0, "", "potion", false}, --Free Action Potion --Warrior --Total: 20 --Arms - [46924] = {90, nil, 90, 90, 90, 3}, --BladeStrom - [100] = {15, nil, 20, 15, 15, 0}, --Charge rank 1 - [6178] = {15, nil, 20, 15, 15, 0}, --Charge rank 2 - [11578] = {15, nil, 20, 15, 15, 0}, --Charge rank 3 - [57755] = {60, nil, 60, 60, 60, 0}, --Heroic Throw - [20230] = {240, nil, 300, 300, 240, 0}, --Retaliation - [64382] = {300, nil, 300, 300, 300, 0}, --Shattering Throw - [12328] = {30, nil, 30, 30, 30, 3}, --Sweeping Strikes + [46924] = {90, nil, 90, 90, 90, 3, "", "nuke", false}, --BladeStrom + [100] = {15, nil, 20, 15, 15, 0, "", "gapcloser", false}, --Charge rank 1 + [6178] = {15, nil, 20, 15, 15, 0, "", "gapcloser", false}, --Charge rank 2 + [11578] = {15, nil, 20, 15, 15, 0, "", "gapcloser", false}, --Charge rank 3 + [57755] = {60, nil, 60, 60, 60, 0, "", "uncategorized", false}, --Heroic Throw + [20230] = {240, nil, 300, 300, 240, 0, "", "nuke", false}, --Retaliation + [64382] = {300, nil, 300, 300, 300, 0, "", "uncategorized", false}, --Shattering Throw + [12328] = {30, nil, 30, 30, 30, 3, "", "uncategorized", false}, --Sweeping Strikes --Detection - [12294] = {0, nil, 0, 0, 0, 3}, --Mortal Strike r1 - [21551] = {0, nil, 0, 0, 0, 3}, --Mortal Strike r2 - [21552] = {0, nil, 0, 0, 0, 3}, --Mortal Strike r3 - [21553] = {0, nil, 0, 0, 0, 3}, --Mortal Strike r4 - [25248] = {0, nil, 0, 0, 0, 3}, --Mortal Strike r5 - [30330] = {0, nil, 0, 0, 0, 3}, --Mortal Strike r6 - [47485] = {0, nil, 0, 0, 0, 3}, --Mortal Strike r7 - [47486] = {0, nil, 0, 0, 0, 3}, --Mortal Strike r8 + [12294] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mortal Strike r1 + [21551] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mortal Strike r2 + [21552] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mortal Strike r3 + [21553] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mortal Strike r4 + [25248] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mortal Strike r5 + [30330] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mortal Strike r6 + [47485] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mortal Strike r7 + [47486] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mortal Strike r8 --Fury - [18499] = {20.1, nil, 30, 20.1, 30, 0}, --Berserker Rage - [12292] = {121, nil, 121, 121, 121, 4}, --Death Wish - [55694] = {180, nil, 180, 180, 180, 0}, --Enraged Regeneration - [60970] = {45, nil, 45, 45, 45, 4}, --Heroic Fury - [20252] = {20, nil, 30, 20, 30, 0}, --Intercept - [5246] = {120, nil, 120, 120, 120, 0}, --Intimidating Shout - [6552] = {10, nil, 10, 10, 10, 0}, --Pummel - [1719] = {161, nil, 300, 210, 240, 0}, --Recklessness + [18499] = {20.1, nil, 30, 20.1, 30, 0, "", "anticc", false}, --Berserker Rage + [12292] = {121, nil, 121, 121, 121, 4, "", "nuke", false}, --Death Wish + [55694] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Enraged Regeneration + [60970] = {45, {20252}, 45, 45, 45, 4, "", "gapcloser", false}, --Heroic Fury + [20252] = {20, nil, 30, 20, 30, 0, "", "gapcloser", false}, --Intercept + [5246] = {120, nil, 120, 120, 120, 0, "", "cc", false}, --Intimidating Shout + [6552] = {10, nil, 10, 10, 10, 0, "", "silence", false}, --Pummel + [1719] = {161, nil, 300, 210, 240, 0, "", "nuke", false}, --Recklessness --Detection - [23881] = {0, nil, 0, 0, 0, 4}, --Bloodthirst + [23881] = {0, nil, 0, 0, 0, 4, "", "uncategorized", false}, --Bloodthirst --Protection - [12809] = {30, nil, 30, 30, 30, 5}, --Concussion Blow - [676] = {40, nil, 60, 60, 60, 0}, --Disarm - [3411] = {30, nil, 30, 30, 30, 0}, --Intervene - [12975] = {180, nil, 180, 180, 180, 0}, --Last Stand - [72] = {12, nil, 12, 12, 12, 0}, --Shield Bash - [871] = {240, nil, 300, 300, 240, 0}, --Shield Wall - [46968] = {20, nil, 20, 20, 20, 5}, --Shockwave - [23920] = {10, nil, 10, 10, 10, 0}, --Spell Reflection + [12809] = {30, nil, 30, 30, 30, 5, "", "stun", false}, --Concussion Blow + [676] = {40, nil, 60, 60, 60, 0, "", "disarm", false}, --Disarm + [3411] = {30, nil, 30, 30, 30, 0, "", "gapcloser", false}, --Intervene + [12975] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Last Stand + [72] = {12, nil, 12, 12, 12, 0, "", "silence", false}, --Shield Bash + [871] = {240, nil, 300, 300, 240, 0, "", "defensive", false}, --Shield Wall + [46968] = {20, nil, 20, 20, 20, 5, "", "stun", false}, --Shockwave + [23920] = {10, nil, 10, 10, 10, 0, "", "silence", false}, --Spell Reflection --Detection - [20243] = {0, nil, 0, 0, 0, 5}, --Devastate r1 - [30016] = {0, nil, 0, 0, 0, 5}, --Devastate r2 - [30022] = {0, nil, 0, 0, 0, 5}, --Devastate r3 - [47497] = {0, nil, 0, 0, 0, 5}, --Devastate r4 - [47498] = {0, nil, 0, 0, 0, 5}, --Devastate r5 - [50720] = {0, nil, 0, 0, 0, 5}, --Vigilance + [20243] = {0, nil, 0, 0, 0, 5, "", "", false}, --Devastate r1 + [30016] = {0, nil, 0, 0, 0, 5, "", "", false}, --Devastate r2 + [30022] = {0, nil, 0, 0, 0, 5, "", "", false}, --Devastate r3 + [47497] = {0, nil, 0, 0, 0, 5, "", "", false}, --Devastate r4 + [47498] = {0, nil, 0, 0, 0, 5, "", "", false}, --Devastate r5 + [50720] = {0, nil, 0, 0, 0, 5, "", "", false}, --Vigilance --Paladin --Total: 16 --Holy - [31821] = {120, nil, 120, 120, 120, 0}, --Aura Mastery - [20216] = {120, nil, 120, 120, 120, 3}, --Divine Favor - [31842] = {180, nil, 180, 180, 180, 3}, --Divine Illumination - [54428] = {60, nil, 60, 60, 60, 0}, --Divine Plea - [2812] = {20, nil, 20, 20, 20, 0}, --Holy Wrath r1 - [10318] = {20, nil, 20, 20, 20, 0}, --Holy Wrath r2 - [27139] = {20, nil, 20, 20, 20, 0}, --Holy Wrath r3 - [48816] = {20, nil, 20, 20, 20, 0}, --Holy Wrath r4 - [48817] = {20, nil, 20, 20, 20, 0}, --Holy Wrath r5 - [633] = {960, nil, 900, 900, 900, 0}, --Lay on Hands r1 - [2800] = {960, nil, 900, 900, 900, 0}, --Lay on Hands r2 - [10310] = {960, nil, 900, 900, 900, 0}, --Lay on Hands r3 - [27154] = {960, nil, 900, 900, 900, 0}, --Lay on Hands r4 - [48788] = {960, nil, 900, 900, 900, 0}, --Lay on Hands r5 + [31821] = {120, nil, 120, 120, 120, 0, "", "anticc", false}, --Aura Mastery + [20216] = {120, nil, 120, 120, 120, 3, "", "uncategorized", false}, --Divine Favor + [31842] = {180, nil, 180, 180, 180, 3, "", "uncategorized", false}, --Divine Illumination + [54428] = {60, nil, 60, 60, 60, 0, "", "defensive", false}, --Divine Plea + [2812] = {20, nil, 20, 20, 20, 0, "", "uncategorized", false}, --Holy Wrath r1 + [10318] = {20, nil, 20, 20, 20, 0, "", "uncategorized", false}, --Holy Wrath r2 + [27139] = {20, nil, 20, 20, 20, 0, "", "uncategorized", false}, --Holy Wrath r3 + [48816] = {20, nil, 20, 20, 20, 0, "", "uncategorized", false}, --Holy Wrath r4 + [48817] = {20, nil, 20, 20, 20, 0, "", "uncategorized", false}, --Holy Wrath r5 + [633] = {960, nil, 900, 900, 900, 0, "", "uncategorized", false}, --Lay on Hands r1 + [2800] = {960, nil, 900, 900, 900, 0, "", "uncategorized", false}, --Lay on Hands r2 + [10310] = {960, nil, 900, 900, 900, 0, "", "uncategorized", false}, --Lay on Hands r3 + [27154] = {960, nil, 900, 900, 900, 0, "", "uncategorized", false}, --Lay on Hands r4 + [48788] = {960, nil, 900, 900, 900, 0, "", "uncategorized", false}, --Lay on Hands r5 --Detection - [20473] = {0, nil, 0, 0, 0, 3}, --Holy Shock r1 - [20929] = {0, nil, 0, 0, 0, 3}, --Holy Shock r2 - [20930] = {0, nil, 0, 0, 0, 3}, --Holy Shock r3 - [27174] = {0, nil, 0, 0, 0, 3}, --Holy Shock r4 - [33072] = {0, nil, 0, 0, 0, 3}, --Holy Shock r5 - [48824] = {0, nil, 0, 0, 0, 3}, --Holy Shock r6 - [48825] = {0, nil, 0, 0, 0, 3}, --Holy Shock r7 - [53563] = {0, nil, 0, 0, 0, 3}, --Beacon of Light + [20473] = {0, nil, 0, 0, 0, 3, "", "", false}, --Holy Shock r1 + [20929] = {0, nil, 0, 0, 0, 3, "", "", false}, --Holy Shock r2 + [20930] = {0, nil, 0, 0, 0, 3, "", "", false}, --Holy Shock r3 + [27174] = {0, nil, 0, 0, 0, 3, "", "", false}, --Holy Shock r4 + [33072] = {0, nil, 0, 0, 0, 3, "", "", false}, --Holy Shock r5 + [48824] = {0, nil, 0, 0, 0, 3, "", "", false}, --Holy Shock r6 + [48825] = {0, nil, 0, 0, 0, 3, "", "", false}, --Holy Shock r7 + [53563] = {0, nil, 0, 0, 0, 3, "", "", false}, --Beacon of Light --Protection - [31935] = {30, nil, 30, 30, 30, 4}, --Avenger's Shield r1 - [32699] = {30, nil, 30, 30, 30, 4}, --Avenger's Shield r2 - [32700] = {30, nil, 30, 30, 30, 4}, --Avenger's Shield r3 - [48826] = {30, nil, 30, 30, 30, 4}, --Avenger's Shield r4 - [48827] = {30, nil, 30, 30, 30, 4}, --Avenger's Shield r5 - [498] = {120, nil, 180, 120, 180, 0}, --Divine Protection - [64205] = {120, nil, 120, 120, 120, 0}, --Divine Sacrifice - [642] = {240, nil, 300, 240, 300, 0}, --Divine Shield - [853] = {30, nil, 40, 30, 40, 0}, --Hammer of justice r1 - [5588] = {30, nil, 40, 30, 40, 0}, --Hammer of justice r2 - [5589] = {30, nil, 40, 30, 40, 0}, --Hammer of justice r3 - [10308] = {30, nil, 40, 30, 40, 0}, --Hammer of justice r4 - [1044] = {25, nil, 25, 25, 25, 0}, --Hand of Freedom - [1022] = {180, nil, 180, 180, 180, 0}, --Hand of Protection r1 - [5599] = {180, nil, 180, 180, 180, 0}, --Hand of Protection r2 - [10278] = {180, nil, 180, 180, 180, 0}, --Hand of Protection r3 - [6940] = {120, nil, 120, 120, 120, 0}, --Hand of Sacrifice + [31935] = {30, nil, 30, 30, 30, 4, "", "silence", false}, --Avenger's Shield r1 + [32699] = {30, nil, 30, 30, 30, 4, "", "silence", false}, --Avenger's Shield r2 + [32700] = {30, nil, 30, 30, 30, 4, "", "silence", false}, --Avenger's Shield r3 + [48826] = {30, nil, 30, 30, 30, 4, "", "silence", false}, --Avenger's Shield r4 + [48827] = {30, nil, 30, 30, 30, 4, "", "silence", false}, --Avenger's Shield r5 + [498] = {120, nil, 180, 120, 180, 0, "", "defensive", false}, --Divine Protection + [64205] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Divine Sacrifice + [642] = {240, nil, 300, 240, 300, 0, "", "defensive", false}, --Divine Shield + [853] = {30, nil, 40, 30, 40, 0, "", "stun", false}, --Hammer of justice r1 + [5588] = {30, nil, 40, 30, 40, 0, "", "stun", false}, --Hammer of justice r2 + [5589] = {30, nil, 40, 30, 40, 0, "", "stun", false}, --Hammer of justice r3 + [10308] = {30, nil, 40, 30, 40, 0, "", "stun", false}, --Hammer of justice r4 + [1044] = {25, nil, 25, 25, 25, 0, "", "anticc", false}, --Hand of Freedom + [1022] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Hand of Protection r1 + [5599] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Hand of Protection r2 + [10278] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Hand of Protection r3 + [6940] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Hand of Sacrifice --Retribution - [31884] = {120, nil, 180, 180, 120, 0}, --Avenging Wrath - [20066] = {60, nil, 60, 60, 60, 5}, --Repentance + [31884] = {120, nil, 180, 180, 120, 0, "", "nuke", false}, --Avenging Wrath + [20066] = {60, nil, 60, 60, 60, 5, "", "cc", false}, --Repentance --Hunter --Total: 15 --Feign Death No Combat log entry --Pet - [53480] = {42, nil, 42, 42, 42, 0}, --Roar of Sacrifice + [53480] = {42, nil, 42, 42, 42, 0, "", "defensive", true}, --Roar of Sacrifice --Beast Mastery - [19574] = {84, nil, 84, 84, 84, 3}, --Bestial Wrath - [19577] = {42, nil, 42, 42, 42, 3}, --Intimidation - [53271] = {60, nil, 60, 60, 60, 0}, --Master's Call - [14327] = {30, nil, 30, 30, 30, 0}, --Scare Beast + [19574] = {84, nil, 84, 84, 84, 3, "", "nuke", false}, --Bestial Wrath + [19577] = {42, nil, 42, 42, 42, 3, "", "stun", false}, --Intimidation + [53271] = {60, nil, 60, 60, 60, 0, "", "anticc", false}, --Master's Call + [14327] = {30, nil, 30, 30, 30, 0, "", "cc", false}, --Scare Beast --Marksman - [1543] = {20, nil, 20, 20, 20, 0}, --Flare - [3045] = {180, nil, 300, 300, 300, 0}, --Rapid Fire + [1543] = {20, nil, 20, 20, 20, 0, "", "uncategorized", false}, --Flare + [3045] = {180, nil, 300, 300, 300, 0, "", "nuke", false}, --Rapid Fire [23989] = {180, {19577,53271,14327, 1543,3045,34490,3674,63668,63669, 63670,63671,63672,19263,781,13813,14316,14317, 27025,49066,49067,60192,1499,14310,14311,13809, 13795,14302,14303,14304,14305,27023,49055,49056, - 19503,34600,19386,24132,24133,27068,49011,49012}, 180, 180, 180, 4}, --Readiness - [34490] = {20, nil, 20, 20, 20, 4}, --Silencing Shot + 19503,34600,19386,24132,24133,27068,49011,49012, "", "", false}, 180, 180, 180, 4, "", "cdreset", false}, --Readiness + [34490] = {20, nil, 20, 20, 20, 4, "", "silence", false}, --Silencing Shot --Detection - [53209] = {0, nil, 0, 0, 0, 4}, --Chimera Shot + [53209] = {0, nil, 0, 0, 0, 4, "", "", false}, --Chimera Shot --Survival - [3674] = {24, nil, 24, 24, 24, 5}, --Black Arrow r1 - [63668] = {24, nil, 24, 24, 24, 5}, --Black Arrow r2 - [63669] = {24, nil, 24, 24, 24, 5}, --Black Arrow r3 - [63670] = {24, nil, 24, 24, 24, 5}, --Black Arrow r4 - [63671] = {24, nil, 24, 24, 24, 5}, --Black Arrow r5 - [63672] = {24, nil, 24, 24, 24, 5}, --Black Arrow r6 - [19263] = {90, nil, 90, 90, 90, 0}, --Deterrence - [781] = {16, nil, 20, 16, 16, 0}, --Disengage - [13813] = {24, nil, 30, 30, 24, 0}, --Explosive Trap r1 - [14316] = {24, nil, 30, 30, 24, 0}, --Explosive Trap r2 - [14317] = {24, nil, 30, 30, 24, 0}, --Explosive Trap r3 - [27025] = {24, nil, 30, 30, 24, 0}, --Explosive Trap r4 - [49066] = {24, nil, 30, 30, 24, 0}, --Explosive Trap r5 - [49067] = {24, nil, 30, 30, 24, 0}, --Explosive Trap r6 + [3674] = {24, nil, 24, 24, 24, 5, "", "uncategorized", false}, --Black Arrow r1 + [63668] = {24, nil, 24, 24, 24, 5, "", "uncategorized", false}, --Black Arrow r2 + [63669] = {24, nil, 24, 24, 24, 5, "", "uncategorized", false}, --Black Arrow r3 + [63670] = {24, nil, 24, 24, 24, 5, "", "uncategorized", false}, --Black Arrow r4 + [63671] = {24, nil, 24, 24, 24, 5, "", "uncategorized", false}, --Black Arrow r5 + [63672] = {24, nil, 24, 24, 24, 5, "", "uncategorized", false}, --Black Arrow r6 + [19263] = {90, nil, 90, 90, 90, 0, "", "defensive", false}, --Deterrence + [781] = {16, nil, 20, 16, 16, 0, "", "gapcloser", false}, --Disengage + [13813] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Explosive Trap r1 + [14316] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Explosive Trap r2 + [14317] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Explosive Trap r3 + [27025] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Explosive Trap r4 + [49066] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Explosive Trap r5 + [49067] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Explosive Trap r6 --Feign Death - [60192] = {24, nil, 30, 30, 24, 0}, --Freezing Arrow - [1499] = {24, nil, 30, 30, 24, 0}, --Freezing Trap r1 - [14310] = {24, nil, 30, 30, 24, 0}, --Freezing Trap r2 - [14311] = {24, nil, 30, 30, 24, 0}, --Freezing Trap r3 - [13809] = {24, nil, 30, 30, 24, 0}, --Frost Trap - [13795] = {24, nil, 30, 30, 24, 0}, --Immolation Trap r1 - [14302] = {24, nil, 30, 30, 24, 0}, --Immolation Trap r2 - [14303] = {24, nil, 30, 30, 24, 0}, --Immolation Trap r3 - [14304] = {24, nil, 30, 30, 24, 0}, --Immolation Trap r4 - [14305] = {24, nil, 30, 30, 24, 0}, --Immolation Trap r5 - [27023] = {24, nil, 30, 30, 24, 0}, --Immolation Trap r6 - [49055] = {24, nil, 30, 30, 24, 0}, --Immolation Trap r7 - [49056] = {24, nil, 30, 30, 24, 0}, --Immolation Trap r8 - [19503] = {30, nil, 30, 30, 30, 0}, --Scatter Shot - [34600] = {24, nil, 30, 30, 24, 0}, --Snake Trap - [19386] = {60, nil, 60, 60, 60, 5}, --Wyvern Sting r1 - [24132] = {60, nil, 60, 60, 60, 5}, --Wyvern Sting r2 - [24133] = {60, nil, 60, 60, 60, 5}, --Wyvern Sting r3 - [27068] = {60, nil, 60, 60, 60, 5}, --Wyvern Sting r4 - [49011] = {60, nil, 60, 60, 60, 5}, --Wyvern Sting r5 - [49012] = {60, nil, 60, 60, 60, 5}, --Wyvern Sting r6 + [60192] = {24, nil, 30, 30, 24, 0, "", "cc", false}, --Freezing Arrow + [1499] = {24, nil, 30, 30, 24, 0, "", "cc", false}, --Freezing Trap r1 + [14310] = {24, nil, 30, 30, 24, 0, "", "cc", false}, --Freezing Trap r2 + [14311] = {24, nil, 30, 30, 24, 0, "", "cc", false}, --Freezing Trap r3 + [13809] = {24, nil, 30, 30, 24, 0, "", "cc", false}, --Frost Trap + [13795] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Immolation Trap r1 + [14302] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Immolation Trap r2 + [14303] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Immolation Trap r3 + [14304] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Immolation Trap r4 + [14305] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Immolation Trap r5 + [27023] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Immolation Trap r6 + [49055] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Immolation Trap r7 + [49056] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Immolation Trap r8 + [19503] = {30, nil, 30, 30, 30, 0, "", "cc", false}, --Scatter Shot + [34600] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Snake Trap + [19386] = {60, nil, 60, 60, 60, 5, "", "cc", false}, --Wyvern Sting r1 + [24132] = {60, nil, 60, 60, 60, 5, "", "cc", false}, --Wyvern Sting r2 + [24133] = {60, nil, 60, 60, 60, 5, "", "cc", false}, --Wyvern Sting r3 + [27068] = {60, nil, 60, 60, 60, 5, "", "cc", false}, --Wyvern Sting r4 + [49011] = {60, nil, 60, 60, 60, 5, "", "cc", false}, --Wyvern Sting r5 + [49012] = {60, nil, 60, 60, 60, 5, "", "cc", false}, --Wyvern Sting r6 --Detection - [53301] = {0, nil, 0, 0, 0, 5}, --Explosive Shot r1 - [60051] = {0, nil, 0, 0, 0, 5}, --Explosive Shot r2 - [60052] = {0, nil, 0, 0, 0, 5}, --Explosive Shot r3 - [60053] = {0, nil, 0, 0, 0, 5}, --Explosive Shot r4 + [53301] = {0, nil, 0, 0, 0, 5, "", "", false}, --Explosive Shot r1 + [60051] = {0, nil, 0, 0, 0, 5, "", "", false}, --Explosive Shot r2 + [60052] = {0, nil, 0, 0, 0, 5, "", "", false}, --Explosive Shot r3 + [60053] = {0, nil, 0, 0, 0, 5, "", "", false}, --Explosive Shot r4 --Rogue --Total: 15 --Assassination - [14177] = {180, nil, 180, 180, 180, 3}, --Cold Blood - [51722] = {60, nil, 60, 60, 60, 0}, --Dismantle - [408] = {20, nil, 20, 20, 20, 0}, --Kidney Shot r1 - [8643] = {20, nil, 20, 20, 20, 0}, --Kidney Shot r2 + [14177] = {180, nil, 180, 180, 180, 3, "", "nuke", false}, --Cold Blood + [51722] = {60, nil, 60, 60, 60, 0, "", "disarm", false}, --Dismantle + [408] = {20, nil, 20, 20, 20, 0, "", "stun", false}, --Kidney Shot r1 + [8643] = {20, nil, 20, 20, 20, 0, "", "stun", false}, --Kidney Shot r2 --detect - [51662] = {0, nil, 0, 0, 0, 3}, --Hunger for Blood - [1329] = {0, nil, 0, 0, 0, 3}, --Mutilate r1 - [34411] = {0, nil, 0, 0, 0, 3}, --Mutilate r2 - [34412] = {0, nil, 0, 0, 0, 3}, --Mutilate r3 - [34413] = {0, nil, 0, 0, 0, 3}, --Mutilate r4 - [48663] = {0, nil, 0, 0, 0, 3}, --Mutilate r5 - [48666] = {0, nil, 0, 0, 0, 3}, --Mutilate r6 + [51662] = {0, nil, 0, 0, 0, 3, "", "", false}, --Hunger for Blood + [1329] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mutilate r1 + [34411] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mutilate r2 + [34412] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mutilate r3 + [34413] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mutilate r4 + [48663] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mutilate r5 + [48666] = {0, nil, 0, 0, 0, 3, "", "", false}, --Mutilate r6 --Combat - [13750] = {180, nil, 180, 180, 180, 4}, --Adrenaline Rush - [13877] = {120, nil, 120, 120, 120, 4}, --Blade Flurry - [5277] = {120, nil, 180, 120, 180, 0}, --Evasion r1 - [26669] = {120, nil, 180, 120, 180, 0}, --Evasion r2 - [1766] = {10, nil, 10, 10, 10, 0}, --Kick - [51690] = {120, nil, 120, 120, 120, 4}, --Killing Spree - [2983] = {120, nil, 180, 120, 180, 0}, --Sprint r1 - [8696] = {120, nil, 180, 120, 180, 0}, --Sprint r2 - [11305] = {120, nil, 180, 120, 180, 0}, --Sprint r3 + [13750] = {180, nil, 180, 180, 180, 4, "", "nuke", false}, --Adrenaline Rush + [13877] = {120, nil, 120, 120, 120, 4, "", "nuke", false}, --Blade Flurry + [5277] = {120, nil, 180, 120, 180, 0, "", "defensive", false}, --Evasion r1 + [26669] = {120, nil, 180, 120, 180, 0, "", "defensive", false}, --Evasion r2 + [1766] = {10, nil, 10, 10, 10, 0, "", "silence", false}, --Kick + [51690] = {120, nil, 120, 120, 120, 4, "", "nuke", false}, --Killing Spree + [2983] = {120, nil, 180, 120, 180, 0, "", "defensive", false}, --Sprint r1 + [8696] = {120, nil, 180, 120, 180, 0, "", "defensive", false}, --Sprint r2 + [11305] = {120, nil, 180, 120, 180, 0, "", "defensive", false}, --Sprint r3 --Subtlety - [2094] = {120, nil, 120, 120, 120, 0}, --Blind - [31224] = {60, nil, 60, 60, 60, 0}, --Cloak of Shadows - [14185] = {300, {5277, 26669, 2983, 8696, 11305, 1856, 1857, 26889, 14177, 36554}, 480, 480, 300, 0}, --Preparation - [51713] = {60, nil, 60, 60, 60, 5}, --Shadow Dance - [36554] = {20, nil, 30, 30, 20, 5}, --Shadowstep - [1856] = {120, nil, 120, 120, 120, 0}, --Vanish r1 - [1857] = {120, nil, 120, 120, 120, 0}, --Vanish r2 - [26889] = {120, nil, 120, 120, 120, 0}, --Vanish r3 + [2094] = {120, nil, 120, 120, 120, 0, "", "cc", false}, --Blind + [31224] = {60, nil, 60, 60, 60, 0, "", "defensive", false}, --Cloak of Shadows + [14185] = {300, {5277, 26669, 2983, 8696, 11305, 1856, 1857, 26889, 14177, 36554}, 480, 480, 300, 0, "", "uncategorized", false}, --Preparation + [51713] = {60, nil, 60, 60, 60, 5, "", "nuke", false}, --Shadow Dance + [36554] = {20, nil, 30, 30, 20, 5, "", "gapcloser", false}, --Shadowstep + [1856] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Vanish r1 + [1857] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Vanish r2 + [26889] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Vanish r3 --Priest --Total: 14 --Discipline - [6346] = {180, nil, 180, 180, 180, 0}, --Fear Ward - [14751] = {144, nil, 144, 180, 180, 0}, --Inner Focus - [33206] = {144, nil, 144, 144, 144, 3}, --Pain Supression - [10060] = {96, nil, 96, 96, 96, 3}, --Power infusion - [17] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r1 - [592] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r2 - [600] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r3 - [3747] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r4 - [6065] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r5 - [6066] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r6 - [10898] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r7 - [10899] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r8 - [10900] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r9 - [10901] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r10 - [25217] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r11 - [25218] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r12 - [48065] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r13 - [48066] = {15, nil, 15, 15, 15, 0}, --Power Word: Shield r14 + [6346] = {180, nil, 180, 180, 180, 0, "", "anticc", false}, --Fear Ward + [14751] = {144, nil, 144, 180, 180, 0, "", "uncategorized", false}, --Inner Focus + [33206] = {144, nil, 144, 144, 144, 3, "", "defensive", false}, --Pain Supression + [10060] = {96, nil, 96, 96, 96, 3, "", "uncategorized", false}, --Power infusion + [17] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r1 + [592] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r2 + [600] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r3 + [3747] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r4 + [6065] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r5 + [6066] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r6 + [10898] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r7 + [10899] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r8 + [10900] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r9 + [10901] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r10 + [25217] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r11 + [25218] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r12 + [48065] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r13 + [48066] = {15, nil, 15, 15, 15, 0, "", "shield", false}, --Power Word: Shield r14 --Detection --Penance no combatlog event --Holy - [19203] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r1 - [19238] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r2 - [19240] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r3 - [19241] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r4 - [19242] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r5 - [19243] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r6 - [25437] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r7 - [48172] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r8 - [48173] = {120, nil, 120, 120, 120, 0}, --Desperate Prayer r9 - [64843] = {480, nil, 480, 480, 480, 0}, --Divine Hymn - [47788] = {180, nil, 180, 180, 180, 4}, --Guardian Spirit - [64901] = {360, nil, 360, 360, 360, 0}, --Hymn of Hope + [19203] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r1 + [19238] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r2 + [19240] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r3 + [19241] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r4 + [19242] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r5 + [19243] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r6 + [25437] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r7 + [48172] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r8 + [48173] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Desperate Prayer r9 + [64843] = {480, nil, 480, 480, 480, 0, "", "defensive", false}, --Divine Hymn + [47788] = {180, nil, 180, 180, 180, 4, "", "defensive", false}, --Guardian Spirit + [64901] = {360, nil, 360, 360, 360, 0, "", "defensive", false}, --Hymn of Hope --Detection --Lightwell no combatlog entry - [34861] = {0, nil, 0, 0, 0, 4}, --Circle of Healing r1 - [34863] = {0, nil, 0, 0, 0, 4}, --Circle of Healing r2 - [34864] = {0, nil, 0, 0, 0, 4}, --Circle of Healing r3 - [34865] = {0, nil, 0, 0, 0, 4}, --Circle of Healing r4 - [34866] = {0, nil, 0, 0, 0, 4}, --Circle of Healing r5 - [48088] = {0, nil, 0, 0, 0, 4}, --Circle of Healing r6 - [48089] = {0, nil, 0, 0, 0, 4}, --Circle of Healing r7 + [34861] = {0, nil, 0, 0, 0, 4, "", "", false}, --Circle of Healing r1 + [34863] = {0, nil, 0, 0, 0, 4, "", "", false}, --Circle of Healing r2 + [34864] = {0, nil, 0, 0, 0, 4, "", "", false}, --Circle of Healing r3 + [34865] = {0, nil, 0, 0, 0, 4, "", "", false}, --Circle of Healing r4 + [34866] = {0, nil, 0, 0, 0, 4, "", "", false}, --Circle of Healing r5 + [48088] = {0, nil, 0, 0, 0, 4, "", "", false}, --Circle of Healing r6 + [48089] = {0, nil, 0, 0, 0, 4, "", "", false}, --Circle of Healing r7 --Shadow - [47585] = {75, nil, 75, 75, 75, 5}, --Dispersion - [586] = {24, nil, 30, 30, 24, 0}, --Fade - [64044] = {120, nil, 120, 120, 120, 5}, --Psychic Horror - [8122] = {26, nil, 30, 30, 24, 0}, --Psychic Scream r1 - [8124] = {26, nil, 30, 30, 24, 0}, --Psychic Scream r2 - [10888] = {26, nil, 30, 30, 24, 0}, --Psychic Scream r3 - [10890] = {26, nil, 30, 30, 24, 0}, --Psychic Scream r4 - [34433] = {180, nil, 180, 180, 180, 0}, --Shadowfiend - [15487] = {45, nil, 45, 45, 45, 5}, --Silence + [47585] = {75, nil, 75, 75, 75, 5, "", "defensive", false}, --Dispersion + [586] = {24, nil, 30, 30, 24, 0, "", "uncategorized", false}, --Fade + [64044] = {120, nil, 120, 120, 120, 5, "", "cc", false}, --Psychic Horror + [8122] = {26, nil, 30, 30, 24, 0, "", "cc", false}, --Psychic Scream r1 + [8124] = {26, nil, 30, 30, 24, 0, "", "cc", false}, --Psychic Scream r2 + [10888] = {26, nil, 30, 30, 24, 0, "", "cc", false}, --Psychic Scream r3 + [10890] = {26, nil, 30, 30, 24, 0, "", "cc", false}, --Psychic Scream r4 + [34433] = {180, nil, 180, 180, 180, 0, "", "nuke", false}, --Shadowfiend + [15487] = {45, nil, 45, 45, 45, 5, "", "silence", false}, --Silence --Detection - [15473] = {0, nil, 0, 0, 0, 5}, --Shadowform - [15286] = {0, nil, 0, 0, 0, 5}, --Vampiric Embrace - [34914] = {0, nil, 0, 0, 0, 5}, --Vampiric Touch r1 - [34916] = {0, nil, 0, 0, 0, 5}, --Vampiric Touch r2 - [34917] = {0, nil, 0, 0, 0, 5}, --Vampiric Touch r3 - [48159] = {0, nil, 0, 0, 0, 5}, --Vampiric Touch r4 - [48160] = {0, nil, 0, 0, 0, 5}, --Vampiric Touch r5 + [15473] = {0, nil, 0, 0, 0, 5, "", "", false}, --Shadowform + [15286] = {0, nil, 0, 0, 0, 5, "", "", false}, --Vampiric Embrace + [34914] = {0, nil, 0, 0, 0, 5, "", "", false}, --Vampiric Touch r1 + [34916] = {0, nil, 0, 0, 0, 5, "", "", false}, --Vampiric Touch r2 + [34917] = {0, nil, 0, 0, 0, 5, "", "", false}, --Vampiric Touch r3 + [48159] = {0, nil, 0, 0, 0, 5, "", "", false}, --Vampiric Touch r4 + [48160] = {0, nil, 0, 0, 0, 5, "", "", false}, --Vampiric Touch r5 --Death Knight --Total: 18 --Blood - [49028] = {90, nil, 90, 90, 90, 3}, --Dancing Rune Weapon - [48743] = {120, nil, 120, 120, 120, 0}, --Death Pact - [49016] = {180, nil, 180, 180, 180, 3}, --Hysteria - [49005] = {180, nil, 180, 180, 180, 3}, --Mark of Blood - [48982] = {30, nil, 30, 60, 60, 0}, --Rune Tap - [47476] = {120, nil, 120, 120, 120, 0}, --Strangulate - [55233] = {60, nil, 60, 60, 60, 3}, --Vampiric Blood + [49028] = {90, nil, 90, 90, 90, 3, "", "nuke", false}, --Dancing Rune Weapon + [48743] = {120, nil, 120, 120, 120, 0, "", "defensive", false}, --Death Pact + [49016] = {180, nil, 180, 180, 180, 3, "", "nuke", false}, --Hysteria + [49005] = {180, nil, 180, 180, 180, 3, "", "defensive", false}, --Mark of Blood + [48982] = {30, nil, 30, 60, 60, 0, "", "defensive", false}, --Rune Tap + [47476] = {120, nil, 120, 120, 120, 0, "", "silence", false}, --Strangulate + [55233] = {60, nil, 60, 60, 60, 3, "", "defensive", false}, --Vampiric Blood --Detection - [55050] = {0, nil, 0, 0, 0, 3}, --Heart Strike r1 - [55258] = {0, nil, 0, 0, 0, 3}, --Heart Strike r2 - [55259] = {0, nil, 0, 0, 0, 3}, --Heart Strike r3 - [55260] = {0, nil, 0, 0, 0, 3}, --Heart Strike r4 - [55261] = {0, nil, 0, 0, 0, 3}, --Heart Strike r5 - [55262] = {0, nil, 0, 0, 0, 3}, --Heart Strike r6 + [55050] = {0, nil, 0, 0, 0, 3, "", "", false}, --Heart Strike r1 + [55258] = {0, nil, 0, 0, 0, 3, "", "", false}, --Heart Strike r2 + [55259] = {0, nil, 0, 0, 0, 3, "", "", false}, --Heart Strike r3 + [55260] = {0, nil, 0, 0, 0, 3, "", "", false}, --Heart Strike r4 + [55261] = {0, nil, 0, 0, 0, 3, "", "", false}, --Heart Strike r5 + [55262] = {0, nil, 0, 0, 0, 3, "", "", false}, --Heart Strike r6 --Frost - [49796] = {120, nil, 120, 120, 120, 4}, --Unbreakable Armor - [47568] = {300, nil, 300, 300, 300, 0}, --Empower Rune Weapon - [49203] = {60, nil, 60, 60, 60, 4}, --Hungering Cold - [48792] = {120, nil, 120, 120, 120, 0}, --Icebound Fortitude - [49039] = {120, nil, 120, 120, 120, 0}, --Lichborne - [47528] = {10, nil, 10, 10, 10, 0}, --Mind Freeze - [51271] = {60, nil, 60, 60, 60, 4}, --Unbreakable Armor + [49796] = {120, nil, 120, 120, 120, 4, "", "defensive", false}, --Unbreakable Armor + [47568] = {300, nil, 300, 300, 300, 0, "", "nuke", false}, --Empower Rune Weapon + [49203] = {60, nil, 60, 60, 60, 4, "", "cc", false}, --Hungering Cold + [48792] = {120, nil, 120, 120, 120, 0, "", "anticc", false}, --Icebound Fortitude + [49039] = {120, nil, 120, 120, 120, 0, "", "anticc", false}, --Lichborne + [47528] = {10, nil, 10, 10, 10, 0, "", "silence", false}, --Mind Freeze + [51271] = {60, nil, 60, 60, 60, 4, "", "defensive", false}, --Unbreakable Armor --Detection - [49143] = {0, nil, 0, 0, 0, 4}, --Frost Strike r1 - [51416] = {0, nil, 0, 0, 0, 4}, --Frost Strike r2 - [51271] = {0, nil, 0, 0, 0, 4}, --Frost Strike r3 - [51418] = {0, nil, 0, 0, 0, 4}, --Frost Strike r4 - [51419] = {0, nil, 0, 0, 0, 4}, --Frost Strike r5 - [55268] = {0, nil, 0, 0, 0, 4}, --Frost Strike r6 - [49184] = {0, nil, 0, 0, 0, 4}, --Howling Blast r1 - [51409] = {0, nil, 0, 0, 0, 4}, --Howling Blast r2 - [51410] = {0, nil, 0, 0, 0, 4}, --Howling Blast r3 - [51411] = {0, nil, 0, 0, 0, 4}, --Howling Blast r4 + [49143] = {0, nil, 0, 0, 0, 4, "", "", false}, --Frost Strike r1 + [51416] = {0, nil, 0, 0, 0, 4, "", "", false}, --Frost Strike r2 + [51271] = {0, nil, 0, 0, 0, 4, "", "", false}, --Frost Strike r3 + [51418] = {0, nil, 0, 0, 0, 4, "", "", false}, --Frost Strike r4 + [51419] = {0, nil, 0, 0, 0, 4, "", "", false}, --Frost Strike r5 + [55268] = {0, nil, 0, 0, 0, 4, "", "", false}, --Frost Strike r6 + [49184] = {0, nil, 0, 0, 0, 4, "", "", false}, --Howling Blast r1 + [51409] = {0, nil, 0, 0, 0, 4, "", "", false}, --Howling Blast r2 + [51410] = {0, nil, 0, 0, 0, 4, "", "", false}, --Howling Blast r3 + [51411] = {0, nil, 0, 0, 0, 4, "", "", false}, --Howling Blast r4 --Unholy - [48707] = {45, nil, 45, 45, 45, 0}, --Anti-Magic Shell - [51052] = {120, nil, 120, 120, 120, 5}, --Anti-Magic Zone - [42650] = {360, nil, 600, 600, 360, 0}, --Army of the Dead - [49222] = {60, nil, 60, 60, 60, 5}, --Bone Shield - [49576] = {25, nil, 35, 35, 25, 0}, --Death Grip - [49206] = {180, nil, 180, 180, 180, 5}, --Summon Gargoyle + [48707] = {45, nil, 45, 45, 45, 0, "", "defensive", false}, --Anti-Magic Shell + [51052] = {120, nil, 120, 120, 120, 5, "", "defensive", false}, --Anti-Magic Zone + [42650] = {360, nil, 600, 600, 360, 0, "", "nuke", false}, --Army of the Dead + [49222] = {60, nil, 60, 60, 60, 5, "", "defensive", false}, --Bone Shield + [49576] = {25, nil, 35, 35, 25, 0, "", "gapcloser", false}, --Death Grip + [49206] = {180, nil, 180, 180, 180, 5, "", "nuke", false}, --Summon Gargoyle --Detection - [55090] = {0, nil, 0, 0, 0, 5}, --Scourge Strike r1 - [55265] = {0, nil, 0, 0, 0, 5}, --Scourge Strike r2 - [55270] = {0, nil, 0, 0, 0, 5}, --Scourge Strike r3 - [55271] = {0, nil, 0, 0, 0, 5}, --Scourge Strike r4 - [63560] = {0, nil, 0, 0, 0, 5}, --Ghoul Frenzy + [55090] = {0, nil, 0, 0, 0, 5, "", "", false}, --Scourge Strike r1 + [55265] = {0, nil, 0, 0, 0, 5, "", "", false}, --Scourge Strike r2 + [55270] = {0, nil, 0, 0, 0, 5, "", "", false}, --Scourge Strike r3 + [55271] = {0, nil, 0, 0, 0, 5, "", "", false}, --Scourge Strike r4 + [63560] = {0, nil, 0, 0, 0, 5, "", "", false}, --Ghoul Frenzy --Shaman --Total: 17 --Elemental - [2484] = {10.5, nil, 10.5, 10.5, 10.5, 0}, --Earthbind Totem - [16166] = {180, nil, 180, 180, 180, 3}, --Elemental Mastery - [2894] = {600, nil, 600, 600, 600, 0}, --Fire Elemental Totem - [51514] = {45, nil, 45, 45, 45, 0}, --Hex - [5730] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r1 - [6390] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r2 - [6391] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r3 - [6392] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r4 - [10427] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r5 - [10428] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r6 - [25525] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r7 - [58580] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r8 - [58581] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r9 - [58582] = {21, nil, 21, 21, 21, 0}, --Stoneclaw Totem r10 - [51490] = {45, nil, 45, 45, 45, 3}, --Thunderstorm r1 - [59156] = {45, nil, 45, 45, 45, 3}, --Thunderstorm r1 - [59158] = {45, nil, 45, 45, 45, 3}, --Thunderstorm r1 - [59159] = {45, nil, 45, 45, 45, 3}, --Thunderstorm r1 - [57994] = {5, nil, 5, 5, 6, 0}, --Wind Shear + [2484] = {10.5, nil, 10.5, 10.5, 10.5, 0, "", "uncategorized", false}, --Earthbind Totem + [16166] = {180, nil, 180, 180, 180, 3, "", "nuke", false}, --Elemental Mastery + [2894] = {600, nil, 600, 600, 600, 0, "", "nuke", false}, --Fire Elemental Totem + [51514] = {45, nil, 45, 45, 45, 0, "", "cc", false}, --Hex + [5730] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r1 + [6390] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r2 + [6391] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r3 + [6392] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r4 + [10427] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r5 + [10428] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r6 + [25525] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r7 + [58580] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r8 + [58581] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r9 + [58582] = {21, nil, 21, 21, 21, 0, "", "shield", false}, --Stoneclaw Totem r10 + [51490] = {45, nil, 45, 45, 45, 3, "", "gapcloser", false}, --Thunderstorm r1 + [59156] = {45, nil, 45, 45, 45, 3, "", "gapcloser", false}, --Thunderstorm r1 + [59158] = {45, nil, 45, 45, 45, 3, "", "gapcloser", false}, --Thunderstorm r1 + [59159] = {45, nil, 45, 45, 45, 3, "", "gapcloser", false}, --Thunderstorm r1 + [57994] = {5, nil, 5, 5, 6, 0, "", "silence", false}, --Wind Shear --Detection: - [30706] = {0, nil, 0, 0, 0, 3}, --Totem of Wrath r1 - [57720] = {0, nil, 0, 0, 0, 3}, --Totem of Wrath r2 - [57721] = {0, nil, 0, 0, 0, 3}, --Totem of Wrath r3 - [57722] = {0, nil, 0, 0, 0, 3}, --Totem of Wrath r4 + [30706] = {0, nil, 0, 0, 0, 3, "", "", false}, --Totem of Wrath r1 + [57720] = {0, nil, 0, 0, 0, 3, "", "", false}, --Totem of Wrath r2 + [57721] = {0, nil, 0, 0, 0, 3, "", "", false}, --Totem of Wrath r3 + [57722] = {0, nil, 0, 0, 0, 3, "", "", false}, --Totem of Wrath r4 --Enhancement - [2825] = {300, nil, 300, 300, 300, 0}, --Bloodlust - [32182] = {300, nil, 300, 300, 300, 0}, --Heroism - [2062] = {600, nil, 600, 600, 600, 0}, --Earth Elemental Totem - [51533] = {180, nil, 180, 180, 180, 4}, --Feral Spirit - [58875] = {32, nil, 180, 180, 180, 4}, --Spirit Walk - [8177] = {13, nil, 15, 15, 15, 0}, --Grounding Totem - [30823] = {60, nil, 60, 60, 60, 4}, --Shamanistic Rage + [2825] = {300, nil, 300, 300, 300, 0, "", "nuke", false}, --Bloodlust + [32182] = {300, nil, 300, 300, 300, 0, "", "nuke", false}, --Heroism + [2062] = {600, nil, 600, 600, 600, 0, "", "nuke", false}, --Earth Elemental Totem + [51533] = {180, nil, 180, 180, 180, 4, "", "nuke", false}, --Feral Spirit + [58875] = {32, nil, 180, 180, 180, 4, "", "gapcloser", true}, --Spirit Walk + [8177] = {13, nil, 15, 15, 15, 0, "", "silence", false}, --Grounding Totem + [30823] = {60, nil, 60, 60, 60, 4, "", "defensive", false}, --Shamanistic Rage --Detection - [17364] = {0, nil, 0, 0, 0, 4}, --Stormstrike - [60103] = {0, nil, 0, 0, 0, 4}, --Lava Lash + [17364] = {0, nil, 0, 0, 0, 4, "", "", false}, --Stormstrike + [60103] = {0, nil, 0, 0, 0, 4, "", "", false}, --Lava Lash --Restoration - [16190] = {300, nil, 300, 300, 300, 0}, --Mana Tide Totem - [16188] = {120, nil, 300, 300, 300, 0}, --Nature's Swiftness - [55198] = {180, nil, 180, 180, 180, 0}, --Tidal Force + [16190] = {300, nil, 300, 300, 300, 0, "", "uncategorized", false}, --Mana Tide Totem + [16188] = {120, nil, 300, 300, 300, 0, "", "defensive", false}, --Nature's Swiftness + [55198] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Tidal Force --Detection - [974] = {0, nil, 0, 0, 0, 5}, --Earth Shield r1 - [32593] = {0, nil, 0, 0, 0, 5}, --Earth Shield r2 - [32594] = {0, nil, 0, 0, 0, 5}, --Earth Shield r3 - [49283] = {0, nil, 0, 0, 0, 5}, --Earth Shield r4 - [49284] = {0, nil, 0, 0, 0, 5}, --Earth Shield r5 - [61295] = {0, nil, 0, 0, 0, 5}, --Riptide r1 - [61299] = {0, nil, 0, 0, 0, 5}, --Riptide r2 - [61300] = {0, nil, 0, 0, 0, 5}, --Riptide r3 - [61301] = {0, nil, 0, 0, 0, 5}, --Riptide r4 - [51886] = {0, nil, 0, 0, 0, 5}, --Cleanse Spirit + [974] = {0, nil, 0, 0, 0, 5, "", "", false}, --Earth Shield r1 + [32593] = {0, nil, 0, 0, 0, 5, "", "", false}, --Earth Shield r2 + [32594] = {0, nil, 0, 0, 0, 5, "", "", false}, --Earth Shield r3 + [49283] = {0, nil, 0, 0, 0, 5, "", "", false}, --Earth Shield r4 + [49284] = {0, nil, 0, 0, 0, 5, "", "", false}, --Earth Shield r5 + [61295] = {0, nil, 0, 0, 0, 5, "", "", false}, --Riptide r1 + [61299] = {0, nil, 0, 0, 0, 5, "", "", false}, --Riptide r2 + [61300] = {0, nil, 0, 0, 0, 5, "", "", false}, --Riptide r3 + [61301] = {0, nil, 0, 0, 0, 5, "", "", false}, --Riptide r4 + [51886] = {0, nil, 0, 0, 0, 5, "", "", false}, --Cleanse Spirit --cleanse spirit ---Mage --Total: 18 --Freeze triggers no combatlog event --Arcane - [12042] = {85, nil, 85, 85, 85, 3}, --Arcane Power - [1953] = {15, nil, 15, 15, 15, 0}, --Blink - [2139] = {24, nil, 24, 24, 24, 0}, --Counterspell - [12051] = {120, nil, 120, 240, 240, 0}, --Evocation - [66] = {126, nil, 126, 180, 180, 0}, --Invisibility - [55342] = {180, nil, 180, 180, 180, 0}, --Mirror Image - [12043] = {85, nil, 85, 120, 120, 3}, --Presence of Mind + [12042] = {85, nil, 85, 85, 85, 3, "", "nuke", false}, --Arcane Power + [1953] = {15, nil, 15, 15, 15, 0, "", "gapcloser", false}, --Blink + [2139] = {24, nil, 24, 24, 24, 0, "", "silence", false}, --Counterspell + [12051] = {120, nil, 120, 240, 240, 0, "", "defensive", false}, --Evocation + [66] = {126, nil, 126, 180, 180, 0, "", "defensive", false}, --Invisibility + [55342] = {180, nil, 180, 180, 180, 0, "", "nuke", false}, --Mirror Image + [12043] = {85, nil, 85, 120, 120, 3, "", "nuke", false}, --Presence of Mind + [5405] = {120, nil, 120, 120, 120, 0, "", "uncategorized", false}, --Mana Gem r1 + [10052] = {120, nil, 120, 120, 120, 0, "", "uncategorized", false}, --Mana Gem r2 + [10057] = {120, nil, 120, 120, 120, 0, "", "uncategorized", false}, --Mana Gem r3 + [10058] = {120, nil, 120, 120, 120, 0, "", "uncategorized", false}, --Mana Gem r4 + [27103] = {120, nil, 120, 120, 120, 0, "", "uncategorized", false}, --Mana Gem r5 + [42987] = {120, nil, 120, 120, 120, 0, "", "uncategorized", false}, --Mana Gem r6 --for detection: - [44425] = {0, nil, 0, 0, 0, 3}, --Arcane Barrage r1 - [44780] = {0, nil, 0, 0, 0, 3}, --Arcane Barrage r2 - [44781] = {0, nil, 0, 0, 0, 3}, --Arcane Barrage r3 - [31589] = {0, nil, 0, 0, 0, 3}, --Slow + [44425] = {0, nil, 0, 0, 0, 3, "", "", false}, --Arcane Barrage r1 + [44780] = {0, nil, 0, 0, 0, 3, "", "", false}, --Arcane Barrage r2 + [44781] = {0, nil, 0, 0, 0, 3, "", "", false}, --Arcane Barrage r3 + [31589] = {0, nil, 0, 0, 0, 3, "", "", false}, --Slow --Fire - [11113] = {30, nil, 30, 30, 30, 4}, --Blast Wave r1 - [13018] = {30, nil, 30, 30, 30, 4}, --Blast Wave r2 - [13019] = {30, nil, 30, 30, 30, 4}, --Blast Wave r3 - [13020] = {30, nil, 30, 30, 30, 4}, --Blast Wave r4 - [13021] = {30, nil, 30, 30, 30, 4}, --Blast Wave r5 - [27133] = {30, nil, 30, 30, 30, 4}, --Blast Wave r6 - [33933] = {30, nil, 30, 30, 30, 4}, --Blast Wave r7 - [42944] = {30, nil, 30, 30, 30, 4}, --Blast Wave r8 - [42945] = {30, nil, 30, 30, 30, 4}, --Blast Wave r9 - [28682] = {120, nil, 120, 120, 120, 4}, --Combustion - [31661] = {20, nil, 30, 30, 30, 4}, --Dragon's Breath r1 - [33041] = {20, nil, 30, 30, 30, 4}, --Dragon's Breath r2 - [33042] = {20, nil, 30, 30, 30, 4}, --Dragon's Breath r3 - [33043] = {20, nil, 30, 30, 30, 4}, --Dragon's Breath r4 - [42949] = {20, nil, 30, 30, 30, 4}, --Dragon's Breath r5 - [42950] = {20, nil, 30, 30, 30, 4}, --Dragon's Breath r6 - [543] = {30, nil, 30, 30, 30, 0}, --Fire Ward r1 - [8457] = {30, nil, 30, 30, 30, 0}, --Fire Ward r2 - [8458] = {30, nil, 30, 30, 30, 0}, --Fire Ward r3 - [10223] = {30, nil, 30, 30, 30, 0}, --Fire Ward r4 - [10225] = {30, nil, 30, 30, 30, 0}, --Fire Ward r5 - [27128] = {30, nil, 30, 30, 30, 0}, --Fire Ward r6 - [43010] = {30, nil, 30, 30, 30, 0}, --Fire Ward r7 + [11113] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r1 + [13018] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r2 + [13019] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r3 + [13020] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r4 + [13021] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r5 + [27133] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r6 + [33933] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r7 + [42944] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r8 + [42945] = {30, nil, 30, 30, 30, 4, "", "uncategorized", false}, --Blast Wave r9 + [28682] = {120, nil, 120, 120, 120, 4, "", "nuke", false}, --Combustion + [31661] = {20, nil, 30, 30, 30, 4, "", "cc", false}, --Dragon's Breath r1 + [33041] = {20, nil, 30, 30, 30, 4, "", "cc", false}, --Dragon's Breath r2 + [33042] = {20, nil, 30, 30, 30, 4, "", "cc", false}, --Dragon's Breath r3 + [33043] = {20, nil, 30, 30, 30, 4, "", "cc", false}, --Dragon's Breath r4 + [42949] = {20, nil, 30, 30, 30, 4, "", "cc", false}, --Dragon's Breath r5 + [42950] = {20, nil, 30, 30, 30, 4, "", "cc", false}, --Dragon's Breath r6 + [543] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Fire Ward r1 + [8457] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Fire Ward r2 + [8458] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Fire Ward r3 + [10223] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Fire Ward r4 + [10225] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Fire Ward r5 + [27128] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Fire Ward r6 + [43010] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Fire Ward r7 --Frost [11958] = {384, {44572, 122, 865, 6131, 10230, 27088, 42917, 6143, 8461, 8462, 10177, 28609, 32796, 43012, 11426, 13031, 13032, 13033, - 27134, 33405, 43038, 43039, 45438, 12472, 31687}, 480, 480, 384, 5}, --Cold Snap - [44572] = {30, nil, 30, 30, 30, 5}, --Deep Freeze - [122] = {20, nil, 20, 20, 20, 0}, --Frost Nova r1 - [865] = {20, nil, 20, 20, 20, 0}, --Frost Nova r2 - [6131] = {20, nil, 20, 20, 20, 0}, --Frost Nova r3 - [10230] = {20, nil, 20, 20, 20, 0}, --Frost Nova r4 - [27088] = {20, nil, 20, 20, 20, 0}, --Frost Nova r5 - [42917] = {20, nil, 20, 20, 20, 0}, --Frost Nova r6 - [6143] = {30, nil, 30, 30, 30, 0}, --Frost Ward r1 - [8461] = {30, nil, 30, 30, 30, 0}, --Frost Ward r2 - [8462] = {30, nil, 30, 30, 30, 0}, --Frost Ward r3 - [10177] = {30, nil, 30, 30, 30, 0}, --Frost Ward r4 - [28609] = {30, nil, 30, 30, 30, 0}, --Frost Ward r5 - [32796] = {30, nil, 30, 30, 30, 0}, --Frost Ward r6 - [43012] = {30, nil, 30, 30, 30, 0}, --Frost Ward r7 - [11426] = {24, nil, 24, 24, 24, 5}, --Ice Barrier r1 - [13031] = {24, nil, 24, 24, 24, 5}, --Ice Barrier r2 - [13032] = {24, nil, 24, 24, 24, 5}, --Ice Barrier r3 - [13033] = {24, nil, 24, 24, 24, 5}, --Ice Barrier r4 - [27134] = {24, nil, 24, 24, 24, 5}, --Ice Barrier r5 - [33405] = {24, nil, 24, 24, 24, 5}, --Ice Barrier r6 - [43038] = {24, nil, 24, 24, 24, 5}, --Ice Barrier r7 - [43039] = {24, nil, 24, 24, 24, 5}, --Ice Barrier r8 - [45438] = {240, nil, 240, 240, 240, 0}, --Ice Block - [12472] = {144, nil, 144, 144, 144, 0}, --Icy Veins - [31687] = {144, nil, 144, 144, 144, 5}, --Summon Water Elemental + 27134, 33405, 43038, 43039, 45438, 12472, 31687}, 480, 480, 384, 5, "", "cdreset", false}, --Cold Snap + [44572] = {30, nil, 30, 30, 30, 5, "", "stun", false}, --Deep Freeze + [122] = {20, nil, 20, 20, 20, 0, "", "cc", false}, --Frost Nova r1 + [865] = {20, nil, 20, 20, 20, 0, "", "cc", false}, --Frost Nova r2 + [6131] = {20, nil, 20, 20, 20, 0, "", "cc", false}, --Frost Nova r3 + [10230] = {20, nil, 20, 20, 20, 0, "", "cc", false}, --Frost Nova r4 + [27088] = {20, nil, 20, 20, 20, 0, "", "cc", false}, --Frost Nova r5 + [42917] = {20, nil, 20, 20, 20, 0, "", "cc", false}, --Frost Nova r6 + [6143] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Frost Ward r1 + [8461] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Frost Ward r2 + [8462] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Frost Ward r3 + [10177] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Frost Ward r4 + [28609] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Frost Ward r5 + [32796] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Frost Ward r6 + [43012] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Frost Ward r7 + [11426] = {24, nil, 24, 24, 24, 5, "", "shield", false}, --Ice Barrier r1 + [13031] = {24, nil, 24, 24, 24, 5, "", "shield", false}, --Ice Barrier r2 + [13032] = {24, nil, 24, 24, 24, 5, "", "shield", false}, --Ice Barrier r3 + [13033] = {24, nil, 24, 24, 24, 5, "", "shield", false}, --Ice Barrier r4 + [27134] = {24, nil, 24, 24, 24, 5, "", "shield", false}, --Ice Barrier r5 + [33405] = {24, nil, 24, 24, 24, 5, "", "shield", false}, --Ice Barrier r6 + [43038] = {24, nil, 24, 24, 24, 5, "", "shield", false}, --Ice Barrier r7 + [43039] = {24, nil, 24, 24, 24, 5, "", "shield", false}, --Ice Barrier r8 + [45438] = {240, nil, 240, 240, 240, 0, "", "anticc", false}, --Ice Block + [12472] = {144, nil, 144, 144, 144, 0, "", "nuke", false}, --Icy Veins + [31687] = {144, nil, 144, 144, 144, 5, "", "nuke", false}, --Summon Water Elemental --Warlock --Total 10 (12 with pets) --Affliction - [6789] = {120, nil, 120, 120, 120, 0}, --Death Coil r1 - [17925] = {120, nil, 120, 120, 120, 0}, --Death Coil r2 - [17962] = {120, nil, 120, 120, 120, 0}, --Death Coil r3 - [27223] = {120, nil, 120, 120, 120, 0}, --Death Coil r4 - [47859] = {120, nil, 120, 120, 120, 0}, --Death Coil r5 - [47860] = {120, nil, 120, 120, 120, 0}, --Death Coil r6 - [5484] = {40, nil, 40, 40, 40, 0}, --Howl of Terror r1 - [17928] = {40, nil, 40, 40, 40, 0}, --Howl of Terror r2 + [6789] = {120, nil, 120, 120, 120, 0, "", "cc", false}, --Death Coil r1 + [17925] = {120, nil, 120, 120, 120, 0, "", "cc", false}, --Death Coil r2 + [17962] = {120, nil, 120, 120, 120, 0, "", "cc", false}, --Death Coil r3 + [27223] = {120, nil, 120, 120, 120, 0, "", "cc", false}, --Death Coil r4 + [47859] = {120, nil, 120, 120, 120, 0, "", "cc", false}, --Death Coil r5 + [47860] = {120, nil, 120, 120, 120, 0, "", "cc", false}, --Death Coil r6 + [5484] = {40, nil, 40, 40, 40, 0, "", "cc", false}, --Howl of Terror r1 + [17928] = {40, nil, 40, 40, 40, 0, "", "cc", false}, --Howl of Terror r2 --Detection - [30108] = {0, nil, 0, 0, 0, 3}, --Unstable Affliction r1 - [30404] = {0, nil, 0, 0, 0, 3}, --Unstable Affliction r2 - [30405] = {0, nil, 0, 0, 0, 3}, --Unstable Affliction r3 - [47841] = {0, nil, 0, 0, 0, 3}, --Unstable Affliction r4 - [47843] = {0, nil, 0, 0, 0, 3}, --Unstable Affliction r5 - [48181] = {0, nil, 0, 0, 0, 3}, --Haunt r1 - [59161] = {0, nil, 0, 0, 0, 3}, --Haunt r2 - [59163] = {0, nil, 0, 0, 0, 3}, --Haunt r3 - [59164] = {0, nil, 0, 0, 0, 3}, --Haunt r4 - [18223] = {0, nil, 0, 0, 0, 3}, --Curse of Exhaustion + [30108] = {0, nil, 0, 0, 0, 3, "", "", false}, --Unstable Affliction r1 + [30404] = {0, nil, 0, 0, 0, 3, "", "", false}, --Unstable Affliction r2 + [30405] = {0, nil, 0, 0, 0, 3, "", "", false}, --Unstable Affliction r3 + [47841] = {0, nil, 0, 0, 0, 3, "", "", false}, --Unstable Affliction r4 + [47843] = {0, nil, 0, 0, 0, 3, "", "", false}, --Unstable Affliction r5 + [48181] = {0, nil, 0, 0, 0, 3, "", "", false}, --Haunt r1 + [59161] = {0, nil, 0, 0, 0, 3, "", "", false}, --Haunt r2 + [59163] = {0, nil, 0, 0, 0, 3, "", "", false}, --Haunt r3 + [59164] = {0, nil, 0, 0, 0, 3, "", "", false}, --Haunt r4 + [18223] = {0, nil, 0, 0, 0, 3, "", "", false}, --Curse of Exhaustion --Demonology - [54785] = {45, nil, 45, 45, 45, 4}, --Demon Charge - [48020] = {30, nil, 30, 30, 30, 0}, --Demonic Circle: Teleport - [47193] = {42, nil, 42, 42, 42, 4}, --Demonic Empowerment - [18708] = {126, nil, 180, 126, 180, 0}, --Fel Domination - [50589] = {30, nil, 30, 30, 30, 4}, --Immolation Aura - [47241] = {130, nil, 130, 130, 130, 4}, --Metamorphosis - [6229] = {30, nil, 30, 30, 30, 0}, --Shadow Ward r1 - [11739] = {30, nil, 30, 30, 30, 0}, --Shadow Ward r2 - [11740] = {30, nil, 30, 30, 30, 0}, --Shadow Ward r3 - [28610] = {30, nil, 30, 30, 30, 0}, --Shadow Ward r4 - [47890] = {30, nil, 30, 30, 30, 0}, --Shadow Ward r5 - [47891] = {30, nil, 30, 30, 30, 0}, --Shadow Ward r6 + [54785] = {45, nil, 45, 45, 45, 4, "", "stun", false}, --Demon Charge + [48020] = {30, nil, 30, 30, 30, 0, "", "gapcloser", false}, --Demonic Circle: Teleport + [47193] = {42, nil, 42, 42, 42, 4, "", "nuke", false}, --Demonic Empowerment + [18708] = {126, nil, 180, 126, 180, 0, "", "nuke", false}, --Fel Domination + [50589] = {30, nil, 30, 30, 30, 4, "", "nuke", false}, --Immolation Aura + [47241] = {130, nil, 130, 130, 130, 4, "", "nuke", false}, --Metamorphosis + [6229] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Shadow Ward r1 + [11739] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Shadow Ward r2 + [11740] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Shadow Ward r3 + [28610] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Shadow Ward r4 + [47890] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Shadow Ward r5 + [47891] = {30, nil, 30, 30, 30, 0, "", "shield", false}, --Shadow Ward r6 --Detection - [47193] = {0, nil, 0, 0, 0, 0}, --Demonic Empowerment + [47193] = {0, nil, 0, 0, 0, 0, "", "uncategorized", false}, --Demonic Empowerment --Destruction - [30283] = {20, nil, 20, 20, 20, 5}, --Shadowfury r1 - [30413] = {20, nil, 20, 20, 20, 5}, --Shadowfury r2 - [30414] = {20, nil, 20, 20, 20, 5}, --Shadowfury r3 - [47846] = {20, nil, 20, 20, 20, 5}, --Shadowfury r4 - [47847] = {20, nil, 20, 20, 20, 5}, --Shadowfury r5 + [30283] = {20, nil, 20, 20, 20, 5, "", "stun", false}, --Shadowfury r1 + [30413] = {20, nil, 20, 20, 20, 5, "", "stun", false}, --Shadowfury r2 + [30414] = {20, nil, 20, 20, 20, 5, "", "stun", false}, --Shadowfury r3 + [47846] = {20, nil, 20, 20, 20, 5, "", "stun", false}, --Shadowfury r4 + [47847] = {20, nil, 20, 20, 20, 5, "", "stun", false}, --Shadowfury r5 --Detection - [17962] = {0, nil, 0, 0, 0, 5}, --Conflagrate + [17962] = {0, nil, 0, 0, 0, 5, "", "", false}, --Conflagrate --Pets - [19647] = {24, nil, 0, 0, 0, 0}, --Spell Lock - [47986] = {60, nil, 0, 0, 0, 0}, --Sacrifice + [19647] = {24, nil, 0, 0, 0, 0, "", "silence", true}, --Spell Lock + [47986] = {60, nil, 0, 0, 0, 0, "", "defensive", true}, --Sacrifice --Druid --Total: 18 --Typhoon only triggers combat log event, when it hits something --Balance - [22812] = {60, nil, 60, 60, 60, 0}, --Barkskin - [33831] = {180, nil, 180, 180, 180, 3}, --Force of Nature - [29166] = {180, nil, 180, 180, 180, 0}, --Innervate - [16689] = {60, nil, 60, 60, 60, 0}, --Nature's Grasp r1 - [16810] = {60, nil, 60, 60, 60, 0}, --Nature's Grasp r2 - [16811] = {60, nil, 60, 60, 60, 0}, --Nature's Grasp r3 - [16812] = {60, nil, 60, 60, 60, 0}, --Nature's Grasp r4 - [16813] = {60, nil, 60, 60, 60, 0}, --Nature's Grasp r5 - [17329] = {60, nil, 60, 60, 60, 0}, --Nature's Grasp r6 - [27009] = {60, nil, 60, 60, 60, 0}, --Nature's Grasp r7 - [53312] = {60, nil, 60, 60, 60, 0}, --Nature's Grasp r8 - [48505] = {90, nil, 90, 90, 90, 3}, --Starfall r1 - [53199] = {90, nil, 90, 90, 90, 3}, --Starfall r2 - [53200] = {90, nil, 90, 90, 90, 3}, --Starfall r3 - [53201] = {90, nil, 90, 90, 90, 3}, --Starfall r4 - [61391] = {20, nil, 20, 20, 20, 3}, --Typhoon r1 - [61390] = {20, nil, 20, 20, 20, 3}, --Typhoon r2 - [61388] = {20, nil, 20, 20, 20, 3}, --Typhoon r3 - [61387] = {20, nil, 20, 20, 20, 3}, --Typhoon r4 - [53227] = {20, nil, 20, 20, 20, 3}, --Typhoon r5 + [22812] = {60, nil, 60, 60, 60, 0, "", "defensive", false}, --Barkskin + [33831] = {180, nil, 180, 180, 180, 3, "", "nuke", false}, --Force of Nature + [29166] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Innervate + [16689] = {60, nil, 60, 60, 60, 0, "", "cc", false}, --Nature's Grasp r1 + [16810] = {60, nil, 60, 60, 60, 0, "", "cc", false}, --Nature's Grasp r2 + [16811] = {60, nil, 60, 60, 60, 0, "", "cc", false}, --Nature's Grasp r3 + [16812] = {60, nil, 60, 60, 60, 0, "", "cc", false}, --Nature's Grasp r4 + [16813] = {60, nil, 60, 60, 60, 0, "", "cc", false}, --Nature's Grasp r5 + [17329] = {60, nil, 60, 60, 60, 0, "", "cc", false}, --Nature's Grasp r6 + [27009] = {60, nil, 60, 60, 60, 0, "", "cc", false}, --Nature's Grasp r7 + [53312] = {60, nil, 60, 60, 60, 0, "", "cc", false}, --Nature's Grasp r8 + [48505] = {90, nil, 90, 90, 90, 3, "", "nuke", false}, --Starfall r1 + [53199] = {90, nil, 90, 90, 90, 3, "", "nuke", false}, --Starfall r2 + [53200] = {90, nil, 90, 90, 90, 3, "", "nuke", false}, --Starfall r3 + [53201] = {90, nil, 90, 90, 90, 3, "", "nuke", false}, --Starfall r4 + [61391] = {20, nil, 20, 20, 20, 3, "", "gapcloser", false}, --Typhoon r1 + [61390] = {20, nil, 20, 20, 20, 3, "", "gapcloser", false}, --Typhoon r2 + [61388] = {20, nil, 20, 20, 20, 3, "", "gapcloser", false}, --Typhoon r3 + [61387] = {20, nil, 20, 20, 20, 3, "", "gapcloser", false}, --Typhoon r4 + [53227] = {20, nil, 20, 20, 20, 3, "", "gapcloser", false}, --Typhoon r5 --Feral - [5211] = {30, nil, 60, 30, 60, 0}, --Bash r1 - [6798] = {30, nil, 60, 30, 60, 0}, --Bash r2 - [8983] = {30, nil, 60, 30, 60, 0}, --Bash r3 - [50334] = {180, nil, 180, 180, 180, 4}, --Berserk - [1850] = {144, nil, 144, 144, 144, 0}, --Dash r1 - [9821] = {144, nil, 144, 144, 144, 0}, --Dash r2 - [33357] = {144, nil, 144, 144, 144, 0}, --Dash r3 - [5229] = {60, nil, 60, 60, 60, 0}, --Enrage - [16979] = {15, nil, 15, 15, 15, 0}, --Feral Charge - Bear - [49376] = {30, nil, 30, 30, 30, 0}, --Feral Charge - Cat - [22842] = {180, nil, 180, 180, 180, 0}, --Frenzied Regeneration - [22570] = {10, nil, 10, 10, 10, 0}, --Maim r1 - [49802] = {10, nil, 10, 10, 10, 0}, --Maim r2 - [61336] = {180, nil, 180, 180, 180, 0}, --Survival Instinct - [5217] = {30, nil, 30, 30, 30, 0}, --Tiger's Fury r1 - [6793] = {30, nil, 30, 30, 30, 0}, --Tiger's Fury r2 - [9845] = {30, nil, 30, 30, 30, 0}, --Tiger's Fury r3 - [9856] = {30, nil, 30, 30, 30, 0}, --Tiger's Fury r4 - [50212] = {30, nil, 30, 30, 30, 0}, --Tiger's Fury r5 - [50213] = {30, nil, 30, 30, 30, 0}, --Tiger's Fury r6 + [5211] = {30, nil, 60, 30, 60, 0, "", "stun", false}, --Bash r1 + [6798] = {30, nil, 60, 30, 60, 0, "", "stun", false}, --Bash r2 + [8983] = {30, nil, 60, 30, 60, 0, "", "stun", false}, --Bash r3 + [50334] = {180, nil, 180, 180, 180, 4, "", "nuke", false}, --Berserk + [1850] = {144, nil, 144, 144, 144, 0, "", "defensive", false}, --Dash r1 + [9821] = {144, nil, 144, 144, 144, 0, "", "defensive", false}, --Dash r2 + [33357] = {144, nil, 144, 144, 144, 0, "", "defensive", false}, --Dash r3 + [5229] = {60, nil, 60, 60, 60, 0, "", "uncategorized", false}, --Enrage + [16979] = {15, nil, 15, 15, 15, 0, "", "silence", false}, --Feral Charge - Bear + [49376] = {30, nil, 30, 30, 30, 0, "", "gapcloser", false}, --Feral Charge - Cat + [22842] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Frenzied Regeneration + [22570] = {10, nil, 10, 10, 10, 0, "", "stun", false}, --Maim r1 + [49802] = {10, nil, 10, 10, 10, 0, "", "stun", false}, --Maim r2 + [61336] = {180, nil, 180, 180, 180, 0, "", "defensive", false}, --Survival Instinct + [5217] = {30, nil, 30, 30, 30, 0, "", "uncategorized", false}, --Tiger's Fury r1 + [6793] = {30, nil, 30, 30, 30, 0, "", "uncategorized", false}, --Tiger's Fury r2 + [9845] = {30, nil, 30, 30, 30, 0, "", "uncategorized", false}, --Tiger's Fury r3 + [9856] = {30, nil, 30, 30, 30, 0, "", "uncategorized", false}, --Tiger's Fury r4 + [50212] = {30, nil, 30, 30, 30, 0, "", "uncategorized", false}, --Tiger's Fury r5 + [50213] = {30, nil, 30, 30, 30, 0, "", "uncategorized", false}, --Tiger's Fury r6 --Detection - [33876] = {0, nil, 0, 0, 0, 4}, --Mangle (Cat) r1 - [33982] = {0, nil, 0, 0, 0, 4}, --Mangle (Cat) r2 - [33983] = {0, nil, 0, 0, 0, 4}, --Mangle (Cat) r3 - [48565] = {0, nil, 0, 0, 0, 4}, --Mangle (Cat) r4 - [48566] = {0, nil, 0, 0, 0, 4}, --Mangle (Cat) r5 - [33878] = {0, nil, 0, 0, 0, 4}, --Mangle (Bear) r1 - [33986] = {0, nil, 0, 0, 0, 4}, --Mangle (Bear) r2 - [33987] = {0, nil, 0, 0, 0, 4}, --Mangle (Bear) r3 - [48563] = {0, nil, 0, 0, 0, 4}, --Mangle (Bear) r4 - [48564] = {0, nil, 0, 0, 0, 4}, --Mangle (Bear) r5 + [33876] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Cat) r1 + [33982] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Cat) r2 + [33983] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Cat) r3 + [48565] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Cat) r4 + [48566] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Cat) r5 + [33878] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Bear) r1 + [33986] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Bear) r2 + [33987] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Bear) r3 + [48563] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Bear) r4 + [48564] = {0, nil, 0, 0, 0, 4, "", "", false}, --Mangle (Bear) r5 --Restoration - [17116] = {180, nil, 180, 180, 180, 5}, --Nature's Swiftness - [18562] = {15, nil, 15, 15, 15, 5}, --Swiftmend - [740] = {192, nil, 480, 480, 192, 0}, --Tranquility r1 - [8918] = {192, nil, 480, 480, 192, 0}, --Tranquility r2 - [9862] = {192, nil, 480, 480, 192, 0}, --Tranquility r3 - [9863] = {192, nil, 480, 480, 192, 0}, --Tranquility r4 - [26983] = {192, nil, 480, 480, 192, 0}, --Tranquility r5 - [48446] = {192, nil, 480, 480, 192, 0}, --Tranquility r6 - [48447] = {192, nil, 480, 480, 192, 0}, --Tranquility r7 + [17116] = {180, nil, 180, 180, 180, 5, "", "defensive", false}, --Nature's Swiftness + [18562] = {15, nil, 15, 15, 15, 5, "", "defensive", false}, --Swiftmend + [740] = {192, nil, 480, 480, 192, 0, "", "defensive", false}, --Tranquility r1 + [8918] = {192, nil, 480, 480, 192, 0, "", "defensive", false}, --Tranquility r2 + [9862] = {192, nil, 480, 480, 192, 0, "", "defensive", false}, --Tranquility r3 + [9863] = {192, nil, 480, 480, 192, 0, "", "defensive", false}, --Tranquility r4 + [26983] = {192, nil, 480, 480, 192, 0, "", "defensive", false}, --Tranquility r5 + [48446] = {192, nil, 480, 480, 192, 0, "", "defensive", false}, --Tranquility r6 + [48447] = {192, nil, 480, 480, 192, 0, "", "defensive", false}, --Tranquility r7 --Detection - [48438] = {0, nil, 0, 0, 0, 5}, --Wild Growth r1 - [53248] = {0, nil, 0, 0, 0, 5}, --Wild Growth r2 - [53249] = {0, nil, 0, 0, 0, 5}, --Wild Growth r3 - [53251] = {0, nil, 0, 0, 0, 5}, --Wild Growth r4 - [33891] = {0, nil, 0, 0, 0, 5}, --Tree of Life + [48438] = {0, nil, 0, 0, 0, 5, "", "", false}, --Wild Growth r1 + [53248] = {0, nil, 0, 0, 0, 5, "", "", false}, --Wild Growth r2 + [53249] = {0, nil, 0, 0, 0, 5, "", "", false}, --Wild Growth r3 + [53251] = {0, nil, 0, 0, 0, 5, "", "", false}, --Wild Growth r4 + [33891] = {0, nil, 0, 0, 0, 5, "", "", false}, --Tree of Life } \ No newline at end of file