mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
8627ad39d5
|
|||
8c62a841fd
|
|||
7496475ff4
|
|||
c5c44edf64
|
|||
59f2792ce8
|
|||
a80daface7
|
|||
f6db2f3b7c
|
|||
5d09cad6cb
|
|||
8fc2e326aa
|
|||
d775603ec0
|
|||
70bba2f186
|
|||
8ac9bee610
|
|||
07bda8e84d
|
@ -707,6 +707,11 @@ function IceCastBar.prototype:SpellCastSucceeded(event, unit, castGuid, spellId)
|
||||
end
|
||||
end
|
||||
|
||||
-- handle special spells that are used for quests or other things that don't apply to the player
|
||||
if self.unit == "player" and not IsPlayerSpell(spellId) then
|
||||
return
|
||||
end
|
||||
|
||||
self:StartBar(IceCastBar.Actions.Success, spell.. self:GetShortRank(rank), spellId)
|
||||
end
|
||||
|
||||
|
@ -645,10 +645,11 @@ function IceCore.prototype:GetModuleOptions()
|
||||
|
||||
for i = 1, table.getn(self.elements) do
|
||||
local modName = self.elements[i]:GetElementName()
|
||||
local modDesc = self.elements[i]:GetElementDescription()
|
||||
local opt = self.elements[i]:GetOptions()
|
||||
options[modName] = {
|
||||
type = 'group',
|
||||
desc = L["Module options"],
|
||||
desc = modDesc,
|
||||
name = modName,
|
||||
args = opt
|
||||
}
|
||||
|
@ -63,6 +63,10 @@ function IceElement.prototype:GetElementName()
|
||||
return self.elementName
|
||||
end
|
||||
|
||||
function IceElement.prototype:GetElementDescription()
|
||||
return L["Module options"]
|
||||
end
|
||||
|
||||
|
||||
function IceElement.prototype:Create(parent)
|
||||
assert(parent, "IceElement 'parent' can't be nil")
|
||||
|
@ -100,6 +100,7 @@ modules\PlayerAltMana.lua
|
||||
modules\ArcaneCharges.lua
|
||||
modules\RollTheBones.lua
|
||||
modules\EssencePower.lua
|
||||
modules\DruidEnergy.lua
|
||||
|
||||
#@do-not-package@
|
||||
IceHUD_Options\Json.lua
|
||||
|
@ -87,7 +87,7 @@ function IceUnitBar.prototype:GetOptions()
|
||||
self:Redraw()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled or not self.moduleSettings.lowThresholdFlash
|
||||
return not self.moduleSettings.enabled or not (self.moduleSettings.lowThresholdFlash or self.moduleSettings.lowThresholdColor)
|
||||
end,
|
||||
min = 0,
|
||||
max = 1,
|
||||
@ -105,10 +105,14 @@ function IceUnitBar.prototype:GetOptions()
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.lowThresholdFlash = v
|
||||
self:Redraw()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
hidden = function()
|
||||
return self.noFlash
|
||||
end,
|
||||
order = 30.092
|
||||
}
|
||||
opts["lowThresholdColor"] = {
|
||||
@ -123,7 +127,7 @@ function IceUnitBar.prototype:GetOptions()
|
||||
self:Redraw()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled or not (self.moduleSettings.scaleHealthColor and self.moduleSettings.scaleManaColor)
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
order = 30.093
|
||||
}
|
||||
@ -278,14 +282,14 @@ function IceUnitBar.prototype:Update()
|
||||
-- This looks slightly quirky. Basically the easiest way for me to achieve this is to have lowThresholdColor override
|
||||
-- the scaled color. You'll need to switch them both on to get things to work.
|
||||
if( self.moduleSettings.lowThresholdColor ) then
|
||||
if( self.healthPercentage < self.moduleSettings.lowThreshold ) then
|
||||
if( self.healthPercentage <= self.moduleSettings.lowThreshold ) then
|
||||
self.settings.colors[ "ScaledHealthColor" ] = self.settings.colors[ "MinHealthColor" ]
|
||||
else
|
||||
elseif not self.moduleSettings.scaleHealthColor then
|
||||
self.settings.colors[ "ScaledHealthColor" ] = self.settings.colors[ "MaxHealthColor" ]
|
||||
end
|
||||
if( self.manaPercentage < self.moduleSettings.lowThreshold ) then
|
||||
if( self.manaPercentage <= self.moduleSettings.lowThreshold ) then
|
||||
self.settings.colors[ "ScaledManaColor" ] = self.settings.colors[ "MinManaColor" ]
|
||||
else
|
||||
elseif not self.moduleSettings.scaleManaColor then
|
||||
self.settings.colors[ "ScaledManaColor" ] = self.settings.colors[ "MaxManaColor" ]
|
||||
end
|
||||
end
|
||||
|
27
changelog.md
27
changelog.md
@ -1,5 +1,32 @@
|
||||
# Changelog
|
||||
|
||||
v1.14.11:
|
||||
|
||||
- Packaged a new version of LibDogTag-Unit to fix the Guild roster resetting its scroll position every 20 seconds.
|
||||
|
||||
v1.14.10:
|
||||
|
||||
- Fix an error in TargetTargetHealth/Mana and CustomHealth when Low Threshold Color was checked and Scale by Health % was un-checked.
|
||||
|
||||
v1.14.9:
|
||||
|
||||
- Fix Low Threshold to be usable even when Color By Health/Mana % is disabled. (ticket #334)
|
||||
|
||||
v1.14.8:
|
||||
|
||||
- Fix Color By Health % to work with Low Threshold Color option. Previously, if Low Threshold was set, the color was always either MaxHealth/MaxMana or MinHealth/MinMana, it would never be colored by health %. Now if both are set, it will scale by health % until it reaches the low threshold, at which point it will switch to the Min color.
|
||||
- Fix Low Threshold color and flashing to work at the same percentage. Previously these were slightly different such that it would start flashing at 40% but not turn to the Min color until 39.9999%, for example.
|
||||
|
||||
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.
|
||||
- Don't flash the castbar for instant-cast spells that the player didn't cast (such as internal quest spells).
|
||||
- Add DruidEnergy module (disabled by default). This module will show the player's Energy level if they're a Druid and currently shapeshifted to a non-energy-using form (eligible forms are configurable by the user).
|
||||
|
||||
v1.14.5:
|
||||
|
||||
- Fix castbar flashing. There are controls on the player castbar module for flashing when a spell succeeds or fails, and separate controls for flashing when an instant cast completes. Those were broken, but now work again.
|
||||
|
@ -10,6 +10,7 @@ local buffOrDebuff = {"buff", "debuff"}
|
||||
local validBuffTimers = {"none", "seconds", "minutes:seconds", "minutes"}
|
||||
local AuraIconWidth = 20
|
||||
local AuraIconHeight = 20
|
||||
local displayModes = {NORMAL = L["When present"], ALWAYS = L["Always"], WHEN_TARGETING = L["Always, when targeting"], MISSING = L["When missing"]}
|
||||
|
||||
IceCustomBar.prototype.auraDuration = -1
|
||||
IceCustomBar.prototype.auraEndTime = -1
|
||||
@ -28,6 +29,16 @@ end
|
||||
function IceCustomBar.prototype:Enable(core)
|
||||
IceCustomBar.super.prototype.Enable(self, core)
|
||||
|
||||
-- fix up for new display mode setting
|
||||
if self.moduleSettings.displayWhenTargeting then
|
||||
self.moduleSettings.displayMode = displayModes.WHEN_TARGETING
|
||||
self.moduleSettings.displayWhenTargeting = nil
|
||||
end
|
||||
if self.moduleSettings.displayWhenEmpty then
|
||||
self.moduleSettings.displayMode = displayModes.ALWAYS
|
||||
self.moduleSettings.displayWhenEmpty = nil
|
||||
end
|
||||
|
||||
if IceHUD.IceCore:ShouldUseDogTags() then
|
||||
DogTag = LibStub("LibDogTag-3.0", true)
|
||||
if DogTag then
|
||||
@ -149,8 +160,7 @@ function IceCustomBar.prototype:GetDefaultSettings()
|
||||
settings["buffOrDebuff"] = "buff"
|
||||
settings["barColor"] = {r=1, g=0, b=0, a=1}
|
||||
settings["trackOnlyMine"] = true
|
||||
settings["displayWhenEmpty"] = false
|
||||
settings["displayWhenTargeting"] = false
|
||||
settings["displayMode"] = displayModes.NORMAL
|
||||
settings["hideAnimationSettings"] = true
|
||||
settings["buffTimerDisplay"] = "minutes"
|
||||
settings["maxDuration"] = 0
|
||||
@ -431,38 +441,39 @@ function IceCustomBar.prototype:GetOptions()
|
||||
order = 30.8,
|
||||
}
|
||||
|
||||
opts["displayWhenEmpty"] = {
|
||||
type = 'toggle',
|
||||
name = L["Display when empty"],
|
||||
desc = L["Whether or not to display this bar even if the buff/debuff specified is not present."],
|
||||
get = function()
|
||||
return self.moduleSettings.displayWhenEmpty
|
||||
opts["displayMode"] = {
|
||||
type = 'select',
|
||||
values = displayModes,
|
||||
name = L["Display mode"],
|
||||
desc = L["When to show the bar"],
|
||||
get = function(info)
|
||||
return IceHUD:GetSelectValue(info, self.moduleSettings.displayMode)
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.displayWhenEmpty = v
|
||||
self.moduleSettings.displayMode = info.option.values[v]
|
||||
self:UpdateCustomBar()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
order = 30.9
|
||||
order = 30.9,
|
||||
}
|
||||
|
||||
opts["displayWhenTargeting"] = {
|
||||
opts["displayWhenUnitExists"] = {
|
||||
type = 'toggle',
|
||||
name = L["Display when targeting"],
|
||||
desc = L["Whether to display this bar when you target a unit, even if the buff/debuff specified is not present."],
|
||||
get = function()
|
||||
return self.moduleSettings.displayWhenTargeting
|
||||
name = L["Only if unit exists"],
|
||||
desc = L["If checked, the bar will only be displayed (according to the 'Display mode' rules) when the Unit to Track exists (e.g. if set to Target and you're targeting something)."],
|
||||
get = function(info)
|
||||
return self.moduleSettings.displayWhenUnitExists
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.displayWhenTargeting = v
|
||||
self.moduleSettings.displayWhenUnitExists = v
|
||||
self:UpdateCustomBar()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
order = 30.91
|
||||
order = 30.91,
|
||||
}
|
||||
|
||||
opts["buffTimerDisplay"] = {
|
||||
@ -866,9 +877,16 @@ function IceCustomBar.prototype:Show(bShouldShow, bForceHide)
|
||||
return
|
||||
end
|
||||
|
||||
if self.moduleSettings.displayWhenTargeting and self.target then
|
||||
if self.moduleSettings.displayWhenUnitExists and not UnitExists(self.unit) then
|
||||
IceCustomBar.super.prototype.Show(self, false)
|
||||
return
|
||||
end
|
||||
|
||||
if self.moduleSettings.displayMode == displayModes.MISSING then
|
||||
IceCustomBar.super.prototype.Show(self, not bShouldShow)
|
||||
elseif self.moduleSettings.displayMode == displayModes.WHEN_TARGETING and self.target then
|
||||
IceCustomBar.super.prototype.Show(self, true)
|
||||
elseif self.moduleSettings.displayWhenEmpty then
|
||||
elseif self.moduleSettings.displayMode == displayModes.ALWAYS then
|
||||
if not self.bIsVisible then
|
||||
IceCustomBar.super.prototype.Show(self, true)
|
||||
end
|
||||
|
@ -144,6 +144,8 @@ function IceCustomHealth.prototype:Update(unit)
|
||||
|
||||
if (self.moduleSettings.scaleHealthColor) then
|
||||
self.color = "ScaledHealthColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||
self.color = "ScaledHealthColor"
|
||||
end
|
||||
|
||||
if (self.tapped) then
|
||||
|
123
modules/DruidEnergy.lua
Normal file
123
modules/DruidEnergy.lua
Normal file
@ -0,0 +1,123 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
local DruidEnergy = IceCore_CreateClass(IceUnitBar)
|
||||
|
||||
DruidEnergy.prototype.DruidEnergy = nil
|
||||
DruidEnergy.prototype.DruidEnergyMax = nil
|
||||
|
||||
local _, unitClass = UnitClass("player")
|
||||
|
||||
local FORM_NONE = 0
|
||||
local FORM_BEAR = 1
|
||||
local FORM_TRAVEL = 3
|
||||
|
||||
local SPELL_POWER_ENERGY = SPELL_POWER_ENERGY
|
||||
if Enum and Enum.PowerType then
|
||||
SPELL_POWER_ENERGY = Enum.PowerType.Energy
|
||||
end
|
||||
|
||||
local shapeshiftFormValues = {NONE = L["No form"], BEAR = L["Bear"], TRAVEL = L["Travel"], OTHER = L["Other"]}
|
||||
local shapeshiftFormIds = {NONE = FORM_NONE, BEAR = FORM_BEAR, TRAVEL = FORM_TRAVEL}
|
||||
|
||||
function DruidEnergy.prototype:init()
|
||||
DruidEnergy.super.prototype.init(self, "DruidEnergy", "player")
|
||||
|
||||
self.side = IceCore.Side.Left
|
||||
self.offset = 5
|
||||
|
||||
self:SetDefaultColor("DruidEnergy", 218, 231, 31)
|
||||
end
|
||||
|
||||
function DruidEnergy.prototype:GetDefaultSettings()
|
||||
local settings = DruidEnergy.super.prototype.GetDefaultSettings(self)
|
||||
|
||||
settings["side"] = IceCore.Side.Left
|
||||
settings["offset"] = 5
|
||||
settings["textVisible"] = {upper = true, lower = false}
|
||||
settings["upperText"] = "[PercentMP(type='Energy'):Round]"
|
||||
settings["lowerText"] = "[FractionalMP(type='Energy'):Color('dae71f'):Bracket]"
|
||||
settings.enabled = false
|
||||
settings.whileInForm = {["BEAR"] = true}
|
||||
|
||||
return settings
|
||||
end
|
||||
|
||||
function DruidEnergy.prototype:GetOptions()
|
||||
local opts = DruidEnergy.super.prototype.GetOptions(self)
|
||||
|
||||
opts["whileInForm"] = {
|
||||
type = 'multiselect',
|
||||
values = shapeshiftFormValues,
|
||||
name = L["Show in form"],
|
||||
desc = L["When the player is in one of the chosen shapeshift forms the bar will be shown, otherwise it will be hidden."],
|
||||
get = function(info, v)
|
||||
for key, value in pairs(self.moduleSettings.whileInForm) do
|
||||
if key == v then
|
||||
return value
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end,
|
||||
set = function(info, v, state)
|
||||
self.moduleSettings.whileInForm[v] = state
|
||||
self:Update()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
}
|
||||
|
||||
return opts
|
||||
end
|
||||
|
||||
function DruidEnergy.prototype:Enable(core)
|
||||
DruidEnergy.super.prototype.Enable(self, core)
|
||||
|
||||
self:RegisterEvent("UPDATE_SHAPESHIFT_FORM", "Update")
|
||||
self:RegisterEvent("UNIT_POWER_FREQUENT", "Update")
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "Update")
|
||||
end
|
||||
|
||||
function DruidEnergy.prototype:GetElementDescription()
|
||||
return L["Always shows the Druid's Energy level while in non-energy-using forms."]
|
||||
end
|
||||
|
||||
|
||||
function DruidEnergy.prototype:ShouldShow(unit)
|
||||
local currentForm = GetShapeshiftForm()
|
||||
for k, v in pairs(self.moduleSettings.whileInForm) do
|
||||
if currentForm > FORM_TRAVEL and k == "OTHER" then
|
||||
return v
|
||||
elseif currentForm == shapeshiftFormIds[k] then
|
||||
return v
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function DruidEnergy.prototype:Update()
|
||||
DruidEnergy.super.prototype.Update(self)
|
||||
|
||||
self.DruidEnergy = UnitPower(self.unit, SPELL_POWER_ENERGY)
|
||||
self.DruidEnergyMax = UnitPowerMax(self.unit, SPELL_POWER_ENERGY)
|
||||
self.DruidEnergyPercentage = self.DruidEnergyMax ~= 0 and (self.DruidEnergy/self.DruidEnergyMax) or 0
|
||||
|
||||
if (not self.alive or not self:ShouldShow(self.unit) or not self.DruidEnergy or not self.DruidEnergyMax or self.DruidEnergyMax == 0) then
|
||||
self:Show(false)
|
||||
return
|
||||
else
|
||||
self:Show(true)
|
||||
end
|
||||
|
||||
if not IceHUD.IceCore:ShouldUseDogTags() and self.frame:IsVisible() then
|
||||
self:SetBottomText1(math.floor(self.DruidEnergyPercentage * 100))
|
||||
self:SetBottomText2(self:GetFormattedText(self:Round(self.DruidEnergy), self:Round(self.DruidEnergyMax)), "DruidEnergy")
|
||||
end
|
||||
|
||||
self:UpdateBar(self.DruidEnergyMax ~= 0 and self.DruidEnergy / self.DruidEnergyMax or 0, "DruidEnergy")
|
||||
end
|
||||
|
||||
if unitClass == "DRUID" then
|
||||
IceHUD.DruidEnergy = DruidEnergy:new()
|
||||
end
|
@ -364,6 +364,8 @@ function FocusHealth.prototype:Update(unit)
|
||||
|
||||
if (self.moduleSettings.scaleHealthColor) then
|
||||
self.color = "ScaledHealthColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||
self.color = "ScaledHealthColor"
|
||||
end
|
||||
|
||||
if (self.tapped) then
|
||||
|
@ -88,6 +88,8 @@ function FocusMana.prototype:Update(unit)
|
||||
local color = "FocusMana"
|
||||
if (self.moduleSettings.scaleManaColor) then
|
||||
color = "ScaledManaColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||
color = "ScaledManaColor"
|
||||
end
|
||||
if (manaType == SPELL_POWER_RAGE) then
|
||||
color = "FocusRage"
|
||||
|
@ -93,6 +93,8 @@ function PetHealth.prototype:Update(unit)
|
||||
|
||||
if (self.moduleSettings.scaleHealthColor) then
|
||||
color = "ScaledHealthColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||
color = "ScaledHealthColor"
|
||||
end
|
||||
|
||||
if not (self.alive) then
|
||||
|
@ -173,6 +173,8 @@ function PetMana.prototype:Update(unit)
|
||||
local color = "PetMana"
|
||||
if (self.moduleSettings.scaleManaColor) then
|
||||
color = "ScaledManaColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||
color = "ScaledManaColor"
|
||||
end
|
||||
if not (self.alive) then
|
||||
color = "Dead"
|
||||
|
@ -1276,6 +1276,8 @@ function PlayerHealth.prototype:Update(unit)
|
||||
|
||||
if (self.moduleSettings.scaleHealthColor) then
|
||||
color = "ScaledHealthColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||
color = "ScaledHealthColor"
|
||||
end
|
||||
|
||||
if not (self.alive) then
|
||||
|
@ -344,6 +344,8 @@ function PlayerMana.prototype:Update(unit, powertype)
|
||||
color = "Dead"
|
||||
elseif (self.moduleSettings.scaleManaColor and (UnitPowerType(self.unit) == SPELL_POWER_MANA or self.moduleSettings.scaleManaColorForAll)) then
|
||||
color = "ScaledManaColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||
color = "ScaledManaColor"
|
||||
else
|
||||
if (self.manaType == SPELL_POWER_RAGE) then
|
||||
color = "PlayerRage"
|
||||
|
@ -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
|
||||
|
@ -841,6 +841,8 @@ function IceTargetHealth.prototype:Update(unit)
|
||||
|
||||
if (self.moduleSettings.scaleHealthColor) then
|
||||
self.color = "ScaledHealthColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||
self.color = "ScaledHealthColor"
|
||||
end
|
||||
|
||||
if (self.tapped) then
|
||||
|
@ -125,6 +125,8 @@ function IceTargetMana.prototype:Update(unit)
|
||||
|
||||
if (self.moduleSettings.scaleManaColor) then
|
||||
self.color = "ScaledManaColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||
self.color = "ScaledManaColor"
|
||||
end
|
||||
|
||||
if (manaType == SPELL_POWER_RAGE) then
|
||||
|
@ -136,6 +136,8 @@ function TargetTargetHealth.prototype:Update(unit)
|
||||
|
||||
if (self.moduleSettings.scaleHealthColor) then
|
||||
self.color = "ScaledHealthColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||
self.color = "ScaledHealthColor"
|
||||
end
|
||||
|
||||
if (self.tapped) then
|
||||
|
@ -83,6 +83,8 @@ function TargetTargetMana.prototype:Update(unit)
|
||||
|
||||
if (self.moduleSettings.scaleManaColor) then
|
||||
self.color = "ScaledManaColor"
|
||||
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||
self.color = "ScaledManaColor"
|
||||
end
|
||||
|
||||
if (manaType == 1) then
|
||||
|
@ -1,5 +1,32 @@
|
||||
# Changelog
|
||||
|
||||
v1.14.11:
|
||||
|
||||
- Packaged a new version of LibDogTag-Unit to fix the Guild roster resetting its scroll position every 20 seconds.
|
||||
|
||||
v1.14.10:
|
||||
|
||||
- Fix an error in TargetTargetHealth/Mana and CustomHealth when Low Threshold Color was checked and Scale by Health % was un-checked.
|
||||
|
||||
v1.14.9:
|
||||
|
||||
- Fix Low Threshold to be usable even when Color By Health/Mana % is disabled. (ticket #334)
|
||||
|
||||
v1.14.8:
|
||||
|
||||
- Fix Color By Health % to work with Low Threshold Color option. Previously, if Low Threshold was set, the color was always either MaxHealth/MaxMana or MinHealth/MinMana, it would never be colored by health %. Now if both are set, it will scale by health % until it reaches the low threshold, at which point it will switch to the Min color.
|
||||
- Fix Low Threshold color and flashing to work at the same percentage. Previously these were slightly different such that it would start flashing at 40% but not turn to the Min color until 39.9999%, for example.
|
||||
|
||||
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.
|
||||
- Don't flash the castbar for instant-cast spells that the player didn't cast (such as internal quest spells).
|
||||
- Add DruidEnergy module (disabled by default). This module will show the player's Energy level if they're a Druid and currently shapeshifted to a non-energy-using form (eligible forms are configurable by the user).
|
||||
|
||||
v1.14.5:
|
||||
|
||||
- Fix castbar flashing. There are controls on the player castbar module for flashing when a spell succeeds or fails, and separate controls for flashing when an instant cast completes. Those were broken, but now work again.
|
||||
|
Reference in New Issue
Block a user