mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 06:40:13 -05:00
Fix cooldown display for overridden spells
When a spell is overridden by another, our cooldown bar stops being able to track it. Normally this is fine if the spell completely changes as you probably don't expect a cd bar for Backstab to track Gloomblade. But when the overridden spell shares the same name as the base spell, such as Fire Breath for Evokers with the Font of Magic talent, you very much would expect the bar to track both. With this fix, tracking the base spell will show the cd for the overridden version as well.
This commit is contained in:
@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
v1.15.7:
|
||||
|
||||
- Fix cooldown display for overridden spells (such as Evoker spells where Font of Magic replaces the base spell with an override with the same name).
|
||||
|
||||
v1.15.6:
|
||||
|
||||
- Package new version of LibDogTag-Unit to fix an error with some units on 11.0.2
|
||||
|
@ -36,7 +36,7 @@ if not GetSpellInfo and C_Spell and C_Spell.GetSpellInfo then
|
||||
|
||||
local info = C_Spell.GetSpellInfo(id)
|
||||
if info then
|
||||
return info.name, nil, info.iconID
|
||||
return info.name, nil, info.iconID, info.spellID
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -636,8 +636,18 @@ end
|
||||
|
||||
-- 'Protected' methods --------------------------------------------------------
|
||||
|
||||
function IceCustomCDBar.prototype:GetCooldownDurationOverride(spellID)
|
||||
if spellID and FindSpellOverrideByID then
|
||||
local override = FindSpellOverrideByID(spellID)
|
||||
if override and override ~= spellID then
|
||||
return self:GetCooldownDuration(override)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function IceCustomCDBar.prototype:GetCooldownDuration(buffName)
|
||||
buffName = self:GetSpellNameOrId(buffName)
|
||||
local spellID
|
||||
buffName, spellID = self:GetSpellNameOrId(buffName)
|
||||
|
||||
local now = GetTime()
|
||||
local localRemaining = nil
|
||||
@ -646,7 +656,7 @@ function IceCustomCDBar.prototype:GetCooldownDuration(buffName)
|
||||
if hasCooldown then
|
||||
-- the item has a potential cooldown
|
||||
if localDuration <= 1.5 then
|
||||
return nil, nil
|
||||
return self:GetCooldownDurationOverride(spellID)
|
||||
end
|
||||
|
||||
localRemaining = localDuration + (localStart - now)
|
||||
@ -657,7 +667,7 @@ function IceCustomCDBar.prototype:GetCooldownDuration(buffName)
|
||||
|
||||
return localDuration, localRemaining
|
||||
else
|
||||
return nil, nil
|
||||
return self:GetCooldownDurationOverride(spellID)
|
||||
end
|
||||
end
|
||||
|
||||
@ -868,7 +878,8 @@ function IceCustomCDBar.prototype:IsReady()
|
||||
end
|
||||
|
||||
function IceCustomCDBar.prototype:GetSpellNameOrId(spellName)
|
||||
return spellName
|
||||
local id = select(4, GetSpellInfo(spellName))
|
||||
return spellName, id
|
||||
end
|
||||
|
||||
function IceCustomCDBar.prototype:Show(bShouldShow, bForceHide)
|
||||
|
@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
v1.15.7:
|
||||
|
||||
- Fix cooldown display for overridden spells (such as Evoker spells where Font of Magic replaces the base spell with an override with the same name).
|
||||
|
||||
v1.15.6:
|
||||
|
||||
- Package new version of LibDogTag-Unit to fix an error with some units on 11.0.2
|
||||
|
Reference in New Issue
Block a user