mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
7709cb9130
|
|||
c1f631b732
|
|||
6c44ddc93a
|
|||
8b45079d38
|
|||
b1adbe8090
|
|||
01a017c179
|
|||
b8aece0da3
|
|||
6b9b4a358c
|
|||
72adca99f9
|
|||
f8e7cf06d6
|
|||
059808c980
|
|||
689df94d55
|
|||
d49884198d
|
|||
8627ad39d5
|
|||
8c62a841fd
|
|||
7496475ff4
|
|||
c5c44edf64
|
|||
59f2792ce8
|
|||
a80daface7
|
|||
f6db2f3b7c
|
|||
5d09cad6cb
|
|||
8fc2e326aa
|
@ -101,6 +101,7 @@ modules\ArcaneCharges.lua
|
||||
modules\RollTheBones.lua
|
||||
modules\EssencePower.lua
|
||||
modules\DruidEnergy.lua
|
||||
modules\DragonridingVigor.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
|
||||
|
33
changelog.md
33
changelog.md
@ -1,5 +1,38 @@
|
||||
# Changelog
|
||||
|
||||
v1.14.14:
|
||||
|
||||
- Fixed PlayerAlternatePower bar showing up when it shouldn't have, such as when casting Power Word: Shield before ever having done anything to trigger a game-level "alternate power" event, such as mounting a Dragonriding mount.
|
||||
|
||||
v1.14.13:
|
||||
|
||||
- Fixed Vigor module hiding default Climbing, Film, etc. UIs. (wowace ticket #336)
|
||||
|
||||
v1.14.12:
|
||||
|
||||
- Added a module for showing Dragonriding Vigor points.
|
||||
|
||||
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.
|
||||
|
@ -20,7 +20,8 @@ IceClassPowerCounter.prototype.unmodifiedMaxPerRune = 10
|
||||
IceClassPowerCounter.prototype.unit = "player"
|
||||
IceClassPowerCounter.prototype.round = ceil
|
||||
IceClassPowerCounter.prototype.growModes = { width = 1, height = 2 }
|
||||
IceClassPowerCounter.prototype.currentGrowMode = nil
|
||||
IceClassPowerCounter.prototype.currentGrowMode = IceClassPowerCounter.prototype.growModes["height"]
|
||||
IceClassPowerCounter.prototype.shouldRegisterDisplayPower = true
|
||||
|
||||
-- Constructor --
|
||||
function IceClassPowerCounter.prototype:init(name)
|
||||
@ -391,7 +392,7 @@ function IceClassPowerCounter.prototype:GetDefaultSettings()
|
||||
defaults["hideFriendly"] = false
|
||||
defaults["pulseWhenFull"] = true
|
||||
defaults["overrideAlpha"] = true
|
||||
defaults["numericVerticalOffset"] = 0
|
||||
defaults["numericVerticalOffset"] = -25
|
||||
defaults["alwaysShowNumeric"] = false
|
||||
|
||||
return defaults
|
||||
@ -470,7 +471,9 @@ function IceClassPowerCounter.prototype:DisplayCounter()
|
||||
self:UnregisterEvent("PLAYER_LEVEL_UP")
|
||||
|
||||
self:RegisterEvent(self:GetPowerEvent(), "UpdateRunePower")
|
||||
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateRunePower")
|
||||
if self.shouldRegisterDisplayPower then
|
||||
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateRunePower")
|
||||
end
|
||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
||||
if IceHUD.EventExistsUnitMaxPower then
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateRunePower")
|
||||
@ -527,10 +530,15 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
local percentReady = self.shouldShowUnmodified and (UnitPower("player", self.unitPower, true) / self.unmodifiedMaxPerRune) or numReady
|
||||
|
||||
if self:GetRuneMode() == "Numeric" or self.moduleSettings.alsoShowNumeric then
|
||||
local displayPercent = percentReady
|
||||
if self.partialReadyPercent then
|
||||
displayPercent = percentReady + self.partialReadyPercent
|
||||
end
|
||||
|
||||
if self.numericFormat then
|
||||
self.frame.numeric:SetText(format(self.numericFormat, percentReady))
|
||||
self.frame.numeric:SetText(format(self.numericFormat, displayPercent))
|
||||
else
|
||||
self.frame.numeric:SetText(tostring(percentReady))
|
||||
self.frame.numeric:SetText(tostring(displayPercent))
|
||||
end
|
||||
self.frame.numeric:SetTextColor(self:GetColor(self.numericColor))
|
||||
end
|
||||
@ -539,7 +547,7 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
for i=1, self.numRunes do
|
||||
if i <= self.round(percentReady) then
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
self.frame.graphical[i].rune:SetVertexColor(1, 1, 1)
|
||||
self:SetRuneGraphicalTexture(i)
|
||||
else
|
||||
self:SetCustomColor(i)
|
||||
end
|
||||
@ -549,33 +557,14 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
end
|
||||
|
||||
if i > numReady or self.numRunes == 1 then
|
||||
local left, right, top, bottom = 0, 1, 0, 1
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
left, right, top, bottom = unpack(self.runeCoords[i])
|
||||
end
|
||||
|
||||
local currPercent = percentReady - numReady
|
||||
if self.numRunes == 1 then
|
||||
currPercent = numReady / UnitPowerMax("player", self.unitPower)
|
||||
end
|
||||
|
||||
if self.currentGrowMode == self.growModes["height"] then
|
||||
top = bottom - (currPercent * (bottom - top))
|
||||
self.frame.graphical[i].rune:SetHeight(currPercent * self.runeHeight)
|
||||
elseif self.currentGrowMode == self.growModes["width"] then
|
||||
right = left + (currPercent * (right - left))
|
||||
self.frame.graphical[i].rune:SetWidth(currPercent * self.runeWidth)
|
||||
end
|
||||
self.frame.graphical[i].rune:SetTexCoord(left, right, top, bottom)
|
||||
self:SetRuneCoords(i, currPercent)
|
||||
elseif i > self.lastNumReady then
|
||||
if self.runeCoords ~= nil and #self.runeCoords >= i then
|
||||
local left, right, top, bottom = 0, 1, 0, 1
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
left, right, top, bottom = unpack(self.runeCoords[i])
|
||||
end
|
||||
self.frame.graphical[i].rune:SetTexCoord(left, right, top, bottom)
|
||||
self.frame.graphical[i].rune:SetHeight(self.runeHeight)
|
||||
end
|
||||
self:SetRuneCoords(i, 1)
|
||||
|
||||
if self.moduleSettings.flashWhenBecomingReady then
|
||||
local fadeInfo={
|
||||
@ -588,6 +577,17 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
end
|
||||
end
|
||||
else
|
||||
if self.partialReady then
|
||||
if i == self.partialReady then
|
||||
self:SetRuneCoords(i, self.partialReadyPercent)
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
self:SetRuneGraphicalTexture(i, true)
|
||||
end
|
||||
else
|
||||
self:SetRuneCoords(i, 0)
|
||||
end
|
||||
end
|
||||
|
||||
self:HideRune(i)
|
||||
end
|
||||
end
|
||||
@ -609,6 +609,27 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
end
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:SetRuneCoords(rune, percent)
|
||||
if self.runeCoords == nil or #self.runeCoords < rune then
|
||||
return
|
||||
end
|
||||
|
||||
local left, right, top, bottom = 0, 1, 0, 1
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
left, right, top, bottom = unpack(self.runeCoords[rune])
|
||||
end
|
||||
|
||||
if self.currentGrowMode == self.growModes["height"] then
|
||||
top = bottom - (percent * (bottom - top))
|
||||
self.frame.graphical[rune].rune:SetHeight(percent * self.runeHeight)
|
||||
elseif self.currentGrowMode == self.growModes["width"] then
|
||||
right = left + (percent * (right - left))
|
||||
self.frame.graphical[rune].rune:SetWidth(percent * self.runeWidth)
|
||||
end
|
||||
|
||||
self.frame.graphical[rune].rune:SetTexCoord(left, right, top, bottom)
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:HideRune(i)
|
||||
if self:GetRuneMode() == "Numeric" then
|
||||
self.frame.graphical[i].Hide()
|
||||
@ -692,6 +713,18 @@ function IceClassPowerCounter.prototype:GetShineAtlas(rune)
|
||||
return nil
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:GetFrameAtlas(rune)
|
||||
return nil
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:GetBackgroundAtlas(rune)
|
||||
return nil
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:GetPartialRuneAtlas(rune)
|
||||
return nil
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:CreateFrame()
|
||||
IceClassPowerCounter.super.prototype.CreateFrame(self)
|
||||
|
||||
@ -712,6 +745,7 @@ end
|
||||
function IceClassPowerCounter.prototype:SetDisplayMode()
|
||||
if self:GetRuneMode() == "Numeric" or self.moduleSettings.alsoShowNumeric then
|
||||
self.frame.numeric:Show()
|
||||
self.frame.numeric:SetPoint("CENTER", self.frame.numericParent, "CENTER", 0, self.moduleSettings.runeMode == "Numeric" and 0 or self.moduleSettings.numericVerticalOffset)
|
||||
for i=1, self.numRunes do
|
||||
self.frame.graphical[i]:Hide()
|
||||
end
|
||||
@ -723,6 +757,21 @@ function IceClassPowerCounter.prototype:SetDisplayMode()
|
||||
for i=1, self.numRunes do
|
||||
self:SetupRuneTexture(i)
|
||||
self.frame.graphical[i]:Show()
|
||||
|
||||
if self.frame.graphical[i].frame then
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
self.frame.graphical[i].frame:Show()
|
||||
else
|
||||
self.frame.graphical[i].frame:Hide()
|
||||
end
|
||||
end
|
||||
if self.frame.graphical[i].bg then
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
self.frame.graphical[i].bg:Show()
|
||||
else
|
||||
self.frame.graphical[i].bg:Hide()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -737,7 +786,6 @@ function IceClassPowerCounter.prototype:CreateRuneFrame()
|
||||
|
||||
self.frame.numeric:SetJustifyH("CENTER")
|
||||
|
||||
self.frame.numeric:SetPoint("CENTER", self.frame.numericParent, "CENTER", 0, self.moduleSettings.numericVerticalOffset)
|
||||
self.frame.numeric:Hide()
|
||||
|
||||
if (not self.frame.graphical) then
|
||||
@ -758,7 +806,7 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
||||
self.frame.graphical[i] = CreateFrame("Frame", nil, self.frame)
|
||||
self.frame.graphical[i]:SetFrameStrata("BACKGROUND")
|
||||
|
||||
self.frame.graphical[i].rune = self.frame.graphical[i]:CreateTexture(nil, "ARTWORK")
|
||||
self.frame.graphical[i].rune = self.frame.graphical[i]:CreateTexture(nil, "BORDER")
|
||||
self.frame.graphical[i].rune:SetVertexColor(0, 0, 0)
|
||||
self:SetupRuneTexture(i)
|
||||
|
||||
@ -767,7 +815,7 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
||||
self.frame.graphical[i].shine:SetAtlas(self:GetShineAtlas(i))
|
||||
else
|
||||
self.frame.graphical[i].shine:SetTexture("Interface\\ComboFrame\\ComboPoint")
|
||||
self.frame.graphical[i].shine:SetTexCoord(0.5625, 1, 0, 1)
|
||||
self.frame.graphical[i].shine:SetTexCoord(0.5625, 1, 0, 1)
|
||||
end
|
||||
self.frame.graphical[i].shine:SetBlendMode("ADD")
|
||||
self.frame.graphical[i].shine:ClearAllPoints()
|
||||
@ -777,6 +825,22 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
||||
self.frame.graphical[i].shine:SetHeight(self.runeHeight + 10)
|
||||
self.frame.graphical[i].shine:Hide()
|
||||
|
||||
local frameAtlas = self:GetFrameAtlas(i)
|
||||
if frameAtlas then
|
||||
self.frame.graphical[i].frame = self.frame.graphical[i]:CreateTexture(nil, "ARTWORK")
|
||||
self.frame.graphical[i].frame:SetAtlas(frameAtlas)
|
||||
self.frame.graphical[i].frame:ClearAllPoints()
|
||||
self.frame.graphical[i].frame:SetPoint("CENTER", self.frame.graphical[i], "CENTER")
|
||||
end
|
||||
|
||||
local bgAtlas = self:GetBackgroundAtlas(i)
|
||||
if bgAtlas then
|
||||
self.frame.graphical[i].bg = self.frame.graphical[i]:CreateTexture(nil, "BACKGROUND")
|
||||
self.frame.graphical[i].bg:SetAtlas(bgAtlas)
|
||||
self.frame.graphical[i].bg:ClearAllPoints()
|
||||
self.frame.graphical[i].bg:SetAllPoints(self.frame.graphical[i])
|
||||
end
|
||||
|
||||
self.frame.graphical[i]:Hide()
|
||||
end
|
||||
|
||||
@ -784,6 +848,10 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
||||
self.frame.graphical[i]:SetHeight(self.runeHeight)
|
||||
self.frame.graphical[i].rune:SetWidth(self.runeWidth)
|
||||
self.frame.graphical[i].rune:SetHeight(self.runeHeight)
|
||||
if self.frame.graphical[i].frame then
|
||||
self.frame.graphical[i].frame:SetWidth(self.runeWidth + 10)
|
||||
self.frame.graphical[i].frame:SetHeight(self.runeHeight + 10)
|
||||
end
|
||||
if self.currentGrowMode == self.growModes["width"] then
|
||||
self.frame.graphical[i].rune:SetPoint("LEFT", self.frame.graphical[i], "LEFT")
|
||||
else
|
||||
@ -821,12 +889,7 @@ function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
||||
end
|
||||
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
local tex = self:GetRuneTexture(rune)
|
||||
if tex then
|
||||
self.frame.graphical[rune].rune:SetTexture(tex)
|
||||
else
|
||||
self.frame.graphical[rune].rune:SetAtlas(self:GetRuneAtlas(rune), self:UseAtlasSize(rune))
|
||||
end
|
||||
self:SetRuneGraphicalTexture(rune)
|
||||
elseif self:GetRuneMode() == "Graphical Bar" then
|
||||
self.frame.graphical[rune].rune:SetTexture(IceElement.TexturePath .. "Combo")
|
||||
elseif self:GetRuneMode() == "Graphical Circle" then
|
||||
@ -838,6 +901,19 @@ function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
||||
end
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:SetRuneGraphicalTexture(rune, partial)
|
||||
self.frame.graphical[rune].rune:SetVertexColor(1, 1, 1)
|
||||
|
||||
local tex = self:GetRuneTexture(rune)
|
||||
if tex then
|
||||
self.frame.graphical[rune].rune:SetTexture(tex)
|
||||
else
|
||||
local partialAtlas = self:GetPartialRuneAtlas(rune)
|
||||
local atlas = (partial and partialAtlas) and partialAtlas or self:GetRuneAtlas(rune)
|
||||
self.frame.graphical[rune].rune:SetAtlas(atlas, self:UseAtlasSize(rune))
|
||||
end
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:GetAlphaAdd()
|
||||
return 0.15
|
||||
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
|
||||
|
156
modules/DragonridingVigor.lua
Normal file
156
modules/DragonridingVigor.lua
Normal file
@ -0,0 +1,156 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
local DragonridingVigor = IceCore_CreateClass(IceClassPowerCounter)
|
||||
|
||||
local DragonridingBuffs = {
|
||||
360954, -- Highland Drake
|
||||
368896, -- Renewed Proto-Drake
|
||||
368899, -- Windborn Velocidrake
|
||||
368901, -- Cliffside Wylderdrake
|
||||
}
|
||||
|
||||
local vigorWidgetSetID = 283
|
||||
local vigorWidgetID = 4460
|
||||
|
||||
function DragonridingVigor.prototype:init()
|
||||
DragonridingVigor.super.prototype.init(self, "Vigor")
|
||||
|
||||
self:SetDefaultColor("VigorNumeric", 150, 150, 255)
|
||||
|
||||
self.unit = "player"
|
||||
self.numericColor = "VigorNumeric"
|
||||
self.unitPower = ALTERNATE_POWER_INDEX
|
||||
self.minLevel = 0
|
||||
self.bTreatEmptyAsFull = false
|
||||
self.runeWidth = self.runeHeight
|
||||
self.shouldRegisterDisplayPower = false
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:Enable(core)
|
||||
self.numRunes = UnitPowerMax(self.unit, ALTERNATE_POWER_INDEX)
|
||||
self.runeCoords = { }
|
||||
for i = 1, self.numRunes do
|
||||
self:SetupNewRune(i)
|
||||
end
|
||||
|
||||
DragonridingVigor.super.prototype.Enable(self, core)
|
||||
|
||||
self:RegisterEvent("UNIT_AURA", "CheckShouldShow")
|
||||
self:RegisterEvent("UPDATE_UI_WIDGET", "UpdateVigorRecharge")
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:EnteringWorld()
|
||||
DragonridingVigor.super.prototype.EnteringWorld(self)
|
||||
|
||||
self:CheckShouldShow("player")
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:CheckShouldShow(event, unit, info)
|
||||
if unit ~= "player" then
|
||||
return
|
||||
end
|
||||
|
||||
if IceHUD:HasAnyBuff("player", DragonridingBuffs) then
|
||||
self:Show(true)
|
||||
else
|
||||
self:Show(false)
|
||||
if self.moduleSettings.hideBlizz then
|
||||
self:ShowBlizz()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
self:UpdateVigorRecharge("internal")
|
||||
DragonridingVigor.super.prototype.UpdateRunePower(self, event, arg1, arg2)
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:UpdateVigorRecharge(event, widget)
|
||||
self.partialReady = nil
|
||||
self.partialReadyPercent = nil
|
||||
if event ~= "internal" and (not widget or widget.widgetSetID ~= vigorWidgetSetID) then
|
||||
return
|
||||
end
|
||||
|
||||
if event ~= "internal" then
|
||||
if self.moduleSettings.hideBlizz then
|
||||
self:HideBlizz()
|
||||
else
|
||||
self:ShowBlizz()
|
||||
end
|
||||
end
|
||||
|
||||
local info = C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo(vigorWidgetID)
|
||||
if not info then
|
||||
return
|
||||
end
|
||||
|
||||
if info.numFullFrames == info.numTotalFrames then
|
||||
return
|
||||
end
|
||||
if info.fillMax == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
self.partialReady = IceHUD:Clamp(info.numFullFrames + 1, 0, info.numTotalFrames)
|
||||
self.partialReadyPercent = info.fillValue / info.fillMax
|
||||
if event ~= "internal" then
|
||||
self:UpdateRunePower()
|
||||
end
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:SetupNewRune(rune)
|
||||
self.runeCoords[rune] = {0, 1, 0, 1}
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:GetDefaultSettings()
|
||||
local defaults = DragonridingVigor.super.prototype.GetDefaultSettings(self)
|
||||
|
||||
defaults.pulseWhenFull = false
|
||||
defaults.runeGap = 4
|
||||
defaults.inactiveDisplayMode = "Shown"
|
||||
defaults.hideBlizz = true
|
||||
defaults.vpos = -25
|
||||
|
||||
return defaults
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:GetOptions()
|
||||
local opts = DragonridingVigor.super.prototype.GetOptions(self)
|
||||
|
||||
opts.inactiveDisplayMode.hidden = function() return true end
|
||||
|
||||
return opts
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:GetRuneAtlas(rune)
|
||||
return "dragonriding_vigor_fillfull"
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:GetShineAtlas(rune)
|
||||
return "Mage-ArcaneCharge-SmallSpark"
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:GetFrameAtlas(rune)
|
||||
return "dragonriding_vigor_frame"
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:GetBackgroundAtlas(rune)
|
||||
return "dragonriding_vigor_background"
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:GetPartialRuneAtlas(rune)
|
||||
return "dragonriding_vigor_fill"
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:ShowBlizz()
|
||||
UIWidgetPowerBarContainerFrame:Show()
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:HideBlizz()
|
||||
UIWidgetPowerBarContainerFrame:Hide()
|
||||
end
|
||||
|
||||
-- Load us up
|
||||
if ALTERNATE_POWER_INDEX and C_UIWidgetManager and C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo then
|
||||
IceHUD.DragonridingVigor = DragonridingVigor: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"
|
||||
|
@ -1,9 +1,9 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
IceHUDPlayerAlternatePower = IceCore_CreateClass(IceUnitBar)
|
||||
local PlayerAlternatePower = IceCore_CreateClass(IceUnitBar)
|
||||
|
||||
-- Constructor --
|
||||
function IceHUDPlayerAlternatePower.prototype:init(moduleName, unit)
|
||||
IceHUDPlayerAlternatePower.super.prototype.init(self, moduleName or "PlayerAlternatePower", "player")
|
||||
function PlayerAlternatePower.prototype:init(moduleName, unit)
|
||||
PlayerAlternatePower.super.prototype.init(self, moduleName or "PlayerAlternatePower", "player")
|
||||
|
||||
self.bTreatEmptyAsFull = true
|
||||
self.power = 0
|
||||
@ -13,8 +13,8 @@ function IceHUDPlayerAlternatePower.prototype:init(moduleName, unit)
|
||||
self.powerName = "MANA"
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:GetDefaultSettings()
|
||||
local settings = IceHUDPlayerAlternatePower.super.prototype.GetDefaultSettings(self)
|
||||
function PlayerAlternatePower.prototype:GetDefaultSettings()
|
||||
local settings = PlayerAlternatePower.super.prototype.GetDefaultSettings(self)
|
||||
|
||||
settings["side"] = IceCore.Side.Left
|
||||
settings["offset"] = -1
|
||||
@ -25,8 +25,8 @@ function IceHUDPlayerAlternatePower.prototype:GetDefaultSettings()
|
||||
return settings
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:Enable(core)
|
||||
IceHUDPlayerAlternatePower.super.prototype.Enable(self, core)
|
||||
function PlayerAlternatePower.prototype:Enable(core)
|
||||
PlayerAlternatePower.super.prototype.Enable(self, core)
|
||||
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
|
||||
if IceHUD.EventExistsUnitMaxPower then
|
||||
@ -39,40 +39,50 @@ function IceHUDPlayerAlternatePower.prototype:Enable(core)
|
||||
|
||||
if self.maxPower == 0 then
|
||||
self:Show(false)
|
||||
else
|
||||
self.wantToShow = true
|
||||
end
|
||||
if self.moduleSettings.hideBlizz then
|
||||
self:HideBlizz()
|
||||
end
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:PowerBarShow(event, unit)
|
||||
function PlayerAlternatePower.prototype:PowerBarShow(event, unit)
|
||||
if unit ~= self.unit then
|
||||
return
|
||||
end
|
||||
|
||||
self.wantToShow = true
|
||||
self:Show(true)
|
||||
self:Update(self.unit)
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:PowerBarHide(event, unit)
|
||||
function PlayerAlternatePower.prototype:PowerBarHide(event, unit)
|
||||
if unit ~= self.unit then
|
||||
return
|
||||
end
|
||||
|
||||
self.wantToShow = false
|
||||
self:Show(false)
|
||||
self:Update(self.unit)
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:UpdateEvent(event, unit)
|
||||
function PlayerAlternatePower.prototype:UpdateEvent(event, unit)
|
||||
self:Update(unit)
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:Update(unit)
|
||||
IceHUDPlayerAlternatePower.super.prototype.Update(self)
|
||||
function PlayerAlternatePower.prototype:Update(unit)
|
||||
PlayerAlternatePower.super.prototype.Update(self)
|
||||
if (unit and (unit ~= self.unit)) then
|
||||
return
|
||||
end
|
||||
|
||||
if IceHUD.DragonridingVigor and IceHUD.DragonridingVigor.bIsVisible then
|
||||
self:Show(false)
|
||||
elseif self.wantToShow then
|
||||
self:Show(true)
|
||||
end
|
||||
|
||||
self.maxPower = UnitPowerMax(self.unit, self.powerIndex)
|
||||
self.power = UnitPower(self.unit, self.powerIndex)
|
||||
if self.maxPower > 0 then
|
||||
@ -92,8 +102,8 @@ function IceHUDPlayerAlternatePower.prototype:Update(unit)
|
||||
end
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:GetOptions()
|
||||
local opts = IceHUDPlayerAlternatePower.super.prototype.GetOptions(self)
|
||||
function PlayerAlternatePower.prototype:GetOptions()
|
||||
local opts = PlayerAlternatePower.super.prototype.GetOptions(self)
|
||||
|
||||
opts["lowThresholdColor"] = nil
|
||||
|
||||
@ -121,11 +131,11 @@ function IceHUDPlayerAlternatePower.prototype:GetOptions()
|
||||
return opts
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:ShowBlizz()
|
||||
function PlayerAlternatePower.prototype:ShowBlizz()
|
||||
PlayerPowerBarAlt:GetScript("OnLoad")(PlayerPowerBarAlt)
|
||||
end
|
||||
|
||||
function IceHUDPlayerAlternatePower.prototype:HideBlizz()
|
||||
function PlayerAlternatePower.prototype:HideBlizz()
|
||||
PlayerPowerBarAlt:Hide()
|
||||
|
||||
PlayerPowerBarAlt:UnregisterAllEvents()
|
||||
@ -133,5 +143,5 @@ end
|
||||
|
||||
-- Load us up
|
||||
if ALTERNATE_POWER_INDEX then
|
||||
IceHUD.PlayerAlternatePower = IceHUDPlayerAlternatePower:new()
|
||||
IceHUD.PlayerAlternatePower = PlayerAlternatePower:new()
|
||||
end
|
||||
|
@ -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"
|
||||
|
@ -131,7 +131,7 @@ function ShardCounter.prototype:UpdatePowerType(event)
|
||||
|
||||
self.shouldShowUnmodified = false
|
||||
self.requiredSpec = CurrentSpec
|
||||
self.currentGrowMode = nil
|
||||
self.currentGrowMode = self.growModes["height"]
|
||||
|
||||
if CurrentSpec == SPEC_WARLOCK_AFFLICTION then
|
||||
self.runeCoords = AfflictionCoords
|
||||
|
@ -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,38 @@
|
||||
# Changelog
|
||||
|
||||
v1.14.14:
|
||||
|
||||
- Fixed PlayerAlternatePower bar showing up when it shouldn't have, such as when casting Power Word: Shield before ever having done anything to trigger a game-level "alternate power" event, such as mounting a Dragonriding mount.
|
||||
|
||||
v1.14.13:
|
||||
|
||||
- Fixed Vigor module hiding default Climbing, Film, etc. UIs. (wowace ticket #336)
|
||||
|
||||
v1.14.12:
|
||||
|
||||
- Added a module for showing Dragonriding Vigor points.
|
||||
|
||||
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.
|
||||
|
Reference in New Issue
Block a user