diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua index d5443bad..621c685c 100644 --- a/Libs/DF/fw.lua +++ b/Libs/DF/fw.lua @@ -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 diff --git a/Libs/DF/panel.lua b/Libs/DF/panel.lua index 6545a275..5a372dfc 100644 --- a/Libs/DF/panel.lua +++ b/Libs/DF/panel.lua @@ -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? diff --git a/Libs/DF/spells.lua b/Libs/DF/spells.lua index 1fed15a1..622995f4 100644 --- a/Libs/DF/spells.lua +++ b/Libs/DF/spells.lua @@ -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 diff --git a/boot.lua b/boot.lua index aedc2dbe..b38b03d8 100644 --- a/boot.lua +++ b/boot.lua @@ -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 diff --git a/functions/slash.lua b/functions/slash.lua index 2d035ea8..a30fdc45 100644 --- a/functions/slash.lua +++ b/functions/slash.lua @@ -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