Compare commits

...

2 Commits

Author SHA1 Message Date
5d09cad6cb Update changelog
v1.14.0 got posted again as if it were the newest version, so this small update remedies that.
2022-11-23 22:37:41 -06:00
8fc2e326aa Add option to scale absorb bar by health
By user request.
2022-11-23 18:50:52 -06:00
3 changed files with 39 additions and 3 deletions

View File

@ -1,5 +1,9 @@
# Changelog
v1.14.7:
- Add option to scale absorb bar by the unit's maximum health.
v1.14.6:
- Add ability for buff/debuff watchers to only display when the specified buff/debuff is missing. This also adds the ability to require that the given unit exists. So if you had Unit set to Target, Display mode set to Missing, and Only if unit exists checked, you'd show the bar if you have a target and they don't have the given buff/debuff.

View File

@ -1,3 +1,4 @@
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
IceTargetAbsorb = IceCore_CreateClass(IceUnitBar)
IceTargetAbsorb.prototype.highestAbsorbSinceLastZero = 0
@ -29,6 +30,28 @@ function IceTargetAbsorb.prototype:GetDefaultSettings()
return settings
end
function IceTargetAbsorb.prototype:GetOptions()
local opts = IceTargetAbsorb.super.prototype.GetOptions(self)
opts["scaleToUnitHealth"] = {
type = 'toggle',
name = L["Scale to health"],
desc = L["Whether the bar's maximum value should be set to the unit's maximum health or not. If set, any absorb above that amount will not be shown."],
get = function()
return self.moduleSettings.scaleToUnitHealth
end,
set = function(info, v)
self.moduleSettings.scaleToUnitHealth = v
self:Update()
end,
disabled = function()
return not self.moduleSettings.enabled
end
}
return opts
end
function IceTargetAbsorb.prototype:Enable(core)
IceTargetAbsorb.super.prototype.Enable(self, core)
@ -47,6 +70,7 @@ function IceTargetAbsorb.prototype:MyUnregisterCustomEvents()
end
function IceTargetAbsorb.prototype:Update()
IceTargetAbsorb.super.prototype.Update(self)
self:UpdateAbsorbAmount()
end
@ -63,13 +87,17 @@ function IceTargetAbsorb.prototype:UpdateAbsorbAmount(event, unit)
self.highestAbsorbSinceLastZero = absorbAmount
end
self.absorbPercent = self.highestAbsorbSinceLastZero ~= 0 and absorbAmount / self.highestAbsorbSinceLastZero or 0
local maxAbsorb = self.highestAbsorbSinceLastZero
if self.moduleSettings.scaleToUnitHealth then
maxAbsorb = self.maxHealth
end
self.absorbPercent = maxAbsorb ~= 0 and IceHUD:Clamp(absorbAmount / maxAbsorb, 0, 1) or 0
if absorbAmount <= 0 or self.highestAbsorbSinceLastZero <= 0 then
if absorbAmount <= 0 or maxAbsorb <= 0 then
self:Show(false)
else
self:Show(true)
self:UpdateBar(absorbAmount / self.highestAbsorbSinceLastZero, self.ColorName)
self:UpdateBar(self.absorbPercent, self.ColorName)
end
if not IceHUD.IceCore:ShouldUseDogTags() and self.frame:IsVisible() then

View File

@ -1,5 +1,9 @@
# Changelog
v1.14.7:
- Add option to scale absorb bar by the unit's maximum health.
v1.14.6:
- Add ability for buff/debuff watchers to only display when the specified buff/debuff is missing. This also adds the ability to require that the given unit exists. So if you had Unit set to Target, Display mode set to Missing, and Only if unit exists checked, you'd show the bar if you have a target and they don't have the given buff/debuff.