Lua Code:
local index = 1
local frameNum = 1
local filter = nil
could be moved after lastUpdate = 0.
frame.displayedUnit gets accessed quite often, so maybe a local variable is warranted.
I would suggest fixing indentation of lines 27-40, otherwise
Lua Code:
elseif buffFrame.highlight then
buffFrame.highlight:Hide()
end
will look weird.
Also, I would have tried to track the player I cast Lifebloom.