feign death detection

This commit is contained in:
Sumsebrum 2022-07-29 15:06:39 +02:00
parent f1652e2b42
commit 86bf851c64
3 changed files with 12 additions and 3 deletions

View File

@ -112,8 +112,10 @@ function EventListener:COMBAT_LOG_EVENT_UNFILTERED()
end
-- death detection
if (Gladdy.buttons[destUnit] and eventType == "UNIT_DIED" or eventType == "PARTY_KILL" or eventType == "SPELL_INSTAKILL") then
if not Gladdy:isFeignDeath(destUnit) then
Gladdy:SendMessage("UNIT_DEATH", destUnit)
end
end
-- spec detection
if Gladdy.buttons[destUnit] and (not Gladdy.buttons[destUnit].class or not Gladdy.buttons[destUnit].race) then
Gladdy:SpotEnemy(destUnit, true)

View File

@ -118,7 +118,7 @@ function Healthbar:CreateFrame(unit)
end
function Healthbar.OnEvent(self, event, unit)
local isDead = UnitExists(unit) and UnitIsDeadOrGhost(unit)
local isDead = UnitExists(unit) and UnitIsDeadOrGhost(unit) and not Gladdy:isFeignDeath(unit)
if event == "UNIT_HEALTH_FREQUENT" or event == "UNIT_MAXHEALTH" then
if isDead then
Gladdy:SendMessage("UNIT_DEATH", unit)
@ -207,7 +207,7 @@ function Healthbar:SetHealthText(healthBar, health, healthMax)
local healthText = ""
local healthPercentage = health and healthMax and floor(health * 100 / healthMax)
if health == 0 and UnitExists(healthBar.unit) and UnitIsDeadOrGhost(healthBar.unit) then
if health == 0 and UnitExists(healthBar.unit) and UnitIsDeadOrGhost(healthBar.unit) and not Gladdy:isFeignDeath(healthBar.unit) then
self:UNIT_DEATH(healthBar.unit)
return
end

View File

@ -3,6 +3,8 @@ local floor = math.floor
local str_find, str_gsub, str_sub, tinsert = string.find, string.gsub, string.sub, table.insert
local Gladdy = LibStub("Gladdy")
local L = Gladdy.L
local AuraUtil = AuraUtil
local GetSpellInfo = GetSpellInfo
---------------------------
@ -151,3 +153,8 @@ function Gladdy:contains(entry, list)
end
return false
end
local feignDeath = GetSpellInfo(5384)
function Gladdy:isFeignDeath(unit)
return AuraUtil.FindAuraByName(feignDeath, unit)
end