Merge remote-tracking branch 'other/master' into merger-test

This commit is contained in:
Andrew6810
2023-02-13 06:34:39 -07:00
33 changed files with 31880 additions and 35465 deletions
+6 -6
View File
@@ -1,10 +1,10 @@
## Interface: 30300
## Interface: 30300
## Title: AtlasLoot Ascension Edition
## Notes: Shows the possible loot from the bosses
## Author: v7 Rebuid Done by: Anch/Rvng (Original: Hegarol, Ascension: Skray/Szyler/Anch/Rvng)
## Version: v7.1.0
## Author: v7 Rebuid Done by: Anch, Rvng
## Version: v7.2.4
## X-eMail:
## X-Credits: Daviesh, Lag, Cellelach, Asurn, Pernicus and many others.
## X-Credits: Skray, Szyler and others.
## X-Category: Map
## X-License: GPL v2
## X-Website: https://discord.gg/uYCE2X2FgA
@@ -24,8 +24,8 @@
## RealTitle-zhCN: [地图]副本掉落物品查询
## RealTitle-zhTW: [地圖]AL 物品掉落[主程式]
## Notes-ruRU: Отображает весю возможную добычу с боссов
## SavedVariables: AtlasLootOptions, AtlasLootDB, AtlasLootWishList
## SavedVariablesPerCharacter: AtlasLootCharDB, AtlasLootFilterDB
## SavedVariables: AtlasLootOptions, AtlasLootDB, AtlasLootWishList, AtlasLootFilterDB
## SavedVariablesPerCharacter: AtlasLootCharDB
## OptionalDeps: LootLink, ItemSync, DewdropLib, FuBarPlugin-3.0, FuBar, Ace3, LibBabble-Boss-3.0, LibBabble-Faction-3.0, LibBabble-Inventory-3.0, LibBabble-Zone-3.0
embeds.xml
+15 -8
View File
@@ -31,8 +31,9 @@ AtlasLoot_Difficulty = {
};
["ClassicRaid"] = {
{"Normal Flex", 2},
{"Heroic Flex", 3},
{"Normal", 2},
{"Heroic", 3},
{"Mythic", 5},
{"Ascended", 4},
{"Bloodforged", 1},
};
@@ -52,8 +53,9 @@ AtlasLoot_Difficulty = {
};
["BCRaid"] = {
{"Normal Flex", 2},
{"Heroic Flex", 3},
{"Normal", 2},
{"Heroic", 3},
{"Mythic", 5},
{"Ascended", 4},
{"Bloodforged", 1},
};
@@ -69,9 +71,10 @@ AtlasLoot_Difficulty = {
};
["WrathRaid"] = {
{"Normal Flex", 2},
{"Heroic Flex", 3},
{"Ascended", 4},
{"Normal", 2},
{"Heroic", 3},
{"Mythic", 4},
{"Ascended", 5},
{"Bloodforged", 1},
};
@@ -80,6 +83,10 @@ AtlasLoot_Difficulty = {
{"Item Normal", 2 },
{"Bloodforged", 1 },
};
["CraftingNoBF"] = {
{"Crafting Patterns", "Pattern" },
{"Item Normal", 2 },
};
["Search"] = {
{"Bloodforged", 1},
@@ -122,7 +129,7 @@ function AtlasLoot_Difficulty:getMaxDifficulty(difficultyKey)
elseif (difficultyKey == "ClassicDungeonExt" or difficultyKey == "BCDungeon" or difficultyKey == "WrathDungeon") then
return 44;
elseif (difficultyKey == "ClassicRaid" or difficultyKey == "BCRaid" or difficultyKey == "WrathRaid") then
return 4;
return 5;
else
return 0;
end
+101 -94
View File
@@ -14,7 +14,6 @@ AtlasLoot_OnLoad()
AtlasLoot:ShowItemsFrame()
AtlasLoot:NavButton_OnClick()
AtlasLoot:IsLootTableAvailable(dataID)
AtlasLoot:GetLODModule(dataSource)
AtlasLoot:LoadAllModules()
AtlasLoot:ShowQuickLooks(button)
AtlasLoot:RefreshQuickLookButtons()
@@ -52,6 +51,7 @@ ATLASLOOT_DEBUGSHOWN = false;
ATLASLOOT_FILTER_ENABLE = false;
ATLASLOOT_CURRENTTYPE = "Default";
ATLASLOOT_TYPE = {};
ATLASLOOT_BACKENABLED = false;
-- Colours stored for code readability
local GREY = "|cff999999";
@@ -132,7 +132,10 @@ function AtlasLoot:OnEnable()
AtlasLoot.db:RegisterDefaults(AtlasLootDBDefaults);
if not AtlasLootCharDB then AtlasLootCharDB = {} end
if not AtlasLootCharDB["QuickLooks"] then AtlasLootCharDB["QuickLooks"] = {} end
if not AtlasLootCharDB.SelectedFilter then AtlasLootCharDB.SelectedFilter = 1 end
if not AtlasLootCharDB["SearchResult"] then AtlasLootCharDB["SearchResult"] = {Name = "Search Result" , Type = "Search", Back = true}; end
if not AtlasLootFilterDB then AtlasLootFilterDB = {["FilterLists"] = {{Name = "Default" }}} end;
if AtlasLootFilterDB and not AtlasLootFilterDB["FilterLists"] then AtlasLootFilterDB = {["FilterLists"] = {{Name = "Default" }}} end;
if AtlasLoot_Data then
AtlasLoot_Data["EmptyTable"] = {
Name = AL["Select a Loot Table..."];
@@ -220,7 +223,6 @@ function AtlasLoot:OnEnable()
panel.name=AL["AtlasLoot"];
InterfaceOptions_AddCategory(panel);
--Filter and wishlist options menus creates as part of the next 2 commands
AtlasLoot_CreateFilterOptions();
AtlasLoot_CreateWishlistOptions();
panel = _G["AtlasLootHelpFrame"];
panel.name=AL["Help"];
@@ -231,11 +233,13 @@ function AtlasLoot:OnEnable()
end
AtlasLoot_UpdateLootBrowserScale();
local playerName = UnitName("player");
-- Is wishlist item disabled on load or not
if AtlasLootWishList["Options"][playerName]["AutoSortWishlist"] then
AtlasLootItemsFrame_Wishlist_UnLock:Disable();
else
AtlasLootItemsFrame_Wishlist_UnLock:Enable();
end
AtlasLoot:LoadItemIDsDatabase();
end
function AtlasLoot_Reset(data)
@@ -328,11 +332,9 @@ function AtlasLoot:OnInitialize()
end
--Sets the default loot tables for the current expansion enabled on the server.
local function getExpac()
local xpaclist = {"CLASSIC", "TBC", "WRATH"};
AtlasLoot_Expac = xpaclist[GetAccountExpansionLevel()+1];
end
getExpac();
local xpaclist = {"CLASSIC", "TBC", "WRATH"};
AtlasLoot_Expac = xpaclist[GetAccountExpansionLevel()+1];
end
function AtlasLoot:CleandataID(newID, listnum)
@@ -371,30 +373,33 @@ function AtlasLoot:CreateToken(dataID)
[1] = { Name = itemName };
};
end
local count = #AtlasLoot_Data[dataID][1] * #AtlasLoot_Data[dataID];
local function addItem(itemID, v, t)
if itemType == select(9, GetItemInfo(itemID)) or itemType2 == select(9, GetItemInfo(itemID)) then
table.insert(AtlasLoot_TokenData[orgID][1], {#AtlasLoot_TokenData[orgID][1] + 1, v[2], v[3], v[4], t.Name});
end
if count == 1 then
AtlasLoot:ShowItemsFrame(AtlasLootItemsFrame.refresh[1], AtlasLootItemsFrame.refresh[2], AtlasLootItemsFrame.refresh[3]);
end
count = count - 1;
end
--Fills table with items
for n, t in ipairs(AtlasLoot_Data[dataID]) do
for c, v in ipairs(t) do
if type(v) == "table" then
local item = Item:CreateFromID(v[2]);
item:ContinueOnLoad(function(itemID)
if itemType == select(9, GetItemInfo(itemID)) or itemType2 == select(9, GetItemInfo(itemID)) then
table.insert(AtlasLoot_TokenData[orgID][1], {#AtlasLoot_TokenData[orgID][1] + 1, v[2], v[3], v[4], t.Name});
end
if #t == n then
AtlasLoot:CancelTimer(AtlasLoot.refreshTimer);
AtlasLoot.refreshTimer = AtlasLoot:ScheduleTimer("Refresh", 2);
end
end)
if GetItemInfo(v[2]) then
addItem(v[2], v, t)
else
local item = Item:CreateFromID(v[2]);
item:ContinueOnLoad(function(itemID)
addItem(itemID, v, t)
end)
end
end
end
end
end
-- Refresh loottable after token table creation.
function AtlasLoot:Refresh()
AtlasLoot:ShowItemsFrame(AtlasLootItemsFrame.refresh[1], AtlasLootItemsFrame.refresh[2], AtlasLootItemsFrame.refresh[3]);
end
--[[
AtlasLoot:ShowItemsFrame(dataID, dataSource, tablenum):
dataID - Name of the loot table
@@ -424,6 +429,8 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
--Ditch the Quicklook selector
AtlasLootQuickLooksButton:Hide();
AtlasLoot:HideFilterCreateButtons();
--Hide Map and reshow lootbackground
AtlasLootDefaultFrame_Map:Hide();
AtlasLootDefaultFrame_LootBackground:Show();
@@ -465,9 +472,9 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
local difType = false;
-- Checks to see if type is the same
if ATLASLOOT_CURRENTTYPE ~= dataSource[dataID].Type then
if dataSource[dataID].Type == "Crafting" then
if dataSource[dataID].Type == "Crafting" or dataSource[dataID].Type == "CraftingNoBF" then
ItemindexID = "Pattern";
elseif ItemindexID == "Pattern" and dataSource[dataID].Type ~= "Crafting" then
elseif (ItemindexID == "Pattern" and dataSource[dataID].Type ~= "Crafting") or (ItemindexID == "Pattern" and dataSource[dataID].Type ~= "CraftingNoBF") then
ItemindexID = 2;
else
ItemindexID = ATLASLOOT_TYPE[dataSource[dataID].Type] or 2;
@@ -556,11 +563,11 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
toShow = false;
end
end
IDfound = AtlasLoot:FindId(item[2], min(AtlasLoot_Difficulty:getMaxDifficulty(dataSource[dataID].Type), itemDif)) or item[2];
IDfound = AtlasLoot:FindId(item[2], min(AtlasLoot_Difficulty:getMaxDifficulty(dataSource[dataID].Type), itemDif),dataSource[dataID].Type) or item[2];
end
if string.sub(IDfound, 1, 1) == "s" then
IDfound = AtlasLoot:FindId(item[2], itemDif) or item[2];
IDfound = AtlasLoot:FindId(item[2], itemDif, dataSource[dataID].Type) or item[2];
else
isItem = true;
end
@@ -574,10 +581,10 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
if tonumber(item[AtlasLoot_Difficulty.MAX_DIF]) < itemDif then itemDif = item[AtlasLoot_Difficulty.MAX_DIF] end;
end
--If something was found in itemID database show that if not show default table item
IDfound = AtlasLoot:FindId(item[2], itemDif) or item[2];
IDfound = AtlasLoot:FindId(item[2], itemDif, dataSource[dataID].Type) or item[2];
if ItemindexID ~= "" and dataID == "SearchResult" then
IDfound = AtlasLoot:FindId(item[9], itemDif) or item[2];
IDfound = AtlasLoot:FindId(item[9], itemDif, dataSource[dataID].Type) or item[2];
end
end
end
@@ -688,7 +695,7 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
extraFrame:Show();
--For convenience, we store information about the objects in the objects so that it can be easily accessed later
if((string.sub(IDfound, 1, 1) == "s") and (ItemindexID ~= "Pattern") and (tonumber(dataSource[dataID][tablenum][i][3]))) then
IDfound = AtlasLoot:FindId(tonumber(dataSource[dataID][tablenum][i][3]), ItemindexID) or tonumber(dataSource[dataID][tablenum][i][3]);
IDfound = AtlasLoot:FindId(tonumber(dataSource[dataID][tablenum][i][3]), ItemindexID, dataSource[dataID].Type) or tonumber(dataSource[dataID][tablenum][i][3]);
itemButton.itemID = IDfound;
itemButton.spellitemID = dataSource[dataID][tablenum][i][3];
else
@@ -723,8 +730,10 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
if (dataID == "SearchResult" or dataSource_backup == "AtlasLoot_CurrentWishList") and dataSource[dataID][tablenum][i][8] then
itemButton.sourcePage = dataSource[dataID][tablenum][i][8];
elseif dataSource[dataID][tablenum][i][8] ~= nil and dataSource[dataID][tablenum][i][8]:match("=LT=") then
elseif dataSource[dataID][tablenum][i][8] ~= nil and dataSource[dataID][tablenum][i][8]:match("=TT=") then
itemButton.sourcePage = string.sub(dataSource[dataID][tablenum][i][8], 5);
elseif dataSource[dataID][tablenum][i][8] ~= nil and dataSource[dataID][tablenum][i][8]:match("=LT=") then
itemButton.sourcePage = dataSource[dataID][tablenum][i][8];
else
itemButton.sourcePage = nil;
end
@@ -753,7 +762,8 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
end
if dataSource_backup ~= "AtlasLoot_CurrentWishList" and dataID ~= "FilterList" and dataSource[dataID].Back ~= true and dataID ~= "EmptyTable" then
AtlasLoot.db.profile.LastBoss = {dataID, dataSource_backup, tablenum, ATLASLOOT_LASTMODULE, ATLASLOOT_CURRENTTABLE};
if not AtlasLoot.db.profile.LastBoss or type(AtlasLoot.db.profile.LastBoss) ~= "table" then AtlasLoot.db.profile.LastBoss = {} end;
AtlasLoot.db.profile.LastBoss[AtlasLoot_Expac] = {dataID, dataSource_backup, tablenum, ATLASLOOT_LASTMODULE, ATLASLOOT_CURRENTTABLE};
AtlasLoot.db.profile[ATLASLOOT_CURRENTTABLE] = {dataID, dataSource_backup, tablenum, ATLASLOOT_LASTMODULE, ATLASLOOT_CURRENTTABLE};
end
@@ -764,16 +774,18 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
local function filterCheck(find)
local mtype = {"Crafting", "Reputations", "WorldEvents", "PVP", "Collections"}
for m, t in pairs (mtype) do
for i, v in ipairs (AtlasLoot_SubMenus[t..AtlasLoot_Expac]) do
if find == v[2] then
return true;
if AtlasLoot_SubMenus[t..AtlasLoot_Expac] then
for i, v in ipairs (AtlasLoot_SubMenus[t..AtlasLoot_Expac]) do
if find == v[2] then
return true;
end
end
end
end
end
-- Show the Filter Check-Box
if dataID ~= "SearchResult" and filterCheck(dataID) ~= true and dataSource_backup ~= "AtlasLoot_TokenData" and dataSource_backup ~= "AtlasLoot_CurrentWishList" then
if filterCheck(dataID) ~= true then
AtlasLootFilterCheck:Show();
end
@@ -805,7 +817,7 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
tablenum = AtlasLootItemsFrame.refreshOri[3];
end
if AtlasLootItemsFrame.refreshOri and tablenum ~= #_G[AtlasLootItemsFrame.refreshOri[2]][AtlasLootItemsFrame.refreshOri[1]] and dataSource_backup ~= "AtlasLoot_TokenData" then
if AtlasLootItemsFrame.refresh and AtlasLootItemsFrame.refreshOri and tablenum ~= #_G[AtlasLootItemsFrame.refreshOri[2]][AtlasLootItemsFrame.refreshOri[1]] and dataSource_backup ~= "AtlasLoot_TokenData" and dataID ~= "SearchResult" or tablenum ~= #_G[AtlasLootItemsFrame.refresh[2]][AtlasLootItemsFrame.refresh[1]] and dataID == "SearchResult" then
_G["AtlasLootItemsFrame_NEXT"]:Show();
_G["AtlasLootItemsFrame_NEXT"].tablenum = tablenum + 1;
_G["AtlasLootItemsFrame_NEXT"].tablebase = tablebase;
@@ -816,15 +828,17 @@ function AtlasLoot:ShowItemsFrame(dataID, dataSource_backup, tablenum)
_G["AtlasLootItemsFrame_PREV"].tablenum = tablenum - 1;
_G["AtlasLootItemsFrame_PREV"].tablebase = tablebase;
end
if dataSource[dataID].Back then
_G["AtlasLootItemsFrame_BACK"]:Show();
end
if dataSource[dataID].Back or ATLASLOOT_BACKENABLED then
_G["AtlasLootItemsFrame_BACK"]:Show();
elseif dataID ~= "FilterList" then
AtlasLootItemsFrame.refreshBack = {dataID, dataSource_backup, tablenum};
end
end
--Anchor the item frame where it is supposed to be
if ATLASLOOT_FILTER_ENABLE and dataID ~= "FilterList" then
AtlasLoot:HideNoUsableItems();
AtlasLoot:HideFilteredItems();
end
if dataID ~= "SearchResult" then
@@ -850,7 +864,8 @@ AtlasLoot:NavButton_OnClick:
Called when 'Back'Button is pressed and calls up the appropriate loot page
]]
function AtlasLoot:BackButton_OnClick()
AtlasLoot:ShowItemsFrame(AtlasLootItemsFrame.refreshOri[1], AtlasLootItemsFrame.refreshOri[2], AtlasLootItemsFrame.refreshOri[3]);
ATLASLOOT_BACKENABLED = false;
AtlasLoot:ShowItemsFrame(AtlasLootItemsFrame.refreshBack[1], AtlasLootItemsFrame.refreshBack[2], AtlasLootItemsFrame.refreshBack[3]);
end
--[[
@@ -860,7 +875,7 @@ dataID: Loot table dataID
]]
function AtlasLoot:IsLootTableAvailable(dataSource)
local moduleName = nil;
moduleName = AtlasLoot:GetLODModule(dataSource);
moduleName = AtlasLoot.ModuleName[dataSource];
if IsAddOnLoaded(moduleName) then
return true;
else
@@ -868,36 +883,28 @@ function AtlasLoot:IsLootTableAvailable(dataSource)
end
end
--[[
AtlasLoot:GetLODModule(dataSource)
Returns the name of the module that needs to be loaded
dataSource: Location of the loot table
]]
function AtlasLoot:GetLODModule(dataSource)
if (dataSource=="AtlasLootOriginalWoW") then
return "AtlasLoot_OriginalWoW";
elseif (dataSource=="AtlasLootBurningCrusade") then
return "AtlasLoot_BurningCrusade";
elseif (dataSource=="AtlasLootCrafting") then
return "AtlasLoot_Crafting";
elseif (dataSource=="AtlasLootWorldEvents") then
return "AtlasLoot_WorldEvents";
elseif (dataSource=="AtlasLootWotLK") then
return "AtlasLoot_WrathoftheLichKing";
end
end
-- List of Moduel Names
AtlasLoot.ModuleName = {
["AtlasLootOriginalWoW"] = "AtlasLoot_OriginalWoW";
["AtlasLootBurningCrusade"] = "AtlasLoot_BurningCrusade";
["AtlasLootCrafting"] = "AtlasLoot_Crafting";
["AtlasLootWorldEvents"] = "AtlasLoot_WorldEvents";
["AtlasLootWotLK"] = "AtlasLoot_WrathoftheLichKing";
["AtlasLootVanity"] = "AtlasLoot_Vanity"
}
--[[
AtlasLoot:LoadAllModules()
Used to load all available LoD modules
]]
function AtlasLoot:LoadAllModules()
local orig, bc, wotlk, craft, world;
local orig, bc, wotlk, craft, world, vanity;
orig, _ = LoadAddOn("AtlasLoot_OriginalWoW");
bc, _ = LoadAddOn("AtlasLoot_BurningCrusade");
craft, _ = LoadAddOn("AtlasLoot_Crafting");
world, _ = LoadAddOn("AtlasLoot_WorldEvents");
wotlk, _ = LoadAddOn("AtlasLoot_WrathoftheLichKing");
vanity, _ = LoadAddOn("AtlasLoot_Vanity");
local flag=0;
if not orig then
LoadAddOn("AtlasLoot_OriginalWoW");
@@ -919,6 +926,10 @@ function AtlasLoot:LoadAllModules()
LoadAddOn("AtlasLoot_WrathoftheLichKing");
flag=1;
end
if not vanity then
LoadAddOn("AtlasLoot_Vanity");
flag=1;
end
if flag == 1 then
if ATLASLOOT_DEBUGMESSAGES then
DEFAULT_CHAT_FRAME:AddMessage(GREEN..AL["AtlasLoot"]..": "..WHITE..AL["All Available Modules Loaded"]);
@@ -1055,35 +1066,6 @@ function AtlasLoot:QueryLootPage()
queryNextItem(START);
end
--[[
AtlasLoot:QueryLootPage()
Querys all valid items on the current loot page.
]]
function AtlasLoot:QueryLootPageOLD()
local lastitem
for t = 1, 30, 1 do
local xbutton = _G["AtlasLootItem_"..t];
local xqueryitem = xbutton.itemID;
if (xqueryitem) and (xqueryitem ~= nil) and (xqueryitem ~= "") and (xqueryitem ~= 0) and (string.sub(xqueryitem, 1, 1) ~= "s") then
lastitem = t;
end
end
for i = 1, 30, 1 do
local button = _G["AtlasLootItem_"..i];
local queryitem = button.itemID;
if (queryitem) and (queryitem ~= nil) and (queryitem ~= "") and (queryitem ~= 0) and (string.sub(queryitem, 1, 1) ~= "s") then
local item = Item:CreateFromID(queryitem);
if not (item:GetInfo()) then
item:ContinueOnLoad(function(itemId)
if i == lastitem then
AtlasLoot:ShowItemsFrame(AtlasLootItemsFrame.refresh[1], AtlasLootItemsFrame.refresh[2], AtlasLootItemsFrame.refresh[3]);
end
end)
end
end
end
end
--[[
AtlasLoot:AddTooltip(frameb, tooltiptext)
Adds explanatory tooltips to UI objects.
@@ -1104,9 +1086,34 @@ AtlasLoot:FindId(id, difficulty)
Finds the Ids of other difficulties based on the normal id of the item and the difficulty parameter given.
On the form of {ID, {normal, heroic, mythic, mythic1, mythic2, ... ,mythicN}}
]]
function AtlasLoot:FindId(id, difficulty)
if ItemIDsDatabase[id] ~= nil then
function AtlasLoot:FindId(id, difficulty, type)
if not ItemIDsDatabase[id] then return nil, false end
if difficulty == 5 and (type == "BCRaid" or type == "ClassicRaid") then
return ItemIDsDatabase[id]["MythicRaid"], true
else
return ItemIDsDatabase[id][difficulty], true
end
return nil, false;
end
end
-- Loads the Item Variations into a table from the data content folder
function AtlasLoot:LoadItemIDsDatabase()
local content = C_ContentLoader:Load("ItemVariationData")
content:SetParser(function(index, data)
-- run for each item in the data
if index ~= 0 and data.Normal ~= 0 and not ItemIDsDatabase[data.Normal] then
ItemIDsDatabase[data.Normal] = {}
ItemIDsDatabase[data.Normal]["MythicRaid"] = tonumber("13"..data.Normal);
table.insert(ItemIDsDatabase[data.Normal],data.Bloodforged);
table.insert(ItemIDsDatabase[data.Normal],data.Normal);
if data.Heroic ~= 0 then table.insert(ItemIDsDatabase[data.Normal],data.Heroic) end
for _,v in ipairs(data["Mythic"]) do
if v ~= 0 then
table.insert(ItemIDsDatabase[data.Normal],v)
end
end
end
end)
-- This will run over time (usually about 30s for a file this size), but will maintain playable fps while running.
content:ParseAsync()
end
+4 -3
View File
@@ -2,13 +2,14 @@
<!--Ascension Files-->
<Script file="AtlasDifficulty.lua"/>
<Script file="ItemIDsDatabase.lua"/>
<!-- <Script file="ItemIDsDatabase.lua"/>
<Script file="ItemIDsDatabase2.lua"/>
<Script file="ItemIDsDatabase3.lua"/>
<Script file="ItemIDsDatabaseFixes.lua"/>
<Script file="ItemIDsDatabase3.lua"/> -->
<!--Default Files-->
<Script file="AtlasLoot.lua"/>
<Script file="ItemIDsDatabaseFixes.lua"/>
<Script file="Filter.lua"/>
<Script file="ExtraText.lua"/>
<Script file="TextParsing.lua"/>
+367 -324
View File
@@ -5,7 +5,7 @@ Loot browser associating loot with instance bosses
Can be integrated with Atlas (http://www.atlasmod.com)
Functions:
AtlasLoot:HideNoUsableItems()
AtlasLoot:HideFilteredItems()
AtlasLoot_FilterEnableButton()
<local> CreateCheckButton(parrent, text, num)
AtlasLoote_CreateFilterOptions()
@@ -16,359 +16,402 @@ local AL = LibStub("AceLocale-3.0"):GetLocale("AtlasLoot");
local OptionsLoadet = false
AtlasLootFilterDB = {};
AtlasLoot_FilterMenu = AceLibrary("Dewdrop-2.0");
AtlasLoot_SetFiltersMenu = AceLibrary("Dewdrop-2.0");
local FilterTableNames = {
["Armor"] = AL["Armor:"],
["WeaponsMeele"] = AL["Melee weapons:"],
["WeaponsMeeleTwoHand"] = BabbleInventory["Two-Hand"]..":",--.." "..AL["Melee weapons:"],
["WeaponsRanged"] = AL["Ranged weapons:"],
["Relics"] = AL["Relics:"],
["Other"] = AL["Other:"],
}
local FilterSort = {"Armor","WeaponsMeele","WeaponsMeeleTwoHand","WeaponsRanged","Relics","Other"}
local FilterTable = {
["Armor"] = {
"Cloth", --1
"Leather", --2
"Mail", --3
"Plate", --4
},
["WeaponsMeele"] = {
"Held in Off-Hand", --1
"Dagger", --2
"Mace", --3
"Staff", --4
"Axe", --5
"Polearm", --6
"Shield", --7
"Sword", --8
"Fist Weapon", --9
},
["WeaponsMeeleTwoHand"] = {
"Mace", --1
"Axe", --2
"Sword", --3
},
["WeaponsRanged"] = {
"Wand", --1
"Bow", --2
"Crossbow", --3
"Gun", --4
"Thrown", --5
},
["Relics"] = {
"Idol", --1
"Totem", --2
"Libram", --3
"Sigils", --4
},
["Other"] = {
"Ring", --1
"Trinket", --2
"Neck", --3
"Back", --4
}
}
local ClassHides = {
["DRUID"] = {["Armor"] = {true,true,false,false},["WeaponsMeele"] = {true,true,true,true,false,true,false,false,false},["WeaponsMeeleTwoHand"] = {true,false,false},["WeaponsRanged"] = {false,false,false,false,false},["Relics"] = {true,false,false,false},["Other"] = {true,true,true,true}},
["MAGE"] = {["Armor"] = {true,false,false,false},["WeaponsMeele"] = {true,true,false,true,false,false,false,true,false},["WeaponsMeeleTwoHand"] = {false,false,false},["WeaponsRanged"] = {true,false,false,false,false},["Relics"] = {false,false,false,false},["Other"] = {true,true,true,true}},
["PALADIN"] = {["Armor"] = {true,true,true,true},["WeaponsMeele"] = {true,false,true,false,true,true,true,true,false},["WeaponsMeeleTwoHand"] = {true,false,true},["WeaponsRanged"] = {false,false,false,false,false},["Relics"] = {false,false,true,false},["Other"] = {true,true,true,true}},
["PRIEST"] = {["Armor"] = {true,false,false,false},["WeaponsMeele"] = {true,true,true,true,false,false,false,false,false},["WeaponsMeeleTwoHand"] = {false,false,false},["WeaponsRanged"] = {true,false,false,false,false},["Relics"] = {false,false,false,false},["Other"] = {true,true,true,true}},
["ROGUE"] = {["Armor"] = {true,true,false,false},["WeaponsMeele"] = {true,true,true,false,true,false,false,true,true},["WeaponsMeeleTwoHand"] = {false,false,false},["WeaponsRanged"] = {false,true,true,true,true},["Relics"] = {false,false,false,false},["Other"] = {true,true,true,true}},
["HUNTER"] = {["Armor"] = {false,true,true,false},["WeaponsMeele"] = {false,true,false,true,true,true,false,true,true},["WeaponsMeeleTwoHand"] = {false,true,true},["WeaponsRanged"] = {false,true,true,true,false},["Relics"] = {false,false,false,false},["Other"] = {true,true,true,true}},
["SHAMAN"] = {["Armor"] = {true,true,true,false},["WeaponsMeele"] = {true,true,true,true,true,false,true,false,true},["WeaponsMeeleTwoHand"] = {true,true,false},["WeaponsRanged"] = {false,false,false,false,false},["Relics"] = {false,true,false,false},["Other"] = {true,true,true,true}},
["WARLOCK"] = {["Armor"] = {true,false,false,false},["WeaponsMeele"] = {true,true,false,true,false,false,false,true,false},["WeaponsMeeleTwoHand"] = {false,false,false},["WeaponsRanged"] = {true,false,false,false,false},["Relics"] = {false,false,false,false},["Other"] = {true,true,true,true}},
["WARRIOR"] = {["Armor"] = {true,true,true,true},["WeaponsMeele"] = {true,true,true,true,true,true,true,true,true},["WeaponsMeeleTwoHand"] = {true,true,true},["WeaponsRanged"] = {false,true,true,true,true},["Relics"] = {false,false,false,false},["Other"] = {true,true,true,true}},
["DEATHKNIGHT"] = {["Armor"] = {true,true,true,true},["WeaponsMeele"] = {true,false,true,false,true,true,false,true,false},["WeaponsMeeleTwoHand"] = {true,false,true},["WeaponsRanged"] = {false,false,false,false,false},["Relics"] = {false,false,false,true},["Other"] = {true,true,true,true}}
{
Name = AL["Armor Type"],
Type = "ArmorType",
{"Cloth", "Cloth"},
{"Leather", "Leather"},
{"Mail", "Mail"},
{"Plate", "Plate"},
},
{
Name = AL["Weapons"],
Type = "InvType",
{"One-Hand", "INVTYPE_WEAPON"},
{"Two-Hand", "INVTYPE_2HWEAPON"},
{"Main Hand", "INVTYPE_WEAPONMAINHAND"},
{"Off Hand", "INVTYPE_WEAPONOFFHAND"},
{"Caster Off Hand", "INVTYPE_HOLDABLE"},
{"Ranged", "INVTYPE_RANGED"},
{"Thrown", "INVTYPE_THROWN"},
{"Relic", "INVTYPE_RELIC"},
{"Shield", "INVTYPE_SHIELD"}
},
{
Name = AL["Accessories"],
Type = "InvType",
{"Necklace", "INVTYPE_NECK"},
{"Back", "INVTYPE_CLOAK"},
{"Ring", "INVTYPE_FINGER"},
{"Trinket", "INVTYPE_TRINKET"}
},
{
Name = AL["Secondary Stats"],
Type = "Stat",
{"Crit", "ITEM_MOD_CRIT_RATING_SHORT"},
{"Hit", "ITEM_MOD_HIT_RATING_SHORT"},
{"Haste", "ITEM_MOD_HASTE_RATING_SHORT"},
{"Expertise", "ITEM_MOD_EXPERTISE_RATING_SHORT"},
{"Armor Pen", "ITEM_MOD_ARMOR_PENETRATION_RATING_SHORT"},
{"Spell Pen", "ITEM_MOD_SPELL_PENETRATION_SHORT"}
},
{
Name = AL["Primary Stats"],
Type = "PrimaryStat",
{"Strength", "ITEM_MOD_STRENGTH_SHORT"},
{"Agility", "ITEM_MOD_AGILITY_SHORT"},
{"Intellect", "ITEM_MOD_INTELLECT_SHORT"},
{"Spirit", "ITEM_MOD_SPIRIT_SHORT"},
{"Attack Power", "ITEM_MOD_ATTACK_POWER_SHORT"},
{"Spell Power", "ITEM_MOD_SPELL_POWER_SHORT"}
},
{
Name = AL["Defensive Stats"],
Type = "Stat",
{"Defense", "ITEM_MOD_DEFENSE_SKILL_RATING_SHORT"},
{"Dodge", "ITEM_MOD_DODGE_RATING_SHORT"},
{"Parry", "ITEM_MOD_PARRY_RATING_SHORT"},
{"Block", "ITEM_MOD_BLOCK_RATING_SHORT"},
{"Block Value", "ITEM_MOD_BLOCK_VALUE_SHORT"},
{"Resilience", "ITEM_MOD_RESILIENCE_RATING"}
},
}
-- **********************************************************************
-- ItemFilter:
-- AtlasLoot:HideNoUsableItems()
-- AtlasLoot:HideFilteredItems()
-- AtlasLoot_FilterEnableButton()
-- **********************************************************************
AtlasLootFilter = {};
AtlasLootFilter["FilterList"] = {};
AtlasLoot_Data["FilterList"] = { [1] = {}; };
function AtlasLoot_Testabc()
print(BabbleInventory["Two-Hand"])
end
function AtlasLoot:HideNoUsableItems()
function AtlasLoot:HideFilteredItems()
local dataID, dataSource, tablenum = AtlasLootItemsFrame.refreshFilter[1], _G[AtlasLootItemsFrame.refreshFilter[2]], AtlasLootItemsFrame.refreshFilter[3];
local tablebase = dataSource[dataID][tablenum]
if not tablebase or dataID == "WishList" or dataID == "SearchResult" then return end
local itemCount = 0
local countAll = 1
local count = 0
local leatherworking = GetSpellInfo(2108)
if not tablebase or dataID == "WishList" or dataID == "SearchResult" or AtlasLootCharDB.SelectedFilter == nil then return end
AtlasLootFilter["FilterList"] = {};
AtlasLootFilter["FilterList"].Type = dataSource[dataID].Type;
AtlasLootFilter["FilterList"].Name = dataSource[dataID].Name;
AtlasLootFilter["FilterList"].Back = dataSource[dataID].Back;
AtlasLootFilter["FilterList"].Map = dataSource[dataID].Map;
AtlasLootFilter["FilterList"][1] = {Name = dataSource[dataID][tablenum].Name};
AtlasLoot_Data["FilterList"] = { Type = dataSource[dataID].Type; Name = dataSource[dataID].Name; Back = dataSource[dataID].Back; Map = dataSource[dataID].Map; [tablenum] = {Name = dataSource[dataID][tablenum].Name}; };
for i=1,30 do
local info = _G["AtlasLootItem_"..i.."_Extra"]:GetText()
if _G["AtlasLootItem_"..i]:IsShown() then
local xgo = true
local countOld = count
itemCount = itemCount + 1
countAll = countAll + count
count = 0
local xitemID = _G["AtlasLootItem_"..i].itemID
local xspellitemID = _G["AtlasLootItem_"..i].spellitemID
local xitemTexture = tablebase[itemCount][3]
local xitemExtraText = AtlasLoot_FixText(tablebase[itemCount][5])
local xitemExtraTextSave = xitemExtraText
-- remove the "-"
xitemExtraText = gsub(xitemExtraText, "-", "")
local xitemNameText = _G["AtlasLootItem_"..i.."_Name"]:GetText()
if xitemExtraText and xitemExtraText ~= "" then
for k = 1,#FilterSort do
k = FilterSort[k]
if type(FilterTable[k]) == "table" then
for i,j in pairs(FilterTable[k]) do
local Slotname = ""
-- Bugfix with Sigils
if j == "Sigils" then
Slotname = AL["Sigil"]
else
Slotname = BabbleInventory[j]
end
if (k ~= "WeaponsMeeleTwoHand" and not strfind(xitemExtraText, BabbleInventory["Two-Hand"]) and strfind(xitemExtraText, Slotname) and AtlasLootFilterDB[k][j] == false) then
xgo = false
-- German fix
if j == "Shield" and not strfind(xitemExtraText, BabbleInventory["Held in Off-Hand"]) and not strfind(xitemExtraText, BabbleInventory["Off Hand"]) then
xgo = false
elseif j == "Shield" and strfind(xitemExtraText, BabbleInventory["Held in Off-Hand"]) and AtlasLootFilterDB["WeaponsMeele"]["Held in Off-Hand"] == true then
xgo = true
end
elseif k == "WeaponsMeeleTwoHand" and strfind(xitemExtraText, BabbleInventory["Two-Hand"]) and strfind(xitemExtraText, Slotname) and AtlasLootFilterDB[k][j] == false then
xgo = false
-- Fix bug with Leatherworking Patterns
elseif strfind(xitemExtraText, leatherworking) then
xgo = true
end
end
local function getStats(itemID,sType)
for i,v in pairs(AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter]) do
if type(v) == "table" then
if v[1] and v[3] == sType then
local ItemStats = {};
GetItemStats(select(2,GetItemInfo(itemID)), ItemStats);
if ItemStats[v[2]] then
return true;
end
end
end
-- Sort the items
if xgo == true then
if i==16 and countOld > 0 then
AtlasLoot_Data["FilterList"][tablenum][16] = { 16, xitemID, xitemTexture, xitemNameText, xitemExtraTextSave}
countAll = 16
elseif i==16 and xitemExtraText and strfind(xitemExtraText, AL["Token"]) then
AtlasLoot_Data["FilterList"][tablenum][16] = { 16, xitemID, xitemTexture, xitemNameText, xitemExtraTextSave}
countAll = 16
elseif countAll < 16 and xitemNameText and strfind(xitemNameText, AL["Hard Mode"]) then
AtlasLoot_Data["FilterList"][tablenum][16] = { 16, xitemID, xitemTexture, xitemNameText, xitemExtraTextSave}
countAll = 16
elseif i==16 and xitemTexture == "INV_Box_01" then
AtlasLoot_Data["FilterList"][tablenum][16] = { 16, xitemID, xitemTexture, xitemNameText, xitemExtraTextSave}
countAll = 16
else
AtlasLoot_Data["FilterList"][tablenum][countAll] = { countAll, xitemID, xitemTexture, xitemNameText, xitemExtraTextSave}
end
if tablebase[itemCount][6] and countAll==16 then
AtlasLoot_Data["FilterList"][tablenum][16][6] = tablebase[itemCount][6]
elseif tablebase[itemCount][6] and countAll~=16 then
AtlasLoot_Data["FilterList"][tablenum][countAll][6] = tablebase[itemCount][6]
end
if tablebase[itemCount][7] and countAll==16 then
AtlasLoot_Data["FilterList"][tablenum][16][7] = tablebase[itemCount][7]
elseif tablebase[itemCount][7] and countAll~=16 then
AtlasLoot_Data["FilterList"][tablenum][countAll][7] = tablebase[itemCount][7]
end
if tablebase[itemCount][8] and countAll==16 then
AtlasLoot_Data["FilterList"][tablenum][16][8] = tablebase[itemCount][8]
elseif tablebase[itemCount][8] and countAll~=16 then
AtlasLoot_Data["FilterList"][tablenum][countAll][8] = tablebase[itemCount][8]
end
countAll = countAll + 1
count = 0
end
else
count = count + 1
end
end
AtlasLoot:ShowItemsFrame("FilterList", "AtlasLoot_Data", AtlasLootItemsFrame.refresh[3])
local function checkNofilter(itemID, filter)
if getStats(itemID,filter) then return true end;
for i,v in pairs(AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter]) do
for n,t in ipairs(FilterTable) do
if t.Type == filter and v[1] then
return true;
end
end
end
end
local count = 0
local function getFilterType(itemID)
local filterSelect3, filterSelect2,_ , filterSelect1 = select(6,GetItemInfo(itemID));
local filter1 = AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter][filterSelect1];
local filter2 = AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter][filterSelect2];
if (filter1 and filter1[1] and filter1[3] == "InvType" and getStats(itemID,"PrimaryStat") and checkNofilter(itemID, "Stat")) or
(filter2 and filter2[1] and filter2[3] == "ArmorType" and getStats(itemID,"PrimaryStat") and checkNofilter(itemID, "Stat"))
then
return true;
else
for _,v in pairs(FilterTable) do
for _,t in ipairs(v) do
if t[2] == filterSelect1 or t[2] == filterSelect2 or t[2] == filterSelect3 then
return false;
end
end
end
return true;
end
end
for i,v in ipairs(tablebase) do
if getFilterType(v[2]) or v[2] == 0 then
if v[1] == 16 then
count = 0;
end
table.insert(AtlasLootFilter["FilterList"][1],{v[1] - count,v[2],v[3],v[4],v[5],v[6],v[7],v[8]});
elseif v[1] == 16 then
count = 1
else
count = count + 1;
end
end
AtlasLoot:ShowItemsFrame("FilterList", "AtlasLootFilter", 1)
end
function AtlasLoot_FilterEnableButton()
if ATLASLOOT_FILTER_ENABLE == true then
ATLASLOOT_FILTER_ENABLE = false;
AtlasLoot:ShowItemsFrame(AtlasLootItemsFrame.refreshFilter[1], AtlasLootItemsFrame.refreshFilter[2], AtlasLootItemsFrame.refreshFilter[3]);
function AtlasLoot_FilterEnableButton(self, btnclick)
if btnclick == "RightButton" then
if AtlasLoot_FilterMenu:IsOpen() then
AtlasLoot_FilterMenu:Close();
else
AtlasLoot_FilterMenu:Unregister(AtlasLootFilterCheck);
AtlasLoot:FilterMenuRegister();
AtlasLoot_FilterMenu:Open(self);
end
if AtlasLootFilterCheck:GetChecked() then
AtlasLootFilterCheck:SetChecked(false);
else
AtlasLootFilterCheck:SetChecked(true);
end
else
ATLASLOOT_FILTER_ENABLE = true
AtlasLoot:HideNoUsableItems();
if ATLASLOOT_FILTER_ENABLE then
ATLASLOOT_FILTER_ENABLE = false;
AtlasLoot:ShowItemsFrame(AtlasLootItemsFrame.refreshFilter[1], AtlasLootItemsFrame.refreshFilter[2], AtlasLootItemsFrame.refreshFilter[3]);
else
ATLASLOOT_FILTER_ENABLE = true
AtlasLoot:HideFilteredItems();
end
end
end
--[[
AtlasLoot:FilterMenuRegister:
Constructs the Filter menu.
]]
function AtlasLoot:FilterMenuRegister()
AtlasLoot_FilterMenu:Register(AtlasLootFilterCheck,
'point', function(parent)
return "TOP", "BOTTOM"
end,
'children', function(level, value)
for i,v in ipairs(AtlasLootFilterDB["FilterLists"]) do
local setFilter = false;
if AtlasLootCharDB.SelectedFilter == i then setFilter = true end
AtlasLoot_FilterMenu:AddLine(
"text", v.Name,
"func", function()
AtlasLootCharDB.SelectedFilter = i;
AtlasLoot_FilterMenu:Close();
end,
"checked", setFilter
);
end
AtlasLoot_FilterMenu:AddLine(
"text", AL["Add Filter Set"],
"func", function() AtlasLoot:OpenFilterCreate() end,
"notCheckable", true
);
--Close button
AtlasLoot_FilterMenu:AddLine(
'text', AL["Close Menu"],
'textR', 0,
'textG', 1,
'textB', 1,
'func', function() AtlasLoot_FilterMenu:Close() end,
'notCheckable', true
);
end,
'dontHook', true
)
end
--Sets all the filter check boxs for current filter
local function setFilterChecks()
local filterList = AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter];
local count = 1;
for i,v in ipairs(FilterTable) do
count = count + 1;
for n,t in ipairs(v) do
if filterList[t[2]] and filterList[t[2]][1] then
_G["AtlasLootFilterButton_"..count]:SetChecked(true);
else
_G["AtlasLootFilterButton_"..count]:SetChecked(false);
end
count = count + 1;
end
end
end
local function setFilter(arg1,type)
if AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter][arg1] and AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter][arg1][1] then
AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter][arg1] = {false,arg1,type};
else
AtlasLootFilterDB["FilterLists"][AtlasLootCharDB.SelectedFilter][arg1] = {true,arg1,type};
end
end
function AtlasLoot:HideFilterCreateButtons()
if not ATLASLOOT_BUILD_FILTER_LIST then return end
for i=1, 41 do
_G["AtlasLootFilterButton_"..i]:Hide();
end
AtlasLootFilterSelect:Hide();
AtlasLootFilterCreate:Hide();
AtlasLootFilterDelete:Hide();
end
-- **********************************************************************
-- Options:
-- AtlasLoot:HideNoUsableItems()
-- <local> CreateCheckButton(parrent, text, num)
-- AtlasLoote_CreateFilterOptions()
-- AtlasLoot:HideFilteredItems()
-- **********************************************************************
local ypos = -40
local xpos = 0
local linecount = 1
local lastframewidht,lastframeheight = 0,0
local function CreateCheckButton(parrent, text, num)
local framewidht = InterfaceOptionsFramePanelContainer:GetWidth()
local Check = CreateFrame("CheckButton", "AtlasLootOptionsCheck"..text..num, parrent, "OptionsCheckButtonTemplate")
Check:SetPoint("LEFT", parrent, "TOPLEFT", xpos, ypos)
Check:SetWidth(25)
Check:SetHeight(25)
Check:SetScript("OnShow", function()
_G[this:GetName().."Text"]:SetText(BabbleInventory[text]);
if AtlasLootFilterDB[num][text] then
this:SetChecked(1);
ATLASLOOT_BUILD_FILTER_LIST = false;
-- Place to add new or edit existing filter lists
function AtlasLoot:OpenFilterCreate()
if not ATLASLOOT_BUILD_FILTER_LIST then
ATLASLOOT_BUILD_FILTER_LIST = true;
local count = 1;
for i,v in ipairs(FilterTable) do
local filterCatLable = AtlasLootItemsFrame:CreateFontString("AtlasLootFilterButton_"..count,"OVERLAY","GameFontNormal");
filterCatLable:SetText(v.Name);
filterCatLable:Show();
if count == 1 then
filterCatLable:SetPoint("TOP", "AtlasLootItemsFrame", "TOP",-150,-90);
elseif count == 16 then
filterCatLable:SetPoint("TOP", "AtlasLootItemsFrame", "TOP",0,-90);
elseif count == 28 then
filterCatLable:SetPoint("TOP", "AtlasLootItemsFrame", "TOP",150,-90);
else
this:SetChecked(nil);
filterCatLable:SetPoint("LEFT", "AtlasLootFilterButton_"..(count - 1), "LEFT",0,-25);
end
end)
Check:SetScript("OnClick", function()
if AtlasLootFilterDB[num][text] then
AtlasLootFilterDB[num][text] = false;
else
AtlasLootFilterDB[num][text] = true;
end
end)
if xpos == framewidht/2 then
xpos = 0
ypos = ypos - 20
linecount = 1
elseif xpos == 0 then
xpos = framewidht/2
linecount = 2
count = count + 1;
for n,t in ipairs(v) do
local button = CreateFrame("CheckButton", "AtlasLootFilterButton_"..count, AtlasLootItemsFrame, "OptionsCheckButtonTemplate");
_G["AtlasLootFilterButton_"..count.."Text"]:SetText(t[1]);
button:SetScript("OnClick", function() setFilter(t[2],v.Type) end)
if n == 1 then
button:SetPoint("LEFT", "AtlasLootFilterButton_"..(count - 1), "LEFT",0,-25);
else
button:SetPoint("LEFT", "AtlasLootFilterButton_"..(count - 1), "LEFT",0,-20);
end
count = count + 1;
end
end
local filterSelectButton = CreateFrame("Button", "AtlasLootFilterSelect", AtlasLootItemsFrame, "UIDropDownMenuTemplate");
filterSelectButton:SetSize(190,24);
filterSelectButton:SetPoint("Top", "AtlasLootItemsFrame", "TOP",-110,-35);
local createFilterButton = CreateFrame("Button", "AtlasLootFilterCreate", AtlasLootItemsFrame, "OptionsButtonTemplate");
createFilterButton:SetSize(130,20);
createFilterButton:SetPoint("LEFT", "AtlasLootItemsFrame_BACK", "LEFT",-150,0);
createFilterButton:SetText(AL["Add/Edit Filter"]);
createFilterButton:SetScript("OnClick", function(self) StaticPopup_Show("ATLASLOOT_ADD_FILTER_LIST") end);
local deleteFilterButton = CreateFrame("Button", "AtlasLootFilterDelete", AtlasLootItemsFrame, "OptionsButtonTemplate");
deleteFilterButton:SetSize(130,20);
deleteFilterButton:SetPoint("RIGHT", "AtlasLootItemsFrame_BACK", "RIGHT",150,0);
deleteFilterButton:SetText(AL["Delete Filter"]);
deleteFilterButton:SetScript("OnClick", function(self) StaticPopup_Show("ATLASLOOT_DELETE_FILTERLIST") end);
end
UIDropDownMenu_Initialize(AtlasLootFilterSelect, AtlasLoot.FilterSelectorMenuInitialize);
UIDropDownMenu_SetSelectedID(AtlasLootFilterSelect, AtlasLootCharDB.SelectedFilter);
setFilterChecks();
for i=1,41 do
_G["AtlasLootFilterButton_"..i]:Show();
end
AtlasLootFilterSelect:Show();
AtlasLootFilterCreate:Show();
AtlasLootFilterDelete:Show();
--Ditch the Quicklook selector
AtlasLootQuickLooksButton:Hide();
-- Hide the Filter Check-Box
AtlasLootFilterCheck:Hide();
--Hide navigation buttons by default, only show what we need
_G["AtlasLootItemsFrame_BACK"]:Show();
_G["AtlasLootItemsFrame_NEXT"]:Hide();
_G["AtlasLootItemsFrame_PREV"]:Hide();
--Hide UI objects so that only needed ones are shown
for i = 1, 30, 1 do
_G["AtlasLootItem_"..i.."_Unsafe"]:Hide();
_G["AtlasLootItem_"..i]:Hide();
_G["AtlasLootItem_"..i].itemID = 0;
_G["AtlasLootItem_"..i].spellitemID = 0;
end
--Set Page Title
AtlasLoot_BossName:SetText("Create Filter Set");
AtlasLoot_FilterMenu:Close();
end
local function FilterSelectOnClick()
AtlasLootCharDB.SelectedFilter = this:GetID();
UIDropDownMenu_SetSelectedID(AtlasLootFilterSelect, AtlasLootCharDB.SelectedFilter);
setFilterChecks();
end
function AtlasLoot:FilterSelectorMenuInitialize()
for i,v in ipairs(AtlasLootFilterDB["FilterLists"]) do
local info = {
text = v.Name;
func = FilterSelectOnClick;
};
UIDropDownMenu_AddButton(info);
end
end
local function CreateCat(parrent, text)
if not AtlasLootFilterDB[text] then AtlasLootFilterDB[text] = {} end
if linecount == 2 then
ypos = ypos - 10
else
ypos = ypos + 10
end
local Text = parrent:CreateFontString("AtlasLoot"..text,"OVERLAY","GameFontNormal")
Text:SetPoint("TOPLEFT", parrent, "TOPLEFT", xpos, ypos)
Text:SetText(FilterTableNames[text]);
Text:SetHeight(20)
Text:SetTextColor(1.0, 1.0, 1.0, 1.0);
ypos = ypos - 30
for i,j in pairs(FilterTable[text]) do
if AtlasLootFilterDB[text][j] ~= true and AtlasLootFilterDB[text][j] ~= false then AtlasLootFilterDB[text][j] = true end
CreateCheckButton(parrent, j, text)
end
xpos = 0
ypos = ypos - 10
end
--[[
StaticPopupDialogs["ATLASLOOT_ADD_FILTER_LIST"]
This is shown, if you want too add a add/edit a filter list
]]
StaticPopupDialogs["ATLASLOOT_ADD_FILTER_LIST"] = {
text = "Filter Name",
button1 = "Add Filter",
button3 = "Edit Filter",
button2 = AL["Cancel"],
OnShow = function(self)
self.editBox:SetText(UIDropDownMenu_GetText(AtlasLootFilterSelect))
self:SetFrameStrata("TOOLTIP");
end,
OnAccept = function(self)
local text = self.editBox:GetText();
table.insert(AtlasLootFilterDB["FilterLists"],AtlasLoot:CloneTable(AtlasLootFilterDB["FilterLists"][UIDropDownMenu_GetSelectedID(AtlasLootFilterSelect)]));
AtlasLootFilterDB["FilterLists"][#AtlasLootFilterDB["FilterLists"]].Name = text;
UIDropDownMenu_SetSelectedID(AtlasLootFilterSelect,#AtlasLootFilterDB["FilterLists"]);
UIDropDownMenu_SetText(AtlasLootFilterSelect,text);
end,
OnButton3 = function(self)
local text = self.editBox:GetText();
AtlasLootFilterDB["FilterLists"][UIDropDownMenu_GetSelectedID(AtlasLootFilterSelect)].Name = self.editBox:GetText();
UIDropDownMenu_SetText(AtlasLootFilterSelect,text);
end,
hasEditBox = 1,
timeout = 0,
whileDead = 1,
hideOnEscape = 1
};
function AtlasLoot_CreateFilterOptions()
if OptionsLoadet then return end
local FilterOptionsFrame = CreateFrame("FRAME", nil)
FilterOptionsFrame.name = AL["Filter"];
FilterOptionsFrame.parent = AL["AtlasLoot"];
local framewidht = InterfaceOptionsFramePanelContainer:GetWidth()
local panel3 = CreateFrame("ScrollFrame", "AtlasLootFilterOptionsScrollFrame", FilterOptionsFrame, "UIPanelScrollFrameTemplate")
local scc = CreateFrame("Frame", "AtlasLootFilterOptionsScrollInhalt", panel3)
panel3:SetScrollChild(scc)
panel3:SetPoint("TOPLEFT", FilterOptionsFrame, "TOPLEFT", 10, -10)
scc:SetPoint("TOPLEFT", panel3, "TOPLEFT", 0, 0)
panel3:SetWidth(framewidht-45)
panel3:SetHeight(410)
scc:SetWidth(framewidht-45)
scc:SetHeight(410)
panel3:SetHorizontalScroll(-50)
panel3:SetVerticalScroll(50)
panel3:SetBackdrop({bgFile="Interface\\DialogFrame\\UI-DialogBox-Background", edgeFile="", tile = false, tileSize = 0, edgeSize = 0, insets = { left = 0, right = 0, top = 0, bottom = 0 }})
panel3:SetScript("OnVerticalScroll", function() end)
panel3:EnableMouse(true)
panel3:SetVerticalScroll(0)
panel3:SetHorizontalScroll(0)
panel3:SetScript("OnUpdate", function()
local xframewidht = InterfaceOptionsFramePanelContainer:GetWidth()
local xframeheight = InterfaceOptionsFramePanelContainer:GetHeight()
if xframewidht ~= lastframewidht or xframeheight ~= lastframeheight then
panel3:SetWidth(xframewidht-45)
scc:SetWidth(xframewidht-45)
panel3:SetHeight(xframeheight-20)
scc:SetHeight(xframeheight-20)
end
end)
local FilterDisableButton = CreateFrame("BUTTON", nil, scc, "UIPanelButtonTemplate")
FilterDisableButton:SetHeight(20)
FilterDisableButton:SetWidth(150)
FilterDisableButton:SetPoint("TOPLEFT", scc, "TOPLEFT",0,-5)
FilterDisableButton:SetText(AL["Select All Loot"])
FilterDisableButton:SetWidth(FilterDisableButton:GetTextWidth()+20)
FilterDisableButton:SetScript("OnClick", function()
for k,v in pairs(FilterTable) do
if type(v) == "table" then
for i,j in pairs(FilterTable[k]) do
AtlasLootFilterDB[k][j] = true
end
end
end
scc:Hide()
scc:Show()
end)
local locClass,playerClass = UnitClass("player");
local ClassFilterLoadButton = CreateFrame("BUTTON", nil, scc, "UIPanelButtonTemplate")
ClassFilterLoadButton:SetHeight(20)
ClassFilterLoadButton:SetWidth(150)
ClassFilterLoadButton:SetPoint("TOPRIGHT", scc, "TOPRIGHT",0,-5)
ClassFilterLoadButton:SetText(AL["Apply Filter:"].." "..locClass)
ClassFilterLoadButton:SetWidth(ClassFilterLoadButton:GetTextWidth()+20)
ClassFilterLoadButton:SetScript("OnClick", function()
for k,v in pairs(FilterTable) do
if type(v) == "table" then
for i,j in pairs(FilterTable[k]) do
if ClassHides[playerClass][k][i] == false then
AtlasLootFilterDB[k][j] = false
else
AtlasLootFilterDB[k][j] = true
end
end
end
end
scc:Hide()
scc:Show()
end)
CreateCat(scc, "Armor")
CreateCat(scc, "WeaponsMeele")
CreateCat(scc, "WeaponsMeeleTwoHand")
CreateCat(scc, "WeaponsRanged")
CreateCat(scc, "Relics")
CreateCat(scc, "Other")
InterfaceOptions_AddCategory(FilterOptionsFrame)
OptionsLoadet = true
end
--[[
StaticPopupDialogs["ATLASLOOT_DELETE_FILTERLIST"]
This is shown, if you want too delete a filter list
]]
StaticPopupDialogs["ATLASLOOT_DELETE_FILTERLIST"] = {
text = AL["Delete Filter"],
button1 = AL["Delete"],
button2 = AL["Cancel"],
OnShow = function()
this:SetFrameStrata("TOOLTIP");
end,
OnAccept = function()
table.remove(AtlasLootFilterDB["FilterLists"],UIDropDownMenu_GetSelectedID(AtlasLootFilterSelect));
UIDropDownMenu_SetSelectedID(AtlasLootFilterSelect,1);
UIDropDownMenu_SetText(AtlasLootFilterSelect,UIDropDownMenu_GetText(AtlasLootFilterSelect));
end,
timeout = 0,
whileDead = 1,
hideOnEscape = 1
};
+192 -91
View File
@@ -1,119 +1,220 @@
ItemIDsDatabase = {};
--Items not added from generated file
ItemIDsDatabase[18563] = {18563, 18563, 318563, 218563};
ItemIDsDatabase[18564] = {18564, 18564, 318564, 218564};
ItemIDsDatabase[17204] = {17204, 17204, 317204, 217204};
ItemIDsDatabase[19017] = {19017, 19017, 319017, 219017};
ItemIDsDatabase[11879] = {11879, 11879, 311879, 211879};
ItemIDsDatabase[18563] = { 18563, 18563, 318563, 218563 };
ItemIDsDatabase[18564] = { 18564, 18564, 318564, 218564 };
ItemIDsDatabase[17204] = { 17204, 17204, 317204, 217204 };
ItemIDsDatabase[19017] = { 19017, 19017, 319017, 219017 };
ItemIDsDatabase[11879] = { 11879, 11879, 311879, 211879 };
ItemIDsDatabase[22589] = {6022589, 22589, 322589, 222589};
ItemIDsDatabase[22632] = {6022632, 22632, 322632, 222632};
ItemIDsDatabase[22631] = {6022631, 22631, 322631, 222631};
ItemIDsDatabase[22630] = {6022630, 22630, 322630, 222630};
ItemIDsDatabase[22589] = { 6022589, 22589, 322589, 222589 };
ItemIDsDatabase[22632] = { 6022632, 22632, 322632, 222632 };
ItemIDsDatabase[22631] = { 6022631, 22631, 322631, 222631 };
ItemIDsDatabase[22630] = { 6022630, 22630, 322630, 222630 };
ItemIDsDatabase[2032902] = {6053891, 2032902, 2232902, 2332902};
ItemIDsDatabase[44831] = {6044831, 44831, 344831, 244831};
ItemIDsDatabase[27896] = {6027896, 27896, 27896, 427896};
ItemIDsDatabase[2032902] = { 6053891, 2032902, 2232902, 2332902 };
ItemIDsDatabase[44831] = { 6044831, 44831, 344831, 244831 };
ItemIDsDatabase[27896] = { 6027896, 27896, 27896, 427896 };
ItemIDsDatabase[30007] = {6030007, 30007, 330007, 230007};
ItemIDsDatabase[30015] = {6030015, 30015, 330015, 230015};
ItemIDsDatabase[30017] = {6030017, 30017, 330017, 230017};
ItemIDsDatabase[30018] = {6030018, 30018, 330018, 230018};
ItemIDsDatabase[32837] = {6032837, 32837, 332837, 232837};
ItemIDsDatabase[32838] = {6032838, 32838, 332838, 232838};
ItemIDsDatabase[30104] = {6033482, 30104, 330104, 230104};
ItemIDsDatabase[30007] = { 6030007, 30007, 330007, 230007 };
ItemIDsDatabase[30015] = { 6030015, 30015, 330015, 230015 };
ItemIDsDatabase[30017] = { 6030017, 30017, 330017, 230017 };
ItemIDsDatabase[30018] = { 6030018, 30018, 330018, 230018 };
ItemIDsDatabase[32837] = { 6032837, 32837, 332837, 232837 };
ItemIDsDatabase[32838] = { 6032838, 32838, 332838, 232838 };
ItemIDsDatabase[30104] = { 6033482, 30104, 330104, 230104 };
--MC/Ony Items
ItemIDsDatabase[18216] = { 6018216, 18216, 318216, 218216 };
ItemIDsDatabase[18215] = { 6018215, 18215, 318215, 218215 };
ItemIDsDatabase[18211] = { 6018211, 18211, 318211, 218211 };
ItemIDsDatabase[17084] = { 6017084, 17084, 317084, 217084 };
ItemIDsDatabase[18212] = { 6018212, 18212, 318212, 218212 };
ItemIDsDatabase[17083] = { 6017083, 17083, 317083, 217083 };
--T2 missing sets
ItemIDsDatabase[1516900] = { 7516900, 1516900, 1816900, MythicRaid = 2816900, 1716900 };
ItemIDsDatabase[1516902] = { 7516902, 1516902, 1816902, MythicRaid = 2816902, 1716902 };
ItemIDsDatabase[1516897] = { 7516897, 1516897, 1816897, MythicRaid = 2816897, 1716897 };
ItemIDsDatabase[1516904] = { 7516904, 1516904, 1816904, MythicRaid = 2816904, 1716904 };
ItemIDsDatabase[1516904] = { 7516904, 1516904, 1816904, MythicRaid = 2816904, 1716904 };
ItemIDsDatabase[1516899] = { 7516899, 1516899, 1816899, MythicRaid = 2816899, 1716899 };
ItemIDsDatabase[1516903] = { 7516903, 1516903, 1816903, MythicRaid = 2816903, 1716903 };
ItemIDsDatabase[1516898] = { 7516898, 1516898, 1816898, MythicRaid = 2816898, 1716898 };
ItemIDsDatabase[1516892] = { 7516892, 1516892, 1816892, MythicRaid = 2816892, 1716892 };
ItemIDsDatabase[1516894] = { 7516894, 1516894, 1816894, MythicRaid = 2816894, 1716894 };
ItemIDsDatabase[1516889] = { 7516889, 1516889, 1816889, MythicRaid = 2816889, 1716889 };
ItemIDsDatabase[1516896] = { 7516896, 1516896, 1816896, MythicRaid = 2816896, 1716896 };
ItemIDsDatabase[1516891] = { 7516891, 1516891, 1816891, MythicRaid = 2816891, 1716891 };
ItemIDsDatabase[1516895] = { 7516895, 1516895, 1816895, MythicRaid = 2816895, 1716895 };
ItemIDsDatabase[1516893] = { 7516893, 1516893, 1816893, MythicRaid = 2816893, 1716893 };
ItemIDsDatabase[1516890] = { 7516890, 1516890, 1816890, MythicRaid = 2816890, 1716890 };
ItemIDsDatabase[1516955] = { 7516955, 1516955, 1816955, MythicRaid = 2816955, 1716955 };
ItemIDsDatabase[1516953] = { 7516953, 1516953, 1816953, MythicRaid = 2816953, 1716953 };
ItemIDsDatabase[1516958] = { 7516958, 1516958, 1816958, MythicRaid = 2816958, 1716958 };
ItemIDsDatabase[1516951] = { 7516951, 1516951, 1816951, MythicRaid = 2816951, 1716951 };
ItemIDsDatabase[1516956] = { 7516956, 1516956, 1816956, MythicRaid = 2816956, 1716956 };
ItemIDsDatabase[1516952] = { 7516952, 1516952, 1816952, MythicRaid = 2816952, 1716952 };
ItemIDsDatabase[1516954] = { 7516954, 1516954, 1816954, MythicRaid = 2816954, 1716954 };
ItemIDsDatabase[1516957] = { 7516957, 1516957, 1816957, MythicRaid = 2816957, 1716957 };
ItemIDsDatabase[1516921] = { 7516921, 1516921, 1816921, MythicRaid = 2816921, 1716921 };
ItemIDsDatabase[1516924] = { 7516924, 1516924, 1816924, MythicRaid = 2816924, 1716924 };
ItemIDsDatabase[1516923] = { 7516923, 1516923, 1816923, MythicRaid = 2816923, 1716923 };
ItemIDsDatabase[1516926] = { 7516926, 1516926, 1816926, MythicRaid = 2816926, 1716926 };
ItemIDsDatabase[1516920] = { 7516920, 1516920, 1816920, MythicRaid = 2816920, 1716920 };
ItemIDsDatabase[1516925] = { 7516925, 1516925, 1816925, MythicRaid = 2816925, 1716925 };
ItemIDsDatabase[1516922] = { 7516922, 1516922, 1816922, MythicRaid = 2816922, 1716922 };
ItemIDsDatabase[1516919] = { 7516919, 1516919, 1816919, MythicRaid = 2816919, 1716919 };
ItemIDsDatabase[1516947] = { 7516947, 1516947, 1816947, MythicRaid = 2816947, 1716947 };
ItemIDsDatabase[1516945] = { 7516945, 1516945, 1816945, MythicRaid = 2816945, 1716945 };
ItemIDsDatabase[1516950] = { 7516950, 1516950, 1816950, MythicRaid = 2816950, 1716950 };
ItemIDsDatabase[1516943] = { 7516943, 1516943, 1816943, MythicRaid = 2816943, 1716943 };
ItemIDsDatabase[1516948] = { 7516948, 1516948, 1816948, MythicRaid = 2816948, 1716948 };
ItemIDsDatabase[1516944] = { 7516944, 1516944, 1816944, MythicRaid = 2816944, 1716944 };
ItemIDsDatabase[1516946] = { 7516946, 1516946, 1816946, MythicRaid = 2816946, 1716946 };
ItemIDsDatabase[1516949] = { 7516949, 1516949, 1816949, MythicRaid = 2816949, 1716949 };
ItemIDsDatabase[1516963] = { 7516963, 1516963, 1816963, MythicRaid = 2816963, 1716963 };
ItemIDsDatabase[1516961] = { 7516961, 1516961, 1816961, MythicRaid = 2816961, 1716961 };
ItemIDsDatabase[1516966] = { 7516966, 1516966, 1816966, MythicRaid = 2816966, 1716966 };
ItemIDsDatabase[1516959] = { 7516959, 1516959, 1816959, MythicRaid = 2816959, 1716959 };
ItemIDsDatabase[1516964] = { 7516964, 1516964, 1816964, MythicRaid = 2816964, 1716964 };
ItemIDsDatabase[1516960] = { 7516960, 1516960, 1816960, MythicRaid = 2816960, 1716960 };
ItemIDsDatabase[1516962] = { 7516962, 1516962, 1816962, MythicRaid = 2816962, 1716962 };
ItemIDsDatabase[1516965] = { 7516965, 1516965, 1816965, MythicRaid = 2816965, 1716965 };
--Tier 1 Tokens
ItemIDsDatabase[2522360] = {2522360, 2522360, 2622360, 2722360};
ItemIDsDatabase[2522361] = {2522361, 2522361, 2622361, 2722361};
ItemIDsDatabase[2522350] = {2522350, 2522350, 2622350, 2722350};
ItemIDsDatabase[2522362] = {2522362, 2522362, 2622362, 2722362};
ItemIDsDatabase[2522363] = {2522363, 2522363, 2622363, 2722363};
ItemIDsDatabase[2522364] = {2522364, 2522364, 2622364, 2722364};
ItemIDsDatabase[2522359] = {2522359, 2522359, 2622359, 2722359};
ItemIDsDatabase[2522365] = {2522365, 2522365, 2622365, 2722365};
ItemIDsDatabase[2522360] = { 2522360, 2522360, 2622360, 2722360, MythicRaid = 3722360 };
ItemIDsDatabase[2522361] = { 2522361, 2522361, 2622361, 2722361, MythicRaid = 3722361 };
ItemIDsDatabase[2522350] = { 2522350, 2522350, 2622350, 2722350, MythicRaid = 3722350 };
ItemIDsDatabase[2522362] = { 2522362, 2522362, 2622362, 2722362, MythicRaid = 3722362 };
ItemIDsDatabase[2522363] = { 2522363, 2522363, 2622363, 2722363, MythicRaid = 3722363 };
ItemIDsDatabase[2522364] = { 2522364, 2522364, 2622364, 2722364, MythicRaid = 3722364 };
ItemIDsDatabase[2522359] = { 2522359, 2522359, 2622359, 2722359, MythicRaid = 3722359 };
ItemIDsDatabase[2522365] = { 2522365, 2522365, 2622365, 2722365, MythicRaid = 3722365 };
--Tier 1 New Sets
ItemIDsDatabase[11533] = { 6011533, 11533, 311533, 211533 };
ItemIDsDatabase[11534] = { 6011534, 11534, 311534, 211534 };
ItemIDsDatabase[11535] = { 6011535, 11535, 311535, 211535 };
ItemIDsDatabase[11536] = { 6011536, 11536, 311536, 211536 };
ItemIDsDatabase[11537] = { 6011537, 11537, 311537, 211537 };
ItemIDsDatabase[11538] = { 6011538, 11538, 311538, 211538 };
ItemIDsDatabase[11531] = { 6011531, 11531, 311531, 211531 };
ItemIDsDatabase[11532] = { 6011532, 11532, 311532, 211532 };
ItemIDsDatabase[11789] = { 6011789, 11789, 311789, 211789 };
ItemIDsDatabase[11790] = { 6011790, 11790, 311790, 211790 };
ItemIDsDatabase[11791] = { 6011791, 11791, 311791, 211791 };
ItemIDsDatabase[11792] = { 6011792, 11792, 311792, 211792 };
ItemIDsDatabase[11793] = { 6011793, 11793, 311793, 211793 };
ItemIDsDatabase[11794] = { 6011794, 11794, 311794, 211794 };
ItemIDsDatabase[11795] = { 6011795, 11795, 311795, 211795 };
ItemIDsDatabase[11796] = { 6011796, 11796, 311796, 211796 };
ItemIDsDatabase[13432] = { 6013432, 13432, 313432, 213432 };
ItemIDsDatabase[13433] = { 6013433, 13433, 313433, 213433 };
ItemIDsDatabase[13434] = { 6013434, 13434, 313434, 213434 };
ItemIDsDatabase[13435] = { 6013435, 13435, 313435, 213435 };
ItemIDsDatabase[13436] = { 6013436, 13436, 313436, 213436 };
ItemIDsDatabase[13437] = { 6013437, 13437, 313437, 213437 };
ItemIDsDatabase[13438] = { 6013438, 13438, 313438, 213438 };
ItemIDsDatabase[13439] = { 6013439, 13439, 313439, 213439 };
--Tier 2 Tokens
ItemIDsDatabase[2522460] = {2522460, 2522460, 2622460, 2722460};
ItemIDsDatabase[2522461] = {2522461, 2522461, 2622461, 2722461};
ItemIDsDatabase[2522450] = {2522450, 2522450, 2622450, 2722450};
ItemIDsDatabase[2522462] = {2522462, 2522462, 2622462, 2722462};
ItemIDsDatabase[2522464] = {2522464, 2522464, 2622464, 2722464};
ItemIDsDatabase[2522463] = {2522463, 2522463, 2622463, 2722463};
ItemIDsDatabase[2522459] = {2522459, 2522459, 2622459, 2722459};
ItemIDsDatabase[2522465] = {2522465, 2522465, 2622465, 2722465};
ItemIDsDatabase[2522460] = { 2522460, 2522460, 2622460, 2722460, MythicRaid = 3722460 };
ItemIDsDatabase[2522461] = { 2522461, 2522461, 2622461, 2722461, MythicRaid = 3722461 };
ItemIDsDatabase[2522450] = { 2522450, 2522450, 2622450, 2722450, MythicRaid = 3722450 };
ItemIDsDatabase[2522462] = { 2522462, 2522462, 2622462, 2722462, MythicRaid = 3722462 };
ItemIDsDatabase[2522464] = { 2522464, 2522464, 2622464, 2722464, MythicRaid = 3722464 };
ItemIDsDatabase[2522463] = { 2522463, 2522463, 2622463, 2722463, MythicRaid = 3722463 };
ItemIDsDatabase[2522459] = { 2522459, 2522459, 2622459, 2722459, MythicRaid = 3722459 };
ItemIDsDatabase[2522465] = { 2522465, 2522465, 2622465, 2722465, MythicRaid = 3722465 };
--Tier 3 Tokens
ItemIDsDatabase[22353] = {22353, 22353, 102278, 222353};
ItemIDsDatabase[22354] = {22354, 22354, 102286, 222354};
ItemIDsDatabase[22349] = {22349, 22349, 102264, 222349};
ItemIDsDatabase[22355] = {22355, 22355, 102262, 222355};
ItemIDsDatabase[22357] = {22357, 22357, 102268, 222357};
ItemIDsDatabase[22356] = {22356, 22356, 102300, 222356};
ItemIDsDatabase[22352] = {22352, 22352, 102284, 222352};
ItemIDsDatabase[22358] = {22358, 22358, 102290, 222358};
ItemIDsDatabase[22353] = { 22353, 22353, 102278, 222353 };
ItemIDsDatabase[22354] = { 22354, 22354, 102286, 222354 };
ItemIDsDatabase[22349] = { 22349, 22349, 102264, 222349 };
ItemIDsDatabase[22355] = { 22355, 22355, 102262, 222355 };
ItemIDsDatabase[22357] = { 22357, 22357, 102268, 222357 };
ItemIDsDatabase[22356] = { 22356, 22356, 102300, 222356 };
ItemIDsDatabase[22352] = { 22352, 22352, 102284, 222352 };
ItemIDsDatabase[22358] = { 22358, 22358, 102290, 222358 };
--Tier 4 Tokens
ItemIDsDatabase[29761] = {29761, 29761, 329761, 229761};
ItemIDsDatabase[29764] = {29764, 29764, 329764, 229764};
ItemIDsDatabase[29753] = {29753, 29753, 329753, 229753};
ItemIDsDatabase[29758] = {29758, 29758, 329758, 229758};
ItemIDsDatabase[29767] = {29767, 29767, 329767, 229767};
ItemIDsDatabase[29761] = { 29761, 29761, 329761, 229761 };
ItemIDsDatabase[29764] = { 29764, 29764, 329764, 229764 };
ItemIDsDatabase[29753] = { 29753, 29753, 329753, 229753 };
ItemIDsDatabase[29758] = { 29758, 29758, 329758, 229758 };
ItemIDsDatabase[29767] = { 29767, 29767, 329767, 229767 };
--Tier 5 Tokens
ItemIDsDatabase[30243] = {30243, 30243, 330243, 230243};
ItemIDsDatabase[30249] = {30249, 30249, 330249, 230249};
ItemIDsDatabase[30237] = {30237, 30237, 330237, 230237};
ItemIDsDatabase[30240] = {30240, 30240, 330240, 230240};
ItemIDsDatabase[30246] = {30246, 30246, 30246, 230246};
ItemIDsDatabase[30243] = { 30243, 30243, 330243, 230243 };
ItemIDsDatabase[30249] = { 30249, 30249, 330249, 230249 };
ItemIDsDatabase[30237] = { 30237, 30237, 330237, 230237 };
ItemIDsDatabase[30240] = { 30240, 30240, 330240, 230240 };
ItemIDsDatabase[30246] = { 30246, 30246, 330246, 230246 };
--Druid
ItemIDsDatabase[29098] = {6029098, 29098, 314712, 214712};
ItemIDsDatabase[29100] = {6029100, 29100, 314714, 214714};
ItemIDsDatabase[29096] = {6029096, 29096, 314710, 214710};
ItemIDsDatabase[29097] = {6029097, 29097, 314711, 214711};
ItemIDsDatabase[29099] = {6029099, 29099, 314713, 214713};
ItemIDsDatabase[29098] = { 6029098, 29098, 314712, 214712 };
ItemIDsDatabase[29100] = { 6029100, 29100, 314714, 214714 };
ItemIDsDatabase[29096] = { 6029096, 29096, 314710, 214710 };
ItemIDsDatabase[29097] = { 6029097, 29097, 314711, 214711 };
ItemIDsDatabase[29099] = { 6029099, 29099, 314713, 214713 };
--ZA New Items
ItemIDsDatabase[21824] = {6021824, 21824, 321824, 221824};
ItemIDsDatabase[24574] = {6024574, 24574, 324574, 224574};
ItemIDsDatabase[28354] = {6028354, 28354, 328354, 228354};
ItemIDsDatabase[33059] = {6033059, 33059, 333059, 233059};
ItemIDsDatabase[33983] = {6033983, 33983, 333983, 233983};
ItemIDsDatabase[39755] = {6039755, 39755, 339755, 239755};
ItemIDsDatabase[33533] = {6033533, 33533, 333533, 233533};
ItemIDsDatabase[33979] = {6033979, 33979, 333979, 233979};
ItemIDsDatabase[34071] = {6034071, 34071, 334071, 234071};
ItemIDsDatabase[38634] = {6038634, 38634, 338634, 238634};
ItemIDsDatabase[33500] = {6033500, 33500, 333500, 233500};
ItemIDsDatabase[33496] = {6033496, 33496, 333496, 233496};
ItemIDsDatabase[33498] = {6033498, 33498, 333498, 233498};
ItemIDsDatabase[33971] = {6033971, 33971, 333971, 233971};
ItemIDsDatabase[33495] = {6033495, 33495, 333495, 233495};
ItemIDsDatabase[33480] = {6033480, 33480, 333480, 233480};
ItemIDsDatabase[33591] = {6033591, 33591, 333591, 233591};
ItemIDsDatabase[33590] = {6033590, 33590, 333590, 233590};
ItemIDsDatabase[33481] = {6033481, 33481, 333481, 233481};
ItemIDsDatabase[33492] = {6033492, 33492, 333492, 233492};
ItemIDsDatabase[33499] = {6033499, 33499, 333499, 233499};
ItemIDsDatabase[33805] = {6033805, 33805, 333805, 233805};
ItemIDsDatabase[33491] = {6033491, 33491, 333491, 233491};
ItemIDsDatabase[33490] = {6033490, 33490, 333490, 233490};
ItemIDsDatabase[33489] = {6033489, 33489, 333489, 233489};
ItemIDsDatabase[33483] = {6033483, 33483, 333483, 233483};
ItemIDsDatabase[33493] = {6033493, 33493, 333493, 233493};
ItemIDsDatabase[33497] = {6033497, 33497, 333497, 233497};
ItemIDsDatabase[33494] = {6033494, 33494, 333494, 233494};
ItemIDsDatabase[24537] = {6024537, 24537, 324537, 224537};
ItemIDsDatabase[21824] = { 6021824, 21824, 321824, 221824 };
ItemIDsDatabase[24574] = { 6024574, 24574, 324574, 224574 };
ItemIDsDatabase[28354] = { 6028354, 28354, 328354, 228354 };
ItemIDsDatabase[33059] = { 6033059, 33059, 333059, 233059 };
ItemIDsDatabase[33983] = { 6033983, 33983, 333983, 233983 };
ItemIDsDatabase[39755] = { 6039755, 39755, 339755, 239755 };
ItemIDsDatabase[33533] = { 6033533, 33533, 333533, 233533 };
ItemIDsDatabase[33979] = { 6033979, 33979, 333979, 233979 };
ItemIDsDatabase[34071] = { 6034071, 34071, 334071, 234071 };
ItemIDsDatabase[38634] = { 6038634, 38634, 338634, 238634 };
ItemIDsDatabase[33500] = { 6033500, 33500, 333500, 233500 };
ItemIDsDatabase[33496] = { 6033496, 33496, 333496, 233496 };
ItemIDsDatabase[33498] = { 6033498, 33498, 333498, 233498 };
ItemIDsDatabase[33971] = { 6033971, 33971, 333971, 233971 };
ItemIDsDatabase[33495] = { 6033495, 33495, 333495, 233495 };
ItemIDsDatabase[33480] = { 6033480, 33480, 333480, 233480 };
ItemIDsDatabase[33591] = { 6033591, 33591, 333591, 233591 };
ItemIDsDatabase[33590] = { 6033590, 33590, 333590, 233590 };
ItemIDsDatabase[33481] = { 6033481, 33481, 333481, 233481 };
ItemIDsDatabase[33492] = { 6033492, 33492, 333492, 233492 };
ItemIDsDatabase[33499] = { 6033499, 33499, 333499, 233499 };
ItemIDsDatabase[33805] = { 6033805, 33805, 333805, 233805 };
ItemIDsDatabase[33491] = { 6033491, 33491, 333491, 233491 };
ItemIDsDatabase[33490] = { 6033490, 33490, 333490, 233490 };
ItemIDsDatabase[33489] = { 6033489, 33489, 333489, 233489 };
ItemIDsDatabase[33483] = { 6033483, 33483, 333483, 233483 };
ItemIDsDatabase[33493] = { 6033493, 33493, 333493, 233493 };
ItemIDsDatabase[33497] = { 6033497, 33497, 333497, 233497 };
ItemIDsDatabase[33494] = { 6033494, 33494, 333494, 233494 };
ItemIDsDatabase[24537] = { 6024537, 24537, 324537, 224537 };
--ZA Bears
ItemIDsDatabase[1333809] = {1333809, 1333809, 1433809, 1233809};
ItemIDsDatabase[1333809] = { 1333809, 1333809, 1433809, 1233809 };
--intact vial of kael'thas sunstrider
ItemIDsDatabase[450001] = {450001, 450001, 450003, 450005};
ItemIDsDatabase[450000] = {450000, 450000, 450002, 450004};
ItemIDsDatabase[450001] = { 450001, 450001, 450003, 450005, MythicRaid = 1450003 };
ItemIDsDatabase[450000] = { 450000, 450000, 450002, 450004, MythicRaid = 1450002 };
for _, v in pairs(ItemIDsDatabase) do
if not v["MythicRaid"] then
v["MythicRaid"] = tonumber("13"..v[2]);
end
end
+30 -19
View File
@@ -69,7 +69,9 @@ function AtlasLootItem_OnEnter(self)
if ( AtlasLoot.db.profile.ItemIDs ) then
AtlasLootTooltip:AddLine(BLUE..AL["ItemID:"].." "..self.itemID, nil, nil, nil, 1);
end
if( self.droprate ~= nil) then
if( self.droprate ~= nil) and ( self.droprate:match("=EI=") ) then
AtlasLootTooltip:AddLine(AL["Extra Info: "]..string.sub(self.droprate, 5), 1, 1, 0);
elseif( self.droprate ~= nil) then
AtlasLootTooltip:AddLine(AL["Drop Rate: "]..self.droprate, 1, 1, 0);
end
if( DKP ~= nil and DKP ~= "" ) then
@@ -96,8 +98,10 @@ function AtlasLootItem_OnEnter(self)
if ( AtlasLoot.db.profile.ItemIDs ) then
AtlasLootTooltip:AddLine(BLUE..AL["ItemID:"].." "..self.itemID, nil, nil, nil, 1);
end
if( self.droprate ~= nil) then
AtlasLootTooltip:AddLine(AL["Drop Rate: "]..self.droprate, 1, 1, 0, 1);
if( self.droprate ~= nil) and (self.droprate:match("=EI=")) then
AtlasLootTooltip:AddLine(AL["Extra Info: "]..string.sub(self.droprate, 5), 1, 1, 0);
elseif( self.droprate ~= nil) then
AtlasLootTooltip:AddLine(AL["Drop Rate: "]..self.droprate, 1, 1, 0);
end
if( DKP ~= nil and DKP ~= "" ) then
AtlasLootTooltip:AddLine(RED..DKP.." "..AL["DKP"], 1, 1, 0);
@@ -118,8 +122,10 @@ function AtlasLootItem_OnEnter(self)
if ( AtlasLoot.db.profile.ItemIDs ) then
GameTooltip:AddLine(BLUE..AL["ItemID:"].." "..self.itemID, nil, nil, nil, 1);
end
if( self.droprate ~= nil) then
GameTooltip:AddLine(AL["Drop Rate: "]..self.droprate, 1, 1, 0);
if( self.droprate ~= nil) and ( self.droprate:match("=EI=") ) then
AtlasLootTooltip:AddLine(AL["Extra Info: "]..string.sub(self.droprate, 5), 1, 1, 0);
elseif( self.droprate ~= nil) then
AtlasLootTooltip:AddLine(AL["Drop Rate: "]..self.droprate, 1, 1, 0);
end
if( DKP ~= nil and DKP ~= "" ) then
GameTooltip:AddLine(RED..DKP.." "..AL["DKP"], 1, 1, 0);
@@ -141,7 +147,9 @@ function AtlasLootItem_OnEnter(self)
if ( AtlasLoot.db.profile.ItemIDs ) then
AtlasLootTooltip:AddLine(BLUE..AL["ItemID:"].." "..self.itemID, nil, nil, nil, 1);
end
if( self.droprate ~= nil) then
if( self.droprate ~= nil) and ( self.droprate:match("=EI=") ) then
AtlasLootTooltip:AddLine(AL["Extra Info: "]..string.sub(self.droprate, 5), 1, 1, 0);
elseif( self.droprate ~= nil) then
AtlasLootTooltip:AddLine(AL["Drop Rate: "]..self.droprate, 1, 1, 0);
end
if( DKP ~= nil and DKP ~= "" ) then
@@ -154,15 +162,6 @@ function AtlasLootItem_OnEnter(self)
if((AtlasLoot.db.profile.EquipCompare and ((not EquipCompare_RegisterTooltip) or (not EquipCompare_Enabled)))) or IsShiftKeyDown() then
AtlasLootItem_ShowCompareItem(self); --- CALL MISSING METHOD TO SHOW 2 TOOLTIPS (Item Compare)
end
else
AtlasLootTooltip:SetOwner(self, "ANCHOR_RIGHT", -(self:GetWidth() / 2), 24);
AtlasLootTooltip:ClearLines();
AtlasLootTooltip:AddLine(RED..AL["Item Unavailable"], nil, nil, nil, 1);
AtlasLootTooltip:AddLine(BLUE..AL["ItemID:"].." "..self.itemID, nil, nil, nil, 1);
AtlasLootTooltip:AddLine(AL["self item is unsafe. To view self item without the risk of disconnection, you need to have first seen it in the game world. This is a restriction enforced by Blizzard since Patch 1.10."], nil, nil, nil, 1);
AtlasLootTooltip:AddLine(" ");
AtlasLootTooltip:AddLine(AL["You can right-click to attempt to query the server. You may be disconnected."], nil, nil, nil, 1);
AtlasLootTooltip:Show();
end
end
end
@@ -224,7 +223,7 @@ function AtlasLootItem_OnClick(self ,arg1)
if arg1=="RightButton" and ATLASLOOT_ITEM_UNLOCK then
AtlasLoot:MoveWishlistItem("Down",self.number);
elseif IsAltKeyDown() and arg1=="LeftButton" and ATLASLOOT_ITEM_UNLOCK then
StaticPopup_Show ("ATLASLOOT_ADD_CUSTOMHEADER");
StaticPopup_Show("ATLASLOOT_ADD_CUSTOMHEADER");
StaticPopupDialogs.ATLASLOOT_ADD_CUSTOMHEADER.num = self.number;
elseif (arg1=="LeftButton") and ATLASLOOT_ITEM_UNLOCK then
AtlasLoot:MoveWishlistItem("Up",self.number);
@@ -252,10 +251,10 @@ function AtlasLootItem_OnClick(self ,arg1)
else
if(AtlasLootItemsFrame.refresh[1] == "SearchResult") then
local datID, _, datPage = strsplit("|", self.sourcePage);
AtlasLoot_ShowWishListDropDown(self.itemID, self.itemTexture, _G["AtlasLootItem_"..self:GetID().."_Name"]:GetText(),
AtlasLoot_Data[datID][tonumber(datPage)].Name, self.sourcePage, self);
AtlasLoot_ShowWishListDropDown(self.itemID, self.itemTexture, _G["AtlasLootItem_"..self:GetID().."_Name"]:GetText(), AtlasLoot_Data[datID][tonumber(datPage)].Name,
datID .. "|" .. "AtlasLoot_Data" .. "|" .. tostring(datPage), self);
else
AtlasLoot_ShowWishListDropDown(self.itemID, self.itemTexture, _G["AtlasLootItem_"..self:GetID().."_Name"]:GetText(),
AtlasLoot_ShowWishListDropDown(self.itemID, self.itemTexture, _G["AtlasLootItem_"..self:GetID().."_Name"]:GetText(),
AtlasLoot_BossName:GetText(), self.dataID .. "|" .. "AtlasLoot_Data" .. "|" .. tostring(self.tablenum), self);
end
end
@@ -264,6 +263,12 @@ function AtlasLootItem_OnClick(self ,arg1)
if(dataID and dataSource) then
AtlasLoot:ShowItemsFrame(dataID, "AtlasLoot_Data", tonumber(dataPage));
end
elseif( self.sourcePage and self.sourcePage:match("=LT=") ) then
local dataID, dataSource, dataPage = strsplit("|", string.sub(self.sourcePage, 5));
if(dataID and dataSource) then
ATLASLOOT_BACKENABLED = true;
AtlasLoot:ShowItemsFrame(dataID, "AtlasLoot_Data", tonumber(dataPage));
end
elseif (arg1=="LeftButton") and self.sourcePage then
--Create token table if there isnt one
if AtlasLoot_TokenData[self.sourcePage] == nil then
@@ -297,6 +302,12 @@ function AtlasLootItem_OnClick(self ,arg1)
if(dataID and dataSource) then
AtlasLoot:ShowItemsFrame(dataID, "AtlasLoot_Data", tonumber(dataPage));
end
elseif( self.sourcePage and self.sourcePage:match("=LT=") ) then
local dataID, dataSource, dataPage = strsplit("|", string.sub(self.sourcePage, 5));
if(dataID and dataSource) then
ATLASLOOT_BACKENABLED = true;
AtlasLoot:ShowItemsFrame(dataID, "AtlasLoot_Data", tonumber(dataPage));
end
end
end
end
+3 -29
View File
@@ -181,6 +181,8 @@ function AtlasLoot_DisplayHelp()
WHITE..AL["While on the wishlist screen, just Alt+Left Click on an item to delete it."].."\n\n"..
ORANGE..AL["What else does the wishlist do?"].."\n"..
WHITE..AL["If you Left Click any item on the wishlist, you can jump to the loot page the item comes from. Also, on a loot page any item already in your wishlist is marked with a yellow star."].."\n\n"..
ORANGE..AL["How to set of change a page filter:"].."\n"..
WHITE..AL["If you Right Click on the filter check box you will get a drop downmenu with a list of filters. Click the filter you want to use or click add filter set to add new custom filters."].."\n\n"..
ORANGE..AL["HELP!! I have broken the mod somehow!"].."\n"..
WHITE..AL["Use the reset buttons available in the options menu, or type '/al reset' in your chat window."].."\n\n"..
GREY..AL["For further help, see our website and forums: "]..GREEN.."https://discord.gg/uYCE2X2FgA"
@@ -235,8 +237,6 @@ function AtlasLoot_OptionsOnShow()
UIDropDownMenu_SetWidth(AtlasLoot_SelectLootBrowserStyle, 150);
end
function AtlasLoot_SelectLootBrowserStyle_OnClick()
local thisID = this:GetID();
UIDropDownMenu_SetSelectedID(AtlasLoot_SelectLootBrowserStyle, thisID);
@@ -249,32 +249,6 @@ function AtlasLoot_SelectLootBrowserStyle_OnClick()
AtlasLoot_OptionsOnShow();
end
local Authors = {
["Calî"] = "Arthas",
["Lâg"] = "Arthas",
--["Daviesh"] = "Thaurissan",
["Hegarol"] = "Dun Morogh",
}
function AtlasLoot_UnitTarget()
local name = GameTooltip:GetUnit()
if UnitName("mouseover") == name then
local _, realm = UnitName("mouseover")
if not realm then
realm = GetRealmName()
end;
if name and Authors[name] then
if Authors[name] == realm then
GameTooltip:AddLine("AtlasLoot Author |TInterface\\AddOns\\AtlasLoot\\Images\\gold:0|t", 0, 1, 0 )
end
end
end
end
GameTooltip:HookScript("OnTooltipSetUnit", AtlasLoot_UnitTarget)
local helpframe = CreateFrame("Frame", "AtlasLootHelpFrame")
helpframe:SetSize(425,450);
helpframe:Hide();
@@ -403,7 +377,7 @@ local fooshow = CreateFrame("Button", "AtlasLootOptionsFrame_FuBarShow", AtlasLo
end
end);
local foohide = CreateFrame("Button", "AtlasLootOptionsFrame_FuBarShow", AtlasLootOptionsFrame, "OptionsButtonTemplate");
local foohide = CreateFrame("Button", "AtlasLootOptionsFrame_FuBarHide", AtlasLootOptionsFrame, "OptionsButtonTemplate");
foohide:SetSize(150,25);
foohide:SetText(AL["Hide FuBar Plugin"]);
foohide:SetPoint("TOP", "AtlasLootOptionsFrame", "TOP", 85, -390);
+2 -2
View File
@@ -7,7 +7,7 @@ local BLUE = "|cff0070dd";
local ORANGE = "|cffFF8400";
local AL = LibStub("AceLocale-3.0"):GetLocale("AtlasLoot");
local modules = {"AtlasLoot_BurningCrusade", "AtlasLoot_Crafting", "AtlasLoot_OriginalWoW", "AtlasLoot_WorldEvents", "AtlasLoot_WrathoftheLichKing"};
local modules = {"AtlasLoot_BurningCrusade", "AtlasLoot_Vanity", "AtlasLoot_Crafting", "AtlasLoot_OriginalWoW", "AtlasLoot_WorldEvents", "AtlasLoot_WrathoftheLichKing"};
local currentPage = 1;
local SearchResult = nil;
@@ -665,7 +665,7 @@ local function DoSearch(searchText)
end
else
local difficultyCap = min(AtlasLoot_Difficulty:getMaxDifficulty(data.Type), ItemindexID);
itemId = AtlasLoot:FindId(itemId, difficultyCap) or 2;
itemId = AtlasLoot:FindId(itemId, difficultyCap, data.Type) or 2;
local item = Item:CreateFromID(itemId);
+2 -2
View File
@@ -1,5 +1,5 @@
local AL = LibStub("AceLocale-3.0"):GetLocale("AtlasLoot");
local modules = {"AtlasLoot_BurningCrusade", "AtlasLoot_Crafting", "AtlasLoot_OriginalWoW", "AtlasLoot_WorldEvents", "AtlasLoot_WrathoftheLichKing"};
local modules = {"AtlasLoot_BurningCrusade", "AtlasLoot_Vanity", "AtlasLoot_Crafting", "AtlasLoot_OriginalWoW", "AtlasLoot_WorldEvents", "AtlasLoot_WrathoftheLichKing"};
AtlasLoot_QualityMenu = AceLibrary("Dewdrop-2.0");
AtlasLoot_DifficultyMenu = AceLibrary("Dewdrop-2.0");
@@ -144,7 +144,7 @@ AtlasLoot_AdvancedSearchArguments = {
["Primary Stats"] = {{"Stamina", "sta"}, {"Strength", "str"}, {"Agility", "agi"}, {"Intellect", "int"}, {"Spirit", "spi"}}
},
[2] = {
["Secondary Stats"] = {{"Attack Power", "ap"}, {"Spell Power", "sp"}, {"Crit", "crit"}, {"Hit", "hit"}, {"Haste", "haste"}, {"Expertise", "exp"}, {"Armor Pen", "arp"}, {"Spell Pen", "spp"}}
["Secondary Stats"] = {{"Attack Power", "ap"}, {"Spell Power", "sp"}, {"Crit", "crit"}, {"Hit", "hit"}, {"Haste", "haste"}, {"Expertise", "exp"}, {"Armor Pen", "arp"}, {"Spell Pen", "spp"}, {"Mana Per 5", "mp5"}}
},
[3] = {
["Defensive Stats"] = {{"Defense", "def"}, {"Dodge", "dodge"}, {"Parry", "parry"}, {"Block", "block"}, {"Block Value", "bv"}, {"Resilience", "res"}}
+1
View File
@@ -1120,6 +1120,7 @@ function AtlasLoot_FixText(text)
text = gsub(text, "#halaaresearch#", "|TInterface\\Icons\\INV_Misc_Rune_09:0|t");
text = gsub(text, "#spiritshard#", "|TInterface\\Icons\\INV_Jewelry_FrostwolfTrinket_04:0|t");
text = gsub(text, "#wintergrasp#", "|TInterface\\Icons\\INV_Misc_Platnumdisks:0|t");
text = gsub(text, "#tokenofprestige#", "|TInterface\\Icons\\Spell_Holy_MindSooth:0|t");
text = gsub(text, "#wintergraspmark#", "|TInterface\\Icons\\INV_Jewelry_Ring_66:0|t");
text = gsub(text, "#venturecoin#", "|TInterface\\Icons\\INV_Misc_Coin_16:0|t");
text = gsub(text, "#heroic#", "|TInterface\\Icons\\Spell_Holy_ChampionsBond:0|t");
+34 -12
View File
@@ -77,7 +77,12 @@ function AtlasLoot_WishListAddDropClick(typ, arg2, arg3, arg4)
DEFAULT_CHAT_FRAME:AddMessage(BLUE..AL["AtlasLoot"]..": "..AtlasLoot_FixText(itemName)..RED..AL[" already in the WishList!"]..WHITE.." ("..AtlasLootWishList["Own"][arg2].Name..")");
return;
end
table.insert(AtlasLootWishList["Own"][arg2], { #AtlasLootWishList["Own"][arg2] + 1, itemID, itemTexture, itemName, AtlasLoot_Data[AtlasLootItemsFrame.refresh[1]].Name, "", "", sourcePage});
if(AtlasLootItemsFrame.refresh[1] == "SearchResult") then
local dataID, _, dataPage = strsplit("|", sourcePage);
table.insert(AtlasLootWishList["Own"][arg2], { #AtlasLootWishList["Own"][arg2] + 1, itemID, itemTexture, itemName, AtlasLoot_Data[dataID][tonumber(dataPage)].Name, "", "", sourcePage});
else
table.insert(AtlasLootWishList["Own"][arg2], { #AtlasLootWishList["Own"][arg2] + 1, itemID, itemTexture, itemName, AtlasLoot_Data[AtlasLootItemsFrame.refresh[1]].Name, "", "", sourcePage});
end
if AtlasLootWishList["Options"][playerName]["AutoSortWishlist"] then
AtlasLoot:SortWishList(nil,"Own", arg2);
end
@@ -98,12 +103,12 @@ function AtlasLoot_WishListAddDropClick(typ, arg2, arg3, arg4)
end
end
local function CloneTable(t) -- return a copy of the table t
function AtlasLoot:CloneTable(t) -- return a copy of the table t
local new = {}; -- create a new table
local i, v = next(t, nil); -- i is an index of t, v = t[i]
while i do
if type(v)=="table" then
v=CloneTable(v);
v=AtlasLoot:CloneTable(v);
end
new[i] = v;
i, v = next(t, i); -- get next index
@@ -966,14 +971,29 @@ function AtlasLoot_GetWishList(wlstrg,sendername)
local success, wltab = ALModule:Deserialize(wlstrg);
if success then
for i,v in ipairs(wltab) do
v[8] = v[8].."|"..v[9].."|"..v[10];
table.remove(v,9)
table.remove(v,10)
if v[8] then
v[8] = v[8].."|"..v[9].."|"..v[10];
table.remove(v,9)
table.remove(v,10)
end
end
table.insert(AtlasLootWishList["Shared"],wltab)
end
end
local EscapePatterns={
"|[cC]%x%x%x%x%x%x";
"|T[^|]+|t";
"|H[^|]+|h%[(.-)%]|h";
};
local function StripEscapes(str)
for _,pattern in ipairs(EscapePatterns) do
str=str:gsub(pattern,pattern:find("%(.-[^%%]%)") and "%1" or "");
end
return str:gsub("^%s*(.-)%s*$","%1"):gsub("%s+"," ");-- Strip extra spaces
end
--[[
ALModule:OnCommReceived(prefix, message, distribution, sender)
Incomming messages from AceComm
@@ -986,13 +1006,15 @@ function ALModule:OnCommReceived(prefix, message, distribution, sender)
elseif message == "FinishSend" then
SpamFilter[string.lower(sender)] = GetTime()
elseif message == "AcceptWishlist" then
local wsltable = CloneTable(_G[curtable[2]][curtable[1]][curtable[3]]);
local wsltable = AtlasLoot:CloneTable(_G[curtable[2]][curtable[1]][curtable[3]]);
for i,v in ipairs(wsltable) do
v[4] = ""
local dataID, dataSource, dataPage = strsplit("|", v[8])
v[8] = dataID;
v[9] = dataSource;
v[10] = dataPage;
v[4] = gsub(StripEscapes(v[4]),"FF","");
if v[8] then
local dataID, dataSource, dataPage = strsplit("|", v[8])
v[8] = dataID;
v[9] = dataSource;
v[10] = dataPage;
end
end
local sendData = ALModule:Serialize(wsltable);
ALModule:SendCommMessage("AtlasLootWishlist", sendData, "WHISPER", sender);
+177 -172
View File
@@ -35,11 +35,13 @@ Called whenever the loot browser is shown and sets up buttons and loot tables
function AtlasLootDefaultFrame_OnShow()
--Definition of where I want the loot table to be shown
--Remove the selection of a loot table in Atlas
AtlasLootItemsFrame.activeBoss = nil;
AtlasLootItemsFrame.activeBoss = nil;
--Set the item table to the loot table
--Show the last displayed loot table
local lastboss = AtlasLoot.db.profile.LastBoss;
if AtlasLoot.db.profile.AutoCurrentInstance and AtlasLoot:ShowInstance() then elseif lastboss and lastboss[4] then
local lastboss = AtlasLoot.db.profile.LastBoss[AtlasLoot_Expac];
if AtlasLoot.db.profile.AutoCurrentInstance and AtlasLoot:ShowInstance() then
return;
elseif lastboss and lastboss[4] then
ATLASLOOT_CURRENTTABLE = lastboss[5];
ATLASLOOT_LASTMODULE = lastboss[4];
AtlasLoot:IsLootTableAvailable(lastboss[4]);
@@ -54,8 +56,8 @@ end
-- Show the Instance you are in
function AtlasLoot:ShowInstance()
for i,v in pairs(AtlasLoot_SubMenus) do
for n,t in ipairs(v) do
for i, v in pairs(AtlasLoot_SubMenus) do
for n, t in ipairs(v) do
if t[4] == BabbleZone[GetRealZoneText()] then
ATLASLOOT_CURRENTTABLE = v.SubMenu;
ATLASLOOT_LASTMODULE = v.Module;
@@ -89,6 +91,7 @@ Called when a button in AtlasLoot_Dewdrop is clicked
]]
function AtlasLoot:DewDropClick(tablename, text, tablenum)
ATLASLOOT_FILTER_ENABLE = false;
ATLASLOOT_BACKENABLED = false;
AtlasLootFilterCheck:SetChecked(false);
tablename = tablename .. AtlasLoot_Expac;
ATLASLOOT_CURRENTTABLE = tablename;
@@ -114,6 +117,7 @@ text - Heading for the loot table
Called when a button in AtlasLoot_DewdropSubMenu is clicked
]]
function AtlasLoot:DewDropSubMenuClick(tablename)
ATLASLOOT_BACKENABLED = false;
--Show the select loot table
local tablenum = AtlasLoot_Data[tablename].Loadfirst or 1;
--Show the table that has been selected
@@ -123,12 +127,13 @@ end
--[[
AtlasLoot:DewdropExpansionMenuClick(expansion, name):
tablename - Name of the loot table in the database
text - Heading for the loot table
Called when a button in AtlasLoot_DewdropSubMenu is clicked
expansion - expansion to load
name - label for the expansion
Called when a button in DewdropExpansionMenuClick is clicked
]]
function AtlasLoot:DewdropExpansionMenuClick(expansion, name)
AtlasLootDefaultFrame_ExpansionMenu:SetText(name);
ATLASLOOT_BACKENABLED = false;
AtlasLootDefaultFrame_ExpansionMenu:SetText(name);
AtlasLoot_DewdropExpansionMenu:Close(1);
AtlasLoot_Expac = expansion;
if ATLASLOOT_CURRENTTABLE then
@@ -157,22 +162,22 @@ function AtlasLoot:DewdropExpansionMenuRegister()
'point', function(parent)
return "TOP", "BOTTOM"
end,
'children', function(level, value)
if AtlasLoot_ExpansionMenu then
for k,v in ipairs(AtlasLoot_ExpansionMenu) do
'children', function(level, value)
if AtlasLoot_ExpansionMenu then
for k, v in ipairs(AtlasLoot_ExpansionMenu) do
if type(v) == "table" then
--If a link to show a expansion menu
AtlasLoot_Dewdrop:AddLine(
'text', v[1],
'textR', 1,
'textG', 0.82,
'textB', 0,
'func', function(arg1,arg2,arg3) AtlasLoot:DewdropExpansionMenuClick(arg1,arg2,arg3) end,
'arg1', v[2],
'arg2', v[1],
'arg3', k,
'notCheckable', true
)
--If a link to show a expansion menu
AtlasLoot_Dewdrop:AddLine(
'text', v[1],
'textR', 1,
'textG', 0.82,
'textB', 0,
'func', function(arg1, arg2, arg3) AtlasLoot:DewdropExpansionMenuClick(arg1, arg2, arg3) end,
'arg1', v[2],
'arg2', v[1],
'arg3', k,
'notCheckable', true
)
end
end
end
@@ -184,10 +189,10 @@ function AtlasLoot:DewdropExpansionMenuRegister()
'textB', 1,
'func', function() AtlasLoot_Dewdrop:Close() end,
'notCheckable', true
)
end,
'dontHook', true
)
)
end,
'dontHook', true
)
end
--[[
@@ -196,45 +201,45 @@ loottable - Table defining the sub menu
Generates the sub menu needed by passing a table of loot tables and titles
]]
function AtlasLoot:DewdropSubMenuRegister(loottable)
AtlasLoot_DewdropSubMenu:Register(AtlasLootDefaultFrame_SubMenu,
AtlasLoot_DewdropSubMenu:Register(AtlasLootDefaultFrame_SubMenu,
'point', function(parent)
return "TOP", "BOTTOM"
end,
'children', function(level, value)
for k,v in pairs(loottable) do
if type(v) == "table" then
if v[3] == "Header" then
AtlasLoot_DewdropSubMenu:AddLine(
'text', v[1],
'textR', 0.2,
'textG', 0.82,
'textB', 0.5,
'func', function(arg1) AtlasLoot:DewDropSubMenuClick(arg1) end,
'arg1', v[2],
'notCheckable', true
)
else
AtlasLoot_DewdropSubMenu:AddLine(
'text', AtlasLoot_Data[v[2]].Name,
'func', function(arg1,arg2) AtlasLoot:DewDropSubMenuClick(arg1) end,
'arg1', v[2],
'notCheckable', true
)
end
for k, v in pairs(loottable) do
if type(v) == "table" then
if v[3] == "Header" then
AtlasLoot_DewdropSubMenu:AddLine(
'text', v[1],
'textR', 0.2,
'textG', 0.82,
'textB', 0.5,
'func', function(arg1) AtlasLoot:DewDropSubMenuClick(arg1) end,
'arg1', v[2],
'notCheckable', true
)
else
AtlasLoot_DewdropSubMenu:AddLine(
'text', AtlasLoot_Data[v[2]].Name,
'func', function(arg1, arg2) AtlasLoot:DewDropSubMenuClick(arg1) end,
'arg1', v[2],
'notCheckable', true
)
end
end
--Close button
AtlasLoot_DewdropSubMenu:AddLine(
'text', AL["Close Menu"],
'textR', 0,
'textG', 1,
'textB', 1,
'func', function() AtlasLoot_DewdropSubMenu:Close() end,
'notCheckable', true
)
end,
'dontHook', true
)
end
--Close button
AtlasLoot_DewdropSubMenu:AddLine(
'text', AL["Close Menu"],
'textR', 0,
'textG', 1,
'textB', 1,
'func', function() AtlasLoot_DewdropSubMenu:Close() end,
'notCheckable', true
)
end,
'dontHook', true
)
end
--[[
@@ -242,39 +247,39 @@ AtlasLoot:DewdropRegister:
Constructs the main category menu from a tiered table
]]
function AtlasLoot:DewdropRegister()
AtlasLoot_Dewdrop:Register(AtlasLootDefaultFrame_Menu,
AtlasLoot_Dewdrop:Register(AtlasLootDefaultFrame_Menu,
'point', function(parent)
return "TOP", "BOTTOM"
end,
'children', function(level, value)
if AtlasLoot_Modules then
for k,v in ipairs(AtlasLoot_Modules) do
--If a link to show a submenu
AtlasLoot_Dewdrop:AddLine(
'text', v[1],
'textR', 1,
'textG', 0.82,
'textB', 0,
'func', function(arg1,arg2,arg3) AtlasLoot:DewDropClick(arg1,arg2,arg3) end,
'arg1', v[2],
'arg2', v[1],
'arg3', v[3],
'notCheckable', true
)
end
'children', function(level, value)
if AtlasLoot_Modules then
for k, v in ipairs(AtlasLoot_Modules) do
--If a link to show a submenu
AtlasLoot_Dewdrop:AddLine(
'text', v[1],
'textR', 1,
'textG', 0.82,
'textB', 0,
'func', function(arg1, arg2, arg3) AtlasLoot:DewDropClick(arg1, arg2, arg3) end,
'arg1', v[2],
'arg2', v[1],
'arg3', v[3],
'notCheckable', true
)
end
--Close button
AtlasLoot_Dewdrop:AddLine(
'text', AL["Close Menu"],
'textR', 0,
'textG', 1,
'textB', 1,
'func', function() AtlasLoot_Dewdrop:Close() end,
'notCheckable', true
)
end,
'dontHook', true
)
end
--Close button
AtlasLoot_Dewdrop:AddLine(
'text', AL["Close Menu"],
'textR', 0,
'textG', 1,
'textB', 1,
'func', function() AtlasLoot_Dewdrop:Close() end,
'notCheckable', true
)
end,
'dontHook', true
)
end
--[[
@@ -285,20 +290,20 @@ Create the new Default Frame style
]]
function AtlasLoot:SetNewStyle(style)
local buttons = {
"AtlasLootDefaultFrame_Options",
"AtlasLootDefaultFrame_LoadModules",
"AtlasLootDefaultFrame_Menu",
"AtlasLootDefaultFrame_SubMenu",
"AtlasLootDefaultFrame_ExpansionMenu",
"AtlasLootDefaultFrame_Preset1",
"AtlasLootDefaultFrame_Preset2",
"AtlasLootDefaultFrame_Preset3",
"AtlasLootDefaultFrame_Preset4",
"AtlasLootDefaultFrameSearchButton",
"AtlasLootDefaultFrameSearchClearButton",
"AtlasLootDefaultFrameLastResultButton",
"AtlasLootDefaultFrameWishListButton",
local buttons = {
"AtlasLootDefaultFrame_Options",
"AtlasLootDefaultFrame_LoadModules",
"AtlasLootDefaultFrame_Menu",
"AtlasLootDefaultFrame_SubMenu",
"AtlasLootDefaultFrame_ExpansionMenu",
"AtlasLootDefaultFrame_Preset1",
"AtlasLootDefaultFrame_Preset2",
"AtlasLootDefaultFrame_Preset3",
"AtlasLootDefaultFrame_Preset4",
"AtlasLootDefaultFrameSearchButton",
"AtlasLootDefaultFrameSearchClearButton",
"AtlasLootDefaultFrameLastResultButton",
"AtlasLootDefaultFrameWishListButton",
"AtlasLootDefaultFrameAdvancedSearchButton",
"AtlasLootDefaultFrame_AdvancedSearchPanel_EquipButton",
"AtlasLootDefaultFrame_AdvancedSearchPanel_EquipSubButton",
@@ -308,87 +313,87 @@ function AtlasLoot:SetNewStyle(style)
"AtlasLootDefaultFrame_MapButton",
"AtlasLootDefaultFrame_MapSelectButton",
"AtlasLootDefaultFrame_LoadInstanceButton",
}
}
if style == "new" then
AtlasLootDefaultFrame_LootBackground:SetBackdrop({bgFile = "Interface/AchievementFrame/UI-Achievement-StatsBackground"});
AtlasLootDefaultFrame_LootBackground:SetBackdropColor(1,1,1,0.5);
if style == "new" then
AtlasLootDefaultFrame_LootBackground:SetBackdrop({ bgFile = "Interface/AchievementFrame/UI-Achievement-StatsBackground" });
AtlasLootDefaultFrame_LootBackground:SetBackdropColor(1, 1, 1, 0.5);
AtlasLootDefaultFrame:SetBackdrop({bgFile = "Interface/AchievementFrame/UI-Achievement-AchievementBackground",
edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
edgeSize = 16,
insets = { left = 4, right = 4, top = 4, bottom = 4 }});
AtlasLootDefaultFrame:SetBackdropColor(1,1,1,0.5)
AtlasLootDefaultFrame:SetBackdropBorderColor(1,0.675,0.125,1)
AtlasLootDefaultFrameHeader:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Alert-Background.blp")
AtlasLootDefaultFrameHeader:SetTexCoord(0,0.605,0,0.703)
AtlasLootDefaultFrameHeader:SetWidth(299)
AtlasLootDefaultFrameHeader:SetHeight(60)
AtlasLootDefaultFrameHeader:SetPoint("TOP",AtlasLootDefaultFrame,"TOP",-3,22)
AtlasLootDefaultFrame:SetBackdrop({ bgFile = "Interface/AchievementFrame/UI-Achievement-AchievementBackground",
edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
edgeSize = 16,
insets = { left = 4, right = 4, top = 4, bottom = 4 } });
AtlasLootDefaultFrame:SetBackdropColor(1, 1, 1, 0.5)
AtlasLootDefaultFrame:SetBackdropBorderColor(1, 0.675, 0.125, 1)
AtlasLootDefaultFrameHeader:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Alert-Background.blp")
AtlasLootDefaultFrameHeader:SetTexCoord(0, 0.605, 0, 0.703)
AtlasLootDefaultFrameHeader:SetWidth(299)
AtlasLootDefaultFrameHeader:SetHeight(60)
AtlasLootDefaultFrameHeader:SetPoint("TOP", AtlasLootDefaultFrame, "TOP", -3, 22)
AtlasLootDefaultFrame_Options:SetNormalTexture("Interface/AchievementFrame/UI-Achievement-Category-Background")
AtlasLootDefaultFrame_Options:SetHeight(24)
AtlasLootDefaultFrame_Options:SetPushedTexture("Interface/AchievementFrame/UI-Achievement-Category-Background")
AtlasLootDefaultFrame_Options:SetHeight(24)
AtlasLootDefaultFrame_Options:SetNormalTexture("Interface/AchievementFrame/UI-Achievement-Category-Background")
AtlasLootDefaultFrame_Options:SetHeight(24)
AtlasLootDefaultFrame_Options:SetPushedTexture("Interface/AchievementFrame/UI-Achievement-Category-Background")
AtlasLootDefaultFrame_Options:SetHeight(24)
local function SetButtons(path)
_G[path]:SetNormalTexture("Interface/AchievementFrame/UI-Achievement-Category-Background")
_G[path]:SetHeight(24)
_G[path]:SetPushedTexture("Interface/AchievementFrame/UI-Achievement-Category-Background")
_G[path]:SetHeight(24)
local tex = _G[path]:GetNormalTexture();
tex:SetTexCoord(0, 0.6640625, 0, 0.8);
tex:SetHeight(32)
local function SetButtons(path)
_G[path]:SetNormalTexture("Interface/AchievementFrame/UI-Achievement-Category-Background")
_G[path]:SetHeight(24)
_G[path]:SetPushedTexture("Interface/AchievementFrame/UI-Achievement-Category-Background")
_G[path]:SetHeight(24)
local tex = _G[path]:GetNormalTexture();
tex:SetTexCoord(0, 0.6640625, 0, 0.8);
tex:SetHeight(32)
local tex2 = _G[path]:GetPushedTexture();
tex2:SetTexCoord(0, 0.6640625, 0, 0.8);
tex2:SetHeight(32)
end
local tex2 = _G[path]:GetPushedTexture();
tex2:SetTexCoord(0, 0.6640625, 0, 0.8);
tex2:SetHeight(32)
end
for k,v in pairs(buttons) do
SetButtons(v)
end
elseif style == "old" then
for k, v in pairs(buttons) do
SetButtons(v)
end
elseif style == "old" then
AtlasLootDefaultFrame_LootBackground:SetBackdrop({bgFile = ""});
AtlasLootDefaultFrame_LootBackground:SetBackdropColor(0,0,0.5,0.5);
AtlasLootDefaultFrame_LootBackground:SetBackdrop({ bgFile = "" });
AtlasLootDefaultFrame_LootBackground:SetBackdropColor(0, 0, 0.5, 0.5);
AtlasLootDefaultFrame:SetBackdrop({bgFile = "Interface/DialogFrame/UI-DialogBox-Background",
edgeFile = "Interface/DialogFrame/UI-DialogBox-Border",
edgeSize = 32,
insets = { left = 11, right = 12, top = 12, bottom = 11 }});
AtlasLootDefaultFrame:SetBackdropColor(1,1,1,1)
AtlasLootDefaultFrame:SetBackdropBorderColor(1,1,1,1)
AtlasLootDefaultFrame:SetBackdrop({ bgFile = "Interface/DialogFrame/UI-DialogBox-Background",
edgeFile = "Interface/DialogFrame/UI-DialogBox-Border",
edgeSize = 32,
insets = { left = 11, right = 12, top = 12, bottom = 11 } });
AtlasLootDefaultFrame:SetBackdropColor(1, 1, 1, 1)
AtlasLootDefaultFrame:SetBackdropBorderColor(1, 1, 1, 1)
AtlasLootDefaultFrameHeader:SetTexture("Interface/DialogFrame/UI-DialogBox-Header")
AtlasLootDefaultFrameHeader:SetTexCoord(0,1,0,1)
AtlasLootDefaultFrameHeader:SetWidth(425)
AtlasLootDefaultFrameHeader:SetHeight(64)
AtlasLootDefaultFrameHeader:SetPoint("TOP",AtlasLootDefaultFrame,"TOP",0,12)
AtlasLootDefaultFrameHeader:SetTexture("Interface/DialogFrame/UI-DialogBox-Header")
AtlasLootDefaultFrameHeader:SetTexCoord(0, 1, 0, 1)
AtlasLootDefaultFrameHeader:SetWidth(425)
AtlasLootDefaultFrameHeader:SetHeight(64)
AtlasLootDefaultFrameHeader:SetPoint("TOP", AtlasLootDefaultFrame, "TOP", 0, 12)
AtlasLootDefaultFrame_Options:SetNormalTexture("Interface/Buttons/UI-Panel-Button-Up")
AtlasLootDefaultFrame_Options:SetHeight(20)
AtlasLootDefaultFrame_Options:SetPushedTexture("Interface/Buttons/UI-Panel-Button-Down")
AtlasLootDefaultFrame_Options:SetHeight(20)
AtlasLootDefaultFrame_Options:SetNormalTexture("Interface/Buttons/UI-Panel-Button-Up")
AtlasLootDefaultFrame_Options:SetHeight(20)
AtlasLootDefaultFrame_Options:SetPushedTexture("Interface/Buttons/UI-Panel-Button-Down")
AtlasLootDefaultFrame_Options:SetHeight(20)
local function SetButtons(path)
_G[path]:SetNormalTexture("Interface/Buttons/UI-Panel-Button-Up")
_G[path]:SetHeight(20)
_G[path]:SetPushedTexture("Interface/Buttons/UI-Panel-Button-Down")
_G[path]:SetHeight(20)
local tex = _G[path]:GetNormalTexture();
tex:SetTexCoord(0, 0.625, 0, 0.6875);
tex:SetHeight(20)
local function SetButtons(path)
_G[path]:SetNormalTexture("Interface/Buttons/UI-Panel-Button-Up")
_G[path]:SetHeight(20)
_G[path]:SetPushedTexture("Interface/Buttons/UI-Panel-Button-Down")
_G[path]:SetHeight(20)
local tex = _G[path]:GetNormalTexture();
tex:SetTexCoord(0, 0.625, 0, 0.6875);
tex:SetHeight(20)
local tex2 = _G[path]:GetPushedTexture();
tex2:SetTexCoord(0, 0.625, 0, 0.6875);
tex2:SetHeight(20)
end
local tex2 = _G[path]:GetPushedTexture();
tex2:SetTexCoord(0, 0.625, 0, 0.6875);
tex2:SetHeight(20)
end
for k,v in pairs(buttons) do
SetButtons(v)
end
for k, v in pairs(buttons) do
SetButtons(v)
end
end
end
end
@@ -52,7 +52,7 @@ local lootbground = CreateFrame("Frame", "AtlasLootDefaultFrame_LootBackground",
lootbground:SetBackdropColor(0,0,0.5,0.5);
lootbground:EnableMouse();
lootbground:SetScript("OnMouseDown",function(self, button)
if _G[AtlasLootItemsFrame.refresh[2]][AtlasLootItemsFrame.refresh[1]].Back and button == "RightButton" then
if _G["AtlasLootItemsFrame_BACK"]:IsVisible() and button == "RightButton" then
AtlasLoot:BackButton_OnClick();
elseif AtlasLootDefaultFrame_AdvancedSearchPanel:IsVisible() and button == "RightButton" then
AtlasLoot_AdvancedSearchClose();
@@ -88,7 +88,7 @@ local itemframe = CreateFrame("Frame", "AtlasLootItemsFrame", AtlasLootDefaultFr
end
end);
local function createLootItemButtons(num)
for num = 1, 30 do
local button = CreateFrame("Button","AtlasLootItem_"..num, AtlasLootItemsFrame);
button:SetID(num);
button:SetSize(236,28);
@@ -123,10 +123,6 @@ local function createLootItemButtons(num)
end
end
for i = 1, 30 do
createLootItemButtons(i);
end
-- LootInfo
local lootinfo = CreateFrame("Frame", "AtlasLootInfo")
lootinfo:SetSize(128,75);
@@ -238,7 +234,8 @@ local filterbtn = CreateFrame("CheckButton","AtlasLootFilterCheck",AtlasLootItem
filterbtn.Label = filterbtn:CreateFontString("AtlasLootFilterCheckText","OVERLAY","GameFontNormal");
filterbtn.Label:SetText(AL["Filter"]);
filterbtn.Label:SetPoint("RIGHT", AtlasLootFilterCheck, 30, 2);
filterbtn:SetScript("OnClick", function() AtlasLoot_FilterEnableButton() end);
filterbtn:RegisterForClicks("LeftButtonDown","RightButtonDown");
filterbtn:SetScript("OnClick", function(self, btnclick) AtlasLoot_FilterEnableButton(self, btnclick) end);
-- Quick Looks Button
local looksbtn = CreateFrame("Button", "AtlasLootQuickLooksButton", AtlasLootItemsFrame);
@@ -561,9 +558,9 @@ end)
scrollFrame.scrollBar = scrollSlider
local rows = setmetatable({}, { __index = function(t, i)
local row = CreateFrame("CheckButton", "$parentRow"..i, scrollFrame)
local row = CreateFrame("CheckButton", "$parentRow"..i, Atlasloot_Difficulty_ScrollFrame)
row:SetSize(230, ROW_HEIGHT);
row:SetFrameStrata("Dialog");
row:SetFrameStrata("HIGH");
row:SetNormalFontObject(GameFontHighlightLeft);
row:SetCheckedTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight", "ADD");
row:SetScript("OnClick", function()
@@ -578,7 +575,6 @@ local rows = setmetatable({}, { __index = function(t, i)
end
AtlasLoot:ScrollFrameUpdate();
end
end)
if i == 1 then
row:SetPoint("TOPLEFT", scrollFrame, 8, -8)
@@ -655,9 +651,9 @@ local scrollSlider2 = CreateFrame("ScrollFrame","AtlasLootDefaultFrameSubTableSc
subtableFrame.scrollBar = scrollSlider2
local rows2 = setmetatable({}, { __index = function(t, i)
local row = CreateFrame("CheckButton", "$parentRow"..i, subtableFrame)
local row = CreateFrame("CheckButton", "$parentRow"..i, Atlasloot_SubTableFrame)
row:SetSize(230, ROW_HEIGHT);
row:SetFrameStrata("Dialog");
row:SetFrameStrata("HIGH");
row:SetNormalFontObject(GameFontHighlightLeft);
row:SetCheckedTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight", "ADD");
row.Text = row:CreateFontString("$parentRow"..i.."Text","OVERLAY","GameFontNormal");
+1 -1
View File
@@ -1,4 +1,4 @@
-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info
-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info
-- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
local LibStub = _G[LIBSTUB_MAJOR]
+21
View File
@@ -26,6 +26,7 @@ if AL then
AL["Select Sub-Table"] = true;
AL["Select Difficulty"] = true;
AL["Drop Rate: "] = true;
AL["Extra Info: "] = true;
AL["DKP"] = true;
AL["Priority:"] = true;
AL["Click boss name to view loot."] = true;
@@ -203,6 +204,7 @@ if AL then
AL["Legendary Items"] = true;
AL["Mounts"] = true;
AL["Vanity Pets"] = true;
AL["Vanity"] = true;
AL["Misc Sets"] = true;
AL["Classic Sets"] = true;
AL["Burning Crusade Sets"] = true;
@@ -284,6 +286,9 @@ if AL then
AL["Ranged weapons:"] = true;
AL["Relics:"] = true;
AL["Other:"] = true;
AL["How to set of change a page filter:"] = true;
AL["If you Right Click on the filter check box you will get a drop downmenu with a list of filters. Click the filter you want to use or click add filter set to add new custom filters."] = true;
-- Wishlist
AL["Close"] = true;
@@ -300,6 +305,7 @@ if AL then
AL["Add Wishlist"] = true;
AL["Edit Wishlist"] = true;
AL["Sort Wishlist"] = true;
AL["Add Filter Set"] = true;
AL["Auto Sort WishLists"] = true;
AL["Copy Wishlist To Own"] = true;
AL["Make Wishlist Default"] = true;
@@ -326,6 +332,8 @@ if AL then
AL["Please set a default Wishlist."] = true;
AL["Set as default Wishlist"] = true;
AL["Please Create a Wishlist First."] = true;
AL["Add/Edit Filter"] = true;
AL["Delete Filter"] = true;
-- Misc Inventory related words
AL["Enchant"] = true;
@@ -385,6 +393,19 @@ if AL then
AL["Quivers and Ammo Pouches"] = true;
AL["Drums, Bags and Misc."] = true;
--Stats etc
AL["Accessories"] = true;
AL["Weapons"] = true;
AL["Armor Type"] = true;
AL["Relics"] = true;
AL["Weapons One-Handers"] = true;
AL["Weapons Two-Handers"] = true;
AL["Ranged Weapons"] = true;
AL["Primary Stats"] = true;
AL["Secondary Stats"] = true;
AL["Defensive Stats"] = true;
AL["Resistances"] = true;
-- Tailoring
AL["Cloth Armor"] = true;
AL["Shirts"] = true;
+103 -109
View File
@@ -6,114 +6,108 @@ local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0");
local BabbleInventory = AtlasLoot_GetLocaleLibBabble("LibBabble-Inventory-3.0");
--Dungeon and Raid Menus
AtlasLoot_SubMenus["Dungeons and RaidsCLASSIC"] = {
Module = "AtlasLootOriginalWoW";
SubMenu = "Dungeons and RaidsCLASSIC";
{ "Raids:", "OldKeys", "Header" };
{ "", "ZulGurub", "", "Zul'Gurub" };
{ "", "MoltenCore", "", "Molten Core" };
{ "", "Onyxia60", "", "Onyxias Hort" };
{ "", "BlackwingLair", "", "Blackwing Lair" };
{ "", "RuinsofAQ", "", "Ruinen von Ahn'Qiraj" };
{ "", "TempleofAQ", "", "Tempel von Ahn'Qiraj" };
{ "", "Naxxramas60", "", "Naxxramas" };
{ "", "WorldBossesCLASSIC","", "World Bosses" };
---- Dungeons -----
{ "Dungeons:", "OldKeys", "Header" };
{ "", "BlackfathomDeeps", "", "Blackfathom Deeps" };
{ "", "BlackrockDepths", "", "Blackrock Depths" };
{ "", "LowerBlackrock", "", "Lower Blackrock Spire" };
{ "", "UpperBlackrock", "", "Upper Blackrock Spire" };
{ "", "TheDeadmines", "", "The Deadmines" };
{ "", "DireMaulNorth", "", "Dire Maul (North)" };
{ "", "DireMaulEast", "", "Dire Maul (East)" };
{ "", "DireMaulWest", "", "Dire Maul (West)" };
{ "", "Gnomeregan", "", "Gnomeregan" };
{ "", "Maraudon", "", "Maraudon" };
{ "", "RagefireChasm", "", "Ragefire Chasm" };
{ "", "RazorfenDowns", "", "Razorfen Downs" };
{ "", "RazorfenKraul", "", "Razorfen Kraul" };
{ "", "Scarlet Monastery", "", "Scarlet Monastery" };
{ "", "Scholomance", "", "Scholomance" };
{ "", "ShadowfangKeep", "", "Shadowfang Keep" };
{ "", "TheStockade", "", "The Stockade" };
{ "", "Stratholme", "", "Stratholme" };
{ "", "SunkenTemple", "", "Sunken Temple" };
{ "", "Uldaman", "", "Uldaman" };
{ "", "WailingCaverns", "", "Wailing Caverns" };
{ "", "ZulFarrak", "", "Zul'Farrak" };
};
AtlasLoot_SubMenus["Dungeons and RaidsCLASSIC"] = {
Module = "AtlasLootOriginalWoW";
SubMenu = "Dungeons and RaidsCLASSIC";
{"Raids:", "OldKeys", "Header"};
{"", "MoltenCore", "", "Molten Core"};
{"", "ZulGurub", "", "Zul'Gurub"};
{"", "Onyxia60", "", "Onyxias Hort"};
{"", "BlackwingLair", "", "Blackwing Lair"};
{"", "RuinsofAQ", "", "Ruinen von Ahn'Qiraj"};
{"", "TempleofAQ", "", "Tempel von Ahn'Qiraj"};
{"", "Naxxramas60", "", "Naxxramas"};
{"Dungeons:", "OldKeys", "Header"};
{"", "BlackfathomDeeps", "", "Blackfathom Deeps"};
{"", "BlackrockDepths", "", "Blackrock Depths"};
{"", "LowerBlackrock", "", "Lower Blackrock Spire"};
{"", "UpperBlackrock", "", "Upper Blackrock Spire"};
{"", "TheDeadmines", "", "The Deadmines"};
{"", "DireMaulNorth", "", "Dire Maul (North)"};
{"", "DireMaulEast", "", "Dire Maul (East)"};
{"", "DireMaulWest", "", "Dire Maul (West)"};
{"", "Gnomeregan", "", "Gnomeregan"};
{"", "Maraudon", "", "Maraudon"};
{"", "RagefireChasm", "", "Ragefire Chasm"};
{"", "RazorfenDowns", "", "Razorfen Downs"};
{"", "RazorfenKraul", "", "Razorfen Kraul"};
{"", "Scarlet Monastery", "", "Scarlet Monastery"};
{"", "Scholomance", "", "Scholomance"};
{"", "ShadowfangKeep", "", "Shadowfang Keep"};
{"", "TheStockade", "", "The Stockade"};
{"", "Stratholme", "", "Stratholme"};
{"", "SunkenTemple", "", "Sunken Temple"};
{"", "Uldaman", "", "Uldaman"};
{"", "WailingCaverns", "", "Wailing Caverns"};
{"", "ZulFarrak", "", "Zul'Farrak"};
};
AtlasLoot_SubMenus["Dungeons and RaidsTBC"] = {
Module = "AtlasLootBurningCrusade";
SubMenu = "Dungeons and RaidsTBC";
{ "Raids:", "BCKeys", "Header" };
{ "", "Karazhan", "", "Karazhan" };
{ "", "GruulsLair", "", "Gruul's Lair" };
{ "", "HCMagtheridon", "", "Magtheridon's Lair" };
{ "", "CFRSerpentshrine", "", "Serpentshrine Cavern" };
{ "", "TKEye", "", "The Eye" };
{ "", "ZulAman", "", "Zul'Aman" };
{ "", "CoTHyjal", "", "Mount Hyjal" };
{ "", "BlackTemple", "", "Black Temple" };
{ "", "SunwellPlateau", "", "Sunwell Plateau" };
{ "", "WorldBossesTBC","", "World Bosses" };
---- Dungeons -----
{ "Dungeons:", "BCKeys", "Header" };
{ "", "HCRamparts", "", "Hellfire Ramparts" };
{ "", "HCShatteredHalls", "", "The Shattered Halls" };
{ "", "HCFurnace", "", "The Blood Furnace" };
{ "", "TKBot", "", "The Botanica" };
{ "", "TKArc", "", "The Arcatraz" };
{ "", "TKMech", "", "The Mechanar" };
{ "", "AuchCrypts", "", "Auchenai Crypts" };
{ "", "AuchManaTombs", "", "Mana-Tombs" };
{ "", "AuchSethekk", "", "Sethekk Halls" };
{ "", "AuchShadowLab", "", "Shadow Labyrinth" };
{ "", "CoTOldHillsbrad", "", "Old Hillsbrad Foothills" };
{ "", "CoTBlackMorass", "", "The Black Morass" };
{ "", "CFRSlavePens", "", "The Slave Pens" };
{ "", "CFRSteamvault", "", "The Steamvault" };
{ "", "CFRUnderbog", "", "The Underbog" };
{ "", "MagistersTerrace", "", "Magisters' Terrace" };
};
AtlasLoot_SubMenus["Dungeons and RaidsTBC"] = {
Module = "AtlasLootBurningCrusade";
SubMenu = "Dungeons and RaidsTBC";
{"Raids:", "BCKeys", "Header"};
{"", "Karazhan", "", "Karazhan"};
{"", "GruulsLair", "", "Gruul's Lair"};
{"", "HCMagtheridon", "", "Magtheridon's Lair"};
{"", "CFRSerpentshrine", "", "Serpentshrine Cavern"};
{"", "TKEye", "", "The Eye"};
{"", "ZulAman", "", "Zul'Aman"};
{"", "CoTHyjal", "", "Mount Hyjal"};
{"", "BlackTemple", "", "Black Temple"};
{"", "SunwellPlateau", "", "Sunwell Plateau"};
---- Dungeons -----
{"Dungeons:", "BCKeys", "Header"};
{"", "HCRamparts", "", "Hellfire Ramparts"};
{"", "HCShatteredHalls", "", "The Shattered Halls"};
{"", "HCFurnace", "", "The Blood Furnace"};
{"", "TKBot", "", "The Botanica"};
{"", "TKArc", "", "The Arcatraz"};
{"", "TKMech", "", "The Mechanar"};
{"", "AuchCrypts", "", "Auchenai Crypts"};
{"", "AuchManaTombs", "", "Mana-Tombs"};
{"", "AuchSethekk", "", "Sethekk Halls"};
{"", "AuchShadowLab", "", "Shadow Labyrinth"};
{"", "CoTOldHillsbrad", "", "Old Hillsbrad Foothills"};
{"", "CoTBlackMorass", "", "The Black Morass"};
{"", "CFRSlavePens", "", "The Slave Pens"};
{"", "CFRSteamvault", "", "The Steamvault"};
{"", "CFRUnderbog", "", "The Underbog"};
{"", "MagistersTerrace", "", "Magisters' Terrace"};
};
AtlasLoot_SubMenus["Dungeons and RaidsWRATH"] = {
Module = "AtlasLootWotLK";
SubMenu = "Dungeons and RaidsWRATH";
{"Raids:", "WrathKeys", "Header"};
{"", "Naxxramas80"};
{"", "Sartharion"};
{"", "Malygos"};
{"", "VaultofArchavon_A"};
{"", "Ulduar"};
{"", "TrialoftheCrusader_A"};
{"", "Onyxia_1"};
{"", "IcecrownCitadel"};
{"", "Halion"};
{"Dungeons:", "WrathKeys", "Header"};
{"", "Ahnkahet"};
{"", "AzjolNerub"};
{"", "CoTStratholme"};
{"", "DrakTharonKeep"};
{"", "ForgeofSouls"};
{"", "Gundrak"};
{"", "HallsofLightning"};
{"", "HallsofReflection"};
{"", "HallsofStone"};
{"", "TheNexus"};
{"", "TheOculus"};
{"", "PitofSaron"};
{"", "TrialoftheChampion"};
{"", "UtgardeKeep"};
{"", "UtgardePinnacle"};
{"", "TheVioletHold"};
};
AtlasLoot_SubMenus["WorldBossesMenuCLASSIC"] = {
Module = "AtlasLootOriginalWoW";
{ "","WorldBossesCLASSIC"};
};
AtlasLoot_SubMenus["WorldBossesMenuTBC"] = {
Module = "AtlasLootBurningCrusade";
{ "","WorldBossesTBC"};
};
AtlasLoot_SubMenus["Dungeons and RaidsWRATH"] = {
Module = "AtlasLootWotLK";
SubMenu = "Dungeons and RaidsWRATH";
{ "Raids:", "WrathKeys", "Header" };
{ "", "Naxxramas80", "Naxxramas" };
{ "", "Sartharion", "Sartharion" };
{ "", "Malygos", "Malygos" };
{ "", "VaultofArchavon", "Vault of Archavon" };
{ "", "Ulduar", "Ulduar" };
{ "", "TrialoftheCrusader", "Trial of the Crusader" };
{ "", "TrialoftheCrusader2", "Trial of the Crusader" };
{ "", "Onyxia80", "Onyxia" };
{ "", "IcecrownCitadel", "Icecrown Citadel" };
{ "", "Halion", "Halion" };
---- Dungeons -----
{ "Dungeons:", "WrathKeys", "Header" };
{ "", "Ahnkahet", "Ahnkahet" };
{ "", "AzjolNerub", "AzjolNerub" };
{ "", "CoTStratholme", "The Culling of Stratholme" };
{ "", "DrakTharonKeep", "DrakTharon Keep" };
{ "", "ForgeofSouls", "Forge of Souls" };
{ "", "Gundrak", "Gundrak" };
{ "", "HallsofLightning", "Halls of Lightning" };
{ "", "HallsofReflection", "Halls of Reflection" };
{ "", "HallsofStone", "Halls of Stone" };
{ "", "TheNexus", "The Nexus" };
{ "", "TheOculus", "The Oculus" };
{ "", "PitofSaron", "Pit of Saron" };
{ "", "TrialoftheChampion", "Trial of the Champion" };
{ "", "UtgardeKeep", "Utgarde Keep" };
{ "", "UtgardePinnacle", "Utgarde Pinnacle" };
{ "", "TheVioletHold", "The Violet Hold" };
};
+2 -2
View File
@@ -17,7 +17,7 @@ AtlasLoot_Modules = {
{AL["Crafting"], "Crafting"};
{AL["Sets/Collections"], "Collections"};
{AL["PvP Rewards"], "PVP"};
{AL["World Bosses"], "WorldBossesMenu"};
{AL["Vanity"], "Vanity"};
{AL["Reputation Factions"], "Reputations"};
{AL["World Events"], "WorldEvents"};
};
@@ -27,7 +27,7 @@ AtlasLoot_SubMenus = {};
AtlasLoot_ExpansionMenu = {
{ AL["Classic"], "CLASSIC" };
{ AL["Burning Crusade"], "TBC" };
--{ AL["Wrath of the Lich King"], "WRATH" };
{ AL["Wrath of the Lich King"], "WRATH" };
};
AtlasLoot_Data["EmptyTable"] = {
+22
View File
@@ -48,3 +48,25 @@ local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0")
{ "", "ArenaWarlockTBC"};
{ "", "ArenaWarriorTBC"};
};
AtlasLoot_SubMenus["PVPWRATH"] = {
Module = "AtlasLootWotLK";
{ "PVP Factions", "LakeWintergrasp", "Header"};
{ "", "LakeWintergrasp"};
{ "", "VentureBay"};
{ "", "PvP80Misc"};
{ "", "PVPidolWRATH"};
{ "", "PvP80NonSet"};
{ "", "WeaponsWRATH"};
{ "PVP Sets", "ArenaDruidWRATH", "Header"};
{ "", "ArenaDruidWRATH"};
{ "", "ArenaHunterWRATH"};
{ "", "ArenaMageWRATH"};
{ "", "ArenaPaladinWRATH"};
{ "", "ArenaPriestWRATH"};
{ "", "ArenaRogueWRATH"};
{ "", "ArenaShamanWRATH"};
{ "", "ArenaWarlockWRATH"};
{ "", "ArenaWarriorWRATH"};
{ "", "ArenaDeathKnightWRATH"};
};
+12 -12
View File
@@ -46,16 +46,16 @@ local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0")
AtlasLoot_SubMenus["ReputationsWRATH"] = {
Module = "AtlasLootWotLK";
{ "", "AllianceVanguard1", "spell_misc_hellifrepvphonorholdfavor", "=ds="..BabbleFaction["Alliance Vanguard"], "=q5="..BabbleFaction["Alliance"]};
{ "", "WinterfinRetreat", "INV_Misc_Shell_04", "=ds="..BabbleFaction["Winterfin Retreat"], "=q5="..BabbleZone["Borean Tundra"]};
{ "", "TheWyrmrestAccord", "achievement_reputation_wyrmresttemple", "=ds="..BabbleFaction["The Wyrmrest Accord"], "=q5="..BabbleZone["Dragonblight"]};
{ "", "KnightsoftheEbonBlade", "achievement_reputation_knightsoftheebonblade", "=ds="..BabbleFaction["Knights of the Ebon Blade"], "=q5="..BabbleZone["Zul'Drak"].." / "..BabbleZone["Icecrown"]};
{ "", "TheOracles", "inv_misc_head_murloc_01", "=ds="..BabbleFaction["The Oracles"], "=q5="..BabbleZone["Sholazar Basin"]};
{ "", "TheSonsofHodir1", "Spell_Holy_DivinePurpose", "=ds="..BabbleFaction["The Sons of Hodir"], "=q5="..BabbleZone["The Storm Peaks"]};
{ "", "HordeExpedition1", "spell_misc_hellifrepvpthrallmarfavor", "=ds="..BabbleFaction["Horde Expedition"], "=q5="..BabbleFaction["Horde"]};
{ "", "TheKaluak", "INV_Fishingpole_03", "=ds="..BabbleFaction["The Kalu'ak"], "" };
{ "", "KirinTor", "achievement_reputation_kirintor", "=ds="..BabbleFaction["Kirin Tor"], "=q5="..BabbleZone["Borean Tundra"].." / "..BabbleZone["Dalaran"]};
{ "", "ArgentCrusade", "INV_Jewelry_Talisman_08", "=ds="..BabbleFaction["Argent Crusade"], "=q5="..BabbleZone["Zul'Drak"].." / "..BabbleZone["Icecrown"]};
{ "", "FrenzyheartTribe", "ability_mount_whitedirewolf", "=ds="..BabbleFaction["Frenzyheart Tribe"], "=q5="..BabbleZone["Sholazar Basin"]};
{ "", "AshenVerdict", "INV_Jewelry_Ring_85", "=ds="..BabbleFaction["The Ashen Verdict"], "=q5="..BabbleZone["Icecrown"]};
{ "", "AllianceVanguard"};
{ "", "WinterfinRetreat"};
{ "", "TheWyrmrestAccord"};
{ "", "KnightsoftheEbonBlade"};
{ "", "TheOracles"};
{ "", "TheSonsofHodir"};
{ "", "HordeExpedition"};
{ "", "TheKaluak"};
{ "", "KirinTor"};
{ "", "ArgentCrusade"};
{ "", "FrenzyheartTribe"};
{ "", "AshenVerdict"};
};
+91 -341
View File
@@ -1,7 +1,8 @@
local AL = LibStub("AceLocale-3.0"):GetLocale("AtlasLoot");
local BabbleInventory = AtlasLoot_GetLocaleLibBabble("LibBabble-Inventory-3.0")
local BabbleFaction = AtlasLoot_GetLocaleLibBabble("LibBabble-Faction-3.0")
local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0")
local BabbleBoss = AtlasLoot_GetLocaleLibBabble("LibBabble-Boss-3.0");
local BabbleFaction = AtlasLoot_GetLocaleLibBabble("LibBabble-Faction-3.0");
local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0");
local BabbleInventory = AtlasLoot_GetLocaleLibBabble("LibBabble-Inventory-3.0");
-- { #, "MOUNTMENU", "INV_Misc_QirajiCrystal_05", "=ds="..AL["Mounts"], ""};
-- { #, "PETMENU", "INV_Box_PetCarrier_01", "=ds="..AL["Vanity Pets"], ""};
@@ -11,6 +12,7 @@ local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0")
AtlasLoot_SubMenus["CollectionsCLASSIC"] = {
Module = "AtlasLootOriginalWoW";
{ "", "Heirloom"};
{ "", "ClassicSets"};
{ "", "WorldEpicsCLASSIC"};
{ "", "ZGSets"};
@@ -24,6 +26,7 @@ local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0")
AtlasLoot_SubMenus["CollectionsTBC"] = {
Module = "AtlasLootBurningCrusade";
{ "", "Heirloom"};
{ "", "DS3"};
{ "", "WorldEpicsTBC"};
{ "", "TBCSets"};
@@ -36,348 +39,95 @@ local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0")
{ "", "T6"};
};
AtlasLoot_Data["SETMENUWRATH"] = {
{ 1, "EMBLEMOFFROSTMENU", "inv_misc_frostemblem_01", "=ds="..AL["Emblem of Frost Rewards"], "=q5="..AL["Wrath of the Lich King"]};
{ 2, "EMBLEMOFTRIUMPHMENU", "spell_holy_summonchampion", "=ds="..AL["Emblem of Triumph Rewards"], "=q5="..AL["Wrath of the Lich King"]};
{ 3, "EMBLEMOFCONQUESTMENU", "Spell_Holy_ChampionsGrace", "=ds="..AL["Emblem of Conquest Rewards"], "=q5="..AL["Wrath of the Lich King"]};
{ 4, "EMBLEMOFVALORMENU", "Spell_Holy_ProclaimChampion_02", "=ds="..AL["Emblem of Valor Rewards"], "=q5="..AL["Wrath of the Lich King"]};
{ 5, "EMBLEMOFHEROISMMENU", "Spell_Holy_ProclaimChampion", "=ds="..AL["Emblem of Heroism Rewards"], "=q5="..AL["Wrath of the Lich King"]};
{ 7, "Heirloom", "INV_Sword_43", "=ds="..AL["Heirloom"], ""};
{ 8, "WorldEpicsWrath", "INV_Sword_109", "=ds=".."World Epics", ""};
{ 9, "SETSWRATHOFLICHKING", "inv_misc_monsterscales_15", "=ds="..AL["Wrath of the Lich King Sets"], ""};
{ 10, "Legendaries", "INV_Staff_Medivh", "=ds="..AL["Legendary Items"], ""};
{ 16, "T7T8SET", "INV_Chest_Chain_15", "=ds="..AL["Tier 7/8 Sets"], "=q5="..AL["10/25 Man"]};
{ 17, "T9SET", "inv_gauntlets_80", "=ds="..AL["Tier 9 Sets"], "=q5="..AL["10/25 Man"]};
{ 18, "T10SET", "INV_Chest_Chain_15", "=ds="..AL["Tier 10 Sets"], "=q5="..AL["10/25 Man"]};
Prev = "SETMENUTBC";
Next = "SETMENUCLASSIC";
Submenu = "Expansion";
AtlasLoot_SubMenus["CollectionsWRATH"] = {
Module = "AtlasLootWotLK";
{ "", "Heirloom"};
{ "", "WorldEpicsWrath"};
{ "", "Legendaries"};
{ "Badge Rewards", "EmblemofHeroism", "Header"};
{ "", "EmblemofHeroism"};
{ "", "EmblemofValor"};
{ "", "EmblemofConquest"};
{ "", "EmblemofTriumph"};
{ "", "EmblemofFrost"};
{ "Tier Sets", "T7", "Header"};
{ "", "T7"};
{ "", "T8"};
{ "", "T9"};
{ "", "T10"};
};
AtlasLoot_SubMenus["VanityCLASSIC"] = {
Module = "AtlasLootVanity";
{ "", "Tabards"};
{ "", "VanityPets"};
{ "", "Mounts"};
};
AtlasLoot_SubMenus["VanityTBC"] = AtlasLoot_SubMenus["VanityCLASSIC"];
AtlasLoot_SubMenus["VanityWRATH"] = AtlasLoot_SubMenus["VanityCLASSIC"];
----------------------
--- Heirloom Items ---
----------------------
AtlasLoot_Data["Heirloom"] = {
Name = AL["Heirloom"];
{
Name = "Chests";
{ 1, 48691, "", "=q7=Tattered Dreadmist Robe", "=ds=#s5#, #a1#", "1200 #tokenofprestige#" };
{ 2, 48687, "", "=q7=Preened Ironfeather Breastplate", "=ds=#s5#, #a2#", "1200 #tokenofprestige#" };
{ 3, 48689, "", "=q7=Stained Shadowcraft Tunic", "=ds=#s5#, #a2#", "1200 #tokenofprestige#" };
{ 4, 48677, "", "=q7=Champion's Deathdealer Breastplate", "=ds=#s5#, #a3#", "1200 #tokenofprestige#" };
{ 5, 48683, "", "=q7=Mystical Vest of Elements", "=ds=#s5#, #a3#", "1200 #tokenofprestige#" };
{ 6, 48685, "", "=q7=Polished Breastplate of Valor", "=ds=#s5#, #a4#", "1200 #tokenofprestige#" };
{ 7, 1548685, "", "=q7=Polished Breastplate of Might", "=ds=#s5#, #a4#", "1200 #tokenofprestige#" };
};
AtlasLoot_Data["70TOKENMENU"] = {
{ 2, "HardModeCloth", "Spell_Holy_ChampionsBond", "=ds="..BabbleInventory["Cloth"], ""};
{ 3, "HardModeMail", "Spell_Holy_ChampionsBond", "=ds="..BabbleInventory["Mail"], ""};
{ 4, "HardModeResist", "Spell_Holy_ChampionsBond", "=ds="..AL["Fire Resistance Gear"], ""};
{ 6, "HardModeRelic", "Spell_Holy_ChampionsBond", "=ds="..BabbleInventory["Relic"], ""};
{ 8, "HardModeWeapons", "Spell_Holy_ChampionsBond", "=ds="..AL["Weapons"], ""};
{ 17, "HardModeLeather", "Spell_Holy_ChampionsBond", "=ds="..BabbleInventory["Leather"], ""};
{ 18, "HardModePlate", "Spell_Holy_ChampionsBond", "=ds="..BabbleInventory["Plate"], ""};
{ 19, "HardModeCloaks", "Spell_Holy_ChampionsBond", "=ds="..BabbleInventory["Back"], ""};
{ 21, "HardModeArena", "Spell_Holy_ChampionsBond", "=ds="..AL["PvP Rewards"], ""};
{ 23, "HardModeAccessories", "Spell_Holy_ChampionsBond", "=ds="..AL["Accessories"], ""};
Back = "SETMENUTBC";
{
Name = "Shoulders";
{ 1, 42985, "", "=q7=Tattered Dreadmist Mantle", "=ds=#s3#, #a1#", "800 #tokenofprestige#" };
{ 2, 42984, "", "=q7=Preened Ironfeather Shoulders", "=ds=#s3#, #a2#", "800 #tokenofprestige#" };
{ 3, 42952, "", "=q7=Stained Shadowcraft Spaulders", "=ds=#s3#, #a2#", "800 #tokenofprestige#" };
{ 4, 42950, "", "=q7=Champion Herod's Shoulder", "=ds=#s3#, #a3#", "800 #tokenofprestige#" };
{ 5, 42951, "", "=q7=Mystical Pauldrons of Elements", "=ds=#s3#, #a3#", "800 #tokenofprestige#" };
{ 6, 42949, "", "=q7=Polished Spaulders of Valor", "=ds=#s3#, #a4#", "800 #tokenofprestige#" };
{ 7, 1542949, "", "=q7=Polished Spaulders of Might", "=ds=#s3#, #a4#", "800 #tokenofprestige#" };
{ 16, 44107, "", "=q7=Exquisite Sunderseer Mantle", "=ds=#s3#, #a1#", "800 #tokenofprestige#" };
{ 17, 44103, "", "=q7=Exceptional Stormshroud Shoulders", "=ds=#s3#, #a2#", "800 #tokenofprestige#" };
{ 18, 44105, "", "=q7=Lasting Feralheart Spaulders", "=ds=#s3#, #a2#", "800 #tokenofprestige#" };
{ 19, 44102, "", "=q7=Aged Pauldrons of The Five Thunders", "=ds=#s3#, #a3#", "800 #tokenofprestige#" };
{ 20, 44101, "", "=q7=Prized Beastmaster's Mantle", "=ds=#s3#, #a3#", "800 #tokenofprestige#" };
{ 21, 44100, "", "=q7=Pristine Lightforge Spaulders", "=ds=#s3#, #a4#", "800 #tokenofprestige#" };
{ 22, 44099, "", "=q7=Strengthened Stockade Pauldrons", "=ds=#s3#, #a4#", "800 #tokenofprestige#" };
};
AtlasLoot_Data["EMBLEMOFHEROISMMENU"] = {
{ 2, "EmblemofHeroism", "Spell_Holy_ProclaimChampion", "=ds="..BabbleInventory["Armor"].." & "..AL["Weapons"], ""};
{ 3, "EmblemofHeroism3", "Spell_Holy_ProclaimChampion", "=ds="..BabbleInventory["Miscellaneous"], ""};
{ 4, "LEVEL80PVPSETS", "Spell_Holy_ProclaimChampion", "=ds="..AL["Level 80 PvP Sets"], "" };
{ 17, "EmblemofHeroism2", "Spell_Holy_ProclaimChampion", "=ds="..AL["Accessories"], ""};
{ 18, "EmblemofHeroism4", "Spell_Holy_ProclaimChampion", "=ds="..AL["Heirloom"], ""};
Back = "SETMENUWRATH";
{
Name = "Trinkets/Rings";
{ 1, 42992, "", "=q7=Discerning Eye of the Beast", "=ds=#s14#", "500 #tokenofprestige#" };
{ 2, 42991, "", "=q7=Swift Hand of Justice", "=ds=#s14#", "500 #tokenofprestige#" };
{ 3, 44098, "", "=q7=Inherited Insignia of the Alliance", "500 #tokenofprestige#" };
{ 4, 44097, "", "=q7=Inherited Insignia of the Horde", "500 #tokenofprestige#" };
{ 6, 50255, "", "=q7=Dread Pirate Ring", "=ds=#s13#", "" };
};
AtlasLoot_Data["EMBLEMOFCONQUESTMENU"] = {
{ 2, "EmblemofConquest1", "Spell_Holy_ChampionsGrace", "=ds="..AL["Vendor"], ""};
{ 17, "LEVEL80PVPSETS", "Spell_Holy_ChampionsGrace", "=ds="..AL["Level 80 PvP Sets"], "" };
Back = "SETMENUWRATH";
{
Name = "Weapons";
{ 1, 42944, "", "=q7=Balanced Heartseeker", "=ds=#w4#, #h1#", "600 #tokenofprestige#" };
{ 2, 42945, "", "=q7=Venerable Dal'Rend's Sacred Charge", "=ds=#w10#, #h3#", "600 #tokenofprestige#" };
{ 3, 42948, "", "=q7=Devout Aurastone Hammer", "600 #tokenofprestige#" };
{ 4, 48716, "", "=q7=Venerable Mass of McGowan", "600 #tokenofprestige#" };
{ 5, 44091, "", "=q7=Sharpened Scarlet Kris", "=ds=#h1#, #w4#", "600 #tokenofprestige#" };
{ 6, 44096, "", "=q7=Battleworn Thrash Blade", "=ds=#h1#, #w10#", "600 #tokenofprestige#" };
{ 7, 44094, "", "=q7=The Blessed Hammer of Grace", "=ds=#h3#, #w6#", "600 #tokenofprestige#" };
{ 7, 1540350, "", "=q7=Urn of Aspiring Light", "=ds=#h3#, #w6#", "600 #tokenofprestige#" };
{ 16, 42943, "", "=q7=Bloodied Arcanite Reaper", "=ds=#w1#, #h2#", "1000 #tokenofprestige#" };
{ 17, 1542943, "", "=q7=Sturdied Arcanite Spear", "=ds=#w1#, #h2#", "1000 #tokenofprestige#" };
{ 18, 48718, "", "=q7=Repurposed Lava Dredger", "=ds=#w6#, #h2#", "1000 #tokenofprestige#" };
{ 19, 42947, "", "=q7=Dignified Headmaster's Charge", "=ds=#w9#", "1000 #tokenofprestige#" };
{ 20, 44092, "", "=q7=Reforged Truesilver Champion", "=ds=#h2#, #w10#", "1000 #tokenofprestige#" };
{ 21, 44095, "", "=q7=Grand Staff of Jordan", "=ds=#w9#", "1000 #tokenofprestige#" };
{ 23, 42946, "", "=q7=Charmed Ancient Bone Bow", "=ds=#w2#", "1000 #tokenofprestige#" };
{ 24, 44093, "", "=q7=Upgraded Dwarven Hand Cannon", "=ds=#w5#", "1000 #tokenofprestige#" };
};
};
AtlasLoot_Data["EMBLEMOFVALORMENU"] = {
{ 2, "EmblemofValor", "Spell_Holy_ProclaimChampion_02", "=ds="..BabbleInventory["Armor"], ""};
{ 3, "LEVEL80PVPSETS", "Spell_Holy_ProclaimChampion_02", "=ds="..AL["Level 80 PvP Sets"], "" };
{ 17, "EmblemofValor2", "Spell_Holy_ProclaimChampion_02", "=ds="..AL["Accessories"], ""};
Back = "SETMENUWRATH";
};
AtlasLoot_Data["EMBLEMOFTRIUMPHMENU"] = {
{ 2, "EmblemofTriumph1_A", "spell_holy_summonchampion", "=ds="..BabbleInventory["Armor"], ""};
{ 3, "EmblemofTriumph2", "spell_holy_summonchampion", "=ds="..AL["Accessories"].." & "..AL["Weapons"], ""};
{ 17, "LEVEL80PVPSETS", "spell_holy_summonchampion", "=ds="..AL["Level 80 PvP Sets"], "" };
{ 18, "T9SET", "spell_holy_summonchampion", "=ds="..AL["Tier 9 Sets"], "=q5="..AL["10/25 Man"]};
Back = "SETMENUWRATH";
};
AtlasLoot_Data["EMBLEMOFFROSTMENU"] = {
{ 2, "EmblemofFrost", "inv_misc_frostemblem_01", "=ds="..BabbleInventory["Armor"].." & "..AL["Weapons"], ""};
{ 17, "T10SET", "inv_misc_frostemblem_01", "=ds="..AL["Tier 10 Sets"], "=q5="..AL["10/25 Man"]};
Back = "SETMENUWRATH";
};
AtlasLoot_Data["MOUNTMENU"] = {
{ 2, "MountsAlliance1", "achievement_pvp_a_16", "=ds="..AL["Alliance Mounts"], ""};
{ 3, "MountsFaction1", "ability_mount_warhippogryph", "=ds="..AL["Neutral Faction Mounts"], ""};
{ 4, "MountsRare1", "ability_mount_drake_bronze", "=ds="..AL["Rare Mounts"], ""};
{ 5, "MountsEvent1", "achievement_halloween_witch_01", "=ds="..AL["World Events"], ""};
{ 17, "MountsHorde1", "achievement_pvp_h_16", "=ds="..AL["Horde Mounts"], ""};
{ 18, "MountsPvP1", "ability_mount_netherdrakeelite", "=ds="..AL["PvP Mounts"], ""};
{ 19, "MountsCraftQuestPromotion1", "INV_Misc_QirajiCrystal_05", "=ds="..AL["Quest"].." / "..AL["Promotional"].." / "..AL["Crafted Mounts"], ""};
Back = "SETMENU";
Submenu = "Expansion";
};
AtlasLoot_Data["PETMENU"] = {
{ 2, "PetsMerchant1", "spell_nature_polymorph", "=ds="..AL["Merchant Sold"], ""};
{ 3, "PetsRare1", "spell_shaman_hex", "=ds="..AL["Rare"], ""};
{ 4, "PetsPromotional1", "inv_netherwhelp", "=ds="..AL["Promotional"], ""};
{ 5, "PetsAccessories1", "inv_misc_petbiscuit_01", "=ds="..AL["Accessories"], ""};
{ 17, "PetsQuestCrafted1", "inv_drink_19", "=ds="..AL["Quest"].." / "..AL["Crafted"], ""};
{ 18, "PetsEvent1", "inv_pet_egbert", "=ds="..AL["World Events"], ""};
{ 19, "PetsPetStore1", "INV_Misc_Coin_01", "=ds="..AL["Pet Store"], ""};
Back = "SETMENU";
Submenu = "Expansion";
};
AtlasLoot_Data["SETSCLASSIC"] = {
{ 2, "VWOWSets1", "INV_Pants_12", "=ds="..AL["Defias Leather"], "=q5="..BabbleZone["The Deadmines"]};
{ 3, "VWOWSets1", "INV_Shirt_16", "=ds="..AL["Embrace of the Viper"], "=q5="..BabbleZone["Wailing Caverns"]};
{ 4, "VWOWSets1", "INV_Gauntlets_19", "=ds="..AL["Chain of the Scarlet Crusade"], "=q5="..BabbleZone["Scarlet Monastery"]};
{ 5, "VWOWSets1", "INV_Helmet_01", "=ds="..AL["The Gladiator"], "=q5="..BabbleZone["Blackrock Depths"]};
{ 6, "VWOWSets2", "INV_Boots_Cloth_05", "=ds="..AL["Ironweave Battlesuit"], "=q5="..AL["Various Locations"]};
{ 7, "VWOWSets2", "INV_Boots_02", "=ds="..AL["The Postmaster"], "=q5="..BabbleZone["Stratholme"]};
{ 8, "VWOWScholo", "INV_Shoulder_02", "=ds="..AL["Necropile Raiment"], "=q5="..BabbleZone["Scholomance"]};
{ 9, "VWOWScholo", "INV_Belt_16", "=ds="..AL["Cadaverous Garb"], "=q5="..BabbleZone["Scholomance"]};
{ 10, "VWOWScholo", "INV_Gauntlets_26", "=ds="..AL["Bloodmail Regalia"], "=q5="..BabbleZone["Scholomance"]};
{ 11, "VWOWScholo", "INV_Belt_12", "=ds="..AL["Deathbone Guardian"], "=q5="..BabbleZone["Scholomance"]};
{ 12, "VWOWSets3", "INV_Weapon_ShortBlade_16", "=ds="..AL["Spider's Kiss"], "=q5="..BabbleZone["Lower Blackrock Spire"]};
{ 13, "VWOWSets3", "INV_Sword_43", "=ds="..AL["Dal'Rend's Arms"], "=q5="..BabbleZone["Upper Blackrock Spire"]};
{ 17, "VWOWSets3", "INV_Misc_MonsterScales_15", "=ds="..AL["Shard of the Gods"], "=q5="..AL["Various Locations"]};
{ 18, "VWOWSets3", "INV_Misc_MonsterClaw_04", "=ds="..AL["Spirit of Eskhandar"], "=q5="..AL["Various Locations"]};
{ 20, "VWOWZulGurub", "INV_Weapon_Hand_01", "=ds="..AL["Misc Zul'Gurub Sets"], ""};
Back = "SETMENUCLASSIC";
};
AtlasLoot_Data["SETSBURNINGCURSADE"] = {
{ 2, "TBCSets", "INV_Sword_76", "=ds="..AL["Latro's Flurry"], "=q5="..AL["World Drop"]};
{ 3, "TBCSets", "INV_Jewelry_Necklace_36", "=ds="..AL["The Twin Stars"], "=q5="..AL["World Drop"]};
{ 4, "TBCSets", "INV_Weapon_Hand_14", "=ds="..AL["The Fists of Fury"], "=q5="..BabbleZone["Hyjal Summit"]};
{ 5, "TBCSets", "INV_Weapon_Glave_01", "=ds="..AL["The Twin Blades of Azzinoth"], "=q5="..BabbleZone["Black Temple"]};
Back = "SETMENUTBC";
};
AtlasLoot_Data["SETSWRATHOFLICHKING"] = {
{ 2, "WOTLKSets", "inv_jewelry_necklace_27", "=ds="..AL["Raine's Revenge"], "=q5="..AL["World Drop"]};
{ 3, "WOTLKSets", "inv_misc_monsterscales_15", "=ds="..AL["Purified Shard of the Gods"], "=q5="..BabbleZone["Onyxia's Lair"]};
{ 4, "WOTLKSets", "inv_misc_monsterscales_15", "=ds="..AL["Shiny Shard of the Gods"], "=q5="..BabbleZone["Onyxia's Lair"]};
Back = "SETMENUWRATH";
};
AtlasLoot_Data["T0SET"] = {
{ 3, "T0Druid", "Spell_Nature_Regeneration", "=ds=".."Druid", ""};
{ 4, "T0Mage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], ""};
{ 5, "T0Priest", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], ""};
{ 6, "T0Shaman", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], ""};
{ 7, "T0Warrior", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], ""};
{ 18, "T0Hunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], ""};
{ 19, "T0Paladin", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], ""};
{ 20, "T0Rogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], ""};
{ 21, "T0Warlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], ""};
Back = "SETMENUCLASSIC";
};
AtlasLoot_Data["DS3SET"] = {
{ 2, "DS3Cloth", "Spell_Holy_InnerFire", "=ds="..AL["Hallowed Raiment"], "=q5="..BabbleInventory["Cloth"]};
{ 3, "DS3Cloth", "INV_Elemental_Mote_Nether", "=ds="..AL["Mana-Etched Regalia"], "=q5="..BabbleInventory["Cloth"]};
{ 5, "DS3Leather", "Ability_Rogue_SinisterCalling", "=ds="..AL["Assassination Armor"], "=q5="..BabbleInventory["Leather"]};
{ 6, "DS3Leather", "Ability_Hunter_RapidKilling", "=ds="..AL["Wastewalker Armor"], "=q5="..BabbleInventory["Leather"]};
{ 8, "DS3Mail", "Ability_Hunter_Pet_Wolf", "=ds="..AL["Beast Lord Armor"], "=q5="..BabbleInventory["Mail"]};
{ 9, "DS3Mail", "INV_Helmet_70", "=ds="..AL["Tidefury Raiment"], "=q5="..BabbleInventory["Mail"]};
{ 11, "DS3Plate", "Spell_Fire_EnchantWeapon", "=ds="..AL["Bold Armor"], "=q5="..BabbleInventory["Plate"]};
{ 12, "DS3Plate", "INV_Hammer_02", "=ds="..AL["Righteous Armor"], "=q5="..BabbleInventory["Plate"]};
{ 17, "DS3Cloth", "Ability_Creature_Cursed_04", "=ds="..AL["Incanter's Regalia"], "=q5="..BabbleInventory["Cloth"]};
{ 18, "DS3Cloth", "Ability_Creature_Cursed_03", "=ds="..AL["Oblivion Raiment"], "=q5="..BabbleInventory["Cloth"]};
{ 20, "DS3Leather", "Spell_Holy_SealOfRighteousness", "=ds="..AL["Moonglade Raiment"], "=q5="..BabbleInventory["Leather"]};
{ 23, "DS3Mail", "Ability_FiegnDead", "=ds="..AL["Desolation Battlegear"], "=q5="..BabbleInventory["Mail"]};
{ 26, "DS3Plate", "INV_Helmet_08", "=ds="..AL["Doomplate Battlegear"], "=q5="..BabbleInventory["Plate"]};
Back = "SETMENUTBC";
Next = "T4SET";
};
AtlasLoot_Data["T1SET"] = {
{ 1, "T1Druid", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Tier 1 Sets"]};
{ 3, "T1Mage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], "=q5="..AL["Tier 1 Sets"]};
{ 5, "T1Priest", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Tier 1 Sets"]};
{ 7, "T1Shaman", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Tier 1 Sets"]};
{ 9, "T1Warrior", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Tier 1 Sets"]};
{ 16, "T1Hunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], "=q5="..AL["Tier 1 Sets"]};
{ 18, "T1Paladin", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Tier 1 Sets"]};
{ 20, "T1Rogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], "=q5="..AL["Tier 1 Sets"]};
{ 22, "T1Warlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], "=q5="..AL["Tier 1 Sets"]};
{ 10, "T1DPSWarrior", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Tier 1 Sets"]};
Prev = "T3SET";
Next = "T2SET";
Back = "SETMENUCLASSIC";
};
AtlasLoot_Data["T2SET"] = {
{ 1, "T2Druid", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Tier 2 Sets"]};
{ 3, "T2Mage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], "=q5="..AL["Tier 2 Sets"]};
{ 5, "T2Priest", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Tier 2 Sets"]};
{ 7, "T2Shaman", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Tier 2 Sets"]};
{ 9, "T2Warrior", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Tier 2 Sets"]};
{ 16, "T2Hunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], "=q5="..AL["Tier 2 Sets"]};
{ 18, "T2Paladin", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Tier 2 Sets"]};
{ 20, "T2Rogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], "=q5="..AL["Tier 2 Sets"]};
{ 22, "T2Warlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], "=q5="..AL["Tier 2 Sets"]};
{ 10, "T2DPSWarrior", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Tier 2 Sets"]};
Prev = "T1SET";
Next = "T3SET";
Back = "SETMENUCLASSIC";
};
AtlasLoot_Data["T3SET"] = {
{ 1, "T3Druid", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Tier 3 Sets"]};
{ 3, "T3Mage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], "=q5="..AL["Tier 3 Sets"]};
{ 5, "T3Priest", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Tier 3 Sets"]};
{ 7, "T3Shaman", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Tier 3 Sets"]};
{ 9, "T3Warrior", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Tier 3 Sets"]};
{ 16, "T3Hunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], "=q5="..AL["Tier 3 Sets"]};
{ 18, "T3Paladin", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Tier 3 Sets"]};
{ 20, "T3Rogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], "=q5="..AL["Tier 3 Sets"]};
{ 22, "T3Warlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], "=q5="..AL["Tier 3 Sets"]};
{ 10, "T3DPSWarrior", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Tier 3 Sets"]};
Prev = "T2SET";
Next = "T1SET";
Back = "SETMENUCLASSIC";
};
AtlasLoot_Data["T4SET"] = {
{ 2, "T4DruidBalance", "Spell_Nature_InsectSwarm", "=ds=".."Druid", "=q5="..AL["Balance"]};
{ 3, "T4DruidFeral", "Ability_Druid_Maul", "=ds=".."Druid", "=q5="..AL["Feral"]};
{ 4, "T4DruidRestoration", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Restoration"]};
{ 6, "T4Hunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], ""};
{ 8, "T4Mage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], ""};
{ 10, "T4PaladinHoly", "Spell_Holy_HolyBolt", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Holy"]};
{ 11, "T4PaladinProtection", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Protection"]};
{ 12, "T4PaladinRetribution", "Spell_Holy_AuraOfLight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Retribution"]};
{ 17, "T4PriestHoly", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Holy"]};
{ 18, "T4PriestShadow", "Spell_Shadow_AntiShadow", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Shadow"]};
{ 20, "T4Rogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], ""};
{ 22, "T4ShamanElemental", "Spell_Nature_Lightning", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Elemental"]};
{ 23, "T4ShamanEnhancement", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Enhancement"]};
{ 24, "T4ShamanRestoration", "Spell_Nature_HealingWaveGreater", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Restoration"]};
{ 26, "T4Warlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], ""};
{ 28, "T4WarriorFury", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Fury"]};
{ 29, "T4WarriorProtection", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Protection"]};
Back = "SETMENUTBC";
Prev = "DS3SET";
Next = "T5SET";
};
AtlasLoot_Data["T5SET"] = {
{ 2, "T5DruidBalance", "Spell_Nature_InsectSwarm", "=ds=".."Druid", "=q5="..AL["Balance"]};
{ 3, "T5DruidFeral", "Ability_Druid_Maul", "=ds=".."Druid", "=q5="..AL["Feral"]};
{ 4, "T5DruidRestoration", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Restoration"]};
{ 6, "T5Hunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], ""};
{ 8, "T5Mage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], ""};
{ 10, "T5PaladinHoly", "Spell_Holy_HolyBolt", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Holy"]};
{ 11, "T5PaladinProtection", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Protection"]};
{ 12, "T5PaladinRetribution", "Spell_Holy_AuraOfLight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Retribution"]};
{ 17, "T5PriestHoly", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Holy"]};
{ 18, "T5PriestShadow", "Spell_Shadow_AntiShadow", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Shadow"]};
{ 20, "T5Rogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], ""};
{ 22, "T5ShamanElemental", "Spell_Nature_Lightning", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Elemental"]};
{ 23, "T5ShamanEnhancement", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Enhancement"]};
{ 24, "T5ShamanRestoration", "Spell_Nature_HealingWaveGreater", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Restoration"]};
{ 26, "T5Warlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], ""};
{ 28, "T5WarriorFury", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Fury"]};
{ 29, "T5WarriorProtection", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Protection"]};
Back = "SETMENUTBC";
Prev = "T4SET";
Next = "T6SET";
};
AtlasLoot_Data["T6SET"] = {
{ 2, "T6DruidBalance", "Spell_Nature_InsectSwarm", "=ds=".."Druid", "=q5="..AL["Balance"]};
{ 3, "T6DruidFeral", "Ability_Druid_Maul", "=ds=".."Druid", "=q5="..AL["Feral"]};
{ 4, "T6DruidRestoration", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Restoration"]};
{ 6, "T6Hunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], ""};
{ 8, "T6Mage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], ""};
{ 10, "T6PaladinHoly", "Spell_Holy_HolyBolt", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Holy"]};
{ 11, "T6PaladinProtection", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Protection"]};
{ 12, "T6PaladinRetribution", "Spell_Holy_AuraOfLight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Retribution"]};
{ 17, "T6PriestHoly", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Holy"]};
{ 18, "T6PriestShadow", "Spell_Shadow_AntiShadow", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Shadow"]};
{ 20, "T6Rogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], ""};
{ 22, "T6ShamanElemental", "Spell_Nature_Lightning", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Elemental"]};
{ 23, "T6ShamanEnhancement", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Enhancement"]};
{ 24, "T6ShamanRestoration", "Spell_Nature_HealingWaveGreater", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Restoration"]};
{ 26, "T6Warlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], ""};
{ 28, "T6WarriorFury", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Fury"]};
{ 29, "T6WarriorProtection", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Protection"]};
Back = "SETMENUTBC";
Prev = "T5SET";
};
AtlasLoot_Data["T7T8SET"] = {
{ 2, "NaxxDeathKnightDPS", "Spell_Deathknight_DeathStrike", "=ds="..LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"], "=q5="..AL["DPS"]};
{ 3, "NaxxDeathKnightTank", "Spell_Deathknight_DeathStrike", "=ds="..LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"], "=q5="..AL["Tanking"]};
{ 5, "NaxxDruidBalance", "Spell_Nature_InsectSwarm", "=ds=".."Druid", "=q5="..AL["Balance"]};
{ 6, "NaxxDruidFeral", "Ability_Druid_Maul", "=ds=".."Druid", "=q5="..AL["Feral"]};
{ 7, "NaxxDruidRestoration", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Restoration"]};
{ 9, "NaxxHunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], ""};
{ 11, "NaxxMage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], ""};
{ 13, "NaxxPaladinHoly", "Spell_Holy_HolyBolt", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Holy"]};
{ 14, "NaxxPaladinProtection", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Protection"]};
{ 15, "NaxxPaladinRetribution", "Spell_Holy_AuraOfLight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Retribution"]};
{ 17, "NaxxPriestHoly", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Holy"]};
{ 18, "NaxxPriestShadow", "Spell_Shadow_AntiShadow", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Shadow"]};
{ 20, "NaxxRogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], ""};
{ 22, "NaxxShamanElemental", "Spell_Nature_Lightning", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Elemental"]};
{ 23, "NaxxShamanEnhancement", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Enhancement"]};
{ 24, "NaxxShamanRestoration", "Spell_Nature_HealingWaveGreater", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Restoration"]};
{ 26, "NaxxWarlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], ""};
{ 28, "NaxxWarriorFury", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Fury"]};
{ 29, "NaxxWarriorProtection", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Protection"]};
Back = "SETMENUWRATH";
Next = "T9SET";
};
AtlasLoot_Data["T9SET"] = {
{ 2, "T9DeathKnightDPS_A", "Spell_Deathknight_DeathStrike", "=ds="..LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"], "=q5="..AL["DPS"]};
{ 3, "T9DeathKnightTank_A", "Spell_Deathknight_DeathStrike", "=ds="..LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"], "=q5="..AL["Tanking"]};
{ 5, "T9DruidBalance_A", "Spell_Nature_InsectSwarm", "=ds=".."Druid", "=q5="..AL["Balance"]};
{ 6, "T9DruidFeral_A", "Ability_Druid_Maul", "=ds=".."Druid", "=q5="..AL["Feral"]};
{ 7, "T9DruidRestoration_A", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Restoration"]};
{ 9, "T9Hunter_A", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], ""};
{ 11, "T9Mage_A", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], ""};
{ 13, "T9PaladinHoly_A", "Spell_Holy_HolyBolt", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Holy"]};
{ 14, "T9PaladinProtection_A", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Protection"]};
{ 15, "T9PaladinRetribution_A", "Spell_Holy_AuraOfLight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Retribution"]};
{ 17, "T9PriestHoly_A", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Holy"]};
{ 18, "T9PriestShadow_A", "Spell_Shadow_AntiShadow", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Shadow"]};
{ 20, "T9Rogue_A", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], ""};
{ 22, "T9ShamanElemental_A", "Spell_Nature_Lightning", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Elemental"]};
{ 23, "T9ShamanEnhancement_A", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Enhancement"]};
{ 24, "T9ShamanRestoration_A", "Spell_Nature_HealingWaveGreater", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Restoration"]};
{ 26, "T9Warlock_A", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], ""};
{ 28, "T9WarriorFury_A", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Fury"]};
{ 29, "T9WarriorProtection_A", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Protection"]};
Back = "SETMENUWRATH";
Prev = "T7T8SET";
Next = "T10SET";
};
AtlasLoot_Data["T10SET"] = {
{ 2, "T10DeathKnightDPS", "Spell_Deathknight_DeathStrike", "=ds="..LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"], "=q5="..AL["DPS"]};
{ 3, "T10DeathKnightTank", "Spell_Deathknight_DeathStrike", "=ds="..LOCALIZED_CLASS_NAMES_MALE["DEATHKNIGHT"], "=q5="..AL["Tanking"]};
{ 5, "T10DruidBalance", "Spell_Nature_InsectSwarm", "=ds=".."Druid", "=q5="..AL["Balance"]};
{ 6, "T10DruidFeral", "Ability_Druid_Maul", "=ds=".."Druid", "=q5="..AL["Feral"]};
{ 7, "T10DruidRestoration", "Spell_Nature_Regeneration", "=ds=".."Druid", "=q5="..AL["Restoration"]};
{ 9, "T10Hunter", "Ability_Hunter_RunningShot", "=ds="..LOCALIZED_CLASS_NAMES_MALE["HUNTER"], ""};
{ 11, "T10Mage", "Spell_Frost_IceStorm", "=ds="..LOCALIZED_CLASS_NAMES_MALE["MAGE"], ""};
{ 13, "T10PaladinHoly", "Spell_Holy_HolyBolt", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Holy"]};
{ 14, "T10PaladinProtection", "Spell_Holy_SealOfMight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Protection"]};
{ 15, "T10PaladinRetribution", "Spell_Holy_AuraOfLight", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PALADIN"], "=q5="..AL["Retribution"]};
{ 17, "T10PriestHoly", "Spell_Holy_PowerWordShield", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Holy"]};
{ 18, "T10PriestShadow", "Spell_Shadow_AntiShadow", "=ds="..LOCALIZED_CLASS_NAMES_MALE["PRIEST"], "=q5="..AL["Shadow"]};
{ 20, "T10Rogue", "Ability_BackStab", "=ds="..LOCALIZED_CLASS_NAMES_MALE["ROGUE"], ""};
{ 22, "T10ShamanElemental", "Spell_Nature_Lightning", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Elemental"]};
{ 23, "T10ShamanEnhancement", "Spell_FireResistanceTotem_01", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Enhancement"]};
{ 24, "T10ShamanRestoration", "Spell_Nature_HealingWaveGreater", "=ds="..LOCALIZED_CLASS_NAMES_MALE["SHAMAN"], "=q5="..AL["Restoration"]};
{ 26, "T10Warlock", "Spell_Shadow_CurseOfTounges", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARLOCK"], ""};
{ 28, "T10WarriorFury", "Ability_Warrior_BattleShout", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Fury"]};
{ 29, "T10WarriorProtection", "INV_Shield_05", "=ds="..LOCALIZED_CLASS_NAMES_MALE["WARRIOR"], "=q5="..AL["Protection"]};
Back = "SETMENUWRATH";
Prev = "T9SET";
};