Work on Ascension Backport
This commit is contained in:
@@ -1,42 +0,0 @@
|
||||
# Compiled Lua sources
|
||||
luac.out
|
||||
|
||||
# luarocks build files
|
||||
*.src.rock
|
||||
*.zip
|
||||
*.tar.gz
|
||||
|
||||
# Object files
|
||||
*.o
|
||||
*.os
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Libraries
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
*.lo
|
||||
*.def
|
||||
*.exp
|
||||
|
||||
# Shared objects (inc. Windows DLLs)
|
||||
*.dll
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
*.i*86
|
||||
*.x86_64
|
||||
*.hex
|
||||
|
||||
.vscode/bookmarks.json
|
||||
@@ -1,120 +0,0 @@
|
||||
|
||||
|
||||
if (not LIB_OPEN_RAID_CAN_LOAD) then
|
||||
return
|
||||
end
|
||||
|
||||
local openRaidLib = LibStub:GetLibrary("LibOpenRaid-1.0")
|
||||
|
||||
--comm prefix deprecated
|
||||
openRaidLib.commPrefixDeprecated = {
|
||||
|
||||
}
|
||||
|
||||
local spamLimit = {}
|
||||
|
||||
local showDeprecatedMessage = function(deprecatedCall, newCall)
|
||||
local debugTrace = debugstack(3, 1, 1)
|
||||
if (debugTrace:find("AddOns\\WeakAuras")) then
|
||||
local auraName = debugTrace:gsub("%[string \"Error in: ", ""):gsub("':'.*", "")
|
||||
openRaidLib.DeprecatedMessage("|cFFEEEEEE" .. deprecatedCall .. "|r is deprecated|cFFEEEEEE, please use " .. newCall .. "\nFrom a weakaura named: " .. auraName .. "")
|
||||
else
|
||||
debugTrace = debugTrace:gsub("%[.-%]", "")
|
||||
debugTrace = debugTrace:gsub("\n", "")
|
||||
openRaidLib.DeprecatedMessage("|cFFEEEEEE" .. deprecatedCall .. "|r is deprecated|cFFEEEEEE, please use " .. newCall .. "\nFrom line" .. debugTrace .. "")
|
||||
end
|
||||
end
|
||||
|
||||
--deprecated: 'RequestAllPlayersInfo' has been replaced by 'RequestAllData'
|
||||
function openRaidLib.RequestAllPlayersInfo()
|
||||
if (not spamLimit["openRaidLib.RequestAllData"]) then
|
||||
spamLimit["openRaidLib.RequestAllData"] = true
|
||||
showDeprecatedMessage("openRaidLib.RequestAllPlayersInfo()", "openRaidLib.RequestAllData()")
|
||||
end
|
||||
end
|
||||
|
||||
--deprecated: 'playerInfoManager' has been replaced by 'UnitInfoManager'
|
||||
openRaidLib.playerInfoManager = {}
|
||||
local deprecatedMetatable = {
|
||||
__newindex = function()
|
||||
if (not spamLimit["openRaidLib.UnitInfoManager"]) then
|
||||
openRaidLib.DeprecatedMessage("openRaidLib.playerInfoManager table is deprecated, please use openRaidLib.UnitInfoManager.")
|
||||
showDeprecatedMessage("", "")
|
||||
spamLimit["openRaidLib.UnitInfoManager"] = true
|
||||
end
|
||||
return
|
||||
end,
|
||||
__index = function(t, key)
|
||||
|
||||
return rawget(t, key) or showDeprecatedMessage("openRaidLib.playerInfoManager", "openRaidLib.UnitInfoManager")
|
||||
end,
|
||||
}
|
||||
function openRaidLib.playerInfoManager.GetPlayerInfo()
|
||||
if (not spamLimit["openRaidLib.playerInfoManager.GetPlayerInfo"]) then
|
||||
showDeprecatedMessage("openRaidLib.playerInfoManager.GetPlayerInfo(unitName)", "openRaidLib.GetUnitInfo(unitId)")
|
||||
spamLimit["openRaidLib.playerInfoManager.GetPlayerInfo"] = true
|
||||
end
|
||||
end
|
||||
function openRaidLib.playerInfoManager.GetAllPlayersInfo()
|
||||
if (not spamLimit["openRaidLib.playerInfoManager.GetAllPlayersInfo"]) then
|
||||
showDeprecatedMessage("openRaidLib.playerInfoManager.GetAllPlayersInfo()", "openRaidLib.GetAllUnitsInfo()")
|
||||
spamLimit["openRaidLib.playerInfoManager.GetAllPlayersInfo"] = true
|
||||
end
|
||||
end
|
||||
setmetatable(openRaidLib.playerInfoManager, deprecatedMetatable)
|
||||
|
||||
--deprecated: 'gearManager' has been replaced by 'GearManager'
|
||||
openRaidLib.gearManager = {}
|
||||
local deprecatedMetatable = {
|
||||
__newindex = function()
|
||||
if (not spamLimit["openRaidLib.gearManager__newindex"]) then
|
||||
showDeprecatedMessage("openRaidLib.gearManager", "openRaidLib.GearManager")
|
||||
spamLimit["openRaidLib.gearManager__newindex"] = true
|
||||
end
|
||||
return
|
||||
end,
|
||||
__index = function(t, key)
|
||||
return rawget(t, key) or showDeprecatedMessage("openRaidLib.gearManager", "openRaidLib.GearManager")
|
||||
end,
|
||||
}
|
||||
function openRaidLib.gearManager.GetAllPlayersGear()
|
||||
if (not spamLimit["openRaidLib.gearManager.GetAllPlayersGear"]) then
|
||||
showDeprecatedMessage("openRaidLib.gearManager.GetAllPlayersGear()", "openRaidLib.GetAllUnitsGear()")
|
||||
spamLimit["openRaidLib.gearManager.GetAllPlayersGear"] = true
|
||||
end
|
||||
end
|
||||
function openRaidLib.gearManager.GetPlayerGear()
|
||||
if (not spamLimit["openRaidLib.gearManager.GetPlayerGear"]) then
|
||||
showDeprecatedMessage("openRaidLib.gearManager.GetPlayerGear()", "openRaidLib.GetUnitGear(unitId)")
|
||||
spamLimit["openRaidLib.gearManager.GetPlayerGear"] = true
|
||||
end
|
||||
end
|
||||
setmetatable(openRaidLib.gearManager, deprecatedMetatable)
|
||||
|
||||
--deprecated: 'cooldownManager' has been replaced by 'CooldownManager'
|
||||
openRaidLib.cooldownManager = {}
|
||||
local deprecatedMetatable = {
|
||||
__newindex = function()
|
||||
if (not spamLimit["openRaidLib.cooldownManager__newindex"]) then
|
||||
showDeprecatedMessage("openRaidLib.cooldownManager", "openRaidLib.CooldownManager")
|
||||
spamLimit["openRaidLib.cooldownManager__newindex"] = true
|
||||
end
|
||||
return
|
||||
end,
|
||||
__index = function(t, key)
|
||||
return rawget(t, key) or showDeprecatedMessage("openRaidLib.cooldownManager", "openRaidLib.CooldownManager")
|
||||
end,
|
||||
}
|
||||
function openRaidLib.cooldownManager.GetAllPlayersCooldown()
|
||||
if (not spamLimit["openRaidLib.cooldownManager.GetAllPlayersCooldown"]) then
|
||||
showDeprecatedMessage("openRaidLib.cooldownManager.GetAllPlayersCooldown()", "openRaidLib.GetAllUnitsCooldown()")
|
||||
spamLimit["openRaidLib.cooldownManager.GetAllPlayersCooldown"] = true
|
||||
end
|
||||
end
|
||||
function openRaidLib.cooldownManager.GetPlayerCooldowns()
|
||||
if (not spamLimit["openRaidLib.cooldownManager.GetPlayerCooldowns"]) then
|
||||
showDeprecatedMessage("openRaidLib.cooldownManager.GetPlayerCooldowns()", "openRaidLib.GetUnitCooldowns(unitId)")
|
||||
spamLimit["openRaidLib.cooldownManager.GetPlayerCooldowns"] = true
|
||||
end
|
||||
end
|
||||
setmetatable(openRaidLib.cooldownManager, deprecatedMetatable)
|
||||
@@ -1,4 +1,4 @@
|
||||
--[=[
|
||||
--[=[
|
||||
Dumping logical functions here, make the code of the main file smaller
|
||||
--]=]
|
||||
|
||||
@@ -444,22 +444,12 @@ function openRaidLib.GetFoodTierFromAura(auraInfo)
|
||||
end
|
||||
|
||||
local isTierPiece = function(itemLink)
|
||||
local tooltipData = C_TooltipInfo.GetHyperlink(itemLink)
|
||||
if (tooltipData) then
|
||||
local lines = tooltipData.lines
|
||||
if (lines and #lines > 0) then
|
||||
for i = 1, #lines do
|
||||
local thisLine = lines[i]
|
||||
local leftText = thisLine.leftText
|
||||
if (type(leftText) == "string") then
|
||||
if (leftText:match( "%s%(%d%/5%)$" )) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
if GetItemSetID then
|
||||
local itemID = GetItemInfoFromHyperlink(itemLink)
|
||||
if itemID then
|
||||
return GetItemSetID(itemID) ~= nil
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
@@ -507,7 +497,7 @@ function openRaidLib.GearManager.BuildEquipmentItemLinks(equippedGearList)
|
||||
equipmentTable.itemName = itemName
|
||||
equipmentTable.isTier = isTierPiece(itemLink)
|
||||
|
||||
local _, _, enchantId, gemId1, gemId2, gemId3, gemId4, suffixId, uniqueId, levelOfTheItem, specId, upgradeInfo, instanceDifficultyId, numBonusIds, restLink = strsplit(":", itemLink)
|
||||
local _, _, enchantId, gemId1, gemId2, gemId3, gemId4 = strsplit(":", itemLink)
|
||||
|
||||
local enchantAttribute = LIB_OPEN_RAID_ENCHANT_SLOTS[slotId]
|
||||
local nEnchantId = 0
|
||||
@@ -516,11 +506,6 @@ function openRaidLib.GearManager.BuildEquipmentItemLinks(equippedGearList)
|
||||
enchantId = tonumber(enchantId)
|
||||
nEnchantId = enchantId
|
||||
end
|
||||
|
||||
--6400 and above is dragonflight enchantId number space
|
||||
if (nEnchantId < 6300 and not LIB_OPEN_RAID_DEATHKNIGHT_RUNEFORGING_ENCHANT_IDS[nEnchantId]) then
|
||||
nEnchantId = 0
|
||||
end
|
||||
end
|
||||
equipmentTable.enchantId = nEnchantId
|
||||
|
||||
@@ -532,7 +517,7 @@ function openRaidLib.GearManager.BuildEquipmentItemLinks(equippedGearList)
|
||||
--check if the socket is empty
|
||||
for gemSlotId = 1, numGemSlots do
|
||||
local gemId = tonumber(gemsIds[gemSlotId])
|
||||
if (gemId and gemId >= 180000) then
|
||||
if (gemId) then
|
||||
nGemId = gemId
|
||||
break
|
||||
end
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--[=[
|
||||
--[=[
|
||||
This file has the functions to get player information
|
||||
Dumping them here, make the code of the main file smaller
|
||||
--]=]
|
||||
@@ -11,291 +11,54 @@ end
|
||||
|
||||
local openRaidLib = LibStub:GetLibrary("LibOpenRaid-1.0")
|
||||
|
||||
local CONST_TALENT_VERSION_CLASSIC = 1
|
||||
local CONST_TALENT_VERSION_LEGION = 4
|
||||
local CONST_TALENT_VERSION_DRAGONFLIGHT = 5
|
||||
|
||||
local CONST_BTALENT_VERSION_COVENANTS = 9
|
||||
|
||||
local CONST_SPELLBOOK_CLASSSPELLS_TABID = 2
|
||||
local CONST_SPELLBOOK_GENERAL_TABID = 1
|
||||
local CONST_ISITEM_BY_TYPEID = {
|
||||
[10] = true, --healing items
|
||||
[11] = true, --attack items
|
||||
[12] = true, --utility items
|
||||
}
|
||||
|
||||
local GetItemInfo = GetItemInfo
|
||||
local GetItemStats = GetItemStats
|
||||
local GetInventoryItemLink = GetInventoryItemLink
|
||||
|
||||
local isTimewalkWoW = function()
|
||||
local _, _, _, buildInfo = GetBuildInfo()
|
||||
if (buildInfo < 40000) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
local IsDragonflight = function()
|
||||
return select(4, GetBuildInfo()) >= 100000
|
||||
end
|
||||
|
||||
local IsShadowlands = function()
|
||||
local versionString, revision, launchDate, gameVersion = GetBuildInfo()
|
||||
if (gameVersion >= 90000 and gameVersion < 100000) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
--information about the player character to send, each expansion has its own system and data can be different
|
||||
--it's always a number
|
||||
function openRaidLib.UnitInfoManager.GetPlayerInfo1()
|
||||
if (IsShadowlands()) then
|
||||
--return the renown level within the player covenant
|
||||
local renown = C_CovenantSanctumUI.GetRenownLevel() or 1
|
||||
return renown
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
--information about the player character to send, each expansion has its own system and data can be different
|
||||
--it's always a number
|
||||
function openRaidLib.UnitInfoManager.GetPlayerInfo2()
|
||||
if (IsShadowlands()) then
|
||||
--return which covenant the player picked
|
||||
local covenant = C_Covenants.GetActiveCovenantID() or 0
|
||||
return covenant
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
--default player class-spec talent system
|
||||
function openRaidLib.GetTalentVersion()
|
||||
local _, _, _, buildInfo = GetBuildInfo()
|
||||
|
||||
if (buildInfo >= 1 and buildInfo <= 40000) then --vanilla tbc wotlk cataclysm
|
||||
return CONST_TALENT_VERSION_CLASSIC
|
||||
end
|
||||
|
||||
if (buildInfo >= 70000 and buildInfo <= 100000) then --legion bfa shadowlands
|
||||
return CONST_TALENT_VERSION_LEGION
|
||||
end
|
||||
|
||||
if (buildInfo >= 100000 and buildInfo <= 200000) then --dragonflight
|
||||
return CONST_TALENT_VERSION_DRAGONFLIGHT
|
||||
end
|
||||
end
|
||||
|
||||
--secondary talent tree, can be a legendary weapon talent tree, covenant talent tree, etc...
|
||||
function openRaidLib.GetBorrowedTalentVersion()
|
||||
if (IsShadowlands()) then
|
||||
return CONST_BTALENT_VERSION_COVENANTS
|
||||
end
|
||||
end
|
||||
|
||||
local getDragonflightTalentsExportedString = function()
|
||||
local exportStream = ExportUtil.MakeExportDataStream()
|
||||
local configId = C_ClassTalents.GetActiveConfigID()
|
||||
if (configId) then
|
||||
local configInfo = C_Traits.GetConfigInfo(configId)
|
||||
local currentSpecID = PlayerUtil.GetCurrentSpecID()
|
||||
local treeInfo = C_Traits.GetTreeInfo(configId, configInfo.treeIDs[1])
|
||||
local treeHash = C_Traits.GetTreeHash(treeInfo.ID)
|
||||
local serializationVersion = C_Traits.GetLoadoutSerializationVersion()
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
local getDragonflightTalentsAsIndexTable = function()
|
||||
local allTalents = {}
|
||||
local configId = C_ClassTalents.GetActiveConfigID()
|
||||
if (not configId) then
|
||||
return allTalents
|
||||
end
|
||||
|
||||
local configInfo = C_Traits.GetConfigInfo(configId)
|
||||
|
||||
for treeIndex, treeId in ipairs(configInfo.treeIDs) do
|
||||
local treeNodes = C_Traits.GetTreeNodes(treeId)
|
||||
|
||||
for nodeIdIndex, treeNodeID in ipairs(treeNodes) do
|
||||
local traitNodeInfo = C_Traits.GetNodeInfo(configId, treeNodeID)
|
||||
|
||||
if (traitNodeInfo) then
|
||||
local activeEntry = traitNodeInfo.activeEntry
|
||||
if (activeEntry) then
|
||||
local entryId = activeEntry.entryID
|
||||
local rank = activeEntry.rank
|
||||
if (rank > 0) then
|
||||
--get the entry info
|
||||
local traitEntryInfo = C_Traits.GetEntryInfo(configId, entryId)
|
||||
local definitionId = traitEntryInfo.definitionID
|
||||
|
||||
--definition info
|
||||
local traitDefinitionInfo = C_Traits.GetDefinitionInfo(definitionId)
|
||||
local spellId = traitDefinitionInfo.overriddenSpellID or traitDefinitionInfo.spellID
|
||||
local spellName, _, spellTexture = GetSpellInfo(spellId)
|
||||
if (spellName) then
|
||||
allTalents[#allTalents+1] = spellId
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return allTalents
|
||||
end
|
||||
|
||||
--creates two tables, one with indexed talents and another with pairs values ([talentId] = true)
|
||||
function openRaidLib.UnitInfoManager.GetPlayerTalentsAsPairsTable()
|
||||
local talentsPairs = {}
|
||||
local talentVersion = openRaidLib.GetTalentVersion()
|
||||
|
||||
if (talentVersion == CONST_TALENT_VERSION_DRAGONFLIGHT) then
|
||||
local allTalents = getDragonflightTalentsAsIndexTable()
|
||||
for i = 1, #allTalents do
|
||||
local spellId = allTalents[i]
|
||||
talentsPairs[spellId] = true
|
||||
end
|
||||
|
||||
elseif (talentVersion == CONST_TALENT_VERSION_LEGION) then
|
||||
for i = 1, 7 do
|
||||
for o = 1, 3 do
|
||||
local talentId, _, _, selected = GetTalentInfo(i, o, 1)
|
||||
if (selected) then
|
||||
talentsPairs[talentId] = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return talentsPairs
|
||||
end
|
||||
|
||||
function openRaidLib.UnitInfoManager.GetPlayerTalents()
|
||||
local talents = {}
|
||||
local talentVersion = openRaidLib.GetTalentVersion()
|
||||
|
||||
if (talentVersion == CONST_TALENT_VERSION_DRAGONFLIGHT) then
|
||||
talents = getDragonflightTalentsAsIndexTable()
|
||||
|
||||
elseif (talentVersion == CONST_TALENT_VERSION_LEGION) then
|
||||
talents = {0, 0, 0, 0, 0, 0, 0}
|
||||
for talentTier = 1, 7 do
|
||||
for talentColumn = 1, 3 do
|
||||
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1)
|
||||
if (selected) then
|
||||
talents[talentTier] = talentId
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return talents
|
||||
end
|
||||
|
||||
function openRaidLib.UnitInfoManager.GetPlayerPvPTalents()
|
||||
if (IsDragonflight()) then
|
||||
return {}
|
||||
end
|
||||
-- todo: coa will use these eventually
|
||||
return {}
|
||||
|
||||
local talentsPvP = {0, 0, 0}
|
||||
local talentList = C_SpecializationInfo.GetAllSelectedPvpTalentIDs()
|
||||
for talentIndex, talentId in ipairs(talentList) do
|
||||
local doesExists = GetPvpTalentInfoByID(talentId)
|
||||
if (doesExists) then
|
||||
talentsPvP[talentIndex] = talentId
|
||||
end
|
||||
end
|
||||
return talentsPvP
|
||||
-- expected format
|
||||
-- local talentsPvP = {0, 0, 0}
|
||||
-- talentsPvP[index] = talentID
|
||||
end
|
||||
|
||||
--return the current specId of the player
|
||||
function openRaidLib.GetPlayerSpecId()
|
||||
if (isTimewalkWoW()) then
|
||||
return 0
|
||||
end
|
||||
|
||||
local spec = GetSpecialization()
|
||||
if (spec) then
|
||||
local specId = GetSpecializationInfo(spec)
|
||||
if (specId and specId > 0) then
|
||||
return specId
|
||||
end
|
||||
end
|
||||
return GetSpecialization() or 1
|
||||
end
|
||||
|
||||
--borrowed talent tree from shadowlands
|
||||
function openRaidLib.UnitInfoManager.GetPlayerConduits()
|
||||
local conduits = {}
|
||||
local soulbindID = C_Soulbinds.GetActiveSoulbindID()
|
||||
|
||||
if (soulbindID ~= 0) then
|
||||
local soulbindData = C_Soulbinds.GetSoulbindData(soulbindID)
|
||||
if (soulbindData ~= 0) then
|
||||
local tree = soulbindData.tree
|
||||
local nodes = tree.nodes
|
||||
|
||||
table.sort(nodes, function(t1, t2) return t1.row < t2.row end)
|
||||
local C_Soulbinds_GetConduitCollectionData = C_Soulbinds.GetConduitCollectionData
|
||||
for nodeId, nodeInfo in ipairs(nodes) do
|
||||
--check if the node is a conduit placed by the player
|
||||
|
||||
if (nodeInfo.state == Enum.SoulbindNodeState.Selected) then
|
||||
local conduitId = nodeInfo.conduitID
|
||||
local conduitRank = nodeInfo.conduitRank
|
||||
|
||||
if (conduitId and conduitRank) then
|
||||
--have spell id when it's a default conduit from the game
|
||||
local spellId = nodeInfo.spellID
|
||||
--have conduit id when is a conduid placed by the player
|
||||
local conduitId = nodeInfo.conduitID
|
||||
|
||||
if (spellId == 0) then
|
||||
--is player conduit
|
||||
spellId = C_Soulbinds.GetConduitSpellID(nodeInfo.conduitID, nodeInfo.conduitRank)
|
||||
conduits[#conduits+1] = spellId
|
||||
local collectionData = C_Soulbinds_GetConduitCollectionData(conduitId)
|
||||
conduits[#conduits+1] = collectionData and collectionData.conduitItemLevel or 0
|
||||
else
|
||||
--is default conduit
|
||||
conduits[#conduits+1] = spellId
|
||||
conduits[#conduits+1] = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return conduits
|
||||
end
|
||||
|
||||
function openRaidLib.UnitInfoManager.GetPlayerBorrowedTalents()
|
||||
local borrowedTalentVersion = openRaidLib.GetBorrowedTalentVersion()
|
||||
|
||||
if (borrowedTalentVersion == CONST_BTALENT_VERSION_COVENANTS) then
|
||||
return openRaidLib.UnitInfoManager.GetPlayerConduits()
|
||||
end
|
||||
|
||||
return {}
|
||||
end
|
||||
|
||||
|
||||
function openRaidLib.GearManager.GetPlayerItemLevel()
|
||||
if (_G.GetAverageItemLevel) then
|
||||
local _, itemLevel = GetAverageItemLevel()
|
||||
itemLevel = floor(itemLevel)
|
||||
return itemLevel
|
||||
else
|
||||
return 0
|
||||
end
|
||||
local itemLevel = UnitAverageItemLevel("player")
|
||||
return floor(itemLevel)
|
||||
end
|
||||
|
||||
--return an integer between zero and one hundret indicating the player gear durability
|
||||
@@ -327,17 +90,33 @@ function openRaidLib.GearManager.GetPlayerGearDurability()
|
||||
end
|
||||
|
||||
function openRaidLib.GearManager.GetPlayerWeaponEnchant()
|
||||
if not GetWeaponTempEnchantInfo then
|
||||
return 0, 0, 0
|
||||
end
|
||||
local weaponEnchant = 0
|
||||
local _, _, _, mainHandEnchantId, _, _, _, offHandEnchantId = GetWeaponEnchantInfo()
|
||||
if (LIB_OPEN_RAID_WEAPON_ENCHANT_IDS[mainHandEnchantId]) then
|
||||
local _, mainHandEnchantId = GetWeaponTempEnchantInfo(INVSLOT_MAINHAND)
|
||||
local _, offHandEnchantId = GetWeaponTempEnchantInfo(INVSLOT_OFFHAND)
|
||||
if (mainHandEnchantId and LIB_OPEN_RAID_WEAPON_ENCHANT_IDS[mainHandEnchantId]) then
|
||||
weaponEnchant = 1
|
||||
|
||||
elseif(LIB_OPEN_RAID_WEAPON_ENCHANT_IDS[offHandEnchantId]) then
|
||||
elseif( offHandEnchantId and LIB_OPEN_RAID_WEAPON_ENCHANT_IDS[offHandEnchantId]) then
|
||||
weaponEnchant = 1
|
||||
end
|
||||
return weaponEnchant, mainHandEnchantId or 0, offHandEnchantId or 0
|
||||
end
|
||||
|
||||
function openRaidLib.GearManager.GetPlayerRangedWeaponEnchant()
|
||||
if not GetWeaponTempEnchantInfo then
|
||||
return 0, 0
|
||||
end
|
||||
local weaponEnchant = 0
|
||||
local _, rangedEnchantId = GetWeaponTempEnchantInfo(INVSLOT_RANGED)
|
||||
if (rangedEnchantId and LIB_OPEN_RAID_WEAPON_ENCHANT_IDS[rangedEnchantId]) then
|
||||
weaponEnchant = 1
|
||||
end
|
||||
return weaponEnchant, rangedEnchantId or 0
|
||||
end
|
||||
|
||||
function openRaidLib.GearManager.GetPlayerGemsAndEnchantInfo()
|
||||
--hold equipmentSlotId of equipment with a gem socket but it's empty
|
||||
local slotsWithoutGems = {}
|
||||
@@ -346,55 +125,48 @@ function openRaidLib.GearManager.GetPlayerGemsAndEnchantInfo()
|
||||
|
||||
local gearWithEnchantIds = {}
|
||||
|
||||
for equipmentSlotId = 1, 17 do
|
||||
for equipmentSlotId = INVSLOT_FIRST_EQUIPPED, INVSLOT_LAST_EQUIPPED do
|
||||
local itemLink = GetInventoryItemLink("player", equipmentSlotId)
|
||||
if (itemLink) then
|
||||
--get the information from the item
|
||||
local _, itemId, enchantId, gemId1, gemId2, gemId3, gemId4, suffixId, uniqueId, levelOfTheItem, specId, upgradeInfo, instanceDifficultyId, numBonusIds, restLink = strsplit(":", itemLink)
|
||||
local _, itemId, enchantId, gemId1, gemId2, gemId3, gemId4 = strsplit(":", itemLink)
|
||||
local gemsIds = {gemId1, gemId2, gemId3, gemId4}
|
||||
|
||||
--enchant
|
||||
--check if the slot can receive enchat and if the equipment has an enchant
|
||||
local enchantAttribute = LIB_OPEN_RAID_ENCHANT_SLOTS[equipmentSlotId]
|
||||
local nEnchantId = 0
|
||||
--check if the slot can receive enchat and if the equipment has an enchant
|
||||
local enchantAttribute = LIB_OPEN_RAID_ENCHANT_SLOTS[equipmentSlotId]
|
||||
local nEnchantId = 0
|
||||
|
||||
if (enchantAttribute) then --this slot can receive an enchant
|
||||
if (enchantId and enchantId ~= "") then
|
||||
local number = tonumber(enchantId)
|
||||
nEnchantId = number
|
||||
gearWithEnchantIds[#gearWithEnchantIds+1] = nEnchantId
|
||||
else
|
||||
gearWithEnchantIds[#gearWithEnchantIds+1] = 0
|
||||
end
|
||||
|
||||
--6400 and above is dragonflight enchantId number space
|
||||
if (nEnchantId < 6300 and not LIB_OPEN_RAID_DEATHKNIGHT_RUNEFORGING_ENCHANT_IDS[nEnchantId]) then
|
||||
slotsWithoutEnchant[#slotsWithoutEnchant+1] = equipmentSlotId
|
||||
end
|
||||
if (enchantAttribute) then --this slot can receive an enchant
|
||||
if (enchantId and enchantId ~= "") then
|
||||
local number = tonumber(enchantId)
|
||||
nEnchantId = number
|
||||
gearWithEnchantIds[#gearWithEnchantIds+1] = nEnchantId
|
||||
else
|
||||
gearWithEnchantIds[#gearWithEnchantIds+1] = 0
|
||||
slotsWithoutEnchant[#slotsWithoutEnchant+1] = equipmentSlotId
|
||||
end
|
||||
end
|
||||
|
||||
--gems
|
||||
--local itemStatsTable = {}
|
||||
--fill the table above with information about the item
|
||||
--GetItemStats(itemLink, itemStatsTable) --deprecated in 10.2.5
|
||||
local itemStatsTable = C_Item.GetItemStats(itemLink)
|
||||
--local itemStatsTable = {}
|
||||
--fill the table above with information about the item
|
||||
--GetItemStats(itemLink, itemStatsTable)
|
||||
local itemStatsTable = GetItemStats(itemLink)
|
||||
|
||||
--check if the item has a socket
|
||||
if (itemStatsTable) then
|
||||
if (itemStatsTable.EMPTY_SOCKET_PRISMATIC) then
|
||||
--check if the socket is empty
|
||||
for i = 1, itemStatsTable.EMPTY_SOCKET_PRISMATIC do
|
||||
local gemId = tonumber(gemsIds[i])
|
||||
if (not gemId or gemId == 0) then
|
||||
slotsWithoutGems[#slotsWithoutGems+1] = equipmentSlotId
|
||||
|
||||
--check if the gem is not a valid gem (deprecated gem)
|
||||
elseif (gemId < 180000) then
|
||||
slotsWithoutGems[#slotsWithoutGems+1] = equipmentSlotId
|
||||
end
|
||||
--check if the item has a socket
|
||||
if (itemStatsTable) then
|
||||
local numSockets = (itemStatsTable.EMPTY_SOCKET_RED or 0) + (itemStatsTable.EMPTY_SOCKET_YELLOW or 0) + (itemStatsTable.EMPTY_SOCKET_BLUE or 0)
|
||||
if numSockets > 0 then
|
||||
--check if the socket is empty
|
||||
for i = 1, numSockets do
|
||||
local gemId = tonumber(gemsIds[i])
|
||||
if (not gemId or gemId == 0) then
|
||||
slotsWithoutGems[#slotsWithoutGems+1] = equipmentSlotId
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -408,19 +180,19 @@ function openRaidLib.GearManager.BuildPlayerEquipmentList()
|
||||
local itemLink = GetInventoryItemLink("player", equipmentSlotId)
|
||||
if (itemLink) then
|
||||
--local itemStatsTable = {}
|
||||
local itemID, enchantID, gemID1, gemID2, gemID3, gemID4, suffixID, uniqueID, linkLevel, specializationID, modifiersMask, itemContext = select(2, strsplit(":", itemLink))
|
||||
local itemID = select(2, strsplit(":", itemLink))
|
||||
itemID = tonumber(itemID)
|
||||
|
||||
local effectiveILvl, isPreview, baseILvl = GetDetailedItemLevelInfo(itemLink)
|
||||
local _, _, _, effectiveILvl = GetItemInfo(itemID)
|
||||
if (not effectiveILvl) then
|
||||
openRaidLib.mainControl.scheduleUpdatePlayerData()
|
||||
effectiveILvl = 0
|
||||
openRaidLib.__errors[#openRaidLib.__errors+1] = "Fail to get Item Level: " .. (itemID or "invalid itemID") .. " " .. (itemLink and itemLink:gsub("|H", "") or "invalid itemLink")
|
||||
end
|
||||
|
||||
local itemStatsTable = C_Item.GetItemStats(itemLink)
|
||||
local itemStatsTable = GetItemStats(itemLink)
|
||||
--GetItemStats(itemLink, itemStatsTable)
|
||||
local gemSlotsAvailable = itemStatsTable and itemStatsTable.EMPTY_SOCKET_PRISMATIC or 0
|
||||
local gemSlotsAvailable = itemStatsTable and (itemStatsTable.EMPTY_SOCKET_RED or 0) + (itemStatsTable.EMPTY_SOCKET_YELLOW or 0) + (itemStatsTable.EMPTY_SOCKET_BLUE or 0)
|
||||
|
||||
local noPrefixItemLink = itemLink : gsub("^|c%x%x%x%x%x%x%x%x|Hitem", "")
|
||||
local linkTable = {strsplit(":", noPrefixItemLink)}
|
||||
@@ -497,118 +269,50 @@ end
|
||||
local getSpellListAsHashTableFromSpellBook = function()
|
||||
local completeListOfSpells = {}
|
||||
|
||||
--this line might not be compatible with classic
|
||||
local specId, specName, _, specIconTexture = GetSpecializationInfo(GetSpecialization())
|
||||
--local classNameLoc, className, classId = UnitClass("player") --not in use
|
||||
local locPlayerRace, playerRace, playerRaceId = UnitRace("player")
|
||||
-- find spells in spellbook
|
||||
for tab = 2, GetNumSpellTabs() do
|
||||
local name, _, offset, numSpells = GetSpellTabInfo(tab)
|
||||
|
||||
--get racials from the general tab
|
||||
local tabName, tabTexture, offset, numSpells, isGuild, offspecId = GetSpellTabInfo(CONST_SPELLBOOK_GENERAL_TABID)
|
||||
offset = offset + 1
|
||||
local tabEnd = offset + numSpells
|
||||
for entryOffset = offset, tabEnd - 1 do
|
||||
local spellType, spellId = GetSpellBookItemInfo(entryOffset, "player")
|
||||
local spellData = LIB_OPEN_RAID_COOLDOWNS_INFO[spellId]
|
||||
if (spellData) then
|
||||
local raceId = spellData.raceid
|
||||
if (raceId) then
|
||||
if (type(raceId) == "table") then
|
||||
if (raceId[playerRaceId]) then
|
||||
spellId = C_SpellBook.GetOverrideSpell(spellId)
|
||||
local spellName = GetSpellInfo(spellId)
|
||||
local bIsPassive = IsPassiveSpell(spellId, "player")
|
||||
if (spellName and not bIsPassive) then
|
||||
completeListOfSpells[spellId] = true
|
||||
end
|
||||
end
|
||||
if name and name ~= "Internal" and name ~= "Ascension Vanity Items" then
|
||||
for i = offset + 1, offset + numSpells do
|
||||
local spellName, rank = GetSpellInfo(i, BOOKTYPE_SPELL)
|
||||
|
||||
elseif (type(raceId) == "number") then
|
||||
if (raceId == playerRaceId) then
|
||||
spellId = C_SpellBook.GetOverrideSpell(spellId)
|
||||
local spellName = GetSpellInfo(spellId)
|
||||
local bIsPassive = IsPassiveSpell(spellId, "player")
|
||||
if (spellName and not bIsPassive) then
|
||||
completeListOfSpells[spellId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--get spells from the Spec spellbook
|
||||
for i = 1, GetNumSpellTabs() do
|
||||
local tabName, tabTexture, offset, numSpells, isGuild, offspecId = GetSpellTabInfo(i)
|
||||
if (tabTexture == specIconTexture) then
|
||||
offset = offset + 1
|
||||
local tabEnd = offset + numSpells
|
||||
for entryOffset = offset, tabEnd - 1 do
|
||||
local spellType, spellId = GetSpellBookItemInfo(entryOffset, "player")
|
||||
if (spellId) then
|
||||
if (spellType == "SPELL") then
|
||||
spellId = C_SpellBook.GetOverrideSpell(spellId)
|
||||
local spellName = GetSpellInfo(spellId)
|
||||
local bIsPassive = IsPassiveSpell(spellId, "player")
|
||||
if LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS[spellId] then
|
||||
for _, overrideSpellId in pairs(LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS[spellId]) do
|
||||
completeListOfSpells[overrideSpellId] = true
|
||||
if spellName then
|
||||
local link = GetSpellLink(spellName, rank)
|
||||
if link then
|
||||
local spellID = tonumber(link:match("spell:(%d*)"))
|
||||
if spellID and not IsPassiveSpellID(spellID) then
|
||||
if LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS and LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS[spellID] then
|
||||
for _, overrideSpellID in pairs(LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS[spellID]) do
|
||||
completeListOfSpells[overrideSpellID] = true
|
||||
end
|
||||
else
|
||||
completeListOfSpells[spellID] = true
|
||||
end
|
||||
elseif (spellName and not bIsPassive) then
|
||||
completeListOfSpells[spellId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--get class shared spells from the spell book
|
||||
local tabName, tabTexture, offset, numSpells, isGuild, offspecId = GetSpellTabInfo(CONST_SPELLBOOK_CLASSSPELLS_TABID)
|
||||
offset = offset + 1
|
||||
local tabEnd = offset + numSpells
|
||||
for entryOffset = offset, tabEnd - 1 do
|
||||
local spellType, spellId = GetSpellBookItemInfo(entryOffset, "player")
|
||||
if (spellId) then
|
||||
if (spellType == "SPELL") then
|
||||
spellId = C_SpellBook.GetOverrideSpell(spellId)
|
||||
local spellName = GetSpellInfo(spellId)
|
||||
local bIsPassive = IsPassiveSpell(spellId, "player")
|
||||
|
||||
if LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS[spellId] then
|
||||
for _, overrideSpellId in pairs(LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS[spellId]) do
|
||||
completeListOfSpells[overrideSpellId] = true
|
||||
end
|
||||
elseif (spellName and not bIsPassive) then
|
||||
completeListOfSpells[spellId] = true
|
||||
|
||||
else
|
||||
if (not spellName) then
|
||||
--print("no spellname")
|
||||
--print(GetSpellInfo(spellId))
|
||||
elseif (bIsPassive) then
|
||||
--print("is passive")
|
||||
--print(GetSpellInfo(spellId))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local getNumPetSpells = function()
|
||||
--'HasPetSpells' contradicts the name and return the amount of pet spells available instead of a boolean
|
||||
return HasPetSpells()
|
||||
end
|
||||
|
||||
--get pet spells from the pet spellbook
|
||||
local numPetSpells = getNumPetSpells()
|
||||
local numPetSpells = HasPetSpells()
|
||||
if (numPetSpells) then
|
||||
for i = 1, numPetSpells do
|
||||
local spellName, _, unmaskedSpellId = GetSpellBookItemName(i, "pet")
|
||||
if (unmaskedSpellId) then
|
||||
unmaskedSpellId = C_SpellBook.GetOverrideSpell(unmaskedSpellId)
|
||||
local bIsPassive = IsPassiveSpell(unmaskedSpellId, "pet")
|
||||
if (spellName and not bIsPassive) then
|
||||
completeListOfSpells[unmaskedSpellId] = true
|
||||
local spellName, rank, unmaskedSpellId = GetSpellInfo(i, "pet")
|
||||
if spellName then
|
||||
local link = GetSpellLink(spellName, rank)
|
||||
if link then
|
||||
local spellID = tonumber(link:match("spell:(%d*)"))
|
||||
if spellID and not IsPassiveSpellID(spellID) then
|
||||
if LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS and LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS[spellID] then
|
||||
for _, overrideSpellID in pairs(LIB_OPEN_RAID_MULTI_OVERRIDE_SPELLS[spellID]) do
|
||||
completeListOfSpells[overrideSpellID] = true
|
||||
end
|
||||
else
|
||||
completeListOfSpells[spellID] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -653,118 +357,53 @@ end
|
||||
--build a list with the local player cooldowns
|
||||
--called only from SendAllPlayerCooldowns()
|
||||
function openRaidLib.CooldownManager.GetPlayerCooldownList()
|
||||
--update the list of cooldowns the player has available
|
||||
if (IsDragonflight()) then
|
||||
--this fill the global LIB_OPEN_RAID_PLAYERCOOLDOWNS
|
||||
updateCooldownAvailableList()
|
||||
|
||||
--get the player specId
|
||||
local specId = openRaidLib.GetPlayerSpecId()
|
||||
if (specId) then
|
||||
--get the cooldowns for the specializationid
|
||||
local playerCooldowns = LIB_OPEN_RAID_PLAYERCOOLDOWNS
|
||||
if (not playerCooldowns) then
|
||||
openRaidLib.DiagnosticError("CooldownManager|GetPlayerCooldownList|LIB_OPEN_RAID_PLAYERCOOLDOWNS is nil")
|
||||
return {}, {}
|
||||
end
|
||||
|
||||
local cooldowns = {} --table to ship on comm
|
||||
local cooldownsHash = {} --table with [spellId] = cooldownInfo
|
||||
local talentsHash = openRaidLib.UnitInfoManager.GetPlayerTalentsAsPairsTable()
|
||||
local timeNow = GetTime()
|
||||
|
||||
for cooldownSpellId, cooldownInfo in pairs(playerCooldowns) do
|
||||
--does this cooldown is based on a talent?
|
||||
local talentId = cooldownInfo.talent
|
||||
|
||||
--check if the player has a talent which makes this cooldown unavailable
|
||||
local ignoredByTalentId = cooldownInfo.ignoredIfTalent
|
||||
local bIsIgnoredByTalentId = false
|
||||
if (ignoredByTalentId) then
|
||||
if (talentsHash[ignoredByTalentId]) then
|
||||
bIsIgnoredByTalentId = true
|
||||
end
|
||||
--this fill the global LIB_OPEN_RAID_PLAYERCOOLDOWNS
|
||||
updateCooldownAvailableList()
|
||||
--get the player specId
|
||||
local specId = openRaidLib.GetPlayerSpecId()
|
||||
if (specId) then
|
||||
--get the cooldowns for the specializationid
|
||||
local playerCooldowns = LIB_OPEN_RAID_PLAYERCOOLDOWNS
|
||||
if (not playerCooldowns) then
|
||||
openRaidLib.DiagnosticError("CooldownManager|GetPlayerCooldownList|LIB_OPEN_RAID_PLAYERCOOLDOWNS is nil")
|
||||
return {}, {}
|
||||
end
|
||||
local cooldowns = {} --table to ship on comm
|
||||
local cooldownsHash = {} --table with [spellId] = cooldownInfo
|
||||
local talentsHash = openRaidLib.UnitInfoManager.GetPlayerTalentsAsPairsTable()
|
||||
local timeNow = GetTime()
|
||||
for cooldownSpellId, cooldownInfo in pairs(playerCooldowns) do
|
||||
--does this cooldown is based on a talent?
|
||||
local talentId = cooldownInfo.talent
|
||||
--check if the player has a talent which makes this cooldown unavailable
|
||||
local ignoredByTalentId = cooldownInfo.ignoredIfTalent
|
||||
local bIsIgnoredByTalentId = false
|
||||
if (ignoredByTalentId) then
|
||||
if (talentsHash[ignoredByTalentId]) then
|
||||
bIsIgnoredByTalentId = true
|
||||
end
|
||||
|
||||
if (not bIsIgnoredByTalentId) then
|
||||
if (talentId) then
|
||||
--check if the player has the talent selected
|
||||
if (talentsHash[talentId]) then
|
||||
if (canAddCooldown(cooldownInfo)) then
|
||||
addCooldownToTable(cooldowns, cooldownsHash, cooldownSpellId, timeNow)
|
||||
end
|
||||
end
|
||||
else
|
||||
end
|
||||
if (not bIsIgnoredByTalentId) then
|
||||
if (talentId) then
|
||||
--check if the player has the talent selected
|
||||
if (talentsHash[talentId]) then
|
||||
if (canAddCooldown(cooldownInfo)) then
|
||||
addCooldownToTable(cooldowns, cooldownsHash, cooldownSpellId, timeNow)
|
||||
end
|
||||
end
|
||||
else
|
||||
if (canAddCooldown(cooldownInfo)) then
|
||||
addCooldownToTable(cooldowns, cooldownsHash, cooldownSpellId, timeNow)
|
||||
end
|
||||
end
|
||||
end
|
||||
return cooldowns, cooldownsHash
|
||||
else
|
||||
return {}, {}
|
||||
end
|
||||
end
|
||||
|
||||
return {}, {}
|
||||
end
|
||||
|
||||
--aura frame handles only UNIT_AURA events to grab the duration of the buff placed by the aura
|
||||
local bIsNewUnitAuraAvailable = C_UnitAuras and C_UnitAuras.GetAuraDataBySlot and true
|
||||
|
||||
local auraSpellID
|
||||
local auraDurationTime
|
||||
local auraUnitId
|
||||
|
||||
local handleBuffAura = function(aura)
|
||||
local auraInfo = C_UnitAuras.GetAuraDataByAuraInstanceID(auraUnitId, aura.auraInstanceID)
|
||||
if (auraInfo) then
|
||||
local spellId = auraInfo.spellId
|
||||
if (auraSpellID == spellId) then
|
||||
auraSpellID = nil
|
||||
auraDurationTime = auraInfo.duration
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local getAuraDuration = function(spellId, unitId)
|
||||
--some auras does not have the same spellId of the cast as the spell for its aura duration
|
||||
--in these cases, it's necessary to declare the buff spellId which tells the duration of the effect by adding 'durationSpellId = spellId' within the cooldown data
|
||||
if (not LIB_OPEN_RAID_PLAYERCOOLDOWNS[spellId]) then
|
||||
--local spellname = GetSpellInfo(spellId)
|
||||
--print("spell not found:", spellname)
|
||||
return 0
|
||||
end
|
||||
local customBuffDuration = LIB_OPEN_RAID_PLAYERCOOLDOWNS[spellId].durationSpellId
|
||||
--spellId = customBuffDuration or spellId --can't replace the spellId by customBuffDurationSpellId has it wount be found in LIB_OPEN_RAID_PLAYERCOOLDOWNS
|
||||
|
||||
if (bIsNewUnitAuraAvailable) then
|
||||
local bUsePackedAura = true
|
||||
auraSpellID = customBuffDuration or spellId
|
||||
auraDurationTime = 0 --reset duration
|
||||
auraUnitId = unitId or "player"
|
||||
|
||||
AuraUtil.ForEachAura(auraUnitId, "HELPFUL", nil, handleBuffAura, bUsePackedAura) --check auras to find a buff for the spellId
|
||||
|
||||
if (auraDurationTime == 0) then --if the buff wasn't found, attempt to get the duration from the file
|
||||
return LIB_OPEN_RAID_PLAYERCOOLDOWNS[spellId].duration or 0
|
||||
end
|
||||
return auraDurationTime
|
||||
return cooldowns, cooldownsHash
|
||||
else
|
||||
--this is classic
|
||||
return {}, {}
|
||||
end
|
||||
end
|
||||
|
||||
---get the duration of a buff placed by a spell
|
||||
---@param spellId number
|
||||
---@param unitId string?
|
||||
---@return number duration
|
||||
function openRaidLib.CooldownManager.GetSpellBuffDuration(spellId, unitId)
|
||||
return getAuraDuration(spellId, unitId)
|
||||
end
|
||||
|
||||
---check if a player cooldown is ready or if is in cooldown
|
||||
---@spellId: the spellId to check for cooldown
|
||||
---@return number timeLeft
|
||||
@@ -776,7 +415,6 @@ function openRaidLib.CooldownManager.GetPlayerCooldownStatus(spellId)
|
||||
--check if is a charge spell
|
||||
local spellData = LIB_OPEN_RAID_COOLDOWNS_INFO[spellId]
|
||||
if (spellData) then
|
||||
local buffDuration = getAuraDuration(spellId)
|
||||
local chargesAvailable, chargesTotal, start, duration = GetSpellCharges(spellId)
|
||||
if chargesAvailable then
|
||||
if (chargesAvailable == chargesTotal) then
|
||||
@@ -785,7 +423,7 @@ function openRaidLib.CooldownManager.GetPlayerCooldownStatus(spellId)
|
||||
--return the time to the next charge
|
||||
local timeLeft = start + duration - GetTime()
|
||||
local startTimeOffset = start - GetTime()
|
||||
return ceil(timeLeft), chargesAvailable, startTimeOffset, duration, buffDuration
|
||||
return ceil(timeLeft), chargesAvailable, startTimeOffset, duration
|
||||
end
|
||||
else
|
||||
local start, duration = GetSpellCooldown(spellId)
|
||||
@@ -794,7 +432,7 @@ function openRaidLib.CooldownManager.GetPlayerCooldownStatus(spellId)
|
||||
else
|
||||
local timeLeft = start + duration - GetTime()
|
||||
local startTimeOffset = start - GetTime()
|
||||
return ceil(timeLeft), 0, ceil(startTimeOffset), duration, buffDuration --time left, charges, startTime, duration, buffDuration
|
||||
return ceil(timeLeft), 0, ceil(startTimeOffset), duration --time left, charges, startTime, duration
|
||||
end
|
||||
end
|
||||
else
|
||||
@@ -802,68 +440,10 @@ function openRaidLib.CooldownManager.GetPlayerCooldownStatus(spellId)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
do
|
||||
--make new namespace
|
||||
openRaidLib.AuraTracker = {}
|
||||
|
||||
do if (false) then --do not load this section as it isn't in use
|
||||
function openRaidLib.AuraTracker.ScanCallback(auraInfo)
|
||||
if (auraInfo) then
|
||||
local spellId = auraInfo.spellId
|
||||
if (spellId) then
|
||||
local unitId = openRaidLib.AuraTracker.CurrentUnitId
|
||||
local thisUnitAuras = openRaidLib.AuraTracker.CurrentAuras[unitId]
|
||||
thisUnitAuras[spellId] = true
|
||||
openRaidLib.AuraTracker.AurasFoundOnScan[spellId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function openRaidLib.AuraTracker.ScanUnitAuras(unitId)
|
||||
local maxCount = nil
|
||||
local bUsePackedAura = true
|
||||
openRaidLib.AuraTracker.CurrentUnitId = unitId
|
||||
|
||||
openRaidLib.AuraTracker.AurasFoundOnScan = {}
|
||||
|
||||
--code of 'ForEachAura' has been updated to use the latest API available
|
||||
AuraUtil.ForEachAura(unitId, "HELPFUL", maxCount, openRaidLib.AuraTracker.ScanCallback, bUsePackedAura)
|
||||
|
||||
local thisUnitAuras = openRaidLib.AuraTracker.CurrentAuras[unitId]
|
||||
for spellId in pairs(thisUnitAuras) do
|
||||
if (not openRaidLib.AuraTracker.AurasFoundOnScan[spellId]) then
|
||||
--aura removed
|
||||
openRaidLib.internalCallback.TriggerEvent("unitAuraRemoved", unitId, spellId)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--run when the open raid lib loads
|
||||
function openRaidLib.AuraTracker.StartScanUnitAuras(unitId) --this function isn't getting called (was called from Entering World event)
|
||||
openRaidLib.AuraTracker.CurrentAuras = {
|
||||
[unitId] = {} --storing using the unitId as key, won't work for any other unit other than the "player"
|
||||
}
|
||||
|
||||
local auraFrameEvent = CreateFrame("frame")
|
||||
auraFrameEvent:RegisterUnitEvent("UNIT_AURA", unitId)
|
||||
|
||||
auraFrameEvent:SetScript("OnEvent", function()
|
||||
openRaidLib.AuraTracker.ScanUnitAuras(unitId)
|
||||
end)
|
||||
end
|
||||
end end
|
||||
|
||||
--test case:
|
||||
local debugModule = {}
|
||||
function debugModule.AuraRemoved(event, unitId, spellId)
|
||||
local spellName = GetSpellInfo(spellId)
|
||||
--print("aura removed:", unitId, spellId, spellName)
|
||||
end
|
||||
openRaidLib.internalCallback.RegisterCallback("unitAuraRemoved", debugModule.AuraRemoved)
|
||||
end
|
||||
|
||||
|
||||
do
|
||||
local getUnitName = function(unitId)
|
||||
local unitName, realmName = UnitName(unitId)
|
||||
if (unitName) then
|
||||
@@ -874,7 +454,7 @@ do
|
||||
end
|
||||
end
|
||||
|
||||
local predicateFunc = function(spellIdToFind, casterName, _, name, icon, applications, dispelName, duration, expirationTime, sourceUnitId, isStealable, nameplateShowPersonal, spellId, canApplyAura, isBossAura, isFromPlayerOrPlayerPet, nameplateShowAll, timeMod, applications)
|
||||
local predicateFunc = function(spellIdToFind, casterName, _, name, rank, icon, applications, dispelName, duration, expirationTime, sourceUnitId, isStealable, spellId)
|
||||
if (spellIdToFind == spellId and UnitExists(sourceUnitId)) then
|
||||
if (casterName == getUnitName(sourceUnitId)) then
|
||||
return true
|
||||
@@ -889,7 +469,7 @@ do
|
||||
---@return auraduration|nil auraDuration
|
||||
---@return number|nil expirationTime
|
||||
function openRaidLib.AuraTracker.FindBuffDuration(unitId, casterName, spellId)
|
||||
local name, texture, count, buffType, duration, expirationTime = AuraUtil.FindAura(predicateFunc, unitId, "HELPFUL", spellId, casterName)
|
||||
local name, rank, icon, count, buffType, duration, expirationTime = AuraUtil.FindAura(predicateFunc, unitId, "HELPFUL", spellId, casterName)
|
||||
if (name) then
|
||||
return duration, expirationTime
|
||||
end
|
||||
@@ -906,76 +486,12 @@ do
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
--which is the main attribute of each spec
|
||||
--1 Intellect
|
||||
--2 Agility
|
||||
--3 Strenth
|
||||
openRaidLib.specAttribute = {
|
||||
["DEMONHUNTER"] = {
|
||||
[577] = 2,
|
||||
[581] = 2,
|
||||
},
|
||||
["DEATHKNIGHT"] = {
|
||||
[250] = 3,
|
||||
[251] = 3,
|
||||
[252] = 3,
|
||||
},
|
||||
["WARRIOR"] = {
|
||||
[71] = 3,
|
||||
[72] = 3,
|
||||
[73] = 3,
|
||||
},
|
||||
["MAGE"] = {
|
||||
[62] = 1,
|
||||
[63] = 1,
|
||||
[64] = 1,
|
||||
},
|
||||
["ROGUE"] = {
|
||||
[259] = 2,
|
||||
[260] = 2,
|
||||
[261] = 2,
|
||||
},
|
||||
["DRUID"] = {
|
||||
[102] = 1,
|
||||
[103] = 2,
|
||||
[104] = 2,
|
||||
[105] = 1,
|
||||
},
|
||||
["HUNTER"] = {
|
||||
[253] = 2,
|
||||
[254] = 2,
|
||||
[255] = 2,
|
||||
},
|
||||
["SHAMAN"] = {
|
||||
[262] = 1,
|
||||
[263] = 2,
|
||||
[264] = 1,
|
||||
},
|
||||
["PRIEST"] = {
|
||||
[256] = 1,
|
||||
[257] = 1,
|
||||
[258] = 1,
|
||||
},
|
||||
["WARLOCK"] = {
|
||||
[265] = 1,
|
||||
[266] = 1,
|
||||
[267] =1 ,
|
||||
},
|
||||
["PALADIN"] = {
|
||||
[65] = 1,
|
||||
[66] = 3,
|
||||
[70] = 3,
|
||||
},
|
||||
["MONK"] = {
|
||||
[268] = 2,
|
||||
[269] = 2,
|
||||
[270] = 1,
|
||||
},
|
||||
["EVOKER"] = {
|
||||
[1467] = 1, --Devastation
|
||||
[1468] = 1, --Preservation
|
||||
[1473] = 1, --Augmentation
|
||||
},
|
||||
}
|
||||
openRaidLib.specAttribute = {}
|
||||
for _, class in ipairs(CLASS_SORT_ORDER) do
|
||||
local specs = C_ClassInfo.GetAllSpecs(class)
|
||||
openRaidLib.specAttribute[class] = {}
|
||||
for index, spec in ipairs(specs) do
|
||||
local specInfo = C_ClassInfo.GetSpecInfo(class, spec)
|
||||
openRaidLib.specAttribute[class][specInfo.ID] = Enum.PrimaryStat[specInfo.PrimaryStats[1] or "Strength"]
|
||||
end
|
||||
end
|
||||
@@ -1,4 +1,4 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
--[=[
|
||||
|
||||
Please refer to the docs.txt within this file folder for a guide on how to use this library.
|
||||
@@ -116,9 +116,6 @@ end
|
||||
local CONST_TWO_SECONDS = 2.0
|
||||
local CONST_THREE_SECONDS = 3.0
|
||||
|
||||
local CONST_SPECIALIZATION_VERSION_CLASSIC = 0
|
||||
local CONST_SPECIALIZATION_VERSION_MODERN = 1
|
||||
|
||||
local CONST_COOLDOWN_CHECK_INTERVAL = CONST_THREE_SECONDS
|
||||
local CONST_COOLDOWN_TIMELEFT_HAS_CHANGED = CONST_THREE_SECONDS
|
||||
|
||||
@@ -136,19 +133,9 @@ end
|
||||
-- Real throttle is 10 messages per 1 second, but we want to be safe due to fact we dont know when it actually resets
|
||||
local CONST_COMM_BURST_BUFFER_COUNT = 9
|
||||
|
||||
local GetContainerNumSlots = GetContainerNumSlots or C_Container.GetContainerNumSlots
|
||||
local GetContainerItemID = GetContainerItemID or C_Container.GetContainerItemID
|
||||
local GetContainerItemLink = GetContainerItemLink or C_Container.GetContainerItemLink
|
||||
|
||||
--from vanilla to cataclysm, the specID did not existed, hence its considered version 0
|
||||
--for mists of pandaria and beyond it's version 1
|
||||
local getSpecializationVersion = function()
|
||||
if (gameVersion >= 50000) then
|
||||
return CONST_SPECIALIZATION_VERSION_MODERN
|
||||
else
|
||||
return CONST_SPECIALIZATION_VERSION_CLASSIC
|
||||
end
|
||||
end
|
||||
local GetContainerNumSlots = GetContainerNumSlots
|
||||
local GetContainerItemID = GetContainerItemID
|
||||
local GetContainerItemLink = GetContainerItemLink
|
||||
|
||||
function openRaidLib.ShowDiagnosticErrors(value)
|
||||
CONST_DIAGNOSTIC_ERRORS = value
|
||||
@@ -197,36 +184,13 @@ end
|
||||
sendChatMessage("|cFFFF9922OpenRaidLib|r:", "|cFFFF5555" .. msg .. "|r")
|
||||
end
|
||||
|
||||
local isTimewalkWoW = function()
|
||||
local _, _, _, buildInfo = GetBuildInfo()
|
||||
if (buildInfo < 40000) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
local checkClientVersion = function(...)
|
||||
for i = 1, select("#", ...) do
|
||||
local clientVersion = select(i, ...)
|
||||
|
||||
if (clientVersion == "retail" and (WOW_PROJECT_ID == WOW_PROJECT_MAINLINE or isExpansion_Dragonflight())) then --retail
|
||||
return true
|
||||
|
||||
elseif (clientVersion == "classic_era" and WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then --classic era (vanila)
|
||||
return true
|
||||
|
||||
elseif (clientVersion == "bcc" and WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC) then --the burning crusade classic
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
--~internal cache
|
||||
--use a console variable to create a flash cache to keep data while the game reload
|
||||
--this is not a long term database as saved variables are and it get clean up often
|
||||
|
||||
C_CVar.RegisterCVar(CONST_CVAR_TEMPCACHE)
|
||||
C_CVar.RegisterCVar(CONST_CVAR_TEMPCACHE_DEBUG)
|
||||
RegisterCVar(CONST_CVAR_TEMPCACHE)
|
||||
RegisterCVar(CONST_CVAR_TEMPCACHE_DEBUG)
|
||||
|
||||
--internal namespace
|
||||
local tempCache = {
|
||||
@@ -247,13 +211,13 @@ end
|
||||
|
||||
--use debug cvar to find issues that occurred during the logoff process
|
||||
function openRaidLib.PrintTempCacheDebug()
|
||||
local debugMessage = C_CVar.GetCVar(CONST_CVAR_TEMPCACHE_DEBUG)
|
||||
local debugMessage = C_CVar.Get(CONST_CVAR_TEMPCACHE_DEBUG)
|
||||
sendChatMessage("|cFFFF9922OpenRaidLib|r Temp CVar Result:\n", debugMessage)
|
||||
end
|
||||
|
||||
function tempCache.SaveDebugText()
|
||||
C_CVar.SetCVar(CONST_CVAR_TEMPCACHE_DEBUG, "0")
|
||||
--C_CVar.SetCVar(CONST_CVAR_TEMPCACHE_DEBUG, tempCache.debugString)
|
||||
C_CVar.Set(CONST_CVAR_TEMPCACHE_DEBUG, "0")
|
||||
--C_CVar.Set(CONST_CVAR_TEMPCACHE_DEBUG, tempCache.debugString)
|
||||
end
|
||||
|
||||
function tempCache.AddDebugText(text)
|
||||
@@ -261,13 +225,13 @@ function tempCache.AddDebugText(text)
|
||||
end
|
||||
|
||||
function tempCache.SaveCacheOnCVar(data)
|
||||
C_CVar.SetCVar(CONST_CVAR_TEMPCACHE, "0")
|
||||
--C_CVar.SetCVar(CONST_CVAR_TEMPCACHE, data)
|
||||
C_CVar.Set(CONST_CVAR_TEMPCACHE, "0")
|
||||
--C_CVar.Set(CONST_CVAR_TEMPCACHE, data)
|
||||
tempCache.AddDebugText("CVars Saved on saveCahceOnCVar(), Size: " .. #data)
|
||||
end
|
||||
|
||||
function tempCache.RestoreData()
|
||||
local data = C_CVar.GetCVar(CONST_CVAR_TEMPCACHE)
|
||||
local data = C_CVar.Get(CONST_CVAR_TEMPCACHE)
|
||||
if (data and type(data) == "string" and string.len(data) > 2) then
|
||||
local LibAceSerializer = LibStub:GetLibrary("AceSerializer-3.0", true)
|
||||
if (LibAceSerializer) then
|
||||
@@ -389,7 +353,7 @@ end
|
||||
|
||||
local data = text
|
||||
local LibDeflate = LibStub:GetLibrary("LibDeflate")
|
||||
local dataCompressed = LibDeflate:DecodeForWoWAddonChannel(data)
|
||||
local dataCompressed = LibDeflate:DecodeForPrint(data)
|
||||
data = LibDeflate:DecompressDeflate(dataCompressed)
|
||||
|
||||
--some users are reporting errors where 'data is nil'. Making some sanitization
|
||||
@@ -443,7 +407,6 @@ end
|
||||
end
|
||||
end
|
||||
|
||||
C_ChatInfo.RegisterAddonMessagePrefix(CONST_COMM_PREFIX)
|
||||
openRaidLib.commHandler.eventFrame = CreateFrame("frame")
|
||||
openRaidLib.commHandler.eventFrame:RegisterEvent("CHAT_MSG_ADDON")
|
||||
openRaidLib.commHandler.eventFrame:SetScript("OnEvent", openRaidLib.commHandler.OnReceiveComm)
|
||||
@@ -480,7 +443,7 @@ end
|
||||
if (aceComm) then
|
||||
aceComm:SendCommMessage(CONST_COMM_PREFIX, dataEncoded, channel, nil, "ALERT")
|
||||
else
|
||||
C_ChatInfo.SendAddonMessage(CONST_COMM_PREFIX, dataEncoded, channel)
|
||||
SendAddonMessage(CONST_COMM_PREFIX, dataEncoded, channel)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -523,20 +486,20 @@ end
|
||||
function openRaidLib.commHandler.SendCommData(data, flags, bIgnoreQueue)
|
||||
local LibDeflate = LibStub:GetLibrary("LibDeflate")
|
||||
local dataCompressed = LibDeflate:CompressDeflate(data, {level = 9})
|
||||
local dataEncoded = LibDeflate:EncodeForWoWAddonChannel(dataCompressed)
|
||||
local dataEncoded = LibDeflate:EncodeForPrint(dataCompressed)
|
||||
|
||||
if (flags) then
|
||||
if (bit.band(flags, CONST_COMM_SENDTO_PARTY)) then --send to party
|
||||
if (IsInGroup() and not IsInRaid()) then
|
||||
---@type commdata
|
||||
local commData = {data = dataEncoded, channel = IsInGroup(LE_PARTY_CATEGORY_INSTANCE) and "INSTANCE_CHAT" or "PARTY"}
|
||||
local commData = {data = dataEncoded, channel = "PARTY"}
|
||||
table.insert(commScheduler, commData)
|
||||
end
|
||||
end
|
||||
|
||||
if (bit.band(flags, CONST_COMM_SENDTO_RAID)) then --send to raid
|
||||
if (IsInRaid()) then
|
||||
local commData = {data = dataEncoded, channel = IsInRaid(LE_PARTY_CATEGORY_INSTANCE) and "INSTANCE_CHAT" or "RAID"}
|
||||
local commData = {data = dataEncoded, channel = "RAID"}
|
||||
table.insert(commScheduler, commData)
|
||||
end
|
||||
end
|
||||
@@ -549,11 +512,11 @@ end
|
||||
end
|
||||
else
|
||||
if (IsInGroup() and not IsInRaid()) then --in party only
|
||||
local commData = {data = dataEncoded, channel = IsInGroup(LE_PARTY_CATEGORY_INSTANCE) and "INSTANCE_CHAT" or "PARTY"}
|
||||
local commData = {data = dataEncoded, channel = "PARTY"}
|
||||
table.insert(commScheduler, commData)
|
||||
|
||||
elseif (IsInRaid()) then
|
||||
local commData = {data = dataEncoded, channel = IsInRaid(LE_PARTY_CATEGORY_INSTANCE) and "INSTANCE_CHAT" or "RAID"}
|
||||
local commData = {data = dataEncoded, channel = "RAID"}
|
||||
table.insert(commScheduler, commData)
|
||||
end
|
||||
end
|
||||
@@ -883,12 +846,14 @@ end
|
||||
|
||||
["UNIT_SPELLCAST_SUCCEEDED"] = function(...)
|
||||
local unitId, castGUID, spellId = ...
|
||||
C_Timer.After(0.1, function()
|
||||
--some spells has many different spellIds, get the default
|
||||
spellId = LIB_OPEN_RAID_SPELL_DEFAULT_IDS[spellId] or spellId
|
||||
--trigger internal callbacks
|
||||
openRaidLib.internalCallback.TriggerEvent("playerCast", spellId, UnitIsUnit(unitId, "pet"))
|
||||
end)
|
||||
if unitId == "pet" or unitId == "player" then
|
||||
C_Timer.After(0.1, function()
|
||||
--some spells has many different spellIds, get the default
|
||||
spellId = LIB_OPEN_RAID_SPELL_DEFAULT_IDS[spellId] or spellId
|
||||
--trigger internal callbacks
|
||||
openRaidLib.internalCallback.TriggerEvent("playerCast", spellId, UnitIsUnit(unitId, "pet"))
|
||||
end)
|
||||
end
|
||||
end,
|
||||
|
||||
["PLAYER_ENTERING_WORLD"] = function(...)
|
||||
@@ -942,16 +907,7 @@ end
|
||||
openRaidLib.internalCallback.TriggerEvent("onEnterWorld")
|
||||
end,
|
||||
|
||||
["PLAYER_SPECIALIZATION_CHANGED"] = function(...)
|
||||
delayedTalentChange()
|
||||
end,
|
||||
["PLAYER_TALENT_UPDATE"] = function(...)
|
||||
delayedTalentChange()
|
||||
end,
|
||||
["TRAIT_CONFIG_UPDATED"] = function(...)
|
||||
delayedTalentChange()
|
||||
end,
|
||||
["TRAIT_TREE_CURRENCY_INFO_UPDATED"] = function(...)
|
||||
["ASCENSION_KNOWN_ENTRIES_UPDATED"] = function(...)
|
||||
delayedTalentChange()
|
||||
end,
|
||||
|
||||
@@ -998,7 +954,7 @@ end
|
||||
end
|
||||
end,
|
||||
|
||||
["CHALLENGE_MODE_START"] = function()
|
||||
["MYTHIC_PLUS_STARTED"] = function()
|
||||
openRaidLib.internalCallback.TriggerEvent("mythicDungeonStart")
|
||||
end,
|
||||
|
||||
@@ -1020,7 +976,7 @@ end
|
||||
end
|
||||
end,
|
||||
|
||||
["CHALLENGE_MODE_COMPLETED"] = function()
|
||||
["MYTHIC_PLUS_COMPLETE"] = function()
|
||||
openRaidLib.internalCallback.TriggerEvent("mythicDungeonEnd")
|
||||
end,
|
||||
|
||||
@@ -1039,8 +995,9 @@ end
|
||||
|
||||
--run when PLAYER_ENTERING_WORLD triggers, this avoid any attempt of getting information without the game has completed the load process
|
||||
function openRaidLib.OnEnterWorldRegisterEvents()
|
||||
eventFrame:RegisterEvent("GROUP_ROSTER_UPDATE")
|
||||
eventFrame:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player", "pet")
|
||||
eventFrame:RegisterEvent("RAID_ROSTER_UPDATE")
|
||||
eventFrame:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
||||
eventFrame:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
|
||||
eventFrame:RegisterEvent("PLAYER_REGEN_DISABLED")
|
||||
eventFrame:RegisterEvent("PLAYER_REGEN_ENABLED")
|
||||
eventFrame:RegisterEvent("UPDATE_INVENTORY_DURABILITY")
|
||||
@@ -1050,17 +1007,9 @@ end
|
||||
eventFrame:RegisterEvent("PLAYER_ALIVE")
|
||||
eventFrame:RegisterEvent("PLAYER_UNGHOST")
|
||||
eventFrame:RegisterEvent("PLAYER_LOGOUT")
|
||||
|
||||
if (checkClientVersion("retail")) then
|
||||
eventFrame:RegisterEvent("PLAYER_TALENT_UPDATE")
|
||||
eventFrame:RegisterEvent("PLAYER_PVP_TALENT_UPDATE")
|
||||
eventFrame:RegisterEvent("ENCOUNTER_END")
|
||||
eventFrame:RegisterEvent("CHALLENGE_MODE_START")
|
||||
eventFrame:RegisterEvent("CHALLENGE_MODE_COMPLETED")
|
||||
eventFrame:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
|
||||
eventFrame:RegisterEvent("TRAIT_TREE_CURRENCY_INFO_UPDATED")
|
||||
eventFrame:RegisterEvent("TRAIT_CONFIG_UPDATED")
|
||||
end
|
||||
eventFrame:RegisterEvent("MYTHIC_PLUS_STARTED")
|
||||
eventFrame:RegisterEvent("MYTHIC_PLUS_COMPLETE")
|
||||
eventFrame:RegisterEvent("ASCENSION_KNOWN_ENTRIES_UPDATED")
|
||||
end
|
||||
|
||||
|
||||
@@ -1308,11 +1257,6 @@ end
|
||||
end
|
||||
|
||||
function openRaidLib.UnitInfoManager.SetUnitInfo(unitName, unitInfo, specId, renown, covenantId, talentsTableUnpacked, conduitsTableUnpacked, pvpTalentsTableUnpacked)
|
||||
if (not GetSpecializationInfoByID) then --tbc hot fix
|
||||
return
|
||||
end
|
||||
|
||||
local specId, specName, specDescription, specIcon, role = GetSpecializationInfoByID(specId or 0)
|
||||
local className, classString, classId = UnitClass(unitName)
|
||||
|
||||
--cold login bug where the player class info cannot be retrived by the player name, after a /reload it's all good
|
||||
@@ -1323,6 +1267,35 @@ end
|
||||
end
|
||||
end
|
||||
|
||||
local specId, specName, specDescription, specIcon, role
|
||||
if classString == "HERO" then
|
||||
local spellID, _, icon, _, statName = C_PrimaryStat:GetPrimaryStatInfo(specId) or 0
|
||||
if spellID == 0 then
|
||||
specName = className
|
||||
specDescription = ""
|
||||
specIcon = "Interface\\Icons\\classicon_hero"
|
||||
else
|
||||
specName = statName
|
||||
specDescription = GetSpellDescription(statName)
|
||||
specIcon = icon
|
||||
end
|
||||
role = "DAMAGER"
|
||||
else
|
||||
local specInfo = C_ClassInfo.GetSpecInfoByID(specId or 0)
|
||||
if specInfo then
|
||||
specName = specInfo.Name
|
||||
specDescription = specInfo.Description
|
||||
specIcon = "Interface\\Icons\\"..specInfo.SpecFilename
|
||||
if specInfo.Healer then
|
||||
role = "HEALER"
|
||||
elseif specInfo.Tank then
|
||||
role = "TANK"
|
||||
else
|
||||
role = "DAMAGER"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
unitInfo.specId = specId or unitInfo.specId
|
||||
unitInfo.specName = specName or unitInfo.specName
|
||||
unitInfo.role = role or "DAMAGER"
|
||||
@@ -1414,42 +1387,11 @@ end
|
||||
--index 5: talents 2: borrowed power talents: length vary from expansions
|
||||
--index 6: talents 3: pvp talents
|
||||
function openRaidLib.UnitInfoManager.GetPlayerFullInfo()
|
||||
local playerInfo = {}
|
||||
local specId = GetSpecialization() or 1
|
||||
|
||||
if (isTimewalkWoW()) then
|
||||
--indexes: specId, renown, covenant, talent, conduits, pvp talents
|
||||
--return a placeholder table
|
||||
return {0, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0}, 0}
|
||||
end
|
||||
|
||||
local specId = 0
|
||||
if (getSpecializationVersion() == CONST_SPECIALIZATION_VERSION_MODERN) then
|
||||
local selectedSpecialization = GetSpecialization()
|
||||
if (selectedSpecialization) then
|
||||
specId = GetSpecializationInfo(selectedSpecialization) or 0
|
||||
end
|
||||
end
|
||||
playerInfo[1] = specId
|
||||
|
||||
--player information 1 (this can be different for each expansion)
|
||||
playerInfo[2] = openRaidLib.UnitInfoManager.GetPlayerInfo1()
|
||||
|
||||
--player information 2 (this can be different for each expansion)
|
||||
playerInfo[3] = openRaidLib.UnitInfoManager.GetPlayerInfo2()
|
||||
|
||||
--player class-spec talents
|
||||
local talents = openRaidLib.UnitInfoManager.GetPlayerTalents()
|
||||
playerInfo[4] = talents
|
||||
|
||||
--borrowed talents (conduits talents on shadowlands)
|
||||
local borrowedTalents = openRaidLib.UnitInfoManager.GetPlayerBorrowedTalents()
|
||||
playerInfo[5] = borrowedTalents
|
||||
|
||||
--pvp talents
|
||||
local pvpTalents = openRaidLib.UnitInfoManager.GetPlayerPvPTalents()
|
||||
playerInfo[6] = pvpTalents
|
||||
|
||||
return playerInfo
|
||||
--indexes: specId, renown, covenant, talent, conduits, pvp talents
|
||||
--return a placeholder table
|
||||
return {specId, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0}, 0}
|
||||
end
|
||||
|
||||
--talent update (when the player changes a talent and the lib needs to notify other players in the group)
|
||||
@@ -1471,14 +1413,7 @@ function openRaidLib.UnitInfoManager.OnPlayerTalentChanged()
|
||||
--this talent update could be a specialization change, so we need to pass the specId as well
|
||||
local playerName = UnitName("player")
|
||||
local unitInfo = openRaidLib.UnitInfoManager.GetUnitInfo(playerName, true)
|
||||
local specId = 0
|
||||
|
||||
if (getSpecializationVersion() == CONST_SPECIALIZATION_VERSION_MODERN) then
|
||||
local selectedSpecialization = GetSpecialization()
|
||||
if (selectedSpecialization) then
|
||||
specId = GetSpecializationInfo(selectedSpecialization) or 0
|
||||
end
|
||||
end
|
||||
local specId = GetSpecialization() or 1
|
||||
|
||||
openRaidLib.UnitInfoManager.SetUnitInfo(playerName, unitInfo, specId, nil, nil, openRaidLib.UnitInfoManager.GetPlayerTalents())
|
||||
|
||||
@@ -1673,13 +1608,9 @@ openRaidLib.internalCallback.RegisterCallback("onLeaveCombat", openRaidLib.UnitI
|
||||
|
||||
--get gear information from what the player has equipped at the moment
|
||||
function openRaidLib.GearManager.GetPlayerFullGearInfo()
|
||||
--get the player class and specId
|
||||
local _, playerClass = UnitClass("player")
|
||||
--get the player specId
|
||||
local specId = openRaidLib.GetPlayerSpecId()
|
||||
--get which attribute the spec uses
|
||||
local specMainAttribute = openRaidLib.specAttribute[playerClass][specId] --1 int, 2 dex, 3 str
|
||||
|
||||
if (not specId or not specMainAttribute) then
|
||||
if (not specId) then
|
||||
return {0, 0, 0, {}, {}, {}, 0, 0}
|
||||
end
|
||||
|
||||
@@ -2496,14 +2427,6 @@ function openRaidLib.CooldownManager.OnReceiveUnitCooldowns(data, unitName)
|
||||
--unpack the table as a pairs table
|
||||
local unpackedTable = openRaidLib.UnpackTable(data, 1, true, true, CONST_COOLDOWN_INFO_SIZE)
|
||||
|
||||
--[=[ --debug for data received from Evokers
|
||||
local _, class = UnitClass(unitName)
|
||||
if (class == "EVOKER") then
|
||||
print(unitName)
|
||||
dumpt(unpackedTable)
|
||||
end
|
||||
--]=]
|
||||
|
||||
--add the list of cooldowns
|
||||
openRaidLib.CooldownManager.AddUnitCooldownsList(unitName, unpackedTable)
|
||||
end
|
||||
@@ -2615,40 +2538,20 @@ openRaidLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNREQUEST_PREFIX, openRaid
|
||||
local keystoneTablePrototype = {
|
||||
level = 0,
|
||||
mapID = 0,
|
||||
challengeMapID = 0,
|
||||
classID = 0,
|
||||
rating = 0,
|
||||
mythicPlusMapID = 0,
|
||||
}
|
||||
|
||||
--search the player backpack to find a mythic keystone
|
||||
--with the keystone object, it'll attempt to get the mythicPlusMapID to be used with C_ChallengeMode.GetMapUIInfo(mythicPlusMapID)
|
||||
--ATM we are obligated to do this due to C_MythicPlus.GetOwnedKeystoneMapID() return the same mapID for the two Tazavesh dungeons
|
||||
local getMythicPlusMapID = function()
|
||||
for backpackId = 0, 4 do
|
||||
for slotId = 1, GetContainerNumSlots(backpackId) do
|
||||
local itemId = GetContainerItemID(backpackId, slotId)
|
||||
if (itemId == LIB_OPEN_RAID_MYTHICKEYSTONE_ITEMID) then
|
||||
local itemLink = GetContainerItemLink(backpackId, slotId)
|
||||
local destroyedItemLink = itemLink:gsub("|", "")
|
||||
local color, itemID, mythicPlusMapID = strsplit(":", destroyedItemLink)
|
||||
return tonumber(mythicPlusMapID)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function openRaidLib.KeystoneInfoManager.UpdatePlayerKeystoneInfo(keystoneInfo)
|
||||
keystoneInfo.level = C_MythicPlus.GetOwnedKeystoneLevel() or 0
|
||||
keystoneInfo.mapID = C_MythicPlus.GetOwnedKeystoneMapID() or 0
|
||||
keystoneInfo.mythicPlusMapID = getMythicPlusMapID() or 0
|
||||
keystoneInfo.challengeMapID = C_MythicPlus.GetOwnedKeystoneChallengeMapID() or 0
|
||||
local keystoneID = C_Keystones.GetKeystoneInInventoryItemID()
|
||||
local keyInfo
|
||||
if keystoneID then
|
||||
keyInfo = C_MythicPlus.GetKeystoneInfo(keystoneID)
|
||||
end
|
||||
keystoneInfo.level = keyInfo and keyInfo.keystoneLevel or 0
|
||||
keystoneInfo.mapID = keyInfo and keyInfo.dungeonID or 0
|
||||
|
||||
local _, _, playerClassID = UnitClass("player")
|
||||
keystoneInfo.classID = playerClassID
|
||||
|
||||
local ratingSummary = C_PlayerInfo.GetPlayerMythicPlusRatingSummary("player")
|
||||
keystoneInfo.rating = ratingSummary and ratingSummary.currentSeasonScore or 0
|
||||
end
|
||||
|
||||
function openRaidLib.KeystoneInfoManager.GetAllKeystonesInfo()
|
||||
@@ -2671,7 +2574,7 @@ openRaidLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNREQUEST_PREFIX, openRaid
|
||||
local keystoneInfo = openRaidLib.KeystoneInfoManager.GetKeystoneInfo(playerName, true)
|
||||
openRaidLib.KeystoneInfoManager.UpdatePlayerKeystoneInfo(keystoneInfo)
|
||||
|
||||
local dataToSend = CONST_COMM_KEYSTONE_DATA_PREFIX .. "," .. keystoneInfo.level .. "," .. keystoneInfo.mapID .. "," .. keystoneInfo.challengeMapID .. "," .. keystoneInfo.classID .. "," .. keystoneInfo.rating .. "," .. keystoneInfo.mythicPlusMapID
|
||||
local dataToSend = CONST_COMM_KEYSTONE_DATA_PREFIX .. "," .. keystoneInfo.level .. "," .. keystoneInfo.mapID .. "," .. keystoneInfo.classID
|
||||
return dataToSend
|
||||
end
|
||||
|
||||
@@ -2691,10 +2594,6 @@ openRaidLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNREQUEST_PREFIX, openRaid
|
||||
--when a request data is received, only send the data to party and guild
|
||||
--sending stuff to raid need to be called my the application with 'openRaidLib.RequestKeystoneDataFromRaid()'
|
||||
function openRaidLib.KeystoneInfoManager.OnReceiveRequestData()
|
||||
if (not checkClientVersion("retail")) then
|
||||
return
|
||||
end
|
||||
|
||||
--update the information about the key stone the player has
|
||||
local keystoneInfo = openRaidLib.KeystoneInfoManager.GetKeystoneInfo(UnitName("player"), true)
|
||||
openRaidLib.KeystoneInfoManager.UpdatePlayerKeystoneInfo(keystoneInfo)
|
||||
@@ -2717,25 +2616,15 @@ openRaidLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNREQUEST_PREFIX, openRaid
|
||||
openRaidLib.commHandler.RegisterComm(CONST_COMM_KEYSTONE_DATAREQUEST_PREFIX, openRaidLib.KeystoneInfoManager.OnReceiveRequestData)
|
||||
|
||||
function openRaidLib.KeystoneInfoManager.OnReceiveKeystoneData(data, unitName)
|
||||
if (not checkClientVersion("retail")) then
|
||||
return
|
||||
end
|
||||
|
||||
local level = tonumber(data[1])
|
||||
local mapID = tonumber(data[2])
|
||||
local challengeMapID = tonumber(data[3])
|
||||
local classID = tonumber(data[4])
|
||||
local rating = tonumber(data[5])
|
||||
local mythicPlusMapID = tonumber(data[6])
|
||||
local classID = tonumber(data[3])
|
||||
|
||||
if (level and mapID and challengeMapID and classID and rating and mythicPlusMapID) then
|
||||
if (level and mapID and classID) then
|
||||
local keystoneInfo = openRaidLib.KeystoneInfoManager.GetKeystoneInfo(unitName, true)
|
||||
keystoneInfo.level = level
|
||||
keystoneInfo.mapID = mapID
|
||||
keystoneInfo.mythicPlusMapID = mythicPlusMapID
|
||||
keystoneInfo.challengeMapID = challengeMapID
|
||||
keystoneInfo.classID = classID
|
||||
keystoneInfo.rating = rating
|
||||
|
||||
--trigger public callback
|
||||
openRaidLib.publicCallback.TriggerCallback("KeystoneUpdate", unitName, keystoneInfo, openRaidLib.KeystoneInfoManager.KeystoneData)
|
||||
@@ -2745,11 +2634,6 @@ openRaidLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNREQUEST_PREFIX, openRaid
|
||||
|
||||
--on entering a group, send keystone information for the party
|
||||
function openRaidLib.KeystoneInfoManager.OnPlayerEnterGroup()
|
||||
--keystones are only available on retail
|
||||
if (not checkClientVersion("retail")) then
|
||||
return
|
||||
end
|
||||
|
||||
if (IsInGroup() and not IsInRaid()) then
|
||||
--update the information about the key stone the player has
|
||||
local keystoneInfo = openRaidLib.KeystoneInfoManager.GetKeystoneInfo(UnitName("player"), true)
|
||||
@@ -2761,10 +2645,6 @@ openRaidLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNREQUEST_PREFIX, openRaid
|
||||
end
|
||||
|
||||
function openRaidLib.KeystoneInfoManager.OnPlayerEnterWorld()
|
||||
--keystones are only available on retail
|
||||
if (not checkClientVersion("retail")) then
|
||||
return
|
||||
end
|
||||
--hack: on received data send data to party and guild
|
||||
openRaidLib.KeystoneInfoManager.OnReceiveRequestData()
|
||||
|
||||
@@ -2777,10 +2657,6 @@ openRaidLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNREQUEST_PREFIX, openRaid
|
||||
end
|
||||
|
||||
function openRaidLib.KeystoneInfoManager.OnMythicDungeonFinished()
|
||||
--keystones are only available on retail
|
||||
if (not checkClientVersion("retail")) then
|
||||
return
|
||||
end
|
||||
--hack: on received data send data to party and guild
|
||||
openRaidLib.KeystoneInfoManager.OnReceiveRequestData()
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
## Interface: 90205
|
||||
## Title: Library Open Raid
|
||||
## Notes: This is a library used by addons.
|
||||
|
||||
lib.xml
|
||||
@@ -1,2 +1,2 @@
|
||||
# Open-Raid-Library
|
||||
# Open-Raid-Library
|
||||
Library for World of Warcraft game, help to transmit data among players in a group
|
||||
|
||||
@@ -0,0 +1,499 @@
|
||||
|
||||
--data for Ascension.gg
|
||||
|
||||
--localization
|
||||
local gameLanguage = GetLocale()
|
||||
|
||||
local L = { --default localization
|
||||
["STRING_EXPLOSION"] = "explosion",
|
||||
["STRING_MIRROR_IMAGE"] = "Mirror Image",
|
||||
["STRING_CRITICAL_ONLY"] = "critical",
|
||||
["STRING_BLOOM"] = "Bloom", --lifebloom 'bloom' healing
|
||||
["STRING_GLAIVE"] = "Glaive", --DH glaive toss
|
||||
["STRING_MAINTARGET"] = "Main Target",
|
||||
["STRING_AOE"] = "AoE", --multi targets
|
||||
["STRING_SHADOW"] = "Shadow", --the spell school 'shadow'
|
||||
["STRING_PHYSICAL"] = "Physical", --the spell school 'physical'
|
||||
["STRING_PASSIVE"] = "Passive", --passive spell
|
||||
["STRING_TEMPLAR_VINDCATION"] = "Templar's Vindication", --paladin spell
|
||||
["STRING_PROC"] = "proc", --spell proc
|
||||
["STRING_TRINKET"] = "Trinket", --trinket
|
||||
}
|
||||
|
||||
if (gameLanguage == "enUS") then
|
||||
--default language
|
||||
|
||||
elseif (gameLanguage == "deDE") then
|
||||
L["STRING_EXPLOSION"] = "Explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Bilder spiegeln"
|
||||
L["STRING_CRITICAL_ONLY"] = "kritisch"
|
||||
|
||||
elseif (gameLanguage == "esES") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "esMX") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "frFR") then
|
||||
L["STRING_EXPLOSION"] = "explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Effet miroir"
|
||||
L["STRING_CRITICAL_ONLY"] = "critique"
|
||||
|
||||
elseif (gameLanguage == "itIT") then
|
||||
L["STRING_EXPLOSION"] = "esplosione"
|
||||
L["STRING_MIRROR_IMAGE"] = "Immagine Speculare"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "koKR") then
|
||||
L["STRING_EXPLOSION"] = "폭발"
|
||||
L["STRING_MIRROR_IMAGE"] = "미러 이미지"
|
||||
L["STRING_CRITICAL_ONLY"] = "치명타"
|
||||
|
||||
elseif (gameLanguage == "ptBR") then
|
||||
L["STRING_EXPLOSION"] = "explosão"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagem Espelhada"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "ruRU") then
|
||||
L["STRING_EXPLOSION"] = "взрыв"
|
||||
L["STRING_MIRROR_IMAGE"] = "Зеркальное изображение"
|
||||
L["STRING_CRITICAL_ONLY"] = "критический"
|
||||
|
||||
elseif (gameLanguage == "zhCN") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "镜像"
|
||||
L["STRING_CRITICAL_ONLY"] = "爆击"
|
||||
|
||||
elseif (gameLanguage == "zhTW") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "鏡像"
|
||||
L["STRING_CRITICAL_ONLY"] = "致命"
|
||||
end
|
||||
|
||||
LIB_OPEN_RAID_MANA_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {} --default
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {} --default
|
||||
|
||||
LIB_OPEN_RAID_BLOODLUST = {
|
||||
[2825] = true, --bloodlust
|
||||
[32182] = true, --heroism
|
||||
[80353] = true, --timewarp
|
||||
}
|
||||
|
||||
--which gear slots can be enchanted on the latest retail version of the game
|
||||
--when the value is a number, the slot only receives enchants for a specific attribute (Enum.PrimaryStat)
|
||||
LIB_OPEN_RAID_ENCHANT_SLOTS = {
|
||||
--[INVSLOT_NECK] = true,
|
||||
[INVSLOT_BACK] = true, --for all
|
||||
[INVSLOT_CHEST] = true, --for all
|
||||
[INVSLOT_FINGER1] = true, --for all
|
||||
[INVSLOT_FINGER2] = true, --for all
|
||||
[INVSLOT_MAINHAND] = true, --for all
|
||||
[INVSLOT_OFFHAND] = true, --for all
|
||||
[INVSLOT_RANGED] = true, --for all
|
||||
[INVSLOT_FEET] = true, --for all
|
||||
[INVSLOT_WRIST] = true, --for all
|
||||
[INVSLOT_HAND] = true, --for all
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MYTHICKEYSTONE_ITEMID = 180653
|
||||
LIB_OPEN_RAID_AUGMENTATED_RUNE = 0
|
||||
|
||||
LIB_OPEN_RAID_COVENANT_ICONS = {}
|
||||
|
||||
LIB_OPEN_RAID_ENCHANT_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_GEM_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_WEAPON_ENCHANT_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {}
|
||||
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {}
|
||||
|
||||
LIB_OPEN_RAID_ALL_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_HEALING_POTIONS = {
|
||||
[33447] = true, --Runic Healing Potion
|
||||
[41166] = true, --Runic Healing Injector
|
||||
[47875] = true, --Warlock's Healthstone (0/2 Talent)
|
||||
[47867] = true, --Warlock's Healthstone (1/2 Talent)
|
||||
[47877] = true, --Warlock's Healthstone (2/2 Talent)
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MELEE_SPECS = {}
|
||||
|
||||
for _, class in ipairs(CLASS_SORT_ORDER) do
|
||||
local specs = C_ClassInfo.GetAllSpecs(class)
|
||||
for _, spec in ipairs(specs) do
|
||||
local specInfo = C_ClassInfo.GetSpecInfo(class, spec)
|
||||
if specInfo.MeleeDPS then
|
||||
LIB_OPEN_RAID_MELEE_SPECS[specInfo.ID] = class
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--tells the duration, requirements and cooldown
|
||||
--information about a cooldown is mainly get from tooltips
|
||||
--if talent is required, use the command:
|
||||
--/dump GetTalentInfo (talentTier, talentColumn, 1)
|
||||
--example: to get the second talent of the last talent line, use: /dump GetTalentInfo (7, 2, 1)
|
||||
|
||||
local ENUM_SPELL_TYPE = {
|
||||
AttackCooldown = 1,
|
||||
PersonalDefensive = 2,
|
||||
ExternalDefensive = 3,
|
||||
RaidDefensive = 4,
|
||||
PersonalUtility = 5,
|
||||
Interrupt = 6,
|
||||
}
|
||||
LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
--interrupts
|
||||
[6552] = {class = "WARRIOR", specs = {64, 65, 66}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Pummel
|
||||
[2139] = {class = "MAGE", specs = {85, 86, 87}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Counterspell
|
||||
[15487] = {class = "PRIEST", specs = {78}, cooldown = 45, silence = 4, talent = false, cooldownWithTalent = 30, cooldownTalentId = 23137, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Silence (shadow) Last Word Talent to reduce cooldown in 15 seconds
|
||||
[1766] = {class = "ROGUE", specs = {73, 74, 75}, cooldown = 15, silence = 5, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Kick
|
||||
[96231] = {class = "PALADIN", specs = {67, 68, 69}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Rebuke (protection and retribution)
|
||||
[57994] = {class = "SHAMAN", specs = {82, 83, 84}, cooldown = 12, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Wind Shear
|
||||
[47528] = {class = "DEATHKNIGHT", specs = {79, 80, 81}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Mind Freeze
|
||||
[106839] = {class = "DRUID", specs = {92}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Skull Bash (feral, guardian)
|
||||
[78675] = {class = "DRUID", specs = {91 ,93}, cooldown = 60, silence = 8, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Solar Beam (balance)
|
||||
[147362] = {class = "HUNTER", specs = {70, 71, 7}, cooldown = 24, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Counter Shot (beast mastery, marksmanship)
|
||||
[19647] = {class = "WARLOCK", specs = {88, 89, 90}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 417, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Spell Lock (pet felhunter ability)
|
||||
[89766] = {class = "WARLOCK", specs = {90}, cooldown = 30, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 17252, type = ENUM_SPELL_TYPE.Interrupt, charges = 1}, --Axe Toss (pet felguard ability)
|
||||
|
||||
--paladin
|
||||
-- 67 - Holy
|
||||
-- 68 - Protection
|
||||
-- 69 - Retribution
|
||||
|
||||
[31884] = {cooldown = 120, duration = 20, specs = {68,67,69}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.AttackCooldown}, --Avenging Wrath
|
||||
[498] = {cooldown = 60, duration = 8, specs = {68,67,69}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Divine Protection
|
||||
[642] = {cooldown = 300, duration = 8, specs = {68,67,69}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Divine Shield
|
||||
[633] = {cooldown = 600, duration = false, specs = {68,67,69}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.ExternalDefensive}, --Lay on Hands
|
||||
[1022] = {cooldown = 300, duration = 10, specs = {68,67,69}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.ExternalDefensive}, --Blessing of Protection
|
||||
[6940] = {cooldown = 120, duration = 12, specs = {68,67,69}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.ExternalDefensive}, --Blessing of Sacrifice
|
||||
[31821] = {cooldown = 180, duration = 8, specs = {67}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.RaidDefensive}, --Aura Mastery
|
||||
[1044] = {cooldown = 25, duration = 8, specs = {68,67,69}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.PersonalUtility}, --Blessing of Freedom
|
||||
[853] = {cooldown = 60, duration = 6, specs = {68,67,69}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.PersonalUtility}, --Hammer of Justice
|
||||
[31850] = {cooldown = 120, duration = 8, specs = {68}, talent =false, charges = 1, class = "PALADIN", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Ardent Defender
|
||||
|
||||
--warrior
|
||||
-- 64 - Arms
|
||||
-- 65 - Fury
|
||||
-- 66 - Protection
|
||||
|
||||
[227847] = {cooldown = 90, duration = 5, specs = {64}, talent =false, charges = 1, class = "WARRIOR", type = ENUM_SPELL_TYPE.AttackCooldown}, --Bladestorm
|
||||
[46924] = {cooldown = 60, duration = 4, specs = {64}, talent =22400, charges = 1, class = "WARRIOR", type = ENUM_SPELL_TYPE.AttackCooldown}, --Bladestorm (talent)
|
||||
[1719] = {cooldown = 90, duration = 10, specs = {64,65,66}, talent =false, charges = 1, class = "WARRIOR", type = ENUM_SPELL_TYPE.AttackCooldown}, --Recklessness
|
||||
[184364] = {cooldown = 120, duration = 8, specs = {64,65,66}, talent =false, charges = 1, class = "WARRIOR", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Enraged Regeneration
|
||||
[12975] = {cooldown = 180, duration = 15, specs = {66}, talent =false, charges = 1, class = "WARRIOR", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Last Stand
|
||||
[871] = {cooldown = 8, duration = 240, specs = {64,65,66}, talent =false, charges = 1, class = "WARRIOR", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Shield Wall
|
||||
[64382] = {cooldown = 180, duration = false, specs = {64,65,66}, talent =false, charges = 1, class = "WARRIOR", type = ENUM_SPELL_TYPE.PersonalUtility}, --Shattering Throw
|
||||
[5246] = {cooldown = 90, duration = 8, specs = {64,65,66}, talent =false, charges = 1, class = "WARRIOR", type = ENUM_SPELL_TYPE.PersonalUtility}, --Intimidating Shout
|
||||
|
||||
--warlock
|
||||
-- 88 - Affliction
|
||||
-- 89 - Destruction
|
||||
-- 90 - Demonology
|
||||
|
||||
[1122] = {cooldown = 180, duration = 30, specs = {88,89,90}, talent =false, charges = 1, class = "WARLOCK", type = ENUM_SPELL_TYPE.AttackCooldown}, --Summon Infernal
|
||||
[30283] = {cooldown = 60, duration = 3, specs = {88,89,90}, talent =false, charges = 1, class = "WARLOCK", type = ENUM_SPELL_TYPE.PersonalUtility}, --Shadowfury
|
||||
[333889] = {cooldown = 180, duration = 15, specs = {90}, talent =false, charges = 1, class = "WARLOCK", type = ENUM_SPELL_TYPE.PersonalUtility}, --Fel Domination
|
||||
[5484] = {cooldown = 40, duration = 20, specs = {88,89,90}, talent =23465, charges = 1, class = "WARLOCK", type = ENUM_SPELL_TYPE.PersonalUtility}, --Howl of Terror (talent)
|
||||
|
||||
--shaman
|
||||
-- 82 - Elemental
|
||||
-- 83 - Enchancment
|
||||
-- 84 - Restoration
|
||||
|
||||
[198067] = {cooldown = 150, duration = 30, specs = {82,83,84}, talent =false, charges = 1, class = "SHAMAN", type = ENUM_SPELL_TYPE.AttackCooldown}, --Fire Elemental
|
||||
[51533] = {cooldown = 120, duration = 15, specs = {83}, talent =false, charges = 1, class = "SHAMAN", type = ENUM_SPELL_TYPE.AttackCooldown}, --Feral Spirit
|
||||
[108280] = {cooldown = 180, duration = 10, specs = {84}, talent =false, charges = 1, class = "SHAMAN", type = ENUM_SPELL_TYPE.RaidDefensive}, --Healing Tide Totem
|
||||
[16191] = {cooldown = 180, duration = 8, specs = {8}, talent =false, charges = 1, class = "SHAMAN", type = ENUM_SPELL_TYPE.RaidDefensive}, --Mana Tide Totem
|
||||
[198103] = {cooldown = 300, duration = 60, specs = {82,83,84}, talent =false, charges = 1, class = "SHAMAN", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Earth Elemental
|
||||
|
||||
--hunter
|
||||
-- 70 - Beast Mastery
|
||||
-- 71 - Marksmenship
|
||||
-- 72 - Survival
|
||||
|
||||
[19574] = {cooldown = 90, duration = 12, specs = {70}, talent =false, charges = 1, class = "HUNTER", type = ENUM_SPELL_TYPE.AttackCooldown}, --Bestial Wrath
|
||||
[19577] = {cooldown = 60, duration = 5, specs = {70}, talent =false, charges = 1, class = "HUNTER", type = ENUM_SPELL_TYPE.PersonalUtility}, --Intimidation
|
||||
[187650] = {cooldown = 25, duration = 60, specs = {70,71,72}, talent =false, charges = 1, class = "HUNTER", type = ENUM_SPELL_TYPE.PersonalUtility}, --Freezing Trap
|
||||
|
||||
--druid
|
||||
-- 91 - Balance
|
||||
-- 92 - Feral
|
||||
-- 93 - Restoration
|
||||
|
||||
[22812] = {cooldown = 60, duration = 12, specs = {91,92,93}, talent =false, charges = 1, class = "DRUID", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Barkskin
|
||||
[29166] = {cooldown = 180, duration = 12, specs = {91,92,93}, talent =false, charges = 1, class = "DRUID", type = ENUM_SPELL_TYPE.ExternalDefensive}, --Innervate
|
||||
[106951] = {cooldown = 180, duration = 15, specs = {92}, talent =false, charges = 1, class = "DRUID", type = ENUM_SPELL_TYPE.AttackCooldown}, --Berserk
|
||||
[740] = {cooldown = 180, duration = 8, specs = {91,92,93}, talent =false, charges = 1, class = "DRUID", type = ENUM_SPELL_TYPE.RaidDefensive}, --Tranquility
|
||||
[132469] = {cooldown = 30, duration = false, specs = {91}, talent =false, charges = 1, class = "DRUID", type = ENUM_SPELL_TYPE.PersonalUtility}, --Typhoon
|
||||
|
||||
--death knight
|
||||
-- 79 - Blood
|
||||
-- 80 - Frost
|
||||
-- 81 - Unholy
|
||||
|
||||
[42650] = {cooldown = 480, duration = 30, specs = {79,80,81}, talent =false, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.AttackCooldown}, --Army of the Dead
|
||||
[49206] = {cooldown = 180, duration = 30, specs = {81}, talent =22110, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.AttackCooldown}, --Summon Gargoyle (talent)
|
||||
[48743] = {cooldown = 120, duration = 15, specs = {79}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Death Pact (talent)
|
||||
[48707] = {cooldown = 60, duration = 10, specs = {79,80,81}, talent =false, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Anti-magic Shell
|
||||
[47568] = {cooldown = 120, duration = 20, specs = {80}, talent =false, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.AttackCooldown}, --Empower Rune Weapon
|
||||
[49028] = {cooldown = 120, duration = 8, specs = {79}, talent =false, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.AttackCooldown}, --Dancing Rune Weapon
|
||||
[55233] = {cooldown = 90, duration = 10, specs = {79}, talent =false, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Vampiric Blood
|
||||
[48792] = {cooldown = 120, duration = 8, specs = {79,80,81}, talent =false, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Icebound Fortitude
|
||||
[51052] = {cooldown = 120, duration = 10, specs = {80}, talent =false, charges = 1, class = "DEATHKNIGHT", type = ENUM_SPELL_TYPE.RaidDefensive}, --Anti-magic Zone
|
||||
|
||||
--mage
|
||||
-- 85 - Arcane
|
||||
-- 86 - Fire
|
||||
-- 87 - Frost
|
||||
|
||||
[12042] = {cooldown = 90, duration = 10, specs = {85}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.AttackCooldown}, --Arcane Power
|
||||
[12051] = {cooldown = 90, duration = 6, specs = {85,86,87}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.AttackCooldown}, --Evocation
|
||||
[11426] = {cooldown = 25, duration = 60, specs = {87}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.PersonalUtility}, --Ice Barrier
|
||||
[190319] = {cooldown = 120, duration = 10, specs = {86}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.AttackCooldown}, --Combustion
|
||||
[55342] = {cooldown = 120, duration = 40, specs = {85,86,87}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.AttackCooldown}, --Mirror Image
|
||||
[66] = {cooldown = 300, duration = 20, specs = {85,86,87}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Invisibility
|
||||
[12472] = {cooldown = 180, duration = 20, specs = {87}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.AttackCooldown}, --Icy Veins
|
||||
[45438] = {cooldown = 240, duration = 10, specs = {85,86,87}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Ice Block
|
||||
[235219] = {cooldown = 300, duration = false, specs = {87}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.PersonalUtility}, --Cold Snap
|
||||
[113724] = {cooldown = 45, duration = 10, specs = {85,86,87}, talent =false, charges = 1, class = "MAGE", type = ENUM_SPELL_TYPE.PersonalUtility}, --Ring of Frost (talent)
|
||||
|
||||
--priest
|
||||
-- 76 - Discipline
|
||||
-- 77 - Holy
|
||||
-- 78 - Shadow
|
||||
|
||||
[10060] = {cooldown = 120, duration = 20, specs = {76}, talent =false, charges = 1, class = "PRIEST", type = ENUM_SPELL_TYPE.AttackCooldown}, --Power Infusion
|
||||
[34433] = {cooldown = 180, duration = 15, specs = {78}, talent =false, charges = 1, class = "PRIEST", type = ENUM_SPELL_TYPE.AttackCooldown}, --Shadowfiend
|
||||
[33206] = {cooldown = 180, duration = 8, specs = {76}, talent =false, charges = 1, class = "PRIEST", type = ENUM_SPELL_TYPE.ExternalDefensive}, --Pain Suppression
|
||||
[64843] = {cooldown = 180, duration = 8, specs = {76,77,78}, talent =false, charges = 1, class = "PRIEST", type = ENUM_SPELL_TYPE.RaidDefensive}, --Divine Hymn
|
||||
[64901] = {cooldown = 300, duration = 6, specs = {76,77,78}, talent =false, charges = 1, class = "PRIEST", type = ENUM_SPELL_TYPE.RaidDefensive}, --Symbol of Hope
|
||||
[8122] = {cooldown = 60, duration = 8, specs = {76,77,78}, talent =false, charges = 1, class = "PRIEST", type = ENUM_SPELL_TYPE.PersonalUtility}, --Psychic Scream
|
||||
[47585] = {cooldown = 120, duration = 6, specs = {78}, talent =false, charges = 1, class = "PRIEST", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Dispersion
|
||||
|
||||
--rogue
|
||||
-- 73 - Assasination
|
||||
-- 74 - Combat
|
||||
-- 75 - Subtlety
|
||||
|
||||
[1856] = {cooldown = 120, duration = 3, specs = {73,74,75}, talent =false, charges = 1, class = "ROGUE", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Vanish
|
||||
[5277] = {cooldown = 120, duration = 10, specs = {73,74,75}, talent =false, charges = 1, class = "ROGUE", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Evasion
|
||||
[31224] = {cooldown = 120, duration = 5, specs = {73,74,75}, talent =false, charges = 1, class = "ROGUE", type = ENUM_SPELL_TYPE.PersonalDefensive}, --Cloak of Shadows
|
||||
[2094] = {cooldown = 120, duration = 60, specs = {73,74,75}, talent =false, charges = 1, class = "ROGUE", type = ENUM_SPELL_TYPE.PersonalUtility}, --Blind
|
||||
[13750] = {cooldown = 180, duration = 20, specs = {74}, talent =false, charges = 1, class = "ROGUE", type = ENUM_SPELL_TYPE.AttackCooldown}, --Adrenaline Rush
|
||||
[51690] = {cooldown = 120, duration = 2, specs = {74}, talent =23175, charges = 1, class = "ROGUE", type = ENUM_SPELL_TYPE.AttackCooldown}, --Killing Spree (talent)
|
||||
}
|
||||
|
||||
--this table store all cooldowns the player currently have available
|
||||
LIB_OPEN_RAID_PLAYERCOOLDOWNS = {}
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {};
|
||||
for spellID,spellData in pairs(LIB_OPEN_RAID_COOLDOWNS_INFO) do
|
||||
for _,specID in ipairs(spellData.specs) do
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] = LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] or {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID][spellID] = spellData.type;
|
||||
end
|
||||
end
|
||||
|
||||
--list of all crowd control spells
|
||||
--it is not transmitted to other clients
|
||||
LIB_OPEN_RAID_CROWDCONTROL = { --copied from retail
|
||||
[334693] = {cooldown = 0, class = "DEAHTKNIGHT"}, --Absolute Zero
|
||||
[221562] = {cooldown = 45, class = "DEATHKNIGHT"}, --Asphyxiate
|
||||
[47528] = {cooldown = 15, class = "DEATHKNIGHT"}, --Mind Freeze
|
||||
[207167] = {cooldown = 60, class = "DEATHKNIGHT"}, --Blinding Sleet
|
||||
[91807] = {cooldown = 0, class = "DEATHKNIGHT"}, --Shambling Rush
|
||||
[108194] = {cooldown = 45, class = "DEATHKNIGHT"}, --Asphyxiate
|
||||
[211881] = {cooldown = 30, class = "DEMONHUNTER"}, --Fel Eruption
|
||||
[200166] = {cooldown = 0, class = "DEMONHUNTER"}, --Metamorphosis
|
||||
[217832] = {cooldown = 45, class = "DEMONHUNTER"}, --Imprison
|
||||
[183752] = {cooldown = 15, class = "DEMONHUNTER"}, --Disrupt
|
||||
[207685] = {cooldown = 0, class = "DEMONHUNTER"}, --Sigil of Misery
|
||||
[179057] = {cooldown = 45, class = "DEMONHUNTER"}, --Chaos Nova
|
||||
[221527] = {cooldown = 45, class = "DEMONHUNTER"}, --Imprison with detainment talent
|
||||
[339] = {cooldown = 0, class = "DRUID"}, --Entangling Roots
|
||||
[102359] = {cooldown = 30, class = "DRUID"}, --Mass Entanglement
|
||||
[93985] = {cooldown = 0, class = "DRUID"}, --Skull Bash
|
||||
[2637] = {cooldown = 0, class = "DRUID"}, --Hibernate
|
||||
[5211] = {cooldown = 60, class = "DRUID"}, --Mighty Bash
|
||||
[99] = {cooldown = 30, class = "DRUID"}, --Incapacitating Roar
|
||||
[127797] = {cooldown = 0, class = "DRUID"}, --Ursol's Vortex
|
||||
[203123] = {cooldown = 0, class = "DRUID"}, --Maim
|
||||
[45334] = {cooldown = 0, class = "DRUID"}, --Immobilized
|
||||
[33786] = {cooldown = 0, class = "DRUID"}, --Cyclone
|
||||
[236748] = {cooldown = 30, class = "DRUID"}, --Intimidating Roar
|
||||
[61391] = {cooldown = 0, class = "DRUID"}, --Typhoon
|
||||
[163505] = {cooldown = 0, class = "DRUID"}, --Rake
|
||||
[50259] = {cooldown = 0, class = "DRUID"}, --Dazed
|
||||
[162480] = {cooldown = 0, class = "HUNTER"}, --Steel Trap
|
||||
[187707] = {cooldown = 15, class = "HUNTER"}, --Muzzle
|
||||
[147362] = {cooldown = 24, class = "HUNTER"}, --Counter Shot
|
||||
[190927] = {cooldown = 6, class = "HUNTER"}, --Harpoon
|
||||
[117526] = {cooldown = 45, class = "HUNTER"}, --Binding Shot
|
||||
[24394] = {cooldown = 0, class = "HUNTER"}, --Intimidation
|
||||
[117405] = {cooldown = 0, class = "HUNTER"}, --Binding Shot
|
||||
[19577] = {cooldown = 60, class = "HUNTER"}, --Intimidation
|
||||
[1513] = {cooldown = 0, class = "HUNTER"}, --Scare Beast
|
||||
[3355] = {cooldown = 30, class = "HUNTER"}, --Freezing Trap
|
||||
[203337] = {cooldown = 30, class = "HUNTER"}, --Freezing trap with diamond ice talent
|
||||
[31661] = {cooldown = 45, class = "MAGE"}, --Dragon's Breath
|
||||
[161353] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[277787] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[157981] = {cooldown = 30, class = "MAGE"}, --Blast Wave
|
||||
[82691] = {cooldown = 0, class = "MAGE"}, --Ring of Frost
|
||||
[118] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[161354] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[157997] = {cooldown = 25, class = "MAGE"}, --Ice Nova
|
||||
[391622] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[28271] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[122] = {cooldown = 0, class = "MAGE"}, --Frost Nova
|
||||
[277792] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[61721] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[126819] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[61305] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[28272] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[2139] = {cooldown = 24, class = "MAGE"}, --Counterspell
|
||||
[198909] = {cooldown = 0, class = "MONK"}, --Song of Chi-Ji
|
||||
[119381] = {cooldown = 60, class = "MONK"}, --Leg Sweep
|
||||
[107079] = {cooldown = 120, class = "MONK"}, --Quaking Palm
|
||||
[116706] = {cooldown = 0, class = "MONK"}, --Disable
|
||||
[115078] = {cooldown = 45, class = "MONK"}, --Paralysis
|
||||
[116705] = {cooldown = 15, class = "MONK"}, --Spear Hand Strike
|
||||
[31935] = {cooldown = 15, class = "PALADIN"}, --Avenger's Shield
|
||||
[20066] = {cooldown = 15, class = "PALADIN"}, --Repentance
|
||||
[217824] = {cooldown = 0, class = "PALADIN"}, --Shield of Virtue
|
||||
[105421] = {cooldown = 0, class = "PALADIN"}, --Blinding Light
|
||||
[10326] = {cooldown = 15, class = "PALADIN"}, --Turn Evil
|
||||
[853] = {cooldown = 60, class = "PALADIN"}, --Hammer of Justice
|
||||
[96231] = {cooldown = 15, class = "PALADIN"}, --Rebuke
|
||||
[205364] = {cooldown = 30, class = "PRIEST"}, --Dominate Mind
|
||||
[64044] = {cooldown = 45, class = "PRIEST"}, --Psychic Horror
|
||||
[226943] = {cooldown = 0, class = "PRIEST"}, --Mind Bomb
|
||||
[15487] = {cooldown = 45, class = "PRIEST"}, --Silence
|
||||
[605] = {cooldown = 0, class = "PRIEST"}, --Mind Control
|
||||
[8122] = {cooldown = 45, class = "PRIEST"}, --Psychic Scream
|
||||
[200200] = {cooldown = 60, class = "PRIEST"}, --Holy Word: Chastise
|
||||
[9484] = {cooldown = 0, class = "PRIEST"}, --Shackle Undead
|
||||
[200196] = {cooldown = 60, class = "PRIEST"}, --Holy Word: Chastise
|
||||
[6770] = {cooldown = 0, class = "ROGUE"}, --Sap
|
||||
[2094] = {cooldown = 120, class = "ROGUE"}, --Blind
|
||||
[1766] = {cooldown = 15, class = "ROGUE"}, --Kick
|
||||
[427773] = {cooldown = 0, class = "ROGUE"}, --Blind
|
||||
[408] = {cooldown = 20, class = "ROGUE"}, --Kidney Shot
|
||||
[1776] = {cooldown = 20, class = "ROGUE"}, --Gouge
|
||||
[1833] = {cooldown = 0, class = "ROGUE"}, --Cheap Shot
|
||||
[211015] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[269352] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[277778] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[64695] = {cooldown = 0, class = "SHAMAN"}, --Earthgrab
|
||||
[57994] = {cooldown = 12, class = "SHAMAN"}, --Wind Shear
|
||||
[197214] = {cooldown = 40, class = "SHAMAN"}, --Sundering
|
||||
[118905] = {cooldown = 0, class = "SHAMAN"}, --Static Charge
|
||||
[277784] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[309328] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[211010] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[210873] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[211004] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[51514] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[305485] = {cooldown = 30, class = "SHAMAN"}, --Lightning Lasso
|
||||
[89766] = {cooldown = 30, class = "WARLOCK"}, --Axe Toss (pet felguard ability)
|
||||
[6789] = {cooldown = 45, class = "WARLOCK"}, --Mortal Coil
|
||||
[118699] = {cooldown = 0, class = "WARLOCK"}, --Fear
|
||||
[710] = {cooldown = 0, class = "WARLOCK"}, --Banish
|
||||
[212619] = {cooldown = 60, class = "WARLOCK"}, --Call Felhunter
|
||||
[19647] = {cooldown = 24, class = "WARLOCK"}, --Spell Lock
|
||||
[30283] = {cooldown = 60, class = "WARLOCK"}, --Shadowfury
|
||||
[5484] = {cooldown = 40, class = "WARLOCK"}, --Howl of Terror
|
||||
[6552] = {cooldown = 15, class = "WARRIOR"}, --Pummel
|
||||
[132168] = {cooldown = 0, class = "WARRIOR"}, --Shockwave
|
||||
[132169] = {cooldown = 0, class = "WARRIOR"}, --Storm Bolt
|
||||
[5246] = {cooldown = 90, class = "WARRIOR"}, --Intimidating Shout
|
||||
}
|
||||
|
||||
--[=[
|
||||
Spell customizations:
|
||||
Many times there's spells with the same name which does different effects
|
||||
In here you find a list of spells which has its name changed to give more information to the player
|
||||
you may add into the list any other parameter your addon uses declaring for example 'icon = ' or 'texcoord = ' etc.
|
||||
|
||||
Implamentation Example:
|
||||
if (LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) then
|
||||
for spellId, customTable in pairs(LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) do
|
||||
local name = customTable.name
|
||||
if (name) then
|
||||
MyCustomSpellTable[spellId] = name
|
||||
end
|
||||
end
|
||||
end
|
||||
--]=]
|
||||
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {
|
||||
-- [44461] = {name = GetSpellInfo(44461) .. " (" .. L["STRING_EXPLOSION"] .. ")"}, --Living Bomb (explosion)
|
||||
-- [59638] = {name = GetSpellInfo(59638) .. " (" .. L["STRING_MIRROR_IMAGE"] .. ")"}, --Mirror Image's Frost Bolt (mage)
|
||||
-- [88082] = {name = GetSpellInfo(88082) .. " (" .. L["STRING_MIRROR_IMAGE"] .. ")"}, --Mirror Image's Fireball (mage)
|
||||
-- [94472] = {name = GetSpellInfo(94472) .. " (" .. L["STRING_CRITICAL_ONLY"] .. ")"}, --Atonement critical hit (priest)
|
||||
-- [33778] = {name = GetSpellInfo(33778) .. " (" .. L["STRING_BLOOM"] .. ")"}, --lifebloom (bloom)
|
||||
-- [121414] = {name = GetSpellInfo(121414) .. " (" .. L["STRING_GLAIVE"] .. " #1)"}, --glaive toss (hunter)
|
||||
-- [120761] = {name = GetSpellInfo(120761) .. " (" .. L["STRING_GLAIVE"] .. " #2)"}, --glaive toss (hunter)
|
||||
-- [212739] = {name = GetSpellInfo(212739) .. " (" .. L["STRING_MAINTARGET"] .. ")"}, --DK Epidemic
|
||||
-- [215969] = {name = GetSpellInfo(215969) .. " (" .. L["STRING_AOE"] .. ")"}, --DK Epidemic
|
||||
-- [70890] = {name = GetSpellInfo(70890) .. " (" .. L["STRING_SHADOW"] .. ")"}, --DK Scourge Strike
|
||||
-- [55090] = {name = GetSpellInfo(55090) .. " (" .. L["STRING_PHYSICAL"] .. ")"}, --DK Scourge Strike
|
||||
-- [49184] = {name = GetSpellInfo(49184) .. " (" .. L["STRING_MAINTARGET"] .. ")"}, --DK Howling Blast
|
||||
-- [237680] = {name = GetSpellInfo(237680) .. " (" .. L["STRING_AOE"] .. ")"}, --DK Howling Blast
|
||||
-- [228649] = {name = GetSpellInfo(228649) .. " (" .. L["STRING_PASSIVE"] .. ")"}, --Monk Mistweaver Blackout kick - Passive Teachings of the Monastery
|
||||
-- [339538] = {name = GetSpellInfo(224266) .. " (" .. L["STRING_TEMPLAR_VINDCATION"] .. ")"}, --
|
||||
-- [343355] = {name = GetSpellInfo(343355) .. " (" .. L["STRING_PROC"] .. ")"}, --shadow priest's void bold proc
|
||||
|
||||
-- --shadowlands trinkets
|
||||
-- [345020] = {name = GetSpellInfo(345020) .. " (" .. L["STRING_TRINKET"] .. ")"},
|
||||
}
|
||||
|
||||
--interrupt list using proxy from cooldown list
|
||||
--this list should be expansion and combatlog safe
|
||||
LIB_OPEN_RAID_SPELL_INTERRUPT = {
|
||||
[6552] = LIB_OPEN_RAID_COOLDOWNS_INFO[6552], --Pummel
|
||||
|
||||
[2139] = LIB_OPEN_RAID_COOLDOWNS_INFO[2139], --Counterspell
|
||||
|
||||
[15487] = LIB_OPEN_RAID_COOLDOWNS_INFO[15487], --Silence (shadow) Last Word Talent to reduce cooldown in 15 seconds
|
||||
|
||||
[1766] = LIB_OPEN_RAID_COOLDOWNS_INFO[1766], --Kick
|
||||
|
||||
[96231] = LIB_OPEN_RAID_COOLDOWNS_INFO[96231], --Rebuke (protection and retribution)
|
||||
|
||||
[116705] = LIB_OPEN_RAID_COOLDOWNS_INFO[116705], --Spear Hand Strike (brewmaster and windwalker)
|
||||
|
||||
[57994] = LIB_OPEN_RAID_COOLDOWNS_INFO[57994], --Wind Shear
|
||||
|
||||
[47528] = LIB_OPEN_RAID_COOLDOWNS_INFO[47528], --Mind Freeze
|
||||
|
||||
[106839] = LIB_OPEN_RAID_COOLDOWNS_INFO[106839], --Skull Bash (feral, guardian)
|
||||
[78675] = LIB_OPEN_RAID_COOLDOWNS_INFO[78675], --Solar Beam (balance)
|
||||
|
||||
[147362] = LIB_OPEN_RAID_COOLDOWNS_INFO[147362], --Counter Shot (beast mastery, marksmanship)
|
||||
[187707] = LIB_OPEN_RAID_COOLDOWNS_INFO[187707], --Muzzle (survival)
|
||||
|
||||
[183752] = LIB_OPEN_RAID_COOLDOWNS_INFO[183752], --Disrupt
|
||||
|
||||
[19647] = LIB_OPEN_RAID_COOLDOWNS_INFO[19647], --Spell Lock (pet felhunter ability)
|
||||
[89766] = LIB_OPEN_RAID_COOLDOWNS_INFO[89766], --Axe Toss (pet felguard ability)
|
||||
}
|
||||
|
||||
--override list of spells with more than one effect, example: multiple types of polymorph
|
||||
LIB_OPEN_RAID_SPELL_DEFAULT_IDS = {
|
||||
--[id_to_override] = original_id
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_DATABASE_LOADED = true
|
||||
@@ -1,701 +0,0 @@
|
||||
|
||||
--data for cataclysm expansion
|
||||
--ToDo: Cata Data needed
|
||||
|
||||
local versionString, revision, launchDate, gameVersion = GetBuildInfo()
|
||||
if (gameVersion >= 50000 or gameVersion < 30000) then
|
||||
return
|
||||
end
|
||||
|
||||
--localization
|
||||
local gameLanguage = GetLocale()
|
||||
|
||||
local L = { --default localization
|
||||
["STRING_EXPLOSION"] = "explosion",
|
||||
["STRING_MIRROR_IMAGE"] = "Mirror Image",
|
||||
["STRING_CRITICAL_ONLY"] = "critical",
|
||||
["STRING_BLOOM"] = "Bloom", --lifebloom 'bloom' healing
|
||||
["STRING_GLAIVE"] = "Glaive", --DH glaive toss
|
||||
["STRING_MAINTARGET"] = "Main Target",
|
||||
["STRING_AOE"] = "AoE", --multi targets
|
||||
["STRING_SHADOW"] = "Shadow", --the spell school 'shadow'
|
||||
["STRING_PHYSICAL"] = "Physical", --the spell school 'physical'
|
||||
["STRING_PASSIVE"] = "Passive", --passive spell
|
||||
["STRING_TEMPLAR_VINDCATION"] = "Templar's Vindication", --paladin spell
|
||||
["STRING_PROC"] = "proc", --spell proc
|
||||
["STRING_TRINKET"] = "Trinket", --trinket
|
||||
}
|
||||
|
||||
if (gameLanguage == "enUS") then
|
||||
--default language
|
||||
|
||||
elseif (gameLanguage == "deDE") then
|
||||
L["STRING_EXPLOSION"] = "Explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Bilder spiegeln"
|
||||
L["STRING_CRITICAL_ONLY"] = "kritisch"
|
||||
|
||||
elseif (gameLanguage == "esES") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "esMX") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "frFR") then
|
||||
L["STRING_EXPLOSION"] = "explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Effet miroir"
|
||||
L["STRING_CRITICAL_ONLY"] = "critique"
|
||||
|
||||
elseif (gameLanguage == "itIT") then
|
||||
L["STRING_EXPLOSION"] = "esplosione"
|
||||
L["STRING_MIRROR_IMAGE"] = "Immagine Speculare"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "koKR") then
|
||||
L["STRING_EXPLOSION"] = "폭발"
|
||||
L["STRING_MIRROR_IMAGE"] = "미러 이미지"
|
||||
L["STRING_CRITICAL_ONLY"] = "치명타"
|
||||
|
||||
elseif (gameLanguage == "ptBR") then
|
||||
L["STRING_EXPLOSION"] = "explosão"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagem Espelhada"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "ruRU") then
|
||||
L["STRING_EXPLOSION"] = "взрыв"
|
||||
L["STRING_MIRROR_IMAGE"] = "Зеркальное изображение"
|
||||
L["STRING_CRITICAL_ONLY"] = "критический"
|
||||
|
||||
elseif (gameLanguage == "zhCN") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "镜像"
|
||||
L["STRING_CRITICAL_ONLY"] = "爆击"
|
||||
|
||||
elseif (gameLanguage == "zhTW") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "鏡像"
|
||||
L["STRING_CRITICAL_ONLY"] = "致命"
|
||||
end
|
||||
|
||||
LIB_OPEN_RAID_MANA_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {} --default
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {} --default
|
||||
|
||||
LIB_OPEN_RAID_BLOODLUST = {
|
||||
[2825] = true, --bloodlust
|
||||
[32182] = true, --heroism
|
||||
[80353] = true, --timewarp
|
||||
[90355] = true, --ancient hysteria
|
||||
[309658] = true, --current exp drums
|
||||
}
|
||||
|
||||
--which gear slots can be enchanted on the latest retail version of the game
|
||||
--when the value is a number, the slot only receives enchants for a specific attribute
|
||||
LIB_OPEN_RAID_ENCHANT_SLOTS = {
|
||||
--[INVSLOT_NECK] = true,
|
||||
[INVSLOT_BACK] = true, --for all
|
||||
[INVSLOT_CHEST] = true, --for all
|
||||
[INVSLOT_FINGER1] = true, --for all
|
||||
[INVSLOT_FINGER2] = true, --for all
|
||||
[INVSLOT_MAINHAND] = true, --for all
|
||||
|
||||
[INVSLOT_FEET] = 2, --agility only
|
||||
[INVSLOT_WRIST] = 1, --intellect only
|
||||
[INVSLOT_HAND] = 3, --strenth only
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MYTHICKEYSTONE_ITEMID = 180653
|
||||
LIB_OPEN_RAID_AUGMENTATED_RUNE = 0
|
||||
|
||||
LIB_OPEN_RAID_COVENANT_ICONS = {}
|
||||
|
||||
LIB_OPEN_RAID_ENCHANT_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_GEM_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_WEAPON_ENCHANT_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {}
|
||||
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {}
|
||||
|
||||
LIB_OPEN_RAID_ALL_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_HEALING_POTIONS = {
|
||||
[33447] = true, --Runic Healing Potion
|
||||
[41166] = true, --Runic Healing Injector
|
||||
[47875] = true, --Warlock's Healthstone (0/2 Talent)
|
||||
[47867] = true, --Warlock's Healthstone (1/2 Talent)
|
||||
[47877] = true, --Warlock's Healthstone (2/2 Talent)
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MELEE_SPECS = {
|
||||
[251] = "DEATHKNIGHT",
|
||||
[252] = "DEATHKNIGHT",
|
||||
[577] = "DEMONHUNTER",
|
||||
[103] = "DRUID",
|
||||
--[255] = "Survival", --not in the list due to the long interrupt time
|
||||
[269] = "MONK",
|
||||
[70] = "PALADIN",
|
||||
[259] = "ROGUE",
|
||||
[260] = "ROGUE",
|
||||
[261] = "ROGUE",
|
||||
[263] = "SHAMAN",
|
||||
[71] = "WARRIOR",
|
||||
[72] = "WARRIOR",
|
||||
}
|
||||
|
||||
--tells the duration, requirements and cooldown
|
||||
--information about a cooldown is mainly get from tooltips
|
||||
--if talent is required, use the command:
|
||||
--/dump GetTalentInfo (talentTier, talentColumn, 1)
|
||||
--example: to get the second talent of the last talent line, use: /dump GetTalentInfo (7, 2, 1)
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
|
||||
-- Filter Types:
|
||||
-- 1 attack cooldown
|
||||
-- 2 personal defensive cooldown
|
||||
-- 3 targetted defensive cooldown
|
||||
-- 4 raid defensive cooldown
|
||||
-- 5 personal utility cooldown
|
||||
-- 6 interrupt
|
||||
|
||||
--interrupts
|
||||
[6552] = {class = "WARRIOR", specs = {71, 72, 73}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Pummel
|
||||
[2139] = {class = "MAGE", specs = {62, 63, 64}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Counterspell
|
||||
[15487] = {class = "PRIEST", specs = {258}, cooldown = 45, silence = 4, talent = false, cooldownWithTalent = 30, cooldownTalentId = 23137, type = 6, charges = 1}, --Silence (shadow) Last Word Talent to reduce cooldown in 15 seconds
|
||||
[1766] = {class = "ROGUE", specs = {259, 260, 261}, cooldown = 15, silence = 5, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Kick
|
||||
[96231] = {class = "PALADIN", specs = {66, 70}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Rebuke (protection and retribution)
|
||||
[116705] = {class = "MONK", specs = {268, 269}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Spear Hand Strike (brewmaster and windwalker)
|
||||
[57994] = {class = "SHAMAN", specs = {262, 263, 264}, cooldown = 12, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Wind Shear
|
||||
[47528] = {class = "DEATHKNIGHT", specs = {250, 251, 252}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Mind Freeze
|
||||
[106839] = {class = "DRUID", specs = {103, 104}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Skull Bash (feral, guardian)
|
||||
[78675] = {class = "DRUID", specs = {102}, cooldown = 60, silence = 8, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Solar Beam (balance)
|
||||
[147362] = {class = "HUNTER", specs = {253, 254}, cooldown = 24, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Counter Shot (beast mastery, marksmanship)
|
||||
[187707] = {class = "HUNTER", specs = {255}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Muzzle (survival)
|
||||
[183752] = {class = "DEMONHUNTER", specs = {577, 581}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Disrupt
|
||||
[19647] = {class = "WARLOCK", specs = {265, 266, 267}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 417, type = 6, charges = 1}, --Spell Lock (pet felhunter ability)
|
||||
[89766] = {class = "WARLOCK", specs = {266}, cooldown = 30, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 17252, type = 6, charges = 1}, --Axe Toss (pet felguard ability)
|
||||
|
||||
--paladin
|
||||
-- 65 - Holy
|
||||
-- 66 - Protection
|
||||
-- 70 - Retribution
|
||||
|
||||
[31884] = {cooldown = 120, duration = 20, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 1}, --Avenging Wrath
|
||||
[216331] = {cooldown = 120, duration = 20, specs = {65}, talent =22190, charges = 1, class = "PALADIN", type = 1}, --Avenging Crusader (talent)
|
||||
[498] = {cooldown = 60, duration = 8, specs = {65}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Divine Protection
|
||||
[642] = {cooldown = 300, duration = 8, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Divine Shield
|
||||
[105809] = {cooldown = 90, duration = 20, specs = {65,66,70}, talent =22164, charges = 1, class = "PALADIN", type = 2}, --Holy Avenger (talent)
|
||||
[152262] = {cooldown = 45, duration = 15, specs = {65,66,70}, talent =17601, charges = 1, class = "PALADIN", type = 2}, --Seraphim
|
||||
[633] = {cooldown = 600, duration = false, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Lay on Hands
|
||||
[1022] = {cooldown = 300, duration = 10, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Protection
|
||||
[6940] = {cooldown = 120, duration = 12, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Sacrifice
|
||||
[31821] = {cooldown = 180, duration = 8, specs = {65}, talent =false, charges = 1, class = "PALADIN", type = 4}, --Aura Mastery
|
||||
[1044] = {cooldown = 25, duration = 8, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 5}, --Blessing of Freedom
|
||||
[853] = {cooldown = 60, duration = 6, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 5}, --Hammer of Justice
|
||||
[115750] = {cooldown = 90, duration = 6, specs = {65,66,70}, talent =21811, charges = 1, class = "PALADIN", type = 5}, --Blinding Light(talent)
|
||||
[327193] = {cooldown = 90, duration = 15, specs = {66}, talent =23468, charges = 1, class = "PALADIN", type = 1}, --Moment of Glory (talent)
|
||||
[31850] = {cooldown = 120, duration = 8, specs = {66}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Ardent Defender
|
||||
[86659] = {cooldown = 300, duration = 8, specs = {66}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Guardian of Ancient Kings
|
||||
[204018] = {cooldown = 180, duration = 10, specs = {66}, talent =22435, charges = 1, class = "PALADIN", type = 3}, --Blessing of Spellwarding (talent)
|
||||
[231895] = {cooldown = 120, duration = 25, specs = {70}, talent =22215, charges = 1, class = "PALADIN", type = 1}, --Crusade (talent)
|
||||
[205191] = {cooldown = 60, duration = 10, specs = {70}, talent =22183, charges = 1, class = "PALADIN", type = 2}, --Eye for an Eye (talent)
|
||||
[184662] = {cooldown = 120, duration = 15, specs = {70}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Shield of Vengeance
|
||||
|
||||
--warrior
|
||||
-- 71 - Arms
|
||||
-- 72 - Fury
|
||||
-- 73 - Protection
|
||||
|
||||
[107574] = {cooldown = 90, duration = 20, specs = {71,73}, talent =22397, charges = 1, class = "WARRIOR", type = 1}, --Avatar
|
||||
[227847] = {cooldown = 90, duration = 5, specs = {71}, talent =false, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm
|
||||
[46924] = {cooldown = 60, duration = 4, specs = {72}, talent =22400, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm (talent)
|
||||
[152277] = {cooldown = 60, duration = 6, specs = {71}, talent =21667, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[228920] = {cooldown = 60, duration = 6, specs = {73}, talent =23099, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[118038] = {cooldown = 180, duration = 8, specs = {71}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Die by the Sword
|
||||
[97462] = {cooldown = 180, duration = 10, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 4}, --Rallying Cry
|
||||
[1719] = {cooldown = 90, duration = 10, specs = {72}, talent =false, charges = 1, class = "WARRIOR", type = 1}, --Recklessness
|
||||
[184364] = {cooldown = 120, duration = 8, specs = {72}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Enraged Regeneration
|
||||
[12975] = {cooldown = 180, duration = 15, specs = {73}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Last Stand
|
||||
[871] = {cooldown = 8, duration = 240, specs = {73}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Shield Wall
|
||||
[64382] = {cooldown = 180, duration = false, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 5}, --Shattering Throw
|
||||
[5246] = {cooldown = 90, duration = 8, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 5}, --Intimidating Shout
|
||||
|
||||
--warlock
|
||||
-- 265 - Affliction
|
||||
-- 266 - Demonology
|
||||
-- 267 - Destruction
|
||||
|
||||
[205180] = {cooldown = 180, duration = 20, specs = {265}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Darkglare
|
||||
--[342601] = {cooldown = 3600, duration = false, specs = {}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Ritual of Doom
|
||||
[113860] = {cooldown = 120, duration = 20, specs = {265}, talent =19293, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Misery (talent)
|
||||
[104773] = {cooldown = 180, duration = 8, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 2}, --Unending Resolve
|
||||
[108416] = {cooldown = 60, duration = 20, specs = {265,266,267}, talent =19286, charges = 1, class = "WARLOCK", type = 2}, --Dark Pact (talent)
|
||||
[265187] = {cooldown = 90, duration = 15, specs = {266}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Demonic Tyrant
|
||||
[111898] = {cooldown = 120, duration = 15, specs = {266}, talent =21717, charges = 1, class = "WARLOCK", type = 1}, --Grimoire: Felguard (talent)
|
||||
[267171] = {cooldown = 60, duration = false, specs = {266}, talent =23138, charges = 1, class = "WARLOCK", type = 1}, --Demonic Strength (talent)
|
||||
[267217] = {cooldown = 180, duration = 20, specs = {266}, talent =23091, charges = 1, class = "WARLOCK", type = 1}, --Nether Portal
|
||||
[1122] = {cooldown = 180, duration = 30, specs = {267}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Infernal
|
||||
[113858] = {cooldown = 120, duration = 20, specs = {267}, talent =23092, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Instability (talent)
|
||||
[30283] = {cooldown = 60, duration = 3, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 5}, --Shadowfury
|
||||
[333889] = {cooldown = 180, duration = 15, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 5}, --Fel Domination
|
||||
[5484] = {cooldown = 40, duration = 20, specs = {265,266,267}, talent =23465, charges = 1, class = "WARLOCK", type = 5}, --Howl of Terror (talent)
|
||||
|
||||
--shaman
|
||||
-- 262 - Elemental
|
||||
-- 263 - Enchancment
|
||||
-- 264 - Restoration
|
||||
|
||||
[198067] = {cooldown = 150, duration = 30, specs = {262}, talent =false, charges = 1, class = "SHAMAN", type = 1}, --Fire Elemental
|
||||
[192249] = {cooldown = 150, duration = 30, specs = {262}, talent =19272, charges = 1, class = "SHAMAN", type = 1}, --Storm Elemental (talent)
|
||||
[108271] = {cooldown = 90, duration = 8, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 2}, --Astral Shift
|
||||
[108281] = {cooldown = 120, duration = 10, specs = {262,263}, talent =22172, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Guidance (talent)
|
||||
[51533] = {cooldown = 120, duration = 15, specs = {263}, talent =false, charges = 1, class = "SHAMAN", type = 1}, --Feral Spirit
|
||||
[114050] = {cooldown = 180, duration = 15, specs = {262}, talent =21675, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114051] = {cooldown = 180, duration = 15, specs = {263}, talent =21972, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114052] = {cooldown = 180, duration = 15, specs = {264}, talent =22359, charges = 1, class = "SHAMAN", type = 4}, --Ascendance (talent)
|
||||
[98008] = {cooldown = 180, duration = 6, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Spirit Link Totem
|
||||
[108280] = {cooldown = 180, duration = 10, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Healing Tide Totem
|
||||
[207399] = {cooldown = 240, duration = 30, specs = {264}, talent =22323, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Protection Totem (talent)
|
||||
[16191] = {cooldown = 180, duration = 8, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Mana Tide Totem
|
||||
[198103] = {cooldown = 300, duration = 60, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 2}, --Earth Elemental
|
||||
[192058] = {cooldown = 60, duration = false, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 5}, --Capacitor Totem
|
||||
[8143] = {cooldown = 60, duration = 10, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 5}, --Tremor Totem
|
||||
[192077] = {cooldown = 120, duration = 15, specs = {262,263,264}, talent =21966, charges = 1, class = "SHAMAN", type = 5}, --Wind Rush Totem (talent)
|
||||
|
||||
--monk
|
||||
-- 268 - Brewmaster
|
||||
-- 269 - Windwalker
|
||||
-- 270 - Restoration
|
||||
|
||||
[132578] = {cooldown = 180, duration = 25, specs = {268}, talent =false, charges = 1, class = "MONK", type = 1}, --Invoke Niuzao, the Black Ox
|
||||
[115080] = {cooldown = 180, duration = false, specs = {268,269,270}, talent =false, charges = 1, class = "MONK", type = 1}, --Touch of Death
|
||||
[115203] = {cooldown = 420, duration = 15, specs = {268}, talent =false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[115176] = {cooldown = 300, duration = 8, specs = {268}, talent =false, charges = 1, class = "MONK", type = 2}, --Zen Meditation
|
||||
[115399] = {cooldown = 120, duration = false, specs = {268}, talent =19992, charges = 1, class = "MONK", type = 2}, --Black Ox brew (talent)
|
||||
[122278] = {cooldown = 120, duration = 10, specs = {268,269,270}, talent =20175, charges = 1, class = "MONK", type = 2}, --Dampen Harm (talent)
|
||||
[137639] = {cooldown = 90, duration = 15, specs = {269}, talent =false, charges = 1, class = "MONK", type = 1}, --Storm, Earth, and Fire
|
||||
[123904] = {cooldown = 120, duration = 24, specs = {269}, talent =false, charges = 1, class = "MONK", type = 1}, --Invoke Xuen, the White Tiger
|
||||
[152173] = {cooldown = 90, duration = 12, specs = {269}, talent =21191, charges = 1, class = "MONK", type = 1}, --Serenity (talent)
|
||||
[122470] = {cooldown = 90, duration = 6, specs = {269}, talent =false, charges = 1, class = "MONK", type = 2}, --Touch of Karma
|
||||
[322118] = {cooldown = 180, duration = 25, specs = {270}, talent =false, charges = 1, class = "MONK", type = 4}, --Invoke Yulon, the Jade serpent
|
||||
[243435] = {cooldown = 90, duration = 15, specs = {269,270}, talent =false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[122783] = {cooldown = 90, duration = 6, specs = {269,270}, talent =20173, charges = 1, class = "MONK", type = 2}, --Diffuse Magic (talent)
|
||||
[116849] = {cooldown = 120, duration = 12, specs = {270}, talent =false, charges = 1, class = "MONK", type = 3}, --Life Cocoon
|
||||
[115310] = {cooldown = 180, duration = false, specs = {270}, talent =false, charges = 1, class = "MONK", type = 4}, --Revival
|
||||
[197908] = {cooldown = 90, duration = 10, specs = {270}, talent =22166, charges = 1, class = "MONK", type = 5}, --Mana tea (talent)
|
||||
[116844] = {cooldown = 45, duration = 5, specs = {268,269,270}, talent =19995, charges = 1, class = "MONK", type = 5}, --Ring of peace (talent)
|
||||
[119381] = {cooldown = 50, duration = 3, specs = {268,269,270}, talent =false, charges = 1, class = "MONK", type = 5}, --Leg Sweep
|
||||
|
||||
--hunter
|
||||
-- 253 - Beast Mastery
|
||||
-- 254 - Marksmenship
|
||||
-- 255 - Survival
|
||||
|
||||
[193530] = {cooldown = 120, duration = 20, specs = {253}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Aspect of the Wild
|
||||
[19574] = {cooldown = 90, duration = 12, specs = {253}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Bestial Wrath
|
||||
[201430] = {cooldown = 180, duration = 12, specs = {253}, talent =23044, charges = 1, class = "HUNTER", type = 1}, --Stampede (talent)
|
||||
[288613] = {cooldown = 180, duration = 15, specs = {254}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Trueshot
|
||||
[199483] = {cooldown = 60, duration = 60, specs = {253,254,255}, talent =23100, charges = 1, class = "HUNTER", type = 2}, --Camouflage (talent)
|
||||
[281195] = {cooldown = 180, duration = 6, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Survival of the Fittest
|
||||
[266779] = {cooldown = 120, duration = 20, specs = {255}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Coordinated Assault
|
||||
[186265] = {cooldown = 180, duration = 8, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Aspect of the Turtle
|
||||
[109304] = {cooldown = 120, duration = false, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Exhilaration
|
||||
[186257] = {cooldown = 144, duration = 14, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the cheetah
|
||||
[19577] = {cooldown = 60, duration = 5, specs = {253,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Intimidation
|
||||
[109248] = {cooldown = 45, duration = 10, specs = {253,254,255}, talent =22499, charges = 1, class = "HUNTER", type = 5}, --Binding Shot (talent)
|
||||
[187650] = {cooldown = 25, duration = 60, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Freezing Trap
|
||||
[186289] = {cooldown = 72, duration = 15, specs = {255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the eagle
|
||||
|
||||
--druid
|
||||
-- 102 - Balance
|
||||
-- 103 - Feral
|
||||
-- 104 - Guardian
|
||||
-- 105 - Restoration
|
||||
|
||||
[77761] = {cooldown = 120, duration = 8, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 4}, --Stampeding Roar
|
||||
[194223] = {cooldown = 180, duration = 20, specs = {102}, talent =false, charges = 1, class = "DRUID", type = 1}, --Celestial Alignment
|
||||
[102560] = {cooldown = 180, duration = 30, specs = {102}, talent =21702, charges = 1, class = "DRUID", type = 1}, --Incarnation: Chosen of Elune (talent)
|
||||
[22812] = {cooldown = 60, duration = 12, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 2}, --Barkskin
|
||||
[108238] = {cooldown = 90, duration = false, specs = {102,103,104,105}, talent =18570, charges = 1, class = "DRUID", type = 2}, --Renewal (talent)
|
||||
[29166] = {cooldown = 180, duration = 12, specs = {102,105}, talent =false, charges = 1, class = "DRUID", type = 3}, --Innervate
|
||||
[106951] = {cooldown = 180, duration = 15, specs = {103,104}, talent =false, charges = 1, class = "DRUID", type = 1}, --Berserk
|
||||
[102543] = {cooldown = 30, duration = 180, specs = {103}, talent =21704, charges = 1, class = "DRUID", type = 1}, --Incarnation: King of the Jungle (talent)
|
||||
[61336] = {cooldown = 120, duration = 6, specs = {103,104}, talent =false, charges = 2, class = "DRUID", type = 2}, --Survival Instincts (2min feral 4min guardian, same spellid)
|
||||
[102558] = {cooldown = 180, duration = 30, specs = {104}, talent =22388, charges = 1, class = "DRUID", type = 2}, --Incarnation: Guardian of Ursoc (talent)
|
||||
[33891] = {cooldown = 180, duration = 30, specs = {105}, talent =22421, charges = 1, class = "DRUID", type = 2}, --Incarnation: Tree of Life (talent)
|
||||
[102342] = {cooldown = 60, duration = 12, specs = {105}, talent =false, charges = 1, class = "DRUID", type = 3}, --Ironbark
|
||||
[203651] = {cooldown = 60, duration = false, specs = {105}, talent =22422, charges = 1, class = "DRUID", type = 3}, --Overgrowth (talent)
|
||||
[740] = {cooldown = 180, duration = 8, specs = {105}, talent =false, charges = 1, class = "DRUID", type = 4}, --Tranquility
|
||||
[197721] = {cooldown = 90, duration = 8, specs = {105}, talent =22404, charges = 1, class = "DRUID", type = 4}, --Flourish (talent)
|
||||
[132469] = {cooldown = 30, duration = false, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 5}, --Typhoon
|
||||
[319454] = {cooldown = 300, duration = 45, specs = {102,103,104,105}, talent =18577, charges = 1, class = "DRUID", type = 5}, --Heart of the Wild (talent)
|
||||
[102793] = {cooldown = 60, duration = 10, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 5}, --Ursol's Vortex
|
||||
|
||||
--death knight
|
||||
-- 252 - Unholy
|
||||
-- 251 - Frost
|
||||
-- 252 - Blood
|
||||
|
||||
[275699] = {cooldown = 90, duration = 15, specs = {252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Apocalypse
|
||||
[42650] = {cooldown = 480, duration = 30, specs = {252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Army of the Dead
|
||||
[49206] = {cooldown = 180, duration = 30, specs = {252}, talent =22110, charges = 1, class = "DEATHKNIGHT", type = 1}, --Summon Gargoyle (talent)
|
||||
[207289] = {cooldown = 78, duration = 12, specs = {252}, talent =22538, charges = 1, class = "DEATHKNIGHT", type = 1}, --Unholy Assault (talent)
|
||||
[48743] = {cooldown = 120, duration = 15, specs = {250,251,252}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Death Pact (talent)
|
||||
[48707] = {cooldown = 60, duration = 10, specs = {250,251,252}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Anti-magic Shell
|
||||
[152279] = {cooldown = 120, duration = 5, specs = {251}, talent =22537, charges = 1, class = "DEATHKNIGHT", type = 1}, --Breath of Sindragosa (talent)
|
||||
[47568] = {cooldown = 120, duration = 20, specs = {251}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Empower Rune Weapon
|
||||
[279302] = {cooldown = 120, duration = 10, specs = {251}, talent =22535, charges = 1, class = "DEATHKNIGHT", type = 1}, --Frostwyrm's Fury (talent)
|
||||
[49028] = {cooldown = 120, duration = 8, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Dancing Rune Weapon
|
||||
[55233] = {cooldown = 90, duration = 10, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Vampiric Blood
|
||||
[48792] = {cooldown = 120, duration = 8, specs = {250,251,252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Icebound Fortitude
|
||||
[51052] = {cooldown = 120, duration = 10, specs = {250,251,252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 4}, --Anti-magic Zone
|
||||
[219809] = {cooldown = 60, duration = 8, specs = {250}, talent =23454, charges = 1, class = "DEATHKNIGHT", type = 2}, --Tombstone (talent)
|
||||
[108199] = {cooldown = 120, duration = false, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Gorefiend's Grasp
|
||||
[207167] = {cooldown = 60, duration = 5, specs = {251}, talent =22519, charges = 1, class = "DEATHKNIGHT", type = 5}, --Blinding Sleet (talent)
|
||||
[108194] = {cooldown = 45, duration = 4, specs = {251,252}, talent =22520, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate (talent)
|
||||
[221562] = {cooldown = 45, duration = 5, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate
|
||||
[212552] = {cooldown = 60, duration = 4, specs = {250,251,252}, talent =19228, charges = 1, class = "DEATHKNIGHT", type = 5}, --Wraith walk (talent)
|
||||
|
||||
--demon hunter
|
||||
-- 577 - Havoc
|
||||
-- 581 - Vengance
|
||||
|
||||
[191427] = {cooldown = 240, duration = 30, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 1}, --Metamorphosis
|
||||
[198589] = {cooldown = 60, duration = 10, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Blur
|
||||
[196555] = {cooldown = 120, duration = 5, specs = {577}, talent =21865, charges = 1, class = "DEMONHUNTER", type = 2}, --Netherwalk (talent)
|
||||
[187827] = {cooldown = 180, duration = 15, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Metamorphosis
|
||||
[196718] = {cooldown = 180, duration = 8, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 4}, --Darkness
|
||||
[188501] = {cooldown = 30, duration = 10, specs = {577,581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Spectral Sight
|
||||
[179057] = {cooldown = 60, duration = 2, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Chaos Nova
|
||||
[211881] = {cooldown = 30, duration = 4, specs = {577}, talent =22767, charges = 1, class = "DEMONHUNTER", type = 5}, --Fel Eruption (talent)
|
||||
[320341] = {cooldown = 90, duration = false, specs = {581}, talent =21902, charges = 1, class = "DEMONHUNTER", type = 1}, --Bulk Extraction (talent)
|
||||
[204021] = {cooldown = 60, duration = 10, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Fiery Brand
|
||||
[263648] = {cooldown = 30, duration = 12, specs = {581}, talent =22768, charges = 1, class = "DEMONHUNTER", type = 2}, --Soul Barrier (talent)
|
||||
[207684] = {cooldown = 90, duration = 12, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Misery
|
||||
[202137] = {cooldown = 60, duration = 8, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Silence
|
||||
[202138] = {cooldown = 90, duration = 6, specs = {581}, talent =22511, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Chains (talent)
|
||||
|
||||
--mage
|
||||
-- 62 - Arcane
|
||||
-- 63 - Fire
|
||||
-- 64 - Frost
|
||||
|
||||
[12042] = {cooldown = 90, duration = 10, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 1}, --Arcane Power
|
||||
[12051] = {cooldown = 90, duration = 6, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 1}, --Evocation
|
||||
[110960] = {cooldown = 120, duration = 20, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 2}, --Greater Invisibility
|
||||
[235450] = {cooldown = 25, duration = 60, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 5}, --Prismatic Barrier
|
||||
[235313] = {cooldown = 25, duration = 60, specs = {63}, talent =false, charges = 1, class = "MAGE", type = 5}, --Blazing Barrier
|
||||
[11426] = {cooldown = 25, duration = 60, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 5}, --Ice Barrier
|
||||
[190319] = {cooldown = 120, duration = 10, specs = {63}, talent =false, charges = 1, class = "MAGE", type = 1}, --Combustion
|
||||
[55342] = {cooldown = 120, duration = 40, specs = {62,63,64}, talent =22445, charges = 1, class = "MAGE", type = 1}, --Mirror Image
|
||||
[66] = {cooldown = 300, duration = 20, specs = {63,64}, talent =false, charges = 1, class = "MAGE", type = 2}, --Invisibility
|
||||
[12472] = {cooldown = 180, duration = 20, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 1}, --Icy Veins
|
||||
[205021] = {cooldown = 78, duration = 5, specs = {64}, talent =22309, charges = 1, class = "MAGE", type = 1}, --Ray of Frost (talent)
|
||||
[45438] = {cooldown = 240, duration = 10, specs = {62,63,64}, talent =false, charges = 1, class = "MAGE", type = 2}, --Ice Block
|
||||
[235219] = {cooldown = 300, duration = false, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 5}, --Cold Snap
|
||||
[113724] = {cooldown = 45, duration = 10, specs = {62,63,64}, talent =22471, charges = 1, class = "MAGE", type = 5}, --Ring of Frost (talent)
|
||||
|
||||
--priest
|
||||
-- 256 - Discipline
|
||||
-- 257 - Holy
|
||||
-- 258 - Shadow
|
||||
|
||||
[10060] = {cooldown = 120, duration = 20, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 1}, --Power Infusion
|
||||
[34433] = {cooldown = 180, duration = 15, specs = {256,258}, talent =false, charges = 1, class = "PRIEST", type = 1, ignoredIfTalent = 21719}, --Shadowfiend
|
||||
[200174] = {cooldown = 60, duration = 15, specs = {258}, talent =21719, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[123040] = {cooldown = 60, duration = 12, specs = {256}, talent =22094, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[33206] = {cooldown = 180, duration = 8, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 3}, --Pain Suppression
|
||||
[62618] = {cooldown = 180, duration = 10, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Power Word: Barrier
|
||||
[271466] = {cooldown = 180, duration = 10, specs = {256}, talent =21184, charges = 1, class = "PRIEST", type = 4}, --Luminous Barrier (talent)
|
||||
[47536] = {cooldown = 90, duration = 10, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Rapture
|
||||
[19236] = {cooldown = 90, duration = 10, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Desperate Prayer
|
||||
[200183] = {cooldown = 120, duration = 20, specs = {257}, talent =21644, charges = 1, class = "PRIEST", type = 2}, --Apotheosis (talent)
|
||||
[47788] = {cooldown = 180, duration = 10, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 3}, --Guardian Spirit
|
||||
[64843] = {cooldown = 180, duration = 8, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Divine Hymn
|
||||
[64901] = {cooldown = 300, duration = 6, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Symbol of Hope
|
||||
[265202] = {cooldown = 720, duration = false, specs = {257}, talent =23145, charges = 1, class = "PRIEST", type = 4}, --Holy Word: Salvation (talent)
|
||||
[109964] = {cooldown = 60, duration = 12, specs = {256}, talent =21184, charges = 1, class = "PRIEST", type = 4}, --Spirit Shell (talent)
|
||||
[8122] = {cooldown = 60, duration = 8, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Psychic Scream
|
||||
[193223] = {cooldown = 240, duration = 60, specs = {258}, talent =21979, charges = 1, class = "PRIEST", type = 1}, --Surrender to Madness (talent)
|
||||
[47585] = {cooldown = 120, duration = 6, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 2}, --Dispersion
|
||||
[15286] = {cooldown = 120, duration = 15, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Vampiric Embrace
|
||||
[64044] = {cooldown = 45, duration = 4, specs = {258}, talent =21752, charges = 1, class = "PRIEST", type = 5}, --Psychic Horror
|
||||
[205369] = {cooldown = 30, duration = 6, specs = {258}, talent =23375, charges = 1, class = "PRIEST", type = 5}, --Mind Bomb
|
||||
[228260] = {cooldown = 90, duration = 15, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 1}, --Void Erruption
|
||||
[73325] = {cooldown = 90, duration = false, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Leap of Faith
|
||||
|
||||
--rogue
|
||||
-- 259 - Assasination
|
||||
-- 260 - Outlaw
|
||||
-- 261 - Subtlety
|
||||
|
||||
[79140] = {cooldown = 120, duration = 20, specs = {259}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Vendetta
|
||||
[1856] = {cooldown = 120, duration = 3, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Vanish
|
||||
[5277] = {cooldown = 120, duration = 10, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Evasion
|
||||
[31224] = {cooldown = 120, duration = 5, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Cloak of Shadows
|
||||
[2094] = {cooldown = 120, duration = 60, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Blind
|
||||
[114018] = {cooldown = 360, duration = 15, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Shroud of Concealment
|
||||
[185311] = {cooldown = 30, duration = 15, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Crimson Vial
|
||||
[13750] = {cooldown = 180, duration = 20, specs = {260}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Adrenaline Rush
|
||||
[51690] = {cooldown = 120, duration = 2, specs = {260}, talent =23175, charges = 1, class = "ROGUE", type = 1}, --Killing Spree (talent)
|
||||
[199754] = {cooldown = 120, duration = 10, specs = {260}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Riposte
|
||||
[343142] = {cooldown = 90, duration = 10, specs = {260}, talent =19250, charges = 1, class = "ROGUE", type = 5}, --Dreadblades
|
||||
[121471] = {cooldown = 180, duration = 20, specs = {261}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Shadow Blades
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {};
|
||||
for spellID,spellData in pairs(LIB_OPEN_RAID_COOLDOWNS_INFO) do
|
||||
for _,specID in ipairs(spellData.specs) do
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] = LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] or {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID][spellID] = spellData.type;
|
||||
end
|
||||
end
|
||||
|
||||
-- DF Evoker
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1467] = {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1468] = {};
|
||||
|
||||
--list of all crowd control spells
|
||||
--it is not transmitted to other clients
|
||||
LIB_OPEN_RAID_CROWDCONTROL = { --copied from retail
|
||||
[331866] = {cooldown = 0, class = "COVENANT|VENTHYR"}, --Agent of Chaos
|
||||
[334693] = {cooldown = 0, class = "DEAHTKNIGHT"}, --Absolute Zero
|
||||
[221562] = {cooldown = 45, class = "DEATHKNIGHT"}, --Asphyxiate
|
||||
[47528] = {cooldown = 15, class = "DEATHKNIGHT"}, --Mind Freeze
|
||||
[207167] = {cooldown = 60, class = "DEATHKNIGHT"}, --Blinding Sleet
|
||||
[91807] = {cooldown = 0, class = "DEATHKNIGHT"}, --Shambling Rush
|
||||
[108194] = {cooldown = 45, class = "DEATHKNIGHT"}, --Asphyxiate
|
||||
[211881] = {cooldown = 30, class = "DEMONHUNTER"}, --Fel Eruption
|
||||
[200166] = {cooldown = 0, class = "DEMONHUNTER"}, --Metamorphosis
|
||||
[217832] = {cooldown = 45, class = "DEMONHUNTER"}, --Imprison
|
||||
[183752] = {cooldown = 15, class = "DEMONHUNTER"}, --Disrupt
|
||||
[207685] = {cooldown = 0, class = "DEMONHUNTER"}, --Sigil of Misery
|
||||
[179057] = {cooldown = 45, class = "DEMONHUNTER"}, --Chaos Nova
|
||||
[221527] = {cooldown = 45, class = "DEMONHUNTER"}, --Imprison with detainment talent
|
||||
[339] = {cooldown = 0, class = "DRUID"}, --Entangling Roots
|
||||
[102359] = {cooldown = 30, class = "DRUID"}, --Mass Entanglement
|
||||
[93985] = {cooldown = 0, class = "DRUID"}, --Skull Bash
|
||||
[2637] = {cooldown = 0, class = "DRUID"}, --Hibernate
|
||||
[5211] = {cooldown = 60, class = "DRUID"}, --Mighty Bash
|
||||
[99] = {cooldown = 30, class = "DRUID"}, --Incapacitating Roar
|
||||
[127797] = {cooldown = 0, class = "DRUID"}, --Ursol's Vortex
|
||||
[203123] = {cooldown = 0, class = "DRUID"}, --Maim
|
||||
[45334] = {cooldown = 0, class = "DRUID"}, --Immobilized
|
||||
[33786] = {cooldown = 0, class = "DRUID"}, --Cyclone
|
||||
[236748] = {cooldown = 30, class = "DRUID"}, --Intimidating Roar
|
||||
[61391] = {cooldown = 0, class = "DRUID"}, --Typhoon
|
||||
[163505] = {cooldown = 0, class = "DRUID"}, --Rake
|
||||
[50259] = {cooldown = 0, class = "DRUID"}, --Dazed
|
||||
[372245] = {cooldown = 0, class = "EVOKER"}, --Terror of the Skies
|
||||
[360806] = {cooldown = 15, class = "EVOKER"}, --Sleep Walk
|
||||
[162480] = {cooldown = 0, class = "HUNTER"}, --Steel Trap
|
||||
[187707] = {cooldown = 15, class = "HUNTER"}, --Muzzle
|
||||
[147362] = {cooldown = 24, class = "HUNTER"}, --Counter Shot
|
||||
[190927] = {cooldown = 6, class = "HUNTER"}, --Harpoon
|
||||
[117526] = {cooldown = 45, class = "HUNTER"}, --Binding Shot
|
||||
[24394] = {cooldown = 0, class = "HUNTER"}, --Intimidation
|
||||
[117405] = {cooldown = 0, class = "HUNTER"}, --Binding Shot
|
||||
[19577] = {cooldown = 60, class = "HUNTER"}, --Intimidation
|
||||
[1513] = {cooldown = 0, class = "HUNTER"}, --Scare Beast
|
||||
[3355] = {cooldown = 30, class = "HUNTER"}, --Freezing Trap
|
||||
[203337] = {cooldown = 30, class = "HUNTER"}, --Freezing trap with diamond ice talent
|
||||
[31661] = {cooldown = 45, class = "MAGE"}, --Dragon's Breath
|
||||
[161353] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[277787] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[157981] = {cooldown = 30, class = "MAGE"}, --Blast Wave
|
||||
[82691] = {cooldown = 0, class = "MAGE"}, --Ring of Frost
|
||||
[118] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[161354] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[157997] = {cooldown = 25, class = "MAGE"}, --Ice Nova
|
||||
[391622] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[28271] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[122] = {cooldown = 0, class = "MAGE"}, --Frost Nova
|
||||
[277792] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[61721] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[126819] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[61305] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[28272] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[2139] = {cooldown = 24, class = "MAGE"}, --Counterspell
|
||||
[198909] = {cooldown = 0, class = "MONK"}, --Song of Chi-Ji
|
||||
[119381] = {cooldown = 60, class = "MONK"}, --Leg Sweep
|
||||
[107079] = {cooldown = 120, class = "MONK"}, --Quaking Palm
|
||||
[116706] = {cooldown = 0, class = "MONK"}, --Disable
|
||||
[115078] = {cooldown = 45, class = "MONK"}, --Paralysis
|
||||
[116705] = {cooldown = 15, class = "MONK"}, --Spear Hand Strike
|
||||
[31935] = {cooldown = 15, class = "PALADIN"}, --Avenger's Shield
|
||||
[20066] = {cooldown = 15, class = "PALADIN"}, --Repentance
|
||||
[217824] = {cooldown = 0, class = "PALADIN"}, --Shield of Virtue
|
||||
[105421] = {cooldown = 0, class = "PALADIN"}, --Blinding Light
|
||||
[10326] = {cooldown = 15, class = "PALADIN"}, --Turn Evil
|
||||
[853] = {cooldown = 60, class = "PALADIN"}, --Hammer of Justice
|
||||
[96231] = {cooldown = 15, class = "PALADIN"}, --Rebuke
|
||||
[205364] = {cooldown = 30, class = "PRIEST"}, --Dominate Mind
|
||||
[64044] = {cooldown = 45, class = "PRIEST"}, --Psychic Horror
|
||||
[226943] = {cooldown = 0, class = "PRIEST"}, --Mind Bomb
|
||||
[15487] = {cooldown = 45, class = "PRIEST"}, --Silence
|
||||
[605] = {cooldown = 0, class = "PRIEST"}, --Mind Control
|
||||
[8122] = {cooldown = 45, class = "PRIEST"}, --Psychic Scream
|
||||
[200200] = {cooldown = 60, class = "PRIEST"}, --Holy Word: Chastise
|
||||
[9484] = {cooldown = 0, class = "PRIEST"}, --Shackle Undead
|
||||
[200196] = {cooldown = 60, class = "PRIEST"}, --Holy Word: Chastise
|
||||
[6770] = {cooldown = 0, class = "ROGUE"}, --Sap
|
||||
[2094] = {cooldown = 120, class = "ROGUE"}, --Blind
|
||||
[1766] = {cooldown = 15, class = "ROGUE"}, --Kick
|
||||
[427773] = {cooldown = 0, class = "ROGUE"}, --Blind
|
||||
[408] = {cooldown = 20, class = "ROGUE"}, --Kidney Shot
|
||||
[1776] = {cooldown = 20, class = "ROGUE"}, --Gouge
|
||||
[1833] = {cooldown = 0, class = "ROGUE"}, --Cheap Shot
|
||||
[211015] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[269352] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[277778] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[64695] = {cooldown = 0, class = "SHAMAN"}, --Earthgrab
|
||||
[57994] = {cooldown = 12, class = "SHAMAN"}, --Wind Shear
|
||||
[197214] = {cooldown = 40, class = "SHAMAN"}, --Sundering
|
||||
[118905] = {cooldown = 0, class = "SHAMAN"}, --Static Charge
|
||||
[277784] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[309328] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[211010] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[210873] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[211004] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[51514] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[305485] = {cooldown = 30, class = "SHAMAN"}, --Lightning Lasso
|
||||
[89766] = {cooldown = 30, class = "WARLOCK"}, --Axe Toss (pet felguard ability)
|
||||
[6789] = {cooldown = 45, class = "WARLOCK"}, --Mortal Coil
|
||||
[118699] = {cooldown = 0, class = "WARLOCK"}, --Fear
|
||||
[710] = {cooldown = 0, class = "WARLOCK"}, --Banish
|
||||
[212619] = {cooldown = 60, class = "WARLOCK"}, --Call Felhunter
|
||||
[19647] = {cooldown = 24, class = "WARLOCK"}, --Spell Lock
|
||||
[30283] = {cooldown = 60, class = "WARLOCK"}, --Shadowfury
|
||||
[5484] = {cooldown = 40, class = "WARLOCK"}, --Howl of Terror
|
||||
[6552] = {cooldown = 15, class = "WARRIOR"}, --Pummel
|
||||
[132168] = {cooldown = 0, class = "WARRIOR"}, --Shockwave
|
||||
[132169] = {cooldown = 0, class = "WARRIOR"}, --Storm Bolt
|
||||
[5246] = {cooldown = 90, class = "WARRIOR"}, --Intimidating Shout
|
||||
}
|
||||
|
||||
--[=[
|
||||
Spell customizations:
|
||||
Many times there's spells with the same name which does different effects
|
||||
In here you find a list of spells which has its name changed to give more information to the player
|
||||
you may add into the list any other parameter your addon uses declaring for example 'icon = ' or 'texcoord = ' etc.
|
||||
|
||||
Implamentation Example:
|
||||
if (LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) then
|
||||
for spellId, customTable in pairs(LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) do
|
||||
local name = customTable.name
|
||||
if (name) then
|
||||
MyCustomSpellTable[spellId] = name
|
||||
end
|
||||
end
|
||||
end
|
||||
--]=]
|
||||
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {} --default fallback
|
||||
|
||||
if (GetBuildInfo():match ("%d") == "1") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "2") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "3") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "4") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
else
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {
|
||||
[44461] = {name = GetSpellInfo(44461) .. " (" .. L["STRING_EXPLOSION"] .. ")"}, --Living Bomb (explosion)
|
||||
[59638] = {name = GetSpellInfo(59638) .. " (" .. L["STRING_MIRROR_IMAGE"] .. ")"}, --Mirror Image's Frost Bolt (mage)
|
||||
[88082] = {name = GetSpellInfo(88082) .. " (" .. L["STRING_MIRROR_IMAGE"] .. ")"}, --Mirror Image's Fireball (mage)
|
||||
[94472] = {name = GetSpellInfo(94472) .. " (" .. L["STRING_CRITICAL_ONLY"] .. ")"}, --Atonement critical hit (priest)
|
||||
[33778] = {name = GetSpellInfo(33778) .. " (" .. L["STRING_BLOOM"] .. ")"}, --lifebloom (bloom)
|
||||
[121414] = {name = GetSpellInfo(121414) .. " (" .. L["STRING_GLAIVE"] .. " #1)"}, --glaive toss (hunter)
|
||||
[120761] = {name = GetSpellInfo(120761) .. " (" .. L["STRING_GLAIVE"] .. " #2)"}, --glaive toss (hunter)
|
||||
[212739] = {name = GetSpellInfo(212739) .. " (" .. L["STRING_MAINTARGET"] .. ")"}, --DK Epidemic
|
||||
[215969] = {name = GetSpellInfo(215969) .. " (" .. L["STRING_AOE"] .. ")"}, --DK Epidemic
|
||||
[70890] = {name = GetSpellInfo(70890) .. " (" .. L["STRING_SHADOW"] .. ")"}, --DK Scourge Strike
|
||||
[55090] = {name = GetSpellInfo(55090) .. " (" .. L["STRING_PHYSICAL"] .. ")"}, --DK Scourge Strike
|
||||
[49184] = {name = GetSpellInfo(49184) .. " (" .. L["STRING_MAINTARGET"] .. ")"}, --DK Howling Blast
|
||||
[237680] = {name = GetSpellInfo(237680) .. " (" .. L["STRING_AOE"] .. ")"}, --DK Howling Blast
|
||||
[228649] = {name = GetSpellInfo(228649) .. " (" .. L["STRING_PASSIVE"] .. ")"}, --Monk Mistweaver Blackout kick - Passive Teachings of the Monastery
|
||||
[339538] = {name = GetSpellInfo(224266) .. " (" .. L["STRING_TEMPLAR_VINDCATION"] .. ")"}, --
|
||||
[343355] = {name = GetSpellInfo(343355) .. " (" .. L["STRING_PROC"] .. ")"}, --shadow priest's void bold proc
|
||||
|
||||
--shadowlands trinkets
|
||||
[345020] = {name = GetSpellInfo(345020) .. " (" .. L["STRING_TRINKET"] .. ")"},
|
||||
}
|
||||
end
|
||||
|
||||
--interrupt list using proxy from cooldown list
|
||||
--this list should be expansion and combatlog safe
|
||||
LIB_OPEN_RAID_SPELL_INTERRUPT = {
|
||||
[6552] = LIB_OPEN_RAID_COOLDOWNS_INFO[6552], --Pummel
|
||||
|
||||
[2139] = LIB_OPEN_RAID_COOLDOWNS_INFO[2139], --Counterspell
|
||||
|
||||
[15487] = LIB_OPEN_RAID_COOLDOWNS_INFO[15487], --Silence (shadow) Last Word Talent to reduce cooldown in 15 seconds
|
||||
|
||||
[1766] = LIB_OPEN_RAID_COOLDOWNS_INFO[1766], --Kick
|
||||
|
||||
[96231] = LIB_OPEN_RAID_COOLDOWNS_INFO[96231], --Rebuke (protection and retribution)
|
||||
|
||||
[116705] = LIB_OPEN_RAID_COOLDOWNS_INFO[116705], --Spear Hand Strike (brewmaster and windwalker)
|
||||
|
||||
[57994] = LIB_OPEN_RAID_COOLDOWNS_INFO[57994], --Wind Shear
|
||||
|
||||
[47528] = LIB_OPEN_RAID_COOLDOWNS_INFO[47528], --Mind Freeze
|
||||
|
||||
[106839] = LIB_OPEN_RAID_COOLDOWNS_INFO[106839], --Skull Bash (feral, guardian)
|
||||
[78675] = LIB_OPEN_RAID_COOLDOWNS_INFO[78675], --Solar Beam (balance)
|
||||
|
||||
[147362] = LIB_OPEN_RAID_COOLDOWNS_INFO[147362], --Counter Shot (beast mastery, marksmanship)
|
||||
[187707] = LIB_OPEN_RAID_COOLDOWNS_INFO[187707], --Muzzle (survival)
|
||||
|
||||
[183752] = LIB_OPEN_RAID_COOLDOWNS_INFO[183752], --Disrupt
|
||||
|
||||
[19647] = LIB_OPEN_RAID_COOLDOWNS_INFO[19647], --Spell Lock (pet felhunter ability)
|
||||
[89766] = LIB_OPEN_RAID_COOLDOWNS_INFO[89766], --Axe Toss (pet felguard ability)
|
||||
}
|
||||
|
||||
--override list of spells with more than one effect, example: multiple types of polymorph
|
||||
LIB_OPEN_RAID_SPELL_DEFAULT_IDS = {
|
||||
--stampeding roar (druid)
|
||||
[106898] = 77761,
|
||||
[77764] = 77761, --"Uncategorized" on wowhead, need to test if still exists
|
||||
--spell lock (warlock pet)
|
||||
[119910] = 19647, --"Uncategorized" on wowhead
|
||||
[132409] = 19647, --"Uncategorized" on wowhead
|
||||
--[115781] = 19647, --optical blast used by old talent observer, still a thing?
|
||||
--[251523] = 19647, --wowhead list this spell as sibling spell
|
||||
--[251922] = 19647, --wowhead list this spell as sibling spell
|
||||
--axe toss (warlock pet)
|
||||
[119914] = 89766, --"Uncategorized" on wowhead
|
||||
[347008] = 89766, --"Uncategorized" on wowhead
|
||||
--hex (shaman)
|
||||
[210873] = 51514, --Compy
|
||||
[211004] = 51514, --Spider
|
||||
[211010] = 51514, --Snake
|
||||
[211015] = 51514, --Cockroach
|
||||
[269352] = 51514, --Skeletal Hatchling
|
||||
[277778] = 51514, --Zandalari Tendonripper
|
||||
[277784] = 51514, --Wicker Mongrel
|
||||
[309328] = 51514, --Living Honey
|
||||
--typhoon
|
||||
--[61391] = 132469,
|
||||
--metamorphosis
|
||||
[191427] = 200166,
|
||||
--187827 vengeance need to test these spellIds
|
||||
--191427 havoc
|
||||
}
|
||||
--need to add mass dispell (32375)
|
||||
|
||||
LIB_OPEN_RAID_DATABASE_LOADED = true
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,312 +0,0 @@
|
||||
local versionString, revision, launchDate, gameVersion = GetBuildInfo()
|
||||
if (gameVersion >= 20000) then
|
||||
return
|
||||
end
|
||||
|
||||
--localization
|
||||
local gameLanguage = GetLocale()
|
||||
|
||||
local L = { --default localization
|
||||
["STRING_EXPLOSION"] = "explosion",
|
||||
["STRING_MIRROR_IMAGE"] = "Mirror Image",
|
||||
["STRING_CRITICAL_ONLY"] = "critical",
|
||||
["STRING_BLOOM"] = "Bloom", --lifebloom 'bloom' healing
|
||||
["STRING_GLAIVE"] = "Glaive", --DH glaive toss
|
||||
["STRING_MAINTARGET"] = "Main Target",
|
||||
["STRING_AOE"] = "AoE", --multi targets
|
||||
["STRING_SHADOW"] = "Shadow", --the spell school 'shadow'
|
||||
["STRING_PHYSICAL"] = "Physical", --the spell school 'physical'
|
||||
["STRING_PASSIVE"] = "Passive", --passive spell
|
||||
["STRING_TEMPLAR_VINDCATION"] = "Templar's Vindication", --paladin spell
|
||||
["STRING_PROC"] = "proc", --spell proc
|
||||
["STRING_TRINKET"] = "Trinket", --trinket
|
||||
}
|
||||
|
||||
if (gameLanguage == "enUS") then
|
||||
--default language
|
||||
|
||||
elseif (gameLanguage == "deDE") then
|
||||
L["STRING_EXPLOSION"] = "Explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Bilder spiegeln"
|
||||
L["STRING_CRITICAL_ONLY"] = "kritisch"
|
||||
|
||||
elseif (gameLanguage == "esES") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "esMX") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "frFR") then
|
||||
L["STRING_EXPLOSION"] = "explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Effet miroir"
|
||||
L["STRING_CRITICAL_ONLY"] = "critique"
|
||||
|
||||
elseif (gameLanguage == "itIT") then
|
||||
L["STRING_EXPLOSION"] = "esplosione"
|
||||
L["STRING_MIRROR_IMAGE"] = "Immagine Speculare"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "koKR") then
|
||||
L["STRING_EXPLOSION"] = "폭발"
|
||||
L["STRING_MIRROR_IMAGE"] = "미러 이미지"
|
||||
L["STRING_CRITICAL_ONLY"] = "치명타"
|
||||
|
||||
elseif (gameLanguage == "ptBR") then
|
||||
L["STRING_EXPLOSION"] = "explosão"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagem Espelhada"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "ruRU") then
|
||||
L["STRING_EXPLOSION"] = "взрыв"
|
||||
L["STRING_MIRROR_IMAGE"] = "Зеркальное изображение"
|
||||
L["STRING_CRITICAL_ONLY"] = "критический"
|
||||
|
||||
elseif (gameLanguage == "zhCN") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "镜像"
|
||||
L["STRING_CRITICAL_ONLY"] = "爆击"
|
||||
|
||||
elseif (gameLanguage == "zhTW") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "鏡像"
|
||||
L["STRING_CRITICAL_ONLY"] = "致命"
|
||||
end
|
||||
|
||||
LIB_OPEN_RAID_MANA_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {} --default
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {} --default
|
||||
|
||||
LIB_OPEN_RAID_BLOODLUST = {
|
||||
}
|
||||
|
||||
--which gear slots can be enchanted on the latest retail version of the game
|
||||
--when the value is a number, the slot only receives enchants for a specific attribute
|
||||
LIB_OPEN_RAID_ENCHANT_SLOTS = {
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MYTHICKEYSTONE_ITEMID = 180653
|
||||
LIB_OPEN_RAID_AUGMENTATED_RUNE = 0
|
||||
|
||||
LIB_OPEN_RAID_COVENANT_ICONS = {}
|
||||
|
||||
LIB_OPEN_RAID_ENCHANT_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_GEM_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_WEAPON_ENCHANT_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {}
|
||||
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {}
|
||||
|
||||
LIB_OPEN_RAID_ALL_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_HEALING_POTIONS = {
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MELEE_SPECS = {
|
||||
[251] = "DEATHKNIGHT",
|
||||
[252] = "DEATHKNIGHT",
|
||||
[577] = "DEMONHUNTER",
|
||||
[103] = "DRUID",
|
||||
--[255] = "Survival", --not in the list due to the long interrupt time
|
||||
[269] = "MONK",
|
||||
[70] = "PALADIN",
|
||||
[259] = "ROGUE",
|
||||
[260] = "ROGUE",
|
||||
[261] = "ROGUE",
|
||||
[263] = "SHAMAN",
|
||||
[71] = "WARRIOR",
|
||||
[72] = "WARRIOR",
|
||||
}
|
||||
|
||||
--tells the duration, requirements and cooldown
|
||||
--information about a cooldown is mainly get from tooltips
|
||||
--if talent is required, use the command:
|
||||
--/dump GetTalentInfo (talentTier, talentColumn, 1)
|
||||
--example: to get the second talent of the last talent line, use: /dump GetTalentInfo (7, 2, 1)
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {};
|
||||
for spellID,spellData in pairs(LIB_OPEN_RAID_COOLDOWNS_INFO) do
|
||||
for _,specID in ipairs(spellData.specs) do
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] = LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] or {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID][spellID] = spellData.type;
|
||||
end
|
||||
end
|
||||
|
||||
-- DF Evoker
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1467] = {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1468] = {};
|
||||
|
||||
--[=[
|
||||
Spell customizations:
|
||||
Many times there's spells with the same name which does different effects
|
||||
In here you find a list of spells which has its name changed to give more information to the player
|
||||
you may add into the list any other parameter your addon uses declaring for example 'icon = ' or 'texcoord = ' etc.
|
||||
|
||||
Implamentation Example:
|
||||
if (LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) then
|
||||
for spellId, customTable in pairs(LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) do
|
||||
local name = customTable.name
|
||||
if (name) then
|
||||
MyCustomSpellTable[spellId] = name
|
||||
end
|
||||
end
|
||||
end
|
||||
--]=]
|
||||
|
||||
--list of all crowd control spells
|
||||
--it is not transmitted to other clients
|
||||
LIB_OPEN_RAID_CROWDCONTROL = { --copied from retail
|
||||
[331866] = {cooldown = 0, class = "COVENANT|VENTHYR"}, --Agent of Chaos
|
||||
[334693] = {cooldown = 0, class = "DEAHTKNIGHT"}, --Absolute Zero
|
||||
[221562] = {cooldown = 45, class = "DEATHKNIGHT"}, --Asphyxiate
|
||||
[47528] = {cooldown = 15, class = "DEATHKNIGHT"}, --Mind Freeze
|
||||
[207167] = {cooldown = 60, class = "DEATHKNIGHT"}, --Blinding Sleet
|
||||
[91807] = {cooldown = 0, class = "DEATHKNIGHT"}, --Shambling Rush
|
||||
[108194] = {cooldown = 45, class = "DEATHKNIGHT"}, --Asphyxiate
|
||||
[211881] = {cooldown = 30, class = "DEMONHUNTER"}, --Fel Eruption
|
||||
[200166] = {cooldown = 0, class = "DEMONHUNTER"}, --Metamorphosis
|
||||
[217832] = {cooldown = 45, class = "DEMONHUNTER"}, --Imprison
|
||||
[183752] = {cooldown = 15, class = "DEMONHUNTER"}, --Disrupt
|
||||
[207685] = {cooldown = 0, class = "DEMONHUNTER"}, --Sigil of Misery
|
||||
[179057] = {cooldown = 45, class = "DEMONHUNTER"}, --Chaos Nova
|
||||
[221527] = {cooldown = 45, class = "DEMONHUNTER"}, --Imprison with detainment talent
|
||||
[339] = {cooldown = 0, class = "DRUID"}, --Entangling Roots
|
||||
[102359] = {cooldown = 30, class = "DRUID"}, --Mass Entanglement
|
||||
[93985] = {cooldown = 0, class = "DRUID"}, --Skull Bash
|
||||
[2637] = {cooldown = 0, class = "DRUID"}, --Hibernate
|
||||
[5211] = {cooldown = 60, class = "DRUID"}, --Mighty Bash
|
||||
[99] = {cooldown = 30, class = "DRUID"}, --Incapacitating Roar
|
||||
[127797] = {cooldown = 0, class = "DRUID"}, --Ursol's Vortex
|
||||
[203123] = {cooldown = 0, class = "DRUID"}, --Maim
|
||||
[45334] = {cooldown = 0, class = "DRUID"}, --Immobilized
|
||||
[33786] = {cooldown = 0, class = "DRUID"}, --Cyclone
|
||||
[236748] = {cooldown = 30, class = "DRUID"}, --Intimidating Roar
|
||||
[61391] = {cooldown = 0, class = "DRUID"}, --Typhoon
|
||||
[163505] = {cooldown = 0, class = "DRUID"}, --Rake
|
||||
[50259] = {cooldown = 0, class = "DRUID"}, --Dazed
|
||||
[372245] = {cooldown = 0, class = "EVOKER"}, --Terror of the Skies
|
||||
[360806] = {cooldown = 15, class = "EVOKER"}, --Sleep Walk
|
||||
[162480] = {cooldown = 0, class = "HUNTER"}, --Steel Trap
|
||||
[187707] = {cooldown = 15, class = "HUNTER"}, --Muzzle
|
||||
[147362] = {cooldown = 24, class = "HUNTER"}, --Counter Shot
|
||||
[190927] = {cooldown = 6, class = "HUNTER"}, --Harpoon
|
||||
[117526] = {cooldown = 45, class = "HUNTER"}, --Binding Shot
|
||||
[24394] = {cooldown = 0, class = "HUNTER"}, --Intimidation
|
||||
[117405] = {cooldown = 0, class = "HUNTER"}, --Binding Shot
|
||||
[19577] = {cooldown = 60, class = "HUNTER"}, --Intimidation
|
||||
[1513] = {cooldown = 0, class = "HUNTER"}, --Scare Beast
|
||||
[3355] = {cooldown = 30, class = "HUNTER"}, --Freezing Trap
|
||||
[203337] = {cooldown = 30, class = "HUNTER"}, --Freezing trap with diamond ice talent
|
||||
[31661] = {cooldown = 45, class = "MAGE"}, --Dragon's Breath
|
||||
[161353] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[277787] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[157981] = {cooldown = 30, class = "MAGE"}, --Blast Wave
|
||||
[82691] = {cooldown = 0, class = "MAGE"}, --Ring of Frost
|
||||
[118] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[161354] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[157997] = {cooldown = 25, class = "MAGE"}, --Ice Nova
|
||||
[391622] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[28271] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[122] = {cooldown = 0, class = "MAGE"}, --Frost Nova
|
||||
[277792] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[61721] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[126819] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[61305] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[28272] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[2139] = {cooldown = 24, class = "MAGE"}, --Counterspell
|
||||
[198909] = {cooldown = 0, class = "MONK"}, --Song of Chi-Ji
|
||||
[119381] = {cooldown = 60, class = "MONK"}, --Leg Sweep
|
||||
[107079] = {cooldown = 120, class = "MONK"}, --Quaking Palm
|
||||
[116706] = {cooldown = 0, class = "MONK"}, --Disable
|
||||
[115078] = {cooldown = 45, class = "MONK"}, --Paralysis
|
||||
[116705] = {cooldown = 15, class = "MONK"}, --Spear Hand Strike
|
||||
[31935] = {cooldown = 15, class = "PALADIN"}, --Avenger's Shield
|
||||
[20066] = {cooldown = 15, class = "PALADIN"}, --Repentance
|
||||
[217824] = {cooldown = 0, class = "PALADIN"}, --Shield of Virtue
|
||||
[105421] = {cooldown = 0, class = "PALADIN"}, --Blinding Light
|
||||
[10326] = {cooldown = 15, class = "PALADIN"}, --Turn Evil
|
||||
[853] = {cooldown = 60, class = "PALADIN"}, --Hammer of Justice
|
||||
[96231] = {cooldown = 15, class = "PALADIN"}, --Rebuke
|
||||
[205364] = {cooldown = 30, class = "PRIEST"}, --Dominate Mind
|
||||
[64044] = {cooldown = 45, class = "PRIEST"}, --Psychic Horror
|
||||
[226943] = {cooldown = 0, class = "PRIEST"}, --Mind Bomb
|
||||
[15487] = {cooldown = 45, class = "PRIEST"}, --Silence
|
||||
[605] = {cooldown = 0, class = "PRIEST"}, --Mind Control
|
||||
[8122] = {cooldown = 45, class = "PRIEST"}, --Psychic Scream
|
||||
[200200] = {cooldown = 60, class = "PRIEST"}, --Holy Word: Chastise
|
||||
[9484] = {cooldown = 0, class = "PRIEST"}, --Shackle Undead
|
||||
[200196] = {cooldown = 60, class = "PRIEST"}, --Holy Word: Chastise
|
||||
[6770] = {cooldown = 0, class = "ROGUE"}, --Sap
|
||||
[2094] = {cooldown = 120, class = "ROGUE"}, --Blind
|
||||
[1766] = {cooldown = 15, class = "ROGUE"}, --Kick
|
||||
[427773] = {cooldown = 0, class = "ROGUE"}, --Blind
|
||||
[408] = {cooldown = 20, class = "ROGUE"}, --Kidney Shot
|
||||
[1776] = {cooldown = 20, class = "ROGUE"}, --Gouge
|
||||
[1833] = {cooldown = 0, class = "ROGUE"}, --Cheap Shot
|
||||
[211015] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[269352] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[277778] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[64695] = {cooldown = 0, class = "SHAMAN"}, --Earthgrab
|
||||
[57994] = {cooldown = 12, class = "SHAMAN"}, --Wind Shear
|
||||
[197214] = {cooldown = 40, class = "SHAMAN"}, --Sundering
|
||||
[118905] = {cooldown = 0, class = "SHAMAN"}, --Static Charge
|
||||
[277784] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[309328] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[211010] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[210873] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[211004] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[51514] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[305485] = {cooldown = 30, class = "SHAMAN"}, --Lightning Lasso
|
||||
[89766] = {cooldown = 30, class = "WARLOCK"}, --Axe Toss (pet felguard ability)
|
||||
[6789] = {cooldown = 45, class = "WARLOCK"}, --Mortal Coil
|
||||
[118699] = {cooldown = 0, class = "WARLOCK"}, --Fear
|
||||
[710] = {cooldown = 0, class = "WARLOCK"}, --Banish
|
||||
[212619] = {cooldown = 60, class = "WARLOCK"}, --Call Felhunter
|
||||
[19647] = {cooldown = 24, class = "WARLOCK"}, --Spell Lock
|
||||
[30283] = {cooldown = 60, class = "WARLOCK"}, --Shadowfury
|
||||
[5484] = {cooldown = 40, class = "WARLOCK"}, --Howl of Terror
|
||||
[6552] = {cooldown = 15, class = "WARRIOR"}, --Pummel
|
||||
[132168] = {cooldown = 0, class = "WARRIOR"}, --Shockwave
|
||||
[132169] = {cooldown = 0, class = "WARRIOR"}, --Storm Bolt
|
||||
[5246] = {cooldown = 90, class = "WARRIOR"}, --Intimidating Shout
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {} --default fallback
|
||||
|
||||
if (GetBuildInfo():match ("%d") == "1") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "2") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "3") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
else
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {
|
||||
|
||||
}
|
||||
end
|
||||
|
||||
--interrupt list using proxy from cooldown list
|
||||
--this list should be expansion and combatlog safe
|
||||
LIB_OPEN_RAID_SPELL_INTERRUPT = {
|
||||
}
|
||||
|
||||
--override list of spells with more than one effect, example: multiple types of polymorph
|
||||
LIB_OPEN_RAID_SPELL_DEFAULT_IDS = {
|
||||
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_DATABASE_LOADED = true
|
||||
@@ -1,679 +0,0 @@
|
||||
|
||||
--data for shadowlands expansion
|
||||
|
||||
local versionString, revision, launchDate, gameVersion = GetBuildInfo()
|
||||
if (gameVersion >= 100000 or gameVersion < 90000) then
|
||||
return
|
||||
end
|
||||
|
||||
--localization
|
||||
local gameLanguage = GetLocale()
|
||||
|
||||
local L = { --default localization
|
||||
["STRING_EXPLOSION"] = "explosion",
|
||||
["STRING_MIRROR_IMAGE"] = "Mirror Image",
|
||||
["STRING_CRITICAL_ONLY"] = "critical",
|
||||
["STRING_BLOOM"] = "Bloom", --lifebloom 'bloom' healing
|
||||
["STRING_GLAIVE"] = "Glaive", --DH glaive toss
|
||||
["STRING_MAINTARGET"] = "Main Target",
|
||||
["STRING_AOE"] = "AoE", --multi targets
|
||||
["STRING_SHADOW"] = "Shadow", --the spell school 'shadow'
|
||||
["STRING_PHYSICAL"] = "Physical", --the spell school 'physical'
|
||||
["STRING_PASSIVE"] = "Passive", --passive spell
|
||||
["STRING_TEMPLAR_VINDCATION"] = "Templar's Vindication", --paladin spell
|
||||
["STRING_PROC"] = "proc", --spell proc
|
||||
["STRING_TRINKET"] = "Trinket", --trinket
|
||||
}
|
||||
|
||||
if (gameLanguage == "enUS") then
|
||||
--default language
|
||||
|
||||
elseif (gameLanguage == "deDE") then
|
||||
L["STRING_EXPLOSION"] = "Explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Bilder spiegeln"
|
||||
L["STRING_CRITICAL_ONLY"] = "kritisch"
|
||||
|
||||
elseif (gameLanguage == "esES") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "esMX") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "frFR") then
|
||||
L["STRING_EXPLOSION"] = "explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Effet miroir"
|
||||
L["STRING_CRITICAL_ONLY"] = "critique"
|
||||
|
||||
elseif (gameLanguage == "itIT") then
|
||||
L["STRING_EXPLOSION"] = "esplosione"
|
||||
L["STRING_MIRROR_IMAGE"] = "Immagine Speculare"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "koKR") then
|
||||
L["STRING_EXPLOSION"] = "폭발"
|
||||
L["STRING_MIRROR_IMAGE"] = "미러 이미지"
|
||||
L["STRING_CRITICAL_ONLY"] = "치명타"
|
||||
|
||||
elseif (gameLanguage == "ptBR") then
|
||||
L["STRING_EXPLOSION"] = "explosão"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagem Espelhada"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "ruRU") then
|
||||
L["STRING_EXPLOSION"] = "взрыв"
|
||||
L["STRING_MIRROR_IMAGE"] = "Зеркальное изображение"
|
||||
L["STRING_CRITICAL_ONLY"] = "критический"
|
||||
|
||||
elseif (gameLanguage == "zhCN") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "镜像"
|
||||
L["STRING_CRITICAL_ONLY"] = "爆击"
|
||||
|
||||
elseif (gameLanguage == "zhTW") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "鏡像"
|
||||
L["STRING_CRITICAL_ONLY"] = "致命"
|
||||
end
|
||||
|
||||
LIB_OPEN_RAID_MANA_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_BLOODLUST = {
|
||||
[2825] = true, --bloodlust
|
||||
[32182] = true, --heroism
|
||||
[80353] = true, --timewarp
|
||||
[90355] = true, --ancient hysteria
|
||||
[309658] = true, --current exp drums
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MYTHICKEYSTONE_ITEMID = 180653
|
||||
LIB_OPEN_RAID_AUGMENTATED_RUNE = 347901
|
||||
|
||||
LIB_OPEN_RAID_COVENANT_ICONS = {
|
||||
[[Interface\ICONS\UI_Sigil_Kyrian]], --kyrian
|
||||
[[Interface\ICONS\UI_Sigil_Venthyr]], --venthyr
|
||||
[[Interface\ICONS\UI_Sigil_NightFae]], --nightfae
|
||||
[[Interface\ICONS\UI_Sigil_Necrolord]], --necrolords
|
||||
}
|
||||
|
||||
--which gear slots can be enchanted on the latest retail version of the game
|
||||
--when the value is a number, the slot only receives enchants for a specific attribute
|
||||
LIB_OPEN_RAID_ENCHANT_SLOTS = {
|
||||
--[INVSLOT_NECK] = true,
|
||||
[INVSLOT_BACK] = true, --for all
|
||||
[INVSLOT_CHEST] = true, --for all
|
||||
[INVSLOT_FINGER1] = true, --for all
|
||||
[INVSLOT_FINGER2] = true, --for all
|
||||
[INVSLOT_MAINHAND] = true, --for all
|
||||
|
||||
[INVSLOT_FEET] = 2, --agility only
|
||||
[INVSLOT_WRIST] = 1, --intellect only
|
||||
[INVSLOT_HAND] = 3, --strenth only
|
||||
}
|
||||
|
||||
-- how to get the enchantId:
|
||||
-- local itemLink = GetInventoryItemLink("player", slotId)
|
||||
-- local enchandId = select(3, strsplit(":", itemLink))
|
||||
-- print("enchantId:", enchandId)
|
||||
LIB_OPEN_RAID_ENCHANT_IDS = {
|
||||
--FEET
|
||||
--[6207] = INVSLOT_FEET, --[Enchant Boots - Speed of Soul]
|
||||
[6211] = INVSLOT_FEET, --[Enchant Boots - Eternal Agility] + 15 agi
|
||||
[6212] = INVSLOT_FEET, --[Enchant Boots - Agile Soulwalker] + 10 agi
|
||||
|
||||
--WRIST
|
||||
--[6222] = INVSLOT_WRIST, [Enchant Bracers - Shaded Hearthing]
|
||||
[6219] = INVSLOT_WRIST, --[Enchant Bracers - Illuminated Soul] + 10 int
|
||||
[6220] = INVSLOT_WRIST, --[Enchant Bracers - Eternal Intellect] + 15 int
|
||||
|
||||
--HAND
|
||||
--[6205] = INVSLOT_HAND, --[Enchant Gloves - Shadowlands Gathering]
|
||||
[6209] = INVSLOT_HAND, --[Enchant Gloves - Strength of Soul] +10 str
|
||||
[6210] = INVSLOT_HAND, --[Enchant Gloves - Eternal Strength] +15 str
|
||||
|
||||
--FINGER
|
||||
[6164] = INVSLOT_FINGER1, --[Enchant Ring - Tenet of Critical Strike] +16
|
||||
[6166] = INVSLOT_FINGER1, --[Enchant Ring - Tenet of Haste] +16
|
||||
[6168] = INVSLOT_FINGER1, --[Enchant Ring - Tenet of Mastery] +16
|
||||
[6170] = INVSLOT_FINGER1, --[Enchant Ring - Tenet of Versatility] +16
|
||||
|
||||
--BACK
|
||||
[6202] = INVSLOT_BACK, --[Enchant Cloak - Fortified Speed] +20 stam +30 speed
|
||||
[6203] = INVSLOT_BACK, --[Enchant Cloak - Fortified Avoidance] +20 stam +30 avoidance
|
||||
[6204] = INVSLOT_BACK, --[Enchant Cloak - Fortified Leech]
|
||||
[6208] = INVSLOT_BACK, --[Enchant Cloak - Soul Vitality]
|
||||
|
||||
--CHEST
|
||||
[6213] = INVSLOT_CHEST, --[Enchant Chest - Eternal Bulwark] +25 armor +20 agi or str
|
||||
[6214] = INVSLOT_CHEST, --[Enchant Chest - Eternal Skirmish] +20 agi or str +more white damage
|
||||
[6217] = INVSLOT_CHEST, --[Enchant Chest - Eternal Bounds] +20 int + 6% mana
|
||||
[6216] = INVSLOT_CHEST, --[Enchant Chest - Sacred Stats] +20 all stats
|
||||
[6230] = INVSLOT_CHEST, --[Enchant Chest - Eternal Stats] +30 all stats
|
||||
|
||||
--MAINHAND
|
||||
[6223] = INVSLOT_MAINHAND, --[Enchant Weapon - Lightless Force] + shadow wave damage
|
||||
[6226] = INVSLOT_MAINHAND, --[Enchant Weapon - Eternal Grace] + burst of healing done
|
||||
[6227] = INVSLOT_MAINHAND, --[Enchant Weapon - Ascended Vigor] + healing received increased
|
||||
[6228] = INVSLOT_MAINHAND, --[Enchant Weapon - Sinful Revelation] + 6% bleed damage
|
||||
[6229] = INVSLOT_MAINHAND, --[Enchant Weapon - Celestial Guidance] + 5% agility
|
||||
[6243] = INVSLOT_MAINHAND, --[Runeforging: Rune of Hysteria]
|
||||
[3370] = INVSLOT_MAINHAND, --[Runeforging: Rune of Razorice]
|
||||
[6241] = INVSLOT_MAINHAND, --[Runeforging: Rune of Sanguination]
|
||||
[6242] = INVSLOT_MAINHAND, --[Runeforging: Rune of Spellwarding]
|
||||
[6245] = INVSLOT_MAINHAND, --[Runeforging: Rune of the Apocalypse]
|
||||
[3368] = INVSLOT_MAINHAND, --[Runeforging: Rune of the Fallen Crusader]
|
||||
[3847] = INVSLOT_MAINHAND, --[Runeforging: Rune of the Stoneskin Gargoyle]
|
||||
[6244] = INVSLOT_MAINHAND, --[Runeforging: Rune of Unending Thirst]
|
||||
}
|
||||
|
||||
-- how to get the gemId:
|
||||
-- local itemLink = GetInventoryItemLink("player", slotId)
|
||||
-- local gemId = select(4, strsplit(":", itemLink))
|
||||
-- print("gemId:", gemId)
|
||||
LIB_OPEN_RAID_GEM_IDS = {
|
||||
[173126] = true, --Straddling Jewel Doublet (green, +12 speed)
|
||||
[173125] = true, --Revitalizing Jewel Doublet (green, +100 health)
|
||||
[173130] = true, --Masterful Jewel Cluster (blue, master)
|
||||
[173129] = true, --Versatile Jewel Cluster (blue, versatility)
|
||||
[173127] = true, --Deadly Jewel Cluster (blue, crit)
|
||||
[173128] = true, --Quick Jewel Cluster (blue, haste)
|
||||
[168636] = true, --Leviathan's Eye of Strength (purple, strength)
|
||||
[168638] = true, --Leviathan's Eye of Intellect (purple, intellect)
|
||||
[169220] = true, --Straddling Sage Agate (blue, movement speed)
|
||||
}
|
||||
|
||||
--/dump GetWeaponEnchantInfo()
|
||||
LIB_OPEN_RAID_WEAPON_ENCHANT_IDS = {
|
||||
[6188] = true, --shadowcore oil
|
||||
[6190] = true, --embalmer's oil
|
||||
[6201] = true, --weighted
|
||||
[6200] = true, --sharpened
|
||||
[5400] = true, --flametongue
|
||||
[5401] = true, --windfury
|
||||
}
|
||||
|
||||
--buff spellId, the value of the food is the tier level
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {
|
||||
[259454] = 1, --(agility) Feast of Gluttonous Hedonism
|
||||
[308434] = 1, --(critical) Phantasmal Souffle and Fries
|
||||
[308397] = 1, --(critical +18) Butterscotch Marinated Ribs
|
||||
[308400] = 1, --(critical +30) Spinefin Souffle and Fries
|
||||
[308488] = 1, --(haste) Tenebrous Crown Roast Aspic
|
||||
[308404] = 1, --(haste +18) Cinnamon Bonefish Stew
|
||||
[308405] = 1, --(haste +30) Tenebrous Crown Roast Aspic
|
||||
[308506] = 1, --(mastery) Crawler Ravioli with Apple Sauce
|
||||
[308412] = 1, --(mastery +18) Meaty Apple Dumplings
|
||||
[308413] = 1, --(mastery +30) Iridescent Ravioli with Apple Sauce
|
||||
[308525] = 1, --(stamina) Banana Beef Pudding
|
||||
[308414] = 1, --(stamina +14) Pickled Meat Smoothie
|
||||
[308415] = 1, --(stamina +22) Banana Beef Pudding
|
||||
[308514] = 1, --(versatility) Steak a la Mode
|
||||
[308425] = 1, --(versatility +18) Sweet Silvergill Sausages
|
||||
[308426] = 1, --(versatility +30) Steak a la Mode
|
||||
[308419] = 1, --(periodicaly damage) Smothered Shank
|
||||
[327715] = 1, --(speed) Fried Bonefish
|
||||
|
||||
--feasts
|
||||
[327706] = 2, --strength +20
|
||||
[327707] = 2, --stamina +20
|
||||
[327708] = 2, --intellect +20
|
||||
[327709] = 2, --agility +20
|
||||
[327704] = 2, --intellect +18
|
||||
[327701] = 2, --strength +18
|
||||
[327705] = 2, --agility +18
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {
|
||||
[307185] = true, --Spectral Flask of Power
|
||||
[307187] = true, --Spectral Stamina Flask
|
||||
[307166] = true, --Eternal Flask
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MELEE_SPECS = {
|
||||
[251] = "DEATHKNIGHT",
|
||||
[252] = "DEATHKNIGHT",
|
||||
[577] = "DEMONHUNTER",
|
||||
[103] = "DRUID",
|
||||
--[255] = "Survival", --not in the list due to the long interrupt time
|
||||
[269] = "MONK",
|
||||
[70] = "PALADIN",
|
||||
[259] = "ROGUE",
|
||||
[260] = "ROGUE",
|
||||
[261] = "ROGUE",
|
||||
[263] = "SHAMAN",
|
||||
[71] = "WARRIOR",
|
||||
[72] = "WARRIOR",
|
||||
}
|
||||
|
||||
--tells the duration, requirements and cooldown
|
||||
--information about a cooldown is mainly get from tooltips
|
||||
--if talent is required, use the command:
|
||||
--/dump GetTalentInfo (talentTier, talentColumn, 1)
|
||||
--example: to get the second talent of the last talent line, use: /dump GetTalentInfo (7, 2, 1)
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
|
||||
-- Filter Types:
|
||||
-- 1 attack cooldown
|
||||
-- 2 personal defensive cooldown
|
||||
-- 3 targetted defensive cooldown
|
||||
-- 4 raid defensive cooldown
|
||||
-- 5 personal utility cooldown
|
||||
-- 6 interrupt
|
||||
|
||||
--interrupts
|
||||
[6552] = {class = "WARRIOR", specs = {71, 72, 73}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Pummel
|
||||
[2139] = {class = "MAGE", specs = {62, 63, 64}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Counterspell
|
||||
[15487] = {class = "PRIEST", specs = {258}, cooldown = 45, silence = 4, talent = false, cooldownWithTalent = 30, cooldownTalentId = 23137, type = 6, charges = 1}, --Silence (shadow) Last Word Talent to reduce cooldown in 15 seconds
|
||||
[1766] = {class = "ROGUE", specs = {259, 260, 261}, cooldown = 15, silence = 5, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Kick
|
||||
[96231] = {class = "PALADIN", specs = {66, 70}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Rebuke (protection and retribution)
|
||||
[116705] = {class = "MONK", specs = {268, 269}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Spear Hand Strike (brewmaster and windwalker)
|
||||
[57994] = {class = "SHAMAN", specs = {262, 263, 264}, cooldown = 12, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Wind Shear
|
||||
[47528] = {class = "DEATHKNIGHT", specs = {250, 251, 252}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Mind Freeze
|
||||
[106839] = {class = "DRUID", specs = {103, 104}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Skull Bash (feral, guardian)
|
||||
[78675] = {class = "DRUID", specs = {102}, cooldown = 60, silence = 8, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Solar Beam (balance)
|
||||
[147362] = {class = "HUNTER", specs = {253, 254}, cooldown = 24, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Counter Shot (beast mastery, marksmanship)
|
||||
[187707] = {class = "HUNTER", specs = {255}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Muzzle (survival)
|
||||
[183752] = {class = "DEMONHUNTER", specs = {577, 581}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Disrupt
|
||||
[19647] = {class = "WARLOCK", specs = {265, 266, 267}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 417, type = 6, charges = 1}, --Spell Lock (pet felhunter ability)
|
||||
[89766] = {class = "WARLOCK", specs = {266}, cooldown = 30, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 17252, type = 6, charges = 1}, --Axe Toss (pet felguard ability)
|
||||
|
||||
--paladin
|
||||
-- 65 - Holy
|
||||
-- 66 - Protection
|
||||
-- 70 - Retribution
|
||||
|
||||
[31884] = {cooldown = 120, duration = 20, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 1}, --Avenging Wrath
|
||||
[216331] = {cooldown = 120, duration = 20, specs = {65}, talent =22190, charges = 1, class = "PALADIN", type = 1}, --Avenging Crusader (talent)
|
||||
[498] = {cooldown = 60, duration = 8, specs = {65}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Divine Protection
|
||||
[642] = {cooldown = 300, duration = 8, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Divine Shield
|
||||
[105809] = {cooldown = 90, duration = 20, specs = {65,66,70}, talent =22164, charges = 1, class = "PALADIN", type = 2}, --Holy Avenger (talent)
|
||||
[152262] = {cooldown = 45, duration = 15, specs = {65,66,70}, talent =17601, charges = 1, class = "PALADIN", type = 2}, --Seraphim
|
||||
[633] = {cooldown = 600, duration = false, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Lay on Hands
|
||||
[1022] = {cooldown = 300, duration = 10, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Protection
|
||||
[6940] = {cooldown = 120, duration = 12, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Sacrifice
|
||||
[31821] = {cooldown = 180, duration = 8, specs = {65}, talent =false, charges = 1, class = "PALADIN", type = 4}, --Aura Mastery
|
||||
[1044] = {cooldown = 25, duration = 8, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 5}, --Blessing of Freedom
|
||||
[853] = {cooldown = 60, duration = 6, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 5}, --Hammer of Justice
|
||||
[115750] = {cooldown = 90, duration = 6, specs = {65,66,70}, talent =21811, charges = 1, class = "PALADIN", type = 5}, --Blinding Light(talent)
|
||||
[327193] = {cooldown = 90, duration = 15, specs = {66}, talent =23468, charges = 1, class = "PALADIN", type = 1}, --Moment of Glory (talent)
|
||||
[31850] = {cooldown = 120, duration = 8, specs = {66}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Ardent Defender
|
||||
[86659] = {cooldown = 300, duration = 8, specs = {66}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Guardian of Ancient Kings
|
||||
[204018] = {cooldown = 180, duration = 10, specs = {66}, talent =22435, charges = 1, class = "PALADIN", type = 3}, --Blessing of Spellwarding (talent)
|
||||
[231895] = {cooldown = 120, duration = 25, specs = {70}, talent =22215, charges = 1, class = "PALADIN", type = 1}, --Crusade (talent)
|
||||
[205191] = {cooldown = 60, duration = 10, specs = {70}, talent =22183, charges = 1, class = "PALADIN", type = 2}, --Eye for an Eye (talent)
|
||||
[184662] = {cooldown = 120, duration = 15, specs = {70}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Shield of Vengeance
|
||||
|
||||
--warrior
|
||||
-- 71 - Arms
|
||||
-- 72 - Fury
|
||||
-- 73 - Protection
|
||||
|
||||
[107574] = {cooldown = 90, duration = 20, specs = {71,73}, talent =22397, charges = 1, class = "WARRIOR", type = 1}, --Avatar
|
||||
[227847] = {cooldown = 90, duration = 5, specs = {71}, talent =false, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm
|
||||
[46924] = {cooldown = 60, duration = 4, specs = {72}, talent =22400, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm (talent)
|
||||
[152277] = {cooldown = 60, duration = 6, specs = {71}, talent =21667, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[228920] = {cooldown = 60, duration = 6, specs = {73}, talent =23099, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[118038] = {cooldown = 180, duration = 8, specs = {71}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Die by the Sword
|
||||
[97462] = {cooldown = 180, duration = 10, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 4}, --Rallying Cry
|
||||
[1719] = {cooldown = 90, duration = 10, specs = {72}, talent =false, charges = 1, class = "WARRIOR", type = 1}, --Recklessness
|
||||
[184364] = {cooldown = 120, duration = 8, specs = {72}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Enraged Regeneration
|
||||
[12975] = {cooldown = 180, duration = 15, specs = {73}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Last Stand
|
||||
[871] = {cooldown = 8, duration = 240, specs = {73}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Shield Wall
|
||||
[64382] = {cooldown = 180, duration = false, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 5}, --Shattering Throw
|
||||
[5246] = {cooldown = 90, duration = 8, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 5}, --Intimidating Shout
|
||||
|
||||
--warlock
|
||||
-- 265 - Affliction
|
||||
-- 266 - Demonology
|
||||
-- 267 - Destruction
|
||||
|
||||
[205180] = {cooldown = 180, duration = 20, specs = {265}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Darkglare
|
||||
--[342601] = {cooldown = 3600, duration = false, specs = {}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Ritual of Doom
|
||||
[113860] = {cooldown = 120, duration = 20, specs = {265}, talent =19293, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Misery (talent)
|
||||
[104773] = {cooldown = 180, duration = 8, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 2}, --Unending Resolve
|
||||
[108416] = {cooldown = 60, duration = 20, specs = {265,266,267}, talent =19286, charges = 1, class = "WARLOCK", type = 2}, --Dark Pact (talent)
|
||||
[265187] = {cooldown = 90, duration = 15, specs = {266}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Demonic Tyrant
|
||||
[111898] = {cooldown = 120, duration = 15, specs = {266}, talent =21717, charges = 1, class = "WARLOCK", type = 1}, --Grimoire: Felguard (talent)
|
||||
[267171] = {cooldown = 60, duration = false, specs = {266}, talent =23138, charges = 1, class = "WARLOCK", type = 1}, --Demonic Strength (talent)
|
||||
[267217] = {cooldown = 180, duration = 20, specs = {266}, talent =23091, charges = 1, class = "WARLOCK", type = 1}, --Nether Portal
|
||||
[1122] = {cooldown = 180, duration = 30, specs = {267}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Infernal
|
||||
[113858] = {cooldown = 120, duration = 20, specs = {267}, talent =23092, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Instability (talent)
|
||||
[30283] = {cooldown = 60, duration = 3, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 5}, --Shadowfury
|
||||
[333889] = {cooldown = 180, duration = 15, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 5}, --Fel Domination
|
||||
[5484] = {cooldown = 40, duration = 20, specs = {265,266,267}, talent =23465, charges = 1, class = "WARLOCK", type = 5}, --Howl of Terror (talent)
|
||||
|
||||
--shaman
|
||||
-- 262 - Elemental
|
||||
-- 263 - Enchancment
|
||||
-- 264 - Restoration
|
||||
|
||||
[198067] = {cooldown = 150, duration = 30, specs = {262}, talent =false, charges = 1, class = "SHAMAN", type = 1}, --Fire Elemental
|
||||
[192249] = {cooldown = 150, duration = 30, specs = {262}, talent =19272, charges = 1, class = "SHAMAN", type = 1}, --Storm Elemental (talent)
|
||||
[108271] = {cooldown = 90, duration = 8, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 2}, --Astral Shift
|
||||
[108281] = {cooldown = 120, duration = 10, specs = {262,263}, talent =22172, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Guidance (talent)
|
||||
[51533] = {cooldown = 120, duration = 15, specs = {263}, talent =false, charges = 1, class = "SHAMAN", type = 1}, --Feral Spirit
|
||||
[114050] = {cooldown = 180, duration = 15, specs = {262}, talent =21675, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114051] = {cooldown = 180, duration = 15, specs = {263}, talent =21972, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114052] = {cooldown = 180, duration = 15, specs = {264}, talent =22359, charges = 1, class = "SHAMAN", type = 4}, --Ascendance (talent)
|
||||
[98008] = {cooldown = 180, duration = 6, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Spirit Link Totem
|
||||
[108280] = {cooldown = 180, duration = 10, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Healing Tide Totem
|
||||
[207399] = {cooldown = 240, duration = 30, specs = {264}, talent =22323, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Protection Totem (talent)
|
||||
[16191] = {cooldown = 180, duration = 8, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Mana Tide Totem
|
||||
[198103] = {cooldown = 300, duration = 60, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 2}, --Earth Elemental
|
||||
[192058] = {cooldown = 60, duration = false, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 5}, --Capacitor Totem
|
||||
[8143] = {cooldown = 60, duration = 10, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 5}, --Tremor Totem
|
||||
[192077] = {cooldown = 120, duration = 15, specs = {262,263,264}, talent =21966, charges = 1, class = "SHAMAN", type = 5}, --Wind Rush Totem (talent)
|
||||
|
||||
--monk
|
||||
-- 268 - Brewmaster
|
||||
-- 269 - Windwalker
|
||||
-- 270 - Restoration
|
||||
|
||||
[132578] = {cooldown = 180, duration = 25, specs = {268}, talent =false, charges = 1, class = "MONK", type = 1}, --Invoke Niuzao, the Black Ox
|
||||
[115080] = {cooldown = 180, duration = false, specs = {268,269,270}, talent =false, charges = 1, class = "MONK", type = 1}, --Touch of Death
|
||||
[115203] = {cooldown = 420, duration = 15, specs = {268}, talent =false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[115176] = {cooldown = 300, duration = 8, specs = {268}, talent =false, charges = 1, class = "MONK", type = 2}, --Zen Meditation
|
||||
[115399] = {cooldown = 120, duration = false, specs = {268}, talent =19992, charges = 1, class = "MONK", type = 2}, --Black Ox brew (talent)
|
||||
[122278] = {cooldown = 120, duration = 10, specs = {268,269,270}, talent =20175, charges = 1, class = "MONK", type = 2}, --Dampen Harm (talent)
|
||||
[137639] = {cooldown = 90, duration = 15, specs = {269}, talent =false, charges = 1, class = "MONK", type = 1}, --Storm, Earth, and Fire
|
||||
[123904] = {cooldown = 120, duration = 24, specs = {269}, talent =false, charges = 1, class = "MONK", type = 1}, --Invoke Xuen, the White Tiger
|
||||
[152173] = {cooldown = 90, duration = 12, specs = {269}, talent =21191, charges = 1, class = "MONK", type = 1}, --Serenity (talent)
|
||||
[122470] = {cooldown = 90, duration = 6, specs = {269}, talent =false, charges = 1, class = "MONK", type = 2}, --Touch of Karma
|
||||
[322118] = {cooldown = 180, duration = 25, specs = {270}, talent =false, charges = 1, class = "MONK", type = 4}, --Invoke Yulon, the Jade serpent
|
||||
[243435] = {cooldown = 90, duration = 15, specs = {269,270}, talent =false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[122783] = {cooldown = 90, duration = 6, specs = {269,270}, talent =20173, charges = 1, class = "MONK", type = 2}, --Diffuse Magic (talent)
|
||||
[116849] = {cooldown = 120, duration = 12, specs = {270}, talent =false, charges = 1, class = "MONK", type = 3}, --Life Cocoon
|
||||
[115310] = {cooldown = 180, duration = false, specs = {270}, talent =false, charges = 1, class = "MONK", type = 4}, --Revival
|
||||
[197908] = {cooldown = 90, duration = 10, specs = {270}, talent =22166, charges = 1, class = "MONK", type = 5}, --Mana tea (talent)
|
||||
[116844] = {cooldown = 45, duration = 5, specs = {268,269,270}, talent =19995, charges = 1, class = "MONK", type = 5}, --Ring of peace (talent)
|
||||
[119381] = {cooldown = 50, duration = 3, specs = {268,269,270}, talent =false, charges = 1, class = "MONK", type = 5}, --Leg Sweep
|
||||
|
||||
--hunter
|
||||
-- 253 - Beast Mastery
|
||||
-- 254 - Marksmenship
|
||||
-- 255 - Survival
|
||||
|
||||
[193530] = {cooldown = 120, duration = 20, specs = {253}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Aspect of the Wild
|
||||
[19574] = {cooldown = 90, duration = 12, specs = {253}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Bestial Wrath
|
||||
[201430] = {cooldown = 180, duration = 12, specs = {253}, talent =23044, charges = 1, class = "HUNTER", type = 1}, --Stampede (talent)
|
||||
[288613] = {cooldown = 180, duration = 15, specs = {254}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Trueshot
|
||||
[199483] = {cooldown = 60, duration = 60, specs = {253,254,255}, talent =23100, charges = 1, class = "HUNTER", type = 2}, --Camouflage (talent)
|
||||
[281195] = {cooldown = 180, duration = 6, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Survival of the Fittest
|
||||
[266779] = {cooldown = 120, duration = 20, specs = {255}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Coordinated Assault
|
||||
[186265] = {cooldown = 180, duration = 8, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Aspect of the Turtle
|
||||
[109304] = {cooldown = 120, duration = false, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Exhilaration
|
||||
[186257] = {cooldown = 144, duration = 14, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the cheetah
|
||||
[19577] = {cooldown = 60, duration = 5, specs = {253,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Intimidation
|
||||
[109248] = {cooldown = 45, duration = 10, specs = {253,254,255}, talent =22499, charges = 1, class = "HUNTER", type = 5}, --Binding Shot (talent)
|
||||
[187650] = {cooldown = 25, duration = 60, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Freezing Trap
|
||||
[186289] = {cooldown = 72, duration = 15, specs = {255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the eagle
|
||||
|
||||
--druid
|
||||
-- 102 - Balance
|
||||
-- 103 - Feral
|
||||
-- 104 - Guardian
|
||||
-- 105 - Restoration
|
||||
|
||||
[77761] = {cooldown = 120, duration = 8, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 4}, --Stampeding Roar
|
||||
[194223] = {cooldown = 180, duration = 20, specs = {102}, talent =false, charges = 1, class = "DRUID", type = 1}, --Celestial Alignment
|
||||
[102560] = {cooldown = 180, duration = 30, specs = {102}, talent =21702, charges = 1, class = "DRUID", type = 1}, --Incarnation: Chosen of Elune (talent)
|
||||
[22812] = {cooldown = 60, duration = 12, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 2}, --Barkskin
|
||||
[108238] = {cooldown = 90, duration = false, specs = {102,103,104,105}, talent =18570, charges = 1, class = "DRUID", type = 2}, --Renewal (talent)
|
||||
[29166] = {cooldown = 180, duration = 12, specs = {102,105}, talent =false, charges = 1, class = "DRUID", type = 3}, --Innervate
|
||||
[106951] = {cooldown = 180, duration = 15, specs = {103,104}, talent =false, charges = 1, class = "DRUID", type = 1}, --Berserk
|
||||
[102543] = {cooldown = 30, duration = 180, specs = {103}, talent =21704, charges = 1, class = "DRUID", type = 1}, --Incarnation: King of the Jungle (talent)
|
||||
[61336] = {cooldown = 120, duration = 6, specs = {103,104}, talent =false, charges = 2, class = "DRUID", type = 2}, --Survival Instincts (2min feral 4min guardian, same spellid)
|
||||
[102558] = {cooldown = 180, duration = 30, specs = {104}, talent =22388, charges = 1, class = "DRUID", type = 2}, --Incarnation: Guardian of Ursoc (talent)
|
||||
[33891] = {cooldown = 180, duration = 30, specs = {105}, talent =22421, charges = 1, class = "DRUID", type = 2}, --Incarnation: Tree of Life (talent)
|
||||
[102342] = {cooldown = 60, duration = 12, specs = {105}, talent =false, charges = 1, class = "DRUID", type = 3}, --Ironbark
|
||||
[203651] = {cooldown = 60, duration = false, specs = {105}, talent =22422, charges = 1, class = "DRUID", type = 3}, --Overgrowth (talent)
|
||||
[740] = {cooldown = 180, duration = 8, specs = {105}, talent =false, charges = 1, class = "DRUID", type = 4}, --Tranquility
|
||||
[197721] = {cooldown = 90, duration = 8, specs = {105}, talent =22404, charges = 1, class = "DRUID", type = 4}, --Flourish (talent)
|
||||
[132469] = {cooldown = 30, duration = false, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 5}, --Typhoon
|
||||
[319454] = {cooldown = 300, duration = 45, specs = {102,103,104,105}, talent =18577, charges = 1, class = "DRUID", type = 5}, --Heart of the Wild (talent)
|
||||
[102793] = {cooldown = 60, duration = 10, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 5}, --Ursol's Vortex
|
||||
|
||||
--death knight
|
||||
-- 252 - Unholy
|
||||
-- 251 - Frost
|
||||
-- 252 - Blood
|
||||
|
||||
[275699] = {cooldown = 90, duration = 15, specs = {252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Apocalypse
|
||||
[42650] = {cooldown = 480, duration = 30, specs = {252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Army of the Dead
|
||||
[49206] = {cooldown = 180, duration = 30, specs = {252}, talent =22110, charges = 1, class = "DEATHKNIGHT", type = 1}, --Summon Gargoyle (talent)
|
||||
[207289] = {cooldown = 78, duration = 12, specs = {252}, talent =22538, charges = 1, class = "DEATHKNIGHT", type = 1}, --Unholy Assault (talent)
|
||||
[48743] = {cooldown = 120, duration = 15, specs = {250,251,252}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Death Pact (talent)
|
||||
[48707] = {cooldown = 60, duration = 10, specs = {250,251,252}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Anti-magic Shell
|
||||
[152279] = {cooldown = 120, duration = 5, specs = {251}, talent =22537, charges = 1, class = "DEATHKNIGHT", type = 1}, --Breath of Sindragosa (talent)
|
||||
[47568] = {cooldown = 120, duration = 20, specs = {251}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Empower Rune Weapon
|
||||
[279302] = {cooldown = 120, duration = 10, specs = {251}, talent =22535, charges = 1, class = "DEATHKNIGHT", type = 1}, --Frostwyrm's Fury (talent)
|
||||
[49028] = {cooldown = 120, duration = 8, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Dancing Rune Weapon
|
||||
[55233] = {cooldown = 90, duration = 10, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Vampiric Blood
|
||||
[48792] = {cooldown = 120, duration = 8, specs = {250,251,252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Icebound Fortitude
|
||||
[51052] = {cooldown = 120, duration = 10, specs = {250,251,252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 4}, --Anti-magic Zone
|
||||
[219809] = {cooldown = 60, duration = 8, specs = {250}, talent =23454, charges = 1, class = "DEATHKNIGHT", type = 2}, --Tombstone (talent)
|
||||
[108199] = {cooldown = 120, duration = false, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Gorefiend's Grasp
|
||||
[207167] = {cooldown = 60, duration = 5, specs = {251}, talent =22519, charges = 1, class = "DEATHKNIGHT", type = 5}, --Blinding Sleet (talent)
|
||||
[108194] = {cooldown = 45, duration = 4, specs = {251,252}, talent =22520, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate (talent)
|
||||
[221562] = {cooldown = 45, duration = 5, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate
|
||||
[212552] = {cooldown = 60, duration = 4, specs = {250,251,252}, talent =19228, charges = 1, class = "DEATHKNIGHT", type = 5}, --Wraith walk (talent)
|
||||
|
||||
--demon hunter
|
||||
-- 577 - Havoc
|
||||
-- 581 - Vengance
|
||||
|
||||
[191427] = {cooldown = 240, duration = 30, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 1}, --Metamorphosis
|
||||
[198589] = {cooldown = 60, duration = 10, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Blur
|
||||
[196555] = {cooldown = 120, duration = 5, specs = {577}, talent =21865, charges = 1, class = "DEMONHUNTER", type = 2}, --Netherwalk (talent)
|
||||
[187827] = {cooldown = 180, duration = 15, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Metamorphosis
|
||||
[196718] = {cooldown = 180, duration = 8, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 4}, --Darkness
|
||||
[188501] = {cooldown = 30, duration = 10, specs = {577,581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Spectral Sight
|
||||
[179057] = {cooldown = 60, duration = 2, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Chaos Nova
|
||||
[211881] = {cooldown = 30, duration = 4, specs = {577}, talent =22767, charges = 1, class = "DEMONHUNTER", type = 5}, --Fel Eruption (talent)
|
||||
[320341] = {cooldown = 90, duration = false, specs = {581}, talent =21902, charges = 1, class = "DEMONHUNTER", type = 1}, --Bulk Extraction (talent)
|
||||
[204021] = {cooldown = 60, duration = 10, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Fiery Brand
|
||||
[263648] = {cooldown = 30, duration = 12, specs = {581}, talent =22768, charges = 1, class = "DEMONHUNTER", type = 2}, --Soul Barrier (talent)
|
||||
[207684] = {cooldown = 90, duration = 12, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Misery
|
||||
[202137] = {cooldown = 60, duration = 8, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Silence
|
||||
[202138] = {cooldown = 90, duration = 6, specs = {581}, talent =22511, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Chains (talent)
|
||||
|
||||
--mage
|
||||
-- 62 - Arcane
|
||||
-- 63 - Fire
|
||||
-- 64 - Frost
|
||||
|
||||
[12042] = {cooldown = 90, duration = 10, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 1}, --Arcane Power
|
||||
[12051] = {cooldown = 90, duration = 6, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 1}, --Evocation
|
||||
[110960] = {cooldown = 120, duration = 20, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 2}, --Greater Invisibility
|
||||
[235450] = {cooldown = 25, duration = 60, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 5}, --Prismatic Barrier
|
||||
[235313] = {cooldown = 25, duration = 60, specs = {63}, talent =false, charges = 1, class = "MAGE", type = 5}, --Blazing Barrier
|
||||
[11426] = {cooldown = 25, duration = 60, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 5}, --Ice Barrier
|
||||
[190319] = {cooldown = 120, duration = 10, specs = {63}, talent =false, charges = 1, class = "MAGE", type = 1}, --Combustion
|
||||
[55342] = {cooldown = 120, duration = 40, specs = {62,63,64}, talent =22445, charges = 1, class = "MAGE", type = 1}, --Mirror Image
|
||||
[66] = {cooldown = 300, duration = 20, specs = {63,64}, talent =false, charges = 1, class = "MAGE", type = 2}, --Invisibility
|
||||
[12472] = {cooldown = 180, duration = 20, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 1}, --Icy Veins
|
||||
[205021] = {cooldown = 78, duration = 5, specs = {64}, talent =22309, charges = 1, class = "MAGE", type = 1}, --Ray of Frost (talent)
|
||||
[45438] = {cooldown = 240, duration = 10, specs = {62,63,64}, talent =false, charges = 1, class = "MAGE", type = 2}, --Ice Block
|
||||
[235219] = {cooldown = 300, duration = false, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 5}, --Cold Snap
|
||||
[113724] = {cooldown = 45, duration = 10, specs = {62,63,64}, talent =22471, charges = 1, class = "MAGE", type = 5}, --Ring of Frost (talent)
|
||||
|
||||
--priest
|
||||
-- 256 - Discipline
|
||||
-- 257 - Holy
|
||||
-- 258 - Shadow
|
||||
|
||||
[10060] = {cooldown = 120, duration = 20, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 1}, --Power Infusion
|
||||
[34433] = {cooldown = 180, duration = 15, specs = {256,258}, talent =false, charges = 1, class = "PRIEST", type = 1, ignoredIfTalent = 21719}, --Shadowfiend
|
||||
[200174] = {cooldown = 60, duration = 15, specs = {258}, talent =21719, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[123040] = {cooldown = 60, duration = 12, specs = {256}, talent =22094, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[33206] = {cooldown = 180, duration = 8, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 3}, --Pain Suppression
|
||||
[62618] = {cooldown = 180, duration = 10, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Power Word: Barrier
|
||||
[271466] = {cooldown = 180, duration = 10, specs = {256}, talent =21184, charges = 1, class = "PRIEST", type = 4}, --Luminous Barrier (talent)
|
||||
[47536] = {cooldown = 90, duration = 10, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Rapture
|
||||
[19236] = {cooldown = 90, duration = 10, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Desperate Prayer
|
||||
[200183] = {cooldown = 120, duration = 20, specs = {257}, talent =21644, charges = 1, class = "PRIEST", type = 2}, --Apotheosis (talent)
|
||||
[47788] = {cooldown = 180, duration = 10, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 3}, --Guardian Spirit
|
||||
[64843] = {cooldown = 180, duration = 8, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Divine Hymn
|
||||
[64901] = {cooldown = 300, duration = 6, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Symbol of Hope
|
||||
[265202] = {cooldown = 720, duration = false, specs = {257}, talent =23145, charges = 1, class = "PRIEST", type = 4}, --Holy Word: Salvation (talent)
|
||||
[109964] = {cooldown = 60, duration = 12, specs = {256}, talent =21184, charges = 1, class = "PRIEST", type = 4}, --Spirit Shell (talent)
|
||||
[8122] = {cooldown = 60, duration = 8, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Psychic Scream
|
||||
[193223] = {cooldown = 240, duration = 60, specs = {258}, talent =21979, charges = 1, class = "PRIEST", type = 1}, --Surrender to Madness (talent)
|
||||
[47585] = {cooldown = 120, duration = 6, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 2}, --Dispersion
|
||||
[15286] = {cooldown = 120, duration = 15, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Vampiric Embrace
|
||||
[64044] = {cooldown = 45, duration = 4, specs = {258}, talent =21752, charges = 1, class = "PRIEST", type = 5}, --Psychic Horror
|
||||
[205369] = {cooldown = 30, duration = 6, specs = {258}, talent =23375, charges = 1, class = "PRIEST", type = 5}, --Mind Bomb
|
||||
[228260] = {cooldown = 90, duration = 15, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 1}, --Void Erruption
|
||||
[73325] = {cooldown = 90, duration = false, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Leap of Faith
|
||||
|
||||
--rogue
|
||||
-- 259 - Assasination
|
||||
-- 260 - Outlaw
|
||||
-- 261 - Subtlety
|
||||
|
||||
[79140] = {cooldown = 120, duration = 20, specs = {259}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Vendetta
|
||||
[1856] = {cooldown = 120, duration = 3, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Vanish
|
||||
[5277] = {cooldown = 120, duration = 10, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Evasion
|
||||
[31224] = {cooldown = 120, duration = 5, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Cloak of Shadows
|
||||
[2094] = {cooldown = 120, duration = 60, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Blind
|
||||
[114018] = {cooldown = 360, duration = 15, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Shroud of Concealment
|
||||
[185311] = {cooldown = 30, duration = 15, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Crimson Vial
|
||||
[13750] = {cooldown = 180, duration = 20, specs = {260}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Adrenaline Rush
|
||||
[51690] = {cooldown = 120, duration = 2, specs = {260}, talent =23175, charges = 1, class = "ROGUE", type = 1}, --Killing Spree (talent)
|
||||
[199754] = {cooldown = 120, duration = 10, specs = {260}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Riposte
|
||||
[343142] = {cooldown = 90, duration = 10, specs = {260}, talent =19250, charges = 1, class = "ROGUE", type = 5}, --Dreadblades
|
||||
[121471] = {cooldown = 180, duration = 20, specs = {261}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Shadow Blades
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {};
|
||||
for spellID,spellData in pairs(LIB_OPEN_RAID_COOLDOWNS_INFO) do
|
||||
for _,specID in ipairs(spellData.specs) do
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] = LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] or {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID][spellID] = spellData.type;
|
||||
end
|
||||
end
|
||||
|
||||
-- DF Evoker
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1467] = {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1468] = {};
|
||||
|
||||
--[=[
|
||||
Spell customizations:
|
||||
Many times there's spells with the same name which does different effects
|
||||
In here you find a list of spells which has its name changed to give more information to the player
|
||||
you may add into the list any other parameter your addon uses declaring for example 'icon = ' or 'texcoord = ' etc.
|
||||
|
||||
Implamentation Example:
|
||||
if (LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) then
|
||||
for spellId, customTable in pairs(LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) do
|
||||
local name = customTable.name
|
||||
if (name) then
|
||||
MyCustomSpellTable[spellId] = name
|
||||
end
|
||||
end
|
||||
end
|
||||
--]=]
|
||||
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {} --default fallback
|
||||
|
||||
if (GetBuildInfo():match ("%d") == "1") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "2") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "3") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
else
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {
|
||||
[44461] = {name = GetSpellInfo(44461) .. " (" .. L["STRING_EXPLOSION"] .. ")"}, --Living Bomb (explosion)
|
||||
[59638] = {name = GetSpellInfo(59638) .. " (" .. L["STRING_MIRROR_IMAGE"] .. ")"}, --Mirror Image's Frost Bolt (mage)
|
||||
[88082] = {name = GetSpellInfo(88082) .. " (" .. L["STRING_MIRROR_IMAGE"] .. ")"}, --Mirror Image's Fireball (mage)
|
||||
[94472] = {name = GetSpellInfo(94472) .. " (" .. L["STRING_CRITICAL_ONLY"] .. ")"}, --Atonement critical hit (priest)
|
||||
[33778] = {name = GetSpellInfo(33778) .. " (" .. L["STRING_BLOOM"] .. ")"}, --lifebloom (bloom)
|
||||
[121414] = {name = GetSpellInfo(121414) .. " (" .. L["STRING_GLAIVE"] .. " #1)"}, --glaive toss (hunter)
|
||||
[120761] = {name = GetSpellInfo(120761) .. " (" .. L["STRING_GLAIVE"] .. " #2)"}, --glaive toss (hunter)
|
||||
[212739] = {name = GetSpellInfo(212739) .. " (" .. L["STRING_MAINTARGET"] .. ")"}, --DK Epidemic
|
||||
[215969] = {name = GetSpellInfo(215969) .. " (" .. L["STRING_AOE"] .. ")"}, --DK Epidemic
|
||||
[70890] = {name = GetSpellInfo(70890) .. " (" .. L["STRING_SHADOW"] .. ")"}, --DK Scourge Strike
|
||||
[55090] = {name = GetSpellInfo(55090) .. " (" .. L["STRING_PHYSICAL"] .. ")"}, --DK Scourge Strike
|
||||
[49184] = {name = GetSpellInfo(49184) .. " (" .. L["STRING_MAINTARGET"] .. ")"}, --DK Howling Blast
|
||||
[237680] = {name = GetSpellInfo(237680) .. " (" .. L["STRING_AOE"] .. ")"}, --DK Howling Blast
|
||||
[228649] = {name = GetSpellInfo(228649) .. " (" .. L["STRING_PASSIVE"] .. ")"}, --Monk Mistweaver Blackout kick - Passive Teachings of the Monastery
|
||||
[339538] = {name = GetSpellInfo(224266) .. " (" .. L["STRING_TEMPLAR_VINDCATION"] .. ")"}, --
|
||||
[343355] = {name = GetSpellInfo(343355) .. " (" .. L["STRING_PROC"] .. ")"}, --shadow priest's void bold proc
|
||||
|
||||
--shadowlands trinkets
|
||||
[345020] = {name = GetSpellInfo(345020) .. " (" .. L["STRING_TRINKET"] .. ")"},
|
||||
}
|
||||
end
|
||||
|
||||
--interrupt list using proxy from cooldown list
|
||||
--this list should be expansion and combatlog safe
|
||||
LIB_OPEN_RAID_SPELL_INTERRUPT = {
|
||||
[6552] = LIB_OPEN_RAID_COOLDOWNS_INFO[6552], --Pummel
|
||||
|
||||
[2139] = LIB_OPEN_RAID_COOLDOWNS_INFO[2139], --Counterspell
|
||||
|
||||
[15487] = LIB_OPEN_RAID_COOLDOWNS_INFO[15487], --Silence (shadow) Last Word Talent to reduce cooldown in 15 seconds
|
||||
|
||||
[1766] = LIB_OPEN_RAID_COOLDOWNS_INFO[1766], --Kick
|
||||
|
||||
[96231] = LIB_OPEN_RAID_COOLDOWNS_INFO[96231], --Rebuke (protection and retribution)
|
||||
|
||||
[116705] = LIB_OPEN_RAID_COOLDOWNS_INFO[116705], --Spear Hand Strike (brewmaster and windwalker)
|
||||
|
||||
[57994] = LIB_OPEN_RAID_COOLDOWNS_INFO[57994], --Wind Shear
|
||||
|
||||
[47528] = LIB_OPEN_RAID_COOLDOWNS_INFO[47528], --Mind Freeze
|
||||
|
||||
[106839] = LIB_OPEN_RAID_COOLDOWNS_INFO[106839], --Skull Bash (feral, guardian)
|
||||
[78675] = LIB_OPEN_RAID_COOLDOWNS_INFO[78675], --Solar Beam (balance)
|
||||
|
||||
[147362] = LIB_OPEN_RAID_COOLDOWNS_INFO[147362], --Counter Shot (beast mastery, marksmanship)
|
||||
[187707] = LIB_OPEN_RAID_COOLDOWNS_INFO[187707], --Muzzle (survival)
|
||||
|
||||
[183752] = LIB_OPEN_RAID_COOLDOWNS_INFO[183752], --Disrupt
|
||||
|
||||
[19647] = LIB_OPEN_RAID_COOLDOWNS_INFO[19647], --Spell Lock (pet felhunter ability)
|
||||
[89766] = LIB_OPEN_RAID_COOLDOWNS_INFO[89766], --Axe Toss (pet felguard ability)
|
||||
}
|
||||
|
||||
--override list of spells with more than one effect, example: multiple types of polymorph
|
||||
LIB_OPEN_RAID_SPELL_DEFAULT_IDS = {
|
||||
--stampeding roar (druid)
|
||||
[106898] = 77761,
|
||||
[77764] = 77761, --"Uncategorized" on wowhead, need to test if still exists
|
||||
--spell lock (warlock pet)
|
||||
[119910] = 19647, --"Uncategorized" on wowhead
|
||||
[132409] = 19647, --"Uncategorized" on wowhead
|
||||
--[115781] = 19647, --optical blast used by old talent observer, still a thing?
|
||||
--[251523] = 19647, --wowhead list this spell as sibling spell
|
||||
--[251922] = 19647, --wowhead list this spell as sibling spell
|
||||
--axe toss (warlock pet)
|
||||
[119914] = 89766, --"Uncategorized" on wowhead
|
||||
[347008] = 89766, --"Uncategorized" on wowhead
|
||||
--hex (shaman)
|
||||
[210873] = 51514, --Compy
|
||||
[211004] = 51514, --Spider
|
||||
[211010] = 51514, --Snake
|
||||
[211015] = 51514, --Cockroach
|
||||
[269352] = 51514, --Skeletal Hatchling
|
||||
[277778] = 51514, --Zandalari Tendonripper
|
||||
[277784] = 51514, --Wicker Mongrel
|
||||
[309328] = 51514, --Living Honey
|
||||
--typhoon
|
||||
--[61391] = 132469,
|
||||
--metamorphosis
|
||||
[191427] = 200166,
|
||||
--187827 vengeance need to test these spellIds
|
||||
--191427 havoc
|
||||
}
|
||||
--need to add mass dispell (32375)
|
||||
|
||||
LIB_OPEN_RAID_DATABASE_LOADED = true
|
||||
@@ -1,697 +0,0 @@
|
||||
|
||||
--data for wrath of the lich king expansion
|
||||
|
||||
local versionString, revision, launchDate, gameVersion = GetBuildInfo()
|
||||
if (gameVersion >= 40000 or gameVersion < 30000) then
|
||||
return
|
||||
end
|
||||
|
||||
--localization
|
||||
local gameLanguage = GetLocale()
|
||||
|
||||
local L = { --default localization
|
||||
["STRING_EXPLOSION"] = "explosion",
|
||||
["STRING_MIRROR_IMAGE"] = "Mirror Image",
|
||||
["STRING_CRITICAL_ONLY"] = "critical",
|
||||
["STRING_BLOOM"] = "Bloom", --lifebloom 'bloom' healing
|
||||
["STRING_GLAIVE"] = "Glaive", --DH glaive toss
|
||||
["STRING_MAINTARGET"] = "Main Target",
|
||||
["STRING_AOE"] = "AoE", --multi targets
|
||||
["STRING_SHADOW"] = "Shadow", --the spell school 'shadow'
|
||||
["STRING_PHYSICAL"] = "Physical", --the spell school 'physical'
|
||||
["STRING_PASSIVE"] = "Passive", --passive spell
|
||||
["STRING_TEMPLAR_VINDCATION"] = "Templar's Vindication", --paladin spell
|
||||
["STRING_PROC"] = "proc", --spell proc
|
||||
["STRING_TRINKET"] = "Trinket", --trinket
|
||||
}
|
||||
|
||||
if (gameLanguage == "enUS") then
|
||||
--default language
|
||||
|
||||
elseif (gameLanguage == "deDE") then
|
||||
L["STRING_EXPLOSION"] = "Explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Bilder spiegeln"
|
||||
L["STRING_CRITICAL_ONLY"] = "kritisch"
|
||||
|
||||
elseif (gameLanguage == "esES") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "esMX") then
|
||||
L["STRING_EXPLOSION"] = "explosión"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagen de espejo"
|
||||
L["STRING_CRITICAL_ONLY"] = "crítico"
|
||||
|
||||
elseif (gameLanguage == "frFR") then
|
||||
L["STRING_EXPLOSION"] = "explosion"
|
||||
L["STRING_MIRROR_IMAGE"] = "Effet miroir"
|
||||
L["STRING_CRITICAL_ONLY"] = "critique"
|
||||
|
||||
elseif (gameLanguage == "itIT") then
|
||||
L["STRING_EXPLOSION"] = "esplosione"
|
||||
L["STRING_MIRROR_IMAGE"] = "Immagine Speculare"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "koKR") then
|
||||
L["STRING_EXPLOSION"] = "폭발"
|
||||
L["STRING_MIRROR_IMAGE"] = "미러 이미지"
|
||||
L["STRING_CRITICAL_ONLY"] = "치명타"
|
||||
|
||||
elseif (gameLanguage == "ptBR") then
|
||||
L["STRING_EXPLOSION"] = "explosão"
|
||||
L["STRING_MIRROR_IMAGE"] = "Imagem Espelhada"
|
||||
L["STRING_CRITICAL_ONLY"] = "critico"
|
||||
|
||||
elseif (gameLanguage == "ruRU") then
|
||||
L["STRING_EXPLOSION"] = "взрыв"
|
||||
L["STRING_MIRROR_IMAGE"] = "Зеркальное изображение"
|
||||
L["STRING_CRITICAL_ONLY"] = "критический"
|
||||
|
||||
elseif (gameLanguage == "zhCN") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "镜像"
|
||||
L["STRING_CRITICAL_ONLY"] = "爆击"
|
||||
|
||||
elseif (gameLanguage == "zhTW") then
|
||||
L["STRING_EXPLOSION"] = "爆炸"
|
||||
L["STRING_MIRROR_IMAGE"] = "鏡像"
|
||||
L["STRING_CRITICAL_ONLY"] = "致命"
|
||||
end
|
||||
|
||||
LIB_OPEN_RAID_MANA_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {} --default
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {} --default
|
||||
|
||||
LIB_OPEN_RAID_BLOODLUST = {
|
||||
[2825] = true, --bloodlust
|
||||
[32182] = true, --heroism
|
||||
[80353] = true, --timewarp
|
||||
[90355] = true, --ancient hysteria
|
||||
[309658] = true, --current exp drums
|
||||
}
|
||||
|
||||
--which gear slots can be enchanted on the latest retail version of the game
|
||||
--when the value is a number, the slot only receives enchants for a specific attribute
|
||||
LIB_OPEN_RAID_ENCHANT_SLOTS = {
|
||||
--[INVSLOT_NECK] = true,
|
||||
[INVSLOT_BACK] = true, --for all
|
||||
[INVSLOT_CHEST] = true, --for all
|
||||
[INVSLOT_FINGER1] = true, --for all
|
||||
[INVSLOT_FINGER2] = true, --for all
|
||||
[INVSLOT_MAINHAND] = true, --for all
|
||||
|
||||
[INVSLOT_FEET] = 2, --agility only
|
||||
[INVSLOT_WRIST] = 1, --intellect only
|
||||
[INVSLOT_HAND] = 3, --strenth only
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MYTHICKEYSTONE_ITEMID = 180653
|
||||
LIB_OPEN_RAID_AUGMENTATED_RUNE = 0
|
||||
|
||||
LIB_OPEN_RAID_COVENANT_ICONS = {}
|
||||
|
||||
LIB_OPEN_RAID_ENCHANT_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_GEM_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_WEAPON_ENCHANT_IDS = {}
|
||||
|
||||
LIB_OPEN_RAID_FOOD_BUFF = {}
|
||||
|
||||
LIB_OPEN_RAID_FLASK_BUFF = {}
|
||||
|
||||
LIB_OPEN_RAID_ALL_POTIONS = {}
|
||||
|
||||
LIB_OPEN_RAID_HEALING_POTIONS = {
|
||||
[33447] = true, --Runic Healing Potion
|
||||
[41166] = true, --Runic Healing Injector
|
||||
[47875] = true, --Warlock's Healthstone (0/2 Talent)
|
||||
[47867] = true, --Warlock's Healthstone (1/2 Talent)
|
||||
[47877] = true, --Warlock's Healthstone (2/2 Talent)
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_MELEE_SPECS = {
|
||||
[251] = "DEATHKNIGHT",
|
||||
[252] = "DEATHKNIGHT",
|
||||
[577] = "DEMONHUNTER",
|
||||
[103] = "DRUID",
|
||||
--[255] = "Survival", --not in the list due to the long interrupt time
|
||||
[269] = "MONK",
|
||||
[70] = "PALADIN",
|
||||
[259] = "ROGUE",
|
||||
[260] = "ROGUE",
|
||||
[261] = "ROGUE",
|
||||
[263] = "SHAMAN",
|
||||
[71] = "WARRIOR",
|
||||
[72] = "WARRIOR",
|
||||
}
|
||||
|
||||
--tells the duration, requirements and cooldown
|
||||
--information about a cooldown is mainly get from tooltips
|
||||
--if talent is required, use the command:
|
||||
--/dump GetTalentInfo (talentTier, talentColumn, 1)
|
||||
--example: to get the second talent of the last talent line, use: /dump GetTalentInfo (7, 2, 1)
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_INFO = {
|
||||
|
||||
-- Filter Types:
|
||||
-- 1 attack cooldown
|
||||
-- 2 personal defensive cooldown
|
||||
-- 3 targetted defensive cooldown
|
||||
-- 4 raid defensive cooldown
|
||||
-- 5 personal utility cooldown
|
||||
-- 6 interrupt
|
||||
|
||||
--interrupts
|
||||
[6552] = {class = "WARRIOR", specs = {71, 72, 73}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Pummel
|
||||
[2139] = {class = "MAGE", specs = {62, 63, 64}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Counterspell
|
||||
[15487] = {class = "PRIEST", specs = {258}, cooldown = 45, silence = 4, talent = false, cooldownWithTalent = 30, cooldownTalentId = 23137, type = 6, charges = 1}, --Silence (shadow) Last Word Talent to reduce cooldown in 15 seconds
|
||||
[1766] = {class = "ROGUE", specs = {259, 260, 261}, cooldown = 15, silence = 5, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Kick
|
||||
[96231] = {class = "PALADIN", specs = {66, 70}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Rebuke (protection and retribution)
|
||||
[116705] = {class = "MONK", specs = {268, 269}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Spear Hand Strike (brewmaster and windwalker)
|
||||
[57994] = {class = "SHAMAN", specs = {262, 263, 264}, cooldown = 12, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Wind Shear
|
||||
[47528] = {class = "DEATHKNIGHT", specs = {250, 251, 252}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Mind Freeze
|
||||
[106839] = {class = "DRUID", specs = {103, 104}, cooldown = 15, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Skull Bash (feral, guardian)
|
||||
[78675] = {class = "DRUID", specs = {102}, cooldown = 60, silence = 8, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Solar Beam (balance)
|
||||
[147362] = {class = "HUNTER", specs = {253, 254}, cooldown = 24, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Counter Shot (beast mastery, marksmanship)
|
||||
[187707] = {class = "HUNTER", specs = {255}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Muzzle (survival)
|
||||
[183752] = {class = "DEMONHUNTER", specs = {577, 581}, cooldown = 15, silence = 3, talent = false, cooldownWithTalent = false, cooldownTalentId = false, type = 6, charges = 1}, --Disrupt
|
||||
[19647] = {class = "WARLOCK", specs = {265, 266, 267}, cooldown = 24, silence = 6, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 417, type = 6, charges = 1}, --Spell Lock (pet felhunter ability)
|
||||
[89766] = {class = "WARLOCK", specs = {266}, cooldown = 30, silence = 4, talent = false, cooldownWithTalent = false, cooldownTalentId = false, pet = 17252, type = 6, charges = 1}, --Axe Toss (pet felguard ability)
|
||||
|
||||
--paladin
|
||||
-- 65 - Holy
|
||||
-- 66 - Protection
|
||||
-- 70 - Retribution
|
||||
|
||||
[31884] = {cooldown = 120, duration = 20, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 1}, --Avenging Wrath
|
||||
[216331] = {cooldown = 120, duration = 20, specs = {65}, talent =22190, charges = 1, class = "PALADIN", type = 1}, --Avenging Crusader (talent)
|
||||
[498] = {cooldown = 60, duration = 8, specs = {65}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Divine Protection
|
||||
[642] = {cooldown = 300, duration = 8, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Divine Shield
|
||||
[105809] = {cooldown = 90, duration = 20, specs = {65,66,70}, talent =22164, charges = 1, class = "PALADIN", type = 2}, --Holy Avenger (talent)
|
||||
[152262] = {cooldown = 45, duration = 15, specs = {65,66,70}, talent =17601, charges = 1, class = "PALADIN", type = 2}, --Seraphim
|
||||
[633] = {cooldown = 600, duration = false, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Lay on Hands
|
||||
[1022] = {cooldown = 300, duration = 10, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Protection
|
||||
[6940] = {cooldown = 120, duration = 12, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 3}, --Blessing of Sacrifice
|
||||
[31821] = {cooldown = 180, duration = 8, specs = {65}, talent =false, charges = 1, class = "PALADIN", type = 4}, --Aura Mastery
|
||||
[1044] = {cooldown = 25, duration = 8, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 5}, --Blessing of Freedom
|
||||
[853] = {cooldown = 60, duration = 6, specs = {65,66,70}, talent =false, charges = 1, class = "PALADIN", type = 5}, --Hammer of Justice
|
||||
[115750] = {cooldown = 90, duration = 6, specs = {65,66,70}, talent =21811, charges = 1, class = "PALADIN", type = 5}, --Blinding Light(talent)
|
||||
[327193] = {cooldown = 90, duration = 15, specs = {66}, talent =23468, charges = 1, class = "PALADIN", type = 1}, --Moment of Glory (talent)
|
||||
[31850] = {cooldown = 120, duration = 8, specs = {66}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Ardent Defender
|
||||
[86659] = {cooldown = 300, duration = 8, specs = {66}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Guardian of Ancient Kings
|
||||
[204018] = {cooldown = 180, duration = 10, specs = {66}, talent =22435, charges = 1, class = "PALADIN", type = 3}, --Blessing of Spellwarding (talent)
|
||||
[231895] = {cooldown = 120, duration = 25, specs = {70}, talent =22215, charges = 1, class = "PALADIN", type = 1}, --Crusade (talent)
|
||||
[205191] = {cooldown = 60, duration = 10, specs = {70}, talent =22183, charges = 1, class = "PALADIN", type = 2}, --Eye for an Eye (talent)
|
||||
[184662] = {cooldown = 120, duration = 15, specs = {70}, talent =false, charges = 1, class = "PALADIN", type = 2}, --Shield of Vengeance
|
||||
|
||||
--warrior
|
||||
-- 71 - Arms
|
||||
-- 72 - Fury
|
||||
-- 73 - Protection
|
||||
|
||||
[107574] = {cooldown = 90, duration = 20, specs = {71,73}, talent =22397, charges = 1, class = "WARRIOR", type = 1}, --Avatar
|
||||
[227847] = {cooldown = 90, duration = 5, specs = {71}, talent =false, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm
|
||||
[46924] = {cooldown = 60, duration = 4, specs = {72}, talent =22400, charges = 1, class = "WARRIOR", type = 1}, --Bladestorm (talent)
|
||||
[152277] = {cooldown = 60, duration = 6, specs = {71}, talent =21667, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[228920] = {cooldown = 60, duration = 6, specs = {73}, talent =23099, charges = 1, class = "WARRIOR", type = 1}, --Ravager (talent)
|
||||
[118038] = {cooldown = 180, duration = 8, specs = {71}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Die by the Sword
|
||||
[97462] = {cooldown = 180, duration = 10, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 4}, --Rallying Cry
|
||||
[1719] = {cooldown = 90, duration = 10, specs = {72}, talent =false, charges = 1, class = "WARRIOR", type = 1}, --Recklessness
|
||||
[184364] = {cooldown = 120, duration = 8, specs = {72}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Enraged Regeneration
|
||||
[12975] = {cooldown = 180, duration = 15, specs = {73}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Last Stand
|
||||
[871] = {cooldown = 8, duration = 240, specs = {73}, talent =false, charges = 1, class = "WARRIOR", type = 2}, --Shield Wall
|
||||
[64382] = {cooldown = 180, duration = false, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 5}, --Shattering Throw
|
||||
[5246] = {cooldown = 90, duration = 8, specs = {71,72,73}, talent =false, charges = 1, class = "WARRIOR", type = 5}, --Intimidating Shout
|
||||
|
||||
--warlock
|
||||
-- 265 - Affliction
|
||||
-- 266 - Demonology
|
||||
-- 267 - Destruction
|
||||
|
||||
[205180] = {cooldown = 180, duration = 20, specs = {265}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Darkglare
|
||||
--[342601] = {cooldown = 3600, duration = false, specs = {}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Ritual of Doom
|
||||
[113860] = {cooldown = 120, duration = 20, specs = {265}, talent =19293, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Misery (talent)
|
||||
[104773] = {cooldown = 180, duration = 8, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 2}, --Unending Resolve
|
||||
[108416] = {cooldown = 60, duration = 20, specs = {265,266,267}, talent =19286, charges = 1, class = "WARLOCK", type = 2}, --Dark Pact (talent)
|
||||
[265187] = {cooldown = 90, duration = 15, specs = {266}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Demonic Tyrant
|
||||
[111898] = {cooldown = 120, duration = 15, specs = {266}, talent =21717, charges = 1, class = "WARLOCK", type = 1}, --Grimoire: Felguard (talent)
|
||||
[267171] = {cooldown = 60, duration = false, specs = {266}, talent =23138, charges = 1, class = "WARLOCK", type = 1}, --Demonic Strength (talent)
|
||||
[267217] = {cooldown = 180, duration = 20, specs = {266}, talent =23091, charges = 1, class = "WARLOCK", type = 1}, --Nether Portal
|
||||
[1122] = {cooldown = 180, duration = 30, specs = {267}, talent =false, charges = 1, class = "WARLOCK", type = 1}, --Summon Infernal
|
||||
[113858] = {cooldown = 120, duration = 20, specs = {267}, talent =23092, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Instability (talent)
|
||||
[30283] = {cooldown = 60, duration = 3, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 5}, --Shadowfury
|
||||
[333889] = {cooldown = 180, duration = 15, specs = {265,266,267}, talent =false, charges = 1, class = "WARLOCK", type = 5}, --Fel Domination
|
||||
[5484] = {cooldown = 40, duration = 20, specs = {265,266,267}, talent =23465, charges = 1, class = "WARLOCK", type = 5}, --Howl of Terror (talent)
|
||||
|
||||
--shaman
|
||||
-- 262 - Elemental
|
||||
-- 263 - Enchancment
|
||||
-- 264 - Restoration
|
||||
|
||||
[198067] = {cooldown = 150, duration = 30, specs = {262}, talent =false, charges = 1, class = "SHAMAN", type = 1}, --Fire Elemental
|
||||
[192249] = {cooldown = 150, duration = 30, specs = {262}, talent =19272, charges = 1, class = "SHAMAN", type = 1}, --Storm Elemental (talent)
|
||||
[108271] = {cooldown = 90, duration = 8, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 2}, --Astral Shift
|
||||
[108281] = {cooldown = 120, duration = 10, specs = {262,263}, talent =22172, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Guidance (talent)
|
||||
[51533] = {cooldown = 120, duration = 15, specs = {263}, talent =false, charges = 1, class = "SHAMAN", type = 1}, --Feral Spirit
|
||||
[114050] = {cooldown = 180, duration = 15, specs = {262}, talent =21675, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114051] = {cooldown = 180, duration = 15, specs = {263}, talent =21972, charges = 1, class = "SHAMAN", type = 1}, --Ascendance (talent)
|
||||
[114052] = {cooldown = 180, duration = 15, specs = {264}, talent =22359, charges = 1, class = "SHAMAN", type = 4}, --Ascendance (talent)
|
||||
[98008] = {cooldown = 180, duration = 6, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Spirit Link Totem
|
||||
[108280] = {cooldown = 180, duration = 10, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Healing Tide Totem
|
||||
[207399] = {cooldown = 240, duration = 30, specs = {264}, talent =22323, charges = 1, class = "SHAMAN", type = 4}, --Ancestral Protection Totem (talent)
|
||||
[16191] = {cooldown = 180, duration = 8, specs = {264}, talent =false, charges = 1, class = "SHAMAN", type = 4}, --Mana Tide Totem
|
||||
[198103] = {cooldown = 300, duration = 60, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 2}, --Earth Elemental
|
||||
[192058] = {cooldown = 60, duration = false, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 5}, --Capacitor Totem
|
||||
[8143] = {cooldown = 60, duration = 10, specs = {262,263,264}, talent =false, charges = 1, class = "SHAMAN", type = 5}, --Tremor Totem
|
||||
[192077] = {cooldown = 120, duration = 15, specs = {262,263,264}, talent =21966, charges = 1, class = "SHAMAN", type = 5}, --Wind Rush Totem (talent)
|
||||
|
||||
--monk
|
||||
-- 268 - Brewmaster
|
||||
-- 269 - Windwalker
|
||||
-- 270 - Restoration
|
||||
|
||||
[132578] = {cooldown = 180, duration = 25, specs = {268}, talent =false, charges = 1, class = "MONK", type = 1}, --Invoke Niuzao, the Black Ox
|
||||
[115080] = {cooldown = 180, duration = false, specs = {268,269,270}, talent =false, charges = 1, class = "MONK", type = 1}, --Touch of Death
|
||||
[115203] = {cooldown = 420, duration = 15, specs = {268}, talent =false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[115176] = {cooldown = 300, duration = 8, specs = {268}, talent =false, charges = 1, class = "MONK", type = 2}, --Zen Meditation
|
||||
[115399] = {cooldown = 120, duration = false, specs = {268}, talent =19992, charges = 1, class = "MONK", type = 2}, --Black Ox brew (talent)
|
||||
[122278] = {cooldown = 120, duration = 10, specs = {268,269,270}, talent =20175, charges = 1, class = "MONK", type = 2}, --Dampen Harm (talent)
|
||||
[137639] = {cooldown = 90, duration = 15, specs = {269}, talent =false, charges = 1, class = "MONK", type = 1}, --Storm, Earth, and Fire
|
||||
[123904] = {cooldown = 120, duration = 24, specs = {269}, talent =false, charges = 1, class = "MONK", type = 1}, --Invoke Xuen, the White Tiger
|
||||
[152173] = {cooldown = 90, duration = 12, specs = {269}, talent =21191, charges = 1, class = "MONK", type = 1}, --Serenity (talent)
|
||||
[122470] = {cooldown = 90, duration = 6, specs = {269}, talent =false, charges = 1, class = "MONK", type = 2}, --Touch of Karma
|
||||
[322118] = {cooldown = 180, duration = 25, specs = {270}, talent =false, charges = 1, class = "MONK", type = 4}, --Invoke Yulon, the Jade serpent
|
||||
[243435] = {cooldown = 90, duration = 15, specs = {269,270}, talent =false, charges = 1, class = "MONK", type = 2}, --Fortifying Brew
|
||||
[122783] = {cooldown = 90, duration = 6, specs = {269,270}, talent =20173, charges = 1, class = "MONK", type = 2}, --Diffuse Magic (talent)
|
||||
[116849] = {cooldown = 120, duration = 12, specs = {270}, talent =false, charges = 1, class = "MONK", type = 3}, --Life Cocoon
|
||||
[115310] = {cooldown = 180, duration = false, specs = {270}, talent =false, charges = 1, class = "MONK", type = 4}, --Revival
|
||||
[197908] = {cooldown = 90, duration = 10, specs = {270}, talent =22166, charges = 1, class = "MONK", type = 5}, --Mana tea (talent)
|
||||
[116844] = {cooldown = 45, duration = 5, specs = {268,269,270}, talent =19995, charges = 1, class = "MONK", type = 5}, --Ring of peace (talent)
|
||||
[119381] = {cooldown = 50, duration = 3, specs = {268,269,270}, talent =false, charges = 1, class = "MONK", type = 5}, --Leg Sweep
|
||||
|
||||
--hunter
|
||||
-- 253 - Beast Mastery
|
||||
-- 254 - Marksmenship
|
||||
-- 255 - Survival
|
||||
|
||||
[193530] = {cooldown = 120, duration = 20, specs = {253}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Aspect of the Wild
|
||||
[19574] = {cooldown = 90, duration = 12, specs = {253}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Bestial Wrath
|
||||
[201430] = {cooldown = 180, duration = 12, specs = {253}, talent =23044, charges = 1, class = "HUNTER", type = 1}, --Stampede (talent)
|
||||
[288613] = {cooldown = 180, duration = 15, specs = {254}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Trueshot
|
||||
[199483] = {cooldown = 60, duration = 60, specs = {253,254,255}, talent =23100, charges = 1, class = "HUNTER", type = 2}, --Camouflage (talent)
|
||||
[281195] = {cooldown = 180, duration = 6, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Survival of the Fittest
|
||||
[266779] = {cooldown = 120, duration = 20, specs = {255}, talent =false, charges = 1, class = "HUNTER", type = 1}, --Coordinated Assault
|
||||
[186265] = {cooldown = 180, duration = 8, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Aspect of the Turtle
|
||||
[109304] = {cooldown = 120, duration = false, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 2}, --Exhilaration
|
||||
[186257] = {cooldown = 144, duration = 14, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the cheetah
|
||||
[19577] = {cooldown = 60, duration = 5, specs = {253,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Intimidation
|
||||
[109248] = {cooldown = 45, duration = 10, specs = {253,254,255}, talent =22499, charges = 1, class = "HUNTER", type = 5}, --Binding Shot (talent)
|
||||
[187650] = {cooldown = 25, duration = 60, specs = {253,254,255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Freezing Trap
|
||||
[186289] = {cooldown = 72, duration = 15, specs = {255}, talent =false, charges = 1, class = "HUNTER", type = 5}, --Aspect of the eagle
|
||||
|
||||
--druid
|
||||
-- 102 - Balance
|
||||
-- 103 - Feral
|
||||
-- 104 - Guardian
|
||||
-- 105 - Restoration
|
||||
|
||||
[77761] = {cooldown = 120, duration = 8, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 4}, --Stampeding Roar
|
||||
[194223] = {cooldown = 180, duration = 20, specs = {102}, talent =false, charges = 1, class = "DRUID", type = 1}, --Celestial Alignment
|
||||
[102560] = {cooldown = 180, duration = 30, specs = {102}, talent =21702, charges = 1, class = "DRUID", type = 1}, --Incarnation: Chosen of Elune (talent)
|
||||
[22812] = {cooldown = 60, duration = 12, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 2}, --Barkskin
|
||||
[108238] = {cooldown = 90, duration = false, specs = {102,103,104,105}, talent =18570, charges = 1, class = "DRUID", type = 2}, --Renewal (talent)
|
||||
[29166] = {cooldown = 180, duration = 12, specs = {102,105}, talent =false, charges = 1, class = "DRUID", type = 3}, --Innervate
|
||||
[106951] = {cooldown = 180, duration = 15, specs = {103,104}, talent =false, charges = 1, class = "DRUID", type = 1}, --Berserk
|
||||
[102543] = {cooldown = 30, duration = 180, specs = {103}, talent =21704, charges = 1, class = "DRUID", type = 1}, --Incarnation: King of the Jungle (talent)
|
||||
[61336] = {cooldown = 120, duration = 6, specs = {103,104}, talent =false, charges = 2, class = "DRUID", type = 2}, --Survival Instincts (2min feral 4min guardian, same spellid)
|
||||
[102558] = {cooldown = 180, duration = 30, specs = {104}, talent =22388, charges = 1, class = "DRUID", type = 2}, --Incarnation: Guardian of Ursoc (talent)
|
||||
[33891] = {cooldown = 180, duration = 30, specs = {105}, talent =22421, charges = 1, class = "DRUID", type = 2}, --Incarnation: Tree of Life (talent)
|
||||
[102342] = {cooldown = 60, duration = 12, specs = {105}, talent =false, charges = 1, class = "DRUID", type = 3}, --Ironbark
|
||||
[203651] = {cooldown = 60, duration = false, specs = {105}, talent =22422, charges = 1, class = "DRUID", type = 3}, --Overgrowth (talent)
|
||||
[740] = {cooldown = 180, duration = 8, specs = {105}, talent =false, charges = 1, class = "DRUID", type = 4}, --Tranquility
|
||||
[197721] = {cooldown = 90, duration = 8, specs = {105}, talent =22404, charges = 1, class = "DRUID", type = 4}, --Flourish (talent)
|
||||
[132469] = {cooldown = 30, duration = false, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 5}, --Typhoon
|
||||
[319454] = {cooldown = 300, duration = 45, specs = {102,103,104,105}, talent =18577, charges = 1, class = "DRUID", type = 5}, --Heart of the Wild (talent)
|
||||
[102793] = {cooldown = 60, duration = 10, specs = {102,103,104,105}, talent =false, charges = 1, class = "DRUID", type = 5}, --Ursol's Vortex
|
||||
|
||||
--death knight
|
||||
-- 252 - Unholy
|
||||
-- 251 - Frost
|
||||
-- 252 - Blood
|
||||
|
||||
[275699] = {cooldown = 90, duration = 15, specs = {252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Apocalypse
|
||||
[42650] = {cooldown = 480, duration = 30, specs = {252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Army of the Dead
|
||||
[49206] = {cooldown = 180, duration = 30, specs = {252}, talent =22110, charges = 1, class = "DEATHKNIGHT", type = 1}, --Summon Gargoyle (talent)
|
||||
[207289] = {cooldown = 78, duration = 12, specs = {252}, talent =22538, charges = 1, class = "DEATHKNIGHT", type = 1}, --Unholy Assault (talent)
|
||||
[48743] = {cooldown = 120, duration = 15, specs = {250,251,252}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Death Pact (talent)
|
||||
[48707] = {cooldown = 60, duration = 10, specs = {250,251,252}, talent =23373, charges = 1, class = "DEATHKNIGHT", type = 2}, --Anti-magic Shell
|
||||
[152279] = {cooldown = 120, duration = 5, specs = {251}, talent =22537, charges = 1, class = "DEATHKNIGHT", type = 1}, --Breath of Sindragosa (talent)
|
||||
[47568] = {cooldown = 120, duration = 20, specs = {251}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Empower Rune Weapon
|
||||
[279302] = {cooldown = 120, duration = 10, specs = {251}, talent =22535, charges = 1, class = "DEATHKNIGHT", type = 1}, --Frostwyrm's Fury (talent)
|
||||
[49028] = {cooldown = 120, duration = 8, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 1}, --Dancing Rune Weapon
|
||||
[55233] = {cooldown = 90, duration = 10, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Vampiric Blood
|
||||
[48792] = {cooldown = 120, duration = 8, specs = {250,251,252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 2}, --Icebound Fortitude
|
||||
[51052] = {cooldown = 120, duration = 10, specs = {250,251,252}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 4}, --Anti-magic Zone
|
||||
[219809] = {cooldown = 60, duration = 8, specs = {250}, talent =23454, charges = 1, class = "DEATHKNIGHT", type = 2}, --Tombstone (talent)
|
||||
[108199] = {cooldown = 120, duration = false, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Gorefiend's Grasp
|
||||
[207167] = {cooldown = 60, duration = 5, specs = {251}, talent =22519, charges = 1, class = "DEATHKNIGHT", type = 5}, --Blinding Sleet (talent)
|
||||
[108194] = {cooldown = 45, duration = 4, specs = {251,252}, talent =22520, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate (talent)
|
||||
[221562] = {cooldown = 45, duration = 5, specs = {250}, talent =false, charges = 1, class = "DEATHKNIGHT", type = 5}, --Asphyxiate
|
||||
[212552] = {cooldown = 60, duration = 4, specs = {250,251,252}, talent =19228, charges = 1, class = "DEATHKNIGHT", type = 5}, --Wraith walk (talent)
|
||||
|
||||
--demon hunter
|
||||
-- 577 - Havoc
|
||||
-- 581 - Vengance
|
||||
|
||||
[191427] = {cooldown = 240, duration = 30, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 1}, --Metamorphosis
|
||||
[198589] = {cooldown = 60, duration = 10, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Blur
|
||||
[196555] = {cooldown = 120, duration = 5, specs = {577}, talent =21865, charges = 1, class = "DEMONHUNTER", type = 2}, --Netherwalk (talent)
|
||||
[187827] = {cooldown = 180, duration = 15, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Metamorphosis
|
||||
[196718] = {cooldown = 180, duration = 8, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 4}, --Darkness
|
||||
[188501] = {cooldown = 30, duration = 10, specs = {577,581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Spectral Sight
|
||||
[179057] = {cooldown = 60, duration = 2, specs = {577}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Chaos Nova
|
||||
[211881] = {cooldown = 30, duration = 4, specs = {577}, talent =22767, charges = 1, class = "DEMONHUNTER", type = 5}, --Fel Eruption (talent)
|
||||
[320341] = {cooldown = 90, duration = false, specs = {581}, talent =21902, charges = 1, class = "DEMONHUNTER", type = 1}, --Bulk Extraction (talent)
|
||||
[204021] = {cooldown = 60, duration = 10, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 2}, --Fiery Brand
|
||||
[263648] = {cooldown = 30, duration = 12, specs = {581}, talent =22768, charges = 1, class = "DEMONHUNTER", type = 2}, --Soul Barrier (talent)
|
||||
[207684] = {cooldown = 90, duration = 12, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Misery
|
||||
[202137] = {cooldown = 60, duration = 8, specs = {581}, talent =false, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Silence
|
||||
[202138] = {cooldown = 90, duration = 6, specs = {581}, talent =22511, charges = 1, class = "DEMONHUNTER", type = 5}, --Sigil of Chains (talent)
|
||||
|
||||
--mage
|
||||
-- 62 - Arcane
|
||||
-- 63 - Fire
|
||||
-- 64 - Frost
|
||||
|
||||
[12042] = {cooldown = 90, duration = 10, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 1}, --Arcane Power
|
||||
[12051] = {cooldown = 90, duration = 6, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 1}, --Evocation
|
||||
[110960] = {cooldown = 120, duration = 20, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 2}, --Greater Invisibility
|
||||
[235450] = {cooldown = 25, duration = 60, specs = {62}, talent =false, charges = 1, class = "MAGE", type = 5}, --Prismatic Barrier
|
||||
[235313] = {cooldown = 25, duration = 60, specs = {63}, talent =false, charges = 1, class = "MAGE", type = 5}, --Blazing Barrier
|
||||
[11426] = {cooldown = 25, duration = 60, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 5}, --Ice Barrier
|
||||
[190319] = {cooldown = 120, duration = 10, specs = {63}, talent =false, charges = 1, class = "MAGE", type = 1}, --Combustion
|
||||
[55342] = {cooldown = 120, duration = 40, specs = {62,63,64}, talent =22445, charges = 1, class = "MAGE", type = 1}, --Mirror Image
|
||||
[66] = {cooldown = 300, duration = 20, specs = {63,64}, talent =false, charges = 1, class = "MAGE", type = 2}, --Invisibility
|
||||
[12472] = {cooldown = 180, duration = 20, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 1}, --Icy Veins
|
||||
[205021] = {cooldown = 78, duration = 5, specs = {64}, talent =22309, charges = 1, class = "MAGE", type = 1}, --Ray of Frost (talent)
|
||||
[45438] = {cooldown = 240, duration = 10, specs = {62,63,64}, talent =false, charges = 1, class = "MAGE", type = 2}, --Ice Block
|
||||
[235219] = {cooldown = 300, duration = false, specs = {64}, talent =false, charges = 1, class = "MAGE", type = 5}, --Cold Snap
|
||||
[113724] = {cooldown = 45, duration = 10, specs = {62,63,64}, talent =22471, charges = 1, class = "MAGE", type = 5}, --Ring of Frost (talent)
|
||||
|
||||
--priest
|
||||
-- 256 - Discipline
|
||||
-- 257 - Holy
|
||||
-- 258 - Shadow
|
||||
|
||||
[10060] = {cooldown = 120, duration = 20, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 1}, --Power Infusion
|
||||
[34433] = {cooldown = 180, duration = 15, specs = {256,258}, talent =false, charges = 1, class = "PRIEST", type = 1, ignoredIfTalent = 21719}, --Shadowfiend
|
||||
[200174] = {cooldown = 60, duration = 15, specs = {258}, talent =21719, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[123040] = {cooldown = 60, duration = 12, specs = {256}, talent =22094, charges = 1, class = "PRIEST", type = 1}, --Mindbender (talent)
|
||||
[33206] = {cooldown = 180, duration = 8, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 3}, --Pain Suppression
|
||||
[62618] = {cooldown = 180, duration = 10, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Power Word: Barrier
|
||||
[271466] = {cooldown = 180, duration = 10, specs = {256}, talent =21184, charges = 1, class = "PRIEST", type = 4}, --Luminous Barrier (talent)
|
||||
[47536] = {cooldown = 90, duration = 10, specs = {256}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Rapture
|
||||
[19236] = {cooldown = 90, duration = 10, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Desperate Prayer
|
||||
[200183] = {cooldown = 120, duration = 20, specs = {257}, talent =21644, charges = 1, class = "PRIEST", type = 2}, --Apotheosis (talent)
|
||||
[47788] = {cooldown = 180, duration = 10, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 3}, --Guardian Spirit
|
||||
[64843] = {cooldown = 180, duration = 8, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Divine Hymn
|
||||
[64901] = {cooldown = 300, duration = 6, specs = {257}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Symbol of Hope
|
||||
[265202] = {cooldown = 720, duration = false, specs = {257}, talent =23145, charges = 1, class = "PRIEST", type = 4}, --Holy Word: Salvation (talent)
|
||||
[109964] = {cooldown = 60, duration = 12, specs = {256}, talent =21184, charges = 1, class = "PRIEST", type = 4}, --Spirit Shell (talent)
|
||||
[8122] = {cooldown = 60, duration = 8, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Psychic Scream
|
||||
[193223] = {cooldown = 240, duration = 60, specs = {258}, talent =21979, charges = 1, class = "PRIEST", type = 1}, --Surrender to Madness (talent)
|
||||
[47585] = {cooldown = 120, duration = 6, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 2}, --Dispersion
|
||||
[15286] = {cooldown = 120, duration = 15, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 4}, --Vampiric Embrace
|
||||
[64044] = {cooldown = 45, duration = 4, specs = {258}, talent =21752, charges = 1, class = "PRIEST", type = 5}, --Psychic Horror
|
||||
[205369] = {cooldown = 30, duration = 6, specs = {258}, talent =23375, charges = 1, class = "PRIEST", type = 5}, --Mind Bomb
|
||||
[228260] = {cooldown = 90, duration = 15, specs = {258}, talent =false, charges = 1, class = "PRIEST", type = 1}, --Void Erruption
|
||||
[73325] = {cooldown = 90, duration = false, specs = {256,257,258}, talent =false, charges = 1, class = "PRIEST", type = 5}, --Leap of Faith
|
||||
|
||||
--rogue
|
||||
-- 259 - Assasination
|
||||
-- 260 - Outlaw
|
||||
-- 261 - Subtlety
|
||||
|
||||
[79140] = {cooldown = 120, duration = 20, specs = {259}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Vendetta
|
||||
[1856] = {cooldown = 120, duration = 3, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Vanish
|
||||
[5277] = {cooldown = 120, duration = 10, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Evasion
|
||||
[31224] = {cooldown = 120, duration = 5, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Cloak of Shadows
|
||||
[2094] = {cooldown = 120, duration = 60, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Blind
|
||||
[114018] = {cooldown = 360, duration = 15, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Shroud of Concealment
|
||||
[185311] = {cooldown = 30, duration = 15, specs = {259,260,261}, talent =false, charges = 1, class = "ROGUE", type = 5}, --Crimson Vial
|
||||
[13750] = {cooldown = 180, duration = 20, specs = {260}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Adrenaline Rush
|
||||
[51690] = {cooldown = 120, duration = 2, specs = {260}, talent =23175, charges = 1, class = "ROGUE", type = 1}, --Killing Spree (talent)
|
||||
[199754] = {cooldown = 120, duration = 10, specs = {260}, talent =false, charges = 1, class = "ROGUE", type = 2}, --Riposte
|
||||
[343142] = {cooldown = 90, duration = 10, specs = {260}, talent =19250, charges = 1, class = "ROGUE", type = 5}, --Dreadblades
|
||||
[121471] = {cooldown = 180, duration = 20, specs = {261}, talent =false, charges = 1, class = "ROGUE", type = 1}, --Shadow Blades
|
||||
}
|
||||
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC = {};
|
||||
for spellID,spellData in pairs(LIB_OPEN_RAID_COOLDOWNS_INFO) do
|
||||
for _,specID in ipairs(spellData.specs) do
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] = LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID] or {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[specID][spellID] = spellData.type;
|
||||
end
|
||||
end
|
||||
|
||||
-- DF Evoker
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1467] = {};
|
||||
LIB_OPEN_RAID_COOLDOWNS_BY_SPEC[1468] = {};
|
||||
|
||||
--list of all crowd control spells
|
||||
--it is not transmitted to other clients
|
||||
LIB_OPEN_RAID_CROWDCONTROL = { --copied from retail
|
||||
[331866] = {cooldown = 0, class = "COVENANT|VENTHYR"}, --Agent of Chaos
|
||||
[334693] = {cooldown = 0, class = "DEAHTKNIGHT"}, --Absolute Zero
|
||||
[221562] = {cooldown = 45, class = "DEATHKNIGHT"}, --Asphyxiate
|
||||
[47528] = {cooldown = 15, class = "DEATHKNIGHT"}, --Mind Freeze
|
||||
[207167] = {cooldown = 60, class = "DEATHKNIGHT"}, --Blinding Sleet
|
||||
[91807] = {cooldown = 0, class = "DEATHKNIGHT"}, --Shambling Rush
|
||||
[108194] = {cooldown = 45, class = "DEATHKNIGHT"}, --Asphyxiate
|
||||
[211881] = {cooldown = 30, class = "DEMONHUNTER"}, --Fel Eruption
|
||||
[200166] = {cooldown = 0, class = "DEMONHUNTER"}, --Metamorphosis
|
||||
[217832] = {cooldown = 45, class = "DEMONHUNTER"}, --Imprison
|
||||
[183752] = {cooldown = 15, class = "DEMONHUNTER"}, --Disrupt
|
||||
[207685] = {cooldown = 0, class = "DEMONHUNTER"}, --Sigil of Misery
|
||||
[179057] = {cooldown = 45, class = "DEMONHUNTER"}, --Chaos Nova
|
||||
[221527] = {cooldown = 45, class = "DEMONHUNTER"}, --Imprison with detainment talent
|
||||
[339] = {cooldown = 0, class = "DRUID"}, --Entangling Roots
|
||||
[102359] = {cooldown = 30, class = "DRUID"}, --Mass Entanglement
|
||||
[93985] = {cooldown = 0, class = "DRUID"}, --Skull Bash
|
||||
[2637] = {cooldown = 0, class = "DRUID"}, --Hibernate
|
||||
[5211] = {cooldown = 60, class = "DRUID"}, --Mighty Bash
|
||||
[99] = {cooldown = 30, class = "DRUID"}, --Incapacitating Roar
|
||||
[127797] = {cooldown = 0, class = "DRUID"}, --Ursol's Vortex
|
||||
[203123] = {cooldown = 0, class = "DRUID"}, --Maim
|
||||
[45334] = {cooldown = 0, class = "DRUID"}, --Immobilized
|
||||
[33786] = {cooldown = 0, class = "DRUID"}, --Cyclone
|
||||
[236748] = {cooldown = 30, class = "DRUID"}, --Intimidating Roar
|
||||
[61391] = {cooldown = 0, class = "DRUID"}, --Typhoon
|
||||
[163505] = {cooldown = 0, class = "DRUID"}, --Rake
|
||||
[50259] = {cooldown = 0, class = "DRUID"}, --Dazed
|
||||
[372245] = {cooldown = 0, class = "EVOKER"}, --Terror of the Skies
|
||||
[360806] = {cooldown = 15, class = "EVOKER"}, --Sleep Walk
|
||||
[162480] = {cooldown = 0, class = "HUNTER"}, --Steel Trap
|
||||
[187707] = {cooldown = 15, class = "HUNTER"}, --Muzzle
|
||||
[147362] = {cooldown = 24, class = "HUNTER"}, --Counter Shot
|
||||
[190927] = {cooldown = 6, class = "HUNTER"}, --Harpoon
|
||||
[117526] = {cooldown = 45, class = "HUNTER"}, --Binding Shot
|
||||
[24394] = {cooldown = 0, class = "HUNTER"}, --Intimidation
|
||||
[117405] = {cooldown = 0, class = "HUNTER"}, --Binding Shot
|
||||
[19577] = {cooldown = 60, class = "HUNTER"}, --Intimidation
|
||||
[1513] = {cooldown = 0, class = "HUNTER"}, --Scare Beast
|
||||
[3355] = {cooldown = 30, class = "HUNTER"}, --Freezing Trap
|
||||
[203337] = {cooldown = 30, class = "HUNTER"}, --Freezing trap with diamond ice talent
|
||||
[31661] = {cooldown = 45, class = "MAGE"}, --Dragon's Breath
|
||||
[161353] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[277787] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[157981] = {cooldown = 30, class = "MAGE"}, --Blast Wave
|
||||
[82691] = {cooldown = 0, class = "MAGE"}, --Ring of Frost
|
||||
[118] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[161354] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[157997] = {cooldown = 25, class = "MAGE"}, --Ice Nova
|
||||
[391622] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[28271] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[122] = {cooldown = 0, class = "MAGE"}, --Frost Nova
|
||||
[277792] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[61721] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[126819] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[61305] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[28272] = {cooldown = 0, class = "MAGE"}, --Polymorph
|
||||
[2139] = {cooldown = 24, class = "MAGE"}, --Counterspell
|
||||
[198909] = {cooldown = 0, class = "MONK"}, --Song of Chi-Ji
|
||||
[119381] = {cooldown = 60, class = "MONK"}, --Leg Sweep
|
||||
[107079] = {cooldown = 120, class = "MONK"}, --Quaking Palm
|
||||
[116706] = {cooldown = 0, class = "MONK"}, --Disable
|
||||
[115078] = {cooldown = 45, class = "MONK"}, --Paralysis
|
||||
[116705] = {cooldown = 15, class = "MONK"}, --Spear Hand Strike
|
||||
[31935] = {cooldown = 15, class = "PALADIN"}, --Avenger's Shield
|
||||
[20066] = {cooldown = 15, class = "PALADIN"}, --Repentance
|
||||
[217824] = {cooldown = 0, class = "PALADIN"}, --Shield of Virtue
|
||||
[105421] = {cooldown = 0, class = "PALADIN"}, --Blinding Light
|
||||
[10326] = {cooldown = 15, class = "PALADIN"}, --Turn Evil
|
||||
[853] = {cooldown = 60, class = "PALADIN"}, --Hammer of Justice
|
||||
[96231] = {cooldown = 15, class = "PALADIN"}, --Rebuke
|
||||
[205364] = {cooldown = 30, class = "PRIEST"}, --Dominate Mind
|
||||
[64044] = {cooldown = 45, class = "PRIEST"}, --Psychic Horror
|
||||
[226943] = {cooldown = 0, class = "PRIEST"}, --Mind Bomb
|
||||
[15487] = {cooldown = 45, class = "PRIEST"}, --Silence
|
||||
[605] = {cooldown = 0, class = "PRIEST"}, --Mind Control
|
||||
[8122] = {cooldown = 45, class = "PRIEST"}, --Psychic Scream
|
||||
[200200] = {cooldown = 60, class = "PRIEST"}, --Holy Word: Chastise
|
||||
[9484] = {cooldown = 0, class = "PRIEST"}, --Shackle Undead
|
||||
[200196] = {cooldown = 60, class = "PRIEST"}, --Holy Word: Chastise
|
||||
[6770] = {cooldown = 0, class = "ROGUE"}, --Sap
|
||||
[2094] = {cooldown = 120, class = "ROGUE"}, --Blind
|
||||
[1766] = {cooldown = 15, class = "ROGUE"}, --Kick
|
||||
[427773] = {cooldown = 0, class = "ROGUE"}, --Blind
|
||||
[408] = {cooldown = 20, class = "ROGUE"}, --Kidney Shot
|
||||
[1776] = {cooldown = 20, class = "ROGUE"}, --Gouge
|
||||
[1833] = {cooldown = 0, class = "ROGUE"}, --Cheap Shot
|
||||
[211015] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[269352] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[277778] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[64695] = {cooldown = 0, class = "SHAMAN"}, --Earthgrab
|
||||
[57994] = {cooldown = 12, class = "SHAMAN"}, --Wind Shear
|
||||
[197214] = {cooldown = 40, class = "SHAMAN"}, --Sundering
|
||||
[118905] = {cooldown = 0, class = "SHAMAN"}, --Static Charge
|
||||
[277784] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[309328] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[211010] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[210873] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[211004] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[51514] = {cooldown = 30, class = "SHAMAN"}, --Hex
|
||||
[305485] = {cooldown = 30, class = "SHAMAN"}, --Lightning Lasso
|
||||
[89766] = {cooldown = 30, class = "WARLOCK"}, --Axe Toss (pet felguard ability)
|
||||
[6789] = {cooldown = 45, class = "WARLOCK"}, --Mortal Coil
|
||||
[118699] = {cooldown = 0, class = "WARLOCK"}, --Fear
|
||||
[710] = {cooldown = 0, class = "WARLOCK"}, --Banish
|
||||
[212619] = {cooldown = 60, class = "WARLOCK"}, --Call Felhunter
|
||||
[19647] = {cooldown = 24, class = "WARLOCK"}, --Spell Lock
|
||||
[30283] = {cooldown = 60, class = "WARLOCK"}, --Shadowfury
|
||||
[5484] = {cooldown = 40, class = "WARLOCK"}, --Howl of Terror
|
||||
[6552] = {cooldown = 15, class = "WARRIOR"}, --Pummel
|
||||
[132168] = {cooldown = 0, class = "WARRIOR"}, --Shockwave
|
||||
[132169] = {cooldown = 0, class = "WARRIOR"}, --Storm Bolt
|
||||
[5246] = {cooldown = 90, class = "WARRIOR"}, --Intimidating Shout
|
||||
}
|
||||
|
||||
--[=[
|
||||
Spell customizations:
|
||||
Many times there's spells with the same name which does different effects
|
||||
In here you find a list of spells which has its name changed to give more information to the player
|
||||
you may add into the list any other parameter your addon uses declaring for example 'icon = ' or 'texcoord = ' etc.
|
||||
|
||||
Implamentation Example:
|
||||
if (LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) then
|
||||
for spellId, customTable in pairs(LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) do
|
||||
local name = customTable.name
|
||||
if (name) then
|
||||
MyCustomSpellTable[spellId] = name
|
||||
end
|
||||
end
|
||||
end
|
||||
--]=]
|
||||
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {} --default fallback
|
||||
|
||||
if (GetBuildInfo():match ("%d") == "1") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "2") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
elseif (GetBuildInfo():match ("%d") == "3") then
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {}
|
||||
|
||||
else
|
||||
LIB_OPEN_RAID_SPELL_CUSTOM_NAMES = {
|
||||
[44461] = {name = GetSpellInfo(44461) .. " (" .. L["STRING_EXPLOSION"] .. ")"}, --Living Bomb (explosion)
|
||||
[59638] = {name = GetSpellInfo(59638) .. " (" .. L["STRING_MIRROR_IMAGE"] .. ")"}, --Mirror Image's Frost Bolt (mage)
|
||||
[88082] = {name = GetSpellInfo(88082) .. " (" .. L["STRING_MIRROR_IMAGE"] .. ")"}, --Mirror Image's Fireball (mage)
|
||||
[94472] = {name = GetSpellInfo(94472) .. " (" .. L["STRING_CRITICAL_ONLY"] .. ")"}, --Atonement critical hit (priest)
|
||||
[33778] = {name = GetSpellInfo(33778) .. " (" .. L["STRING_BLOOM"] .. ")"}, --lifebloom (bloom)
|
||||
[121414] = {name = GetSpellInfo(121414) .. " (" .. L["STRING_GLAIVE"] .. " #1)"}, --glaive toss (hunter)
|
||||
[120761] = {name = GetSpellInfo(120761) .. " (" .. L["STRING_GLAIVE"] .. " #2)"}, --glaive toss (hunter)
|
||||
[212739] = {name = GetSpellInfo(212739) .. " (" .. L["STRING_MAINTARGET"] .. ")"}, --DK Epidemic
|
||||
[215969] = {name = GetSpellInfo(215969) .. " (" .. L["STRING_AOE"] .. ")"}, --DK Epidemic
|
||||
[70890] = {name = GetSpellInfo(70890) .. " (" .. L["STRING_SHADOW"] .. ")"}, --DK Scourge Strike
|
||||
[55090] = {name = GetSpellInfo(55090) .. " (" .. L["STRING_PHYSICAL"] .. ")"}, --DK Scourge Strike
|
||||
[49184] = {name = GetSpellInfo(49184) .. " (" .. L["STRING_MAINTARGET"] .. ")"}, --DK Howling Blast
|
||||
[237680] = {name = GetSpellInfo(237680) .. " (" .. L["STRING_AOE"] .. ")"}, --DK Howling Blast
|
||||
[228649] = {name = GetSpellInfo(228649) .. " (" .. L["STRING_PASSIVE"] .. ")"}, --Monk Mistweaver Blackout kick - Passive Teachings of the Monastery
|
||||
[339538] = {name = GetSpellInfo(224266) .. " (" .. L["STRING_TEMPLAR_VINDCATION"] .. ")"}, --
|
||||
[343355] = {name = GetSpellInfo(343355) .. " (" .. L["STRING_PROC"] .. ")"}, --shadow priest's void bold proc
|
||||
|
||||
--shadowlands trinkets
|
||||
[345020] = {name = GetSpellInfo(345020) .. " (" .. L["STRING_TRINKET"] .. ")"},
|
||||
}
|
||||
end
|
||||
|
||||
--interrupt list using proxy from cooldown list
|
||||
--this list should be expansion and combatlog safe
|
||||
LIB_OPEN_RAID_SPELL_INTERRUPT = {
|
||||
[6552] = LIB_OPEN_RAID_COOLDOWNS_INFO[6552], --Pummel
|
||||
|
||||
[2139] = LIB_OPEN_RAID_COOLDOWNS_INFO[2139], --Counterspell
|
||||
|
||||
[15487] = LIB_OPEN_RAID_COOLDOWNS_INFO[15487], --Silence (shadow) Last Word Talent to reduce cooldown in 15 seconds
|
||||
|
||||
[1766] = LIB_OPEN_RAID_COOLDOWNS_INFO[1766], --Kick
|
||||
|
||||
[96231] = LIB_OPEN_RAID_COOLDOWNS_INFO[96231], --Rebuke (protection and retribution)
|
||||
|
||||
[116705] = LIB_OPEN_RAID_COOLDOWNS_INFO[116705], --Spear Hand Strike (brewmaster and windwalker)
|
||||
|
||||
[57994] = LIB_OPEN_RAID_COOLDOWNS_INFO[57994], --Wind Shear
|
||||
|
||||
[47528] = LIB_OPEN_RAID_COOLDOWNS_INFO[47528], --Mind Freeze
|
||||
|
||||
[106839] = LIB_OPEN_RAID_COOLDOWNS_INFO[106839], --Skull Bash (feral, guardian)
|
||||
[78675] = LIB_OPEN_RAID_COOLDOWNS_INFO[78675], --Solar Beam (balance)
|
||||
|
||||
[147362] = LIB_OPEN_RAID_COOLDOWNS_INFO[147362], --Counter Shot (beast mastery, marksmanship)
|
||||
[187707] = LIB_OPEN_RAID_COOLDOWNS_INFO[187707], --Muzzle (survival)
|
||||
|
||||
[183752] = LIB_OPEN_RAID_COOLDOWNS_INFO[183752], --Disrupt
|
||||
|
||||
[19647] = LIB_OPEN_RAID_COOLDOWNS_INFO[19647], --Spell Lock (pet felhunter ability)
|
||||
[89766] = LIB_OPEN_RAID_COOLDOWNS_INFO[89766], --Axe Toss (pet felguard ability)
|
||||
}
|
||||
|
||||
--override list of spells with more than one effect, example: multiple types of polymorph
|
||||
LIB_OPEN_RAID_SPELL_DEFAULT_IDS = {
|
||||
--stampeding roar (druid)
|
||||
[106898] = 77761,
|
||||
[77764] = 77761, --"Uncategorized" on wowhead, need to test if still exists
|
||||
--spell lock (warlock pet)
|
||||
[119910] = 19647, --"Uncategorized" on wowhead
|
||||
[132409] = 19647, --"Uncategorized" on wowhead
|
||||
--[115781] = 19647, --optical blast used by old talent observer, still a thing?
|
||||
--[251523] = 19647, --wowhead list this spell as sibling spell
|
||||
--[251922] = 19647, --wowhead list this spell as sibling spell
|
||||
--axe toss (warlock pet)
|
||||
[119914] = 89766, --"Uncategorized" on wowhead
|
||||
[347008] = 89766, --"Uncategorized" on wowhead
|
||||
--hex (shaman)
|
||||
[210873] = 51514, --Compy
|
||||
[211004] = 51514, --Spider
|
||||
[211010] = 51514, --Snake
|
||||
[211015] = 51514, --Cockroach
|
||||
[269352] = 51514, --Skeletal Hatchling
|
||||
[277778] = 51514, --Zandalari Tendonripper
|
||||
[277784] = 51514, --Wicker Mongrel
|
||||
[309328] = 51514, --Living Honey
|
||||
--typhoon
|
||||
--[61391] = 132469,
|
||||
--metamorphosis
|
||||
[191427] = 200166,
|
||||
--187827 vengeance need to test these spellIds
|
||||
--191427 havoc
|
||||
}
|
||||
--need to add mass dispell (32375)
|
||||
|
||||
LIB_OPEN_RAID_DATABASE_LOADED = true
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
Open Raid is a library to share the player information while playing in a group or raid.
|
||||
|
||||
Install:
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/..\FrameXML\UI.xsd">
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/..\FrameXML\UI.xsd">
|
||||
<Script file="LibOpenRaid.lua" />
|
||||
<Script file="Functions.lua" />
|
||||
<Script file="GetPlayerInformation.lua" />
|
||||
<Script file="Deprecated.lua" />
|
||||
<Script file="ThingsToMantain_Dragonflight.lua" />
|
||||
<Script file="ThingsToMantain_Shadowlands.lua" />
|
||||
<Script file="ThingsToMantain_Wrath.lua" />
|
||||
<Script file="ThingsToMantain_Era.lua" />
|
||||
<Script file="ThingsToMantain_Cata.lua" />
|
||||
<Script file="ThingsToMantain_Ascension.lua" />
|
||||
</Ui>
|
||||
|
||||
Reference in New Issue
Block a user