1 local UnitIsConnected = UnitIsConnected;
2 local UnitIsDeadOrGhost = UnitIsDeadOrGhost;
3 local UnitHealthMax = UnitHealthMax;
4 local UnitHealth = UnitHealth;
5 local format = string.format
7 hooksecurefunc("CompactUnitFrame_UpdateStatusText", function(frame)
8 -- allowClassColorsForNPCs only in regular raid frames,
10 if frame.optionTable.allowClassColorsForNPCs ~= nil then
11 -- conditions taken from CompactUnitFrame.lua
12 if not UnitIsConnected(frame.unit) or UnitIsDeadOrGhost(frame.displayedUnit) then
14 elseif (frame.optionTable.healthText == "losthealth") then
15 -- only losthealth option is condensed
16 local healthLost = UnitHealthMax(frame.displayedUnit) - UnitHealth(frame.displayedUnit);
17 if healthLost <= 0 then return end
20 if healthLost > 1200000000 then -- 1.2B
21 prettyHealth = format("-%.1fB", healthLost / 1000000000);
22 elseif healthLost > 1200000 then -- 1.2M
23 prettyHealth = format("-%.1fM", healthLost / 1000000);
24 elseif healthLost > 1000 then -- 1K
25 prettyHealth = format("-%dK", healthLost / 1000);
27 prettyHealth = format("-%d", healthLost)
30 frame.statusText:SetText(prettyHealth);