slash command now shows the correct game version; framework update

This commit is contained in:
Tercio Jose
2021-05-20 16:14:55 -03:00
parent 35553c00ee
commit 9ea6081abb
5 changed files with 535 additions and 228 deletions
+16 -12
View File
@@ -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
View File
@@ -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
View File
@@ -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 -2
View File
@@ -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
View File
@@ -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