Thank you Aleaa, adding true fixed it entirely. All other calculations were wrong because my EmberBits variable was wrong. I didn't see that could be included as an option in the wowprogramming reference page for it. I had to look up what it does elsewhere. For anyone else who stumbles upon this, apparently if a resource (such as the entire burning embers bar) is divided into subunits (like embers), a standard call to unitpower() returns the amount relative to just the subunit. If you include "true" as an optional argument, then the value returned is relative to the entire bar. Admittedly, I got enough of an understanding to do what I need and moved on so that might not entirely accurate, but that's the general idea.
- - - Updated - - -
So I'm close to having this figured out, but it's still not there. I have the text of the progress bar set to be the color that I want the bar to be (for testing purposes). I also have a custom color function set in the main animation section which should switch the color. The text works properly, it switches from blue to red as it is supposed to. But the color stays blue the entire time (yes, I did ensure that the color selectors are set to red and blue accordingly). I find this odd because I copied and pasted the code from the custom text function into the custom color function, then just changed the return values. Maybe someone can help. Here is the exported string for the weak aura I have:
Code:
dKeToaGikQlHssJsv4ukPwffjVsqjMfLCliYUaLQFrrOHbHJPeltj5zGQMgOKRHsSneX3qKghOsNdIQ7ji7JIOoiLswOO8qvvAIueCrkvBeuXhPi1jfvzLqntbf3uvvTtuQFsPudvvflvuvpvOPQQCvvv5ROKQXIskNfLeZLIi7vL)QknyPdJQftHEmctgrDzfBgfFgumAvrNMQwTGs61ukMTi3wGDtLFRudNcwosphKPdCDiTDikFxqPgVGQZlQSEqPy(GsP9t(wUVl6VyEoWqz4eJjLhX2bzsEhYEd8qeVaQ3zZaiz7F(UPgxUi0fxb7lWocyh(lgCrYxK89DriaNWgOOh2mhBwqCXWTndd0ao4GeCHNu4HlPWf5WIewwH8vWL0JbjybRls2dziXZ9nHdUiRsi8fZzBggObCWHfwyb5llKICeSSap8Sq6QJbjyrYfz2oaCsCyGUOT)7lm5X2(fHMeZpBVdCXmB)9z7)VOro93DAtVVJ9YbhsifUlWf5lRqaplKGCsibwhdsSG8J9QdoWILvlRibbCrScEsroPih(Jbjwi5yd)XE5axmT5KVVls2ZW4jqtGC33fdqta)9DGdCrkNyUVlgGMa(77ah4IOqZRBq2qpJxeWtJdCFxmanb833boWfP70CFxmanb833boWbUiDGXVDF5mmxKJs5g50l6DEWlXoWqAad5J9Yf3OGK3nx2fj2Pn9(o2lh7LJ9QJ9YXg(J9YXgwh7LdCrcuiWo4BchCrguhbWVDpwlSQQQAAtWtQVwVwVwVwVwVwQzOmm2d3GNoqQHu)Z5b2cLYFy2qINBOMTun))obgN6)dGNmVwyvvvvpJAgkdJ9Wn4PdKAOqQoFsf8CCQiH0Fo3qmqqCAoviVJyuzDBP6DCcGhzJQNr1TvnIYWyPAefOcXzgqovgpfciSQQQQQQQkDaOuNkcl1flvewQQ8fHvvvvhhzHvvvvtBcEs916161snJtydzkNbebCcBGudP(NZdSfkL)WSHep3qnBPAoJtydzkNbyETWQQQQPnbpPMH6tG8CMWK45udPskliewvvvnTj4jv7bghAMhaPgs9pNh8ZoSh6dZgs8Cd1SLA8h7HjmV)yBw3E(Vz)Lp78yB6x7)Nzp)OLkGIoRfwvvvnTj4j1mpa6NHApW4qvdPUGqyvvv10MGNuThyCOqQHud4GNWotAVPpShyCOzEaKjM5bq)mu7bgh6AHvvvvtBcEs916161s93SF5qGpFWOgs10diAysP8Cm7hM)9jFdPMTtaZRfwvvvnTj4j1mugM8NaU35DWOgs9rgkdJ9Wn4PdKksQMEaF(G5X61MAbbcecRQQQM2e8KAgk195dg1qQ2dmouit9B2VCiWNpyewvvv1ZOMXjSHmLZaIaoHnqQMCiv4vbphNQWQQQQQQQQzOu3NpyudPMHsDF(GXulimrsvvrcj6eSrM3bJkbhcOc8bJkDiJsa8BNkdDhOAKtydzkNbO(aEeS6AHvvvvhhzHvvvv9mQzOu3Npyunz1hzOmm5pbCVZ7Grfj1muFcKNZeMep3AvWZXjSQQQQQQQkDaOuNQ58hYMfwvvvDCKfwvvvLoauQt1CwcDml84ilSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWxKShYqIN7BcheMHbCrwLq4lYD(aoWVD33fd4E39DrIDAtZ)yVCrYOuoWVDxC5Ie70MMDWHKvlKqk8Wtcc4xr6QvlKCmiXcPxKyN2utFSrCruO5fq5oOehmNXlcYzyUibkeyhCraL7GsCW8LZWCriaL7H5j4JYDqjoyUiGYDqjoyGdQJ4IQQQQ0bGsDQmOocGF7EyGUHHoqqwQqaofWAwQqaofWkwQKNeGZAwQKNeGZkRfwvvvvvLoauQtfcWPawtnSO(WaDddDGGunLk5jb4S2AlviaNcyf1WI6dd0nm0bcs1uQKNeGZkRfwvvvDCKfwv9Iqe80K7yVCrEYWt(XgXfj2Pn1wh7LlM7yJ4Ie70M(LZWCrcuiWo4IHFSrCruO5LyN20l7Ie70MchuhXfPdaL6uzqDea)29WaDddDGGSuPlwQWSyPACXsLVyPsxzPcZklvJRSu5RwlSQQQAAtWtQVwVwVwVwVwVwQzOmm2d3GNoqQHu)Z5b2cLYFy2qINBOMTun))obgN6)dGNmVwyvvvvpJAgkdJ9Wn4PdKAOqQoFsf8CCQiH0Fo3qmqqCAoviVJyuzDBP6DCcGhzJQNr1TvnIYWyPAefOcXzgqovgpfciSQQQQQQQkDaOuNkcl1flvewQQ8fHvvvvhhzHvvvvtBcEs916161snJtydzkNbebCcBGudP(NZdSfkL)WSHep3qnBPAoJtydzkNbyETWQQQQPnbpPMH6tG8CMWK45udPskliewvvvnTj4jv7bghAMhaPgs9pNh8ZoSh6dZgs8Cd1SLA8h7HjmV)yBw3E(Vz)Lp78yB6x7)Nzp)OLkGIoRfwvvvnTj4j1mpa6NHApW4qvdPUGqyvvv10MGNuThyCOqQHud4GNWotAVPpShyCOzEaKjM5bq)mu7bgh6AHvvvvtBcEs916161s93SF5qGpFWOgs10diAysP8Cm7hM)9jFdPMTtaZRfwvvvnTj4j1mugM8NaU35DWOgs9rgkdJ9Wn4PdKksQMEaF(G5X61MAbbcecRQQQM2e8KAgk195dg1qQ2dmouit9B2VCiWNpyewvvv1ZOMXjSHmLZaIaoHnqQMCiv4vbphNQksirNGnY8oyuj4qavGpyuPdzucGF7uzO7avJCcBit5ma1hWJGvxlSQQQQQQQAgk195dg1qQzOu3Npym1cctKuHvvvvhhzHvvvv9mQzOu3Npyunz1hzOmm5pbCVZ7Grfj1muFcKNZeMep3AvWZXPkSQQQQQQQkDaOuNkDLLkmRSunUYsLVsyvvv1Xrwyvvvv6aqPov6ILkmlwQgxSu5lcpoYQclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWclSWcFr6gWbZXgXfHi4Pj8J9YboWfbupmWm077ItGXHErexeAJsjMlA2qINBOMVizukh43UlYYfD8Gb6(o2lx8)Dcmo1)hapDGlIcnVtGXHEzx0Wqjgh45WtGNxeXfrHMxOnkLyoJxCcmo03THHYbB6ffSn0frDdYgh4ICuW(IOqZRHHsmoWZHNapVSlAyOeJd8C4jWZ3THHYbB6ffSn0frHMxuNhCzh4IphpmpbhCifb8KaxsxbxeKUWc8KqcSogKGfjxemHdIEyZCSzbXfDObFupmWmuOJ9Yfb(GHg9WM5yZcIlgwrHaEMCxmm2HZ3f9KV43abUyy7jdEESHfceh4I877I)VtGXP()a4PlMNdmugoXys5rSDqMK3HS3apeXlG6D2mas2(NVBQXLdCrKDSxG1QLdCh
For those who don't prefer to load a weak aura, my custom text function is:
Code:
function()
local _,_,_,_,_,_, BuffExpires = UnitAura("player", "Molten Metal")
if BuffExpires == nil then --Unnecessary since WA inactive if no buff, but safety first
return 0, 1, 0, a1
end
local _,_,_, BackdraftStacks = UnitAura("player", "Backdraft")
local BuiltInDelay = 750
local EmberBits = UnitPower("player", SPELL_POWER_BURNING_EMBERS, true)
local BitsPerEmber = 10
local Embers = math.floor(EmberBits/BitsPerEmber)
local _,_,_, CBCastTime = GetSpellInfo("Chaos Bolt")
local BuffRemaining = (BuffExpires - GetTime())*1000
local BurnTime = Embers*CBCastTime
if BackdraftStacks >= 3 then
BurnTime = BurnTime*10/7 --removing cast time reduction from backdraft (30%)
end
if BurnTime > (BuffRemaining - BuiltInDelay) then
return "Red"
end
return "Blue"
end
and my custom color function is essentially the exact same thing (only changing return values to colors), but I'll include it for completeness:
Code:
function(progress, r1, g1, b1, a1, r2, g2, b2, a2)
local _,_,_,_,_,_, BuffExpires = UnitAura("player", "Molten Metal")
if BuffExpires == nil then --Unnecessary since WA inactive if no buff, but safety first
return 0, 1, 0, a1
end
local _,_,_, BackdraftStacks = UnitAura("player", "Backdraft")
local BuiltInDelay = 750
local EmberBits = UnitPower("player", SPELL_POWER_BURNING_EMBERS, true)
local BitsPerEmber = 10
local Embers = math.floor(EmberBits/BitsPerEmber)
local _,_,_, CBCastTime = GetSpellInfo("Chaos Bolt")
local BuffRemaining = (BuffExpires - GetTime())*1000
local BurnTime = Embers*CBCastTime
if BackdraftStacks >= 3 then --removing cast time reduction from backdraft (30%)
BurnTime = BurnTime*10/7
end
if BurnTime > (BuffRemaining - BuiltInDelay) then
return r2, g2, b2, a2
end
return r1, g1, b1, a1
end