delete DRData
This commit is contained in:
parent
f2df08feac
commit
db66226209
@ -1,416 +0,0 @@
|
|||||||
local major = "DRData-1.0-BCC"
|
|
||||||
local minor = tonumber(string.match("$Revision: 793$", "(%d+)") or 1)
|
|
||||||
|
|
||||||
assert(LibStub, string.format("%s requires LibStub.", major))
|
|
||||||
|
|
||||||
local Data = LibStub:NewLibrary(major, minor)
|
|
||||||
if( not Data ) then return end
|
|
||||||
|
|
||||||
-- How long before DR resets
|
|
||||||
Data.RESET_TIME = 18
|
|
||||||
|
|
||||||
-- List of spellID -> DR category
|
|
||||||
Data.spells = {
|
|
||||||
--[[ DISORIENTS ]]--
|
|
||||||
-- Maim
|
|
||||||
[22570] = "disorient",
|
|
||||||
|
|
||||||
-- Sap
|
|
||||||
[6770] = "disorient",
|
|
||||||
[2070] = "disorient",
|
|
||||||
[11297] = "disorient",
|
|
||||||
|
|
||||||
-- Gouge (Remove all except 1776 come WoTLK)
|
|
||||||
[1776] = "disorient",
|
|
||||||
[1777] = "disorient",
|
|
||||||
[8629] = "disorient",
|
|
||||||
[11285] = "disorient",
|
|
||||||
[11286] = "disorient",
|
|
||||||
[38764] = "disorient",
|
|
||||||
|
|
||||||
-- Polymorph
|
|
||||||
[118] = "disorient",
|
|
||||||
[12824] = "disorient",
|
|
||||||
[12825] = "disorient",
|
|
||||||
[28272] = "disorient",
|
|
||||||
[28271] = "disorient",
|
|
||||||
[12826] = "disorient",
|
|
||||||
|
|
||||||
--[[ FEARS ]]--
|
|
||||||
-- Fear (Warlock)
|
|
||||||
[5782] = "fear",
|
|
||||||
[6213] = "fear",
|
|
||||||
[6215] = "fear",
|
|
||||||
|
|
||||||
-- Seduction (Pet)
|
|
||||||
[6358] = "fear",
|
|
||||||
|
|
||||||
-- Howl of Terror
|
|
||||||
[5484] = "fear",
|
|
||||||
[17928] = "fear",
|
|
||||||
|
|
||||||
-- Psychic scream
|
|
||||||
[8122] = "fear",
|
|
||||||
[8124] = "fear",
|
|
||||||
[10888] = "fear",
|
|
||||||
[10890] = "fear",
|
|
||||||
|
|
||||||
-- Scare Beast
|
|
||||||
[1513] = "fear",
|
|
||||||
[14326] = "fear",
|
|
||||||
[14327] = "fear",
|
|
||||||
|
|
||||||
-- Turn Evil
|
|
||||||
[10326] = "fear",
|
|
||||||
|
|
||||||
-- Intimidating Shout
|
|
||||||
[5246] = "fear",
|
|
||||||
|
|
||||||
--[[ CONTROL STUNS ]]--
|
|
||||||
-- Hammer of Justice
|
|
||||||
[853] = "ctrlstun",
|
|
||||||
[5588] = "ctrlstun",
|
|
||||||
[5589] = "ctrlstun",
|
|
||||||
[10308] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Bash
|
|
||||||
[5211] = "ctrlstun",
|
|
||||||
[6798] = "ctrlstun",
|
|
||||||
[8983] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Pounce
|
|
||||||
[9005] = "ctrlstun",
|
|
||||||
[9823] = "ctrlstun",
|
|
||||||
[9827] = "ctrlstun",
|
|
||||||
[27006] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Intimidation
|
|
||||||
[19577] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Charge
|
|
||||||
[7922] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Cheap Shot
|
|
||||||
[1833] = "ctrlstun",
|
|
||||||
|
|
||||||
-- War Stomp
|
|
||||||
[20549] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Intercept
|
|
||||||
[20253] = "ctrlstun",
|
|
||||||
[20614] = "ctrlstun",
|
|
||||||
[20615] = "ctrlstun",
|
|
||||||
[25273] = "ctrlstun",
|
|
||||||
[25274] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Concussion Blow
|
|
||||||
[12809] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Shadowfury
|
|
||||||
[30283] = "ctrlstun",
|
|
||||||
[30413] = "ctrlstun",
|
|
||||||
[30414] = "ctrlstun",
|
|
||||||
|
|
||||||
-- Unstable Affliction (Silence)
|
|
||||||
[43523] = "ua",
|
|
||||||
[31117] = "ua",
|
|
||||||
|
|
||||||
-- Impact
|
|
||||||
[12355] = "rndstun",
|
|
||||||
|
|
||||||
--[[ RANDOM STUNS ]]--
|
|
||||||
-- Stoneclaw Stun
|
|
||||||
[39796] = "rndstun",
|
|
||||||
|
|
||||||
-- Starfire Stun
|
|
||||||
[16922] = "rndstun",
|
|
||||||
|
|
||||||
-- Mace Stun
|
|
||||||
[5530] = "rndstun",
|
|
||||||
|
|
||||||
-- Stormherald/Deep Thunder
|
|
||||||
[34510] = "rndstun",
|
|
||||||
|
|
||||||
-- Seal of Justice
|
|
||||||
[20170] = "rndstun",
|
|
||||||
|
|
||||||
-- Blackout
|
|
||||||
[15269] = "rndstun",
|
|
||||||
|
|
||||||
-- Revenge Stun
|
|
||||||
[12798] = "rndstun",
|
|
||||||
|
|
||||||
-- Pyroclasm
|
|
||||||
[18093] = "rndstun",
|
|
||||||
|
|
||||||
--[[ CYCLONE ]]--
|
|
||||||
-- Blind
|
|
||||||
[2094] = "cyclone",
|
|
||||||
|
|
||||||
-- Cyclone
|
|
||||||
[33786] = "cyclone",
|
|
||||||
|
|
||||||
--[[ ROOTS ]]--
|
|
||||||
-- Freeze (Water Elemental)
|
|
||||||
[33395] = "root",
|
|
||||||
|
|
||||||
-- Frost Nova
|
|
||||||
[122] = "root",
|
|
||||||
[865] = "root",
|
|
||||||
[6131] = "root",
|
|
||||||
[10230] = "root",
|
|
||||||
[27088] = "root",
|
|
||||||
|
|
||||||
-- Entangling Roots
|
|
||||||
[339] = "root",
|
|
||||||
[1062] = "root",
|
|
||||||
[5195] = "root",
|
|
||||||
[5196] = "root",
|
|
||||||
[9852] = "root",
|
|
||||||
[9853] = "root",
|
|
||||||
[26989] = "root",
|
|
||||||
|
|
||||||
-- Nature's Grasp
|
|
||||||
[19975] = "root",
|
|
||||||
[19974] = "root",
|
|
||||||
[19973] = "root",
|
|
||||||
[19972] = "root",
|
|
||||||
[19971] = "root",
|
|
||||||
[19970] = "root",
|
|
||||||
[27010] = "root",
|
|
||||||
|
|
||||||
--[[ RANDOM ROOTS ]]--
|
|
||||||
-- Improved Hamstring
|
|
||||||
[23694] = "rndroot",
|
|
||||||
|
|
||||||
-- Entrapment (Hunter Talent)
|
|
||||||
[19185] = "rndroot",
|
|
||||||
|
|
||||||
-- Improved Wingclip
|
|
||||||
[19229] = "rndroot",
|
|
||||||
|
|
||||||
-- Frostbite
|
|
||||||
[12494] = "rndroot",
|
|
||||||
|
|
||||||
--[[ SLEEPS ]]--
|
|
||||||
-- Hibernate
|
|
||||||
[2637] = "disorient",
|
|
||||||
[18657] = "disorient",
|
|
||||||
[18658] = "disorient",
|
|
||||||
|
|
||||||
-- Wyvern Sting
|
|
||||||
[19386] = "disorient",
|
|
||||||
[24132] = "disorient",
|
|
||||||
[24133] = "disorient",
|
|
||||||
[27068] = "disorient",
|
|
||||||
|
|
||||||
--[[ MISC ]]--
|
|
||||||
-- Chastise
|
|
||||||
[44041] = "chastise",
|
|
||||||
[44043] = "chastise",
|
|
||||||
[44044] = "chastise",
|
|
||||||
[44045] = "chastise",
|
|
||||||
[44046] = "chastise",
|
|
||||||
[44047] = "chastise",
|
|
||||||
|
|
||||||
-- Dragon's Breath
|
|
||||||
[31661] = "scatters", -- Dragon's Breath
|
|
||||||
[33041] = "scatters", -- Dragon's Breath
|
|
||||||
[33042] = "scatters", -- Dragon's Breath
|
|
||||||
[33043] = "scatters", -- Dragon's Breath
|
|
||||||
-- Repentance
|
|
||||||
[20066] = "disorient",
|
|
||||||
|
|
||||||
-- Scatter Shot
|
|
||||||
[19503] = "scatters",
|
|
||||||
|
|
||||||
-- Freezing Trap
|
|
||||||
[3355] = "disorient",
|
|
||||||
[14308] = "disorient",
|
|
||||||
[14309] = "disorient",
|
|
||||||
|
|
||||||
-- Improved Conc Shot
|
|
||||||
[19410] = "rndstun",
|
|
||||||
[22915] = "rndstun",
|
|
||||||
[28445] = "rndstun",
|
|
||||||
|
|
||||||
-- Death Coil
|
|
||||||
[6789] = "dc",
|
|
||||||
[17925] = "dc",
|
|
||||||
[17926] = "dc",
|
|
||||||
[27223] = "dc",
|
|
||||||
|
|
||||||
-- Kidney Shot
|
|
||||||
[408] = "ks",
|
|
||||||
[8643] = "ks",
|
|
||||||
|
|
||||||
-- Mind Control
|
|
||||||
[605] = "charm",
|
|
||||||
[10911] = "charm",
|
|
||||||
[10912] = "charm",
|
|
||||||
|
|
||||||
-- Counterattack
|
|
||||||
[19306] = "counterattack",
|
|
||||||
|
|
||||||
-- Disarm
|
|
||||||
[676] = "disarm",
|
|
||||||
[14251] = "disarm",
|
|
||||||
}
|
|
||||||
|
|
||||||
-- DR Category names
|
|
||||||
Data.typeNames = {
|
|
||||||
["disorient"] = "Disorients",
|
|
||||||
["fear"] = "Fears",
|
|
||||||
["ctrlstun"] = "Controlled Stuns",
|
|
||||||
["rndstun"] = "Random Stuns",
|
|
||||||
["cyclone"] = "Cyclone/Blind",
|
|
||||||
["ks"] = "Kidney Shot",
|
|
||||||
["chastise"] = "Chastise",
|
|
||||||
["scatters"] = "Scatter Shot",
|
|
||||||
["freezetrap"] = "Freeze Trap",
|
|
||||||
["rndroot"] = "Random Roots",
|
|
||||||
["dc"] = "Death Coil",
|
|
||||||
["sleep"] = "Sleep",
|
|
||||||
["root"] = "Controlled Roots",
|
|
||||||
["impconc"] = "Imp Concussive Shot",
|
|
||||||
["charm"] = "Charms",
|
|
||||||
["repentance"] = "Repentance",
|
|
||||||
["dragonsbreath"] = "Dragon's Breath",
|
|
||||||
["ua"] = "Unstable Affliction Silence",
|
|
||||||
["counterattack"] = "Counterattack Immobilize",
|
|
||||||
["disarm"] = "Disarm"
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Categories that have DR in PvE as well as PvP
|
|
||||||
Data.pveDRs = {
|
|
||||||
["ks"] = true,
|
|
||||||
["ctrlstun"] = true,
|
|
||||||
["rndstun"] = true,
|
|
||||||
["cyclone"] = true,
|
|
||||||
}
|
|
||||||
|
|
||||||
-- List of DRs
|
|
||||||
Data.categories = {}
|
|
||||||
for _, cat in pairs(Data.spells) do
|
|
||||||
Data.categories[cat] = true
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Public APIs
|
|
||||||
-- Category name in something usable
|
|
||||||
function Data:GetCategoryName(cat)
|
|
||||||
return cat and Data.typeNames[cat] or nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Spell list
|
|
||||||
function Data:GetSpells()
|
|
||||||
return Data.spells
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Seconds before DR resets
|
|
||||||
function Data:GetResetTime()
|
|
||||||
return Data.RESET_TIME
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Get the category of the spellID
|
|
||||||
function Data:GetSpellCategory(spellID)
|
|
||||||
return spellID and Data.spells[spellID] or nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Does this category DR in PvE?
|
|
||||||
function Data:IsPVE(cat)
|
|
||||||
return cat and Data.pveDRs[cat] or nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- List of categories
|
|
||||||
function Data:GetCategories()
|
|
||||||
return Data.categories
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Next DR, if it's 1.0, next is 0.50, if it's 0.50 next is 0.25 and such
|
|
||||||
function Data:NextDR(diminished)
|
|
||||||
if( diminished == 1.0 ) then
|
|
||||||
return 0.50
|
|
||||||
elseif( diminished == 0.50 ) then
|
|
||||||
return 0.25
|
|
||||||
end
|
|
||||||
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
--[[ EXAMPLES ]]--
|
|
||||||
--[[
|
|
||||||
This is how you would track DR easily, you're welcome to do whatever you want with the below 4 functions.
|
|
||||||
|
|
||||||
Does not include tracking for PvE, you'd need to hack that in yourself but it's not (too) hard.
|
|
||||||
]]
|
|
||||||
|
|
||||||
--[[
|
|
||||||
local trackedPlayers = {}
|
|
||||||
local function debuffGained(spellID, destName, destGUID, isEnemy)
|
|
||||||
if( not trackedPlayers[destGUID] ) then
|
|
||||||
trackedPlayers[destGUID] = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
-- See if we should reset it back to undiminished
|
|
||||||
local drCat = DRData:GetSpellCae
|
|
||||||
local tracked = trackedPlayers[destGUID][drCat]
|
|
||||||
if( tracked and tracked.reset <= GetTime() ) then
|
|
||||||
tracked.diminished = 1.0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function debuffFaded(spellID, destName, destGUID, isEnemy)
|
|
||||||
local drCat = DRData:GetSpellCategory(spellID)
|
|
||||||
if( not trackedPlayers[destGUID] ) then
|
|
||||||
trackedPlayers[destGUID] = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
if( not trackedPlayers[destGUID][drCat] ) then
|
|
||||||
trackedPlayers[destGUID][drCat] = { reset = 0, diminished = 1.0 }
|
|
||||||
end
|
|
||||||
|
|
||||||
local time = GetTime()
|
|
||||||
local tracked = trackedPlayers[destGUID][drCat]
|
|
||||||
|
|
||||||
tracked.reset = time + DRData:GetResetTime()
|
|
||||||
tracked.diminished = nextDR(tracked.diminished)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function resetDR(destGUID)
|
|
||||||
-- Reset the tracked DRs for this person
|
|
||||||
if( trackedPlayers[destGUID] ) then
|
|
||||||
for cat in pairs(trackedPlayers[destGUID]) do
|
|
||||||
trackedPlayers[destGUID][cat].reset = 0
|
|
||||||
trackedPlayers[destGUID][cat].diminished = 1.0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local COMBATLOG_OBJECT_TYPE_PLAYER = COMBATLOG_OBJECT_TYPE_PLAYER
|
|
||||||
local COMBATLOG_OBJECT_REACTION_HOSTILE = COMBATLOG_OBJECT_REACTION_HOSTILE
|
|
||||||
local COMBATLOG_OBJECT_CONTROL_PLAYER = COMBATLOG_OBJECT_CONTROL_PLAYER
|
|
||||||
|
|
||||||
local eventRegistered = {["SPELL_AURA_APPLIED"] = true, ["SPELL_AURA_REMOVED"] = true, ["PARTY_KILL"] = true, ["UNIT_DIED"] = true}
|
|
||||||
local function COMBAT_LOG_EVENT_UNFILTERED(self, event, timestamp, eventType, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, spellID, spellName, spellSchool, auraType)
|
|
||||||
if( not eventRegistered[eventType] or ( bit.band(destFlags, COMBATLOG_OBJECT_TYPE_PLAYER) ~= COMBATLOG_OBJECT_TYPE_PLAYER and bit.band(destFlags, COMBATLOG_OBJECT_CONTROL_PLAYER) ~= COMBATLOG_OBJECT_CONTROL_PLAYER ) ) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Enemy gained a debuff
|
|
||||||
if( eventType == "SPELL_AURA_APPLIED" ) then
|
|
||||||
if( auraType == "DEBUFF" and Data.Spells[spellID] ) then
|
|
||||||
debuffGained(spellID, destName, destGUID, (bit.band(destFlags, COMBATLOG_OBJECT_REACTION_HOSTILE) == COMBATLOG_OBJECT_REACTION_HOSTILE))
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Buff or debuff faded from an enemy
|
|
||||||
elseif( eventType == "SPELL_AURA_REMOVED" ) then
|
|
||||||
if( auraType == "DEBUFF" and Data.Spells[spellID] ) then
|
|
||||||
debuffFaded(spellID, destName, destGUID, (bit.band(destFlags, COMBATLOG_OBJECT_REACTION_HOSTILE) == COMBATLOG_OBJECT_REACTION_HOSTILE))
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Don't use UNIT_DIED inside arenas due to accuracy issues, outside of arenas we don't care too much
|
|
||||||
elseif( ( eventType == "UNIT_DIED" and select(2, IsInInstance()) ~= "arena" ) or eventType == "PARTY_KILL" ) then
|
|
||||||
resetDR(destGUID)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
]]
|
|
Loading…
Reference in New Issue
Block a user