See if one of these functions helps you. Just run these code blob once per UI load (use a lua scratchpad addon, or make your own addon, or condense it in a large macro)
Code:
function SpellRechargeCurrentStacks(spell,fractional)
--spell is the spell you want to check
--fractional is a boolean, if its true/1/whatever, it'll return fractional charges in addition, such as 1.52 charges left instead of 1 charge left
local currentcharges,maxcharges,chargestarttime,rechargerate = GetSpellCharges(spell)
if not fractional or currentcharges==maxcharges then
return (select(1,GetSpellCharges(spell)))
else
local currenttime = GetTime()
return currentcharges+((currenttime-chargestarttime)/rechargerate)
end
end
function SpellRechargeMaxStacks(spell)
return (select(2,GetSpellCharges(spell)))
end
function SpellRechargeTimeLeft(spell)
--returns real time left of the current recharging spell charge
if (select(4,GetSpellCharges(spell)))-(GetTime()-(select(3,GetSpellCharges(spell))))<660 then
return (select(4,GetSpellCharges(spell)))-(GetTime()-(select(3,GetSpellCharges(spell))))
else
return 0
end
end
Then you can be like
SpellRechargeCurrentStacks("Lava Burst",1) --returns something like 1.78
or
SpellRechargeCurrentStacks("Lava Burst")>1 and SpellRechargeTimeLeft("Lava Burst")>3