Disabled Bindings.xml to avoid taints in 10.0
This commit is contained in:
+1
-74
@@ -1,74 +1 @@
|
||||
<Bindings>
|
||||
<Binding name="DETAILS_RESET_SEGMENTS" description="Clear all segments." header="DETAILS_KEYBIND_SEGMENTCONTROL" category="Details!">
|
||||
_detalhes.tabela_historico:resetar()
|
||||
</Binding>
|
||||
|
||||
<Binding name="DETAILS_SCROLL_DOWN" description="Scroll down the window which you have the mouse over." header="DETAILS_KEYBIND_SCROLLING" category="Details!">
|
||||
DetailsKeyBindScrollDown()
|
||||
</Binding>
|
||||
|
||||
<Binding name="DETAILS_SCROLL_UP" description="Scroll up the window which you have the mouse over." category="Details!">
|
||||
DetailsKeyBindScrollUp()
|
||||
</Binding>
|
||||
|
||||
<Binding name="DETAILS_REPORT_WINDOW1" description="Report data shown on window #1." header="DETAILS_KEYBIND_REPORT" category="Details!">
|
||||
_detalhes:FastReportWindow (1)
|
||||
</Binding>
|
||||
<Binding name="DETAILS_REPORT_WINDOW2" description="Report data shown on window #2." category="Details!">
|
||||
_detalhes:FastReportWindow (2)
|
||||
</Binding>
|
||||
|
||||
<Binding name="DETAILS_TOGGLE_ALL" description="open or close all windows" header="DETAILS_KEYBIND_WINDOW_CONTROL" category="Details!">
|
||||
_detalhes:ToggleWindows()
|
||||
</Binding>
|
||||
|
||||
<Binding name="DETAILS_TOOGGLE_WINDOW1" description="Toggle window 1." category="Details!">
|
||||
_detalhes:ToggleWindow (1)
|
||||
</Binding>
|
||||
<Binding name="DETAILS_TOOGGLE_WINDOW2" description="Toggle window 2." category="Details!">
|
||||
_detalhes:ToggleWindow (2)
|
||||
</Binding>
|
||||
<Binding name="DETAILS_TOOGGLE_WINDOW3" description="Toggle window 3." category="Details!">
|
||||
_detalhes:ToggleWindow (3)
|
||||
</Binding>
|
||||
<Binding name="DETAILS_TOOGGLE_WINDOW4" description="Toggle window 4." category="Details!">
|
||||
_detalhes:ToggleWindow (4)
|
||||
</Binding>
|
||||
<Binding name="DETAILS_TOOGGLE_WINDOW5" description="Toggle window 5." category="Details!">
|
||||
_detalhes:ToggleWindow (5)
|
||||
</Binding>
|
||||
|
||||
|
||||
<Binding name="DETAILS_BOOKMARK1" description="Change the display on the first window to bookmark #1." header="DETAILS_KEYBIND_BOOKMARK" category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (1);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK2" description="Change the display on the first window to bookmark #2." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (2);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK3" description="Change the display on the first window to bookmark #3." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (3);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK4" description="Change the display on the first window to bookmark #4." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (4);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK5" description="Change the display on the first window to bookmark #5." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (5);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK6" description="Change the display on the first window to bookmark #6." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (6);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK7" description="Change the display on the first window to bookmark #7." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (7);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK8" description="Change the display on the first window to bookmark #8." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (8);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK9" description="Change the display on the first window to bookmark #9." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (9);
|
||||
</Binding>
|
||||
<Binding name="DETAILS_BOOKMARK10" description="Change the display on the first window to bookmark #10." category="Details!">
|
||||
DetailsChangeDisplayFromBookmark (10);
|
||||
</Binding>
|
||||
|
||||
|
||||
</Bindings>
|
||||
<Bindings></Bindings>
|
||||
+110
-127
@@ -815,6 +815,7 @@ function DF:GetFontSize(fontString)
|
||||
local _, size = fontString:GetFont()
|
||||
return size
|
||||
end
|
||||
|
||||
function DF:GetFontFace(fontString)
|
||||
local fontface = fontString:GetFont()
|
||||
return fontface
|
||||
@@ -1341,24 +1342,6 @@ end
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--menus
|
||||
--get the text for the widget name and description from the language system
|
||||
local parseWidgetNameAndDesc = function(languageTable, namePhraseId, descPhraseId, widgetName, widgetDesc)
|
||||
local returnedName = widgetName
|
||||
local returnedDesc = widgetDesc
|
||||
|
||||
if (languageTable) then
|
||||
if (namePhraseId) then
|
||||
returnedName = languageTable[namePhraseId] or namePhraseId
|
||||
end
|
||||
if (descPhraseId) then
|
||||
returnedDesc = languageTable[descPhraseId] or descPhraseId
|
||||
end
|
||||
return returnedName, returnedDesc
|
||||
else
|
||||
return returnedName, returnedDesc
|
||||
end
|
||||
end
|
||||
|
||||
local formatOptionNameWithColon = function(text, useColon)
|
||||
if (text) then
|
||||
if (useColon) then
|
||||
@@ -1370,7 +1353,7 @@ end
|
||||
end
|
||||
end
|
||||
|
||||
local disable_on_combat = {}
|
||||
local widgetsToDisableOnCombat = {}
|
||||
|
||||
local getMenuWidgetVolative = function(parent, widgetType, indexTable)
|
||||
local widgetObject
|
||||
@@ -1465,9 +1448,9 @@ end
|
||||
end
|
||||
|
||||
--if the widget is inside the no combat table, remove it
|
||||
for i = 1, #disable_on_combat do
|
||||
if (disable_on_combat[i] == widgetObject) then
|
||||
tremove(disable_on_combat, i)
|
||||
for i = 1, #widgetsToDisableOnCombat do
|
||||
if (widgetsToDisableOnCombat[i] == widgetObject) then
|
||||
tremove(widgetsToDisableOnCombat, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
@@ -1884,7 +1867,7 @@ end
|
||||
end --end loop
|
||||
|
||||
if (widgetTable.nocombat) then
|
||||
tinsert(disable_on_combat, widgetCreated)
|
||||
tinsert(widgetsToDisableOnCombat, widgetCreated)
|
||||
end
|
||||
|
||||
if (not widgetTable.inline) then
|
||||
@@ -2315,7 +2298,7 @@ end
|
||||
end
|
||||
|
||||
if (widgetTable.nocombat) then
|
||||
tinsert(disable_on_combat, widgetCreated)
|
||||
tinsert(widgetsToDisableOnCombat, widgetCreated)
|
||||
end
|
||||
|
||||
if (not widgetTable.inline) then
|
||||
@@ -2342,23 +2325,23 @@ end
|
||||
DF.RefreshUnsafeOptionsWidgets()
|
||||
end
|
||||
|
||||
local lock_notsafe_widgets = function()
|
||||
for _, widget in ipairs(disable_on_combat) do
|
||||
local lockNotSafeWidgetsForCombat = function()
|
||||
for _, widget in ipairs(widgetsToDisableOnCombat) do
|
||||
widget:Disable()
|
||||
end
|
||||
end
|
||||
|
||||
local unlock_notsafe_widgets = function()
|
||||
for _, widget in ipairs(disable_on_combat) do
|
||||
local unlockNotSafeWidgetsForCombat = function()
|
||||
for _, widget in ipairs(widgetsToDisableOnCombat) do
|
||||
widget:Enable()
|
||||
end
|
||||
end
|
||||
|
||||
function DF.RefreshUnsafeOptionsWidgets()
|
||||
if (DF.PlayerHasCombatFlag) then
|
||||
lock_notsafe_widgets()
|
||||
lockNotSafeWidgetsForCombat()
|
||||
else
|
||||
unlock_notsafe_widgets()
|
||||
unlockNotSafeWidgetsForCombat()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2383,7 +2366,6 @@ end
|
||||
elseif (event == "PLAYER_REGEN_DISABLED") then
|
||||
DF.PlayerHasCombatFlag = true
|
||||
DF.RefreshUnsafeOptionsWidgets()
|
||||
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -2392,34 +2374,34 @@ end
|
||||
error("Details! Framework: CreateInCombatTexture invalid frame on parameter 1.")
|
||||
end
|
||||
|
||||
local in_combat_background = DF:CreateImage(frame)
|
||||
in_combat_background:SetColorTexture(.6, 0, 0, .1)
|
||||
in_combat_background:Hide()
|
||||
local inCombatBackgroundTexture = DF:CreateImage(frame)
|
||||
inCombatBackgroundTexture:SetColorTexture(.6, 0, 0, .1)
|
||||
inCombatBackgroundTexture:Hide()
|
||||
|
||||
local in_combat_label = Plater:CreateLabel(frame, "you are in combat", 24, "silver")
|
||||
in_combat_label:SetPoint("right", in_combat_background, "right", -10, 0)
|
||||
in_combat_label:Hide()
|
||||
local inCombatLabel = Plater:CreateLabel(frame, "you are in combat", 24, "silver")
|
||||
inCombatLabel:SetPoint("right", inCombatBackgroundTexture, "right", -10, 0)
|
||||
inCombatLabel:Hide()
|
||||
|
||||
frame:RegisterEvent("PLAYER_REGEN_DISABLED")
|
||||
frame:RegisterEvent("PLAYER_REGEN_ENABLED")
|
||||
|
||||
frame:SetScript("OnEvent", function(self, event)
|
||||
if (event == "PLAYER_REGEN_DISABLED") then
|
||||
in_combat_background:Show()
|
||||
in_combat_label:Show()
|
||||
inCombatBackgroundTexture:Show()
|
||||
inCombatLabel:Show()
|
||||
|
||||
elseif (event == "PLAYER_REGEN_ENABLED") then
|
||||
in_combat_background:Hide()
|
||||
in_combat_label:Hide()
|
||||
inCombatBackgroundTexture:Hide()
|
||||
inCombatLabel:Hide()
|
||||
end
|
||||
end)
|
||||
|
||||
return in_combat_background
|
||||
return inCombatBackgroundTexture
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--tutorials
|
||||
|
||||
function DF:ShowTutorialAlertFrame(maintext, desctext, clickfunc)
|
||||
|
||||
local TutorialAlertFrame = _G.DetailsFrameworkAlertFrame
|
||||
|
||||
if (not TutorialAlertFrame) then
|
||||
@@ -2455,16 +2437,21 @@ end
|
||||
if (widget._get()) then
|
||||
widget:SetText(widget._get())
|
||||
end
|
||||
|
||||
elseif (widget.widget_type == "select") then
|
||||
widget:Select(widget._get())
|
||||
|
||||
elseif (widget.widget_type == "toggle" or widget.widget_type == "range") then
|
||||
widget:SetValue(widget._get())
|
||||
|
||||
elseif (widget.widget_type == "textentry") then
|
||||
widget:SetText(widget._get())
|
||||
|
||||
elseif (widget.widget_type == "color") then
|
||||
local default_value, g, b, a = widget._get()
|
||||
if (type(default_value) == "table") then
|
||||
widget:SetColor (unpack(default_value))
|
||||
|
||||
else
|
||||
widget:SetColor (default_value, g, b, a)
|
||||
end
|
||||
@@ -2505,108 +2492,105 @@ end
|
||||
end
|
||||
|
||||
function DF:CreateOptionsFrame(name, title, template)
|
||||
|
||||
template = template or 1
|
||||
|
||||
if (template == 2) then
|
||||
local options_frame = CreateFrame("frame", name, UIParent, "ButtonFrameTemplate")
|
||||
local newOptionsFrame = CreateFrame("frame", name, UIParent, "ButtonFrameTemplate")
|
||||
tinsert(UISpecialFrames, name)
|
||||
options_frame:SetSize(500, 200)
|
||||
options_frame.RefreshOptions = refresh_options
|
||||
options_frame.widget_list = {}
|
||||
|
||||
options_frame:SetScript("OnMouseDown", function(self, button)
|
||||
newOptionsFrame:SetSize(500, 200)
|
||||
newOptionsFrame.RefreshOptions = refresh_options
|
||||
newOptionsFrame.widget_list = {}
|
||||
|
||||
newOptionsFrame:SetScript("OnMouseDown", function(self, button)
|
||||
if (button == "RightButton") then
|
||||
if (self.moving) then
|
||||
self.moving = false
|
||||
self:StopMovingOrSizing()
|
||||
end
|
||||
return options_frame:Hide()
|
||||
return newOptionsFrame:Hide()
|
||||
elseif (button == "LeftButton" and not self.moving) then
|
||||
self.moving = true
|
||||
self:StartMoving()
|
||||
end
|
||||
end)
|
||||
options_frame:SetScript("OnMouseUp", function(self)
|
||||
|
||||
newOptionsFrame:SetScript("OnMouseUp", function(self)
|
||||
if (self.moving) then
|
||||
self.moving = false
|
||||
self:StopMovingOrSizing()
|
||||
end
|
||||
end)
|
||||
|
||||
options_frame:SetMovable(true)
|
||||
options_frame:EnableMouse(true)
|
||||
options_frame:SetFrameStrata("DIALOG")
|
||||
options_frame:SetToplevel (true)
|
||||
newOptionsFrame:SetMovable(true)
|
||||
newOptionsFrame:EnableMouse(true)
|
||||
newOptionsFrame:SetFrameStrata("DIALOG")
|
||||
newOptionsFrame:SetToplevel(true)
|
||||
newOptionsFrame:Hide()
|
||||
newOptionsFrame:SetPoint("center", UIParent, "center")
|
||||
newOptionsFrame.TitleText:SetText(title)
|
||||
|
||||
options_frame:Hide()
|
||||
|
||||
options_frame:SetPoint("center", UIParent, "center")
|
||||
options_frame.TitleText:SetText(title) --10.0 fuck
|
||||
--options_frame.portrait:SetTexture([[Interface\CHARACTERFRAME\TEMPORARYPORTRAIT-FEMALE-BLOODELF]])
|
||||
|
||||
return options_frame
|
||||
return newOptionsFrame
|
||||
|
||||
elseif (template == 1) then
|
||||
|
||||
local options_frame = CreateFrame("frame", name, UIParent)
|
||||
local newOptionsFrame = CreateFrame("frame", name, UIParent)
|
||||
tinsert(UISpecialFrames, name)
|
||||
options_frame:SetSize(500, 200)
|
||||
options_frame.RefreshOptions = refresh_options
|
||||
options_frame.widget_list = {}
|
||||
|
||||
options_frame:SetScript("OnMouseDown", function(self, button)
|
||||
newOptionsFrame:SetSize(500, 200)
|
||||
newOptionsFrame.RefreshOptions = refresh_options
|
||||
newOptionsFrame.widget_list = {}
|
||||
|
||||
newOptionsFrame:SetScript("OnMouseDown", function(self, button)
|
||||
if (button == "RightButton") then
|
||||
if (self.moving) then
|
||||
self.moving = false
|
||||
self:StopMovingOrSizing()
|
||||
end
|
||||
return options_frame:Hide()
|
||||
return newOptionsFrame:Hide()
|
||||
elseif (button == "LeftButton" and not self.moving) then
|
||||
self.moving = true
|
||||
self:StartMoving()
|
||||
end
|
||||
end)
|
||||
options_frame:SetScript("OnMouseUp", function(self)
|
||||
|
||||
newOptionsFrame:SetScript("OnMouseUp", function(self)
|
||||
if (self.moving) then
|
||||
self.moving = false
|
||||
self:StopMovingOrSizing()
|
||||
end
|
||||
end)
|
||||
|
||||
options_frame:SetMovable(true)
|
||||
options_frame:EnableMouse(true)
|
||||
options_frame:SetFrameStrata("DIALOG")
|
||||
options_frame:SetToplevel (true)
|
||||
newOptionsFrame:SetMovable(true)
|
||||
newOptionsFrame:EnableMouse(true)
|
||||
newOptionsFrame:SetFrameStrata("DIALOG")
|
||||
newOptionsFrame:SetToplevel(true)
|
||||
newOptionsFrame:Hide()
|
||||
newOptionsFrame:SetPoint("center", UIParent, "center")
|
||||
|
||||
options_frame:Hide()
|
||||
|
||||
options_frame:SetPoint("center", UIParent, "center")
|
||||
|
||||
options_frame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16,
|
||||
newOptionsFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16,
|
||||
edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1,
|
||||
insets = {left = 1, right = 1, top = 1, bottom = 1}})
|
||||
options_frame:SetBackdropColor(0, 0, 0, .7)
|
||||
newOptionsFrame:SetBackdropColor(0, 0, 0, .7)
|
||||
|
||||
local texturetitle = options_frame:CreateTexture(nil, "artwork")
|
||||
texturetitle:SetTexture([[Interface\CURSOR\Interact]])
|
||||
texturetitle:SetTexCoord(0, 1, 0, 1)
|
||||
texturetitle:SetVertexColor(1, 1, 1, 1)
|
||||
texturetitle:SetPoint("topleft", options_frame, "topleft", 2, -3)
|
||||
texturetitle:SetWidth(36)
|
||||
texturetitle:SetHeight(36)
|
||||
local textureTitle = newOptionsFrame:CreateTexture(nil, "artwork")
|
||||
textureTitle:SetTexture([[Interface\CURSOR\Interact]])
|
||||
textureTitle:SetTexCoord(0, 1, 0, 1)
|
||||
textureTitle:SetVertexColor(1, 1, 1, 1)
|
||||
textureTitle:SetPoint("topleft", newOptionsFrame, "topleft", 2, -3)
|
||||
textureTitle:SetWidth(36)
|
||||
textureTitle:SetHeight(36)
|
||||
|
||||
local titleLabel = DF:NewLabel(options_frame, nil, "$parentTitle", nil, title, nil, 20, "yellow")
|
||||
titleLabel:SetPoint("left", texturetitle, "right", 2, -1)
|
||||
local titleLabel = DF:NewLabel(newOptionsFrame, nil, "$parentTitle", nil, title, nil, 20, "yellow")
|
||||
titleLabel:SetPoint("left", textureTitle, "right", 2, -1)
|
||||
DF:SetFontOutline (titleLabel, true)
|
||||
|
||||
local c = CreateFrame("Button", nil, options_frame, "UIPanelCloseButton")
|
||||
c:SetWidth(32)
|
||||
c:SetHeight(32)
|
||||
c:SetPoint("TOPRIGHT", options_frame, "TOPRIGHT", -3, -3)
|
||||
c:SetFrameLevel(options_frame:GetFrameLevel()+1)
|
||||
local closeButton = CreateFrame("Button", nil, newOptionsFrame, "UIPanelCloseButton")
|
||||
closeButton:SetWidth(32)
|
||||
closeButton:SetHeight(32)
|
||||
closeButton:SetPoint("TOPRIGHT", newOptionsFrame, "TOPRIGHT", -3, -3)
|
||||
closeButton:SetFrameLevel(newOptionsFrame:GetFrameLevel()+1)
|
||||
|
||||
return options_frame
|
||||
return newOptionsFrame
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2833,22 +2817,27 @@ function DF:InstallTemplate (widgetType, templateName, template, parentName)
|
||||
return newTemplate
|
||||
end
|
||||
|
||||
function DF:GetTemplate(widget_type, template_name)
|
||||
widget_type = string.lower(widget_type)
|
||||
function DF:GetTemplate(widgetType, templateName)
|
||||
widgetType = string.lower(widgetType)
|
||||
local templateTable
|
||||
|
||||
local template_table
|
||||
if (widget_type == "font") then
|
||||
template_table = DF.font_templates
|
||||
elseif (widget_type == "dropdown") then
|
||||
template_table = DF.dropdown_templates
|
||||
elseif (widget_type == "button") then
|
||||
template_table = DF.button_templates
|
||||
elseif (widget_type == "switch") then
|
||||
template_table = DF.switch_templates
|
||||
elseif (widget_type == "slider") then
|
||||
template_table = DF.slider_templates
|
||||
if (widgetType == "font") then
|
||||
templateTable = DF.font_templates
|
||||
|
||||
elseif (widgetType == "dropdown") then
|
||||
templateTable = DF.dropdown_templates
|
||||
|
||||
elseif (widgetType == "button") then
|
||||
templateTable = DF.button_templates
|
||||
|
||||
elseif (widgetType == "switch") then
|
||||
templateTable = DF.switch_templates
|
||||
|
||||
elseif (widgetType == "slider") then
|
||||
templateTable = DF.slider_templates
|
||||
end
|
||||
return template_table [template_name]
|
||||
|
||||
return templateTable[templateName]
|
||||
end
|
||||
|
||||
function DF.GetParentName(frame)
|
||||
@@ -3041,7 +3030,7 @@ FrameshakeUpdateFrame.RegisterFrame = function(newFrame)
|
||||
end
|
||||
|
||||
--forward declared
|
||||
local frameshake_do_update
|
||||
local frameshake_DoUpdate
|
||||
|
||||
FrameshakeUpdateFrame:SetScript("OnUpdate", function(self, deltaTime)
|
||||
for i = 1, #FrameshakeUpdateFrame.RegisteredFrames do
|
||||
@@ -3052,7 +3041,7 @@ FrameshakeUpdateFrame:SetScript("OnUpdate", function(self, deltaTime)
|
||||
for i = 1, #parent.__frameshakes do
|
||||
local shakeObject = parent.__frameshakes [i]
|
||||
if (shakeObject.IsPlaying) then
|
||||
frameshake_do_update (parent, shakeObject, deltaTime)
|
||||
frameshake_DoUpdate(parent, shakeObject, deltaTime)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -3060,7 +3049,7 @@ FrameshakeUpdateFrame:SetScript("OnUpdate", function(self, deltaTime)
|
||||
end)
|
||||
|
||||
|
||||
local frameshake_shake_finished = function(parent, shakeObject)
|
||||
local frameshake_ShakeFinished = function(parent, shakeObject)
|
||||
if (shakeObject.IsPlaying) then
|
||||
shakeObject.IsPlaying = false
|
||||
shakeObject.TimeLeft = 0
|
||||
@@ -3098,8 +3087,7 @@ local frameshake_shake_finished = function(parent, shakeObject)
|
||||
end
|
||||
|
||||
--already declared above the update function
|
||||
frameshake_do_update = function(parent, shakeObject, deltaTime)
|
||||
|
||||
frameshake_DoUpdate = function(parent, shakeObject, deltaTime)
|
||||
--check delta time
|
||||
deltaTime = deltaTime or 0
|
||||
|
||||
@@ -3170,17 +3158,16 @@ frameshake_do_update = function(parent, shakeObject, deltaTime)
|
||||
|
||||
end
|
||||
else
|
||||
frameshake_shake_finished (parent, shakeObject)
|
||||
frameshake_ShakeFinished(parent, shakeObject)
|
||||
end
|
||||
end
|
||||
|
||||
local frameshake_stop = function(parent, shakeObject)
|
||||
frameshake_shake_finished (parent, shakeObject)
|
||||
frameshake_ShakeFinished(parent, shakeObject)
|
||||
end
|
||||
|
||||
--scale direction scales the X and Y coordinates, scale strength scales the amplitude and frequency
|
||||
local frameshake_play = function(parent, shakeObject, scaleDirection, scaleAmplitude, scaleFrequency, scaleDuration)
|
||||
|
||||
--check if is already playing
|
||||
if (shakeObject.TimeLeft > 0) then
|
||||
--reset the time left
|
||||
@@ -3249,10 +3236,10 @@ local frameshake_play = function(parent, shakeObject, scaleDirection, scaleAmpli
|
||||
|
||||
shakeObject.IsPlaying = true
|
||||
|
||||
frameshake_do_update (parent, shakeObject)
|
||||
frameshake_DoUpdate(parent, shakeObject)
|
||||
end
|
||||
|
||||
local frameshake_set_config = function(parent, shakeObject, duration, amplitude, frequency, absoluteSineX, absoluteSineY, scaleX, scaleY, fadeInTime, fadeOutTime, anchorPoints)
|
||||
local frameshake_SetConfig = function(parent, shakeObject, duration, amplitude, frequency, absoluteSineX, absoluteSineY, scaleX, scaleY, fadeInTime, fadeOutTime, anchorPoints)
|
||||
shakeObject.Amplitude = amplitude or shakeObject.Amplitude
|
||||
shakeObject.Frequency = frequency or shakeObject.Frequency
|
||||
shakeObject.Duration = duration or shakeObject.Duration
|
||||
@@ -3264,6 +3251,7 @@ local frameshake_set_config = function(parent, shakeObject, duration, amplitude,
|
||||
if (absoluteSineX ~= nil) then
|
||||
shakeObject.AbsoluteSineX = absoluteSineX
|
||||
end
|
||||
|
||||
if (absoluteSineY ~= nil) then
|
||||
shakeObject.AbsoluteSineY = absoluteSineY
|
||||
end
|
||||
@@ -3313,8 +3301,8 @@ function DF:CreateFrameShake (parent, duration, amplitude, frequency, absoluteSi
|
||||
}
|
||||
parent.PlayFrameShake = frameshake_play
|
||||
parent.StopFrameShake = frameshake_stop
|
||||
parent.UpdateFrameShake = frameshake_do_update
|
||||
parent.SetFrameShakeSettings = frameshake_set_config
|
||||
parent.UpdateFrameShake = frameshake_DoUpdate
|
||||
parent.SetFrameShakeSettings = frameshake_SetConfig
|
||||
|
||||
--register the frame within the frame shake updater
|
||||
FrameshakeUpdateFrame.RegisterFrame (parent)
|
||||
@@ -3499,7 +3487,6 @@ local SetBorderColor = function(self, r, g, b)
|
||||
end
|
||||
|
||||
local SetLayerVisibility = function(self, layer1Shown, layer2Shown, layer3Shown)
|
||||
|
||||
for _, texture in ipairs(self.Borders.Layer1) do
|
||||
texture:SetShown (layer1Shown)
|
||||
end
|
||||
@@ -3511,11 +3498,9 @@ local SetLayerVisibility = function(self, layer1Shown, layer2Shown, layer3Shown)
|
||||
for _, texture in ipairs(self.Borders.Layer3) do
|
||||
texture:SetShown (layer3Shown)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function DF:CreateBorder(parent, alpha1, alpha2, alpha3)
|
||||
|
||||
parent.Borders = {
|
||||
Layer1 = {},
|
||||
Layer2 = {},
|
||||
@@ -3596,7 +3581,6 @@ function DF:CreateBorder (parent, alpha1, alpha2, alpha3)
|
||||
tinsert(parent.Borders.Layer1, border1)
|
||||
tinsert(parent.Borders.Layer2, border2)
|
||||
tinsert(parent.Borders.Layer3, border3)
|
||||
|
||||
end
|
||||
|
||||
--DFNamePlateBorder as copy from "NameplateFullBorderTemplate" -> DF:CreateFullBorder (name, parent)
|
||||
@@ -3699,7 +3683,6 @@ function DF:CreateBorderSolid (parent, size)
|
||||
end
|
||||
|
||||
function DF:CreateBorderWithSpread(parent, alpha1, alpha2, alpha3, size, spread)
|
||||
|
||||
parent.Borders = {
|
||||
Layer1 = {},
|
||||
Layer2 = {},
|
||||
|
||||
+4
-4
@@ -6,8 +6,8 @@ if (not DF or not DetailsFrameworkCanLoad) then
|
||||
end
|
||||
|
||||
local _
|
||||
local _rawset = rawset --lua local
|
||||
local _rawget = rawget --lua local
|
||||
local rawset = rawset --lua local
|
||||
local rawget = rawget --lua local
|
||||
|
||||
local APIHelpFunctions = false
|
||||
local HelpMetaFunctions = {}
|
||||
@@ -21,7 +21,7 @@ local HelpMetaFunctions = {}
|
||||
return func (_table, _member_requested)
|
||||
end
|
||||
|
||||
local fromMe = _rawget (_table, _member_requested)
|
||||
local fromMe = rawget (_table, _member_requested)
|
||||
if (fromMe) then
|
||||
return fromMe
|
||||
end
|
||||
@@ -36,7 +36,7 @@ local HelpMetaFunctions = {}
|
||||
if (func) then
|
||||
return func (_table, _value)
|
||||
else
|
||||
return _rawset (_table, _key, _value)
|
||||
return rawset (_table, _key, _value)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
|
||||
local DF = _G["DetailsFramework"]
|
||||
if (not DF or not DetailsFrameworkCanLoad) then
|
||||
return
|
||||
|
||||
+12
-17
@@ -5,16 +5,11 @@ if (not DF or not DetailsFrameworkCanLoad) then
|
||||
end
|
||||
|
||||
local _
|
||||
local _rawset = rawset --lua locals
|
||||
local _rawget = rawget --lua locals
|
||||
local _setmetatable = setmetatable --lua locals
|
||||
local _unpack = unpack --lua locals
|
||||
local type = type --lua locals
|
||||
local _math_floor = math.floor --lua locals
|
||||
local _unpack = unpack
|
||||
local type = type
|
||||
local _math_floor = math.floor
|
||||
|
||||
local SharedMedia = LibStub:GetLibrary("LibSharedMedia-3.0")
|
||||
|
||||
local cleanfunction = function() end
|
||||
local APIBarFunctions
|
||||
|
||||
do
|
||||
@@ -47,11 +42,11 @@ DF:Mixin(BarMetaFunctions, DF.ScriptHookMixin)
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
--metatables
|
||||
|
||||
BarMetaFunctions.__call = function(_table, value)
|
||||
BarMetaFunctions.__call = function(object, value)
|
||||
if (not value) then
|
||||
return _table.statusbar:GetValue()
|
||||
return object.statusbar:GetValue()
|
||||
else
|
||||
return _table.statusbar:SetValue(value)
|
||||
return object.statusbar:SetValue(value)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -168,7 +163,7 @@ DF:Mixin(BarMetaFunctions, DF.ScriptHookMixin)
|
||||
return func (_table, _member_requested)
|
||||
end
|
||||
|
||||
local fromMe = _rawget (_table, _member_requested)
|
||||
local fromMe = rawget (_table, _member_requested)
|
||||
if (fromMe) then
|
||||
return fromMe
|
||||
end
|
||||
@@ -350,7 +345,7 @@ DF:Mixin(BarMetaFunctions, DF.ScriptHookMixin)
|
||||
if (func) then
|
||||
return func (_table, _value)
|
||||
else
|
||||
return _rawset (_table, _key, _value)
|
||||
return rawset (_table, _key, _value)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -444,13 +439,13 @@ DF:Mixin(BarMetaFunctions, DF.ScriptHookMixin)
|
||||
-- tooltip
|
||||
function BarMetaFunctions:SetTooltip (tooltip)
|
||||
if (tooltip) then
|
||||
return _rawset (self, "have_tooltip", tooltip)
|
||||
return rawset (self, "have_tooltip", tooltip)
|
||||
else
|
||||
return _rawset (self, "have_tooltip", nil)
|
||||
return rawset (self, "have_tooltip", nil)
|
||||
end
|
||||
end
|
||||
function BarMetaFunctions:GetTooltip()
|
||||
return _rawget (self, "have_tooltip")
|
||||
return rawget (self, "have_tooltip")
|
||||
end
|
||||
|
||||
-- frame levels
|
||||
@@ -855,7 +850,7 @@ function DF:NewBar (parent, container, name, member, w, h, value, texture_name)
|
||||
BarObject.statusbar:SetScript("OnMouseUp", OnMouseUp)
|
||||
|
||||
--set class
|
||||
_setmetatable(BarObject, BarMetaFunctions)
|
||||
setmetatable(BarObject, BarMetaFunctions)
|
||||
|
||||
--set texture
|
||||
if (texture_name) then
|
||||
|
||||
@@ -5,7 +5,7 @@ if (not DF or not DetailsFrameworkCanLoad) then
|
||||
end
|
||||
|
||||
local C_Timer = _G.C_Timer
|
||||
local unpack = _G.unpack
|
||||
local unpack = table.unpack or _G.unpack
|
||||
|
||||
--make a namespace for schedules
|
||||
DF.Schedules = DF.Schedules or {}
|
||||
|
||||
+87
-100
@@ -628,172 +628,159 @@ DF:Mixin(DFSliderMetaFunctions, DF.ScriptHookMixin)
|
||||
end
|
||||
|
||||
local OnMouseDown = function(slider, button)
|
||||
slider.MyObject.IsValueChanging = true
|
||||
local object = slider.MyObject
|
||||
object.IsValueChanging = true
|
||||
|
||||
local capsule = slider.MyObject
|
||||
local kill = capsule:RunHooksForWidget("OnMouseDown", slider, button, capsule)
|
||||
local kill = object:RunHooksForWidget("OnMouseDown", slider, button, object)
|
||||
if (kill) then
|
||||
return
|
||||
end
|
||||
|
||||
if (button == "RightButton") then
|
||||
slider.MyObject:TypeValue()
|
||||
object:TypeValue()
|
||||
end
|
||||
end
|
||||
|
||||
local OnMouseUp = function(slider, button)
|
||||
slider.MyObject.IsValueChanging = nil
|
||||
local object = slider.MyObject
|
||||
object.IsValueChanging = nil
|
||||
|
||||
local capsule = slider.MyObject
|
||||
local kill = capsule:RunHooksForWidget("OnMouseUp", slider, button, capsule)
|
||||
local kill = object:RunHooksForWidget("OnMouseUp", slider, button, object)
|
||||
if (kill) then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local OnHide = function(slider)
|
||||
local capsule = slider.MyObject
|
||||
local kill = capsule:RunHooksForWidget("OnHide", slider, capsule)
|
||||
local object = slider.MyObject
|
||||
local kill = object:RunHooksForWidget("OnHide", slider, object)
|
||||
if (kill) then
|
||||
return
|
||||
end
|
||||
|
||||
if (slider.MyObject.typing_value) then
|
||||
if (object.typing_value) then
|
||||
DFSliderMetaFunctions.editbox_typevalue:ClearFocus()
|
||||
DFSliderMetaFunctions.editbox_typevalue:SetText("")
|
||||
slider.MyObject.typing_valu = false
|
||||
object.typing_valu = false
|
||||
end
|
||||
end
|
||||
|
||||
local OnShow = function(slider)
|
||||
local capsule = slider.MyObject
|
||||
local kill = capsule:RunHooksForWidget("OnShow", slider, capsule)
|
||||
local object = slider.MyObject
|
||||
local kill = object:RunHooksForWidget("OnShow", slider, object)
|
||||
if (kill) then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local table_insert = table.insert
|
||||
local table_remove = table.remove
|
||||
|
||||
local OnValueChanged = function(slider)
|
||||
local object = slider.MyObject
|
||||
|
||||
local amt
|
||||
if (slider.MyObject.useDecimals) then
|
||||
if (object.useDecimals) then
|
||||
amt = slider:GetValue()
|
||||
else
|
||||
amt = do_precision(slider:GetValue())
|
||||
end
|
||||
|
||||
if (slider.MyObject.typing_value and not slider.MyObject.typing_can_change) then
|
||||
slider.MyObject:SetValue(slider.MyObject.typing_value_started)
|
||||
if (object.typing_value and not object.typing_can_change) then
|
||||
object:SetValue(object.typing_value_started)
|
||||
return
|
||||
end
|
||||
|
||||
table_insert (slider.MyObject.previous_value, 1, amt)
|
||||
table_remove (slider.MyObject.previous_value, 4)
|
||||
|
||||
local capsule = slider.MyObject
|
||||
table.insert(object.previous_value, 1, amt)
|
||||
table.remove(object.previous_value, 4)
|
||||
|
||||
--some plugins registered OnValueChanged and others with OnValueChange
|
||||
local kill = capsule:RunHooksForWidget("OnValueChanged", slider, capsule.FixedValue, amt, capsule)
|
||||
if (kill) then
|
||||
return
|
||||
end
|
||||
local kill = capsule:RunHooksForWidget("OnValueChange", slider, capsule.FixedValue, amt, capsule)
|
||||
local kill = object:RunHooksForWidget("OnValueChanged", slider, object.FixedValue, amt, object)
|
||||
if (kill) then
|
||||
return
|
||||
end
|
||||
|
||||
if (slider.MyObject.OnValueChanged) then
|
||||
slider.MyObject.OnValueChanged (slider, slider.MyObject.FixedValue, amt)
|
||||
local kill = object:RunHooksForWidget("OnValueChange", slider, object.FixedValue, amt, object)
|
||||
if (kill) then
|
||||
return
|
||||
end
|
||||
|
||||
if (object.OnValueChanged) then
|
||||
object.OnValueChanged(slider, object.FixedValue, amt)
|
||||
end
|
||||
|
||||
if (amt < 10 and amt >= 1) then
|
||||
amt = "0" .. amt
|
||||
end
|
||||
|
||||
if (slider.MyObject.useDecimals) then
|
||||
if (object.useDecimals) then
|
||||
slider.amt:SetText(string.format("%.2f", amt))
|
||||
else
|
||||
slider.amt:SetText(math.floor(amt))
|
||||
end
|
||||
slider.MyObject.ivalue = amt
|
||||
|
||||
object.ivalue = amt
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
--object constructor
|
||||
|
||||
local SwitchOnClick = function(self, button, forced_value, value)
|
||||
local object = self.MyObject
|
||||
|
||||
local slider = self.MyObject
|
||||
|
||||
if (rawget(slider, "lockdown")) then
|
||||
if (rawget(object, "lockdown")) then
|
||||
return
|
||||
end
|
||||
|
||||
if (forced_value) then
|
||||
rawset (slider, "value", not value)
|
||||
rawset(object, "value", not value)
|
||||
end
|
||||
|
||||
if (rawget(slider, "value")) then --actived
|
||||
rawset (slider, "value", false)
|
||||
if (rawget(object, "value")) then --actived
|
||||
rawset(object, "value", false)
|
||||
|
||||
if (slider.backdrop_disabledcolor) then
|
||||
slider:SetBackdropColor(unpack(slider.backdrop_disabledcolor))
|
||||
if (object.backdrop_disabledcolor) then
|
||||
object:SetBackdropColor(unpack(object.backdrop_disabledcolor))
|
||||
else
|
||||
slider:SetBackdropColor(1, 0, 0, 0.4)
|
||||
object:SetBackdropColor(1, 0, 0, 0.4)
|
||||
end
|
||||
|
||||
if (slider.is_checkbox) then
|
||||
slider.checked_texture:Hide()
|
||||
if (object.is_checkbox) then
|
||||
object.checked_texture:Hide()
|
||||
else
|
||||
slider._text:SetText(slider._ltext)
|
||||
slider._thumb:ClearAllPoints()
|
||||
slider._thumb:SetPoint("left", slider.widget, "left")
|
||||
object._text:SetText(object._ltext)
|
||||
object._thumb:ClearAllPoints()
|
||||
object._thumb:SetPoint("left", object.widget, "left")
|
||||
end
|
||||
else
|
||||
rawset (slider, "value", true)
|
||||
if (slider.backdrop_enabledcolor) then
|
||||
slider:SetBackdropColor(unpack(slider.backdrop_enabledcolor))
|
||||
rawset(object, "value", true)
|
||||
if (object.backdrop_enabledcolor) then
|
||||
object:SetBackdropColor(unpack(object.backdrop_enabledcolor))
|
||||
else
|
||||
slider:SetBackdropColor(0, 0, 1, 0.4)
|
||||
object:SetBackdropColor(0, 0, 1, 0.4)
|
||||
end
|
||||
if (slider.is_checkbox) then
|
||||
slider.checked_texture:Show()
|
||||
if (object.is_checkbox) then
|
||||
object.checked_texture:Show()
|
||||
else
|
||||
slider._text:SetText(slider._rtext)
|
||||
slider._thumb:ClearAllPoints()
|
||||
slider._thumb:SetPoint("right", slider.widget, "right")
|
||||
object._text:SetText(object._rtext)
|
||||
object._thumb:ClearAllPoints()
|
||||
object._thumb:SetPoint("right", object.widget, "right")
|
||||
end
|
||||
end
|
||||
|
||||
if (slider.OnSwitch and not forced_value) then
|
||||
local value = rawget(slider, "value")
|
||||
if (slider.return_func) then
|
||||
value = slider:return_func (value)
|
||||
if (object.OnSwitch and not forced_value) then
|
||||
local value = rawget(object, "value")
|
||||
if (object.return_func) then
|
||||
value = object:return_func (value)
|
||||
end
|
||||
|
||||
local success, errorText = xpcall(slider.OnSwitch, geterrorhandler(), slider, slider.FixedValue, value)
|
||||
local success, errorText = xpcall(object.OnSwitch, geterrorhandler(), object, object.FixedValue, value)
|
||||
if (not success) then
|
||||
return
|
||||
end
|
||||
|
||||
--trigger hooks
|
||||
slider:RunHooksForWidget("OnSwitch", slider, slider.FixedValue, value)
|
||||
object:RunHooksForWidget("OnSwitch", object, object.FixedValue, value)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local default_switch_func = function(self, passed_value)
|
||||
if (self.value) then
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
local switch_get_value = function(self)
|
||||
return self.value
|
||||
end
|
||||
@@ -811,7 +798,6 @@ local switch_set_fixparameter = function(self, value)
|
||||
end
|
||||
|
||||
local switch_disable = function(self)
|
||||
|
||||
if (self.is_checkbox) then
|
||||
self.checked_texture:Hide()
|
||||
else
|
||||
@@ -827,6 +813,7 @@ local switch_disable = function(self)
|
||||
self:SetAlpha(.4)
|
||||
rawset(self, "lockdown", true)
|
||||
end
|
||||
|
||||
local switch_enable = function(self)
|
||||
if (self.is_checkbox) then
|
||||
if (rawget(self, "value")) then
|
||||
@@ -863,7 +850,6 @@ local set_as_checkbok = function(self)
|
||||
|
||||
self._thumb:Hide()
|
||||
self._text:Hide()
|
||||
|
||||
self.is_checkbox = true
|
||||
|
||||
if (rawget(self, "value")) then
|
||||
@@ -881,39 +867,39 @@ local set_as_checkbok = function(self)
|
||||
self:SetBackdropColor(0, 0, 1, 0.4)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function DF:CreateSwitch(parent, on_switch, default_value, w, h, ltext, rtext, member, name, color_inverted, switch_func, return_func, with_label, switch_template, label_template)
|
||||
local switch, label = DF:NewSwitch (parent, parent, name, member, w or 60, h or 20, ltext, rtext, default_value, color_inverted, switch_func, return_func, with_label, switch_template, label_template)
|
||||
if (on_switch) then
|
||||
switch.OnSwitch = on_switch
|
||||
function DF:CreateSwitch(parent, onSwitch, defaultValue, width, height, leftText, rightText, member, name, colorInverted, switchFunc, returnFunc, withLabel, switch_template, label_template)
|
||||
local switch, label = DF:NewSwitch(parent, parent, name, member, width or 60, height or 20, leftText, rightText, defaultValue, colorInverted, switchFunc, returnFunc, withLabel, switch_template, label_template)
|
||||
if (onSwitch) then
|
||||
switch.OnSwitch = onSwitch
|
||||
end
|
||||
return switch, label
|
||||
end
|
||||
|
||||
function DF:NewSwitch (parent, container, name, member, w, h, ltext, rtext, default_value, color_inverted, switch_func, return_func, with_label, switch_template, label_template)
|
||||
|
||||
function DF:NewSwitch(parent, container, name, member, width, height, leftText, rightText, defaultValue, colorInverted, switch_func, return_func, with_label, switch_template, label_template)
|
||||
--early checks
|
||||
if (not name) then
|
||||
name = "DetailsFrameWorkSlider" .. DF.SwitchCounter
|
||||
DF.SwitchCounter = DF.SwitchCounter + 1
|
||||
|
||||
elseif (not parent) then
|
||||
return error("Details! FrameWork: parent not found.", 2)
|
||||
end
|
||||
|
||||
if (not container) then
|
||||
container = parent
|
||||
end
|
||||
|
||||
--defaults
|
||||
ltext = ltext or "OFF"
|
||||
rtext = rtext or "ON"
|
||||
leftText = leftText or "OFF"
|
||||
rightText = rightText or "ON"
|
||||
|
||||
--build frames
|
||||
w = w or 60
|
||||
h = h or 20
|
||||
width = width or 60
|
||||
height = height or 20
|
||||
|
||||
local slider = DF:NewButton(parent, container, name, member, w, h)
|
||||
local slider = DF:NewButton(parent, container, name, member, width, height)
|
||||
slider.HookList.OnSwitch = {}
|
||||
|
||||
slider.switch_func = switch_func
|
||||
@@ -936,7 +922,7 @@ function DF:NewSwitch (parent, container, name, member, w, h, ltext, rtext, defa
|
||||
|
||||
local thumb = slider:CreateTexture(nil, "artwork")
|
||||
thumb:SetTexture("Interface\\Buttons\\UI-ScrollBar-Knob")
|
||||
thumb:SetSize(34+(h*0.2), h*1.2)
|
||||
thumb:SetSize(34+(height*0.2), height*1.2)
|
||||
thumb:SetAlpha(0.7)
|
||||
thumb:SetPoint("left", slider.widget, "left")
|
||||
|
||||
@@ -946,15 +932,15 @@ function DF:NewSwitch (parent, container, name, member, w, h, ltext, rtext, defa
|
||||
|
||||
slider._text = text
|
||||
slider._thumb = thumb
|
||||
slider._ltext = ltext
|
||||
slider._rtext = rtext
|
||||
slider._ltext = leftText
|
||||
slider._rtext = rightText
|
||||
slider.thumb = thumb
|
||||
|
||||
slider.invert_colors = color_inverted
|
||||
slider.invert_colors = colorInverted
|
||||
|
||||
slider:SetScript("OnClick", SwitchOnClick)
|
||||
|
||||
slider:SetValue(default_value)
|
||||
slider:SetValue(defaultValue)
|
||||
|
||||
slider.isSwitch = true
|
||||
|
||||
@@ -977,7 +963,6 @@ function DF:NewSwitch (parent, container, name, member, w, h, ltext, rtext, defa
|
||||
end
|
||||
|
||||
function DFSliderMetaFunctions:SetTemplate(template)
|
||||
|
||||
--slider e switch
|
||||
if (template.width) then
|
||||
self:SetWidth(template.width)
|
||||
@@ -1052,9 +1037,11 @@ function DF:NewSlider (parent, container, name, member, width, height, minValue,
|
||||
name = "DetailsFrameworkSlider" .. DF.SliderCounter
|
||||
DF.SliderCounter = DF.SliderCounter + 1
|
||||
end
|
||||
|
||||
if (not parent) then
|
||||
return error("Details! FrameWork: parent not found.", 2)
|
||||
end
|
||||
|
||||
if (not container) then
|
||||
container = parent
|
||||
end
|
||||
@@ -1086,7 +1073,7 @@ function DF:NewSlider (parent, container, name, member, width, height, minValue,
|
||||
width = width or 130
|
||||
height = height or 19
|
||||
|
||||
--default members:
|
||||
--default members
|
||||
SliderObject.lockdown = false
|
||||
SliderObject.container = container
|
||||
|
||||
@@ -1284,14 +1271,14 @@ DF.AdjustmentSliderFunctions = {
|
||||
|
||||
--button can be the left or right button
|
||||
OnButtonDownkHook = function(button)
|
||||
button = button.MyObject
|
||||
local object = button.MyObject
|
||||
|
||||
--change the icon
|
||||
if (button.direction == "center") then
|
||||
if (object.direction == "center") then
|
||||
DF:DisableOnEnterScripts()
|
||||
end
|
||||
|
||||
local adjustmentSlider = button:GetParent()
|
||||
local adjustmentSlider = object:GetParent()
|
||||
adjustmentSlider.NextTick = GetTime() + 0.05
|
||||
|
||||
--save where the mouse is on the moment of the click
|
||||
@@ -1301,7 +1288,7 @@ DF.AdjustmentSliderFunctions = {
|
||||
adjustmentSlider.initialMouseX = mouseX
|
||||
adjustmentSlider.initialMouseY = mouseY
|
||||
|
||||
adjustmentSlider.buttonPressed = button.direction
|
||||
adjustmentSlider.buttonPressed = object.direction
|
||||
|
||||
--start monitoring the mouse moviment
|
||||
adjustmentSlider.buttonPressedTime = GetTime()
|
||||
@@ -1310,21 +1297,21 @@ DF.AdjustmentSliderFunctions = {
|
||||
|
||||
--button can be the left or right button
|
||||
OnButtonUpHook = function(button)
|
||||
button = button.MyObject
|
||||
local object = button.MyObject
|
||||
|
||||
--change the icon
|
||||
if (button.direction == "center") then
|
||||
if (object.direction == "center") then
|
||||
DF:EnableOnEnterScripts()
|
||||
end
|
||||
|
||||
local adjustmentSlider = button:GetParent()
|
||||
local adjustmentSlider = object:GetParent()
|
||||
|
||||
--check if the mouse did not moved at all, if not send a callback with a value of 1
|
||||
local mouseX, mouseY = GetCursorPosition()
|
||||
if (mouseX == adjustmentSlider.MouseX and mouseY == adjustmentSlider.MouseY and adjustmentSlider.buttonPressedTime+0.5 > GetTime()) then
|
||||
if (button.direction == "left") then
|
||||
if (object.direction == "left") then
|
||||
DF.AdjustmentSliderFunctions.RunCallback(adjustmentSlider, -1, 0, true)
|
||||
elseif (button.direction == "right") then
|
||||
elseif (object.direction == "right") then
|
||||
DF.AdjustmentSliderFunctions.RunCallback(adjustmentSlider, 1, 0, true)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,9 +5,9 @@ if (not DF or not DetailsFrameworkCanLoad) then
|
||||
end
|
||||
|
||||
local _
|
||||
local _rawset = rawset --lua local
|
||||
local _rawget = rawget --lua local
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local rawset = rawset --lua local
|
||||
local rawget = rawget --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local _unpack = unpack --lua local
|
||||
local type = type --lua local
|
||||
local _math_floor = math.floor --lua local
|
||||
@@ -175,7 +175,7 @@ DF:Mixin(SplitBarMetaFunctions, DF.ScriptHookMixin)
|
||||
return func (_table, _member_requested)
|
||||
end
|
||||
|
||||
local fromMe = _rawget (_table, _member_requested)
|
||||
local fromMe = rawget (_table, _member_requested)
|
||||
if (fromMe) then
|
||||
return fromMe
|
||||
end
|
||||
@@ -324,7 +324,7 @@ DF:Mixin(SplitBarMetaFunctions, DF.ScriptHookMixin)
|
||||
if (func) then
|
||||
return func (_table, _value)
|
||||
else
|
||||
return _rawset (_table, _key, _value)
|
||||
return rawset (_table, _key, _value)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -433,13 +433,13 @@ DF:Mixin(SplitBarMetaFunctions, DF.ScriptHookMixin)
|
||||
-- tooltip
|
||||
function SplitBarMetaFunctions:SetTooltip (tooltip)
|
||||
if (tooltip) then
|
||||
return _rawset (self, "have_tooltip", tooltip)
|
||||
return rawset (self, "have_tooltip", tooltip)
|
||||
else
|
||||
return _rawset (self, "have_tooltip", nil)
|
||||
return rawset (self, "have_tooltip", nil)
|
||||
end
|
||||
end
|
||||
function SplitBarMetaFunctions:GetTooltip()
|
||||
return _rawget (self, "have_tooltip")
|
||||
return rawget (self, "have_tooltip")
|
||||
end
|
||||
|
||||
-- frame levels
|
||||
@@ -798,7 +798,7 @@ function DF:NewSplitBar (parent, container, name, member, w, h)
|
||||
SplitBarObject.statusbar:SetScript("OnMouseUp", OnMouseUp)
|
||||
SplitBarObject.statusbar:SetScript("OnSizeChanged", OnSizeChanged)
|
||||
|
||||
_setmetatable(SplitBarObject, SplitBarMetaFunctions)
|
||||
setmetatable(SplitBarObject, SplitBarMetaFunctions)
|
||||
|
||||
return SplitBarObject
|
||||
end
|
||||
|
||||
+4
-163
@@ -5,7 +5,6 @@ if (not DF or not DetailsFrameworkCanLoad) then
|
||||
end
|
||||
|
||||
local _
|
||||
local loadstring = loadstring --lua local
|
||||
local APITextEntryFunctions = false
|
||||
|
||||
do
|
||||
@@ -624,8 +623,8 @@ function DF:NewTextEntry(parent, container, name, member, width, height, func, p
|
||||
return newTextEntryObject, withLabel
|
||||
end
|
||||
|
||||
function DF:NewSpellEntry(parent, func, w, h, param1, param2, member, name)
|
||||
local editbox = DF:NewTextEntry(parent, parent, name, member, w, h, func, param1, param2)
|
||||
function DF:NewSpellEntry(parent, func, width, height, param1, param2, member, name)
|
||||
local editbox = DF:NewTextEntry(parent, parent, name, member, width, height, func, param1, param2)
|
||||
return editbox
|
||||
end
|
||||
|
||||
@@ -645,114 +644,6 @@ local function_setfocus = function(self)
|
||||
return self.editbox:SetFocus(true)
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
--auto complete
|
||||
|
||||
-- block -------------------
|
||||
--code author Saiket from http://www.wowinterface.com/forums/showpost.php?p=245759&postcount=6
|
||||
--- @return StartPos, EndPos of highlight in this editbox.
|
||||
local function GetTextHighlight ( self )
|
||||
local Text, Cursor = self:GetText(), self:GetCursorPosition();
|
||||
self:Insert( "" ); -- Delete selected text
|
||||
local TextNew, CursorNew = self:GetText(), self:GetCursorPosition();
|
||||
-- Restore previous text
|
||||
self:SetText( Text );
|
||||
self:SetCursorPosition( Cursor );
|
||||
local Start, End = CursorNew, #Text - ( #TextNew - CursorNew );
|
||||
self:HighlightText( Start, End );
|
||||
return Start, End;
|
||||
end
|
||||
local StripColors;
|
||||
do
|
||||
local CursorPosition, CursorDelta;
|
||||
--- Callback for gsub to remove unescaped codes.
|
||||
local function StripCodeGsub ( Escapes, Code, End )
|
||||
if ( #Escapes % 2 == 0 ) then -- Doesn't escape Code
|
||||
if ( CursorPosition and CursorPosition >= End - 1 ) then
|
||||
CursorDelta = CursorDelta - #Code;
|
||||
end
|
||||
return Escapes;
|
||||
end
|
||||
end
|
||||
--- Removes a single escape sequence.
|
||||
local function StripCode ( Pattern, Text, OldCursor )
|
||||
CursorPosition, CursorDelta = OldCursor, 0;
|
||||
return Text:gsub( Pattern, StripCodeGsub ), OldCursor and CursorPosition + CursorDelta;
|
||||
end
|
||||
--- Strips Text of all color escape sequences.
|
||||
-- @param Cursor Optional cursor position to keep track of.
|
||||
-- @return Stripped text, and the updated cursor position if Cursor was given.
|
||||
function StripColors ( Text, Cursor )
|
||||
Text, Cursor = StripCode( "(|*)(|c%x%x%x%x%x%x%x%x)()", Text, Cursor );
|
||||
return StripCode( "(|*)(|r)()", Text, Cursor );
|
||||
end
|
||||
end
|
||||
|
||||
local COLOR_END = "|r";
|
||||
--- Wraps this editbox's selected text with the given color.
|
||||
local function ColorSelection ( self, ColorCode )
|
||||
local Start, End = GetTextHighlight( self );
|
||||
local Text, Cursor = self:GetText(), self:GetCursorPosition();
|
||||
if ( Start == End ) then -- Nothing selected
|
||||
--Start, End = Cursor, Cursor; -- Wrap around cursor
|
||||
return; -- Wrapping the cursor in a color code and hitting backspace crashes the client!
|
||||
end
|
||||
-- Find active color code at the end of the selection
|
||||
local ActiveColor;
|
||||
if ( End < #Text ) then -- There is text to color after the selection
|
||||
local ActiveEnd;
|
||||
local CodeEnd, _, Escapes, Color = 0;
|
||||
while ( true ) do
|
||||
_, CodeEnd, Escapes, Color = Text:find( "(|*)(|c%x%x%x%x%x%x%x%x)", CodeEnd + 1 );
|
||||
if ( not CodeEnd or CodeEnd > End ) then
|
||||
break;
|
||||
end
|
||||
if ( #Escapes % 2 == 0 ) then -- Doesn't escape Code
|
||||
ActiveColor, ActiveEnd = Color, CodeEnd;
|
||||
end
|
||||
end
|
||||
|
||||
if ( ActiveColor ) then
|
||||
-- Check if color gets terminated before selection ends
|
||||
CodeEnd = 0;
|
||||
while ( true ) do
|
||||
_, CodeEnd, Escapes = Text:find( "(|*)|r", CodeEnd + 1 );
|
||||
if ( not CodeEnd or CodeEnd > End ) then
|
||||
break;
|
||||
end
|
||||
if ( CodeEnd > ActiveEnd and #Escapes % 2 == 0 ) then -- Terminates ActiveColor
|
||||
ActiveColor = nil;
|
||||
break;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local Selection = Text:sub( Start + 1, End );
|
||||
-- Remove color codes from the selection
|
||||
local Replacement, CursorReplacement = StripColors( Selection, Cursor - Start );
|
||||
|
||||
self:SetText( ( "" ):join(
|
||||
Text:sub( 1, Start ),
|
||||
ColorCode, Replacement, COLOR_END,
|
||||
ActiveColor or "", Text:sub( End + 1 )
|
||||
) );
|
||||
|
||||
-- Restore cursor and highlight, adjusting for wrapper text
|
||||
Cursor = Start + CursorReplacement;
|
||||
if ( CursorReplacement > 0 ) then -- Cursor beyond start of color code
|
||||
Cursor = Cursor + #ColorCode;
|
||||
end
|
||||
if ( CursorReplacement >= #Replacement ) then -- Cursor beyond end of color
|
||||
Cursor = Cursor + #COLOR_END;
|
||||
end
|
||||
|
||||
self:SetCursorPosition( Cursor );
|
||||
-- Highlight selection and wrapper
|
||||
self:HighlightText( Start, #ColorCode + ( #Replacement - #Selection ) + #COLOR_END + End );
|
||||
end
|
||||
-- end of the block ---------------------
|
||||
|
||||
local get_last_word = function(self)
|
||||
self.lastword = ""
|
||||
local cursor_pos = self.editbox:GetCursorPosition()
|
||||
@@ -952,7 +843,6 @@ local AutoComplete_OnChar = function(editboxWidget, char, capsule)
|
||||
end
|
||||
|
||||
function TextEntryMetaFunctions:SetAsAutoComplete(poolName, poolTable, shouldOptimize)
|
||||
|
||||
if (not self.SetHook) then
|
||||
--self is borderframe
|
||||
self = self.editbox
|
||||
@@ -997,19 +887,17 @@ end
|
||||
local set_speciallua_editor_font_size = function(borderFrame, newSize)
|
||||
local file, size, flags = borderFrame.editbox:GetFont()
|
||||
borderFrame.editbox:SetFont(file, newSize, flags)
|
||||
|
||||
borderFrame.editboxlines:SetFont(file, newSize, flags)
|
||||
end
|
||||
|
||||
function DF:NewSpecialLuaEditorEntry (parent, w, h, member, name, nointent, showLineNumbers)
|
||||
|
||||
function DF:NewSpecialLuaEditorEntry(parent, width, height, member, name, nointent, showLineNumbers)
|
||||
if (name:find("$parent")) then
|
||||
local parentName = DF.GetParentName(parent)
|
||||
name = name:gsub("$parent", parentName)
|
||||
end
|
||||
|
||||
local borderframe = CreateFrame("Frame", name, parent,"BackdropTemplate")
|
||||
borderframe:SetSize(w, h)
|
||||
borderframe:SetSize(width, height)
|
||||
|
||||
if (member) then
|
||||
parent[member] = borderframe
|
||||
@@ -1134,50 +1022,3 @@ function DF:NewSpecialLuaEditorEntry (parent, w, h, member, name, nointent, show
|
||||
|
||||
return borderframe
|
||||
end
|
||||
|
||||
-- encryption table
|
||||
local base64chars = {[0]='A',[1]='B',[2]='C',[3]='D',[4]='E',[5]='F',[6]='G',[7]='H',[8]='I',[9]='J',[10]='K',[11]='L',[12]='M',[13]='N',[14]='O',[15]='P',[16]='Q',[17]='R',[18]='S',[19]='T',[20]='U',[21]='V',[22]='W',[23]='X',[24]='Y',[25]='Z',[26]='a',[27]='b',[28]='c',[29]='d',[30]='e',[31]='f',[32]='g',[33]='h',[34]='i',[35]='j',[36]='k',[37]='l',[38]='m',[39]='n',[40]='o',[41]='p',[42]='q',[43]='r',[44]='s',[45]='t',[46]='u',[47]='v',[48]='w',[49]='x',[50]='y',[51]='z',[52]='0',[53]='1',[54]='2',[55]='3',[56]='4',[57]='5',[58]='6',[59]='7',[60]='8',[61]='9',[62]='-',[63]='_'}
|
||||
|
||||
-- decryption table
|
||||
local base64bytes = {['A']=0,['B']=1,['C']=2,['D']=3,['E']=4,['F']=5,['G']=6,['H']=7,['I']=8,['J']=9,['K']=10,['L']=11,['M']=12,['N']=13,['O']=14,['P']=15,['Q']=16,['R']=17,['S']=18,['T']=19,['U']=20,['V']=21,['W']=22,['X']=23,['Y']=24,['Z']=25,['a']=26,['b']=27,['c']=28,['d']=29,['e']=30,['f']=31,['g']=32,['h']=33,['i']=34,['j']=35,['k']=36,['l']=37,['m']=38,['n']=39,['o']=40,['p']=41,['q']=42,['r']=43,['s']=44,['t']=45,['u']=46,['v']=47,['w']=48,['x']=49,['y']=50,['z']=51,['0']=52,['1']=53,['2']=54,['3']=55,['4']=56,['5']=57,['6']=58,['7']=59,['8']=60,['9']=61,['-']=62,['_']=63,['=']=nil}
|
||||
|
||||
-- shift left
|
||||
local function lsh (value,shift)
|
||||
return (value*(2^shift)) % 256
|
||||
end
|
||||
|
||||
-- shift right
|
||||
local function rsh (value,shift)
|
||||
return math.floor(value/2^shift) % 256
|
||||
end
|
||||
|
||||
-- return single bit (for OR)
|
||||
local function bit (x,b)
|
||||
return (x % 2^b - x % 2^(b-1) > 0)
|
||||
end
|
||||
|
||||
local function lor (x,y)
|
||||
local result = 0
|
||||
for p=1,8 do result = result + (((bit(x,p) or bit(y,p)) == true) and 2^(p-1) or 0) end
|
||||
return result
|
||||
end
|
||||
|
||||
function DF.EncodeString (data)
|
||||
local bytes = {}
|
||||
local result = ""
|
||||
for spos=0,string.len(data)-1,3 do
|
||||
for byte=1,3 do bytes[byte] = string.byte(string.sub(data,(spos+byte))) or 0 end
|
||||
result = string.format('%s%s%s%s%s',result,base64chars[rsh(bytes[1],2)],base64chars[lor(lsh((bytes[1] % 4),4), rsh(bytes[2],4))] or "=",((#data-spos) > 1) and base64chars[lor(lsh(bytes[2] % 16,2), rsh(bytes[3],6))] or "=",((#data-spos) > 2) and base64chars[(bytes[3] % 64)] or "=")
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
function DF.DecodeString (data)
|
||||
local chars = {}
|
||||
local result=""
|
||||
for dpos=0,string.len(data)-1,4 do
|
||||
for char=1,4 do chars[char] = base64bytes[(string.sub(data,(dpos+char),(dpos+char)) or "=")] end
|
||||
result = string.format('%s%s%s%s',result,string.char(lor(lsh(chars[1],2), rsh(chars[2],4))),(chars[3] ~= nil) and string.char(lor(lsh(chars[2],4), rsh(chars[3],2))) or "",(chars[4] ~= nil) and string.char(lor(lsh(chars[3],6) % 192, (chars[4]))) or "")
|
||||
end
|
||||
return result
|
||||
end
|
||||
@@ -68,7 +68,7 @@ if (WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE and not isExpansion_Dragonflight()) t
|
||||
end
|
||||
|
||||
local major = "LibOpenRaid-1.0"
|
||||
local CONST_LIB_VERSION = 62
|
||||
local CONST_LIB_VERSION = 63
|
||||
LIB_OPEN_RAID_CAN_LOAD = false
|
||||
|
||||
local unpack = table.unpack or _G.unpack
|
||||
@@ -242,7 +242,7 @@ end
|
||||
|
||||
function tempCache.RestoreData()
|
||||
local data = C_CVar.GetCVar(CONST_CVAR_TEMPCACHE)
|
||||
if (data and type(data) == "string" and data ~= "") then
|
||||
if (data and type(data) == "string" and string.len(data) > 1) then
|
||||
local LibAceSerializer = LibStub:GetLibrary("AceSerializer-3.0", true)
|
||||
if (LibAceSerializer) then
|
||||
local okay, cacheInfo = LibAceSerializer:Deserialize(data)
|
||||
@@ -279,13 +279,21 @@ function tempCache.RestoreData()
|
||||
tempCache.AddDebugText("invalid GearInfo")
|
||||
end
|
||||
else
|
||||
tempCache.AddDebugText("Deserialization not okay")
|
||||
tempCache.AddDebugText("Deserialization not okay, reason: " .. cacheInfo)
|
||||
end
|
||||
else
|
||||
tempCache.AddDebugText("LibAceSerializer not found")
|
||||
end
|
||||
else
|
||||
tempCache.AddDebugText("invalid temporary cache, isn't string or cvar not found")
|
||||
if (not data) then
|
||||
tempCache.AddDebugText("invalid temporary cache: getCVar returned nil")
|
||||
elseif (type(data) ~= "string") then
|
||||
tempCache.AddDebugText("invalid temporary cache: getCVar did not returned a string")
|
||||
elseif (string.len(data) < 2) then
|
||||
tempCache.AddDebugText("invalid temporary cache: data length lower than 2 bytes (first login?)")
|
||||
else
|
||||
tempCache.AddDebugText("invalid temporary cache: no reason found")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -269,6 +269,7 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
-- 4 raid defensive cooldown
|
||||
-- 5 personal utility cooldown
|
||||
-- 6 interrupt
|
||||
-- 8 crowd control
|
||||
|
||||
--interrupts
|
||||
[6552] = {class = "WARRIOR", specs = {71, 72, 73}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Pummel
|
||||
@@ -293,24 +294,24 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
-- 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)
|
||||
[216331] = {cooldown = 120, duration = 20, specs = {65}, talent = false, charges = 1, class = "PALADIN", type = 1}, --Avenging Crusader
|
||||
[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
|
||||
[105809] = {cooldown = 90, duration = 20, specs = {65,66,70}, talent = false, charges = 1, class = "PALADIN", type = 2}, --Holy Avenger
|
||||
[152262] = {cooldown = 45, duration = 15, specs = {65,66,70}, talent = false, 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)
|
||||
[115750] = {cooldown = 90, duration = 6, specs = {65,66,70}, talent = false, charges = 1, class = "PALADIN", type = 5}, --Blinding Light(talent)
|
||||
[327193] = {cooldown = 90, duration = 15, specs = {66}, talent = false, charges = 1, class = "PALADIN", type = 1}, --Moment of Glory
|
||||
[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)
|
||||
[204018] = {cooldown = 180, duration = 10, specs = {66}, talent = false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Spellwarding
|
||||
[231895] = {cooldown = 120, duration = 25, specs = {70}, talent = false, charges = 1, class = "PALADIN", type = 1}, --Crusade
|
||||
[205191] = {cooldown = 60, duration = 10, specs = {70}, talent = false, charges = 1, class = "PALADIN", type = 2}, --Eye for an Eye
|
||||
[184662] = {cooldown = 120, duration = 15, specs = {70}, talent = false, charges = 1, class = "PALADIN", type = 2}, --Shield of Vengeance
|
||||
|
||||
--warrior
|
||||
@@ -318,11 +319,11 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
-- 72 - Fury
|
||||
-- 73 - Protection
|
||||
|
||||
[107574] = {cooldown = 90, duration = 20, specs = {71,73}, talent =22397, charges = 1, class = "WARRIOR", type = 1}, --Avatar
|
||||
[107574] = {cooldown = 90, duration = 20, specs = {71,73}, talent = false, 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)
|
||||
[46924] = {cooldown = 60, duration = 4, specs = {72}, talent = false, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm
|
||||
[152277] = {cooldown = 60, duration = 6, specs = {71}, talent = false, charges = 1, class = "WARRIOR", type = 1}, --Ravager
|
||||
[228920] = {cooldown = 60, duration = 6, specs = {73}, talent = false, charges = 1, class = "WARRIOR", type = 1}, --Ravager
|
||||
[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
|
||||
@@ -338,19 +339,18 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
-- 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)
|
||||
[113860] = {cooldown = 120, duration = 20, specs = {265}, talent = false, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Misery
|
||||
[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)
|
||||
[108416] = {cooldown = 60, duration = 20, specs = {265,266,267}, talent = false, charges = 1, class = "WARLOCK", type = 2}, --Dark Pact
|
||||
[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
|
||||
[111898] = {cooldown = 120, duration = 15, specs = {266}, talent = false, charges = 1, class = "WARLOCK", type = 1}, --Grimoire: Felguard
|
||||
[267171] = {cooldown = 60, duration = false, specs = {266}, talent = false, charges = 1, class = "WARLOCK", type = 1}, --Demonic Strength
|
||||
[267217] = {cooldown = 180, duration = 20, specs = {266}, talent = false, 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)
|
||||
[113858] = {cooldown = 120, duration = 20, specs = {267}, talent = false, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Instability
|
||||
[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)
|
||||
[5484] = {cooldown = 40, duration = 20, specs = {265,266,267}, talent = false, charges = 1, class = "WARLOCK", type = 5}, --Howl of Terror
|
||||
|
||||
--shaman
|
||||
-- 262 - Elemental
|
||||
@@ -358,21 +358,21 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
-- 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)
|
||||
[192249] = {cooldown = 150, duration = 30, specs = {262}, talent = false, charges = 1, class = "SHAMAN", type = 1}, --Storm Elemental
|
||||
[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)
|
||||
[108281] = {cooldown = 120, duration = 10, specs = {262,263}, talent = false, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Guidance
|
||||
[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)
|
||||
[114050] = {cooldown = 180, duration = 15, specs = {262}, talent = false, charges = 1, class = "SHAMAN", type = 1}, --Ascendance
|
||||
[114051] = {cooldown = 180, duration = 15, specs = {263}, talent = false, charges = 1, class = "SHAMAN", type = 1}, --Ascendance
|
||||
[114052] = {cooldown = 180, duration = 15, specs = {264}, talent = false, charges = 1, class = "SHAMAN", type = 4}, --Ascendance
|
||||
[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)
|
||||
[207399] = {cooldown = 240, duration = 30, specs = {264}, talent = false, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Protection Totem
|
||||
[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)
|
||||
[192077] = {cooldown = 120, duration = 15, specs = {262,263,264}, talent = false, charges = 1, class = "SHAMAN", type = 5}, --Wind Rush Totem
|
||||
|
||||
--monk
|
||||
-- 268 - Brewmaster
|
||||
@@ -383,19 +383,19 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
[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)
|
||||
[115399] = {cooldown = 120, duration = false, specs = {268}, talent = false, charges = 1, class = "MONK", type = 2}, --Black Ox brew
|
||||
[122278] = {cooldown = 120, duration = 10, specs = {268,269,270}, talent = false, charges = 1, class = "MONK", type = 2}, --Dampen Harm
|
||||
[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)
|
||||
[152173] = {cooldown = 90, duration = 12, specs = {269}, talent = false, charges = 1, class = "MONK", type = 1}, --Serenity
|
||||
[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)
|
||||
[122783] = {cooldown = 90, duration = 6, specs = {269,270}, talent = false, charges = 1, class = "MONK", type = 2}, --Diffuse Magic
|
||||
[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)
|
||||
[197908] = {cooldown = 90, duration = 10, specs = {270}, talent = false, charges = 1, class = "MONK", type = 5}, --Mana tea
|
||||
[116844] = {cooldown = 45, duration = 5, specs = {268,269,270}, talent = false, charges = 1, class = "MONK", type = 5}, --Ring of peace
|
||||
[119381] = {cooldown = 50, duration = 3, specs = {268,269,270}, talent = false, charges = 1, class = "MONK", type = 5}, --Leg Sweep
|
||||
|
||||
--hunter
|
||||
@@ -405,16 +405,16 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
|
||||
[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)
|
||||
[201430] = {cooldown = 180, duration = 12, specs = {253}, talent = false, charges = 1, class = "HUNTER", type = 1}, --Stampede
|
||||
[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)
|
||||
[199483] = {cooldown = 60, duration = 60, specs = {253,254,255}, talent = false, charges = 1, class = "HUNTER", type = 2}, --Camouflage
|
||||
[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)
|
||||
[109248] = {cooldown = 45, duration = 10, specs = {253,254,255}, talent = false, charges = 1, class = "HUNTER", type = 5}, --Binding Shot
|
||||
[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
|
||||
|
||||
@@ -424,135 +424,142 @@ LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
-- 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)
|
||||
[194223] = {cooldown = 180, duration = 20, specs = {102}, talent = false, charges = 1, class = "DRUID", type = 1}, --Celestial Alignment
|
||||
[391528] = {cooldown = 120, duration = 4, specs = {102, 103, 104, 105}, talent = false, charges = 1, class = "DRUID", type = 1}, --Convoke the Spirits
|
||||
[197721] = {cooldown = 90, duration = 8, specs = {105}, talent = false, charges = 1, class = "DRUID", type = 4}, --Flourish
|
||||
[319454] = {cooldown = 300, duration = 45, specs = {102, 103, 104, 105}, talent = false, charges = 1, class = "DRUID", type = 1}, --Heart of the Wild
|
||||
[102543] = {cooldown = 30, duration = 180, specs = {103}, talent = false, charges = 1, class = "DRUID", type = 1}, --Incarnation: Avatar of Ashamane
|
||||
[102560] = {cooldown = 180, duration = 30, specs = {102}, talent = false, charges = 1, class = "DRUID", type = 1}, --Incarnation: Chosen of Elune
|
||||
[102558] = {cooldown = 180, duration = 30, specs = {104}, talent = false, charges = 1, class = "DRUID", type = 2}, --Incarnation: Guardian of Ursoc
|
||||
[33891] = {cooldown = 180, duration = 30, specs = {105}, talent = false, charges = 1, class = "DRUID", type = 4}, --Incarnation: Tree of Life
|
||||
[99] = {cooldown = 30, duration = 3, specs = {102, 103, 104, 105}, talent = false, charges = 1, class = "DRUID", type = 8}, --Incapacitating Roar
|
||||
[29166] = {cooldown = 180, duration = 12, specs = {102, 105}, talent = false, charges = 1, class = "DRUID", type = 5}, --Innervate
|
||||
[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)
|
||||
[203651] = {cooldown = 60, duration = 0, specs = {105}, talent = false, charges = 1, class = "DRUID", type = 3}, --Overgrowth
|
||||
[108238] = {cooldown = 90, duration = 0, specs = {102, 103, 104, 105}, talent = false, charges = 1, class = "DRUID", type = 2}, --Renewal
|
||||
[77761] = {cooldown = 120, duration = 8, specs = {102, 103, 104, 105}, talent = false, charges = 1, class = "DRUID", type = 4}, --Stampeding Roar | 106898
|
||||
[61336] = {cooldown = 120, duration = 6, specs = {103, 104}, talent = false, charges = 1, class = "DRUID", type = 2}, --Survival Instincts
|
||||
[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
|
||||
[132469] = {cooldown = 30, duration = 0, specs = {102, 103, 104, 105}, talent = false, charges = 1, class = "DRUID", type = 8}, --Typhoon
|
||||
[102793] = {cooldown = 60, duration = 10, specs = {102, 103, 104, 105}, talent = false, charges = 1, class = "DRUID", type = 8}, --Ursol's Vortex
|
||||
|
||||
--death knight
|
||||
-- 252 - Unholy
|
||||
-- 251 - Frost
|
||||
-- 252 - Blood
|
||||
|
||||
[383269] = {cooldown = 120, duration = 12, specs = {250, 251, 252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Abomination Limb
|
||||
[48707] = {cooldown = 60, duration = 10, specs = {250, 251, 252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Anti-Magic Shell
|
||||
[51052] = {cooldown = 120, duration = 10, specs = {250, 251, 252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 4}, --Anti-Magic Zone
|
||||
[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)
|
||||
[221562] = {cooldown = 45, duration = 5, specs = {250}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 8}, --Asphyxiate
|
||||
[108194] = {cooldown = 45, duration = 4, specs = {251, 252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 8}, --Asphyxiate
|
||||
[207167] = {cooldown = 60, duration = 5, specs = {251}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 8}, --Blinding Sleet
|
||||
[152279] = {cooldown = 120, duration = 5, specs = {251}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Breath of Sindragosa
|
||||
[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
|
||||
[48743] = {cooldown = 120, duration = 15, specs = {250, 251, 252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Death Pact
|
||||
[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 = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Frostwyrm's Fury
|
||||
[108199] = {cooldown = 120, duration = 0, specs = {250}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Gorefiend's Grasp
|
||||
[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)
|
||||
[46585] = {cooldown = 120, duration = 60, specs = {250, 251, 252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Raise Dead
|
||||
[49206] = {cooldown = 180, duration = 30, specs = {252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Summon Gargoyle
|
||||
[219809] = {cooldown = 60, duration = 8, specs = {250}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Tombstone
|
||||
[207289] = {cooldown = 78, duration = 12, specs = {252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Unholy Assault
|
||||
[55233] = {cooldown = 90, duration = 10, specs = {250}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Vampiric Blood
|
||||
[212552] = {cooldown = 60, duration = 4, specs = {250, 251, 252}, talent = false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Wraith Walk
|
||||
|
||||
|
||||
--demon hunter
|
||||
-- 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
|
||||
[320341] = {cooldown = 90, duration = 0, specs = {581}, talent = false, charges = 1, class = "DEMONHUNTER", type = 2}, --Bulk Extraction
|
||||
[179057] = {cooldown = 60, duration = 2, specs = {577}, talent = false, charges = 1, class = "DEMONHUNTER", type = 8}, --Chaos Nova
|
||||
[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)
|
||||
[211881] = {cooldown = 30, duration = 4, specs = {577}, talent = false, charges = 1, class = "DEMONHUNTER", type = 5}, --Fel Eruption
|
||||
[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)
|
||||
[217832] = {cooldown = 45, duration = 0, specs = {577, 581}, talent = false, charges = 1, class = "DEMONHUNTER", type = 8}, --Imprison
|
||||
[187827] = {cooldown = 180, duration = 15, specs = {581}, talent = false, charges = 1, class = "DEMONHUNTER", type = 2}, --Metamorphosis
|
||||
[191427] = {cooldown = 240, duration = 30, specs = {577}, talent = false, charges = 1, class = "DEMONHUNTER", type = 1}, --Metamorphosis
|
||||
[196555] = {cooldown = 120, duration = 5, specs = {577}, talent = false, charges = 1, class = "DEMONHUNTER", type = 2}, --Netherwalk
|
||||
[202138] = {cooldown = 90, duration = 6, specs = {581}, talent = false, charges = 1, class = "DEMONHUNTER", type = 8}, --Sigil of Chains
|
||||
[207684] = {cooldown = 90, duration = 12, specs = {581}, talent = false, charges = 1, class = "DEMONHUNTER", type = 8}, --Sigil of Misery
|
||||
[202137] = {cooldown = 60, duration = 8, specs = {581}, talent = false, charges = 1, class = "DEMONHUNTER", type = 6}, --Sigil of Silence
|
||||
[263648] = {cooldown = 30, duration = 12, specs = {581}, talent = false, charges = 1, class = "DEMONHUNTER", type = 2}, --Soul Barrier
|
||||
[188501] = {cooldown = 30, duration = 10, specs = {577, 581}, talent = false, charges = 1, class = "DEMONHUNTER", type = 5}, --Spectral Sight
|
||||
|
||||
--mage
|
||||
-- 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
|
||||
[235219] = {cooldown = 300, duration = 0, specs = {64}, talent = false, charges = 1, class = "MAGE", type = 2}, --Cold Snap
|
||||
[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)
|
||||
[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 | 110959
|
||||
[11426] = {cooldown = 25, duration = 60, specs = {64}, talent = false, charges = 1, class = "MAGE", type = 2}, --Ice Barrier
|
||||
[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)
|
||||
[12472] = {cooldown = 180, duration = 20, specs = {64}, talent = false, charges = 1, class = "MAGE", type = 1}, --Icy Veins
|
||||
[66] = {cooldown = 300, duration = 20, specs = {63, 64}, talent = false, charges = 1, class = "MAGE", type = 2}, --Invisibility
|
||||
[383121] = {cooldown = 60, duration = 0, specs = {62, 63, 64}, talent = false, charges = 1, class = "MAGE", type = 8}, --Mass Polymorph
|
||||
[55342] = {cooldown = 120, duration = 40, specs = {62, 63, 64}, talent = false, charges = 1, class = "MAGE", type = 2}, --Mirror Image
|
||||
[235450] = {cooldown = 25, duration = 60, specs = {62}, talent = false, charges = 1, class = "MAGE", type = 5}, --Prismatic Barrier
|
||||
[205021] = {cooldown = 78, duration = 5, specs = {64}, talent = false, charges = 1, class = "MAGE", type = 1}, --Ray of Frost
|
||||
[113724] = {cooldown = 45, duration = 10, specs = {62, 63, 64}, talent = false, charges = 1, class = "MAGE", type = 8}, --Ring of Frost
|
||||
|
||||
--priest
|
||||
-- 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)
|
||||
[200183] = {cooldown = 120, duration = 20, specs = {257}, talent = false, charges = 1, class = "PRIEST", type = 2}, --Apotheosis
|
||||
[19236] = {cooldown = 90, duration = 10, specs = {256, 257, 258}, talent = false, charges = 1, class = "PRIEST", type = 2}, --Desperate Prayer
|
||||
[47585] = {cooldown = 120, duration = 6, specs = {258}, talent = false, charges = 1, class = "PRIEST", type = 2}, --Dispersion
|
||||
[64843] = {cooldown = 180, duration = 8, specs = {257}, talent = false, charges = 1, class = "PRIEST", type = 4}, --Divine Hymn
|
||||
[246287] = {cooldown = 90, duration = 0, specs = {256}, talent = false, charges = 1, class = "PRIEST", type = 4}, --Evangelism
|
||||
[47788] = {cooldown = 180, duration = 10, specs = {257}, talent = false, charges = 1, class = "PRIEST", type = 3}, --Guardian Spirit
|
||||
[265202] = {cooldown = 720, duration = 0, specs = {257}, talent = false, charges = 1, class = "PRIEST", type = 4}, --Holy Word: Salvation
|
||||
[372835] = {cooldown = 180, duration = 0, specs = {257}, talent = false, charges = 1, class = "PRIEST", type = 4}, --Lightwell
|
||||
[73325] = {cooldown = 90, duration = 0, specs = {256, 257, 258}, talent = false, charges = 1, class = "PRIEST", type = 5}, --Leap of Faith
|
||||
[271466] = {cooldown = 180, duration = 10, specs = {256}, talent = false, charges = 1, class = "PRIEST", type = 4}, --Luminous Barrier
|
||||
[205369] = {cooldown = 30, duration = 6, specs = {258}, talent = false, charges = 1, class = "PRIEST", type = 5}, --Mind Bomb
|
||||
[200174] = {cooldown = 60, duration = 15, specs = {258}, talent = false, charges = 1, class = "PRIEST", type = 1}, --Mindbender spec 258
|
||||
[123040] = {cooldown = 60, duration = 12, specs = {256}, talent = false, charges = 1, class = "PRIEST", type = 1}, --Mindbender spec 256
|
||||
[33206] = {cooldown = 180, duration = 8, specs = {256}, talent = false, charges = 1, class = "PRIEST", type = 3}, --Pain Suppression
|
||||
[10060] = {cooldown = 120, duration = 20, specs = {256, 257, 258}, talent = false, charges = 1, class = "PRIEST", type = 1}, --Power Infusion
|
||||
[62618] = {cooldown = 180, duration = 10, specs = {256}, talent = false, charges = 1, class = "PRIEST", type = 4}, --Power Word: Barrier
|
||||
[64044] = {cooldown = 45, duration = 4, specs = {258}, talent = false, charges = 1, class = "PRIEST", type = 8}, --Psychic Horror
|
||||
[8122] = {cooldown = 60, duration = 8, specs = {256, 257, 258}, talent = false, charges = 1, class = "PRIEST", type = 8}, --Psychic Scream
|
||||
[47536] = {cooldown = 90, duration = 10, specs = {256}, talent = false, charges = 1, class = "PRIEST", type = 5}, --Rapture
|
||||
[34433] = {cooldown = 180, duration = 15, specs = {256, 258}, talent = false, charges = 1, class = "PRIEST", type = 1}, --Shadowfiend
|
||||
[109964] = {cooldown = 60, duration = 12, specs = {256}, talent = false, charges = 1, class = "PRIEST", type = 4}, --Spirit Shell
|
||||
[64901] = {cooldown = 300, duration = 6, specs = {257}, talent = false, charges = 1, class = "PRIEST", type = 4}, --Symbol of Hope
|
||||
[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
|
||||
[228260] = {cooldown = 90, duration = 15, specs = {258}, talent = false, charges = 1, class = "PRIEST", type = 1}, --Void Eruption
|
||||
|
||||
--rogue
|
||||
-- 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)
|
||||
[2094] = {cooldown = 120, duration = 60, specs = {259, 260, 261}, talent = false, charges = 1, class = "ROGUE", type = 8}, --Blind
|
||||
[31224] = {cooldown = 120, duration = 5, specs = {259, 260, 261}, talent = false, charges = 1, class = "ROGUE", type = 2}, --Cloak of Shadows
|
||||
[185311] = {cooldown = 30, duration = 15, specs = {259, 260, 261}, talent = false, charges = 1, class = "ROGUE", type = 2}, --Crimson Vial
|
||||
[343142] = {cooldown = 90, duration = 10, specs = {260}, talent = false, charges = 1, class = "ROGUE", type = 1}, --Dreadblades
|
||||
[5277] = {cooldown = 120, duration = 10, specs = {259, 260, 261}, talent = false, charges = 1, class = "ROGUE", type = 2}, --Evasion
|
||||
[51690] = {cooldown = 120, duration = 2, specs = {260}, talent = false, charges = 1, class = "ROGUE", type = 1}, --Killing Spree
|
||||
[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
|
||||
[114018] = {cooldown = 360, duration = 15, specs = {259, 260, 261}, talent = false, charges = 1, class = "ROGUE", type = 5}, --Shroud of Concealment
|
||||
[1856] = {cooldown = 120, duration = 3, specs = {259, 260, 261}, talent = false, charges = 1, class = "ROGUE", type = 1}, --Vanish
|
||||
[79140] = {cooldown = 120, duration = 20, specs = {259}, talent = false, charges = 1, class = "ROGUE", type = 1}, --Vendetta
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {};
|
||||
|
||||
@@ -36,13 +36,16 @@
|
||||
Details.gameVersionPrefix = gameVersionPrefix
|
||||
|
||||
function Details.GetVersionString()
|
||||
local alphaId = _detalhes.curseforgeVersion:match("%-(%d+)%-")
|
||||
local curseforgeVersion = _detalhes.curseforgeVersion or ""
|
||||
local alphaId = curseforgeVersion:match("%-(%d+)%-")
|
||||
|
||||
if (not alphaId) then
|
||||
--this is a release version
|
||||
alphaId = "R1"
|
||||
else
|
||||
alphaId = "A" .. alphaId
|
||||
end
|
||||
|
||||
return Details.gameVersionPrefix .. Details.build_counter .. "." .. Details.acounter .. "." .. alphaId .. "(" .. Details.game_version .. ")"
|
||||
end
|
||||
|
||||
@@ -942,6 +945,8 @@ do
|
||||
--register textures and fonts for shared media
|
||||
local SharedMedia = LibStub:GetLibrary ("LibSharedMedia-3.0")
|
||||
--default bars
|
||||
SharedMedia:Register("statusbar", "Details Hyanda", [[Interface\AddOns\Details\images\bar_hyanda]])
|
||||
|
||||
SharedMedia:Register("statusbar", "Details D'ictum", [[Interface\AddOns\Details\images\bar4]])
|
||||
SharedMedia:Register("statusbar", "Details Vidro", [[Interface\AddOns\Details\images\bar4_vidro]])
|
||||
SharedMedia:Register("statusbar", "Details D'ictum (reverse)", [[Interface\AddOns\Details\images\bar4_reverse]])
|
||||
@@ -1062,6 +1067,7 @@ do
|
||||
Details.failed_to_load = C_Timer.NewTimer(1, function() Details.Schedules.NewTimer(20, _detalhes.WelcomeMsgLogon) end)
|
||||
|
||||
--key binds
|
||||
--[=[
|
||||
--header
|
||||
_G ["BINDING_HEADER_Details"] = "Details!"
|
||||
_G ["BINDING_HEADER_DETAILS_KEYBIND_SEGMENTCONTROL"] = Loc ["STRING_KEYBIND_SEGMENTCONTROL"]
|
||||
@@ -1097,6 +1103,7 @@ do
|
||||
_G ["BINDING_NAME_DETAILS_BOOKMARK8"] = format(Loc ["STRING_KEYBIND_BOOKMARK_NUMBER"], 8)
|
||||
_G ["BINDING_NAME_DETAILS_BOOKMARK9"] = format(Loc ["STRING_KEYBIND_BOOKMARK_NUMBER"], 9)
|
||||
_G ["BINDING_NAME_DETAILS_BOOKMARK10"] = format(Loc ["STRING_KEYBIND_BOOKMARK_NUMBER"], 10)
|
||||
--]=]
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
local _table_sort = table.sort --lua local
|
||||
local tinsert = table.insert --lua local
|
||||
local _table_size = table.getn --lua local
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local _getmetatable = getmetatable --lua local
|
||||
local ipairs = ipairs --lua local
|
||||
local pairs = pairs --lua local
|
||||
local _rawget= rawget --lua local
|
||||
local rawget= rawget --lua local
|
||||
local _math_min = math.min --lua local
|
||||
local _math_max = math.max --lua local
|
||||
local abs = math.abs --lua local
|
||||
@@ -440,7 +440,7 @@ end
|
||||
spells = container_habilidades:NovoContainer (container_damage)
|
||||
}
|
||||
|
||||
_setmetatable(_new_damageActor, atributo_damage)
|
||||
setmetatable(_new_damageActor, atributo_damage)
|
||||
|
||||
return _new_damageActor
|
||||
end
|
||||
@@ -950,7 +950,7 @@ end
|
||||
thisLine.colocacao = colocacao
|
||||
|
||||
if (not _getmetatable (tabela)) then
|
||||
_setmetatable(tabela, {__call = RefreshBarraBySpell})
|
||||
setmetatable(tabela, {__call = RefreshBarraBySpell})
|
||||
tabela._custom = true
|
||||
end
|
||||
|
||||
@@ -1141,7 +1141,7 @@ end
|
||||
thisLine.colocacao = colocacao
|
||||
|
||||
if (not _getmetatable (tabela)) then
|
||||
_setmetatable(tabela, {__call = RefreshBarraFrags})
|
||||
setmetatable(tabela, {__call = RefreshBarraFrags})
|
||||
tabela._custom = true
|
||||
end
|
||||
|
||||
@@ -5875,7 +5875,7 @@ end
|
||||
|
||||
function Details.refresh:r_atributo_damage (este_jogador, shadow)
|
||||
--restaura metas do ator
|
||||
_setmetatable(este_jogador, Details.atributo_damage)
|
||||
setmetatable(este_jogador, Details.atributo_damage)
|
||||
este_jogador.__index = Details.atributo_damage
|
||||
--restaura as metas dos containers
|
||||
Details.refresh:r_container_habilidades (este_jogador.spells, shadow and shadow.spells)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
--lua locals
|
||||
local _cstr = string.format
|
||||
local _math_floor = math.floor
|
||||
local _setmetatable = setmetatable
|
||||
local setmetatable = setmetatable
|
||||
local pairs = pairs
|
||||
local ipairs = ipairs
|
||||
local _unpack = unpack
|
||||
@@ -112,7 +112,7 @@ function atributo_heal:NovaTabela (serial, nome, link)
|
||||
targets_absorbs = {}
|
||||
}
|
||||
|
||||
_setmetatable(_new_healActor, atributo_heal)
|
||||
setmetatable(_new_healActor, atributo_heal)
|
||||
|
||||
return _new_healActor
|
||||
end
|
||||
@@ -2915,7 +2915,7 @@ atributo_heal.__sub = function(tabela1, tabela2)
|
||||
end
|
||||
|
||||
function _detalhes.refresh:r_atributo_heal (este_jogador, shadow)
|
||||
_setmetatable(este_jogador, atributo_heal)
|
||||
setmetatable(este_jogador, atributo_heal)
|
||||
este_jogador.__index = atributo_heal
|
||||
|
||||
_detalhes.refresh:r_container_habilidades (este_jogador.spells, shadow and shadow.spells)
|
||||
|
||||
@@ -9,7 +9,7 @@ local _math_floor = math.floor --lua local
|
||||
local abs = math.abs --lua local
|
||||
local _table_remove = table.remove --lua local
|
||||
local _getmetatable = getmetatable --lua local
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local _string_len = string.len --lua local
|
||||
local _unpack = unpack --lua local
|
||||
local _cstr = string.format --lua local
|
||||
@@ -49,7 +49,7 @@ local segmentos = _detalhes.segmentos
|
||||
for index = 1, #_detalhes.tabela_instancias do
|
||||
local instancia = _detalhes.tabela_instancias [index]
|
||||
if (not _getmetatable (instancia)) then
|
||||
_setmetatable(_detalhes.tabela_instancias[index], _detalhes)
|
||||
setmetatable(_detalhes.tabela_instancias[index], _detalhes)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1353,7 +1353,7 @@ end
|
||||
LastModo = modo_grupo,
|
||||
}
|
||||
|
||||
_setmetatable(new_instance, _detalhes)
|
||||
setmetatable(new_instance, _detalhes)
|
||||
_detalhes.tabela_instancias [#_detalhes.tabela_instancias+1] = new_instance
|
||||
|
||||
--fill the empty instance with default values
|
||||
@@ -1375,7 +1375,7 @@ end
|
||||
function _detalhes:NovaInstancia (ID)
|
||||
|
||||
local new_instance = {}
|
||||
_setmetatable(new_instance, _detalhes)
|
||||
setmetatable(new_instance, _detalhes)
|
||||
_detalhes.tabela_instancias [#_detalhes.tabela_instancias+1] = new_instance
|
||||
|
||||
--instance number
|
||||
|
||||
@@ -4,10 +4,10 @@ local _cstr = string.format
|
||||
local _math_floor = math.floor
|
||||
local _table_sort = table.sort
|
||||
local tinsert = table.insert
|
||||
local _setmetatable = setmetatable
|
||||
local setmetatable = setmetatable
|
||||
local ipairs = ipairs
|
||||
local pairs = pairs
|
||||
local _rawget= rawget
|
||||
local rawget= rawget
|
||||
local _math_min = math.min
|
||||
local _math_max = math.max
|
||||
local _bit_band = bit.band
|
||||
@@ -87,7 +87,7 @@ function atributo_energy:NovaTabela (serial, nome, link)
|
||||
spells = container_habilidades:NovoContainer (container_energy),
|
||||
}
|
||||
|
||||
_setmetatable(_new_energyActor, atributo_energy)
|
||||
setmetatable(_new_energyActor, atributo_energy)
|
||||
|
||||
return _new_energyActor
|
||||
end
|
||||
@@ -1523,7 +1523,7 @@ function atributo_energy:ColetarLixo (lastevent)
|
||||
end
|
||||
|
||||
function _detalhes.refresh:r_atributo_energy (este_jogador, shadow)
|
||||
_setmetatable(este_jogador, _detalhes.atributo_energy)
|
||||
setmetatable(este_jogador, _detalhes.atributo_energy)
|
||||
este_jogador.__index = _detalhes.atributo_energy
|
||||
|
||||
_detalhes.refresh:r_container_habilidades (este_jogador.spells, shadow and shadow.spells)
|
||||
|
||||
@@ -1,32 +1,23 @@
|
||||
-- damage ability file
|
||||
|
||||
local _detalhes = _G._detalhes
|
||||
local _
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--local pointers
|
||||
local ipairs = ipairs--lua local
|
||||
local pairs = pairs--lua local
|
||||
local _UnitAura = UnitAura--api local
|
||||
local ipairs = ipairs
|
||||
local pairs = pairs
|
||||
local _UnitAura = UnitAura
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--constants
|
||||
|
||||
local alvo_da_habilidade = _detalhes.alvo_da_habilidade
|
||||
local habilidade_dano = _detalhes.habilidade_dano
|
||||
local container_combatentes = _detalhes.container_combatentes
|
||||
local container_damage_target = _detalhes.container_type.CONTAINER_DAMAGETARGET_CLASS
|
||||
local container_playernpc = _detalhes.container_type.CONTAINER_PLAYERNPC
|
||||
|
||||
local _recording_ability_with_buffs = false
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--internals
|
||||
|
||||
function habilidade_dano:NovaTabela(id, link, token)
|
||||
|
||||
local _newDamageSpell = {
|
||||
|
||||
total = 0, --total damage
|
||||
counter = 0, --counter
|
||||
id = id, --spellid
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--local pointers
|
||||
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local ipairs = ipairs --lua local
|
||||
local _UnitAura = UnitAura --api local
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--local pointers
|
||||
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local ipairs = ipairs --lua local
|
||||
local _UnitAura = UnitAura --api local
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ local tinsert = table.insert
|
||||
local _table_size = table.getn
|
||||
local ipairs = ipairs
|
||||
local pairs = pairs
|
||||
local _rawget= rawget
|
||||
local rawget= rawget
|
||||
local min = math.min
|
||||
local _math_max = math.max
|
||||
local abs = math.abs
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
local UnitGUID = UnitGUID --api local
|
||||
local strsplit = strsplit --api local
|
||||
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local _getmetatable = getmetatable --lua local
|
||||
local _bit_band = bit.band --lua local
|
||||
local _table_sort = table.sort --lua local
|
||||
@@ -160,7 +160,7 @@
|
||||
_NameIndexTable = {}
|
||||
}
|
||||
|
||||
_setmetatable(_newContainer, container_combatentes)
|
||||
setmetatable(_newContainer, container_combatentes)
|
||||
|
||||
return _newContainer
|
||||
end
|
||||
@@ -876,7 +876,7 @@
|
||||
|
||||
function _detalhes.refresh:r_container_combatentes (container, shadow)
|
||||
--reconstr�i meta e indexes
|
||||
_setmetatable(container, _detalhes.container_combatentes)
|
||||
setmetatable(container, _detalhes.container_combatentes)
|
||||
container.__index = _detalhes.container_combatentes
|
||||
container.funcao_de_criacao = container_combatentes:FuncaoDeCriacao (container.tipo)
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ local IsInGroup = _G.IsInGroup
|
||||
local GetNumGroupMembers = _G.GetNumGroupMembers
|
||||
|
||||
-- lua locals
|
||||
local _setmetatable = setmetatable
|
||||
local setmetatable = setmetatable
|
||||
local _bit_band = bit.band --lua local
|
||||
local pairs = pairs
|
||||
local ipairs = ipairs
|
||||
@@ -22,7 +22,7 @@ local is_ignored = _detalhes.pets_ignored
|
||||
|
||||
function container_pets:NovoContainer()
|
||||
local esta_tabela = {}
|
||||
_setmetatable(esta_tabela, _detalhes.container_pets)
|
||||
setmetatable(esta_tabela, _detalhes.container_pets)
|
||||
esta_tabela.pets = {} --armazena a pool -> uma dictionary com o [serial do pet] -> nome do dono
|
||||
esta_tabela._ActorTable = {} --armazena os 15 ultimos pets do jogador -> [jogador nome] -> {nil, nil, nil, ...}
|
||||
return esta_tabela
|
||||
@@ -256,6 +256,6 @@ function _detalhes:SchedulePetUpdate(seconds)
|
||||
end
|
||||
|
||||
function _detalhes.refresh:r_container_pets (container)
|
||||
_setmetatable(container, container_pets)
|
||||
setmetatable(container, container_pets)
|
||||
end
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ local _
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--local pointers
|
||||
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--constants
|
||||
@@ -39,7 +39,7 @@ local _
|
||||
_ActorTable = {}
|
||||
}
|
||||
|
||||
_setmetatable(_newContainer, container_habilidades)
|
||||
setmetatable(_newContainer, container_habilidades)
|
||||
|
||||
return _newContainer
|
||||
end
|
||||
@@ -101,7 +101,7 @@ local _
|
||||
|
||||
function _detalhes.refresh:r_container_habilidades (container, shadow)
|
||||
--reconstr�i meta e indexes
|
||||
_setmetatable(container, _detalhes.container_habilidades)
|
||||
setmetatable(container, _detalhes.container_habilidades)
|
||||
container.__index = _detalhes.container_habilidades
|
||||
local func_criacao = container_habilidades:FuncaoDeCriacao (container.tipo)
|
||||
container.funcao_de_criacao = func_criacao
|
||||
|
||||
@@ -21,10 +21,10 @@ local _math_floor = math.floor --lua local
|
||||
local _table_sort = table.sort --lua local
|
||||
local tinsert = table.insert --lua local
|
||||
local _table_size = table.getn --lua local
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local ipairs = ipairs --lua local
|
||||
local pairs = pairs --lua local
|
||||
local _rawget= rawget --lua local
|
||||
local rawget= rawget --lua local
|
||||
local _math_min = math.min --lua local
|
||||
local _math_max = math.max --lua local
|
||||
local _bit_band = bit.band --lua local
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
local _table_sort = table.sort --lua local
|
||||
local tinsert = table.insert --lua local
|
||||
local _table_size = table.getn --lua local
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local ipairs = ipairs --lua local
|
||||
local pairs = pairs --lua local
|
||||
local _rawget= rawget --lua local
|
||||
local rawget= rawget --lua local
|
||||
local _math_min = math.min --lua local
|
||||
local _math_max = math.max --lua local
|
||||
local _bit_band = bit.band --lua local
|
||||
|
||||
@@ -2939,6 +2939,7 @@ function Details.GenerateSpecSpellList()
|
||||
end)
|
||||
end
|
||||
|
||||
--fill the passed table with spells from talents and spellbook, affect only the active spec
|
||||
function Details.FillTableWithPlayerSpells(completeListOfSpells)
|
||||
local specId, specName, _, specIconTexture = GetSpecializationInfo(GetSpecialization())
|
||||
local classNameLoc, className, classId = UnitClass("player")
|
||||
@@ -3106,3 +3107,46 @@ function Details:HandleRogueCombatSpecIconByGameVersion()
|
||||
rogueCombatCoords[4] = 448 / 512
|
||||
end
|
||||
end
|
||||
|
||||
function CopyText(text)
|
||||
if (not Details.CopyTextField) then
|
||||
Details.CopyTextField = CreateFrame("Frame", "DetailsCopyText", UIParent, "BackdropTemplate")
|
||||
Details.CopyTextField:SetHeight(14)
|
||||
Details.CopyTextField:SetWidth(120)
|
||||
Details.CopyTextField:SetPoint("center", UIParent, "center")
|
||||
Details.CopyTextField:SetBackdrop(backdrop)
|
||||
|
||||
DetailsFramework:ApplyStandardBackdrop(Details.CopyTextField)
|
||||
|
||||
tinsert(UISpecialFrames, "DetailsCopyText")
|
||||
|
||||
Details.CopyTextField.textField = CreateFrame("editbox", nil, Details.CopyTextField, "BackdropTemplate")
|
||||
Details.CopyTextField.textField:SetPoint("topleft", Details.CopyTextField, "topleft")
|
||||
Details.CopyTextField.textField:SetAutoFocus(false)
|
||||
Details.CopyTextField.textField:SetFontObject("GameFontHighlightSmall")
|
||||
Details.CopyTextField.textField:SetAllPoints()
|
||||
Details.CopyTextField.textField:EnableMouse(true)
|
||||
|
||||
Details.CopyTextField.textField:SetScript("OnEnterPressed", function()
|
||||
Details.CopyTextField.textField:ClearFocus()
|
||||
Details.CopyTextField:Hide()
|
||||
end)
|
||||
|
||||
Details.CopyTextField.textField:SetScript("OnEscapePressed", function()
|
||||
Details.CopyTextField.textField:ClearFocus()
|
||||
Details.CopyTextField:Hide()
|
||||
end)
|
||||
|
||||
Details.CopyTextField.textField:SetScript("OnChar", function()
|
||||
Details.CopyTextField.textField:ClearFocus()
|
||||
Details.CopyTextField:Hide()
|
||||
end)
|
||||
end
|
||||
|
||||
C_Timer.After(0.1, function()
|
||||
Details.CopyTextField:Show()
|
||||
Details.CopyTextField.textField:SetFocus()
|
||||
Details.CopyTextField.textField:SetText(text)
|
||||
Details.CopyTextField.textField:HighlightText()
|
||||
end)
|
||||
end
|
||||
+2
-2
@@ -8,8 +8,8 @@
|
||||
local _
|
||||
local pairs = pairs --lua local
|
||||
local ipairs = ipairs --lua local
|
||||
local _rawget = rawget --lua local
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local rawget = rawget --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
local _table_remove = table.remove --lua local
|
||||
local _bit_band = bit.band --lua local
|
||||
local wipe = table.wipe --lua local
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
local _table_sort = table.sort --lua local
|
||||
local tinsert = table.insert --lua local
|
||||
local _unpack = unpack --lua local
|
||||
local _setmetatable = setmetatable --lua local
|
||||
local setmetatable = setmetatable --lua local
|
||||
|
||||
local _GetSpellInfo = _detalhes.getspellinfo --api local
|
||||
local CreateFrame = CreateFrame --api local
|
||||
@@ -508,7 +508,7 @@
|
||||
}
|
||||
|
||||
tinsert(_detalhes.custom, new_custom_object)
|
||||
_setmetatable(new_custom_object, _detalhes.atributo_custom)
|
||||
setmetatable(new_custom_object, _detalhes.atributo_custom)
|
||||
new_custom_object.__index = _detalhes.atributo_custom
|
||||
_detalhes:Msg(Loc ["STRING_CUSTOM_CREATED"])
|
||||
end
|
||||
@@ -591,7 +591,7 @@
|
||||
end
|
||||
|
||||
tinsert(_detalhes.custom, new_custom_object)
|
||||
_setmetatable(new_custom_object, _detalhes.atributo_custom)
|
||||
setmetatable(new_custom_object, _detalhes.atributo_custom)
|
||||
new_custom_object.__index = _detalhes.atributo_custom
|
||||
_detalhes:Msg(Loc ["STRING_CUSTOM_CREATED"])
|
||||
end
|
||||
|
||||
+2
-2
@@ -473,7 +473,7 @@ local _
|
||||
["textL_custom_text"] = "{data1}. {data3}{data2}",
|
||||
["font_size"] = 16,
|
||||
["height"] = 21,
|
||||
["texture_file"] = "Interface\\AddOns\\Details\\images\\bar_skyline",
|
||||
["texture_file"] = "Interface\\AddOns\\Details\\images\\bar_hyanda",
|
||||
["icon_file"] = "Interface\\AddOns\\Details\\images\\classes_small",
|
||||
["textR_bracket"] = "(",
|
||||
["textR_enable_custom_text"] = false,
|
||||
@@ -484,7 +484,7 @@ local _
|
||||
},
|
||||
["textL_show_number"] = true,
|
||||
["textR_custom_text"] = "{data1} ({data2}, {data3}%)",
|
||||
["texture"] = "Skyline",
|
||||
["texture"] = "Details Hyanda",
|
||||
["use_spec_icons"] = true,
|
||||
["textR_class_colors"] = false,
|
||||
["textL_class_colors"] = false,
|
||||
|
||||
+15
-15
@@ -8,9 +8,9 @@ do
|
||||
local _detalhes = _G._detalhes
|
||||
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
|
||||
local _
|
||||
local _rawget = rawget
|
||||
local _rawset = rawset
|
||||
local _setmetatable = setmetatable
|
||||
local rawget = rawget
|
||||
local rawset = rawset
|
||||
local setmetatable = setmetatable
|
||||
local _GetSpellInfo = GetSpellInfo
|
||||
local _unpack = unpack
|
||||
|
||||
@@ -61,9 +61,9 @@ do
|
||||
|
||||
--reset spell cache
|
||||
function _detalhes:ClearSpellCache()
|
||||
_detalhes.spellcache = _setmetatable({},
|
||||
_detalhes.spellcache = setmetatable({},
|
||||
{__index = function(tabela, valor)
|
||||
local esta_magia = _rawget (tabela, valor)
|
||||
local esta_magia = rawget (tabela, valor)
|
||||
if (esta_magia) then
|
||||
return esta_magia
|
||||
end
|
||||
@@ -85,19 +85,19 @@ do
|
||||
end})
|
||||
|
||||
--default overwrites
|
||||
--_rawset (_detalhes.spellcache, 1, {Loc ["STRING_MELEE"], 1, "Interface\\AddOns\\Details\\images\\melee.tga"})
|
||||
--_rawset (_detalhes.spellcache, 2, {Loc ["STRING_AUTOSHOT"], 1, "Interface\\AddOns\\Details\\images\\autoshot.tga"})
|
||||
--rawset (_detalhes.spellcache, 1, {Loc ["STRING_MELEE"], 1, "Interface\\AddOns\\Details\\images\\melee.tga"})
|
||||
--rawset (_detalhes.spellcache, 2, {Loc ["STRING_AUTOSHOT"], 1, "Interface\\AddOns\\Details\\images\\autoshot.tga"})
|
||||
|
||||
--built-in overwrites
|
||||
for spellId, spellTable in pairs(_detalhes.SpellOverwrite) do
|
||||
local name, _, icon = _GetSpellInfo(spellId)
|
||||
_rawset (_detalhes.spellcache, spellId, {spellTable.name or name, 1, spellTable.icon or icon})
|
||||
rawset (_detalhes.spellcache, spellId, {spellTable.name or name, 1, spellTable.icon or icon})
|
||||
end
|
||||
|
||||
--user overwrites
|
||||
-- [1] spellid [2] spellname [3] spellicon
|
||||
for index, spellTable in ipairs(_detalhes.savedCustomSpells) do
|
||||
_rawset (_detalhes.spellcache, spellTable [1], {spellTable [2], 1, spellTable [3]})
|
||||
rawset (_detalhes.spellcache, spellTable [1], {spellTable [2], 1, spellTable [3]})
|
||||
end
|
||||
end
|
||||
|
||||
@@ -194,7 +194,7 @@ do
|
||||
local t = _detalhes.savedCustomSpells[index]
|
||||
if (t) then
|
||||
t [2], t [3] = name or t [2], icon or t [3]
|
||||
return _rawset (_detalhes.spellcache, t [1], {t [2], 1, t [3]})
|
||||
return rawset (_detalhes.spellcache, t [1], {t [2], 1, t [3]})
|
||||
else
|
||||
return false
|
||||
end
|
||||
@@ -218,7 +218,7 @@ do
|
||||
icon = [[Interface\InventoryItems\WoWUnknownItem01]]
|
||||
end
|
||||
|
||||
_rawset (_detalhes.spellcache, spellid, {name, 1, icon})
|
||||
rawset (_detalhes.spellcache, spellid, {name, 1, icon})
|
||||
|
||||
t[2] = name
|
||||
t[3] = icon
|
||||
@@ -267,7 +267,7 @@ do
|
||||
if (not is_overwrite) then
|
||||
tinsert(_detalhes.savedCustomSpells, {spellid, name, icon})
|
||||
end
|
||||
return _rawset (_detalhes.spellcache, spellid, {name, 1, icon})
|
||||
return rawset (_detalhes.spellcache, spellid, {name, 1, icon})
|
||||
end
|
||||
|
||||
function _detalhes:UserCustomSpellRemove (index)
|
||||
@@ -276,7 +276,7 @@ do
|
||||
local spellid = t [1]
|
||||
local name, _, icon = _GetSpellInfo(spellid)
|
||||
if (name) then
|
||||
_rawset (_detalhes.spellcache, spellid, {name, 1, icon})
|
||||
rawset (_detalhes.spellcache, spellid, {name, 1, icon})
|
||||
end
|
||||
return tremove(_detalhes.savedCustomSpells, index)
|
||||
end
|
||||
@@ -294,9 +294,9 @@ do
|
||||
local spellName, rank, spellIcon = _GetSpellInfo(spellid)
|
||||
|
||||
if (spellName) then
|
||||
_rawset (_detalhes.spellcache, spellid, {spellName .. Loc ["STRING_DOT"], rank, spellIcon})
|
||||
rawset (_detalhes.spellcache, spellid, {spellName .. Loc ["STRING_DOT"], rank, spellIcon})
|
||||
else
|
||||
_rawset (_detalhes.spellcache, spellid, {"Unknown DoT Spell? " .. Loc ["STRING_DOT"], rank, [[Interface\InventoryItems\WoWUnknownItem01]]})
|
||||
rawset (_detalhes.spellcache, spellid, {"Unknown DoT Spell? " .. Loc ["STRING_DOT"], rank, [[Interface\InventoryItems\WoWUnknownItem01]]})
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
Reference in New Issue
Block a user