Nothing jumps out at me, but this block can be simplified
Code:
if not runeReady and isEnergize == nil then
runeButton:SetAlpha(RHaoc)
else
runeButton:SetAlpha(RHaic)
end
if isEnergize then
runeButton:SetAlpha(RHaic)
end
to this
Code:
local alpha = (runeReady or isEnergize) and RHaic or RHaoc
runeButton:SetAlpha(alpha)
I'm not sure isEnergize means the rune is instantly ready, the default code starts a short (sub-second) energize animation, so maybe runeReady is only true at the end of that small period after energizing.