return nil;
end
+local function checkDebuff(id)
+ local i = 1;
+ while true do
+ local _, _, _, _, _, _, _, _, _, spell = UnitAura("player", i, "HARMFUL");
+ if not spell then
+ return false;
+ elseif spell == id then
+ return true;
+ end
+ i = i + 1;
+ end
+end
+
-- negatingIgnoreTime-like functionality not implemented
local events = {
["SPELL_DAMAGE"] = function(event, source, spellid, spellname, _, arg1, arg2)
local sound = spell.sound;
if spell.eventType and spell.eventType ~= event then return end
--if (event == "SPELL_MISSED" or event == "SPELL_PERIODIC_MISSED") and not spell.always then return end
- if spell.negatingDebuff and UnitDebuff("player", spell.negatingDebuff) then return end
+ if spell.negatingDebuff and checkDebuff(spell.negatingDebuff) then return end
--if spell.negatingBuff and UnitBuff("player", spell.negatingBuff) then return end
--if spell.affirmingDebuff and not UnitDebuff("player", spell.affirmingDebuff) then return end
--if spell.mobs and source and not spell.mobs[mobId(source)] then return end
end
local realEvents = {
- ["COMBAT_LOG_EVENT_UNFILTERED"] = clog,
+ ["COMBAT_LOG_EVENT_UNFILTERED"] = function()
+ return clog(CombatLogGetCurrentEventInfo());
+ end,
["GROUP_ROSTER_UPDATE"] = updateGuids,
["PLAYER_ROLES_ASSIGNED"] = updateRole,
["MIRROR_TIMER_START"] = function(timer, _, _, scale)