diff --git a/NewAge/CataAuraBar/INIT.lua b/NewAge/CataAuraBar/INIT.lua index 2008859..391db19 100644 --- a/NewAge/CataAuraBar/INIT.lua +++ b/NewAge/CataAuraBar/INIT.lua @@ -52,14 +52,19 @@ local Unit = { } local BasicUnit = Unit:New("player") function BasicUnit:GetAuras(auraFunc, name) - local aura, _, _, _, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name) - return { - [UnitName(self.unit)] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name) + if aura ~= nil then + return { + [UnitName(self.unit)] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["stacks"] = stacks or 1, + } } - } + else + return {} + end end -- Maybe implement some sort of throttle to group unit? local GroupUnit = Unit:New("group") @@ -73,24 +78,26 @@ function GroupUnit:GetAuras(auraFunc, name) end auras = {} for i = 1, num do - local aura, _, _, _, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name) + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name) if aura ~= nil then auras[UnitName(unitPrefix .. i)] = { ["duration"] = duration, ["expirationTime"] = expirationTime, ["spellID"] = spellID, ["class"] = UnitClass(unitPrefix .. i) or "Paladin", + ["stacks"] = stacks or 1, } end end if unitPrefix == "party" then - local aura, _, _, _, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name) + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name) if aura ~= nil then auras[UnitName("player")] = { ["duration"] = duration, ["expirationTime"] = expirationTime, ["spellID"] = spellID, ["class"] = UnitClass(unitPrefix .. i) or "Paladin", + ["stacks"] = stacks or 1, } end end @@ -102,12 +109,13 @@ function NameplateUnit:GetAuras(auraFunc, name) local unitPrefix = "nameplate" auras = {} for i = 1, 40 do - local aura, _, _, _, _, duration, expirationTime, _, _, _, spellID = auraFunc(auraPrefix .. i, name) + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(auraPrefix .. i, name) if aura ~= nil then auras[UnitName(unitPrefix .. i)] = { ["duration"] = duration, ["expirationTime"] = expirationTime, ["spellID"] = spellID, + ["stacks"] = stacks or 1, } end end @@ -151,6 +159,8 @@ local Aura = { IsActive = function(self) for k,v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do + for k2, v2 in pairs(v) do + end return true end return false @@ -178,6 +188,7 @@ local Aura = { index = self.index, icon = icon, pname = k, + stacks = v.stacks, pclass = v.class, IsOnCooldown = true, IsActive = true,