Compare commits

...

1 Commits

Author SHA1 Message Date
b0f7c776db Fix the Vengeance module
One of the return values of UnitAura is the Vengeance amount and the GameTooltip scanning thing is no longer working.
2024-05-12 11:11:53 -05:00
4 changed files with 19 additions and 36 deletions

View File

@ -486,7 +486,7 @@ end
function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine, matchByName)
if not unit or not ability then
return 0
return 0, nil
end
if unit == "main hand weapon" or unit == "off hand weapon" then
@ -494,21 +494,21 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine, matchByName)
= GetWeaponEnchantInfo()
if unit == "main hand weapon" and hasMainHandEnchant then
return mainHandCharges
return mainHandCharges, nil
elseif unit == "off hand weapon" and hasOffHandEnchant then
return offHandCharges
return offHandCharges, nil
end
return 0
return 0, nil
end
-- Support for Spell IDs
if (IceHUD.GetPlayerAuraBySpellID and tonumber(ability) ~= nil) then
local aura = C_UnitAuras.GetPlayerAuraBySpellID(ability)
if aura ~= nil then
return aura.applications
return aura.applications, nil
else
return 0
return 0, nil
end
end
@ -522,7 +522,7 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine, matchByName)
while name do
if (not matchByName and string.match(texture:upper(), ability:upper()))
or (matchByName and string.match(name:upper(), ability:upper())) then
return applications
return applications, i
end
i = i + 1
@ -533,7 +533,7 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine, matchByName)
end
end
return 0
return 0, nil
end
do

View File

@ -1,5 +1,9 @@
# Changelog
v1.14.42:
- Fix Vengeance module in Cataclysm Classic
v1.14.41:
- Fix swapped DK runes in Cataclysm Classic

View File

@ -50,41 +50,16 @@ end
-- scan the tooltip and extract the vengeance value
do
-- making these local as they're not used anywhere else
local regions = {}
local spellName = GetSpellInfo(VENGEANCE_SPELL_ID)
local tooltipBuffer = CreateFrame("GameTooltip","tooltipBuffer",nil,"GameTooltipTemplate")
tooltipBuffer:SetOwner(WorldFrame, "ANCHOR_NONE")
-- suggested by Antiarc as a way to repopulate the same table instead of repeatedly creating a new one
local function makeTable(t, ...)
wipe(t)
for i = 1, select("#", ...) do
t[i] = select(i, ...)
end
end
function Vengeance.prototype:UpdateCurrent(event, unit)
if (unit and (unit ~= self.unit)) then
return
end
local name = UnitAura(self.unit, spellName)
if name then
-- Buff found, copy it into the buffer for scanning
tooltipBuffer:ClearLines()
tooltipBuffer:SetUnitBuff(self.unit, name)
-- Grab all regions, stuff em into our table
makeTable(regions, tooltipBuffer:GetRegions())
-- Convert FontStrings to strings, replace anything else with ""
for i=1, #regions do
local region = regions[i]
regions[i] = region:GetObjectType() == "FontString" and region:GetText() or ""
end
-- Find the number, save it
self.current = tonumber(string.match(table.concat(regions),"%d+")) or 0
local _, idx = IceHUD:GetBuffCount(self.unit, spellName, true, true)
if idx then
self.current = select(17, UnitAura(self.unit, idx))
else
self.current = 0
end

View File

@ -1,5 +1,9 @@
# Changelog
v1.14.42:
- Fix Vengeance module in Cataclysm Classic
v1.14.41:
- Fix swapped DK runes in Cataclysm Classic