slash command now shows the correct game version; framework update
This commit is contained in:
+16
-12
@@ -1,6 +1,6 @@
|
||||
|
||||
|
||||
local dversion = 244
|
||||
local dversion = 247
|
||||
|
||||
local major, minor = "DetailsFramework-1.0", dversion
|
||||
local DF, oldminor = LibStub:NewLibrary (major, minor)
|
||||
@@ -3490,14 +3490,16 @@ function DF:GetClassList()
|
||||
|
||||
for className, classIndex in pairs (DF.ClassFileNameToIndex) do
|
||||
local classTable = C_CreatureInfo.GetClassInfo (classIndex)
|
||||
local t = {
|
||||
ID = classIndex,
|
||||
Name = classTable.className,
|
||||
Texture = [[Interface\GLUES\CHARACTERCREATE\UI-CharacterCreate-Classes]],
|
||||
TexCoord = CLASS_ICON_TCOORDS [className],
|
||||
FileString = className,
|
||||
}
|
||||
tinsert (DF.ClassCache, t)
|
||||
if classTable then
|
||||
local t = {
|
||||
ID = classIndex,
|
||||
Name = classTable.className,
|
||||
Texture = [[Interface\GLUES\CHARACTERCREATE\UI-CharacterCreate-Classes]],
|
||||
TexCoord = CLASS_ICON_TCOORDS [className],
|
||||
FileString = className,
|
||||
}
|
||||
tinsert (DF.ClassCache, t)
|
||||
end
|
||||
end
|
||||
|
||||
return DF.ClassCache
|
||||
@@ -3570,9 +3572,11 @@ function DF:GetCharacterRaceList (fullList)
|
||||
tinsert (DF.RaceCache, {Name = raceInfo.raceName, FileString = raceInfo.clientFileString})
|
||||
end
|
||||
|
||||
local alliedRaceInfo = C_AlliedRaces.GetRaceInfoByID (i)
|
||||
if (alliedRaceInfo and DF.AlliedRaceList [alliedRaceInfo.raceID]) then
|
||||
tinsert (DF.RaceCache, {Name = alliedRaceInfo.maleName, FileString = alliedRaceInfo.raceFileString})
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
local alliedRaceInfo = C_AlliedRaces.GetRaceInfoByID (i)
|
||||
if (alliedRaceInfo and DF.AlliedRaceList [alliedRaceInfo.raceID]) then
|
||||
tinsert (DF.RaceCache, {Name = alliedRaceInfo.maleName, FileString = alliedRaceInfo.raceFileString})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+218
-207
@@ -6075,7 +6075,7 @@ function DF:PassLoadFilters (loadTable, encounterID)
|
||||
end
|
||||
|
||||
--spec
|
||||
if (loadTable.spec.Enabled) then
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_MAINLINE and loadTable.spec.Enabled) then
|
||||
local canCheckTalents = true
|
||||
|
||||
if (passLoadClass) then
|
||||
@@ -6116,7 +6116,7 @@ function DF:PassLoadFilters (loadTable, encounterID)
|
||||
end
|
||||
|
||||
--talents
|
||||
if (loadTable.talent.Enabled) then
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_MAINLINE and loadTable.talent.Enabled) then
|
||||
local talentsInUse = DF:GetCharacterTalents (false, true)
|
||||
local hasTalent
|
||||
for talentID, _ in pairs (talentsInUse) do
|
||||
@@ -6131,7 +6131,7 @@ function DF:PassLoadFilters (loadTable, encounterID)
|
||||
end
|
||||
|
||||
--pvptalent
|
||||
if (loadTable.pvptalent.Enabled) then
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_MAINLINE and loadTable.pvptalent.Enabled) then
|
||||
local talentsInUse = DF:GetCharacterPvPTalents (false, true)
|
||||
local hasTalent
|
||||
for talentID, _ in pairs (talentsInUse) do
|
||||
@@ -6168,7 +6168,7 @@ function DF:PassLoadFilters (loadTable, encounterID)
|
||||
end
|
||||
|
||||
--affix
|
||||
if (loadTable.affix.Enabled) then
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_MAINLINE and loadTable.affix.Enabled) then
|
||||
local isInMythicDungeon = C_ChallengeMode.IsChallengeModeActive()
|
||||
if (not isInMythicDungeon) then
|
||||
return false
|
||||
@@ -6318,21 +6318,23 @@ function DF:OpenLoadConditionsPanel (optionsTable, callback, frameOptions)
|
||||
tinsert (f.AllRadioGroups, classGroup)
|
||||
|
||||
--create the radio group for character spec
|
||||
local specs = {}
|
||||
for _, specID in ipairs (DF:GetClassSpecIDs (select (2, UnitClass ("player")))) do
|
||||
local specID, specName, specDescription, specIcon, specBackground, specRole, specClass = DetailsFramework.GetSpecializationInfoByID (specID)
|
||||
tinsert (specs, {
|
||||
name = specName,
|
||||
set = f.OnRadioCheckboxClick,
|
||||
param = specID,
|
||||
get = function() return f.OptionsTable.spec [specID] or f.OptionsTable.spec [specID..""] end,
|
||||
texture = specIcon,
|
||||
})
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
local specs = {}
|
||||
for _, specID in ipairs (DF:GetClassSpecIDs (select (2, UnitClass ("player")))) do
|
||||
local specID, specName, specDescription, specIcon, specBackground, specRole, specClass = DetailsFramework.GetSpecializationInfoByID (specID)
|
||||
tinsert (specs, {
|
||||
name = specName,
|
||||
set = f.OnRadioCheckboxClick,
|
||||
param = specID,
|
||||
get = function() return f.OptionsTable.spec [specID] or f.OptionsTable.spec [specID..""] end,
|
||||
texture = specIcon,
|
||||
})
|
||||
end
|
||||
local specGroup = DF:CreateRadionGroup (f, specs, name, {width = 200, height = 200, title = "Character Spec"}, {offset_x = 130, amount_per_line = 4})
|
||||
specGroup:SetPoint ("topleft", f, "topleft", anchorPositions.spec [1], anchorPositions.spec [2])
|
||||
specGroup.DBKey = "spec"
|
||||
tinsert (f.AllRadioGroups, specGroup)
|
||||
end
|
||||
local specGroup = DF:CreateRadionGroup (f, specs, name, {width = 200, height = 200, title = "Character Spec"}, {offset_x = 130, amount_per_line = 4})
|
||||
specGroup:SetPoint ("topleft", f, "topleft", anchorPositions.spec [1], anchorPositions.spec [2])
|
||||
specGroup.DBKey = "spec"
|
||||
tinsert (f.AllRadioGroups, specGroup)
|
||||
|
||||
--create radio group for character races
|
||||
local raceList = {}
|
||||
@@ -6350,198 +6352,202 @@ function DF:OpenLoadConditionsPanel (optionsTable, callback, frameOptions)
|
||||
tinsert (f.AllRadioGroups, raceGroup)
|
||||
|
||||
--create radio group for talents
|
||||
local talentList = {}
|
||||
for _, talentTable in ipairs (DF:GetCharacterTalents()) do
|
||||
tinsert (talentList, {
|
||||
name = talentTable.Name,
|
||||
set = f.OnRadioCheckboxClick,
|
||||
param = talentTable.ID,
|
||||
get = function() return f.OptionsTable.talent [talentTable.ID] or f.OptionsTable.talent [talentTable.ID .. ""] end,
|
||||
texture = talentTable.Texture,
|
||||
})
|
||||
end
|
||||
local talentGroup = DF:CreateRadionGroup (f, talentList, name, {width = 200, height = 200, title = "Characer Talents"}, {offset_x = 150, amount_per_line = 3})
|
||||
talentGroup:SetPoint ("topleft", f, "topleft", anchorPositions.talent [1], anchorPositions.talent [2])
|
||||
talentGroup.DBKey = "talent"
|
||||
tinsert (f.AllRadioGroups, talentGroup)
|
||||
f.TalentGroup = talentGroup
|
||||
|
||||
do
|
||||
--create a frame to show talents selected in other specs or characters
|
||||
local otherTalents = CreateFrame ("frame", nil, f, "BackdropTemplate")
|
||||
otherTalents:SetSize (26, 26)
|
||||
otherTalents:SetPoint ("left", talentGroup.Title.widget, "right", 10, -2)
|
||||
otherTalents.Texture = DF:CreateImage (otherTalents, [[Interface\BUTTONS\AdventureGuideMicrobuttonAlert]], 24, 24)
|
||||
otherTalents.Texture:SetAllPoints()
|
||||
|
||||
local removeTalent = function (_, _, talentID)
|
||||
f.OptionsTable.talent [talentID] = nil
|
||||
GameCooltip2:Hide()
|
||||
f.OnRadioStateChanged (talentGroup, f.OptionsTable [talentGroup.DBKey])
|
||||
f.CanShowTalentWarning()
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
local talentList = {}
|
||||
for _, talentTable in ipairs (DF:GetCharacterTalents()) do
|
||||
tinsert (talentList, {
|
||||
name = talentTable.Name,
|
||||
set = f.OnRadioCheckboxClick,
|
||||
param = talentTable.ID,
|
||||
get = function() return f.OptionsTable.talent [talentTable.ID] or f.OptionsTable.talent [talentTable.ID .. ""] end,
|
||||
texture = talentTable.Texture,
|
||||
})
|
||||
end
|
||||
|
||||
local buildTalentMenu = function()
|
||||
local playerTalents = DF:GetCharacterTalents()
|
||||
local indexedTalents = {}
|
||||
for _, talentTable in ipairs (playerTalents) do
|
||||
tinsert (indexedTalents, talentTable.ID)
|
||||
local talentGroup = DF:CreateRadionGroup (f, talentList, name, {width = 200, height = 200, title = "Characer Talents"}, {offset_x = 150, amount_per_line = 3})
|
||||
talentGroup:SetPoint ("topleft", f, "topleft", anchorPositions.talent [1], anchorPositions.talent [2])
|
||||
talentGroup.DBKey = "talent"
|
||||
tinsert (f.AllRadioGroups, talentGroup)
|
||||
f.TalentGroup = talentGroup
|
||||
|
||||
do
|
||||
--create a frame to show talents selected in other specs or characters
|
||||
local otherTalents = CreateFrame ("frame", nil, f, "BackdropTemplate")
|
||||
otherTalents:SetSize (26, 26)
|
||||
otherTalents:SetPoint ("left", talentGroup.Title.widget, "right", 10, -2)
|
||||
otherTalents.Texture = DF:CreateImage (otherTalents, [[Interface\BUTTONS\AdventureGuideMicrobuttonAlert]], 24, 24)
|
||||
otherTalents.Texture:SetAllPoints()
|
||||
|
||||
local removeTalent = function (_, _, talentID)
|
||||
f.OptionsTable.talent [talentID] = nil
|
||||
GameCooltip2:Hide()
|
||||
f.OnRadioStateChanged (talentGroup, f.OptionsTable [talentGroup.DBKey])
|
||||
f.CanShowTalentWarning()
|
||||
end
|
||||
|
||||
--talents selected to load
|
||||
GameCooltip2:AddLine ("select a talent to remove it (added from a different spec or character)", "", 1, "orange", "orange", 9)
|
||||
GameCooltip2:AddLine ("$div", nil, nil, -1, -1)
|
||||
|
||||
for talentID, _ in pairs (f.OptionsTable.talent) do
|
||||
if (type (talentID) == "number" and not DF.table.find (indexedTalents, talentID)) then
|
||||
local talentID, name, texture, selected, available = GetTalentInfoByID (talentID)
|
||||
if (name) then
|
||||
GameCooltip2:AddLine (name)
|
||||
GameCooltip2:AddIcon (texture, 1, 1, 16, 16, .1, .9, .1, .9)
|
||||
GameCooltip2:AddMenu (1, removeTalent, talentID)
|
||||
local buildTalentMenu = function()
|
||||
local playerTalents = DF:GetCharacterTalents()
|
||||
local indexedTalents = {}
|
||||
for _, talentTable in ipairs (playerTalents) do
|
||||
tinsert (indexedTalents, talentTable.ID)
|
||||
end
|
||||
|
||||
--talents selected to load
|
||||
GameCooltip2:AddLine ("select a talent to remove it (added from a different spec or character)", "", 1, "orange", "orange", 9)
|
||||
GameCooltip2:AddLine ("$div", nil, nil, -1, -1)
|
||||
|
||||
for talentID, _ in pairs (f.OptionsTable.talent) do
|
||||
if (type (talentID) == "number" and not DF.table.find (indexedTalents, talentID)) then
|
||||
local talentID, name, texture, selected, available = GetTalentInfoByID (talentID)
|
||||
if (name) then
|
||||
GameCooltip2:AddLine (name)
|
||||
GameCooltip2:AddIcon (texture, 1, 1, 16, 16, .1, .9, .1, .9)
|
||||
GameCooltip2:AddMenu (1, removeTalent, talentID)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
otherTalents.CoolTip = {
|
||||
Type = "menu",
|
||||
BuildFunc = buildTalentMenu,
|
||||
OnEnterFunc = function (self) end,
|
||||
OnLeaveFunc = function (self) end,
|
||||
FixedValue = "none",
|
||||
ShowSpeed = 0.05,
|
||||
Options = function()
|
||||
GameCooltip2:SetOption ("TextFont", "Friz Quadrata TT")
|
||||
GameCooltip2:SetOption ("TextColor", "orange")
|
||||
GameCooltip2:SetOption ("TextSize", 12)
|
||||
GameCooltip2:SetOption ("FixedWidth", 220)
|
||||
GameCooltip2:SetOption ("ButtonsYMod", -4)
|
||||
GameCooltip2:SetOption ("YSpacingMod", -4)
|
||||
GameCooltip2:SetOption ("IgnoreButtonAutoHeight", true)
|
||||
|
||||
GameCooltip2:SetColor (1, 0.5, 0.5, 0.5, 0)
|
||||
|
||||
local preset2_backdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], edgeFile = [[Interface\Buttons\WHITE8X8]], tile = true, edgeSize = 1, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}}
|
||||
local gray_table = {0.37, 0.37, 0.37, 0.95}
|
||||
local black_table = {0.2, 0.2, 0.2, 1}
|
||||
GameCooltip2:SetBackdrop (1, preset2_backdrop, gray_table, black_table)
|
||||
GameCooltip2:SetBackdrop (2, preset2_backdrop, gray_table, black_table)
|
||||
end,
|
||||
}
|
||||
GameCooltip2:CoolTipInject (otherTalents)
|
||||
|
||||
otherTalents.CoolTip = {
|
||||
Type = "menu",
|
||||
BuildFunc = buildTalentMenu,
|
||||
OnEnterFunc = function (self) end,
|
||||
OnLeaveFunc = function (self) end,
|
||||
FixedValue = "none",
|
||||
ShowSpeed = 0.05,
|
||||
Options = function()
|
||||
GameCooltip2:SetOption ("TextFont", "Friz Quadrata TT")
|
||||
GameCooltip2:SetOption ("TextColor", "orange")
|
||||
GameCooltip2:SetOption ("TextSize", 12)
|
||||
GameCooltip2:SetOption ("FixedWidth", 220)
|
||||
GameCooltip2:SetOption ("ButtonsYMod", -4)
|
||||
GameCooltip2:SetOption ("YSpacingMod", -4)
|
||||
GameCooltip2:SetOption ("IgnoreButtonAutoHeight", true)
|
||||
|
||||
GameCooltip2:SetColor (1, 0.5, 0.5, 0.5, 0)
|
||||
|
||||
local preset2_backdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], edgeFile = [[Interface\Buttons\WHITE8X8]], tile = true, edgeSize = 1, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}}
|
||||
local gray_table = {0.37, 0.37, 0.37, 0.95}
|
||||
local black_table = {0.2, 0.2, 0.2, 1}
|
||||
GameCooltip2:SetBackdrop (1, preset2_backdrop, gray_table, black_table)
|
||||
GameCooltip2:SetBackdrop (2, preset2_backdrop, gray_table, black_table)
|
||||
end,
|
||||
}
|
||||
GameCooltip2:CoolTipInject (otherTalents)
|
||||
|
||||
function f.CanShowTalentWarning()
|
||||
local playerTalents = DF:GetCharacterTalents()
|
||||
local indexedTalents = {}
|
||||
for _, talentTable in ipairs (playerTalents) do
|
||||
tinsert (indexedTalents, talentTable.ID)
|
||||
end
|
||||
for talentID, _ in pairs (f.OptionsTable.talent) do
|
||||
if (type (talentID) == "number" and not DF.table.find (indexedTalents, talentID)) then
|
||||
otherTalents:Show()
|
||||
return
|
||||
function f.CanShowTalentWarning()
|
||||
local playerTalents = DF:GetCharacterTalents()
|
||||
local indexedTalents = {}
|
||||
for _, talentTable in ipairs (playerTalents) do
|
||||
tinsert (indexedTalents, talentTable.ID)
|
||||
end
|
||||
for talentID, _ in pairs (f.OptionsTable.talent) do
|
||||
if (type (talentID) == "number" and not DF.table.find (indexedTalents, talentID)) then
|
||||
otherTalents:Show()
|
||||
return
|
||||
end
|
||||
end
|
||||
otherTalents:Hide()
|
||||
end
|
||||
otherTalents:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
--create radio group for pvp talents
|
||||
local pvpTalentList = {}
|
||||
for _, talentTable in ipairs (DF:GetCharacterPvPTalents()) do
|
||||
tinsert (pvpTalentList, {
|
||||
name = talentTable.Name,
|
||||
set = f.OnRadioCheckboxClick,
|
||||
param = talentTable.ID,
|
||||
get = function() return f.OptionsTable.pvptalent [talentTable.ID] or f.OptionsTable.pvptalent [talentTable.ID .. ""] end,
|
||||
texture = talentTable.Texture,
|
||||
})
|
||||
end
|
||||
local pvpTalentGroup = DF:CreateRadionGroup (f, pvpTalentList, name, {width = 200, height = 200, title = "Characer PvP Talents"}, {offset_x = 150, amount_per_line = 3})
|
||||
pvpTalentGroup:SetPoint ("topleft", f, "topleft", anchorPositions.pvptalent [1], anchorPositions.pvptalent [2])
|
||||
pvpTalentGroup.DBKey = "pvptalent"
|
||||
tinsert (f.AllRadioGroups, pvpTalentGroup)
|
||||
f.PvPTalentGroup = pvpTalentGroup
|
||||
|
||||
do
|
||||
--create a frame to show talents selected in other specs or characters
|
||||
local otherTalents = CreateFrame ("frame", nil, f, "BackdropTemplate")
|
||||
otherTalents:SetSize (26, 26)
|
||||
otherTalents:SetPoint ("left", pvpTalentGroup.Title.widget, "right", 10, -2)
|
||||
otherTalents.Texture = DF:CreateImage (otherTalents, [[Interface\BUTTONS\AdventureGuideMicrobuttonAlert]], 24, 24)
|
||||
otherTalents.Texture:SetAllPoints()
|
||||
|
||||
local removeTalent = function (_, _, talentID)
|
||||
f.OptionsTable.pvptalent [talentID] = nil
|
||||
GameCooltip2:Hide()
|
||||
f.OnRadioStateChanged (pvpTalentGroup, f.OptionsTable [pvpTalentGroup.DBKey])
|
||||
f.CanShowPvPTalentWarning()
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
local pvpTalentList = {}
|
||||
for _, talentTable in ipairs (DF:GetCharacterPvPTalents()) do
|
||||
tinsert (pvpTalentList, {
|
||||
name = talentTable.Name,
|
||||
set = f.OnRadioCheckboxClick,
|
||||
param = talentTable.ID,
|
||||
get = function() return f.OptionsTable.pvptalent [talentTable.ID] or f.OptionsTable.pvptalent [talentTable.ID .. ""] end,
|
||||
texture = talentTable.Texture,
|
||||
})
|
||||
end
|
||||
local pvpTalentGroup = DF:CreateRadionGroup (f, pvpTalentList, name, {width = 200, height = 200, title = "Characer PvP Talents"}, {offset_x = 150, amount_per_line = 3})
|
||||
pvpTalentGroup:SetPoint ("topleft", f, "topleft", anchorPositions.pvptalent [1], anchorPositions.pvptalent [2])
|
||||
pvpTalentGroup.DBKey = "pvptalent"
|
||||
tinsert (f.AllRadioGroups, pvpTalentGroup)
|
||||
f.PvPTalentGroup = pvpTalentGroup
|
||||
|
||||
local buildTalentMenu = function()
|
||||
local playerTalents = DF:GetCharacterPvPTalents()
|
||||
local indexedTalents = {}
|
||||
for _, talentTable in ipairs (playerTalents) do
|
||||
tinsert (indexedTalents, talentTable.ID)
|
||||
do
|
||||
--create a frame to show talents selected in other specs or characters
|
||||
local otherTalents = CreateFrame ("frame", nil, f, "BackdropTemplate")
|
||||
otherTalents:SetSize (26, 26)
|
||||
otherTalents:SetPoint ("left", pvpTalentGroup.Title.widget, "right", 10, -2)
|
||||
otherTalents.Texture = DF:CreateImage (otherTalents, [[Interface\BUTTONS\AdventureGuideMicrobuttonAlert]], 24, 24)
|
||||
otherTalents.Texture:SetAllPoints()
|
||||
|
||||
local removeTalent = function (_, _, talentID)
|
||||
f.OptionsTable.pvptalent [talentID] = nil
|
||||
GameCooltip2:Hide()
|
||||
f.OnRadioStateChanged (pvpTalentGroup, f.OptionsTable [pvpTalentGroup.DBKey])
|
||||
f.CanShowPvPTalentWarning()
|
||||
end
|
||||
|
||||
--talents selected to load
|
||||
GameCooltip2:AddLine ("select a talent to remove it (added from a different spec or character)", "", 1, "orange", "orange", 9)
|
||||
GameCooltip2:AddLine ("$div", nil, nil, -1, -1)
|
||||
|
||||
for talentID, _ in pairs (f.OptionsTable.pvptalent) do
|
||||
if (type (talentID) == "number" and not DF.table.find (indexedTalents, talentID)) then
|
||||
local _, name, texture = GetPvpTalentInfoByID (talentID)
|
||||
if (name) then
|
||||
GameCooltip2:AddLine (name)
|
||||
GameCooltip2:AddIcon (texture, 1, 1, 16, 16, .1, .9, .1, .9)
|
||||
GameCooltip2:AddMenu (1, removeTalent, talentID)
|
||||
local buildTalentMenu = function()
|
||||
local playerTalents = DF:GetCharacterPvPTalents()
|
||||
local indexedTalents = {}
|
||||
for _, talentTable in ipairs (playerTalents) do
|
||||
tinsert (indexedTalents, talentTable.ID)
|
||||
end
|
||||
|
||||
--talents selected to load
|
||||
GameCooltip2:AddLine ("select a talent to remove it (added from a different spec or character)", "", 1, "orange", "orange", 9)
|
||||
GameCooltip2:AddLine ("$div", nil, nil, -1, -1)
|
||||
|
||||
for talentID, _ in pairs (f.OptionsTable.pvptalent) do
|
||||
if (type (talentID) == "number" and not DF.table.find (indexedTalents, talentID)) then
|
||||
local _, name, texture = GetPvpTalentInfoByID (talentID)
|
||||
if (name) then
|
||||
GameCooltip2:AddLine (name)
|
||||
GameCooltip2:AddIcon (texture, 1, 1, 16, 16, .1, .9, .1, .9)
|
||||
GameCooltip2:AddMenu (1, removeTalent, talentID)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
otherTalents.CoolTip = {
|
||||
Type = "menu",
|
||||
BuildFunc = buildTalentMenu,
|
||||
OnEnterFunc = function (self) end,
|
||||
OnLeaveFunc = function (self) end,
|
||||
FixedValue = "none",
|
||||
ShowSpeed = 0.05,
|
||||
Options = function()
|
||||
GameCooltip2:SetOption ("TextFont", "Friz Quadrata TT")
|
||||
GameCooltip2:SetOption ("TextColor", "orange")
|
||||
GameCooltip2:SetOption ("TextSize", 12)
|
||||
GameCooltip2:SetOption ("FixedWidth", 220)
|
||||
GameCooltip2:SetOption ("ButtonsYMod", -4)
|
||||
GameCooltip2:SetOption ("YSpacingMod", -4)
|
||||
GameCooltip2:SetOption ("IgnoreButtonAutoHeight", true)
|
||||
|
||||
GameCooltip2:SetColor (1, 0.5, 0.5, 0.5, 0)
|
||||
|
||||
local preset2_backdrop = {edgeFile = [[Interface\Buttons\WHITE8X8]], edgeFile = [[Interface\Buttons\WHITE8X8]], tile = true, edgeSize = 1, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}}
|
||||
local gray_table = {0.37, 0.37, 0.37, 0.95}
|
||||
local black_table = {0.2, 0.2, 0.2, 1}
|
||||
GameCooltip2:SetBackdrop (1, preset2_backdrop, gray_table, black_table)
|
||||
GameCooltip2:SetBackdrop (2, preset2_backdrop, gray_table, black_table)
|
||||
end,
|
||||
}
|
||||
GameCooltip2:CoolTipInject (otherTalents)
|
||||
|
||||
otherTalents.CoolTip = {
|
||||
Type = "menu",
|
||||
BuildFunc = buildTalentMenu,
|
||||
OnEnterFunc = function (self) end,
|
||||
OnLeaveFunc = function (self) end,
|
||||
FixedValue = "none",
|
||||
ShowSpeed = 0.05,
|
||||
Options = function()
|
||||
GameCooltip2:SetOption ("TextFont", "Friz Quadrata TT")
|
||||
GameCooltip2:SetOption ("TextColor", "orange")
|
||||
GameCooltip2:SetOption ("TextSize", 12)
|
||||
GameCooltip2:SetOption ("FixedWidth", 220)
|
||||
GameCooltip2:SetOption ("ButtonsYMod", -4)
|
||||
GameCooltip2:SetOption ("YSpacingMod", -4)
|
||||
GameCooltip2:SetOption ("IgnoreButtonAutoHeight", true)
|
||||
|
||||
GameCooltip2:SetColor (1, 0.5, 0.5, 0.5, 0)
|
||||
|
||||
local preset2_backdrop = {edgeFile = [[Interface\Buttons\WHITE8X8]], edgeFile = [[Interface\Buttons\WHITE8X8]], tile = true, edgeSize = 1, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}}
|
||||
local gray_table = {0.37, 0.37, 0.37, 0.95}
|
||||
local black_table = {0.2, 0.2, 0.2, 1}
|
||||
GameCooltip2:SetBackdrop (1, preset2_backdrop, gray_table, black_table)
|
||||
GameCooltip2:SetBackdrop (2, preset2_backdrop, gray_table, black_table)
|
||||
end,
|
||||
}
|
||||
GameCooltip2:CoolTipInject (otherTalents)
|
||||
|
||||
function f.CanShowPvPTalentWarning()
|
||||
local playerTalents = DF:GetCharacterPvPTalents()
|
||||
local indexedTalents = {}
|
||||
for _, talentTable in ipairs (playerTalents) do
|
||||
tinsert (indexedTalents, talentTable.ID)
|
||||
end
|
||||
for talentID, _ in pairs (f.OptionsTable.pvptalent) do
|
||||
if (type (talentID) == "number" and not DF.table.find (indexedTalents, talentID)) then
|
||||
otherTalents:Show()
|
||||
return
|
||||
function f.CanShowPvPTalentWarning()
|
||||
local playerTalents = DF:GetCharacterPvPTalents()
|
||||
local indexedTalents = {}
|
||||
for _, talentTable in ipairs (playerTalents) do
|
||||
tinsert (indexedTalents, talentTable.ID)
|
||||
end
|
||||
for talentID, _ in pairs (f.OptionsTable.pvptalent) do
|
||||
if (type (talentID) == "number" and not DF.table.find (indexedTalents, talentID)) then
|
||||
otherTalents:Show()
|
||||
return
|
||||
end
|
||||
end
|
||||
otherTalents:Hide()
|
||||
end
|
||||
otherTalents:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -6576,23 +6582,25 @@ function DF:OpenLoadConditionsPanel (optionsTable, callback, frameOptions)
|
||||
tinsert (f.AllRadioGroups, roleTypesGroup)
|
||||
|
||||
--create radio group for mythic+ affixes
|
||||
local affixes = {}
|
||||
for i = 2, 1000 do
|
||||
local affixName, desc, texture = C_ChallengeMode.GetAffixInfo (i)
|
||||
if (affixName) then
|
||||
tinsert (affixes, {
|
||||
name = affixName,
|
||||
set = f.OnRadioCheckboxClick,
|
||||
param = i,
|
||||
get = function() return f.OptionsTable.affix [i] or f.OptionsTable.affix [i .. ""] end,
|
||||
texture = texture,
|
||||
})
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
local affixes = {}
|
||||
for i = 2, 1000 do
|
||||
local affixName, desc, texture = C_ChallengeMode.GetAffixInfo (i)
|
||||
if (affixName) then
|
||||
tinsert (affixes, {
|
||||
name = affixName,
|
||||
set = f.OnRadioCheckboxClick,
|
||||
param = i,
|
||||
get = function() return f.OptionsTable.affix [i] or f.OptionsTable.affix [i .. ""] end,
|
||||
texture = texture,
|
||||
})
|
||||
end
|
||||
end
|
||||
local affixTypesGroup = DF:CreateRadionGroup (f, affixes, name, {width = 200, height = 200, title = "M+ Affixes"})
|
||||
affixTypesGroup:SetPoint ("topleft", f, "topleft", anchorPositions.affix [1], anchorPositions.affix [2])
|
||||
affixTypesGroup.DBKey = "affix"
|
||||
tinsert (f.AllRadioGroups, affixTypesGroup)
|
||||
end
|
||||
local affixTypesGroup = DF:CreateRadionGroup (f, affixes, name, {width = 200, height = 200, title = "M+ Affixes"})
|
||||
affixTypesGroup:SetPoint ("topleft", f, "topleft", anchorPositions.affix [1], anchorPositions.affix [2])
|
||||
affixTypesGroup.DBKey = "affix"
|
||||
tinsert (f.AllRadioGroups, affixTypesGroup)
|
||||
|
||||
--text entries functions
|
||||
local textEntryRefresh = function (self)
|
||||
@@ -6644,7 +6652,7 @@ function DF:OpenLoadConditionsPanel (optionsTable, callback, frameOptions)
|
||||
tinsert (f.AllTextEntries, mapIDEditbox)
|
||||
|
||||
function f.Refresh (self)
|
||||
do
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
--update the talents (might have changed if the player changed its specialization)
|
||||
local talentList = {}
|
||||
for _, talentTable in ipairs (DF:GetCharacterTalents()) do
|
||||
@@ -6659,7 +6667,7 @@ function DF:OpenLoadConditionsPanel (optionsTable, callback, frameOptions)
|
||||
DetailsFrameworkLoadConditionsPanel.TalentGroup:SetOptions (talentList)
|
||||
end
|
||||
|
||||
do
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
local pvpTalentList = {}
|
||||
for _, talentTable in ipairs (DF:GetCharacterPvPTalents()) do
|
||||
tinsert (pvpTalentList, {
|
||||
@@ -6684,8 +6692,10 @@ function DF:OpenLoadConditionsPanel (optionsTable, callback, frameOptions)
|
||||
textEntry:Refresh()
|
||||
end
|
||||
|
||||
DetailsFrameworkLoadConditionsPanel.CanShowTalentWarning()
|
||||
DetailsFrameworkLoadConditionsPanel.CanShowPvPTalentWarning()
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
DetailsFrameworkLoadConditionsPanel.CanShowTalentWarning()
|
||||
DetailsFrameworkLoadConditionsPanel.CanShowPvPTalentWarning()
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -8320,11 +8330,12 @@ DF.CastFrameFunctions = {
|
||||
|
||||
UNIT_SPELLCAST_START = function (self, unit)
|
||||
|
||||
local name, text, texture, startTime, endTime, isTradeSkill, castID, notInterruptible, spellID = UnitCastingInfo (unit)
|
||||
local name, text, texture, startTime, endTime, isTradeSkill, castID, notInterruptible, spellID
|
||||
if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then
|
||||
name, text, texture, startTime, endTime, isTradeSkill, castID, notInterruptible, spellID = UnitCastingInfo (unit)
|
||||
else
|
||||
name, text, texture, startTime, endTime, isTradeSkill, castID, spellID = UnitCastingInfo (unit)
|
||||
notInterruptible = false
|
||||
end
|
||||
|
||||
--> is valid?
|
||||
|
||||
+286
-3
@@ -472,7 +472,7 @@ DF.CooldownsBySpec = {
|
||||
|
||||
},
|
||||
--restoration
|
||||
[263] = {
|
||||
[264] = {
|
||||
[108271] = 2, --Astral Shift
|
||||
[114052] = 2, --Ascendance (talent)
|
||||
[98008] = 4, --Spirit Link Totem
|
||||
@@ -485,6 +485,210 @@ DF.CooldownsBySpec = {
|
||||
},
|
||||
}
|
||||
|
||||
--additional CDs / modifications for classic
|
||||
if (WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE) then
|
||||
--WARRIOR
|
||||
--Arms
|
||||
DF.CooldownsBySpec[71][12292] = 1 --Death Wish (BCC)
|
||||
|
||||
--ROGUE
|
||||
--Outlaw
|
||||
DF.CooldownsBySpec[260][13877] = 1 --Blade Flurry (talent) (BBC)
|
||||
|
||||
--MAGE
|
||||
--fire
|
||||
DF.CooldownsBySpec[63][28682] = 1 --Combustion (talent) (BCC)
|
||||
|
||||
--HUNTER
|
||||
--marksmanship
|
||||
DF.CooldownsBySpec[254][3045] = 1 --Rapid Fire (BCC)
|
||||
DF.CooldownsBySpec[254][34471] = 1 --The Beast Within (talent) (BCC)
|
||||
|
||||
--auto-generated spell-ranks
|
||||
--SHAMAN - 262
|
||||
--SHAMAN - 263
|
||||
--SHAMAN - 264
|
||||
|
||||
--WARRIOR - 71
|
||||
--WARRIOR - 72
|
||||
--WARRIOR - 73
|
||||
|
||||
--HUNTER - 253
|
||||
--HUNTER - 254
|
||||
--HUNTER - 255
|
||||
|
||||
--MAGE - 62
|
||||
--MAGE - 63
|
||||
--MAGE - 64
|
||||
DF.CooldownsBySpec[64][13031] = 5 --ice barrier Rank 2
|
||||
DF.CooldownsBySpec[64][13032] = 5 --ice barrier Rank 3
|
||||
DF.CooldownsBySpec[64][13033] = 5 --ice barrier Rank 4
|
||||
DF.CooldownsBySpec[64][27134] = 5 --ice barrier Rank 5
|
||||
DF.CooldownsBySpec[64][33405] = 5 --ice barrier Rank 6
|
||||
|
||||
--PALADIN - 65
|
||||
DF.CooldownsBySpec[65][1020] = 2 --divine shield Rank 2
|
||||
DF.CooldownsBySpec[65][2800] = 3 --lay on hands Rank 2
|
||||
DF.CooldownsBySpec[65][9257] = 3 --lay on hands Rank 2
|
||||
DF.CooldownsBySpec[65][10310] = 3 --lay on hands Rank 3
|
||||
DF.CooldownsBySpec[65][20236] = 3 --lay on hands Rank 2
|
||||
DF.CooldownsBySpec[65][27154] = 3 --lay on hands Rank 4
|
||||
DF.CooldownsBySpec[65][5588] = 5 --hammer of justice Rank 2
|
||||
DF.CooldownsBySpec[65][5589] = 5 --hammer of justice Rank 3
|
||||
DF.CooldownsBySpec[65][10308] = 5 --hammer of justice Rank 4
|
||||
DF.CooldownsBySpec[65][20729] = 3 --blessing of sacrifice Rank 2
|
||||
DF.CooldownsBySpec[65][27147] = 3 --blessing of sacrifice Rank 3
|
||||
DF.CooldownsBySpec[65][27148] = 3 --blessing of sacrifice Rank 4
|
||||
DF.CooldownsBySpec[65][5573] = 2 --divine protection Rank 2
|
||||
DF.CooldownsBySpec[65][5599] = 3 --blessing of protection Rank 2
|
||||
DF.CooldownsBySpec[65][10278] = 3 --blessing of protection Rank 3
|
||||
|
||||
--PALADIN - 66
|
||||
DF.CooldownsBySpec[66][31851] = 2 --ardent defender Rank 2
|
||||
DF.CooldownsBySpec[66][31852] = 2 --ardent defender Rank 3
|
||||
DF.CooldownsBySpec[66][31853] = 2 --ardent defender Rank 4
|
||||
DF.CooldownsBySpec[66][31854] = 2 --ardent defender Rank 5
|
||||
DF.CooldownsBySpec[66][20729] = 3 --blessing of sacrifice Rank 2
|
||||
DF.CooldownsBySpec[66][27147] = 3 --blessing of sacrifice Rank 3
|
||||
DF.CooldownsBySpec[66][27148] = 3 --blessing of sacrifice Rank 4
|
||||
DF.CooldownsBySpec[66][5588] = 5 --hammer of justice Rank 2
|
||||
DF.CooldownsBySpec[66][5589] = 5 --hammer of justice Rank 3
|
||||
DF.CooldownsBySpec[66][10308] = 5 --hammer of justice Rank 4
|
||||
DF.CooldownsBySpec[66][5599] = 3 --blessing of protection Rank 2
|
||||
DF.CooldownsBySpec[66][10278] = 3 --blessing of protection Rank 3
|
||||
|
||||
--PALADIN - 70
|
||||
DF.CooldownsBySpec[70][1020] = 2 --divine shield Rank 2
|
||||
DF.CooldownsBySpec[70][2800] = 3 --lay on hands Rank 2
|
||||
DF.CooldownsBySpec[70][9257] = 3 --lay on hands Rank 2
|
||||
DF.CooldownsBySpec[70][10310] = 3 --lay on hands Rank 3
|
||||
DF.CooldownsBySpec[70][20236] = 3 --lay on hands Rank 2
|
||||
DF.CooldownsBySpec[70][27154] = 3 --lay on hands Rank 4
|
||||
DF.CooldownsBySpec[70][5588] = 5 --hammer of justice Rank 2
|
||||
DF.CooldownsBySpec[70][5589] = 5 --hammer of justice Rank 3
|
||||
DF.CooldownsBySpec[70][10308] = 5 --hammer of justice Rank 4
|
||||
DF.CooldownsBySpec[70][5599] = 3 --blessing of protection Rank 2
|
||||
DF.CooldownsBySpec[70][10278] = 3 --blessing of protection Rank 3
|
||||
DF.CooldownsBySpec[70][20729] = 3 --blessing of sacrifice Rank 2
|
||||
DF.CooldownsBySpec[70][27147] = 3 --blessing of sacrifice Rank 3
|
||||
DF.CooldownsBySpec[70][27148] = 3 --blessing of sacrifice Rank 4
|
||||
|
||||
--PRIEST - 256
|
||||
DF.CooldownsBySpec[256][8124] = 5 --psychic scream Rank 2
|
||||
DF.CooldownsBySpec[256][10888] = 5 --psychic scream Rank 3
|
||||
DF.CooldownsBySpec[256][10890] = 5 --psychic scream Rank 4
|
||||
DF.CooldownsBySpec[256][27610] = 5 --psychic scream Rank 4
|
||||
DF.CooldownsBySpec[256][19236] = 5 --desperate prayer Rank 2
|
||||
DF.CooldownsBySpec[256][19238] = 5 --desperate prayer Rank 3
|
||||
DF.CooldownsBySpec[256][19240] = 5 --desperate prayer Rank 4
|
||||
DF.CooldownsBySpec[256][19241] = 5 --desperate prayer Rank 5
|
||||
DF.CooldownsBySpec[256][19242] = 5 --desperate prayer Rank 6
|
||||
DF.CooldownsBySpec[256][19243] = 5 --desperate prayer Rank 7
|
||||
DF.CooldownsBySpec[256][25437] = 5 --desperate prayer Rank 8
|
||||
|
||||
--PRIEST - 257
|
||||
DF.CooldownsBySpec[257][2052] = 5 --lesser heal Rank 2
|
||||
DF.CooldownsBySpec[257][2053] = 5 --lesser heal Rank 3
|
||||
DF.CooldownsBySpec[257][34863] = 5 --circle of healing Rank 2
|
||||
DF.CooldownsBySpec[257][34864] = 5 --circle of healing Rank 3
|
||||
DF.CooldownsBySpec[257][34865] = 5 --circle of healing Rank 4
|
||||
DF.CooldownsBySpec[257][34866] = 5 --circle of healing Rank 5
|
||||
DF.CooldownsBySpec[257][8124] = 5 --psychic scream Rank 2
|
||||
DF.CooldownsBySpec[257][10888] = 5 --psychic scream Rank 3
|
||||
DF.CooldownsBySpec[257][10890] = 5 --psychic scream Rank 4
|
||||
DF.CooldownsBySpec[257][27610] = 5 --psychic scream Rank 4
|
||||
DF.CooldownsBySpec[257][19236] = 5 --desperate prayer Rank 2
|
||||
DF.CooldownsBySpec[257][19238] = 5 --desperate prayer Rank 3
|
||||
DF.CooldownsBySpec[257][19240] = 5 --desperate prayer Rank 4
|
||||
DF.CooldownsBySpec[257][19241] = 5 --desperate prayer Rank 5
|
||||
DF.CooldownsBySpec[257][19242] = 5 --desperate prayer Rank 6
|
||||
DF.CooldownsBySpec[257][19243] = 5 --desperate prayer Rank 7
|
||||
DF.CooldownsBySpec[257][25437] = 5 --desperate prayer Rank 8
|
||||
|
||||
--PRIEST - 258
|
||||
DF.CooldownsBySpec[258][8124] = 5 --psychic scream Rank 2
|
||||
DF.CooldownsBySpec[258][10888] = 5 --psychic scream Rank 3
|
||||
DF.CooldownsBySpec[258][10890] = 5 --psychic scream Rank 4
|
||||
DF.CooldownsBySpec[258][27610] = 5 --psychic scream Rank 4
|
||||
DF.CooldownsBySpec[258][19236] = 5 --desperate prayer Rank 2
|
||||
DF.CooldownsBySpec[258][19238] = 5 --desperate prayer Rank 3
|
||||
DF.CooldownsBySpec[258][19240] = 5 --desperate prayer Rank 4
|
||||
DF.CooldownsBySpec[258][19241] = 5 --desperate prayer Rank 5
|
||||
DF.CooldownsBySpec[258][19242] = 5 --desperate prayer Rank 6
|
||||
DF.CooldownsBySpec[258][19243] = 5 --desperate prayer Rank 7
|
||||
DF.CooldownsBySpec[258][25437] = 5 --desperate prayer Rank 8
|
||||
|
||||
--ROGUE - 259
|
||||
DF.CooldownsBySpec[259][1857] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[259][11329] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[259][26888] = 2 --vanish Rank 3
|
||||
DF.CooldownsBySpec[259][26889] = 2 --vanish Rank 3
|
||||
DF.CooldownsBySpec[259][27617] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[259][26669] = 2 --evasion Rank 2
|
||||
|
||||
--ROGUE - 260
|
||||
DF.CooldownsBySpec[260][1857] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[260][11329] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[260][26888] = 2 --vanish Rank 3
|
||||
DF.CooldownsBySpec[260][26889] = 2 --vanish Rank 3
|
||||
DF.CooldownsBySpec[260][27617] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[260][26669] = 2 --evasion Rank 2
|
||||
|
||||
--ROGUE - 261
|
||||
DF.CooldownsBySpec[261][1857] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[261][11329] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[261][26888] = 2 --vanish Rank 3
|
||||
DF.CooldownsBySpec[261][26889] = 2 --vanish Rank 3
|
||||
DF.CooldownsBySpec[261][27617] = 2 --vanish Rank 2
|
||||
DF.CooldownsBySpec[261][26669] = 2 --evasion Rank 2
|
||||
|
||||
--WARLOCK - 265
|
||||
DF.CooldownsBySpec[265][30413] = 5 --shadowfury Rank 2
|
||||
DF.CooldownsBySpec[265][30414] = 5 --shadowfury Rank 3
|
||||
DF.CooldownsBySpec[265][17928] = 5 --howl of terror Rank 2
|
||||
DF.CooldownsBySpec[265][17925] = 5 --death coil Rank 2
|
||||
DF.CooldownsBySpec[265][17926] = 5 --death coil Rank 3
|
||||
DF.CooldownsBySpec[265][27223] = 5 --death coil Rank 4
|
||||
|
||||
--WARLOCK - 266
|
||||
DF.CooldownsBySpec[266][30413] = 5 --shadowfury Rank 2
|
||||
DF.CooldownsBySpec[266][30414] = 5 --shadowfury Rank 3
|
||||
DF.CooldownsBySpec[266][17928] = 5 --howl of terror Rank 2
|
||||
DF.CooldownsBySpec[266][17925] = 5 --death coil Rank 2
|
||||
DF.CooldownsBySpec[266][17926] = 5 --death coil Rank 3
|
||||
DF.CooldownsBySpec[266][27223] = 5 --death coil Rank 4
|
||||
|
||||
--WARLOCK - 267
|
||||
DF.CooldownsBySpec[267][17925] = 5 --death coil Rank 2
|
||||
DF.CooldownsBySpec[267][17926] = 5 --death coil Rank 3
|
||||
DF.CooldownsBySpec[267][27223] = 5 --death coil Rank 4
|
||||
DF.CooldownsBySpec[267][17928] = 5 --howl of terror Rank 2
|
||||
DF.CooldownsBySpec[267][30413] = 5 --shadowfury Rank 2
|
||||
DF.CooldownsBySpec[267][30414] = 5 --shadowfury Rank 3
|
||||
|
||||
--DRUID - 102
|
||||
DF.CooldownsBySpec[102][1735] = 5 --demoralizing roar Rank 2
|
||||
DF.CooldownsBySpec[102][9490] = 5 --demoralizing roar Rank 3
|
||||
DF.CooldownsBySpec[102][9747] = 5 --demoralizing roar Rank 4
|
||||
DF.CooldownsBySpec[102][9898] = 5 --demoralizing roar Rank 5
|
||||
DF.CooldownsBySpec[102][26998] = 5 --demoralizing roar Rank 6
|
||||
|
||||
--DRUID - 103
|
||||
--DRUID - 104
|
||||
DF.CooldownsBySpec[104][1735] = 5 --demoralizing roar Rank 2
|
||||
DF.CooldownsBySpec[104][9490] = 5 --demoralizing roar Rank 3
|
||||
DF.CooldownsBySpec[104][9747] = 5 --demoralizing roar Rank 4
|
||||
DF.CooldownsBySpec[104][9898] = 5 --demoralizing roar Rank 5
|
||||
DF.CooldownsBySpec[104][26998] = 5 --demoralizing roar Rank 6
|
||||
|
||||
--DRUID - 105
|
||||
DF.CooldownsBySpec[105][8918] = 4 --tranquility Rank 2
|
||||
DF.CooldownsBySpec[105][9862] = 4 --tranquility Rank 3
|
||||
DF.CooldownsBySpec[105][9863] = 4 --tranquility Rank 4
|
||||
DF.CooldownsBySpec[105][26983] = 4 --tranquility Rank 5
|
||||
|
||||
end
|
||||
|
||||
--> tells the duration, requirements and cooldown of a cooldown
|
||||
DF.CooldownsInfo = {
|
||||
--> paladin
|
||||
@@ -812,6 +1016,85 @@ DF.CrowdControlSpells = {
|
||||
[331866] = "COVENANT|VENTHYR", --Agent of Chaos (Nadia soulbind)
|
||||
}
|
||||
|
||||
-- additionals for classic
|
||||
if (WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE) then
|
||||
--auto-generated
|
||||
DF.CrowdControlSpells[18657] = "DRUID" --hibernate Rank 2
|
||||
DF.CrowdControlSpells[18658] = "DRUID" --hibernate Rank 3
|
||||
DF.CrowdControlSpells[6798] = "DRUID" --bash Rank 2
|
||||
DF.CrowdControlSpells[8983] = "DRUID" --bash Rank 3
|
||||
DF.CrowdControlSpells[1062] = "DRUID" --entangling roots Rank 2
|
||||
DF.CrowdControlSpells[5195] = "DRUID" --entangling roots Rank 3
|
||||
DF.CrowdControlSpells[5196] = "DRUID" --entangling roots Rank 4
|
||||
DF.CrowdControlSpells[9852] = "DRUID" --entangling roots Rank 5
|
||||
DF.CrowdControlSpells[9853] = "DRUID" --entangling roots Rank 6
|
||||
DF.CrowdControlSpells[19970] = "DRUID" --entangling roots Rank 6
|
||||
DF.CrowdControlSpells[19971] = "DRUID" --entangling roots Rank 5
|
||||
DF.CrowdControlSpells[19972] = "DRUID" --entangling roots Rank 4
|
||||
DF.CrowdControlSpells[19973] = "DRUID" --entangling roots Rank 3
|
||||
DF.CrowdControlSpells[19974] = "DRUID" --entangling roots Rank 2
|
||||
DF.CrowdControlSpells[26989] = "DRUID" --entangling roots Rank 7
|
||||
DF.CrowdControlSpells[27010] = "DRUID" --entangling roots Rank 7
|
||||
DF.CrowdControlSpells[1735] = "DRUID" --demoralizing roar Rank 2
|
||||
DF.CrowdControlSpells[9490] = "DRUID" --demoralizing roar Rank 3
|
||||
DF.CrowdControlSpells[9747] = "DRUID" --demoralizing roar Rank 4
|
||||
DF.CrowdControlSpells[9898] = "DRUID" --demoralizing roar Rank 5
|
||||
DF.CrowdControlSpells[26998] = "DRUID" --demoralizing roar Rank 6
|
||||
|
||||
DF.CrowdControlSpells[14310] = "HUNTER" --freezing trap Rank 2
|
||||
DF.CrowdControlSpells[14311] = "HUNTER" --freezing trap Rank 3
|
||||
DF.CrowdControlSpells[27753] = "HUNTER" --freezing trap Rank 3
|
||||
DF.CrowdControlSpells[14308] = "HUNTER" --freezing trap effect Rank 2
|
||||
DF.CrowdControlSpells[14309] = "HUNTER" --freezing trap effect Rank 3
|
||||
|
||||
DF.CrowdControlSpells[865] = "MAGE" --frost nova Rank 2
|
||||
DF.CrowdControlSpells[6131] = "MAGE" --frost nova Rank 3
|
||||
DF.CrowdControlSpells[9915] = "MAGE" --frost nova Rank 3
|
||||
DF.CrowdControlSpells[10230] = "MAGE" --frost nova Rank 4
|
||||
DF.CrowdControlSpells[27088] = "MAGE" --frost nova Rank 5
|
||||
DF.CrowdControlSpells[33041] = "MAGE" --dragon's breath Rank 2
|
||||
DF.CrowdControlSpells[33042] = "MAGE" --dragon's breath Rank 3
|
||||
DF.CrowdControlSpells[33043] = "MAGE" --dragon's breath Rank 4
|
||||
DF.CrowdControlSpells[12824] = "MAGE" --polymorph Rank 2
|
||||
DF.CrowdControlSpells[12825] = "MAGE" --polymorph Rank 3
|
||||
DF.CrowdControlSpells[12826] = "MAGE" --polymorph Rank 4
|
||||
DF.CrowdControlSpells[1090] = "MAGE" --sleep Rank 2
|
||||
|
||||
DF.CrowdControlSpells[5588] = "PALADIN" --hammer of justice Rank 2
|
||||
DF.CrowdControlSpells[5589] = "PALADIN" --hammer of justice Rank 3
|
||||
DF.CrowdControlSpells[10308] = "PALADIN" --hammer of justice Rank 4
|
||||
|
||||
DF.CrowdControlSpells[8124] = "PRIEST" --psychic scream Rank 2
|
||||
DF.CrowdControlSpells[10888] = "PRIEST" --psychic scream Rank 3
|
||||
DF.CrowdControlSpells[10890] = "PRIEST" --psychic scream Rank 4
|
||||
DF.CrowdControlSpells[27610] = "PRIEST" --psychic scream Rank 4
|
||||
DF.CrowdControlSpells[9485] = "PRIEST" --shackle undead Rank 2
|
||||
DF.CrowdControlSpells[10955] = "PRIEST" --shackle undead Rank 3
|
||||
DF.CrowdControlSpells[10911] = "PRIEST" --mind control Rank 2
|
||||
DF.CrowdControlSpells[10912] = "PRIEST" --mind control Rank 3
|
||||
|
||||
DF.CrowdControlSpells[1777] = "ROGUE" --gouge Rank 2
|
||||
DF.CrowdControlSpells[8629] = "ROGUE" --gouge Rank 3
|
||||
DF.CrowdControlSpells[11285] = "ROGUE" --gouge Rank 4
|
||||
DF.CrowdControlSpells[11286] = "ROGUE" --gouge Rank 5
|
||||
DF.CrowdControlSpells[38764] = "ROGUE" --gouge Rank 6
|
||||
DF.CrowdControlSpells[2070] = "ROGUE" --sap Rank 2
|
||||
DF.CrowdControlSpells[11297] = "ROGUE" --sap Rank 3
|
||||
DF.CrowdControlSpells[8643] = "ROGUE" --kidney shot Rank 2
|
||||
DF.CrowdControlSpells[27615] = "ROGUE" --kidney shot Rank 2
|
||||
DF.CrowdControlSpells[30621] = "ROGUE" --kidney shot Rank 2
|
||||
|
||||
DF.CrowdControlSpells[17925] = "WARLOCK" --death coil Rank 2
|
||||
DF.CrowdControlSpells[17926] = "WARLOCK" --death coil Rank 3
|
||||
DF.CrowdControlSpells[27223] = "WARLOCK" --death coil Rank 4
|
||||
DF.CrowdControlSpells[18647] = "WARLOCK" --banish Rank 2
|
||||
DF.CrowdControlSpells[30413] = "WARLOCK" --shadowfury Rank 2
|
||||
DF.CrowdControlSpells[30414] = "WARLOCK" --shadowfury Rank 3
|
||||
DF.CrowdControlSpells[6213] = "WARLOCK" --fear Rank 2
|
||||
DF.CrowdControlSpells[6215] = "WARLOCK" --fear Rank 3
|
||||
DF.CrowdControlSpells[17928] = "WARLOCK" --howl of terror Rank 2
|
||||
end
|
||||
|
||||
DF.SpecIds = {
|
||||
[577] = "DEMONHUNTER",
|
||||
[581] = "DEMONHUNTER",
|
||||
@@ -843,7 +1126,7 @@ DF.SpecIds = {
|
||||
|
||||
[262] = "SHAMAN",
|
||||
[263] = "SHAMAN",
|
||||
[254] = "SHAMAN",
|
||||
[264] = "SHAMAN",
|
||||
|
||||
[256] = "PRIEST",
|
||||
[257] = "PRIEST",
|
||||
@@ -958,7 +1241,7 @@ for specId, cooldownTable in pairs (DF.CooldownsBySpec) do
|
||||
|
||||
end
|
||||
|
||||
DF.CooldownToClass [spellId] = DF.SpecIds [spellId]
|
||||
DF.CooldownToClass [spellId] = DF.SpecIds [specId]
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -4,11 +4,13 @@
|
||||
_ = nil
|
||||
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
|
||||
|
||||
local version, build, date, tocversion = GetBuildInfo()
|
||||
|
||||
_detalhes.build_counter = 8501
|
||||
_detalhes.alpha_build_counter = 8501 --if this is higher than the regular counter, use it instead
|
||||
_detalhes.dont_open_news = true
|
||||
_detalhes.game_version = "v9.0.5"
|
||||
_detalhes.userversion = "v9.0.5." .. _detalhes.build_counter
|
||||
_detalhes.game_version = version
|
||||
_detalhes.userversion = version .. _detalhes.build_counter
|
||||
_detalhes.realversion = 144 --core version, this is used to check API version for scripts and plugins (see alias below)
|
||||
_detalhes.APIVersion = _detalhes.realversion --core version
|
||||
_detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" --simple stirng to show to players
|
||||
|
||||
+11
-4
@@ -1678,10 +1678,17 @@ function SlashCmdList.DETAILS (msg, editbox)
|
||||
--print ("|cffffaeae/details " .. Loc ["STRING_SLASH_WORLDBOSS"] .. "|r: " .. Loc ["STRING_SLASH_WORLDBOSS_DESC"])
|
||||
print (" ")
|
||||
|
||||
local v = _detalhes.game_version .. "." .. (_detalhes.build_counter >= _detalhes.alpha_build_counter and _detalhes.build_counter or _detalhes.alpha_build_counter)
|
||||
print (Loc ["STRING_DETAILS1"] .. "|cFFFFFF00DETAILS! VERSION|r: |cFFFFAA00R" .. (_detalhes.build_counter >= _detalhes.alpha_build_counter and _detalhes.build_counter or _detalhes.alpha_build_counter))
|
||||
print (Loc ["STRING_DETAILS1"] .. "|cFFFFFF00GAME VERSION|r: |cFFFFAA00" .. _detalhes.game_version)
|
||||
|
||||
if (DetailsFramework.IsTBCWow()) then
|
||||
--the burning crusade classic
|
||||
local v = _detalhes.game_version .. "." .. (_detalhes.build_counter >= _detalhes.alpha_build_counter and _detalhes.build_counter or _detalhes.alpha_build_counter)
|
||||
print (Loc ["STRING_DETAILS1"] .. "|cFFFFFF00DETAILS! VERSION|r: |cFFFFAA00BCC" .. (_detalhes.build_counter >= _detalhes.alpha_build_counter and _detalhes.build_counter or _detalhes.alpha_build_counter))
|
||||
print (Loc ["STRING_DETAILS1"] .. "|cFFFFFF00GAME VERSION|r: |cFFFFAA00" .. _detalhes.game_version)
|
||||
else
|
||||
--retail
|
||||
local v = _detalhes.game_version .. "." .. (_detalhes.build_counter >= _detalhes.alpha_build_counter and _detalhes.build_counter or _detalhes.alpha_build_counter)
|
||||
print (Loc ["STRING_DETAILS1"] .. "|cFFFFFF00DETAILS! VERSION|r: |cFFFFAA00R" .. (_detalhes.build_counter >= _detalhes.alpha_build_counter and _detalhes.build_counter or _detalhes.alpha_build_counter))
|
||||
print (Loc ["STRING_DETAILS1"] .. "|cFFFFFF00GAME VERSION|r: |cFFFFAA00" .. _detalhes.game_version)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user