function() local GetUnitAuraValue = function(aura, valueType, unit, sourceUnit)
if not aura then return end valueType, unit = valueType or 'name', unit or 'player' if not UnitExists(unit) then return end local v, value = {}
local GetAuraValues = function(unit, aura, filter)
local v, filter = {}, filter or 'HELPFUL'
v.name, v.rank, v.icon, v.count, v.auraType, v.duration, v.expirationTime, v.unitCaster, v.isStealable, v.shouldConsolidate, v.spellId, v.canApplyAura, v.isBossDebuff, v.value1, v.value2, v.value3 = UnitAura(unit, aura, type(aura)=='number' and filter or nil, filter)
return v
end
local GetAuraValue = function(v, t, s) if v[t] then if s then if v.unitCaster and UnitExists(s) and v.unitCaster == s then return v[t] end else return v[t] end end end
if type(aura) == 'string' then
v = GetAuraValues(unit, aura)
if GetAuraValue(v,valueType,sourceUnit) then return GetAuraValue(v,valueType,sourceUnit) end
v = GetAuraValues(unit, aura, 'HARMFUL')
if GetAuraValue(v,valueType,sourceUnit) then return GetAuraValue(v,valueType,sourceUnit) end
elseif type(aura) == 'number' then
for i=1,40 do v = GetAuraValues(unit, i)
if v.spellId and v.spellId == aura then if GetAuraValue(v,valueType,sourceUnit) then return GetAuraValue(v,valueType,sourceUnit) end end
v = GetAuraValues(unit, i, 'HARMFUL')
if v.spellId and v.spellId == aura then if GetAuraValue(v,valueType,sourceUnit) then return GetAuraValue(v,valueType,sourceUnit) end end
end
end
end
local ShortenNumber = function(value, decimal, format)
if not value then return end
format = format or '%s%s'
function round(val, decimal)
if (decimal) then
return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
else
return math.floor(val+0.5)
end
end
if(value > 999999999) then return (format):format(round(value/1000000000, decimal), 'b') end
if(value > 999999) then return (format):format(round(value/1000000, decimal), 'm') end
if(value > 999) then return (format):format(round(value/1000, decimal), 'k') end
end
-- BEGIN EDIT
local shield = ShortenNumber(GetUnitAuraValue(235450, 'value2'))
return shield or ''
-- END EDIT
end