updates
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
|
||||
|
||||
local dversion = 348
|
||||
local dversion = 350
|
||||
local major, minor = "DetailsFramework-1.0", dversion
|
||||
local DF, oldminor = LibStub:NewLibrary (major, minor)
|
||||
|
||||
|
||||
+148
-204
@@ -1495,18 +1495,17 @@ function DF:IconPick (callback, close_when_select, param1, param2)
|
||||
|
||||
DF.IconPickFrame = CreateFrame ("frame", "DetailsFrameworkIconPickFrame", UIParent, "BackdropTemplate")
|
||||
tinsert (UISpecialFrames, "DetailsFrameworkIconPickFrame")
|
||||
DF.IconPickFrame:SetFrameStrata ("TOOLTIP")
|
||||
DF.IconPickFrame:SetFrameStrata ("FULLSCREEN")
|
||||
|
||||
DF.IconPickFrame:SetPoint ("center", UIParent, "center")
|
||||
DF.IconPickFrame:SetWidth (350)
|
||||
DF.IconPickFrame:SetHeight (277)
|
||||
DF.IconPickFrame:SetWidth (416)
|
||||
DF.IconPickFrame:SetHeight (350)
|
||||
DF.IconPickFrame:EnableMouse (true)
|
||||
DF.IconPickFrame:SetMovable (true)
|
||||
|
||||
DF:CreateTitleBar (DF.IconPickFrame, "Icon Picker")
|
||||
DF:CreateTitleBar (DF.IconPickFrame, "Details! Framework Icon Picker")
|
||||
|
||||
DF.IconPickFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
|
||||
DF.IconPickFrame:SetBackdropBorderColor (0, 0, 0)
|
||||
DF.IconPickFrame:SetBackdropColor (24/255, 24/255, 24/255, .8)
|
||||
DF.IconPickFrame:SetFrameLevel (5000)
|
||||
@@ -1559,12 +1558,12 @@ function DF:IconPick (callback, close_when_select, param1, param2)
|
||||
if (DF.IconPickFrame.searching == "") then
|
||||
DF.IconPickFrameScroll:Show()
|
||||
DF.IconPickFrame.searching = nil
|
||||
DF.IconPickFrame.updateFunc()
|
||||
DF.IconPickFrameScroll.RefreshIcons()
|
||||
else
|
||||
DF.IconPickFrameScroll:Hide()
|
||||
FauxScrollFrame_SetOffset (DF.IconPickFrame, 1)
|
||||
DF.IconPickFrame.last_filter_index = 1
|
||||
DF.IconPickFrame.updateFunc()
|
||||
DF.IconPickFrameScroll.RefreshIcons()
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -1611,51 +1610,46 @@ function DF:IconPick (callback, close_when_select, param1, param2)
|
||||
DF.IconPickFrame.customIconAccept:SetPoint ("left", DF.IconPickFrame.customIconEntry, "right", 2, 0)
|
||||
|
||||
--fill with icons
|
||||
|
||||
local MACRO_ICON_FILENAMES = {}
|
||||
local SPELLNAMES_CACHE = {}
|
||||
|
||||
local texturePathGetter = DF.IconPickFrame:CreateTexture(nil, "overlay")
|
||||
|
||||
DF.IconPickFrame:SetScript ("OnShow", function()
|
||||
|
||||
MACRO_ICON_FILENAMES [1] = "INV_MISC_QUESTIONMARK"
|
||||
DF.IconPickFrame:SetScript("OnShow", function()
|
||||
MACRO_ICON_FILENAMES[1] = "INV_MISC_QUESTIONMARK"
|
||||
local index = 2
|
||||
|
||||
for i = 1, GetNumSpellTabs() do
|
||||
local tab, tabTex, offset, numSpells, _ = GetSpellTabInfo (i)
|
||||
local tab, tabTex, offset, numSpells, _ = GetSpellTabInfo(i)
|
||||
offset = offset + 1
|
||||
local tabEnd = offset + numSpells
|
||||
|
||||
for j = offset, tabEnd - 1 do
|
||||
--to get spell info by slot, you have to pass in a pet argument
|
||||
local spellType, ID = GetSpellBookItemInfo (j, "player")
|
||||
local spellType, ID = GetSpellBookItemInfo(j, "player")
|
||||
if (spellType ~= "FLYOUT") then
|
||||
MACRO_ICON_FILENAMES [index] = GetSpellBookItemTexture (j, "player") or 0
|
||||
SPELLNAMES_CACHE [index] = GetSpellInfo (ID)
|
||||
MACRO_ICON_FILENAMES [index] = GetSpellBookItemTexture(j, "player") or 0
|
||||
SPELLNAMES_CACHE [index] = GetSpellInfo(ID)
|
||||
index = index + 1
|
||||
|
||||
|
||||
elseif (spellType == "FLYOUT") then
|
||||
local _, _, numSlots, isKnown = GetFlyoutInfo (ID)
|
||||
local _, _, numSlots, isKnown = GetFlyoutInfo(ID)
|
||||
if (isKnown and numSlots > 0) then
|
||||
for k = 1, numSlots do
|
||||
local spellID, overrideSpellID, isKnown = GetFlyoutSlotInfo (ID, k)
|
||||
local spellID, overrideSpellID, isKnown = GetFlyoutSlotInfo(ID, k)
|
||||
if (isKnown) then
|
||||
MACRO_ICON_FILENAMES [index] = GetSpellTexture (spellID) or 0
|
||||
SPELLNAMES_CACHE [index] = GetSpellInfo (spellID)
|
||||
MACRO_ICON_FILENAMES [index] = GetSpellTexture(spellID) or 0
|
||||
SPELLNAMES_CACHE [index] = GetSpellInfo(spellID)
|
||||
index = index + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
GetLooseMacroItemIcons (MACRO_ICON_FILENAMES)
|
||||
GetLooseMacroIcons (MACRO_ICON_FILENAMES)
|
||||
GetMacroIcons (MACRO_ICON_FILENAMES)
|
||||
GetMacroItemIcons (MACRO_ICON_FILENAMES)
|
||||
GetLooseMacroItemIcons(MACRO_ICON_FILENAMES)
|
||||
GetLooseMacroIcons(MACRO_ICON_FILENAMES)
|
||||
GetMacroIcons(MACRO_ICON_FILENAMES)
|
||||
GetMacroItemIcons(MACRO_ICON_FILENAMES)
|
||||
|
||||
--reset the custom icon text entry
|
||||
DF.IconPickFrame.customIconEntry:SetText ("")
|
||||
@@ -1663,16 +1657,16 @@ function DF:IconPick (callback, close_when_select, param1, param2)
|
||||
DF.IconPickFrame.search:SetText ("")
|
||||
end)
|
||||
|
||||
DF.IconPickFrame:SetScript ("OnHide", function()
|
||||
wipe (MACRO_ICON_FILENAMES)
|
||||
wipe (SPELLNAMES_CACHE)
|
||||
DF.IconPickFrame:SetScript("OnHide", function()
|
||||
wipe(MACRO_ICON_FILENAMES)
|
||||
wipe(SPELLNAMES_CACHE)
|
||||
DF.IconPickFrame.preview:Hide()
|
||||
collectgarbage()
|
||||
end)
|
||||
|
||||
DF.IconPickFrame.buttons = {}
|
||||
|
||||
local OnClickFunction = function (self)
|
||||
local onClickFunction = function(self)
|
||||
|
||||
DF:QuickDispatch (DF.IconPickFrame.callback, self.icon:GetTexture(), DF.IconPickFrame.param1, DF.IconPickFrame.param2)
|
||||
|
||||
@@ -1681,208 +1675,158 @@ function DF:IconPick (callback, close_when_select, param1, param2)
|
||||
end
|
||||
end
|
||||
|
||||
local onenter = function (self)
|
||||
local onEnter = function (self)
|
||||
DF.IconPickFrame.preview:SetPoint ("bottom", self, "top", 0, 2)
|
||||
DF.IconPickFrame.preview.icon:SetTexture (self.icon:GetTexture())
|
||||
DF.IconPickFrame.preview.icon:SetTexture(self.icon:GetTexture())
|
||||
DF.IconPickFrame.preview:Show()
|
||||
self.icon:SetBlendMode ("ADD")
|
||||
end
|
||||
local onleave = function (self)
|
||||
local onLeave = function (self)
|
||||
DF.IconPickFrame.preview:Hide()
|
||||
self.icon:SetBlendMode ("BLEND")
|
||||
end
|
||||
|
||||
local backdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tile = true, tileSize = 16,
|
||||
insets = {left = 0, right = 0, top = 0, bottom = 0}, edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1}
|
||||
|
||||
for i = 0, 9 do
|
||||
local newcheck = CreateFrame ("Button", "DetailsFrameworkIconPickFrameButton"..(i+1), DF.IconPickFrame, "BackdropTemplate")
|
||||
local image = newcheck:CreateTexture ("DetailsFrameworkIconPickFrameButton"..(i+1).."Icon", "overlay")
|
||||
newcheck.icon = image
|
||||
image:SetPoint ("topleft", newcheck, "topleft", 2, -2) image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2)
|
||||
newcheck:SetSize (30, 28)
|
||||
newcheck:SetBackdrop (backdrop)
|
||||
|
||||
newcheck:SetScript ("OnClick", OnClickFunction)
|
||||
newcheck.param1 = i+1
|
||||
|
||||
newcheck:SetPoint ("topleft", DF.IconPickFrame, "topleft", 12 + (i*30), -60)
|
||||
newcheck:SetID (i+1)
|
||||
DF.IconPickFrame.buttons [#DF.IconPickFrame.buttons+1] = newcheck
|
||||
newcheck:SetScript ("OnEnter", onenter)
|
||||
newcheck:SetScript ("OnLeave", onleave)
|
||||
end
|
||||
for i = 11, 20 do
|
||||
local newcheck = CreateFrame ("Button", "DetailsFrameworkIconPickFrameButton"..i, DF.IconPickFrame, "BackdropTemplate")
|
||||
local image = newcheck:CreateTexture ("DetailsFrameworkIconPickFrameButton"..i.."Icon", "overlay")
|
||||
newcheck.icon = image
|
||||
image:SetPoint ("topleft", newcheck, "topleft", 2, -2) image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2)
|
||||
newcheck:SetSize (30, 28)
|
||||
newcheck:SetBackdrop (backdrop)
|
||||
|
||||
newcheck:SetScript ("OnClick", OnClickFunction)
|
||||
newcheck.param1 = i
|
||||
|
||||
newcheck:SetPoint ("topleft", "DetailsFrameworkIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
|
||||
newcheck:SetID (i)
|
||||
DF.IconPickFrame.buttons [#DF.IconPickFrame.buttons+1] = newcheck
|
||||
newcheck:SetScript ("OnEnter", onenter)
|
||||
newcheck:SetScript ("OnLeave", onleave)
|
||||
end
|
||||
for i = 21, 30 do
|
||||
local newcheck = CreateFrame ("Button", "DetailsFrameworkIconPickFrameButton"..i, DF.IconPickFrame, "BackdropTemplate")
|
||||
local image = newcheck:CreateTexture ("DetailsFrameworkIconPickFrameButton"..i.."Icon", "overlay")
|
||||
newcheck.icon = image
|
||||
image:SetPoint ("topleft", newcheck, "topleft", 2, -2) image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2)
|
||||
newcheck:SetSize (30, 28)
|
||||
newcheck:SetBackdrop (backdrop)
|
||||
|
||||
newcheck:SetScript ("OnClick", OnClickFunction)
|
||||
newcheck.param1 = i
|
||||
|
||||
newcheck:SetPoint ("topleft", "DetailsFrameworkIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
|
||||
newcheck:SetID (i)
|
||||
DF.IconPickFrame.buttons [#DF.IconPickFrame.buttons+1] = newcheck
|
||||
newcheck:SetScript ("OnEnter", onenter)
|
||||
newcheck:SetScript ("OnLeave", onleave)
|
||||
end
|
||||
for i = 31, 40 do
|
||||
local newcheck = CreateFrame ("Button", "DetailsFrameworkIconPickFrameButton"..i, DF.IconPickFrame, "BackdropTemplate")
|
||||
local image = newcheck:CreateTexture ("DetailsFrameworkIconPickFrameButton"..i.."Icon", "overlay")
|
||||
newcheck.icon = image
|
||||
image:SetPoint ("topleft", newcheck, "topleft", 2, -2) image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2)
|
||||
newcheck:SetSize (30, 28)
|
||||
newcheck:SetBackdrop (backdrop)
|
||||
|
||||
newcheck:SetScript ("OnClick", OnClickFunction)
|
||||
newcheck.param1 = i
|
||||
|
||||
newcheck:SetPoint ("topleft", "DetailsFrameworkIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
|
||||
newcheck:SetID (i)
|
||||
DF.IconPickFrame.buttons [#DF.IconPickFrame.buttons+1] = newcheck
|
||||
newcheck:SetScript ("OnEnter", onenter)
|
||||
newcheck:SetScript ("OnLeave", onleave)
|
||||
end
|
||||
for i = 41, 50 do
|
||||
local newcheck = CreateFrame ("Button", "DetailsFrameworkIconPickFrameButton"..i, DF.IconPickFrame, "BackdropTemplate")
|
||||
local image = newcheck:CreateTexture ("DetailsFrameworkIconPickFrameButton"..i.."Icon", "overlay")
|
||||
newcheck.icon = image
|
||||
image:SetPoint ("topleft", newcheck, "topleft", 2, -2) image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2)
|
||||
newcheck:SetSize (30, 28)
|
||||
newcheck:SetBackdrop (backdrop)
|
||||
|
||||
newcheck:SetScript ("OnClick", OnClickFunction)
|
||||
newcheck.param1 = i
|
||||
|
||||
newcheck:SetPoint ("topleft", "DetailsFrameworkIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
|
||||
newcheck:SetID (i)
|
||||
DF.IconPickFrame.buttons [#DF.IconPickFrame.buttons+1] = newcheck
|
||||
newcheck:SetScript ("OnEnter", onenter)
|
||||
newcheck:SetScript ("OnLeave", onleave)
|
||||
end
|
||||
for i = 51, 60 do
|
||||
local newcheck = CreateFrame ("Button", "DetailsFrameworkIconPickFrameButton"..i, DF.IconPickFrame, "BackdropTemplate")
|
||||
local image = newcheck:CreateTexture ("DetailsFrameworkIconPickFrameButton"..i.."Icon", "overlay")
|
||||
newcheck.icon = image
|
||||
image:SetPoint ("topleft", newcheck, "topleft", 2, -2) image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2)
|
||||
newcheck:SetSize (30, 28)
|
||||
newcheck:SetBackdrop (backdrop)
|
||||
|
||||
newcheck:SetScript ("OnClick", OnClickFunction)
|
||||
newcheck.param1 = i
|
||||
|
||||
newcheck:SetPoint ("topleft", "DetailsFrameworkIconPickFrameButton"..(i-10), "bottomleft", 0, -1)
|
||||
newcheck:SetID (i)
|
||||
DF.IconPickFrame.buttons [#DF.IconPickFrame.buttons+1] = newcheck
|
||||
newcheck:SetScript ("OnEnter", onenter)
|
||||
newcheck:SetScript ("OnLeave", onleave)
|
||||
end
|
||||
|
||||
for _, button in ipairs(DF.IconPickFrame.buttons) do
|
||||
button:SetBackdropBorderColor(0, 0, 0, 1)
|
||||
end
|
||||
|
||||
local scroll = CreateFrame ("ScrollFrame", "DetailsFrameworkIconPickFrameScroll", DF.IconPickFrame, "ListScrollFrameTemplate", "BackdropTemplate")
|
||||
DF:ReskinSlider (scroll)
|
||||
local width = 412
|
||||
local height = 248
|
||||
local linesAmount = 6
|
||||
local lineHeight = 40
|
||||
|
||||
local ChecksFrame_Update = function (self)
|
||||
|
||||
local numMacroIcons = #MACRO_ICON_FILENAMES
|
||||
local macroPopupIcon, macroPopupButton
|
||||
local macroPopupOffset = FauxScrollFrame_GetOffset (scroll)
|
||||
local index
|
||||
|
||||
local texture
|
||||
local filter
|
||||
if (DF.IconPickFrame.searching) then
|
||||
filter = string_lower (DF.IconPickFrame.searching)
|
||||
end
|
||||
|
||||
local pool
|
||||
local shown = 0
|
||||
|
||||
if (filter and filter ~= "") then
|
||||
--do the filter
|
||||
pool = {}
|
||||
for i = 1, #SPELLNAMES_CACHE do
|
||||
if (SPELLNAMES_CACHE [i] and SPELLNAMES_CACHE [i]:lower():find (filter)) then
|
||||
pool [#pool+1] = MACRO_ICON_FILENAMES [i]
|
||||
shown = shown + 1
|
||||
local updateIconScroll = function(self, data, offset, totalLines)
|
||||
for i = 1, totalLines do
|
||||
local index = i + offset
|
||||
local iconsInThisLine = data[index]
|
||||
if (iconsInThisLine) then
|
||||
local line = self:GetLine(i)
|
||||
for o = 1, #iconsInThisLine do
|
||||
local _, _, texture = GetSpellInfo(iconsInThisLine[o])
|
||||
if (texture) then
|
||||
line.buttons[o].icon:SetTexture(texture)
|
||||
line.buttons[o].texture = texture
|
||||
else
|
||||
line.buttons[o].icon:SetTexture(iconsInThisLine[o])
|
||||
line.buttons[o].texture = iconsInThisLine[o]
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
shown = nil
|
||||
end
|
||||
|
||||
if (not pool) then
|
||||
pool = MACRO_ICON_FILENAMES
|
||||
end
|
||||
|
||||
for i = 1, 60 do
|
||||
macroPopupIcon = _G ["DetailsFrameworkIconPickFrameButton"..i.."Icon"]
|
||||
macroPopupButton = _G ["DetailsFrameworkIconPickFrameButton"..i]
|
||||
index = (macroPopupOffset * 10) + i
|
||||
texture = pool [index]
|
||||
if ( index <= numMacroIcons and texture ) then
|
||||
|
||||
if (type (texture) == "number") then
|
||||
macroPopupIcon:SetTexture (texture)
|
||||
else
|
||||
macroPopupIcon:SetTexture ("INTERFACE\\ICONS\\" .. texture)
|
||||
end
|
||||
|
||||
macroPopupIcon:SetTexCoord (4/64, 60/64, 4/64, 60/64)
|
||||
macroPopupButton.IconID = index
|
||||
macroPopupButton:Show()
|
||||
else
|
||||
macroPopupButton:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
pool = nil
|
||||
|
||||
-- Scrollbar stuff
|
||||
FauxScrollFrame_Update (scroll, ceil ((shown or numMacroIcons) / 10) , 5, 20 )
|
||||
end
|
||||
|
||||
DF.IconPickFrame.updateFunc = ChecksFrame_Update
|
||||
|
||||
scroll:SetPoint ("topleft", DF.IconPickFrame, "topleft", -18, -58)
|
||||
scroll:SetWidth (330)
|
||||
scroll:SetHeight (178)
|
||||
scroll:SetScript ("OnVerticalScroll", function (self, offset) FauxScrollFrame_OnVerticalScroll (scroll, offset, 20, ChecksFrame_Update) end)
|
||||
scroll.update = ChecksFrame_Update
|
||||
local lower = string.lower
|
||||
|
||||
local scroll = DF:CreateScrollBox(DF.IconPickFrame, "DetailsFrameworkIconPickFrameScroll", updateIconScroll, {}, width, height, linesAmount, lineHeight)
|
||||
DF:ReskinSlider(scroll)
|
||||
scroll:SetPoint ("topleft", DF.IconPickFrame, "topleft", 2, -58)
|
||||
|
||||
function scroll.RefreshIcons()
|
||||
--build icon list
|
||||
local iconList = {}
|
||||
local numMacroIcons = #MACRO_ICON_FILENAMES
|
||||
|
||||
local filter
|
||||
if (DF.IconPickFrame.searching) then
|
||||
filter = lower(DF.IconPickFrame.searching)
|
||||
end
|
||||
|
||||
if (filter and filter ~= "") then
|
||||
local index
|
||||
local currentTable
|
||||
for i = 1, #SPELLNAMES_CACHE do
|
||||
if (SPELLNAMES_CACHE[i] and SPELLNAMES_CACHE[i]:lower():find(filter)) then
|
||||
if (not index) then
|
||||
index = 1
|
||||
local t = {}
|
||||
iconList[#iconList+1] = t
|
||||
currentTable = t
|
||||
end
|
||||
|
||||
currentTable[index] = SPELLNAMES_CACHE[i]
|
||||
|
||||
index = index + 1
|
||||
if (index == 11) then
|
||||
index = nil
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
else
|
||||
for i = 1, #SPELLNAMES_CACHE, 10 do
|
||||
local t = {}
|
||||
iconList[#iconList+1] = t
|
||||
for o = i, i+9 do
|
||||
if (SPELLNAMES_CACHE[o]) then
|
||||
t[#t+1] = SPELLNAMES_CACHE[o]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, #MACRO_ICON_FILENAMES, 10 do
|
||||
local t = {}
|
||||
iconList[#iconList+1] = t
|
||||
for o = i, i+9 do
|
||||
if (MACRO_ICON_FILENAMES[o]) then
|
||||
t[#t+1] = MACRO_ICON_FILENAMES[o]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--set data and refresh
|
||||
scroll:SetData(iconList)
|
||||
scroll:Refresh()
|
||||
end
|
||||
|
||||
--create the lines and button of the scroll box
|
||||
for i = 1, linesAmount do
|
||||
scroll:CreateLine(function(self, index)
|
||||
local line = CreateFrame("button", "$parentLine" .. index, self, "BackdropTemplate")
|
||||
line:SetPoint("topleft", self, "topleft", 1, -((index-1)*(lineHeight+1)) - 1)
|
||||
line:SetSize(width - 2, lineHeight)
|
||||
line:SetBackdrop({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
line:SetBackdropColor(.2, .2, .2, .5)
|
||||
line.buttons = {}
|
||||
|
||||
local lastButton
|
||||
|
||||
for o = 1, 10 do
|
||||
local button = CreateFrame("button", "$parentIcon" .. o, line)
|
||||
if (not lastButton) then
|
||||
button:SetPoint("left", line, "left", 0, 0)
|
||||
else
|
||||
button:SetPoint("left", lastButton, "right", 1, 0)
|
||||
end
|
||||
button:SetSize(lineHeight, lineHeight)
|
||||
button.icon = button:CreateTexture("$parentIcon", "overlay")
|
||||
button.icon:SetAllPoints()
|
||||
button.icon:SetTexCoord(.1, .9, .1, .9)
|
||||
line.buttons[o] = button
|
||||
|
||||
button:SetScript("OnEnter", onEnter)
|
||||
button:SetScript("OnLeave", onLeave)
|
||||
button:SetScript("OnClick", onClickFunction)
|
||||
|
||||
lastButton = button
|
||||
end
|
||||
|
||||
return line
|
||||
end)
|
||||
end
|
||||
|
||||
DF.IconPickFrameScroll = scroll
|
||||
DF.IconPickFrame:Hide()
|
||||
|
||||
end
|
||||
|
||||
DF.IconPickFrame.param1, DF.IconPickFrame.param2 = param1, param2
|
||||
|
||||
DF.IconPickFrame:Show()
|
||||
DF.IconPickFrameScroll.update (DF.IconPickFrameScroll)
|
||||
DF.IconPickFrame.callback = callback or DF.IconPickFrame.emptyFunction
|
||||
DF.IconPickFrame.click_close = close_when_select
|
||||
DF.IconPickFrameScroll.RefreshIcons()
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -313,7 +313,8 @@ DF.TextEntryCounter = DF.TextEntryCounter or 1
|
||||
self.editbox:SetBackdropColor (unpack (self.enabled_backdrop_color))
|
||||
self.editbox:SetTextColor (unpack (self.enabled_text_color))
|
||||
if (self.editbox.borderframe) then
|
||||
self.editbox.borderframe:SetBackdropColor (unpack (self.editbox.borderframe.onleave_backdrop))
|
||||
local r, g, b, a = DF:ParseColors(unpack(self.editbox.borderframe.onleave_backdrop))
|
||||
self.editbox.borderframe:SetBackdropColor(r, g, b, a)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,6 +11,10 @@ end
|
||||
|
||||
local openRaidLib = LibStub:GetLibrary("LibOpenRaid-1.0")
|
||||
|
||||
local CONST_TALENT_VERSION_CLASSIC = 1
|
||||
local CONST_TALENT_VERSION_LEGION = 4
|
||||
local CONST_TALENT_VERSION_DRAGONFLIGHT = 5
|
||||
|
||||
local isTimewalkWoW = function()
|
||||
local _, _, _, buildInfo = GetBuildInfo()
|
||||
if (buildInfo < 40000) then
|
||||
@@ -22,19 +26,79 @@ local IsDragonflight = function()
|
||||
return select(4, GetBuildInfo()) >= 100000
|
||||
end
|
||||
|
||||
--creates two tables, one with indexed talents and another with pairs values ([talentId] = true)
|
||||
function openRaidLib.UnitInfoManager.GetPlayerTalentsAsPairsTable()
|
||||
if (IsDragonflight()) then
|
||||
return {}
|
||||
function openRaidLib.GetTalentVersion()
|
||||
local _, _, _, buildInfo = GetBuildInfo()
|
||||
local gamePatch = buildInfo / 10000
|
||||
if (gamePatch >= 1 and gamePatch <= 4) then --vanilla tbc wotlk cataclysm
|
||||
return CONST_TALENT_VERSION_CLASSIC
|
||||
end
|
||||
|
||||
if (gamePatch >= 7 and gamePatch <= 9) then --legion bfa shadowlands
|
||||
return CONST_TALENT_VERSION_LEGION
|
||||
end
|
||||
|
||||
if (gamePatch >= 10 and gamePatch <= 20) then --dragonflight
|
||||
return CONST_TALENT_VERSION_DRAGONFLIGHT
|
||||
end
|
||||
end
|
||||
|
||||
local getDradonflightTalentsAsIndexTable = function()
|
||||
local allTalents = {}
|
||||
local configId = C_ClassTalents.GetActiveConfigID()
|
||||
local configInfo = C_Traits.GetConfigInfo(configId)
|
||||
|
||||
for treeIndex, treeId in ipairs(configInfo.treeIDs) do
|
||||
local treeNodes = C_Traits.GetTreeNodes(treeId)
|
||||
|
||||
for nodeIdIndex, treeNodeID in ipairs(treeNodes) do
|
||||
local traitNodeInfo = C_Traits.GetNodeInfo(configId, treeNodeID)
|
||||
|
||||
if (traitNodeInfo) then
|
||||
local activeEntry = traitNodeInfo.activeEntry
|
||||
if (activeEntry) then
|
||||
local entryId = activeEntry.entryID
|
||||
local rank = activeEntry.rank
|
||||
if (rank > 0) then
|
||||
--get the entry info
|
||||
local traitEntryInfo = C_Traits.GetEntryInfo(configId, entryId)
|
||||
local definitionId = traitEntryInfo.definitionID
|
||||
|
||||
--definition info
|
||||
local traitDefinitionInfo = C_Traits.GetDefinitionInfo(definitionId)
|
||||
local spellId = traitDefinitionInfo.overriddenSpellID or traitDefinitionInfo.spellID
|
||||
local spellName, _, spellTexture = GetSpellInfo(spellId)
|
||||
if (spellName) then
|
||||
allTalents[#allTalents+1] = spellId
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return allTalents
|
||||
end
|
||||
|
||||
--creates two tables, one with indexed talents and another with pairs values ([talentId] = true)
|
||||
function openRaidLib.UnitInfoManager.GetPlayerTalentsAsPairsTable()
|
||||
local talentsPairs = {}
|
||||
for i = 1, 7 do
|
||||
for o = 1, 3 do
|
||||
local talentId, _, _, selected = GetTalentInfo(i, o, 1)
|
||||
if (selected) then
|
||||
talentsPairs[talentId] = true
|
||||
break
|
||||
local talentVersion = openRaidLib.GetTalentVersion()
|
||||
|
||||
if (talentVersion == CONST_TALENT_VERSION_DRAGONFLIGHT) then
|
||||
local allTalents = getDradonflightTalentsAsIndexTable()
|
||||
for i = 1, #allTalents do
|
||||
local spellId = allTalents[i]
|
||||
talentsPairs[spellId] = true
|
||||
end
|
||||
|
||||
elseif (talentVersion == CONST_TALENT_VERSION_LEGION) then
|
||||
for i = 1, 7 do
|
||||
for o = 1, 3 do
|
||||
local talentId, _, _, selected = GetTalentInfo(i, o, 1)
|
||||
if (selected) then
|
||||
talentsPairs[talentId] = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -43,17 +107,21 @@ function openRaidLib.UnitInfoManager.GetPlayerTalentsAsPairsTable()
|
||||
end
|
||||
|
||||
function openRaidLib.UnitInfoManager.GetPlayerTalents()
|
||||
if (IsDragonflight()) then
|
||||
return {}
|
||||
end
|
||||
local talents = {}
|
||||
local talentVersion = openRaidLib.GetTalentVersion()
|
||||
|
||||
local talents = {0, 0, 0, 0, 0, 0, 0}
|
||||
for talentTier = 1, 7 do
|
||||
for talentColumn = 1, 3 do
|
||||
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1)
|
||||
if (selected) then
|
||||
talents[talentTier] = talentId
|
||||
break
|
||||
if (talentVersion == CONST_TALENT_VERSION_DRAGONFLIGHT) then
|
||||
talents = getDradonflightTalentsAsIndexTable()
|
||||
|
||||
elseif (talentVersion == CONST_TALENT_VERSION_LEGION) then
|
||||
talents = {0, 0, 0, 0, 0, 0, 0}
|
||||
for talentTier = 1, 7 do
|
||||
for talentColumn = 1, 3 do
|
||||
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1)
|
||||
if (selected) then
|
||||
talents[talentTier] = talentId
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -15,6 +15,10 @@ Code Rules:
|
||||
- Public callbacks are callbacks registered by an external addon.
|
||||
|
||||
Change Log:
|
||||
- added dragonflight talents support
|
||||
- ensure to register events after 'PLAYER_ENTERING_WORLD' has triggered
|
||||
- added openRaidLib.RequestCooldownInfo(spellId)
|
||||
- added openRaidLib.AddCooldownFilter(filterName, spells)
|
||||
- if Ace Comm is installed, use it
|
||||
- added "KeystoneWipe" callback
|
||||
- finished keystone info, see docs
|
||||
@@ -50,7 +54,7 @@ if (WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE and not IsDragonflight()) then
|
||||
end
|
||||
|
||||
local major = "LibOpenRaid-1.0"
|
||||
local CONST_LIB_VERSION = 48
|
||||
local CONST_LIB_VERSION = 50
|
||||
LIB_OPEN_RAID_CAN_LOAD = false
|
||||
|
||||
--declae the library within the LibStub
|
||||
@@ -564,8 +568,11 @@ LIB_OPEN_RAID_CAN_LOAD = false
|
||||
end,
|
||||
|
||||
["PLAYER_ENTERING_WORLD"] = function(...)
|
||||
--has the selected character just loaded?
|
||||
if (not openRaidLib.firstEnteringWorld) then
|
||||
--player logon
|
||||
--register events
|
||||
openRaidLib.OnEnterWorldRegisterEvents()
|
||||
|
||||
if (IsInGroup()) then
|
||||
openRaidLib.RequestAllData()
|
||||
end
|
||||
@@ -604,7 +611,7 @@ LIB_OPEN_RAID_CAN_LOAD = false
|
||||
|
||||
openRaidLib.firstEnteringWorld = true
|
||||
end
|
||||
|
||||
|
||||
openRaidLib.internalCallback.TriggerEvent("onEnterWorld")
|
||||
end,
|
||||
|
||||
@@ -660,7 +667,7 @@ LIB_OPEN_RAID_CAN_LOAD = false
|
||||
|
||||
["UNIT_PET"] = function(unitId)
|
||||
if (UnitIsUnit(unitId, "player")) then
|
||||
openRaidLib.Schedules.NewUniqueTimer(0.5, function() openRaidLib.internalCallback.TriggerEvent("playerPetChange") end, "mainControl", "petStatus_Schedule")
|
||||
openRaidLib.Schedules.NewUniqueTimer(1.1, function() openRaidLib.internalCallback.TriggerEvent("playerPetChange") end, "mainControl", "petStatus_Schedule")
|
||||
--if the pet is alive, register to know when it dies
|
||||
if (UnitExists("pet") and UnitHealth("pet") >= 1) then
|
||||
eventFrame:RegisterUnitEvent("UNIT_FLAGS", "pet")
|
||||
@@ -682,33 +689,36 @@ LIB_OPEN_RAID_CAN_LOAD = false
|
||||
}
|
||||
openRaidLib.eventFunctions = eventFunctions
|
||||
|
||||
eventFrame:RegisterEvent("GROUP_ROSTER_UPDATE")
|
||||
eventFrame:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player", "pet")
|
||||
eventFrame:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
eventFrame:RegisterEvent("PLAYER_REGEN_DISABLED")
|
||||
eventFrame:RegisterEvent("PLAYER_REGEN_ENABLED")
|
||||
eventFrame:RegisterEvent("UPDATE_INVENTORY_DURABILITY")
|
||||
eventFrame:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
|
||||
eventFrame:RegisterEvent("UNIT_PET")
|
||||
eventFrame:RegisterEvent("PLAYER_DEAD")
|
||||
eventFrame:RegisterEvent("PLAYER_ALIVE")
|
||||
eventFrame:RegisterEvent("PLAYER_UNGHOST")
|
||||
|
||||
if (checkClientVersion("retail")) then
|
||||
eventFrame:RegisterEvent("PLAYER_TALENT_UPDATE")
|
||||
eventFrame:RegisterEvent("PLAYER_PVP_TALENT_UPDATE")
|
||||
eventFrame:RegisterEvent("ENCOUNTER_END")
|
||||
eventFrame:RegisterEvent("CHALLENGE_MODE_START")
|
||||
eventFrame:RegisterEvent("CHALLENGE_MODE_COMPLETED")
|
||||
--eventFrame:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
|
||||
end
|
||||
|
||||
|
||||
|
||||
eventFrame:SetScript("OnEvent", function(self, event, ...)
|
||||
eventFunctions[event](...)
|
||||
end)
|
||||
|
||||
--run when PLAYER_ENTERING_WORLD triggers, this avoid any attempt of getting information without the game has completed the load process
|
||||
function openRaidLib.OnEnterWorldRegisterEvents()
|
||||
eventFrame:RegisterEvent("GROUP_ROSTER_UPDATE")
|
||||
eventFrame:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player", "pet")
|
||||
eventFrame:RegisterEvent("PLAYER_REGEN_DISABLED")
|
||||
eventFrame:RegisterEvent("PLAYER_REGEN_ENABLED")
|
||||
eventFrame:RegisterEvent("UPDATE_INVENTORY_DURABILITY")
|
||||
eventFrame:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
|
||||
eventFrame:RegisterEvent("UNIT_PET")
|
||||
eventFrame:RegisterEvent("PLAYER_DEAD")
|
||||
eventFrame:RegisterEvent("PLAYER_ALIVE")
|
||||
eventFrame:RegisterEvent("PLAYER_UNGHOST")
|
||||
|
||||
if (checkClientVersion("retail")) then
|
||||
eventFrame:RegisterEvent("PLAYER_TALENT_UPDATE")
|
||||
eventFrame:RegisterEvent("PLAYER_PVP_TALENT_UPDATE")
|
||||
eventFrame:RegisterEvent("ENCOUNTER_END")
|
||||
eventFrame:RegisterEvent("CHALLENGE_MODE_START")
|
||||
eventFrame:RegisterEvent("CHALLENGE_MODE_COMPLETED")
|
||||
--eventFrame:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
--> ~main ~control
|
||||
|
||||
@@ -1048,11 +1058,11 @@ function openRaidLib.UnitInfoManager.GetPlayerFullInfo()
|
||||
end
|
||||
playerInfo[1] = specId
|
||||
|
||||
--renown
|
||||
--shadowlands-renown
|
||||
local renown = C_CovenantSanctumUI.GetRenownLevel() or 1
|
||||
playerInfo[2] = renown
|
||||
|
||||
--covenant
|
||||
--shadowlands-covenant
|
||||
local covenant = C_Covenants.GetActiveCovenantID()
|
||||
playerInfo[3] = covenant
|
||||
|
||||
@@ -1060,13 +1070,13 @@ function openRaidLib.UnitInfoManager.GetPlayerFullInfo()
|
||||
local talents = openRaidLib.UnitInfoManager.GetPlayerTalents()
|
||||
playerInfo[4] = talents
|
||||
|
||||
--conduits
|
||||
--shadowlands-conduits
|
||||
local conduits = openRaidLib.UnitInfoManager.GetPlayerConduits()
|
||||
playerInfo[5] = conduits
|
||||
|
||||
--pvp talents
|
||||
local pvpTalents = openRaidLib.UnitInfoManager.GetPlayerPvPTalents()
|
||||
playerInfo[6] = pvpTalents
|
||||
playerInfo[6] = pvpTalents
|
||||
|
||||
return playerInfo
|
||||
end
|
||||
@@ -1804,6 +1814,7 @@ openRaidLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNCHANGES_PREFIX, openRaid
|
||||
function openRaidLib.CooldownManager.CheckForSpellsAdeedOrRemoved()
|
||||
local playerName = UnitName("player")
|
||||
local currentCooldowns = openRaidLib.CooldownManager.UnitData[playerName]
|
||||
|
||||
local _, newCooldownList = openRaidLib.CooldownManager.GetPlayerCooldownList()
|
||||
local spellsAdded, spellsRemoved = {}, {}
|
||||
|
||||
|
||||
@@ -211,7 +211,14 @@ LIB_OPEN_RAID_WEAPON_ENCHANT_IDS = {
|
||||
[5401] = true, --windfury
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {
|
||||
--tells the duration, requirements and cooldown
|
||||
--information about a cooldown is mainly get from tooltips
|
||||
--if talent is required, use the command:
|
||||
--/dump GetTalentInfo (talentTier, talentColumn, 1)
|
||||
--example: to get the second talent of the last talent line, use: /dump GetTalentInfo (7, 2, 1)
|
||||
LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
|
||||
-- Filter Types:
|
||||
-- 1 attack cooldown
|
||||
-- 2 personal defensive cooldown
|
||||
-- 3 targetted defensive cooldown
|
||||
@@ -219,501 +226,7 @@ LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {
|
||||
-- 5 personal utility cooldown
|
||||
-- 6 interrupt
|
||||
|
||||
--Shadowlands 9.0.2 revision by Juliana Maison
|
||||
|
||||
--> MAGE
|
||||
--arcane
|
||||
[62] = {
|
||||
[12042] = 1, --Arcane Power
|
||||
[55342] = 1, --Mirror Image
|
||||
[45438] = 2, --Ice Block
|
||||
[12051] = 5, --Evocation
|
||||
[110960] = 5, --Greater Invisibility
|
||||
[235450] = 5, --Prismatic Barrier
|
||||
[2139] = 6, --Counterspell (interrupt)
|
||||
},
|
||||
--fire
|
||||
[63] = {
|
||||
[190319] = 1, --Combustion
|
||||
[55342] = 1, --Mirror Image
|
||||
[45438] = 2, --Ice Block
|
||||
[66] = 5, --Invisibility
|
||||
[235313] = 5, --Blazing Barrier
|
||||
[2139] = 6, --Counterspell (interrupt)
|
||||
},
|
||||
--frost
|
||||
[64] = {
|
||||
[12472] = 1, --Icy Veins
|
||||
[205021] = 1, --Ray of Frost (talent)
|
||||
[55342] = 1, --Mirror Image
|
||||
[45438] = 2, --Ice Block
|
||||
[66] = 5, --Invisibility
|
||||
[235219] = 5, --Cold Snap
|
||||
[11426] = 5, --Ice Barrier
|
||||
[113724] = 5, --Ring of Frost (talent)
|
||||
[2139] = 6, --Counterspell (interrupt)
|
||||
},
|
||||
|
||||
--> PRIEST
|
||||
--discipline
|
||||
[256] = {
|
||||
[10060] = 1, --Power Infusion
|
||||
[34433] = 1, --Shadowfiend
|
||||
[123040] = 1, --Mindbender
|
||||
[33206] = 3, --Pain Suppression
|
||||
[62618] = 4, --Power Word: Barrier
|
||||
[271466] = 4, --Luminous Barrier (talent)
|
||||
[109964] = 4, --Spirit Shell (talent)
|
||||
[47536] = 5, --Rapture
|
||||
[19236] = 5, --Desperate Prayer
|
||||
[8122] = 5, --Psychic Scream
|
||||
},
|
||||
--holy
|
||||
[257] = {
|
||||
[10060] = 1, --Power Infusion
|
||||
[200183] = 2, --Apotheosis
|
||||
[47788] = 3, --Guardian Spirit
|
||||
[64843] = 4, --Divine Hymn
|
||||
[64901] = 4, --Symbol of Hope
|
||||
[265202] = 4, --Holy Word: Salvation (talent)
|
||||
--[88625] = 5, --Holy Word: Chastise
|
||||
--[34861] = 5, --Holy Word: Sanctify
|
||||
[19236] = 5, --Desperate Prayer
|
||||
[8122] = 5, --Psychic Scream
|
||||
},
|
||||
--shadow priest
|
||||
[258] = {
|
||||
[10060] = 1, --Power Infusion
|
||||
[34433] = 1, --Shadowfiend
|
||||
[200174] = 1, --Mindbender
|
||||
[193223] = 1, --Surrender to Madness (talent)
|
||||
[47585] = 2, --Dispersion
|
||||
[15286] = 4, --Vampiric Embrace
|
||||
[19236] = 5, --Desperate Prayer
|
||||
[64044] = 5, --Psychic Horror
|
||||
[8122] = 5, --Psychic Scream
|
||||
[205369] = 5, --Mind Bomb
|
||||
[228260] = 1, --Void Erruption
|
||||
[15487] = 6, --Silence (interrupt)
|
||||
},
|
||||
|
||||
--> ROGUE
|
||||
--assassination
|
||||
[259] = {
|
||||
[79140] = 1, --Vendetta
|
||||
[1856] = 2, --Vanish
|
||||
[5277] = 2, --Evasion
|
||||
[31224] = 2, --Cloak of Shadows
|
||||
[2094] = 5, --Blind
|
||||
[185311] = 5, --Crimson Vial
|
||||
[114018] = 5, --Shroud of Concealment
|
||||
[1766] = 6, --Kick
|
||||
},
|
||||
--outlaw
|
||||
[260] = {
|
||||
[13750] = 1, --Adrenaline Rush
|
||||
[51690] = 1, --Killing Spree (talent)
|
||||
[199754] = 2, --Riposte
|
||||
[31224] = 2, --Cloak of Shadows
|
||||
[5277] = 2, --Evasion
|
||||
[1856] = 2, --Vanish
|
||||
[2094] = 5, --Blind
|
||||
[185311] = 5, --Crimson Vial
|
||||
[114018] = 5, --Shroud of Concealment
|
||||
[343142] = 5, --Dreadblades
|
||||
[1766] = 6, --Kick
|
||||
},
|
||||
--subtlety
|
||||
[261] = {
|
||||
[121471] = 1, --Shadow Blades
|
||||
[31224] = 2, --Cloak of Shadows
|
||||
[1856] = 2, --Vanish
|
||||
[5277] = 2, --Evasion
|
||||
[2094] = 5, --Blind
|
||||
[185311] = 5, --Crimson Vial
|
||||
[114018] = 5, --Shroud of Concealment
|
||||
[1766] = 6, --Kick
|
||||
},
|
||||
|
||||
--> WARLOCK
|
||||
--affliction
|
||||
[265] = {
|
||||
[205180] = 1, --Summon Darkglare
|
||||
--[342601] = 1, --Ritual of Doom
|
||||
[113860] = 1, --Dark Soul: Misery (talent)
|
||||
[104773] = 2, --Unending Resolve
|
||||
[108416] = 2, --Dark Pact (talent)
|
||||
[30283] = 5, --Shadowfury
|
||||
[333889] = 5, --Fel Domination
|
||||
[19647] = 6, --Spell Lock (pet interrupt)
|
||||
},
|
||||
--demonology
|
||||
[266] = {
|
||||
[265187] = 1, --Summon Demonic Tyrant
|
||||
--[342601] = 1, --Ritual of Doom
|
||||
[267171] = 1, --Demonic Strength (talent)
|
||||
[111898] = 1, --Grimoire: Felguard (talent)
|
||||
[267217] = 1, --Nether Portal (talent)
|
||||
[104773] = 2, --Unending Resolve
|
||||
[108416] = 2, --Dark Pact (talent)
|
||||
[30283] = 5, --Shadowfury
|
||||
[5484] = 5, --Howl of Terror (talent)
|
||||
[333889] = 5, --Fel Domination
|
||||
[19647] = 6, --Spell Lock (pet interrupt)
|
||||
[89766] = 6, --Axe Toss (pet interrupt)
|
||||
},
|
||||
--destruction
|
||||
[267] = {
|
||||
[1122] = 1, --Summon Infernal
|
||||
--[342601] = 1, --Ritual of Doom
|
||||
[113858] = 1, --Dark Soul: Instability (talent)
|
||||
[104773] = 2, --Unending Resolve
|
||||
[108416] = 2, --Dark Pact (talent)
|
||||
[30283] = 5, --Shadowfury
|
||||
[333889] = 5, --Fel Domination
|
||||
[19647] = 6, --Spell Lock (pet interrupt)
|
||||
},
|
||||
|
||||
--> WARRIOR
|
||||
--Arms
|
||||
[71] = {
|
||||
[107574] = 1, --Avatar (talent)
|
||||
[227847] = 1, --Bladestorm
|
||||
[152277] = 1, --Ravager (talent)
|
||||
[118038] = 2, --Die by the Sword
|
||||
[97462] = 4, --Rallying Cry
|
||||
[64382] = 5, --Shattering Throw
|
||||
[5246] = 5, --Intimidating Shout
|
||||
[6552] = 6, --Pummel
|
||||
},
|
||||
--Fury
|
||||
[72] = {
|
||||
[1719] = 1, --Recklessness
|
||||
[46924] = 1, --Bladestorm (talent)
|
||||
[184364] = 2, --Enraged Regeneration
|
||||
[97462] = 4, --Rallying Cry
|
||||
[64382] = 5, --Shattering Throw
|
||||
[5246] = 5, --Intimidating Shout
|
||||
[6552] = 6, --Pummel
|
||||
},
|
||||
--Protection
|
||||
[73] = {
|
||||
[228920] = 1, --Ravager (talent)
|
||||
[107574] = 1, --Avatar
|
||||
[12975] = 2, --Last Stand
|
||||
[871] = 2, --Shield Wall
|
||||
[97462] = 4, --Rallying Cry
|
||||
[64382] = 5, --Shattering Throw
|
||||
[5246] = 5, --Intimidating Shout
|
||||
[6552] = 6, --Pummel
|
||||
},
|
||||
|
||||
--> PALADIN
|
||||
--holy
|
||||
[65] = {
|
||||
[31884] = 1, --Avenging Wrath
|
||||
[216331] = 1, --Avenging Crusader (talent)
|
||||
[498] = 2, --Divine Protection
|
||||
[642] = 2, --Divine Shield
|
||||
[105809] = 2, --Holy Avenger (talent)
|
||||
[152262] = 2, --Seraphim
|
||||
[633] = 3, --Lay on Hands
|
||||
[1022] = 3, --Blessing of Protection
|
||||
[6940] = 3, --Blessing of Sacrifice
|
||||
[31821] = 4, --Aura Mastery
|
||||
[1044] = 5, --Blessing of Freedom
|
||||
[853] = 5, --Hammer of Justice
|
||||
[115750] = 5, --Blinding Light (talent)
|
||||
},
|
||||
|
||||
--protection
|
||||
[66] = {
|
||||
[31884] = 1, --Avenging Wrath
|
||||
[327193] = 1, --Moment of Glory (talent)
|
||||
[31850] = 2, --Ardent Defender
|
||||
[86659] = 2, --Guardian of Ancient Kings
|
||||
[105809] = 2, --Holy Avenger (talent)
|
||||
[152262] = 2, --Seraphim
|
||||
[1022] = 3, --Blessing of Protection
|
||||
[204018] = 3, --Blessing of Spellwarding (talent)
|
||||
[6940] = 3, --Blessing of Sacrifice
|
||||
[1044] = 5, --Blessing of Freedom
|
||||
[853] = 5, --Hammer of Justice
|
||||
[115750] = 5, --Blinding Light (talent)
|
||||
[96231] = 6, --Rebuke (interrupt)
|
||||
},
|
||||
|
||||
--retribution
|
||||
[70] = {
|
||||
[31884] = 1, --Avenging Wrath
|
||||
[231895] = 1, --Crusade (talent)
|
||||
[205191] = 2, --Eye for an Eye (talent)
|
||||
[184662] = 2, --Shield of Vengeance
|
||||
[642] = 2, --Divine Shield
|
||||
[1022] = 3, --Blessing of Protection
|
||||
[6940] = 3, --Blessing of Sacrifice
|
||||
[633] = 3, --Lay on Hands
|
||||
[1044] = 5, --Blessing of Freedom
|
||||
[853] = 5, --Hammer of Justice
|
||||
[115750] = 5, --Blinding Light (talent)
|
||||
[96231] = 6, --Rebuke (interrupt)
|
||||
},
|
||||
|
||||
--> DEMON HUNTER
|
||||
--havoc
|
||||
[577] = {
|
||||
[191427] = 1, --Metamorphosis
|
||||
[198589] = 2, --Blur
|
||||
[196555] = 2, --Netherwalk (talent)
|
||||
[196718] = 4, --Darkness
|
||||
[188501] = 5, --Spectral Sight
|
||||
[179057] = 5, --Chaos Nova
|
||||
[211881] = 5, --Fel Eruption (talent)
|
||||
[183752] = 6, --Disrupt (interrupt)
|
||||
},
|
||||
--vengeance
|
||||
[581] = {
|
||||
[320341] = 1, --Bulk Extraction (talent)
|
||||
[187827] = 2, --Metamorphosis
|
||||
[204021] = 2, --Fiery Brand
|
||||
[263648] = 2, --Soul Barrier (talent)
|
||||
[207684] = 5, --Sigil of Misery
|
||||
[202137] = 5, --Sigil of Silence
|
||||
[202138] = 5, --Sigil of Chains (talent)
|
||||
[188501] = 5, --Spectral Sight
|
||||
[183752] = 6, --Disrupt (interrupt)
|
||||
},
|
||||
|
||||
--> DEATH KNIGHT
|
||||
--unholy
|
||||
[252] = {
|
||||
[275699] = 1, --Apocalypse
|
||||
[42650] = 1, --Army of the Dead
|
||||
[49206] = 1, --Summon Gargoyle (talent)
|
||||
[207289] = 1, --Unholy Assault (talent)
|
||||
[48707] = 2, --Anti-magic Shell
|
||||
[48792] = 2, --Icebound Fortitude
|
||||
[48743] = 2, --Death Pact (talent)
|
||||
[51052] = 4, --Anti-magic Zone
|
||||
[108194] = 5, --Asphyxiate (talent)
|
||||
[287081] = 5, --Lichborne
|
||||
[212552] = 5, --Wraith walk (talent)
|
||||
[47528] = 6, --Mind Freeze (interrupt)
|
||||
},
|
||||
--frost
|
||||
[251] = {
|
||||
[152279] = 1, --Breath of Sindragosa (talent)
|
||||
[47568] = 1, --Empower Rune Weapon
|
||||
[279302] = 1, --Frostwyrm's Fury
|
||||
[48707] = 2, --Anti-magic Shell
|
||||
[48792] = 2, --Icebound Fortitude
|
||||
[48743] = 2, --Death Pact (talent)
|
||||
[51052] = 4, --Anti-magic Zone
|
||||
[207167] = 5, --Blinding Sleet (talent)
|
||||
[108194] = 5, --Asphyxiate (talent)
|
||||
[287081] = 5, --Lichborne
|
||||
[212552] = 5, --Wraith walk (talent)
|
||||
[47528] = 6, --Mind Freeze (interrupt)
|
||||
},
|
||||
--blood
|
||||
[250] = {
|
||||
[49028] = 1, --Dancing Rune Weapon
|
||||
[48707] = 2, --Anti-magic Shell
|
||||
[48743] = 2, --Death Pact (talent)
|
||||
[219809] = 2, --Tombstone (talent)
|
||||
[55233] = 2, --Vampiric Blood
|
||||
[48792] = 2, --Icebound Fortitude
|
||||
[51052] = 4, --Anti-magic Zone
|
||||
[108199] = 5, --Gorefiend's Grasp
|
||||
[221562] = 5, --Asphyxiate
|
||||
[212552] = 5, --Wraith walk (talent)
|
||||
[47528] = 6, --Mind Freeze (interrupt)
|
||||
},
|
||||
|
||||
--> DRUID
|
||||
--Balance
|
||||
[102] = {
|
||||
[194223] = 1, --Celestial Alignment
|
||||
[102560] = 1, --Incarnation: Chosen of Elune (talent)
|
||||
[22812] = 2, --Barkskin
|
||||
[108238] = 2, --Renewal (talent)
|
||||
[29166] = 3, --Innervate
|
||||
[77761] = 4, --Stampeding Roar
|
||||
[319454] = 5, --Heart of the Wild (talent)
|
||||
[132469] = 5, --Typhoon
|
||||
[78675] = 6, --Solar Beam (interrupt)
|
||||
},
|
||||
--Feral
|
||||
[103] = {
|
||||
[106951] = 1, --Berserk
|
||||
[102543] = 1, --Incarnation: King of the Jungle (talent)
|
||||
[22812] = 2, --Barkskin
|
||||
[61336] = 2, --Survival Instincts
|
||||
[108238] = 2, --Renewal (talent)
|
||||
[77761] = 4, --Stampeding Roar
|
||||
[132469] = 5, --Typhoon
|
||||
[319454] = 5, --Heart of the Wild (talent)
|
||||
[106839] = 6, --Skull Bash (interrupt)
|
||||
},
|
||||
--Guardian
|
||||
[104] = {
|
||||
[106951] = 1, --Berserk
|
||||
[204066] = 1, --Lunar Beam
|
||||
[22812] = 2, --Barkskin
|
||||
[61336] = 2, --Survival Instincts
|
||||
[102558] = 2, --Incarnation: Guardian of Ursoc (talent)
|
||||
[108238] = 2, --Renewal (talent)
|
||||
[77761] = 4, --Stampeding Roar
|
||||
[132469] = 5, --Typhoon
|
||||
[319454] = 5, --Heart of the Wild (talent)
|
||||
[106839] = 6, --Skull Bash (interrupt)
|
||||
},
|
||||
--Restoration
|
||||
[105] = {
|
||||
|
||||
[22812] = 2, --Barkskin
|
||||
[108238] = 2, --Renewal (talent)
|
||||
[33891] = 2, --Incarnation: Tree of Life (talent)
|
||||
[102342] = 3, --Ironbark
|
||||
[29166] = 3, --Innervate
|
||||
[203651] = 3, --Overgrowth (talent)
|
||||
[740] = 4, --Tranquility
|
||||
[197721] = 4, --Flourish (talent)
|
||||
[77761] = 4, --Stampeding Roar
|
||||
[319454] = 5, --Heart of the Wild (talent)
|
||||
[102793] = 5, --Ursol's Vortex
|
||||
},
|
||||
|
||||
--> HUNTER
|
||||
--beast mastery
|
||||
[253] = {
|
||||
[193530] = 1, --Aspect of the Wild
|
||||
[19574] = 1, --Bestial Wrath
|
||||
[201430] = 1, --Stampede (talent)
|
||||
[186265] = 2, --Aspect of the Turtle
|
||||
[109304] = 2, --Exhilaration
|
||||
[199483] = 2, --Camouflage (talent)
|
||||
[186257] = 5, --Aspect of the cheetah
|
||||
[19577] = 5, --Intimidation
|
||||
[109248] = 5, --Binding Shot (talent)
|
||||
[187650] = 5, --Freezing Trap
|
||||
[147362] = 6, --Counter Shot (interrupt)
|
||||
},
|
||||
--marksmanship
|
||||
[254] = {
|
||||
[288613] = 1, --Trueshot
|
||||
[186265] = 2, --Aspect of the Turtle
|
||||
[199483] = 2, --Camouflage (talent)
|
||||
[109304] = 2, --Exhilaration
|
||||
[281195] = 2, --Survival of the Fittest
|
||||
[186257] = 5, --Aspect of the cheetah
|
||||
[187650] = 5, --Freezing Trap
|
||||
[147362] = 6, --Counter Shot (interrupt)
|
||||
},
|
||||
--survival
|
||||
[255] = {
|
||||
[266779] = 1, --Coordinated Assault
|
||||
[186265] = 2, --Aspect of the Turtle
|
||||
[199483] = 2, --Camouflage (talent)
|
||||
[109304] = 2, --Exhilaration
|
||||
[186289] = 5, --Aspect of the eagle
|
||||
[19577] = 5, --Intimidation
|
||||
[187650] = 5, --Freezing Trap
|
||||
[187707] = 6, --Muzzle (interrupt)
|
||||
},
|
||||
|
||||
--> MONK
|
||||
--brewmaster
|
||||
[268] = {
|
||||
[132578] = 1, --Invoke Niuzao, the Black Ox
|
||||
[115080] = 1, --Touch of Death
|
||||
[115203] = 2, --Fortifying Brew
|
||||
[115399] = 2, --Black Ox brew (talent)
|
||||
[115176] = 2, --Zen Meditation
|
||||
[122278] = 2, --Dampen Harm (talent)
|
||||
[116844] = 5, --Ring of peace (talent)
|
||||
[119381] = 5, --Leg Sweep
|
||||
[116705] = 6, --Spear Hand Strike (interrupt)
|
||||
},
|
||||
--windwalker
|
||||
[269] = {
|
||||
[137639] = 1, --Storm, Earth, and Fire
|
||||
[123904] = 1, --Invoke Xuen, the White Tiger
|
||||
[152173] = 1, --Serenity (talent)
|
||||
[115080] = 1, --Touch of Death
|
||||
[115203] = 2, --Fortifying Brew
|
||||
[122470] = 2, --Touch of Karma
|
||||
[122278] = 2, --Dampen Harm (talent)
|
||||
[122783] = 2, --Diffuse Magic (talent)
|
||||
[116844] = 5, --Ring of peace (talent)
|
||||
[119381] = 5, --Leg Sweep
|
||||
[116705] = 6, --Spear Hand Strike (interrupt)
|
||||
},
|
||||
--mistweaver
|
||||
[270] = {
|
||||
[115080] = 1, --Touch of Death
|
||||
[122278] = 2, --Dampen Harm (talent)
|
||||
[243435] = 2, --Fortifying Brew
|
||||
[122783] = 2, --Diffuse Magic (talent)
|
||||
[116849] = 3, --Life Cocoon
|
||||
[322118] = 4, --Invoke Yulon, the Jade serpent
|
||||
[115310] = 4, --Revival
|
||||
[116844] = 5, --Ring of peace (talent)
|
||||
[197908] = 5, --Mana tea (talent)
|
||||
[119381] = 5, --Leg Sweep
|
||||
},
|
||||
|
||||
--> SHAMAN
|
||||
--elemental
|
||||
[262] = {
|
||||
[198067] = 1, --Fire Elemental
|
||||
[192249] = 1, --Storm Elemental (talent)
|
||||
[114050] = 1, --Ascendance (talent)
|
||||
[108271] = 2, --Astral Shift
|
||||
[108281] = 4, --Ancestral Guidance (talent)
|
||||
[198103] = 2, --Earth Elemental
|
||||
--[79206] = 5, --Spiritwalkers grace
|
||||
[8143] = 5, --Tremor Totem
|
||||
[192058] = 5, --Capacitor Totem
|
||||
[192077] = 5, --Wind Rush Totem (talent)
|
||||
[57994] = 6, --Wind Shear (interrupt)
|
||||
},
|
||||
--enhancement
|
||||
[263] = {
|
||||
[51533] = 1, --Feral Spirit
|
||||
[114051] = 1, --Ascendance (talent)
|
||||
[108271] = 2, --Astral Shift
|
||||
[198103] = 2, --Earth Elemental
|
||||
[8143] = 5, --Tremor Totem
|
||||
[192058] = 5, --Capacitor Totem
|
||||
[57994] = 6, --Wind Shear (interrupt)
|
||||
},
|
||||
--restoration
|
||||
[264] = {
|
||||
[108271] = 2, --Astral Shift
|
||||
[114052] = 4, --Ascendance (talent)
|
||||
[98008] = 4, --Spirit Link Totem
|
||||
[108280] = 4, --Healing Tide Totem
|
||||
[16191] = 4, --Mana Tide Totem
|
||||
[207399] = 4, --Ancestral Protection Totem (talent)
|
||||
[198103] = 2, --Earth Elemental
|
||||
[8143] = 5, --Tremor Totem
|
||||
[57994] = 6, --Wind Shear (interrupt)
|
||||
},
|
||||
|
||||
--> EVOKER
|
||||
--Devastation
|
||||
[1467] = {},
|
||||
--Preservation
|
||||
[1468] = {},
|
||||
}
|
||||
|
||||
--tells the duration, requirements and cooldown
|
||||
--information about a cooldown is mainly get from tooltips
|
||||
--if talent is required, use the command:
|
||||
--/dump GetTalentInfo (talentTier, talentColumn, 1)
|
||||
--example: to get the second talent of the last talent line, use: /dump GetTalentInfo (7, 2, 1)
|
||||
LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
--interrupts
|
||||
[6552] = {class = "WARRIOR", specs = {71, 72, 73}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Pummel
|
||||
[2139] = {class = "MAGE", specs = {62, 63, 64}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Counterspell
|
||||
@@ -732,224 +245,285 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
[89766] = {class = "WARLOCK", specs = {266}, cooldown = 30, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 17252, type = 6, charges = 1}, --Axe Toss (pet felguard ability)
|
||||
|
||||
--paladin
|
||||
[31884] = {cooldown = 120, duration = 20, talent = false, charges = 1, class = "PALADIN", type = 1}, --Avenging Wrath
|
||||
[216331] = {cooldown = 120, duration = 20, talent = 22190, charges = 1, class = "PALADIN", type = 1}, --Avenging Crusader (talent)
|
||||
[498] = {cooldown = 60, duration = 8, talent = false, charges = 1, class = "PALADIN", type = 2}, --Divine Protection
|
||||
[642] = {cooldown = 300, duration = 8, talent = false, charges = 1, class = "PALADIN", type = 2}, --Divine Shield
|
||||
[105809] = {cooldown = 90, duration = 20, talent = 22164, charges = 1, class = "PALADIN", type = 2}, --Holy Avenger (talent)
|
||||
[152262] = { cooldown = 45, duration = 15, talent = 17601, charges = 1, class = "PALADIN", type = 2}, --Seraphim
|
||||
[633] = {cooldown = 600, duration = false, talent = false, charges = 1, class = "PALADIN", type = 3}, --Lay on Hands
|
||||
[1022] = {cooldown = 300, duration = 10, talent = false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Protection
|
||||
[6940] = {cooldown = 120, duration = 12, talent = false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Sacrifice
|
||||
[31821] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "PALADIN", type = 4}, --Aura Mastery
|
||||
[1044] = {cooldown = 25, duration = 8, talent = false, charges = 1, class = "PALADIN", type = 5}, --Blessing of Freedom
|
||||
[853] = {cooldown = 60, duration = 6, talent = false, charges = 1, class = "PALADIN", type = 5}, --Hammer of Justice
|
||||
[115750] = {cooldown = 90, duration = 6, talent = 21811, charges = 1, class = "PALADIN", type = 5}, --Blinding Light(talent)
|
||||
[327193] = {cooldown = 90, duration = 15, talent = 23468, charges = 1, class = "PALADIN", type = 1}, --Moment of Glory (talent)
|
||||
[31850] = {cooldown = 120, duration = 8, talent = false, charges = 1, class = "PALADIN", type = 2}, --Ardent Defender
|
||||
[86659] = {cooldown = 300, duration = 8, talent = false, charges = 1, class = "PALADIN", type = 2}, --Guardian of Ancient Kings
|
||||
[204018] = {cooldown = 180, duration = 10, talent = 22435, charges = 1, class = "PALADIN", type = 3}, --Blessing of Spellwarding (talent)
|
||||
[231895] = {cooldown = 120, duration = 25, talent = 22215, charges = 1, class = "PALADIN", type = 1}, --Crusade (talent)
|
||||
[205191] = {cooldown = 60, duration = 10, talent = 22183, charges = 1, class = "PALADIN", type = 2}, --Eye for an Eye (talent)
|
||||
[184662] = {cooldown = 120, duration = 15, talent = false, charges = 1, class = "PALADIN", type = 2}, --Shield of Vengeance
|
||||
|
||||
-- 65 - Holy
|
||||
-- 66 - Protection
|
||||
-- 70 - Retribution
|
||||
|
||||
[31884] = {cooldown = 120, duration = 20, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 1}, --Avenging Wrath
|
||||
[216331] = {cooldown = 120, duration = 20, specs = {65}, talent =22190, charges = 1, class = "PALADIN", type = 1}, --Avenging Crusader (talent)
|
||||
[498] = {cooldown = 60, duration = 8, specs = {65}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Divine Protection
|
||||
[642] = {cooldown = 300, duration = 8, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Divine Shield
|
||||
[105809] = {cooldown = 90, duration = 20, specs = {65,66,70}, talent =22164, charges = 1, class = "PALADIN", type = 2}, --Holy Avenger (talent)
|
||||
[152262] = {cooldown = 45, duration = 15, specs = {65,66,70}, talent =17601, charges = 1, class = "PALADIN", type = 2}, --Seraphim
|
||||
[633] = {cooldown = 600, duration = false, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Lay on Hands
|
||||
[1022] = {cooldown = 300, duration = 10, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Protection
|
||||
[6940] = {cooldown = 120, duration = 12, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Sacrifice
|
||||
[31821] = {cooldown = 180, duration = 8, specs = {65}, talent =false, charges = 1, class = "PALADIN", type = 4}, --Aura Mastery
|
||||
[1044] = {cooldown = 25, duration = 8, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 5}, --Blessing of Freedom
|
||||
[853] = {cooldown = 60, duration = 6, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 5}, --Hammer of Justice
|
||||
[115750] = {cooldown = 90, duration = 6, specs = {65,66,70}, talent =21811, charges = 1, class = "PALADIN", type = 5}, --Blinding Light(talent)
|
||||
[327193] = {cooldown = 90, duration = 15, specs = {66}, talent =23468, charges = 1, class = "PALADIN", type = 1}, --Moment of Glory (talent)
|
||||
[31850] = {cooldown = 120, duration = 8, specs = {66}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Ardent Defender
|
||||
[86659] = {cooldown = 300, duration = 8, specs = {66}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Guardian of Ancient Kings
|
||||
[204018] = {cooldown = 180, duration = 10, specs = {66}, talent =22435, charges = 1, class = "PALADIN", type = 3}, --Blessing of Spellwarding (talent)
|
||||
[231895] = {cooldown = 120, duration = 25, specs = {70}, talent =22215, charges = 1, class = "PALADIN", type = 1}, --Crusade (talent)
|
||||
[205191] = {cooldown = 60, duration = 10, specs = {70}, talent =22183, charges = 1, class = "PALADIN", type = 2}, --Eye for an Eye (talent)
|
||||
[184662] = {cooldown = 120, duration = 15, specs = {70}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Shield of Vengeance
|
||||
|
||||
--warrior
|
||||
[107574] = {cooldown = 90, duration = 20, talent = 22397, charges = 1, class = "WARRIOR", type = 1}, --Avatar
|
||||
[227847] = {cooldown = 90, duration = 5, talent = false, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm
|
||||
[152277] = {cooldown = 60, duration = 6, talent = 21667, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[118038] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "WARRIOR", type = 2}, --Die by the Sword
|
||||
[97462] = {cooldown = 180, duration = 10, talent = false, charges = 1, class = "WARRIOR", type = 4}, --Rallying Cry
|
||||
[1719] = {cooldown = 90, duration = 10, talent = false, charges = 1, class = "WARRIOR", type = 1}, --Recklessness
|
||||
[46924] = {cooldown = 60, duration = 4, talent = 22400, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm (talent)
|
||||
[184364] = {cooldown = 120, duration = 8, talent = false, charges = 1, class = "WARRIOR", type = 2}, --Enraged Regeneration
|
||||
[228920] = {cooldown = 60, duration = 6, talent = 23099, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[12975] = {cooldown = 180, duration = 15, talent = false, charges = 1, class = "WARRIOR", type = 2}, --Last Stand
|
||||
[871] = {cooldown = 8, duration = 240, talent = false, charges = 1, class = "WARRIOR", type = 2}, --Shield Wall
|
||||
[64382] = {cooldown = 180, duration = false, talent = false, charges = 1, class = "WARRIOR", type = 5}, --Shattering Throw
|
||||
[5246] = {cooldown = 90, duration = 8, talent = false, charges = 1, class = "WARRIOR", type = 5}, --Intimidating Shout
|
||||
-- 71 - Arms
|
||||
-- 72 - Fury
|
||||
-- 73 - Protection
|
||||
|
||||
[107574] = {cooldown = 90, duration = 20, specs = {71,73}, talent =22397, charges = 1, class = "WARRIOR", type = 1}, --Avatar
|
||||
[227847] = {cooldown = 90, duration = 5, specs = {71}, talent =false, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm
|
||||
[46924] = {cooldown = 60, duration = 4, specs = {72}, talent =22400, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm (talent)
|
||||
[152277] = {cooldown = 60, duration = 6, specs = {71}, talent =21667, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[228920] = {cooldown = 60, duration = 6, specs = {73}, talent =23099, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[118038] = {cooldown = 180, duration = 8, specs = {71}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Die by the Sword
|
||||
[97462] = {cooldown = 180, duration = 10, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 4}, --Rallying Cry
|
||||
[1719] = {cooldown = 90, duration = 10, specs = {72}, talent =false, charges = 1, class = "WARRIOR", type = 1}, --Recklessness
|
||||
[184364] = {cooldown = 120, duration = 8, specs = {72}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Enraged Regeneration
|
||||
[12975] = {cooldown = 180, duration = 15, specs = {73}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Last Stand
|
||||
[871] = {cooldown = 8, duration = 240, specs = {73}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Shield Wall
|
||||
[64382] = {cooldown = 180, duration = false, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 5}, --Shattering Throw
|
||||
[5246] = {cooldown = 90, duration = 8, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 5}, --Intimidating Shout
|
||||
|
||||
--warlock
|
||||
[205180] = {cooldown = 180, duration = 20, talent = false, charges = 1, class = "WARLOCK", type = 1}, --Summon Darkglare
|
||||
--[342601] = {cooldown = 3600, duration = false, talent = false, charges = 1, class = "WARLOCK", type = 1}, --Ritual of Doom
|
||||
[113860] = {cooldown = 120, duration = 20, talent = 19293, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Misery (talent)
|
||||
[104773] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "WARLOCK", type = 2}, --Unending Resolve
|
||||
[108416] = {cooldown = 60, duration = 20, talent = 19286, charges = 1, class = "WARLOCK", type = 2}, --Dark Pact (talent)
|
||||
[265187] = {cooldown = 90, duration = 15, talent = false, charges = 1, class = "WARLOCK", type = 1}, --Summon Demonic Tyrant
|
||||
[111898] = {cooldown = 120, duration = 15, talent = 21717, charges = 1, class = "WARLOCK", type = 1}, --Grimoire: Felguard (talent)
|
||||
[267171] = {cooldown = 60, duration = false, talent = 23138, charges = 1, class = "WARLOCK", type = 1}, --Demonic Strength (talent)
|
||||
[267217] = {cooldown = 180, duration = 20, talent = 23091, charges = 1, class = "WARLOCK", type = 1}, --Nether Portal
|
||||
[1122] = {cooldown = 180, duration = 30, talent = false, charges = 1, class = "WARLOCK", type = 1}, --Summon Infernal
|
||||
[113858] = {cooldown = 120, duration = 20, talent = 23092, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Instability (talent)
|
||||
[30283] = {cooldown = 60, duration = 3, talent = false, charges = 1, class = "WARLOCK", type = 5}, --Shadowfury
|
||||
[333889] = {cooldown = 180, duration = 15, talent = false, charges = 1, class = "WARLOCK", type = 5}, --Fel Domination
|
||||
[5484] = {cooldown = 40, duration = 20, talent = 23465, charges = 1, class = "WARLOCK", type = 5}, --Howl of Terror (talent)
|
||||
-- 265 - Affliction
|
||||
-- 266 - Demonology
|
||||
-- 267 - Destruction
|
||||
|
||||
[205180] = {cooldown = 180, duration = 20, specs = {265}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Darkglare
|
||||
--[342601] = {cooldown = 3600, duration = false, specs = {}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Ritual of Doom
|
||||
[113860] = {cooldown = 120, duration = 20, specs = {265}, talent =19293, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Misery (talent)
|
||||
[104773] = {cooldown = 180, duration = 8, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 2}, --Unending Resolve
|
||||
[108416] = {cooldown = 60, duration = 20, specs = {265,266,267}, talent =19286, charges = 1, class = "WARLOCK", type = 2}, --Dark Pact (talent)
|
||||
[265187] = {cooldown = 90, duration = 15, specs = {266}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Demonic Tyrant
|
||||
[111898] = {cooldown = 120, duration = 15, specs = {266}, talent =21717, charges = 1, class = "WARLOCK", type = 1}, --Grimoire: Felguard (talent)
|
||||
[267171] = {cooldown = 60, duration = false, specs = {266}, talent =23138, charges = 1, class = "WARLOCK", type = 1}, --Demonic Strength (talent)
|
||||
[267217] = {cooldown = 180, duration = 20, specs = {266}, talent =23091, charges = 1, class = "WARLOCK", type = 1}, --Nether Portal
|
||||
[1122] = {cooldown = 180, duration = 30, specs = {267}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Infernal
|
||||
[113858] = {cooldown = 120, duration = 20, specs = {267}, talent =23092, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Instability (talent)
|
||||
[30283] = {cooldown = 60, duration = 3, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 5}, --Shadowfury
|
||||
[333889] = {cooldown = 180, duration = 15, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 5}, --Fel Domination
|
||||
[5484] = {cooldown = 40, duration = 20, specs = {265,266,267}, talent =23465, charges = 1, class = "WARLOCK", type = 5}, --Howl of Terror (talent)
|
||||
|
||||
--shaman
|
||||
[198067] = {cooldown = 150, duration = 30, talent = false, charges = 1, class = "SHAMAN", type = 1}, --Fire Elemental
|
||||
[192249] = {cooldown = 150, duration = 30, talent = 19272, charges = 1, class = "SHAMAN", type = 1}, --Storm Elemental (talent)
|
||||
[108271] = {cooldown = 90, duration = 8, talent = false, charges = 1, class = "SHAMAN", type = 2}, --Astral Shift
|
||||
[108281] = {cooldown = 120, duration = 10, talent = 22172, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Guidance (talent)
|
||||
[51533] = {cooldown = 120, duration = 15, talent = false, charges = 1, class = "SHAMAN", type = 1}, --Feral Spirit
|
||||
[114050] = {cooldown = 180, duration = 15, talent = 21675, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114051] = {cooldown = 180, duration = 15, talent = 21972, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114052] = {cooldown = 180, duration = 15, talent = 22359, charges = 1, class = "SHAMAN", type = 4}, --Ascendance (talent)
|
||||
[98008] = {cooldown = 180, duration = 6, talent = false, charges = 1, class = "SHAMAN", type = 4}, --Spirit Link Totem
|
||||
[108280] = {cooldown = 180, duration = 10, talent = false, charges = 1, class = "SHAMAN", type = 4}, --Healing Tide Totem
|
||||
[207399] = {cooldown = 240, duration = 30, talent = 22323, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Protection Totem (talent)
|
||||
[16191] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "SHAMAN", type = 4}, --Mana Tide Totem
|
||||
[198103] = {cooldown = 300, duration = 60, talent = false, charges = 1, class = "SHAMAN", type = 2}, --Earth Elemental
|
||||
[192058] = {cooldown = 60, duration = false, talent = false, charges = 1, class = "SHAMAN", type = 5}, --Capacitor Totem
|
||||
[8143] = {cooldown = 60, duration = 10, talent = false, charges = 1, class = "SHAMAN", type = 5}, --Tremor Totem
|
||||
[192077] = {cooldown = 120, duration = 15, talent = 21966, charges = 1, class = "SHAMAN", type = 5}, --Wind Rush Totem (talent)
|
||||
-- 262 - Elemental
|
||||
-- 263 - Enchancment
|
||||
-- 264 - Restoration
|
||||
|
||||
[198067] = {cooldown = 150, duration = 30, specs = {262}, talent =false, charges = 1, class = "SHAMAN", type = 1}, --Fire Elemental
|
||||
[192249] = {cooldown = 150, duration = 30, specs = {262}, talent =19272, charges = 1, class = "SHAMAN", type = 1}, --Storm Elemental (talent)
|
||||
[108271] = {cooldown = 90, duration = 8, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 2}, --Astral Shift
|
||||
[108281] = {cooldown = 120, duration = 10, specs = {262,263}, talent =22172, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Guidance (talent)
|
||||
[51533] = {cooldown = 120, duration = 15, specs = {263}, talent =false, charges = 1, class = "SHAMAN", type = 1}, --Feral Spirit
|
||||
[114050] = {cooldown = 180, duration = 15, specs = {262}, talent =21675, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114051] = {cooldown = 180, duration = 15, specs = {263}, talent =21972, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114052] = {cooldown = 180, duration = 15, specs = {264}, talent =22359, charges = 1, class = "SHAMAN", type = 4}, --Ascendance (talent)
|
||||
[98008] = {cooldown = 180, duration = 6, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Spirit Link Totem
|
||||
[108280] = {cooldown = 180, duration = 10, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Healing Tide Totem
|
||||
[207399] = {cooldown = 240, duration = 30, specs = {264}, talent =22323, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Protection Totem (talent)
|
||||
[16191] = {cooldown = 180, duration = 8, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Mana Tide Totem
|
||||
[198103] = {cooldown = 300, duration = 60, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 2}, --Earth Elemental
|
||||
[192058] = {cooldown = 60, duration = false, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 5}, --Capacitor Totem
|
||||
[8143] = {cooldown = 60, duration = 10, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 5}, --Tremor Totem
|
||||
[192077] = {cooldown = 120, duration = 15, specs = {262,263,264}, talent =21966, charges = 1, class = "SHAMAN", type = 5}, --Wind Rush Totem (talent)
|
||||
|
||||
--monk
|
||||
[132578] = {cooldown = 180, duration = 25, talent = false, charges = 1, class = "MONK", type = 1}, --Invoke Niuzao, the Black Ox
|
||||
[115080] = {cooldown = 180, duration = false, talent = false, charges = 1, class = "MONK", type = 1}, --Touch of Death
|
||||
[115203] = {cooldown = 420, duration = 15, talent = false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[115176] = {cooldown = 300, duration = 8, talent = false, charges = 1, class = "MONK", type = 2}, --Zen Meditation
|
||||
[115399] = {cooldown = 120, duration = false, talent = 19992, charges = 1, class = "MONK", type = 2}, --Black Ox brew (talent)
|
||||
[122278] = {cooldown = 120, duration = 10, talent = 20175, charges = 1, class = "MONK", type = 2}, --Dampen Harm (talent)
|
||||
[137639] = {cooldown = 90, duration = 15, talent = false, charges = 1, class = "MONK", type = 1}, --Storm, Earth, and Fire
|
||||
[123904] = {cooldown = 120, duration = 24, talent = false, charges = 1, class = "MONK", type = 1}, --Invoke Xuen, the White Tiger
|
||||
[152173] = {cooldown = 90, duration = 12, talent = 21191, charges = 1, class = "MONK", type = 1}, --Serenity (talent)
|
||||
[122470] = {cooldown = 90, duration = 6, talent = false, charges = 1, class = "MONK", type = 2}, --Touch of Karma
|
||||
[322118] = {cooldown = 180, duration = 25, talent = false, charges = 1, class = "MONK", type = 4}, --Invoke Yulon, the Jade serpent
|
||||
[243435] = {cooldown = 90, duration = 15, talent = false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[122783] = {cooldown = 90, duration = 6, talent = 20173, charges = 1, class = "MONK", type = 2}, --Diffuse Magic (talent)
|
||||
[116849] = {cooldown = 120, duration = 12, talent = false, charges = 1, class = "MONK", type = 3}, --Life Cocoon
|
||||
[115310] = {cooldown = 180, duration = false, talent = false, charges = 1, class = "MONK", type = 4}, --Revival
|
||||
[197908] = {cooldown = 90, duration = 10, talent = 22166, charges = 1, class = "MONK", type = 5}, --Mana tea (talent)
|
||||
[116844] = {cooldown = 45, duration = 5, talent = 19995, charges = 1, class = "MONK", type = 5}, --Ring of peace (talent)
|
||||
[119381] = {cooldown = 50, duration = 3, talent = false, charges = 1, class = "MONK", type = 5}, --Leg Sweep
|
||||
-- 268 - Brewmaster
|
||||
-- 269 - Windwalker
|
||||
-- 270 - Restoration
|
||||
|
||||
[132578] = {cooldown = 180, duration = 25, specs = {268}, talent =false, charges = 1, class = "MONK", type = 1}, --Invoke Niuzao, the Black Ox
|
||||
[115080] = {cooldown = 180, duration = false, specs = {268,269,270}, talent =false, charges = 1, class = "MONK", type = 1}, --Touch of Death
|
||||
[115203] = {cooldown = 420, duration = 15, specs = {268}, talent =false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[115176] = {cooldown = 300, duration = 8, specs = {268}, talent =false, charges = 1, class = "MONK", type = 2}, --Zen Meditation
|
||||
[115399] = {cooldown = 120, duration = false, specs = {268}, talent =19992, charges = 1, class = "MONK", type = 2}, --Black Ox brew (talent)
|
||||
[122278] = {cooldown = 120, duration = 10, specs = {268,269,270}, talent =20175, charges = 1, class = "MONK", type = 2}, --Dampen Harm (talent)
|
||||
[137639] = {cooldown = 90, duration = 15, specs = {269}, talent =false, charges = 1, class = "MONK", type = 1}, --Storm, Earth, and Fire
|
||||
[123904] = {cooldown = 120, duration = 24, specs = {269}, talent =false, charges = 1, class = "MONK", type = 1}, --Invoke Xuen, the White Tiger
|
||||
[152173] = {cooldown = 90, duration = 12, specs = {269}, talent =21191, charges = 1, class = "MONK", type = 1}, --Serenity (talent)
|
||||
[122470] = {cooldown = 90, duration = 6, specs = {269}, talent =false, charges = 1, class = "MONK", type = 2}, --Touch of Karma
|
||||
[322118] = {cooldown = 180, duration = 25, specs = {270}, talent =false, charges = 1, class = "MONK", type = 4}, --Invoke Yulon, the Jade serpent
|
||||
[243435] = {cooldown = 90, duration = 15, specs = {269,270}, talent =false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[122783] = {cooldown = 90, duration = 6, specs = {269,270}, talent =20173, charges = 1, class = "MONK", type = 2}, --Diffuse Magic (talent)
|
||||
[116849] = {cooldown = 120, duration = 12, specs = {270}, talent =false, charges = 1, class = "MONK", type = 3}, --Life Cocoon
|
||||
[115310] = {cooldown = 180, duration = false, specs = {270}, talent =false, charges = 1, class = "MONK", type = 4}, --Revival
|
||||
[197908] = {cooldown = 90, duration = 10, specs = {270}, talent =22166, charges = 1, class = "MONK", type = 5}, --Mana tea (talent)
|
||||
[116844] = {cooldown = 45, duration = 5, specs = {268,269,270}, talent =19995, charges = 1, class = "MONK", type = 5}, --Ring of peace (talent)
|
||||
[119381] = {cooldown = 50, duration = 3, specs = {268,269,270}, talent =false, charges = 1, class = "MONK", type = 5}, --Leg Sweep
|
||||
|
||||
--hunter
|
||||
[193530] = {cooldown = 120, duration = 20, talent = false, charges = 1, class = "HUNTER", type = 1}, --Aspect of the Wild
|
||||
[19574] = {cooldown = 90, duration = 12, talent = false, charges = 1, class = "HUNTER", type = 1}, --Bestial Wrath
|
||||
[201430] = {cooldown = 180, duration = 12, talent = 23044, charges = 1, class = "HUNTER", type = 1}, --Stampede (talent)
|
||||
[288613] = {cooldown = 180, duration = 15, talent = false, charges = 1, class = "HUNTER", type = 1}, --Trueshot
|
||||
[199483] = {cooldown = 60, duration = 60, talent = 23100, charges = 1, class = "HUNTER", type = 2}, --Camouflage (talent)
|
||||
[281195] = {cooldown = 180, duration = 6, talent = false, charges = 1, class = "HUNTER", type = 2}, --Survival of the Fittest
|
||||
[266779] = {cooldown = 120, duration = 20, talent = false, charges = 1, class = "HUNTER", type = 1}, --Coordinated Assault
|
||||
[186265] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "HUNTER", type = 2}, --Aspect of the Turtle
|
||||
[109304] = {cooldown = 120, duration = false, talent = false, charges = 1, class = "HUNTER", type = 2}, --Exhilaration
|
||||
[186257] = {cooldown = 144, duration = 14, talent = false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the cheetah
|
||||
[19577] = {cooldown = 60, duration = 5, talent = false, charges = 1, class = "HUNTER", type = 5}, --Intimidation
|
||||
[109248] = {cooldown = 45, duration = 10, talent = 22499, charges = 1, class = "HUNTER", type = 5}, --Binding Shot (talent)
|
||||
[187650] = {cooldown = 25, duration = 60, talent = false, charges = 1, class = "HUNTER", type = 5}, --Freezing Trap
|
||||
[186289] = {cooldown = 72, duration = 15, talent = false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the eagle
|
||||
-- 253 - Beast Mastery
|
||||
-- 254 - Marksmenship
|
||||
-- 255 - Survival
|
||||
|
||||
[193530] = {cooldown = 120, duration = 20, specs = {253}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Aspect of the Wild
|
||||
[19574] = {cooldown = 90, duration = 12, specs = {253}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Bestial Wrath
|
||||
[201430] = {cooldown = 180, duration = 12, specs = {253}, talent =23044, charges = 1, class = "HUNTER", type = 1}, --Stampede (talent)
|
||||
[288613] = {cooldown = 180, duration = 15, specs = {254}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Trueshot
|
||||
[199483] = {cooldown = 60, duration = 60, specs = {253,254,255}, talent =23100, charges = 1, class = "HUNTER", type = 2}, --Camouflage (talent)
|
||||
[281195] = {cooldown = 180, duration = 6, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Survival of the Fittest
|
||||
[266779] = {cooldown = 120, duration = 20, specs = {255}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Coordinated Assault
|
||||
[186265] = {cooldown = 180, duration = 8, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Aspect of the Turtle
|
||||
[109304] = {cooldown = 120, duration = false, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Exhilaration
|
||||
[186257] = {cooldown = 144, duration = 14, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the cheetah
|
||||
[19577] = {cooldown = 60, duration = 5, specs = {253,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Intimidation
|
||||
[109248] = {cooldown = 45, duration = 10, specs = {253,254,255}, talent =22499, charges = 1, class = "HUNTER", type = 5}, --Binding Shot (talent)
|
||||
[187650] = {cooldown = 25, duration = 60, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Freezing Trap
|
||||
[186289] = {cooldown = 72, duration = 15, specs = {255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the eagle
|
||||
|
||||
--druid
|
||||
[77761] = {cooldown = 120, duration = 8, talent = false, charges = 1, class = "DRUID", type = 4}, --Stampeding Roar
|
||||
[194223] = {cooldown = 180, duration = 20, talent = false, charges = 1, class = "DRUID", type = 1}, --Celestial Alignment
|
||||
[102560] = {cooldown = 180, duration = 30, talent = 21702, charges = 1, class = "DRUID", type = 1}, --Incarnation: Chosen of Elune (talent)
|
||||
[22812] = {cooldown = 60, duration = 12, talent = false, charges = 1, class = "DRUID", type = 2}, --Barkskin
|
||||
[108238] = {cooldown = 90, duration = false, talent = 18570, charges = 1, class = "DRUID", type = 2}, --Renewal (talent)
|
||||
[29166] = {cooldown = 180, duration = 12, talent = false, charges = 1, class = "DRUID", type = 3}, --Innervate
|
||||
[106951] = {cooldown = 180, duration = 15, talent = false, charges = 1, class = "DRUID", type = 1}, --Berserk
|
||||
[102543] = {cooldown = 30, duration = 180, talent = 21704, charges = 1, class = "DRUID", type = 1}, --Incarnation: King of the Jungle (talent)
|
||||
[61336] = {cooldown = 120, duration = 6, talent = false, charges = 2, class = "DRUID", type = 2}, --Survival Instincts (2min feral 4min guardian, same spellid)
|
||||
[102558] = {cooldown = 180, duration = 30, talent = 22388, charges = 1, class = "DRUID", type = 2}, --Incarnation: Guardian of Ursoc (talent)
|
||||
[33891] = {cooldown = 180, duration = 30, talent = 22421, charges = 1, class = "DRUID", type = 2}, --Incarnation: Tree of Life (talent)
|
||||
[102342] = {cooldown = 60, duration = 12, talent = false, charges = 1, class = "DRUID", type = 3}, --Ironbark
|
||||
[203651] = {cooldown = 60, duration = false, talent = 22422, charges = 1, class = "DRUID", type = 3}, --Overgrowth (talent)
|
||||
[740] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "DRUID", type = 4}, --Tranquility
|
||||
[197721] = {cooldown = 90, duration = 8, talent = 22404, charges = 1, class = "DRUID", type = 4}, --Flourish (talent)
|
||||
[132469] = {cooldown = 30, duration = false, talent = false, charges = 1, class = "DRUID", type = 5}, --Typhoon
|
||||
[319454] = {cooldown = 300, duration = 45, talent = 18577, charges = 1, class = "DRUID", type = 5}, --Heart of the Wild (talent)
|
||||
[102793] = {cooldown = 60, duration = 10, talent = false, charges = 1, class = "DRUID", type = 5}, --Ursol's Vortex
|
||||
-- 102 - Balance
|
||||
-- 103 - Feral
|
||||
-- 104 - Guardian
|
||||
-- 105 - Restoration
|
||||
|
||||
[77761] = {cooldown = 120, duration = 8, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 4}, --Stampeding Roar
|
||||
[194223] = {cooldown = 180, duration = 20, specs = {102}, talent =false, charges = 1, class = "DRUID", type = 1}, --Celestial Alignment
|
||||
[102560] = {cooldown = 180, duration = 30, specs = {102}, talent =21702, charges = 1, class = "DRUID", type = 1}, --Incarnation: Chosen of Elune (talent)
|
||||
[22812] = {cooldown = 60, duration = 12, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 2}, --Barkskin
|
||||
[108238] = {cooldown = 90, duration = false, specs = {102,103,104,105}, talent =18570, charges = 1, class = "DRUID", type = 2}, --Renewal (talent)
|
||||
[29166] = {cooldown = 180, duration = 12, specs = {102,105}, talent =false, charges = 1, class = "DRUID", type = 3}, --Innervate
|
||||
[106951] = {cooldown = 180, duration = 15, specs = {103,104}, talent =false, charges = 1, class = "DRUID", type = 1}, --Berserk
|
||||
[102543] = {cooldown = 30, duration = 180, specs = {103}, talent =21704, charges = 1, class = "DRUID", type = 1}, --Incarnation: King of the Jungle (talent)
|
||||
[61336] = {cooldown = 120, duration = 6, specs = {103,104}, talent =false, charges = 2, class = "DRUID", type = 2}, --Survival Instincts (2min feral 4min guardian, same spellid)
|
||||
[102558] = {cooldown = 180, duration = 30, specs = {104}, talent =22388, charges = 1, class = "DRUID", type = 2}, --Incarnation: Guardian of Ursoc (talent)
|
||||
[33891] = {cooldown = 180, duration = 30, specs = {105}, talent =22421, charges = 1, class = "DRUID", type = 2}, --Incarnation: Tree of Life (talent)
|
||||
[102342] = {cooldown = 60, duration = 12, specs = {105}, talent =false, charges = 1, class = "DRUID", type = 3}, --Ironbark
|
||||
[203651] = {cooldown = 60, duration = false, specs = {105}, talent =22422, charges = 1, class = "DRUID", type = 3}, --Overgrowth (talent)
|
||||
[740] = {cooldown = 180, duration = 8, specs = {105}, talent =false, charges = 1, class = "DRUID", type = 4}, --Tranquility
|
||||
[197721] = {cooldown = 90, duration = 8, specs = {105}, talent =22404, charges = 1, class = "DRUID", type = 4}, --Flourish (talent)
|
||||
[132469] = {cooldown = 30, duration = false, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 5}, --Typhoon
|
||||
[319454] = {cooldown = 300, duration = 45, specs = {102,103,104,105}, talent =18577, charges = 1, class = "DRUID", type = 5}, --Heart of the Wild (talent)
|
||||
[102793] = {cooldown = 60, duration = 10, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 5}, --Ursol's Vortex
|
||||
|
||||
--death knight
|
||||
[275699] = {cooldown = 90, duration = 15, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Apocalypse
|
||||
[42650] = {cooldown = 480, duration = 30, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Army of the Dead
|
||||
[49206] = {cooldown = 180, duration = 30, talent = 22110, charges = 1, class = "DEATHKNIGHT", type = 1}, --Summon Gargoyle (talent)
|
||||
[207289] = {cooldown = 78, duration = 12, talent = 22538, charges = 1, class = "DEATHKNIGHT", type = 1}, --Unholy Assault (talent)
|
||||
[48743] = {cooldown = 120, duration = 15, talent = 23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Death Pact (talent)
|
||||
[48707] = {cooldown = 60, duration = 10, talent = 23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Anti-magic Shell
|
||||
[152279] = {cooldown = 120, duration = 5, talent = 22537, charges = 1, class = "DEATHKNIGHT", type = 1}, --Breath of Sindragosa (talent)
|
||||
[47568] = {cooldown = 120, duration = 20, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Empower Rune Weapon
|
||||
[279302] = {cooldown = 120, duration = 10, talent = 22535, charges = 1, class = "DEATHKNIGHT", type = 1}, --Frostwyrm's Fury (talent)
|
||||
[49028] = {cooldown = 120, duration = 8, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Dancing Rune Weapon
|
||||
[55233] = {cooldown = 90, duration = 10, talent = false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Vampiric Blood
|
||||
[48792] = {cooldown = 120, duration = 8, talent = false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Icebound Fortitude
|
||||
[51052] = {cooldown = 120, duration = 10, talent = false, charges = 1, class = "DEATHKNIGHT", type = 4}, --Anti-magic Zone
|
||||
[219809] = {cooldown = 60, duration = 8, talent = 23454, charges = 1, class = "DEATHKNIGHT", type = 2}, --Tombstone (talent)
|
||||
[108199] = {cooldown = 120, duration = false, talent = false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Gorefiend's Grasp
|
||||
[207167] = {cooldown = 60, duration = 5, talent = 22519, charges = 1, class = "DEATHKNIGHT", type = 5}, --Blinding Sleet (talent)
|
||||
[108194] = {cooldown = 45, duration = 4, talent = 22520, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate (talent)
|
||||
[221562] = {cooldown = 45, duration = 5, talent = false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate
|
||||
[212552] = {cooldown = 60, duration = 4, talent = 19228, charges = 1, class = "DEATHKNIGHT", type = 5}, --Wraith walk (talent)
|
||||
-- 252 - Unholy
|
||||
-- 251 - Frost
|
||||
-- 252 - Blood
|
||||
|
||||
[275699] = {cooldown = 90, duration = 15, specs = {252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Apocalypse
|
||||
[42650] = {cooldown = 480, duration = 30, specs = {252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Army of the Dead
|
||||
[49206] = {cooldown = 180, duration = 30, specs = {252}, talent =22110, charges = 1, class = "DEATHKNIGHT", type = 1}, --Summon Gargoyle (talent)
|
||||
[207289] = {cooldown = 78, duration = 12, specs = {252}, talent =22538, charges = 1, class = "DEATHKNIGHT", type = 1}, --Unholy Assault (talent)
|
||||
[48743] = {cooldown = 120, duration = 15, specs = {250,251,252}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Death Pact (talent)
|
||||
[48707] = {cooldown = 60, duration = 10, specs = {250,251,252}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Anti-magic Shell
|
||||
[152279] = {cooldown = 120, duration = 5, specs = {251}, talent =22537, charges = 1, class = "DEATHKNIGHT", type = 1}, --Breath of Sindragosa (talent)
|
||||
[47568] = {cooldown = 120, duration = 20, specs = {251}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Empower Rune Weapon
|
||||
[279302] = {cooldown = 120, duration = 10, specs = {251}, talent =22535, charges = 1, class = "DEATHKNIGHT", type = 1}, --Frostwyrm's Fury (talent)
|
||||
[49028] = {cooldown = 120, duration = 8, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Dancing Rune Weapon
|
||||
[55233] = {cooldown = 90, duration = 10, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Vampiric Blood
|
||||
[48792] = {cooldown = 120, duration = 8, specs = {250,251,252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Icebound Fortitude
|
||||
[51052] = {cooldown = 120, duration = 10, specs = {250,251,252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 4}, --Anti-magic Zone
|
||||
[219809] = {cooldown = 60, duration = 8, specs = {250}, talent =23454, charges = 1, class = "DEATHKNIGHT", type = 2}, --Tombstone (talent)
|
||||
[108199] = {cooldown = 120, duration = false, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Gorefiend's Grasp
|
||||
[207167] = {cooldown = 60, duration = 5, specs = {251}, talent =22519, charges = 1, class = "DEATHKNIGHT", type = 5}, --Blinding Sleet (talent)
|
||||
[108194] = {cooldown = 45, duration = 4, specs = {251,252}, talent =22520, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate (talent)
|
||||
[221562] = {cooldown = 45, duration = 5, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate
|
||||
[212552] = {cooldown = 60, duration = 4, specs = {250,251,252}, talent =19228, charges = 1, class = "DEATHKNIGHT", type = 5}, --Wraith walk (talent)
|
||||
|
||||
--demon hunter
|
||||
[191427] = {cooldown = 240, duration = 30, talent = false, charges = 1, class = "DEMONHUNTER", type = 1}, --Metamorphosis
|
||||
[198589] = {cooldown = 60, duration = 10, talent = false, charges = 1, class = "DEMONHUNTER", type = 2}, --Blur
|
||||
[196555] = {cooldown = 120, duration = 5, talent = 21865, charges = 1, class = "DEMONHUNTER", type = 2}, --Netherwalk (talent)
|
||||
[187827] = {cooldown = 180, duration = 15, talent = false, charges = 1, class = "DEMONHUNTER", type = 2}, --Metamorphosis
|
||||
[196718] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "DEMONHUNTER", type = 4}, --Darkness
|
||||
[188501] = {cooldown = 30, duration = 10, talent = false, charges = 1, class = "DEMONHUNTER", type = 5}, --Spectral Sight
|
||||
[179057] = {cooldown = 60, duration = 2, talent = false, charges = 1, class = "DEMONHUNTER", type = 5}, --Chaos Nova
|
||||
[211881] = {cooldown = 30, duration = 4, talent = 22767, charges = 1, class = "DEMONHUNTER", type = 5}, --Fel Eruption (talent)
|
||||
[320341] = {cooldown = 90, duration = false, talent = 21902, charges = 1, class = "DEMONHUNTER", type = 1}, --Bulk Extraction (talent)
|
||||
[204021] = {cooldown = 60, duration = 10, talent = false, charges = 1, class = "DEMONHUNTER", type = 2}, --Fiery Brand
|
||||
[263648] = {cooldown = 30, duration = 12, talent = 22768, charges = 1, class = "DEMONHUNTER", type = 2}, --Soul Barrier (talent)
|
||||
[207684] = {cooldown = 90, duration = 12, talent = false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Misery
|
||||
[202137] = {cooldown = 60, duration = 8, talent = false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Silence
|
||||
[202138] = {cooldown = 90, duration = 6, talent = 22511, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Chains (talent)
|
||||
-- 577 - Havoc
|
||||
-- 581 - Vengance
|
||||
|
||||
[191427] = {cooldown = 240, duration = 30, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 1}, --Metamorphosis
|
||||
[198589] = {cooldown = 60, duration = 10, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Blur
|
||||
[196555] = {cooldown = 120, duration = 5, specs = {577}, talent =21865, charges = 1, class = "DEMONHUNTER", type = 2}, --Netherwalk (talent)
|
||||
[187827] = {cooldown = 180, duration = 15, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Metamorphosis
|
||||
[196718] = {cooldown = 180, duration = 8, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 4}, --Darkness
|
||||
[188501] = {cooldown = 30, duration = 10, specs = {577,581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Spectral Sight
|
||||
[179057] = {cooldown = 60, duration = 2, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Chaos Nova
|
||||
[211881] = {cooldown = 30, duration = 4, specs = {577}, talent =22767, charges = 1, class = "DEMONHUNTER", type = 5}, --Fel Eruption (talent)
|
||||
[320341] = {cooldown = 90, duration = false, specs = {581}, talent =21902, charges = 1, class = "DEMONHUNTER", type = 1}, --Bulk Extraction (talent)
|
||||
[204021] = {cooldown = 60, duration = 10, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Fiery Brand
|
||||
[263648] = {cooldown = 30, duration = 12, specs = {581}, talent =22768, charges = 1, class = "DEMONHUNTER", type = 2}, --Soul Barrier (talent)
|
||||
[207684] = {cooldown = 90, duration = 12, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Misery
|
||||
[202137] = {cooldown = 60, duration = 8, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Silence
|
||||
[202138] = {cooldown = 90, duration = 6, specs = {581}, talent =22511, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Chains (talent)
|
||||
|
||||
--mage
|
||||
[12042] = {cooldown = 90, duration = 10, talent = false, charges = 1, class = "MAGE", type = 1}, --Arcane Power
|
||||
[12051] = {cooldown = 90, duration = 6, talent = false, charges = 1, class = "MAGE", type = 1}, --Evocation
|
||||
[110960] = {cooldown = 120, duration = 20, talent = false, charges = 1, class = "MAGE", type = 2}, --Greater Invisibility
|
||||
[235450] = {cooldown = 25, duration = 60, talent = false, charges = 1, class = "MAGE", type = 5}, --Prismatic Barrier
|
||||
[235313] = {cooldown = 25, duration = 60, talent = false, charges = 1, class = "MAGE", type = 5}, --Blazing Barrier
|
||||
[11426] = {cooldown = 25, duration = 60, talent = false, charges = 1, class = "MAGE", type = 5}, --Ice Barrier
|
||||
[190319] = {cooldown = 120, duration = 10, talent = false, charges = 1, class = "MAGE", type = 1}, --Combustion
|
||||
[55342] = {cooldown = 120, duration = 40, talent = 22445, charges = 1, class = "MAGE", type = 1}, --Mirror Image
|
||||
[66] = {cooldown = 300, duration = 20, talent = false, charges = 1, class = "MAGE", type = 2}, --Invisibility
|
||||
[12472] = {cooldown = 180, duration = 20, talent = false, charges = 1, class = "MAGE", type = 1}, --Icy Veins
|
||||
[205021] = {cooldown = 78, duration = 5, talent = 22309, charges = 1, class = "MAGE", type = 1}, --Ray of Frost (talent)
|
||||
[45438] = {cooldown = 240, duration = 10, talent = false, charges = 1, class = "MAGE", type = 2}, --Ice Block
|
||||
[235219] = {cooldown = 300, duration = false, talent = false, charges = 1, class = "MAGE", type = 5}, --Cold Snap
|
||||
[113724] = {cooldown = 45, duration = 10, talent = 22471, charges = 1, class = "MAGE", type = 5}, --Ring of Frost (talent)
|
||||
-- 62 - Arcane
|
||||
-- 63 - Fire
|
||||
-- 64 - Frost
|
||||
|
||||
[12042] = {cooldown = 90, duration = 10, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 1}, --Arcane Power
|
||||
[12051] = {cooldown = 90, duration = 6, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 1}, --Evocation
|
||||
[110960] = {cooldown = 120, duration = 20, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 2}, --Greater Invisibility
|
||||
[235450] = {cooldown = 25, duration = 60, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 5}, --Prismatic Barrier
|
||||
[235313] = {cooldown = 25, duration = 60, specs = {63}, talent =false, charges = 1, class = "MAGE", type = 5}, --Blazing Barrier
|
||||
[11426] = {cooldown = 25, duration = 60, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 5}, --Ice Barrier
|
||||
[190319] = {cooldown = 120, duration = 10, specs = {63}, talent =false, charges = 1, class = "MAGE", type = 1}, --Combustion
|
||||
[55342] = {cooldown = 120, duration = 40, specs = {62,63,64}, talent =22445, charges = 1, class = "MAGE", type = 1}, --Mirror Image
|
||||
[66] = {cooldown = 300, duration = 20, specs = {63,64}, talent =false, charges = 1, class = "MAGE", type = 2}, --Invisibility
|
||||
[12472] = {cooldown = 180, duration = 20, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 1}, --Icy Veins
|
||||
[205021] = {cooldown = 78, duration = 5, specs = {64}, talent =22309, charges = 1, class = "MAGE", type = 1}, --Ray of Frost (talent)
|
||||
[45438] = {cooldown = 240, duration = 10, specs = {62,63,64}, talent =false, charges = 1, class = "MAGE", type = 2}, --Ice Block
|
||||
[235219] = {cooldown = 300, duration = false, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 5}, --Cold Snap
|
||||
[113724] = {cooldown = 45, duration = 10, specs = {62,63,64}, talent =22471, charges = 1, class = "MAGE", type = 5}, --Ring of Frost (talent)
|
||||
|
||||
--priest
|
||||
[10060] = {cooldown = 120, duration = 20, talent = false, charges = 1, class = "PRIEST", type = 1}, --Power Infusion
|
||||
[34433] = {cooldown = 180, duration = 15, talent = false, charges = 1, class = "PRIEST", type = 1, ignoredIfTalent = 21719}, --Shadowfiend
|
||||
[200174] = {cooldown = 60, duration = 15, talent = 21719, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[123040] = {cooldown = 60, duration = 12, talent = 22094, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[33206] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "PRIEST", type = 3}, --Pain Suppression
|
||||
[62618] = {cooldown = 180, duration = 10, talent = false, charges = 1, class = "PRIEST", type = 4}, --Power Word: Barrier
|
||||
[271466] = {cooldown = 180, duration = 10, talent = 21184, charges = 1, class = "PRIEST", type = 4}, --Luminous Barrier (talent)
|
||||
[47536] = {cooldown = 90, duration = 10, talent = false, charges = 1, class = "PRIEST", type = 5}, --Rapture
|
||||
[19236] = {cooldown = 90, duration = 10, talent = false, charges = 1, class = "PRIEST", type = 5}, --Desperate Prayer
|
||||
[200183] = {cooldown = 120, duration = 20, talent = 21644, charges = 1, class = "PRIEST", type = 2}, --Apotheosis (talent)
|
||||
[47788] = {cooldown = 180, duration = 10, talent = false, charges = 1, class = "PRIEST", type = 3}, --Guardian Spirit
|
||||
[64843] = {cooldown = 180, duration = 8, talent = false, charges = 1, class = "PRIEST", type = 4}, --Divine Hymn
|
||||
[64901] = {cooldown = 300, duration = 6, talent = false, charges = 1, class = "PRIEST", type = 4}, --Symbol of Hope
|
||||
[265202] = {cooldown = 720, duration = false, talent = 23145, charges = 1, class = "PRIEST", type = 4}, --Holy Word: Salvation (talent)
|
||||
[109964] = {cooldown = 60, duration = 12, talent = 21184, charges = 1, class = "PRIEST", type = 4}, --Spirit Shell (talent)
|
||||
[8122] = {cooldown = 60, duration = 8, talent = false, charges = 1, class = "PRIEST", type = 5}, --Psychic Scream
|
||||
[193223] = {cooldown = 240, duration = 60, talent = 21979, charges = 1, class = "PRIEST", type = 1}, --Surrender to Madness (talent)
|
||||
[47585] = {cooldown = 120, duration = 6, talent = false, charges = 1, class = "PRIEST", type = 2}, --Dispersion
|
||||
[15286] = {cooldown = 120, duration = 15, talent = false, charges = 1, class = "PRIEST", type = 4}, --Vampiric Embrace
|
||||
[64044] = {cooldown = 45, duration = 4, talent = 21752, charges = 1, class = "PRIEST", type = 5}, --Psychic Horror
|
||||
[205369] = {cooldown = 30, duration = 6, talent = 23375, charges = 1, class = "PRIEST", type = 5}, --Mind Bomb
|
||||
[228260] = {cooldown = 90, duration = 15, talent = false, charges = 1, class = "PRIEST", type = 1}, --Void Erruption
|
||||
-- 256 - Discipline
|
||||
-- 257 - Holy
|
||||
-- 258 - Shadow
|
||||
|
||||
[10060] = {cooldown = 120, duration = 20, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 1}, --Power Infusion
|
||||
[34433] = {cooldown = 180, duration = 15, specs = {256,258}, talent =false, charges = 1, class = "PRIEST", type = 1, ignoredIfTalent = 21719}, --Shadowfiend
|
||||
[200174] = {cooldown = 60, duration = 15, specs = {258}, talent =21719, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[123040] = {cooldown = 60, duration = 12, specs = {256}, talent =22094, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[33206] = {cooldown = 180, duration = 8, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 3}, --Pain Suppression
|
||||
[62618] = {cooldown = 180, duration = 10, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Power Word: Barrier
|
||||
[271466] = {cooldown = 180, duration = 10, specs = {256}, talent =21184, charges = 1, class = "PRIEST", type = 4}, --Luminous Barrier (talent)
|
||||
[47536] = {cooldown = 90, duration = 10, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Rapture
|
||||
[19236] = {cooldown = 90, duration = 10, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Desperate Prayer
|
||||
[200183] = {cooldown = 120, duration = 20, specs = {257}, talent =21644, charges = 1, class = "PRIEST", type = 2}, --Apotheosis (talent)
|
||||
[47788] = {cooldown = 180, duration = 10, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 3}, --Guardian Spirit
|
||||
[64843] = {cooldown = 180, duration = 8, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Divine Hymn
|
||||
[64901] = {cooldown = 300, duration = 6, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Symbol of Hope
|
||||
[265202] = {cooldown = 720, duration = false, specs = {257}, talent =23145, charges = 1, class = "PRIEST", type = 4}, --Holy Word: Salvation (talent)
|
||||
[109964] = {cooldown = 60, duration = 12, specs = {256}, talent =21184, charges = 1, class = "PRIEST", type = 4}, --Spirit Shell (talent)
|
||||
[8122] = {cooldown = 60, duration = 8, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Psychic Scream
|
||||
[193223] = {cooldown = 240, duration = 60, specs = {258}, talent =21979, charges = 1, class = "PRIEST", type = 1}, --Surrender to Madness (talent)
|
||||
[47585] = {cooldown = 120, duration = 6, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 2}, --Dispersion
|
||||
[15286] = {cooldown = 120, duration = 15, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Vampiric Embrace
|
||||
[64044] = {cooldown = 45, duration = 4, specs = {258}, talent =21752, charges = 1, class = "PRIEST", type = 5}, --Psychic Horror
|
||||
[205369] = {cooldown = 30, duration = 6, specs = {258}, talent =23375, charges = 1, class = "PRIEST", type = 5}, --Mind Bomb
|
||||
[228260] = {cooldown = 90, duration = 15, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 1}, --Void Erruption
|
||||
[73325] = {cooldown = 90, duration = false, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Leap of Faith
|
||||
|
||||
--rogue
|
||||
[79140] = {cooldown = 120, duration = 20, talent = false, charges = 1, class = "ROGUE", type = 1}, --Vendetta
|
||||
[1856] = {cooldown = 120, duration = 3, talent = false, charges = 1, class = "ROGUE", type = 2}, --Vanish
|
||||
[5277] = {cooldown = 120, duration = 10, talent = false, charges = 1, class = "ROGUE", type = 2}, --Evasion
|
||||
[31224] = {cooldown = 120, duration = 5, talent = false, charges = 1, class = "ROGUE", type = 2}, --Cloak of Shadows
|
||||
[2094] = {cooldown = 120, duration = 60, talent = false, charges = 1, class = "ROGUE", type = 5}, --Blind
|
||||
[114018] = {cooldown = 360, duration = 15, talent = false, charges = 1, class = "ROGUE", type = 5}, --Shroud of Concealment
|
||||
[185311] = {cooldown = 30, duration = 15, talent = false, charges = 1, class = "ROGUE", type = 5}, --Crimson Vial
|
||||
[13750] = {cooldown = 180, duration = 20, talent = false, charges = 1, class = "ROGUE", type = 1}, --Adrenaline Rush
|
||||
[51690] = {cooldown = 120, duration = 2, talent = 23175, charges = 1, class = "ROGUE", type = 1}, --Killing Spree (talent)
|
||||
[199754] = {cooldown = 120, duration = 10, talent = false, charges = 1, class = "ROGUE", type = 2}, --Riposte
|
||||
[343142] = {cooldown = 90, duration = 10, talent = 19250, charges = 1, class = "ROGUE", type = 5}, --Dreadblades
|
||||
[121471] = {cooldown = 180, duration = 20, talent = false, charges = 1, class = "ROGUE", type = 1}, --Shadow Blades
|
||||
-- 259 - Assasination
|
||||
-- 260 - Outlaw
|
||||
-- 261 - Subtlety
|
||||
|
||||
[79140] = {cooldown = 120, duration = 20, specs = {259}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Vendetta
|
||||
[1856] = {cooldown = 120, duration = 3, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Vanish
|
||||
[5277] = {cooldown = 120, duration = 10, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Evasion
|
||||
[31224] = {cooldown = 120, duration = 5, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Cloak of Shadows
|
||||
[2094] = {cooldown = 120, duration = 60, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Blind
|
||||
[114018] = {cooldown = 360, duration = 15, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Shroud of Concealment
|
||||
[185311] = {cooldown = 30, duration = 15, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Crimson Vial
|
||||
[13750] = {cooldown = 180, duration = 20, specs = {260}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Adrenaline Rush
|
||||
[51690] = {cooldown = 120, duration = 2, specs = {260}, talent =23175, charges = 1, class = "ROGUE", type = 1}, --Killing Spree (talent)
|
||||
[199754] = {cooldown = 120, duration = 10, specs = {260}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Riposte
|
||||
[343142] = {cooldown = 90, duration = 10, specs = {260}, talent =19250, charges = 1, class = "ROGUE", type = 5}, --Dreadblades
|
||||
[121471] = {cooldown = 180, duration = 20, specs = {261}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Shadow Blades
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {};
|
||||
for spellID,spellData in pairs(LIB_OPEN_RAID_COOLDOWNS_INFO) do
|
||||
for _,specID in ipairs(spellData.specs) do
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] = LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] or {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID][spellID] = spellData.type;
|
||||
end
|
||||
end
|
||||
|
||||
-- DF Evoker
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1467] = {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1468] = {};
|
||||
|
||||
--[=[
|
||||
Spell customizations:
|
||||
Many times there's spells with the same name which does different effects
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
_detalhes.BFACORE = 131 --core version on BFA launch
|
||||
_detalhes.SHADOWLANDSCORE = 143 --core version on Shadowlands launch
|
||||
--
|
||||
_detalhes.dragonflight_beta_version = 27
|
||||
_detalhes.dragonflight_beta_version = 28
|
||||
|
||||
Details = _detalhes
|
||||
|
||||
|
||||
@@ -1608,14 +1608,18 @@ function _detalhes:RestauraJanela(index, temp, load_only)
|
||||
else
|
||||
self.mostrando = "normal"
|
||||
end
|
||||
|
||||
|
||||
--fix for the weird white window default skin
|
||||
--this is a auto detect for configuration corruption, happens usually when the user install Details! over old config settings
|
||||
--check if the skin used in the window is the default skin, check if statusbar is in use and if the color of the window is full white
|
||||
if (self.skin == _detalhes.default_skin_to_use and self.show_statusbar) then
|
||||
if(self.color[1] == 1 and self.color[2] == 1 and self.color[3] == 1 and self.color[4] == 1) then
|
||||
print ("|cFFFF2222Details!: Corrupted skin detected! Resetting window skin to default.")
|
||||
Details:Msg("error 0xFF85DD")
|
||||
self.skin = "no skin"
|
||||
self:ChangeSkin(_detalhes.default_skin_to_use)
|
||||
end
|
||||
end
|
||||
|
||||
--> internal stuff
|
||||
self.oldwith = self.baseframe:GetWidth()
|
||||
|
||||
|
||||
@@ -175,6 +175,9 @@ _detalhes.instance_defaults = {
|
||||
enable_custom_text = false,
|
||||
custom_text = "{name}",
|
||||
show_timer = true,
|
||||
show_timer_always = false, --show the timer even when not in an encounter
|
||||
show_timer_bg = true, --show the timer within battleground, the timer is the elapsed battleground time
|
||||
show_timer_arena = true, ---show the timer within arena, the timer is the elapsed time of the arena match
|
||||
},
|
||||
--auto hide window borders statusbar main menu
|
||||
menu_alpha = {enabled = false, iconstoo = true, onenter = 1, onleave = 1, ignorebars = false},
|
||||
|
||||
+20
-7
@@ -1008,31 +1008,42 @@
|
||||
|
||||
function Details:CreateArenaSegment()
|
||||
Details:GetPlayersInArena()
|
||||
|
||||
|
||||
Details.arena_begun = true
|
||||
Details.start_arena = nil
|
||||
|
||||
|
||||
if (Details.in_combat) then
|
||||
Details:SairDoCombate()
|
||||
end
|
||||
|
||||
|
||||
--> registra os gr�ficos
|
||||
Details:TimeDataRegister ("Your Team Damage", string_arena_myteam_damage, nil, "Details!", "v1.0", [[Interface\ICONS\Ability_DualWield]], true, true)
|
||||
Details:TimeDataRegister ("Enemy Team Damage", string_arena_enemyteam_damage, nil, "Details!", "v1.0", [[Interface\ICONS\Ability_DualWield]], true, true)
|
||||
|
||||
|
||||
Details:TimeDataRegister ("Your Team Healing", string_arena_myteam_heal, nil, "Details!", "v1.0", [[Interface\ICONS\Ability_DualWield]], true, true)
|
||||
Details:TimeDataRegister ("Enemy Team Healing", string_arena_enemyteam_heal, nil, "Details!", "v1.0", [[Interface\ICONS\Ability_DualWield]], true, true)
|
||||
|
||||
|
||||
Details.lastArenaStartTime = GetTime()
|
||||
|
||||
--> inicia um novo combate
|
||||
Details:EntrarEmCombate()
|
||||
|
||||
|
||||
--> sinaliza que esse combate � arena
|
||||
Details.tabela_vigente.arena = true
|
||||
Details.tabela_vigente.is_arena = {name = Details.zone_name, zone = Details.zone_name, mapid = Details.zone_id}
|
||||
|
||||
Details:SendEvent("COMBAT_ARENA_START")
|
||||
end
|
||||
|
||||
|
||||
--return the GetTime() of the current or latest arena match
|
||||
function Details:GetArenaStartTime()
|
||||
return Details.lastArenaStartTime
|
||||
end
|
||||
|
||||
function Details:GetBattlegroundStartTime()
|
||||
return Details.lastBattlegroundStartTime
|
||||
end
|
||||
|
||||
function Details:StartArenaSegment(...)
|
||||
if (Details.debug) then
|
||||
Details:Msg("(debug) starting a new arena segment.")
|
||||
@@ -1045,6 +1056,8 @@
|
||||
end
|
||||
Details.start_arena = Details:ScheduleTimer("CreateArenaSegment", timeSeconds)
|
||||
Details:GetPlayersInArena()
|
||||
|
||||
--CHAT_MSG_BG_SYSTEM_NEUTRAL - "The Arena battle has begun!""
|
||||
end
|
||||
|
||||
function Details:EnteredInArena()
|
||||
|
||||
+9
-1
@@ -4950,6 +4950,8 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
_detalhes.time_type = 1
|
||||
end
|
||||
end
|
||||
|
||||
Details.lastBattlegroundStartTime = GetTime()
|
||||
|
||||
elseif (zoneType == "arena") then
|
||||
|
||||
@@ -5618,7 +5620,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
_detalhes:SchedulePetUpdate (6)
|
||||
end
|
||||
|
||||
function _detalhes.parser_functions:START_TIMER(...)
|
||||
function _detalhes.parser_functions:START_TIMER(...) --~timer
|
||||
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg("(debug) found a timer.")
|
||||
@@ -5657,7 +5659,13 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
_detalhes.tabela_vigente.discard_segment = true
|
||||
Details:EndCombat()
|
||||
end
|
||||
|
||||
Details.lastBattlegroundStartTime = GetTime()
|
||||
Details:StartCombat()
|
||||
|
||||
if (Details.debug) then
|
||||
Details:Msg("(debug) a battleground has started.")
|
||||
end
|
||||
end
|
||||
|
||||
-- ~load
|
||||
|
||||
+61
-21
@@ -7971,35 +7971,65 @@ local formatTime = function (t)
|
||||
return "[" .. m .. ":" .. s .. "]"
|
||||
end
|
||||
|
||||
function _detalhes:TitleTextTickTimer (instance) --called on each 1 second tick
|
||||
local updateTimerInTheTitleBarText = function(instance, timer)
|
||||
local originalText = instance.menu_attribute_string.originalText
|
||||
if (originalText) then
|
||||
local formattedTime = formatTime(timer)
|
||||
instance:SetTitleBarText(formattedTime .. " " .. originalText)
|
||||
|
||||
else
|
||||
local titleBarTitleText = instance:GetTitleBarText()
|
||||
if (not titleBarTitleText:find("%[.*%]")) then
|
||||
instance:SetTitleBarText("[00:01] " .. titleBarTitleText)
|
||||
else
|
||||
local formattedTime = formatTime(timer)
|
||||
titleBarTitleText = titleBarTitleText:gsub("%[.*%]", formattedTime)
|
||||
instance:SetTitleBarText(titleBarTitleText)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--self is Details
|
||||
--this is a ticker callback, it is called on each 1 second
|
||||
function _detalhes:TitleTextTickTimer(instance)
|
||||
--hold the time value to show in the title bar
|
||||
local timer
|
||||
|
||||
if (instance.attribute_text.enabled) then
|
||||
--tick only during encounter
|
||||
if (not Details.titletext_showtimer_always) then
|
||||
local zoneType = Details:GetZoneType()
|
||||
|
||||
if (zoneType == "arena") then
|
||||
if (instance.attribute_text.show_timer_arena) then
|
||||
timer = GetTime() - Details:GetArenaStartTime()
|
||||
end
|
||||
|
||||
elseif (zoneType == "pvp") then
|
||||
if (instance.attribute_text.show_timer_bg) then
|
||||
timer = GetTime() - Details:GetBattlegroundStartTime()
|
||||
end
|
||||
|
||||
elseif (zoneType == "raid" or zoneType == "party") then
|
||||
--always attempt to show the time during a boss encounter
|
||||
if (IsEncounterInProgress) then
|
||||
if (not IsEncounterInProgress()) then
|
||||
return
|
||||
if (IsEncounterInProgress()) then
|
||||
timer = Details:GetCurrentCombat():GetCombatTime()
|
||||
end
|
||||
else
|
||||
if (not Details.tabela_vigente.is_boss) then
|
||||
return
|
||||
if (Details.tabela_vigente.is_boss) then
|
||||
timer = Details:GetCurrentCombat():GetCombatTime()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local currentText = instance.menu_attribute_string.originalText
|
||||
if (currentText) then
|
||||
local timer = formatTime(_detalhes.tabela_vigente:GetCombatTime())
|
||||
instance:SetTitleBarText(timer .. " " .. currentText)
|
||||
else
|
||||
local current_text = instance:GetTitleBarText()
|
||||
if (not current_text:find("%[.*%]")) then
|
||||
instance:SetTitleBarText("[00:01] " .. current_text)
|
||||
else
|
||||
local timer = formatTime(_detalhes.tabela_vigente:GetCombatTime())
|
||||
current_text = current_text:gsub("%[.*%]", timer)
|
||||
instance:SetTitleBarText(current_text)
|
||||
if (not timer) then
|
||||
if (instance.attribute_text.show_timer_always) then
|
||||
timer = Details:GetCurrentCombat():GetCombatTime()
|
||||
end
|
||||
end
|
||||
|
||||
if (timer) then
|
||||
updateTimerInTheTitleBarText(instance, timer)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8038,8 +8068,9 @@ function Details:GetTitleBarText()
|
||||
end
|
||||
|
||||
-- ~titletext
|
||||
--@timer_bg: battleground elapsed time
|
||||
--@timer_arena: arena match elapsed time
|
||||
function _detalhes:AttributeMenu (enabled, pos_x, pos_y, font, size, color, side, shadow, timer_encounter, timer_bg, timer_arena)
|
||||
|
||||
if (type (enabled) ~= "boolean") then
|
||||
enabled = self.attribute_text.enabled
|
||||
end
|
||||
@@ -8077,7 +8108,14 @@ function _detalhes:AttributeMenu (enabled, pos_x, pos_y, font, size, color, side
|
||||
if (type(timer_encounter) ~= "boolean") then
|
||||
timer_encounter = self.attribute_text.show_timer
|
||||
end
|
||||
|
||||
|
||||
if (type(timer_bg) ~= "boolean") then
|
||||
timer_bg = self.attribute_text.show_timer_bg
|
||||
end
|
||||
if (type(timer_arena) ~= "boolean") then
|
||||
timer_arena = self.attribute_text.show_timer_arena
|
||||
end
|
||||
|
||||
self.attribute_text.enabled = enabled
|
||||
self.attribute_text.anchor [1] = pos_x
|
||||
self.attribute_text.anchor [2] = pos_y
|
||||
@@ -8087,6 +8125,8 @@ function _detalhes:AttributeMenu (enabled, pos_x, pos_y, font, size, color, side
|
||||
self.attribute_text.side = side
|
||||
self.attribute_text.shadow = shadow
|
||||
self.attribute_text.show_timer = timer_encounter
|
||||
self.attribute_text.show_timer_bg = timer_bg
|
||||
self.attribute_text.show_timer_arena = timer_arena
|
||||
|
||||
--> enabled
|
||||
if (not enabled and self.menu_attribute_string) then
|
||||
|
||||
@@ -1299,7 +1299,6 @@ local default_global_data = {
|
||||
},
|
||||
current_exp_raid_encounters = {},
|
||||
installed_skins_cache = {},
|
||||
titletext_showtimer_always = false,
|
||||
|
||||
--> keystone cache
|
||||
keystone_cache = {},
|
||||
|
||||
@@ -199,6 +199,62 @@ do
|
||||
else
|
||||
_detalhes.SpecSpellList = { --~spec
|
||||
|
||||
--spyro healer
|
||||
[359816] = 1468, --dream flight
|
||||
[370960] = 1468, --emerald communion
|
||||
[370537] = 1468, --stasis
|
||||
[373270] = 1468, --lifebind
|
||||
[367226] = 1468, --spiritbloom
|
||||
[371270] = 1468, --time keeper
|
||||
[368412] = 1468, --time of need
|
||||
[371426] = 1468, --life givers flame
|
||||
[377509] = 1468, --dream projection
|
||||
[373834] = 1468, --call of ysera
|
||||
[371832] = 1468, --cycle of life
|
||||
[373861] = 1468, --temporal anomaly
|
||||
[363510] = 1468, --mastery life binder
|
||||
[356810] = 1468, --preservation evoker
|
||||
[376210] = 1468, --borrowed time
|
||||
[376207] = 1468, --delay harm
|
||||
[355936] = 1468, --dream breath
|
||||
[377082] = 1468, --dreamwalker
|
||||
[364343] = 1468, --echo
|
||||
[376138] = 1468, --empath
|
||||
[372233] = 1468, --energy loop
|
||||
|
||||
--spyro dps
|
||||
[370837] = 1467, --engulfing blaze
|
||||
[365937] = 1467, --ruby embers
|
||||
[370452] = 1467, --shattering star
|
||||
[362980] = 1467, --mastery giantkiller
|
||||
[375797] = 1467, --animosity
|
||||
[356809] = 1467, --devastation evoker
|
||||
[375618] = 1467, --arcane intensity
|
||||
[386342] = 1467, --arcane vigor
|
||||
[375721] = 1467, --azure essence burst
|
||||
[375801] = 1467, --burnout
|
||||
[375796] = 1467, --cascading power
|
||||
[386283] = 1467, --catalyze
|
||||
[375777] = 1467, --causality
|
||||
[370455] = 1467, --charged blast
|
||||
[369375] = 1467, --continuum
|
||||
[370962] = 1467, --dense energy
|
||||
[375087] = 1467, --dragonrage
|
||||
[375757] = 1467, --eternitys span
|
||||
[370819] = 1467, --everburning flame
|
||||
[369846] = 1467, --feed the flames
|
||||
[386336] = 1467, --focusing iris
|
||||
[370845] = 1467, --tyranny
|
||||
[360995] = 1467, --rescue
|
||||
[370843] = 1467, --focusing iris
|
||||
[370839] = 1467, --power swell
|
||||
[370783] = 1467, --snapfire
|
||||
[359073] = 1467, --eternity surge
|
||||
[368847] = 1467, --firestorm
|
||||
[369089] = 1467, --volatility
|
||||
[372048] = 1467, --oppressing roar
|
||||
[384660] = 1467, --crippling force
|
||||
|
||||
-- havoc demon hunter --577
|
||||
[188499] = 577, -- Blade Dance
|
||||
[320402] = 577, -- Blade Dance
|
||||
|
||||
@@ -17,6 +17,10 @@ function Details:StartMeUp() --I'll never stop!
|
||||
Details:Msg("Details! author 'Terciob' does not have access to Dragonflight Beta, please be gentle while reporting bugs and questioning why some bugs haven't been fixed already, thank you!")
|
||||
end
|
||||
|
||||
--set default time for arena and bg to be the Details! load time in case the client loads mid event
|
||||
Details.lastArenaStartTime = GetTime()
|
||||
Details.lastBattlegroundStartTime = GetTime()
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> row single click, this determines what happen when the user click on a bar
|
||||
|
||||
|
||||
Reference in New Issue
Block a user