From 09a07c720175fc4b8efb1dd16d9a187eb3c69003 Mon Sep 17 00:00:00 2001 From: Sumsebrum Date: Wed, 16 Jun 2021 14:34:17 +0200 Subject: [PATCH] safe unit death on UNIT_HEALTH events --- Modules/Healthbar.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Modules/Healthbar.lua b/Modules/Healthbar.lua index b07ac40..c62f16a 100644 --- a/Modules/Healthbar.lua +++ b/Modules/Healthbar.lua @@ -1,6 +1,6 @@ local pairs = pairs local floor = math.floor -local UnitHealth, UnitHealthMax, UnitName, UnitExists = UnitHealth, UnitHealthMax, UnitName, UnitExists +local UnitHealth, UnitHealthMax, UnitName, UnitExists, UnitIsDeadOrGhost = UnitHealth, UnitHealthMax, UnitName, UnitExists, UnitIsDeadOrGhost local CreateFrame = CreateFrame local RAID_CLASS_COLORS = RAID_CLASS_COLORS @@ -95,13 +95,22 @@ function Healthbar:CreateFrame(unit) end function Healthbar.OnEvent(self, event, unit) + local isDead = UnitExists(unit) and UnitIsDeadOrGhost(unit) if event == "UNIT_HEALTH" then + if isDead then + Gladdy:SendMessage("UNIT_DEATH", unit) + return + end local health = UnitHealth(unit) local healthMax = UnitHealthMax(unit) self.hp:SetMinMaxValues(0, healthMax) self.hp:SetValue(UnitHealth(unit)) Healthbar:SetHealthText(self, health, healthMax) elseif event == "UNIT_MAXHEALTH" then + if isDead then + Gladdy:SendMessage("UNIT_DEATH", unit) + return + end local health = UnitHealth(unit) local healthMax = UnitHealthMax(unit) self.hp:SetMinMaxValues(0, healthMax)