Add stack display

This commit is contained in:
PhatDave
2022-01-06 19:24:42 +01:00
parent de8eaf1318
commit b172e1c18a

View File

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