mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
77 Commits
Author | SHA1 | Date | |
---|---|---|---|
2ae826654a | |||
acee3f4725
|
|||
2db6ddea57
|
|||
7e4a6ecab6
|
|||
af33ab9781
|
|||
c0262de622
|
|||
cfa86813a7
|
|||
c85c304eb6
|
|||
5321f7c64d
|
|||
6b2eb8d6e2
|
|||
c72b67235d
|
|||
140596b930
|
|||
6ddb056cdf
|
|||
8df330d3b4
|
|||
1f9a1a3100
|
|||
40a25a3315
|
|||
6cee8c738c
|
|||
40fc8187fd
|
|||
b32f090644 | |||
d9cfb3a09c
|
|||
8bc7b1ee90
|
|||
9cd800ee86
|
|||
ca6008780f
|
|||
9a727e4893
|
|||
4d71dcc660
|
|||
343ac7b70b
|
|||
573049f77e
|
|||
8dc173ae81
|
|||
5e04ace0f4
|
|||
37108d3487
|
|||
8cd7c4b044
|
|||
bfffdd82d7
|
|||
24c45f320f
|
|||
1db8545b63
|
|||
18fa31807c
|
|||
594ea0a3e3
|
|||
cb83a3f63f
|
|||
077286fd5f
|
|||
a50a313314
|
|||
271bb38a69
|
|||
0e11a40d3a
|
|||
5020279748
|
|||
cfaa09a541
|
|||
a0ed3ae6e6
|
|||
7709cb9130
|
|||
c1f631b732
|
|||
6c44ddc93a
|
|||
8b45079d38
|
|||
b1adbe8090
|
|||
01a017c179
|
|||
b8aece0da3
|
|||
6b9b4a358c
|
|||
72adca99f9
|
|||
f8e7cf06d6
|
|||
059808c980
|
|||
689df94d55
|
|||
d49884198d
|
|||
8627ad39d5
|
|||
8c62a841fd
|
|||
7496475ff4
|
|||
c5c44edf64
|
|||
59f2792ce8
|
|||
a80daface7
|
|||
f6db2f3b7c
|
|||
5d09cad6cb
|
|||
8fc2e326aa
|
|||
d775603ec0
|
|||
70bba2f186
|
|||
8ac9bee610
|
|||
07bda8e84d
|
|||
5712114eb8
|
|||
2a0db2eb01
|
|||
7d32b6d8c6
|
|||
60d44601d1
|
|||
b3cf33a945
|
|||
3ddc2f9d2f
|
|||
d6adaedc93
|
8
.pkgmeta
8
.pkgmeta
@ -40,8 +40,8 @@ externals:
|
|||||||
libs/AceHook-3.0:
|
libs/AceHook-3.0:
|
||||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceHook-3.0
|
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceHook-3.0
|
||||||
tag: latest
|
tag: latest
|
||||||
libs/LibRangeCheck-2.0:
|
libs/LibRangeCheck-3.0:
|
||||||
url: https://github.com/WeakAuras/LibRangeCheck-2.0/
|
url: https://github.com/WeakAuras/LibRangeCheck-3.0/
|
||||||
libs/LibSharedMedia-3.0:
|
libs/LibSharedMedia-3.0:
|
||||||
url: svn://svn.wowace.com/wow/libsharedmedia-3-0/mainline/trunk
|
url: svn://svn.wowace.com/wow/libsharedmedia-3-0/mainline/trunk
|
||||||
tag: latest
|
tag: latest
|
||||||
@ -57,11 +57,11 @@ externals:
|
|||||||
optional-dependencies:
|
optional-dependencies:
|
||||||
- libdogtag-3-0
|
- libdogtag-3-0
|
||||||
- libdogtag-unit-3-0
|
- libdogtag-unit-3-0
|
||||||
- librangecheck-2-0
|
- librangecheck-3-0
|
||||||
|
|
||||||
move-folders:
|
move-folders:
|
||||||
IceHUD/IceHUD_Options: IceHUD_Options
|
IceHUD/IceHUD_Options: IceHUD_Options
|
||||||
IceHUD/libs/LibRangeCheck-2.0/LibRangeCheck-2.0: IceHUD/libs/LibRangeCheck-2.0
|
IceHUD/libs/LibRangeCheck-3.0/LibRangeCheck-3.0: IceHUD/libs/LibRangeCheck-3.0
|
||||||
|
|
||||||
tools-used:
|
tools-used:
|
||||||
- libdatabroker-1-1
|
- libdatabroker-1-1
|
||||||
|
@ -996,7 +996,7 @@ function IceBarElement.prototype:CreateBackground()
|
|||||||
self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.masterFrame)
|
self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.masterFrame)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame:SetWidth(self.settings.barWidth + (self.moduleSettings.widthModifier or 0))
|
self.frame:SetWidth(self.settings.barWidth + (self.moduleSettings.widthModifier or 0))
|
||||||
self.frame:SetHeight(self.settings.barHeight)
|
self.frame:SetHeight(self.settings.barHeight)
|
||||||
|
|
||||||
@ -1041,6 +1041,7 @@ end
|
|||||||
-- Creates the actual bar
|
-- Creates the actual bar
|
||||||
function IceBarElement.prototype:CreateBar()
|
function IceBarElement.prototype:CreateBar()
|
||||||
self.barFrame = self:BarFactory(self.barFrame, "LOW", "ARTWORK", "Bar")
|
self.barFrame = self:BarFactory(self.barFrame, "LOW", "ARTWORK", "Bar")
|
||||||
|
|
||||||
self:SetBarCoord(self.barFrame)
|
self:SetBarCoord(self.barFrame)
|
||||||
|
|
||||||
self.barFrame.bar:SetBlendMode(self.settings.barBlendMode)
|
self.barFrame.bar:SetBlendMode(self.settings.barBlendMode)
|
||||||
@ -1055,7 +1056,7 @@ function IceBarElement.prototype:BarFactory(barFrame, frameStrata, textureLayer,
|
|||||||
barFrame = CreateFrame("Frame", "IceHUD_"..self.elementName.."_"..(nameSuffix or "Bar"), self.frame)
|
barFrame = CreateFrame("Frame", "IceHUD_"..self.elementName.."_"..(nameSuffix or "Bar"), self.frame)
|
||||||
end
|
end
|
||||||
|
|
||||||
barFrame:SetFrameStrata(frameStrata and frameStrata or "LOW")
|
barFrame:SetFrameStrata(IceHUD.IceCore:DetermineStrata(frameStrata and frameStrata or "LOW"))
|
||||||
barFrame:SetWidth(self.settings.barWidth + (self.moduleSettings.widthModifier or 0))
|
barFrame:SetWidth(self.settings.barWidth + (self.moduleSettings.widthModifier or 0))
|
||||||
barFrame:SetHeight(self.settings.barHeight)
|
barFrame:SetHeight(self.settings.barHeight)
|
||||||
self:SetBarFramePoints(barFrame)
|
self:SetBarFramePoints(barFrame)
|
||||||
|
@ -361,7 +361,7 @@ function IceCastBar.prototype:MyOnUpdate()
|
|||||||
|
|
||||||
local timeString = self.moduleSettings.showCastTime and string.format("%.1fs ", remainingTime) or ""
|
local timeString = self.moduleSettings.showCastTime and string.format("%.1fs ", remainingTime) or ""
|
||||||
local empowerString = self.NumStages ~= nil and (L["Stage %d"]):format(self:GetCurrentStage()) or ""
|
local empowerString = self.NumStages ~= nil and (L["Stage %d"]):format(self:GetCurrentStage()) or ""
|
||||||
local line1 = timeString .. self.actionMessage
|
local line1 = timeString .. (self.actionMessage or "")
|
||||||
if self.moduleSettings.empowerStageTextDisplay == "TOPLINE" then
|
if self.moduleSettings.empowerStageTextDisplay == "TOPLINE" then
|
||||||
line1 = line1 .. " " .. empowerString
|
line1 = line1 .. " " .. empowerString
|
||||||
end
|
end
|
||||||
@ -386,18 +386,25 @@ function IceCastBar.prototype:MyOnUpdate()
|
|||||||
self.action == IceCastBar.Actions.Success or
|
self.action == IceCastBar.Actions.Success or
|
||||||
self.action == IceCastBar.Actions.Failure)
|
self.action == IceCastBar.Actions.Failure)
|
||||||
then
|
then
|
||||||
local scale = GetTime() - self.actionStartTime
|
local scale
|
||||||
|
if self.actionStartTime then
|
||||||
|
scale = GetTime() - self.actionStartTime
|
||||||
|
end
|
||||||
|
|
||||||
if (scale > 1) then
|
if scale and (scale > 1) then
|
||||||
self:StopBar()
|
self:StopBar()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self:UpdateBar(1, self:GetCurrentCastingColor())
|
||||||
|
|
||||||
|
if scale then
|
||||||
if (self.action == IceCastBar.Actions.Failure) then
|
if (self.action == IceCastBar.Actions.Failure) then
|
||||||
self:FlashBar("CastFail", 1-scale, self.actionMessage, "CastFail")
|
self:FlashBar("CastFail", 1-scale, self.actionMessage, "CastFail")
|
||||||
else
|
else
|
||||||
self:FlashBar("CastSuccess", 1-scale, self.actionMessage)
|
self:FlashBar("CastSuccess", 1-scale, self.actionMessage)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -463,7 +470,9 @@ function IceCastBar.prototype:GetCurrentCastingColor()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function IceCastBar.prototype:FlashBar(color, alpha, text, textColor)
|
function IceCastBar.prototype:FlashBar(color, alpha, text, textColor)
|
||||||
|
if alpha then
|
||||||
self.frame:SetAlpha(alpha)
|
self.frame:SetAlpha(alpha)
|
||||||
|
end
|
||||||
|
|
||||||
local r, g, b = self.settings.backgroundColor.r, self.settings.backgroundColor.g, self.settings.backgroundColor.b
|
local r, g, b = self.settings.backgroundColor.r, self.settings.backgroundColor.g, self.settings.backgroundColor.b
|
||||||
if (self.settings.backgroundToggle) then
|
if (self.settings.backgroundToggle) then
|
||||||
@ -478,7 +487,7 @@ function IceCastBar.prototype:FlashBar(color, alpha, text, textColor)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function IceCastBar.prototype:StartBar(action, message)
|
function IceCastBar.prototype:StartBar(action, message, spellId)
|
||||||
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill, numStages
|
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill, numStages
|
||||||
if IceHUD.SpellFunctionsReturnRank then
|
if IceHUD.SpellFunctionsReturnRank then
|
||||||
spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit)
|
spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit)
|
||||||
@ -493,6 +502,10 @@ function IceCastBar.prototype:StartBar(action, message)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if spellId and not spell then
|
||||||
|
spell, rank, icon = GetSpellInfo(spellId)
|
||||||
|
end
|
||||||
|
|
||||||
local isChargeSpell = numStages and numStages > 0
|
local isChargeSpell = numStages and numStages > 0
|
||||||
if isChargeSpell then
|
if isChargeSpell then
|
||||||
self.NumStages = numStages
|
self.NumStages = numStages
|
||||||
@ -590,7 +603,7 @@ function IceCastBar.prototype:SpellCastStart(event, unit, castGuid, spellId)
|
|||||||
IceHUD:Debug("SpellCastStart", unit, castGuid, spellId)
|
IceHUD:Debug("SpellCastStart", unit, castGuid, spellId)
|
||||||
--UnitCastingInfo(unit)
|
--UnitCastingInfo(unit)
|
||||||
|
|
||||||
self:StartBar(IceCastBar.Actions.Cast)
|
self:StartBar(IceCastBar.Actions.Cast, nil, spellId)
|
||||||
self.current = castGuid
|
self.current = castGuid
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -609,8 +622,9 @@ function IceCastBar.prototype:SpellCastStop(event, unit, castGuid, spellId)
|
|||||||
self.action ~= IceCastBar.Actions.ReverseChannel)
|
self.action ~= IceCastBar.Actions.ReverseChannel)
|
||||||
then
|
then
|
||||||
self:StopBar()
|
self:StopBar()
|
||||||
self.current = nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self.current = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -639,7 +653,7 @@ function IceCastBar.prototype:SpellCastFailed(event, unit, castGuid, spellId)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self:StartBar(IceCastBar.Actions.Failure, "Failed")
|
self:StartBar(IceCastBar.Actions.Failure, "Failed", nil, spellId)
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastInterrupted(event, unit, castGuid, spellId)
|
function IceCastBar.prototype:SpellCastInterrupted(event, unit, castGuid, spellId)
|
||||||
@ -653,7 +667,7 @@ function IceCastBar.prototype:SpellCastInterrupted(event, unit, castGuid, spellI
|
|||||||
|
|
||||||
self.current = nil
|
self.current = nil
|
||||||
|
|
||||||
self:StartBar(IceCastBar.Actions.Failure, "Interrupted")
|
self:StartBar(IceCastBar.Actions.Failure, "Interrupted", spellId)
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastDelayed(event, unit, castGuid, spellId)
|
function IceCastBar.prototype:SpellCastDelayed(event, unit, castGuid, spellId)
|
||||||
@ -687,7 +701,7 @@ function IceCastBar.prototype:SpellCastSucceeded(event, unit, castGuid, spellId)
|
|||||||
|
|
||||||
-- show after normal successfull cast
|
-- show after normal successfull cast
|
||||||
if (self.action == IceCastBar.Actions.Cast) then
|
if (self.action == IceCastBar.Actions.Cast) then
|
||||||
self:StartBar(IceCastBar.Actions.Success, spell.. self:GetShortRank(rank))
|
self:StartBar(IceCastBar.Actions.Success, spell.. self:GetShortRank(rank), spellId)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -700,7 +714,12 @@ function IceCastBar.prototype:SpellCastSucceeded(event, unit, castGuid, spellId)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self:StartBar(IceCastBar.Actions.Success, spell.. self:GetShortRank(rank))
|
-- 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
|
end
|
||||||
|
|
||||||
|
|
||||||
|
59
IceCore.lua
59
IceCore.lua
@ -115,6 +115,9 @@ function IceCore.prototype:SetupDefaults()
|
|||||||
bHideDuringPetBattles = true,
|
bHideDuringPetBattles = true,
|
||||||
bHideInBarberShop = true,
|
bHideInBarberShop = true,
|
||||||
bHideDuringShellGame = true,
|
bHideDuringShellGame = true,
|
||||||
|
bHideDuringCataloging = true,
|
||||||
|
|
||||||
|
addedStrata = 0,
|
||||||
},
|
},
|
||||||
global = {
|
global = {
|
||||||
lastRunVersion = 0,
|
lastRunVersion = 0,
|
||||||
@ -284,6 +287,7 @@ function IceCore.prototype:Enable(userToggle)
|
|||||||
self.IceHUDFrame:RegisterEvent("ZONE_CHANGED")
|
self.IceHUDFrame:RegisterEvent("ZONE_CHANGED")
|
||||||
end
|
end
|
||||||
self.IceHUDFrame:RegisterEvent("UNIT_AURA")
|
self.IceHUDFrame:RegisterEvent("UNIT_AURA")
|
||||||
|
self.IceHUDFrame:RegisterEvent("UNIT_ENTERED_VEHICLE")
|
||||||
self.IceHUDFrame:RegisterEvent("PLAYER_REGEN_ENABLED", IceHUD.PLAYER_REGEN_ENABLED)
|
self.IceHUDFrame:RegisterEvent("PLAYER_REGEN_ENABLED", IceHUD.PLAYER_REGEN_ENABLED)
|
||||||
self.IceHUDFrame:RegisterEvent("PLAYER_REGEN_DISABLED", IceHUD.PLAYER_REGEN_DISABLED)
|
self.IceHUDFrame:RegisterEvent("PLAYER_REGEN_DISABLED", IceHUD.PLAYER_REGEN_DISABLED)
|
||||||
self.IceHUDFrame:SetScript("OnEvent", function(self, event, ...)
|
self.IceHUDFrame:SetScript("OnEvent", function(self, event, ...)
|
||||||
@ -303,6 +307,11 @@ function IceCore.prototype:Enable(userToggle)
|
|||||||
if IceHUD.IceCore.settings.bHideInBarberShop then
|
if IceHUD.IceCore.settings.bHideInBarberShop then
|
||||||
self:Show()
|
self:Show()
|
||||||
end
|
end
|
||||||
|
elseif event == "UNIT_ENTERED_VEHICLE" then
|
||||||
|
if IceHUD.IceCore.settings.bHideDuringCataloging and IceHUD:HasAnyBuff("player", IceHUD.CatalogingSpellIDs) then
|
||||||
|
self:RegisterEvent("UNIT_EXITED_VEHICLE")
|
||||||
|
self:Hide()
|
||||||
|
end
|
||||||
elseif (event == "UNIT_AURA") then
|
elseif (event == "UNIT_AURA") then
|
||||||
local unit = ...
|
local unit = ...
|
||||||
if unit ~= "player" then
|
if unit ~= "player" then
|
||||||
@ -312,6 +321,9 @@ function IceCore.prototype:Enable(userToggle)
|
|||||||
if IceHUD.IceCore.settings.bHideDuringShellGame and IceHUD:HasAnyDebuff("player", {IceHUD.ShellGameSpellID}) and UnitInVehicle("player") then
|
if IceHUD.IceCore.settings.bHideDuringShellGame and IceHUD:HasAnyDebuff("player", {IceHUD.ShellGameSpellID}) and UnitInVehicle("player") then
|
||||||
self:RegisterEvent("UNIT_EXITED_VEHICLE")
|
self:RegisterEvent("UNIT_EXITED_VEHICLE")
|
||||||
self:Hide()
|
self:Hide()
|
||||||
|
elseif IceHUD.IceCore.settings.bHideDuringCataloging and IceHUD:HasAnyBuff("player", IceHUD.CatalogingSpellIDs) and UnitInVehicle("player") then
|
||||||
|
self:RegisterEvent("UNIT_EXITED_VEHICLE")
|
||||||
|
self:Hide()
|
||||||
elseif C_Map then
|
elseif C_Map then
|
||||||
local bestMapID = C_Map.GetBestMapForUnit("player")
|
local bestMapID = C_Map.GetBestMapForUnit("player")
|
||||||
if bestMapID ~= ZM_MAP_ID then
|
if bestMapID ~= ZM_MAP_ID then
|
||||||
@ -600,7 +612,7 @@ function IceCore.prototype:IsEnabled()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function IceCore.prototype:DrawFrame()
|
function IceCore.prototype:DrawFrame()
|
||||||
self.IceHUDFrame:SetFrameStrata("BACKGROUND")
|
self.IceHUDFrame:SetFrameStrata(self:DetermineStrata("BACKGROUND"))
|
||||||
self.IceHUDFrame:SetWidth(self.settings.gap)
|
self.IceHUDFrame:SetWidth(self.settings.gap)
|
||||||
self.IceHUDFrame:SetHeight(20)
|
self.IceHUDFrame:SetHeight(20)
|
||||||
|
|
||||||
@ -645,10 +657,11 @@ function IceCore.prototype:GetModuleOptions()
|
|||||||
|
|
||||||
for i = 1, table.getn(self.elements) do
|
for i = 1, table.getn(self.elements) do
|
||||||
local modName = self.elements[i]:GetElementName()
|
local modName = self.elements[i]:GetElementName()
|
||||||
|
local modDesc = self.elements[i]:GetElementDescription()
|
||||||
local opt = self.elements[i]:GetOptions()
|
local opt = self.elements[i]:GetOptions()
|
||||||
options[modName] = {
|
options[modName] = {
|
||||||
type = 'group',
|
type = 'group',
|
||||||
desc = L["Module options"],
|
desc = modDesc,
|
||||||
name = modName,
|
name = modName,
|
||||||
args = opt
|
args = opt
|
||||||
}
|
}
|
||||||
@ -920,6 +933,48 @@ function IceCore.prototype:SetColor(color, r, g, b)
|
|||||||
self:Redraw()
|
self:Redraw()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function IceCore.prototype:GetAddedStrata()
|
||||||
|
return self.settings.addedStrata
|
||||||
|
end
|
||||||
|
|
||||||
|
function IceCore.prototype:SetAddedStrata(value)
|
||||||
|
self.settings.addedStrata = value
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Preventing ugly if-else blocks in module creations
|
||||||
|
-- (but could probably itself be smarter/prettier)
|
||||||
|
-- Frisbees/AddonWhiner
|
||||||
|
function IceCore.prototype:DetermineStrata(baseStrata)
|
||||||
|
if self.settings.addedStrata == 0 then
|
||||||
|
return baseStrata
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.settings.addedStrata == 1 then
|
||||||
|
if baseStrata == "BACKGROUND" then
|
||||||
|
return "LOW"
|
||||||
|
elseif baseStrata == "LOW" then
|
||||||
|
return "MEDIUM"
|
||||||
|
elseif baseStrata == "MEDIUM" then
|
||||||
|
return "HIGH"
|
||||||
|
elseif baseStrata == "HIGH" then
|
||||||
|
return "DIALOG"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.settings.addedStrata == 2 then
|
||||||
|
if baseStrata == "BACKGROUND" then
|
||||||
|
return "MEDIUM"
|
||||||
|
elseif baseStrata == "LOW" then
|
||||||
|
return "HIGH"
|
||||||
|
elseif baseStrata == "MEDIUM" then
|
||||||
|
return "DIALOG"
|
||||||
|
elseif baseStrata == "HIGH" then
|
||||||
|
return "FULLSCREEN"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return baseStrata -- failsafe
|
||||||
|
end
|
||||||
|
|
||||||
function IceCore.prototype:IsInConfigMode()
|
function IceCore.prototype:IsInConfigMode()
|
||||||
return self.bConfigMode
|
return self.bConfigMode
|
||||||
|
@ -63,6 +63,10 @@ function IceElement.prototype:GetElementName()
|
|||||||
return self.elementName
|
return self.elementName
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function IceElement.prototype:GetElementDescription()
|
||||||
|
return L["Module options"]
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
function IceElement.prototype:Create(parent)
|
function IceElement.prototype:Create(parent)
|
||||||
assert(parent, "IceElement 'parent' can't be nil")
|
assert(parent, "IceElement 'parent' can't be nil")
|
||||||
@ -70,7 +74,7 @@ function IceElement.prototype:Create(parent)
|
|||||||
self.parent = parent
|
self.parent = parent
|
||||||
if not self.masterFrame then
|
if not self.masterFrame then
|
||||||
self.masterFrame = CreateFrame("Frame", "IceHUD_Element_"..self.elementName, self.parent)
|
self.masterFrame = CreateFrame("Frame", "IceHUD_Element_"..self.elementName, self.parent)
|
||||||
self.masterFrame:SetFrameStrata("MEDIUM")
|
self.masterFrame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("MEDIUM"))
|
||||||
end
|
end
|
||||||
self:CreateFrame()
|
self:CreateFrame()
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
|
@ -36,6 +36,7 @@ else
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- compatibility/feature flags
|
-- compatibility/feature flags
|
||||||
|
IceHUD.CanShowTargetCasting = not IceHUD.WowClassic or LibClassicCasterino or (IceHUD.WowClassic and IceHUD.WowVer >= 11500)
|
||||||
IceHUD.GetPlayerAuraBySpellID = _G["C_UnitAuras"] and C_UnitAuras.GetPlayerAuraBySpellID
|
IceHUD.GetPlayerAuraBySpellID = _G["C_UnitAuras"] and C_UnitAuras.GetPlayerAuraBySpellID
|
||||||
IceHUD.SpellFunctionsReturnRank = IceHUD.WowMain and IceHUD.WowVer < 80000
|
IceHUD.SpellFunctionsReturnRank = IceHUD.WowMain and IceHUD.WowVer < 80000
|
||||||
IceHUD.EventExistsPlayerPetChanged = IceHUD.WowMain and IceHUD.WowVer < 80000
|
IceHUD.EventExistsPlayerPetChanged = IceHUD.WowMain and IceHUD.WowVer < 80000
|
||||||
@ -48,8 +49,8 @@ IceHUD.EventExistsUnitDynamicFlags = IceHUD.WowMain and IceHUD.WowVer < 80000
|
|||||||
IceHUD.EventExistsUnitHealthFrequent = not IceHUD.WowMain or (IceHUD.WowVer >= 40000 and IceHUD.WowVer < 90000)
|
IceHUD.EventExistsUnitHealthFrequent = not IceHUD.WowMain or (IceHUD.WowVer >= 40000 and IceHUD.WowVer < 90000)
|
||||||
IceHUD.PerPowerEventsExist = IceHUD.WowMain and IceHUD.WowVer < 40000
|
IceHUD.PerPowerEventsExist = IceHUD.WowMain and IceHUD.WowVer < 40000
|
||||||
IceHUD.PerTargetComboPoints = IceHUD.WowVer < 60000
|
IceHUD.PerTargetComboPoints = IceHUD.WowVer < 60000
|
||||||
IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic
|
IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic or IceHUD.WowVer >= 11500
|
||||||
IceHUD.CanTrackGCD = not IceHUD.WowClassic
|
IceHUD.CanTrackGCD = not IceHUD.WowClassic or IceHUD.WowVer >= 11500
|
||||||
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
|
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
|
||||||
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
|
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
|
||||||
IceHUD.ShouldUpdateTargetHealthEveryTick = (IceHUD.WowClassic or IceHUD.WowClassicBC) and GetCVarBool("predictedHealth")
|
IceHUD.ShouldUpdateTargetHealthEveryTick = (IceHUD.WowClassic or IceHUD.WowClassicBC) and GetCVarBool("predictedHealth")
|
||||||
@ -60,6 +61,8 @@ IceHUD.SupportsHealPrediction = IceHUD.WowVer >= 40000 or IceHUD.WowClassicWrath
|
|||||||
IceHUD.UnitGroupRolesReturnsRoleString = IceHUD.WowVer >= 40000 or IceHUD.WowClassicWrath
|
IceHUD.UnitGroupRolesReturnsRoleString = IceHUD.WowVer >= 40000 or IceHUD.WowClassicWrath
|
||||||
IceHUD.ShellGameSpellID = 271571
|
IceHUD.ShellGameSpellID = 271571
|
||||||
IceHUD.HasShellGame = GetSpellInfo(IceHUD.ShellGameSpellID)
|
IceHUD.HasShellGame = GetSpellInfo(IceHUD.ShellGameSpellID)
|
||||||
|
IceHUD.CatalogingSpellIDs = {366290, 372817, 385025, 385635, 386070, 386504, 400043, 403115}
|
||||||
|
IceHUD.HasCataloging = GetSpellInfo(366290)
|
||||||
|
|
||||||
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
|
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
|
||||||
|
|
||||||
@ -884,6 +887,7 @@ local function munge_unit_menu(menu)
|
|||||||
if btns[i].IsMenu() then
|
if btns[i].IsMenu() then
|
||||||
local subbtns = btns[i].GetMenuButtons()
|
local subbtns = btns[i].GetMenuButtons()
|
||||||
for j=1, #subbtns do
|
for j=1, #subbtns do
|
||||||
|
if subbtns[j] then
|
||||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[subbtns[j]:GetText()]
|
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[subbtns[j]:GetText()]
|
||||||
if not blacklisted then
|
if not blacklisted then
|
||||||
new_buttons_list[#new_buttons_list+1] = subbtns[j]
|
new_buttons_list[#new_buttons_list+1] = subbtns[j]
|
||||||
@ -891,6 +895,7 @@ local function munge_unit_menu(menu)
|
|||||||
new_buttons_list[#new_buttons_list+1] = blacklisted
|
new_buttons_list[#new_buttons_list+1] = blacklisted
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[btns[i]:GetText()]
|
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[btns[i]:GetText()]
|
||||||
if not blacklisted then
|
if not blacklisted then
|
||||||
|
13
IceHUD.toc
13
IceHUD.toc
@ -1,8 +1,8 @@
|
|||||||
## Interface: 100000
|
## Interface: 100205
|
||||||
## Interface-Retail: 100000
|
## Interface-Retail: 100205
|
||||||
## Interface-Classic: 11403
|
## Interface-Classic: 11500
|
||||||
## Interface-BCC: 20504
|
## Interface-BCC: 20504
|
||||||
## Interface-Wrath: 30400
|
## Interface-Wrath: 30403
|
||||||
## Author: Parnic, originally created by Iceroth
|
## Author: Parnic, originally created by Iceroth
|
||||||
## Name: IceHUD
|
## Name: IceHUD
|
||||||
## Title: IceHUD |cff7fff7f-Ace3-|r
|
## Title: IceHUD |cff7fff7f-Ace3-|r
|
||||||
@ -14,7 +14,8 @@
|
|||||||
# ## Version: @project-version@
|
# ## Version: @project-version@
|
||||||
#@end-non-debug@
|
#@end-non-debug@
|
||||||
## SavedVariables: IceCoreDB
|
## SavedVariables: IceCoreDB
|
||||||
## OptionalDeps: Ace3, LibSharedMedia-3.0, LibDogTag-3.0, LibDogTag-Unit-3.0, LibRangeCheck-2.0, LibDualSpec-1.0, LibDBIcon-1.0, AceGUI-3.0-SharedMediaWidgets
|
## IconTexture: Interface\Icons\Spell_Frost_Frost
|
||||||
|
## OptionalDeps: Ace3, LibSharedMedia-3.0, LibDogTag-3.0, LibDogTag-Unit-3.0, LibRangeCheck-3.0, LibDualSpec-1.0, LibDBIcon-1.0, AceGUI-3.0-SharedMediaWidgets
|
||||||
## X-Category: HUDs
|
## X-Category: HUDs
|
||||||
## X-Website: https://www.wowace.com/projects/ice-hud
|
## X-Website: https://www.wowace.com/projects/ice-hud
|
||||||
## X-Curse-Project-ID: 5394
|
## X-Curse-Project-ID: 5394
|
||||||
@ -100,6 +101,8 @@ modules\PlayerAltMana.lua
|
|||||||
modules\ArcaneCharges.lua
|
modules\ArcaneCharges.lua
|
||||||
modules\RollTheBones.lua
|
modules\RollTheBones.lua
|
||||||
modules\EssencePower.lua
|
modules\EssencePower.lua
|
||||||
|
modules\DruidEnergy.lua
|
||||||
|
modules\DragonridingVigor.lua
|
||||||
|
|
||||||
#@do-not-package@
|
#@do-not-package@
|
||||||
IceHUD_Options\Json.lua
|
IceHUD_Options\Json.lua
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
## Interface: 100000
|
## Interface: 100205
|
||||||
## Interface-Retail: 100000
|
## Interface-Retail: 100205
|
||||||
## Interface-Classic: 11403
|
## Interface-Classic: 11500
|
||||||
## Interface-BCC: 20504
|
## Interface-BCC: 20504
|
||||||
## Interface-Wrath: 30400
|
## Interface-Wrath: 30403
|
||||||
## Title: IceHUD |cff7fff7f-Options-|r
|
## Title: IceHUD |cff7fff7f-Options-|r
|
||||||
## Author: Parnic
|
## Author: Parnic
|
||||||
## Version: @project-version@
|
## Version: @project-version@
|
||||||
@ -10,6 +10,7 @@
|
|||||||
## OptionalDeps: AceGUI-3.0-SharedMediaWidgets
|
## OptionalDeps: AceGUI-3.0-SharedMediaWidgets
|
||||||
## Dependencies: IceHUD
|
## Dependencies: IceHUD
|
||||||
## LoadOnDemand: 1
|
## LoadOnDemand: 1
|
||||||
|
## IconTexture: Interface\Icons\Spell_Frost_Frost
|
||||||
|
|
||||||
Json.lua
|
Json.lua
|
||||||
JsonDecode.lua
|
JsonDecode.lua
|
||||||
|
@ -85,13 +85,13 @@ If you have |cff42ffffDogTags|r enabled, you can open the Text Settings for the
|
|||||||
This is a side effect of the animation API that I'm co-opting to force a rotation without having to provide duplicates of every bar texture in the mod. Any bar moving sufficiently quickly and updating rapidly will cause this. |cff9999ffIceHUD|r is intended to be a vertically-oriented mod, so the rotation feature is there for people who are willing to accept the side effects that come with it. My suggestion is to use one of the many horizontally-oriented bar mods out there if you're wanting horizontal bars. |cff42ffffQuartz|r is a good castbar replacement that you can use and disable |cff9999ffIceHUD|r's built-in castbar, for example.
|
This is a side effect of the animation API that I'm co-opting to force a rotation without having to provide duplicates of every bar texture in the mod. Any bar moving sufficiently quickly and updating rapidly will cause this. |cff9999ffIceHUD|r is intended to be a vertically-oriented mod, so the rotation feature is there for people who are willing to accept the side effects that come with it. My suggestion is to use one of the many horizontally-oriented bar mods out there if you're wanting horizontal bars. |cff42ffffQuartz|r is a good castbar replacement that you can use and disable |cff9999ffIceHUD|r's built-in castbar, for example.
|
||||||
|
|
||||||
|cff9999ff18. How do I get rid of the bars that showed up beneath the player in the 7.0 patch?|r
|
|cff9999ff18. How do I get rid of the bars that showed up beneath the player in the 7.0 patch?|r
|
||||||
Blizzard added a "Personal Resource Display" feature in the 7.0 game client. You can disable it in the Game options -> Interface -> Names -> Personal Resource Display.
|
Blizzard added a "Personal Resource Display" feature in the 7.0 game client. You can disable it in the Game options -> |cffffdc42Interface|r -> |cffffdc42Names|r -> |cffffdc42Personal Resource Display|r (or Options -> |cffffdc42Combat|r -> |cffffdc42Personal Resource Display|r, in 10.0+).
|
||||||
|
|
||||||
|cff9999ff19. Why is there no target castbar for Classic?|r
|
|cff9999ff19. Why is there no target castbar for Classic?|r
|
||||||
The Classic game client doesn't offer a reliable way to show castbars for anyone except the player. You can install the LibCasterCasterino addon to enable support, but it's a best guess and not at all accurate.
|
The Classic game client doesn't offer a reliable way to show castbars for anyone except the player. You can install the |cff42ffffLibCasterCasterino|r addon to enable support, but it's a best guess and not at all accurate.
|
||||||
|
|
||||||
|cff9999ff20. Why do buff/debuff timers not work in Classic?|r
|
|cff9999ff20. Why do buff/debuff timers not work in Classic?|r
|
||||||
The Classic game client doesn't provide this information to addons because it wasn't a feature when the game first released. You can install the LibClassicDurations addon to enable support, but it's a best guess and not at all accurate.]]
|
The Classic game client doesn't provide this information to addons because it wasn't a feature when the game first released. You can install the |cff42ffffLibClassicDurations|r addon to enable support, but it's a best guess and not at all accurate.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -161,7 +161,7 @@ The Classic game client doesn't provide this information to addons because it wa
|
|||||||
IceHUD.IceCore:SetScale(v)
|
IceHUD.IceCore:SetScale(v)
|
||||||
end,
|
end,
|
||||||
min = 0.2,
|
min = 0.2,
|
||||||
max = 2.0,
|
max = 4.0,
|
||||||
step = 0.05,
|
step = 0.05,
|
||||||
isPercent = true,
|
isPercent = true,
|
||||||
order = 14,
|
order = 14,
|
||||||
@ -426,6 +426,40 @@ The Classic game client doesn't provide this information to addons because it wa
|
|||||||
hidden = not IceHUD.HasShellGame,
|
hidden = not IceHUD.HasShellGame,
|
||||||
order = 36,
|
order = 36,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
bHideDuringCataloging = {
|
||||||
|
type = 'toggle',
|
||||||
|
name = L["Hide during cataloging"],
|
||||||
|
desc = L["This will hide the entire mod when using the Dragonflight Cataloging camera."],
|
||||||
|
width = 'double',
|
||||||
|
get = function()
|
||||||
|
return IceHUD.IceCore.settings.bHideDuringCataloging
|
||||||
|
end,
|
||||||
|
set = function(info, value)
|
||||||
|
IceHUD.IceCore.settings.bHideDuringCataloging = value
|
||||||
|
if not value then
|
||||||
|
IceHUD.IceCore.IceHUDFrame:Show()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
hidden = not IceHUD.HasCataloging,
|
||||||
|
order = 36,
|
||||||
|
},
|
||||||
|
|
||||||
|
bIncreaseStrata = {
|
||||||
|
type = 'range',
|
||||||
|
name = L["Added strata"],
|
||||||
|
desc = L["Push IceHUD modules to the foreground. Increase if other addons are covering IceHUD. Requires reload."],
|
||||||
|
get = function()
|
||||||
|
return IceHUD.IceCore:GetAddedStrata()
|
||||||
|
end,
|
||||||
|
set = function(info, v)
|
||||||
|
IceHUD.IceCore:SetAddedStrata(v)
|
||||||
|
end,
|
||||||
|
min = 0,
|
||||||
|
max = 2,
|
||||||
|
step = 1,
|
||||||
|
order = 37,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -19,10 +19,11 @@ IceUnitBar.prototype.hasPet = nil
|
|||||||
|
|
||||||
IceUnitBar.prototype.noFlash = nil
|
IceUnitBar.prototype.noFlash = nil
|
||||||
|
|
||||||
local SPELL_POWER_INSANITY, SPELL_POWER_RAGE = SPELL_POWER_INSANITY, SPELL_POWER_RAGE
|
local SPELL_POWER_INSANITY, SPELL_POWER_RAGE, SPELL_POWER_RUNIC_POWER = SPELL_POWER_INSANITY, SPELL_POWER_RAGE, SPELL_POWER_RUNIC_POWER
|
||||||
if Enum and Enum.PowerType then
|
if Enum and Enum.PowerType then
|
||||||
SPELL_POWER_INSANITY = Enum.PowerType.Insanity
|
SPELL_POWER_INSANITY = Enum.PowerType.Insanity
|
||||||
SPELL_POWER_RAGE = Enum.PowerType.Rage
|
SPELL_POWER_RAGE = Enum.PowerType.Rage
|
||||||
|
SPELL_POWER_RUNIC_POWER = Enum.PowerType.RunicPower
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Constructor --
|
-- Constructor --
|
||||||
@ -87,7 +88,7 @@ function IceUnitBar.prototype:GetOptions()
|
|||||||
self:Redraw()
|
self:Redraw()
|
||||||
end,
|
end,
|
||||||
disabled = function()
|
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,
|
end,
|
||||||
min = 0,
|
min = 0,
|
||||||
max = 1,
|
max = 1,
|
||||||
@ -105,10 +106,14 @@ function IceUnitBar.prototype:GetOptions()
|
|||||||
end,
|
end,
|
||||||
set = function(info, v)
|
set = function(info, v)
|
||||||
self.moduleSettings.lowThresholdFlash = v
|
self.moduleSettings.lowThresholdFlash = v
|
||||||
|
self:Redraw()
|
||||||
end,
|
end,
|
||||||
disabled = function()
|
disabled = function()
|
||||||
return not self.moduleSettings.enabled
|
return not self.moduleSettings.enabled
|
||||||
end,
|
end,
|
||||||
|
hidden = function()
|
||||||
|
return self.noFlash
|
||||||
|
end,
|
||||||
order = 30.092
|
order = 30.092
|
||||||
}
|
}
|
||||||
opts["lowThresholdColor"] = {
|
opts["lowThresholdColor"] = {
|
||||||
@ -123,7 +128,7 @@ function IceUnitBar.prototype:GetOptions()
|
|||||||
self:Redraw()
|
self:Redraw()
|
||||||
end,
|
end,
|
||||||
disabled = function()
|
disabled = function()
|
||||||
return not self.moduleSettings.enabled or not (self.moduleSettings.scaleHealthColor and self.moduleSettings.scaleManaColor)
|
return not self.moduleSettings.enabled
|
||||||
end,
|
end,
|
||||||
order = 30.093
|
order = 30.093
|
||||||
}
|
}
|
||||||
@ -174,7 +179,7 @@ function IceUnitBar.prototype:CreateFlashFrame()
|
|||||||
self.flashFrame = CreateFrame("Frame", "IceHUD_"..self.elementName.."_Flash", self.frame)
|
self.flashFrame = CreateFrame("Frame", "IceHUD_"..self.elementName.."_Flash", self.frame)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.flashFrame:SetFrameStrata("BACKGROUND")
|
self.flashFrame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.flashFrame:SetWidth(self.settings.barWidth + (self.moduleSettings.widthModifier or 0))
|
self.flashFrame:SetWidth(self.settings.barWidth + (self.moduleSettings.widthModifier or 0))
|
||||||
self.flashFrame:SetHeight(self.settings.barHeight)
|
self.flashFrame:SetHeight(self.settings.barHeight)
|
||||||
|
|
||||||
@ -235,7 +240,9 @@ function IceUnitBar.prototype:Update()
|
|||||||
-- so this technically doesn't get us the answer we want most of the time. too risky to change at this point, though.
|
-- so this technically doesn't get us the answer we want most of the time. too risky to change at this point, though.
|
||||||
self.mana = UnitPower(self.unit, UnitPowerType(self.unit))
|
self.mana = UnitPower(self.unit, UnitPowerType(self.unit))
|
||||||
self.maxMana = UnitPowerMax(self.unit, UnitPowerType(self.unit))
|
self.maxMana = UnitPowerMax(self.unit, UnitPowerType(self.unit))
|
||||||
if UnitPowerType(self.unit) == SPELL_POWER_RAGE and self.maxMana == 1000 then
|
local powerType = UnitPowerType(self.unit)
|
||||||
|
if (powerType == SPELL_POWER_RAGE and self.maxMana == 1000)
|
||||||
|
or (powerType == SPELL_POWER_RUNIC_POWER and self.maxMana >= 1000) then
|
||||||
self.mana = IceHUD:MathRound(self.mana / 10)
|
self.mana = IceHUD:MathRound(self.mana / 10)
|
||||||
self.maxMana = IceHUD:MathRound(self.maxMana / 10)
|
self.maxMana = IceHUD:MathRound(self.maxMana / 10)
|
||||||
end
|
end
|
||||||
@ -278,14 +285,14 @@ function IceUnitBar.prototype:Update()
|
|||||||
-- This looks slightly quirky. Basically the easiest way for me to achieve this is to have lowThresholdColor override
|
-- 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.
|
-- the scaled color. You'll need to switch them both on to get things to work.
|
||||||
if( self.moduleSettings.lowThresholdColor ) then
|
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" ]
|
self.settings.colors[ "ScaledHealthColor" ] = self.settings.colors[ "MinHealthColor" ]
|
||||||
else
|
elseif not self.moduleSettings.scaleHealthColor then
|
||||||
self.settings.colors[ "ScaledHealthColor" ] = self.settings.colors[ "MaxHealthColor" ]
|
self.settings.colors[ "ScaledHealthColor" ] = self.settings.colors[ "MaxHealthColor" ]
|
||||||
end
|
end
|
||||||
if( self.manaPercentage < self.moduleSettings.lowThreshold ) then
|
if( self.manaPercentage <= self.moduleSettings.lowThreshold ) then
|
||||||
self.settings.colors[ "ScaledManaColor" ] = self.settings.colors[ "MinManaColor" ]
|
self.settings.colors[ "ScaledManaColor" ] = self.settings.colors[ "MinManaColor" ]
|
||||||
else
|
elseif not self.moduleSettings.scaleManaColor then
|
||||||
self.settings.colors[ "ScaledManaColor" ] = self.settings.colors[ "MaxManaColor" ]
|
self.settings.colors[ "ScaledManaColor" ] = self.settings.colors[ "MaxManaColor" ]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
158
changelog.md
158
changelog.md
@ -1,5 +1,163 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
v1.14.37:
|
||||||
|
|
||||||
|
- Update LibRangeCheck version to address taint issues (wowace ticket #353)
|
||||||
|
|
||||||
|
v1.14.36:
|
||||||
|
|
||||||
|
- Really fix IceHUD stomping on other uses of the PowerBarContainer such as the Digging bar for the Archive event.
|
||||||
|
|
||||||
|
v1.14.35:
|
||||||
|
|
||||||
|
- Fix IceHUD stomping on other uses of the PowerBarContainer such as the Digging bar for the Archive event.
|
||||||
|
|
||||||
|
v1.14.34:
|
||||||
|
|
||||||
|
- Fix Vigor showing up sometimes when it shouldn't.
|
||||||
|
|
||||||
|
v1.14.33:
|
||||||
|
|
||||||
|
- Update TOC for Dragonflight to 10.2.5
|
||||||
|
|
||||||
|
v1.14.32:
|
||||||
|
|
||||||
|
- Enable GlobalCoolDown module in Classic Era 1.15.0+
|
||||||
|
- Enable tracking target buffs/debuffs in Classic Era 1.15.0+
|
||||||
|
|
||||||
|
v1.14.31:
|
||||||
|
|
||||||
|
- Fix nil concatenation error (wowace ticket #351)
|
||||||
|
|
||||||
|
v1.14.30:
|
||||||
|
|
||||||
|
- Update Classic-era TOC for 1.15.0
|
||||||
|
- Enable TargetCastBar module on Classic-era 1.15+
|
||||||
|
|
||||||
|
v1.14.29:
|
||||||
|
|
||||||
|
- Fix Stagger bar error for 10.2.0 (wowace ticket #348)
|
||||||
|
|
||||||
|
v1.14.28:
|
||||||
|
|
||||||
|
- Update TOC for Dragonflight to 10.2.0
|
||||||
|
|
||||||
|
v1.14.27:
|
||||||
|
|
||||||
|
- Update TOC for Dragonflight to 10.1.7
|
||||||
|
|
||||||
|
v1.14.26:
|
||||||
|
|
||||||
|
- Update TOC for classic-era to 1.14.4
|
||||||
|
|
||||||
|
v1.14.25:
|
||||||
|
|
||||||
|
- Fixed lua error that would appear when targetting webwrapped players in heroic alpha/beta titan rune dungeons.
|
||||||
|
- Added ability to adjust strata globally.
|
||||||
|
|
||||||
|
v1.14.24:
|
||||||
|
|
||||||
|
- Fixed an error when targeting a player and right-clicking a module that should show a menu in 10.1.5.
|
||||||
|
|
||||||
|
v1.14.23:
|
||||||
|
|
||||||
|
- Update Dragonflight TOC for 10.1.5
|
||||||
|
|
||||||
|
v1.14.22:
|
||||||
|
|
||||||
|
- Fixed reported issue with a Lua error on Wrath Classic clients. https://www.wowace.com/projects/ice-hud/issues/344
|
||||||
|
- Fixed Vigor module not working when riding Grotto Netherwing Drake (and theoretically all future Dragonriding mount types).
|
||||||
|
- Updated TOC for Wrath-Classic.
|
||||||
|
|
||||||
|
v1.14.21:
|
||||||
|
|
||||||
|
- Increased maximum scale/zoom to 400%, by request.
|
||||||
|
- Fixed TargetCC/FocusCC modules on Wrath Classic.
|
||||||
|
- Fixed disabled Buff/Debuff Watchers showing a static gray bar when set to When Missing or Always display modes.
|
||||||
|
- Fixed Buff/Debuff Watchers showing an empty bar when set to Missing mode. If the background was disabled, this looked like just a floating spell icon.
|
||||||
|
- Fixed spell icons sometimes not showing up for custom bars until the tracked spell had been cast once.
|
||||||
|
|
||||||
|
v1.14.20:
|
||||||
|
|
||||||
|
- Added Winding Slitherdrake as recognized for the Dragonriding Vigor module
|
||||||
|
|
||||||
|
v1.14.19:
|
||||||
|
|
||||||
|
- Updated TOCs for 10.1.0
|
||||||
|
- Added addon icon for 10.1.0 clients
|
||||||
|
- Fixed Dragonriding Vigor charges not showing up in 10.1.0
|
||||||
|
- Fixed Vigor not always updating correctly when loading into the game or a new zone
|
||||||
|
|
||||||
|
v1.14.18:
|
||||||
|
|
||||||
|
- Fixed Runic Power showing on a scale of 0-1000+ instead of 0-100+ with DogTags off
|
||||||
|
- Added option (enabled by default) to hide mod during cataloging.
|
||||||
|
- Fixed "Hide Blizzard Buffs" option on PlayerInfo causing errors and "?" icons when toggling off.
|
||||||
|
- Also hide Debuff frame if it exists (Dragonflight+) when enabling "Hide Blizzard Buffs" in the PlayerInfo module.
|
||||||
|
|
||||||
|
v1.14.17:
|
||||||
|
|
||||||
|
- Updated TOCs for 10.0.7
|
||||||
|
|
||||||
|
v1.14.16:
|
||||||
|
|
||||||
|
- Exposed the option in the Totems module to hide the Blizzard Totems frame or not, and changed the default value to not hide when on a version of the game that doesn't support right-clicking to destroy totems (any version after Wrath). This enables using the default Totems frame to cancel totems early.
|
||||||
|
- Fixed a reported error when playing Darkmoon Faire games.
|
||||||
|
- Added a few more Polymorph ranks to TargetCC for Classic. I'm sure there are more missing.
|
||||||
|
|
||||||
|
v1.14.15:
|
||||||
|
|
||||||
|
- Updated TOCs for 10.0.5
|
||||||
|
|
||||||
|
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.
|
||||||
|
- 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.
|
||||||
|
- Add "@" after the number when the Combo Points module is in Numeric mode, "Show Charged points" is enabled, and the current combo point is charged.
|
||||||
|
- Fix Charged point support in the ComboPointsBar module.
|
||||||
|
|
||||||
|
v1.14.4:
|
||||||
|
|
||||||
|
- Update TOC for 10.0.2
|
||||||
|
|
||||||
v1.14.3:
|
v1.14.3:
|
||||||
|
|
||||||
- Add Spell ID support for aura tracking.
|
- Add Spell ID support for aura tracking.
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
<Include file="libs\AceHook-3.0\AceHook-3.0.xml"/>
|
<Include file="libs\AceHook-3.0\AceHook-3.0.xml"/>
|
||||||
<Include file="libs\LibDogTag-3.0\lib.xml"/>
|
<Include file="libs\LibDogTag-3.0\lib.xml"/>
|
||||||
<Include file="libs\LibDogTag-Unit-3.0\lib.xml"/>
|
<Include file="libs\LibDogTag-Unit-3.0\lib.xml"/>
|
||||||
<Script file="libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"/>
|
<Script file="libs\LibRangeCheck-3.0\LibRangeCheck-3.0.lua"/>
|
||||||
<Include file="libs\LibSharedMedia-3.0\lib.xml"/>
|
<Include file="libs\LibSharedMedia-3.0\lib.xml"/>
|
||||||
<Include file="libs\AceGUI-3.0-SharedMediaWidgets\widget.xml"/>
|
<Include file="libs\AceGUI-3.0-SharedMediaWidgets\widget.xml"/>
|
||||||
<Script file="LibDataBroker-1.1.lua"/>
|
<Script file="LibDataBroker-1.1.lua"/>
|
||||||
|
@ -20,7 +20,8 @@ IceClassPowerCounter.prototype.unmodifiedMaxPerRune = 10
|
|||||||
IceClassPowerCounter.prototype.unit = "player"
|
IceClassPowerCounter.prototype.unit = "player"
|
||||||
IceClassPowerCounter.prototype.round = ceil
|
IceClassPowerCounter.prototype.round = ceil
|
||||||
IceClassPowerCounter.prototype.growModes = { width = 1, height = 2 }
|
IceClassPowerCounter.prototype.growModes = { width = 1, height = 2 }
|
||||||
IceClassPowerCounter.prototype.currentGrowMode = nil
|
IceClassPowerCounter.prototype.currentGrowMode = IceClassPowerCounter.prototype.growModes["height"]
|
||||||
|
IceClassPowerCounter.prototype.shouldRegisterDisplayPower = true
|
||||||
|
|
||||||
-- Constructor --
|
-- Constructor --
|
||||||
function IceClassPowerCounter.prototype:init(name)
|
function IceClassPowerCounter.prototype:init(name)
|
||||||
@ -391,7 +392,7 @@ function IceClassPowerCounter.prototype:GetDefaultSettings()
|
|||||||
defaults["hideFriendly"] = false
|
defaults["hideFriendly"] = false
|
||||||
defaults["pulseWhenFull"] = true
|
defaults["pulseWhenFull"] = true
|
||||||
defaults["overrideAlpha"] = true
|
defaults["overrideAlpha"] = true
|
||||||
defaults["numericVerticalOffset"] = 0
|
defaults["numericVerticalOffset"] = -25
|
||||||
defaults["alwaysShowNumeric"] = false
|
defaults["alwaysShowNumeric"] = false
|
||||||
|
|
||||||
return defaults
|
return defaults
|
||||||
@ -470,7 +471,9 @@ function IceClassPowerCounter.prototype:DisplayCounter()
|
|||||||
self:UnregisterEvent("PLAYER_LEVEL_UP")
|
self:UnregisterEvent("PLAYER_LEVEL_UP")
|
||||||
|
|
||||||
self:RegisterEvent(self:GetPowerEvent(), "UpdateRunePower")
|
self:RegisterEvent(self:GetPowerEvent(), "UpdateRunePower")
|
||||||
|
if self.shouldRegisterDisplayPower then
|
||||||
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateRunePower")
|
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateRunePower")
|
||||||
|
end
|
||||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
||||||
if IceHUD.EventExistsUnitMaxPower then
|
if IceHUD.EventExistsUnitMaxPower then
|
||||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateRunePower")
|
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
|
local percentReady = self.shouldShowUnmodified and (UnitPower("player", self.unitPower, true) / self.unmodifiedMaxPerRune) or numReady
|
||||||
|
|
||||||
if self:GetRuneMode() == "Numeric" or self.moduleSettings.alsoShowNumeric then
|
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
|
if self.numericFormat then
|
||||||
self.frame.numeric:SetText(format(self.numericFormat, percentReady))
|
self.frame.numeric:SetText(format(self.numericFormat, displayPercent))
|
||||||
else
|
else
|
||||||
self.frame.numeric:SetText(tostring(percentReady))
|
self.frame.numeric:SetText(tostring(displayPercent))
|
||||||
end
|
end
|
||||||
self.frame.numeric:SetTextColor(self:GetColor(self.numericColor))
|
self.frame.numeric:SetTextColor(self:GetColor(self.numericColor))
|
||||||
end
|
end
|
||||||
@ -539,7 +547,7 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
for i=1, self.numRunes do
|
for i=1, self.numRunes do
|
||||||
if i <= self.round(percentReady) then
|
if i <= self.round(percentReady) then
|
||||||
if self:GetRuneMode() == "Graphical" then
|
if self:GetRuneMode() == "Graphical" then
|
||||||
self.frame.graphical[i].rune:SetVertexColor(1, 1, 1)
|
self:SetRuneGraphicalTexture(i)
|
||||||
else
|
else
|
||||||
self:SetCustomColor(i)
|
self:SetCustomColor(i)
|
||||||
end
|
end
|
||||||
@ -549,33 +557,14 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if i > numReady or self.numRunes == 1 then
|
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
|
local currPercent = percentReady - numReady
|
||||||
if self.numRunes == 1 then
|
if self.numRunes == 1 then
|
||||||
currPercent = numReady / UnitPowerMax("player", self.unitPower)
|
currPercent = numReady / UnitPowerMax("player", self.unitPower)
|
||||||
end
|
end
|
||||||
|
|
||||||
if self.currentGrowMode == self.growModes["height"] then
|
self:SetRuneCoords(i, currPercent)
|
||||||
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)
|
|
||||||
elseif i > self.lastNumReady then
|
elseif i > self.lastNumReady then
|
||||||
if self.runeCoords ~= nil and #self.runeCoords >= i then
|
self:SetRuneCoords(i, 1)
|
||||||
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
|
|
||||||
|
|
||||||
if self.moduleSettings.flashWhenBecomingReady then
|
if self.moduleSettings.flashWhenBecomingReady then
|
||||||
local fadeInfo={
|
local fadeInfo={
|
||||||
@ -588,6 +577,17 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
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)
|
self:HideRune(i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -609,6 +609,30 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
end
|
end
|
||||||
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
|
||||||
|
local coords = self.runeCoords[rune]
|
||||||
|
if coords then
|
||||||
|
left, right, top, bottom = unpack(coords)
|
||||||
|
end
|
||||||
|
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)
|
function IceClassPowerCounter.prototype:HideRune(i)
|
||||||
if self:GetRuneMode() == "Numeric" then
|
if self:GetRuneMode() == "Numeric" then
|
||||||
self.frame.graphical[i].Hide()
|
self.frame.graphical[i].Hide()
|
||||||
@ -692,10 +716,22 @@ function IceClassPowerCounter.prototype:GetShineAtlas(rune)
|
|||||||
return nil
|
return nil
|
||||||
end
|
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()
|
function IceClassPowerCounter.prototype:CreateFrame()
|
||||||
IceClassPowerCounter.super.prototype.CreateFrame(self)
|
IceClassPowerCounter.super.prototype.CreateFrame(self)
|
||||||
|
|
||||||
self.frame:SetFrameStrata("LOW")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("LOW"))
|
||||||
self.frame:SetHeight(self.runeHeight)
|
self.frame:SetHeight(self.runeHeight)
|
||||||
self.frame:ClearAllPoints()
|
self.frame:ClearAllPoints()
|
||||||
self.frame:SetPoint("TOP", self.parent, "BOTTOM", self.moduleSettings.hpos, self.moduleSettings.vpos)
|
self.frame:SetPoint("TOP", self.parent, "BOTTOM", self.moduleSettings.hpos, self.moduleSettings.vpos)
|
||||||
@ -712,6 +748,7 @@ end
|
|||||||
function IceClassPowerCounter.prototype:SetDisplayMode()
|
function IceClassPowerCounter.prototype:SetDisplayMode()
|
||||||
if self:GetRuneMode() == "Numeric" or self.moduleSettings.alsoShowNumeric then
|
if self:GetRuneMode() == "Numeric" or self.moduleSettings.alsoShowNumeric then
|
||||||
self.frame.numeric:Show()
|
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
|
for i=1, self.numRunes do
|
||||||
self.frame.graphical[i]:Hide()
|
self.frame.graphical[i]:Hide()
|
||||||
end
|
end
|
||||||
@ -723,6 +760,21 @@ function IceClassPowerCounter.prototype:SetDisplayMode()
|
|||||||
for i=1, self.numRunes do
|
for i=1, self.numRunes do
|
||||||
self:SetupRuneTexture(i)
|
self:SetupRuneTexture(i)
|
||||||
self.frame.graphical[i]:Show()
|
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
|
end
|
||||||
end
|
end
|
||||||
@ -737,7 +789,6 @@ function IceClassPowerCounter.prototype:CreateRuneFrame()
|
|||||||
|
|
||||||
self.frame.numeric:SetJustifyH("CENTER")
|
self.frame.numeric:SetJustifyH("CENTER")
|
||||||
|
|
||||||
self.frame.numeric:SetPoint("CENTER", self.frame.numericParent, "CENTER", 0, self.moduleSettings.numericVerticalOffset)
|
|
||||||
self.frame.numeric:Hide()
|
self.frame.numeric:Hide()
|
||||||
|
|
||||||
if (not self.frame.graphical) then
|
if (not self.frame.graphical) then
|
||||||
@ -756,9 +807,9 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
|||||||
-- create runes
|
-- create runes
|
||||||
if (not self.frame.graphical[i]) then
|
if (not self.frame.graphical[i]) then
|
||||||
self.frame.graphical[i] = CreateFrame("Frame", nil, self.frame)
|
self.frame.graphical[i] = CreateFrame("Frame", nil, self.frame)
|
||||||
self.frame.graphical[i]:SetFrameStrata("BACKGROUND")
|
self.frame.graphical[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("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.frame.graphical[i].rune:SetVertexColor(0, 0, 0)
|
||||||
self:SetupRuneTexture(i)
|
self:SetupRuneTexture(i)
|
||||||
|
|
||||||
@ -777,6 +828,22 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
|||||||
self.frame.graphical[i].shine:SetHeight(self.runeHeight + 10)
|
self.frame.graphical[i].shine:SetHeight(self.runeHeight + 10)
|
||||||
self.frame.graphical[i].shine:Hide()
|
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()
|
self.frame.graphical[i]:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -784,6 +851,10 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
|||||||
self.frame.graphical[i]:SetHeight(self.runeHeight)
|
self.frame.graphical[i]:SetHeight(self.runeHeight)
|
||||||
self.frame.graphical[i].rune:SetWidth(self.runeWidth)
|
self.frame.graphical[i].rune:SetWidth(self.runeWidth)
|
||||||
self.frame.graphical[i].rune:SetHeight(self.runeHeight)
|
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
|
if self.currentGrowMode == self.growModes["width"] then
|
||||||
self.frame.graphical[i].rune:SetPoint("LEFT", self.frame.graphical[i], "LEFT")
|
self.frame.graphical[i].rune:SetPoint("LEFT", self.frame.graphical[i], "LEFT")
|
||||||
else
|
else
|
||||||
@ -806,7 +877,10 @@ function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
|||||||
local a,b,c,d = 0, 1, 0, 1
|
local a,b,c,d = 0, 1, 0, 1
|
||||||
if self:GetRuneMode() == "Graphical" then
|
if self:GetRuneMode() == "Graphical" then
|
||||||
width = self.runeWidth
|
width = self.runeWidth
|
||||||
a,b,c,d = unpack(self.runeCoords[rune])
|
local coords = self.runeCoords[rune]
|
||||||
|
if coords then
|
||||||
|
a,b,c,d = unpack(coords)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- make sure any texture aside from the special one is square and has the proper coordinates
|
-- make sure any texture aside from the special one is square and has the proper coordinates
|
||||||
@ -821,12 +895,7 @@ function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if self:GetRuneMode() == "Graphical" then
|
if self:GetRuneMode() == "Graphical" then
|
||||||
local tex = self:GetRuneTexture(rune)
|
self:SetRuneGraphicalTexture(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
|
|
||||||
elseif self:GetRuneMode() == "Graphical Bar" then
|
elseif self:GetRuneMode() == "Graphical Bar" then
|
||||||
self.frame.graphical[rune].rune:SetTexture(IceElement.TexturePath .. "Combo")
|
self.frame.graphical[rune].rune:SetTexture(IceElement.TexturePath .. "Combo")
|
||||||
elseif self:GetRuneMode() == "Graphical Circle" then
|
elseif self:GetRuneMode() == "Graphical Circle" then
|
||||||
@ -838,6 +907,19 @@ function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
|||||||
end
|
end
|
||||||
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()
|
function IceClassPowerCounter.prototype:GetAlphaAdd()
|
||||||
return 0.15
|
return 0.15
|
||||||
end
|
end
|
||||||
|
@ -337,7 +337,7 @@ end
|
|||||||
function ComboPoints.prototype:CreateFrame()
|
function ComboPoints.prototype:CreateFrame()
|
||||||
ComboPoints.super.prototype.CreateFrame(self)
|
ComboPoints.super.prototype.CreateFrame(self)
|
||||||
|
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
||||||
self.frame:SetWidth((self.comboSize - 5)*self:GetMaxComboPoints())
|
self.frame:SetWidth((self.comboSize - 5)*self:GetMaxComboPoints())
|
||||||
self.frame:SetHeight(1)
|
self.frame:SetHeight(1)
|
||||||
@ -396,7 +396,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphicalBG[i]:SetFrameStrata("BACKGROUND")
|
self.frame.graphicalBG[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame.graphicalBG[i]:SetWidth(self.comboSize)
|
self.frame.graphicalBG[i]:SetWidth(self.comboSize)
|
||||||
self.frame.graphicalBG[i]:SetHeight(self.comboSize)
|
self.frame.graphicalBG[i]:SetHeight(self.comboSize)
|
||||||
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
||||||
@ -432,7 +432,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphical[i]:SetFrameStrata("LOW")
|
self.frame.graphical[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("LOW"))
|
||||||
self.frame.graphical[i]:SetAllPoints(self.frame.graphicalBG[i])
|
self.frame.graphical[i]:SetAllPoints(self.frame.graphicalBG[i])
|
||||||
|
|
||||||
local r, g, b = self:GetColor("ComboPoints")
|
local r, g, b = self:GetColor("ComboPoints")
|
||||||
@ -471,7 +471,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphicalAnt[i]:SetFrameStrata("LOW")
|
self.frame.graphicalAnt[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("LOW"))
|
||||||
self.frame.graphicalAnt[i]:SetFrameLevel(self.frame.graphical[i]:GetFrameLevel() + 1)
|
self.frame.graphicalAnt[i]:SetFrameLevel(self.frame.graphical[i]:GetFrameLevel() + 1)
|
||||||
self.frame.graphicalAnt[i]:SetWidth(math.floor(self.comboSize / 2))
|
self.frame.graphicalAnt[i]:SetWidth(math.floor(self.comboSize / 2))
|
||||||
self.frame.graphicalAnt[i]:SetHeight(math.floor(self.comboSize / 2))
|
self.frame.graphicalAnt[i]:SetHeight(math.floor(self.comboSize / 2))
|
||||||
@ -545,6 +545,9 @@ function ComboPoints.prototype:UpdateComboPoints(...)
|
|||||||
self.frame.numeric:SetTextColor(r, g, b, 0.7)
|
self.frame.numeric:SetTextColor(r, g, b, 0.7)
|
||||||
|
|
||||||
local pointsText = tostring(points)
|
local pointsText = tostring(points)
|
||||||
|
if self.moduleSettings.bShowCharged and self:IsChargedPoint(points) then
|
||||||
|
pointsText = pointsText.."@"
|
||||||
|
end
|
||||||
if anticipate > 0 then
|
if anticipate > 0 then
|
||||||
pointsText = pointsText.."+"..tostring(anticipate)
|
pointsText = pointsText.."+"..tostring(anticipate)
|
||||||
end
|
end
|
||||||
|
@ -11,6 +11,7 @@ function ComboPointsBar.prototype:init()
|
|||||||
|
|
||||||
self:SetDefaultColor("ComboPointsBarMin", 1, 1, 0)
|
self:SetDefaultColor("ComboPointsBarMin", 1, 1, 0)
|
||||||
self:SetDefaultColor("ComboPointsBarMax", 0, 1, 0)
|
self:SetDefaultColor("ComboPointsBarMax", 0, 1, 0)
|
||||||
|
self:SetDefaultColor("ChargedComboPointBar", 0.3137254901960784, 0.3725490196078432, 1)
|
||||||
|
|
||||||
self.bTreatEmptyAsFull = true
|
self.bTreatEmptyAsFull = true
|
||||||
end
|
end
|
||||||
@ -52,6 +53,26 @@ function ComboPointsBar.prototype:GetOptions()
|
|||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opts["bShowCharged"] = {
|
||||||
|
type = 'toggle',
|
||||||
|
width = 'double',
|
||||||
|
name = L["Show Charged points"],
|
||||||
|
desc = L["Whether or not to color a charged combo point a separate color and append an @ sign to the number. Set the ChargedComboPointBar color to the color you would like it to be."],
|
||||||
|
get = function()
|
||||||
|
return self.moduleSettings.bShowCharged
|
||||||
|
end,
|
||||||
|
set = function(info, v)
|
||||||
|
self.moduleSettings.bShowCharged = v
|
||||||
|
self:UpdateComboPoints()
|
||||||
|
end,
|
||||||
|
disabled = function()
|
||||||
|
return not self.moduleSettings.enabled
|
||||||
|
end,
|
||||||
|
hidden = function()
|
||||||
|
return not GetUnitChargedPowerPoints
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
return opts
|
return opts
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -62,6 +83,7 @@ function ComboPointsBar.prototype:GetDefaultSettings()
|
|||||||
defaults.alwaysDisplay = false
|
defaults.alwaysDisplay = false
|
||||||
defaults.desiredLerpTime = 0.05
|
defaults.desiredLerpTime = 0.05
|
||||||
defaults.bShowWithNoTarget = true
|
defaults.bShowWithNoTarget = true
|
||||||
|
defaults.bShowCharged = true
|
||||||
return defaults
|
return defaults
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -84,17 +106,7 @@ function ComboPointsBar.prototype:Enable(core)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if GetUnitChargedPowerPoints then
|
if GetUnitChargedPowerPoints then
|
||||||
self:RegisterEvent("UNIT_POWER_POINT_CHARGE", "UpdateChargedComboPoints")
|
self:RegisterEvent("UNIT_POWER_POINT_CHARGE", "UpdateComboPoints")
|
||||||
end
|
|
||||||
|
|
||||||
self:UpdateChargedComboPoints()
|
|
||||||
end
|
|
||||||
|
|
||||||
function ComboPointsBar.prototype:UpdateChargedComboPoints()
|
|
||||||
if GetUnitChargedPowerPoints then
|
|
||||||
local chargedPowerPoints = GetUnitChargedPowerPoints("player")
|
|
||||||
self.chargedPowerPointIndex = chargedPowerPoints and chargedPowerPoints[1]
|
|
||||||
self:UpdateComboPoints()
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -131,20 +143,46 @@ function ComboPointsBar.prototype:UpdateComboPoints(...)
|
|||||||
points = nil
|
points = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local isCharged = self:IsChargedPoint(points) and self.moduleSettings.bShowCharged
|
||||||
|
|
||||||
if points == nil or points == 0 or (not UnitExists("target") and not self.moduleSettings.bShowWithNoTarget) then
|
if points == nil or points == 0 or (not UnitExists("target") and not self.moduleSettings.bShowWithNoTarget) then
|
||||||
self:Show(self.moduleSettings.alwaysDisplay)
|
self:Show(self.moduleSettings.alwaysDisplay)
|
||||||
self:UpdateBar(0, "undef")
|
self:UpdateBar(0, "undef")
|
||||||
else
|
else
|
||||||
self:Show(true)
|
self:Show(true)
|
||||||
|
if isCharged then
|
||||||
|
color.r, color.g, color.b = self:GetColor("ChargedComboPointBar")
|
||||||
|
else
|
||||||
self:SetScaledColor(color, (points - 1) / 4.0, self.settings.colors["ComboPointsBarMax"], self.settings.colors["ComboPointsBarMin"])
|
self:SetScaledColor(color, (points - 1) / 4.0, self.settings.colors["ComboPointsBarMax"], self.settings.colors["ComboPointsBarMin"])
|
||||||
|
end
|
||||||
self:UpdateBar(points / UnitPowerMax("player", SPELL_POWER_COMBO_POINTS), "undef")
|
self:UpdateBar(points / UnitPowerMax("player", SPELL_POWER_COMBO_POINTS), "undef")
|
||||||
self.barFrame.bar:SetVertexColor(color.r, color.g, color.b, self.alpha)
|
self.barFrame.bar:SetVertexColor(color.r, color.g, color.b, self.alpha)
|
||||||
end
|
end
|
||||||
|
|
||||||
self:SetBottomText1(points or "0")
|
local pointsText = tostring(points or 0)
|
||||||
if self.chargedPowerPointIndex then
|
if isCharged then
|
||||||
self:SetBottomText2(self.chargedPowerPointIndex)
|
pointsText = pointsText .. "@"
|
||||||
end
|
end
|
||||||
|
self:SetBottomText1(pointsText or "0")
|
||||||
|
end
|
||||||
|
|
||||||
|
function ComboPointsBar.prototype:IsChargedPoint(point)
|
||||||
|
if not GetUnitChargedPowerPoints or not point then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local chargedPoints = GetUnitChargedPowerPoints("player")
|
||||||
|
if not chargedPoints then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
for i=1, #chargedPoints do
|
||||||
|
if chargedPoints[i] == point then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
function ComboPointsBar.prototype:Update()
|
function ComboPointsBar.prototype:Update()
|
||||||
|
@ -10,6 +10,7 @@ local buffOrDebuff = {"buff", "debuff"}
|
|||||||
local validBuffTimers = {"none", "seconds", "minutes:seconds", "minutes"}
|
local validBuffTimers = {"none", "seconds", "minutes:seconds", "minutes"}
|
||||||
local AuraIconWidth = 20
|
local AuraIconWidth = 20
|
||||||
local AuraIconHeight = 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.auraDuration = -1
|
||||||
IceCustomBar.prototype.auraEndTime = -1
|
IceCustomBar.prototype.auraEndTime = -1
|
||||||
@ -28,6 +29,16 @@ end
|
|||||||
function IceCustomBar.prototype:Enable(core)
|
function IceCustomBar.prototype:Enable(core)
|
||||||
IceCustomBar.super.prototype.Enable(self, 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
|
if IceHUD.IceCore:ShouldUseDogTags() then
|
||||||
DogTag = LibStub("LibDogTag-3.0", true)
|
DogTag = LibStub("LibDogTag-3.0", true)
|
||||||
if DogTag then
|
if DogTag then
|
||||||
@ -72,6 +83,7 @@ function IceCustomBar.prototype:Enable(core)
|
|||||||
self:FixupTextColors()
|
self:FixupTextColors()
|
||||||
self:SetCustomTextColor(self.frame.bottomUpperText, self.moduleSettings.upperTextColor)
|
self:SetCustomTextColor(self.frame.bottomUpperText, self.moduleSettings.upperTextColor)
|
||||||
self:SetCustomTextColor(self.frame.bottomLowerText, self.moduleSettings.lowerTextColor)
|
self:SetCustomTextColor(self.frame.bottomLowerText, self.moduleSettings.lowerTextColor)
|
||||||
|
self:UpdateAuraIcon()
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceCustomBar.prototype:Disable(core)
|
function IceCustomBar.prototype:Disable(core)
|
||||||
@ -149,8 +161,7 @@ function IceCustomBar.prototype:GetDefaultSettings()
|
|||||||
settings["buffOrDebuff"] = "buff"
|
settings["buffOrDebuff"] = "buff"
|
||||||
settings["barColor"] = {r=1, g=0, b=0, a=1}
|
settings["barColor"] = {r=1, g=0, b=0, a=1}
|
||||||
settings["trackOnlyMine"] = true
|
settings["trackOnlyMine"] = true
|
||||||
settings["displayWhenEmpty"] = false
|
settings["displayMode"] = displayModes.NORMAL
|
||||||
settings["displayWhenTargeting"] = false
|
|
||||||
settings["hideAnimationSettings"] = true
|
settings["hideAnimationSettings"] = true
|
||||||
settings["buffTimerDisplay"] = "minutes"
|
settings["buffTimerDisplay"] = "minutes"
|
||||||
settings["maxDuration"] = 0
|
settings["maxDuration"] = 0
|
||||||
@ -194,6 +205,7 @@ end
|
|||||||
function IceCustomBar.prototype:Redraw()
|
function IceCustomBar.prototype:Redraw()
|
||||||
IceCustomBar.super.prototype.Redraw(self)
|
IceCustomBar.super.prototype.Redraw(self)
|
||||||
|
|
||||||
|
self:UpdateAuraIcon()
|
||||||
self:UpdateCustomBar(self.unit)
|
self:UpdateCustomBar(self.unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -431,38 +443,39 @@ function IceCustomBar.prototype:GetOptions()
|
|||||||
order = 30.8,
|
order = 30.8,
|
||||||
}
|
}
|
||||||
|
|
||||||
opts["displayWhenEmpty"] = {
|
opts["displayMode"] = {
|
||||||
type = 'toggle',
|
type = 'select',
|
||||||
name = L["Display when empty"],
|
values = displayModes,
|
||||||
desc = L["Whether or not to display this bar even if the buff/debuff specified is not present."],
|
name = L["Display mode"],
|
||||||
get = function()
|
desc = L["When to show the bar"],
|
||||||
return self.moduleSettings.displayWhenEmpty
|
get = function(info)
|
||||||
|
return IceHUD:GetSelectValue(info, self.moduleSettings.displayMode)
|
||||||
end,
|
end,
|
||||||
set = function(info, v)
|
set = function(info, v)
|
||||||
self.moduleSettings.displayWhenEmpty = v
|
self.moduleSettings.displayMode = info.option.values[v]
|
||||||
self:UpdateCustomBar()
|
self:UpdateCustomBar()
|
||||||
end,
|
end,
|
||||||
disabled = function()
|
disabled = function()
|
||||||
return not self.moduleSettings.enabled
|
return not self.moduleSettings.enabled
|
||||||
end,
|
end,
|
||||||
order = 30.9
|
order = 30.9,
|
||||||
}
|
}
|
||||||
|
|
||||||
opts["displayWhenTargeting"] = {
|
opts["displayWhenUnitExists"] = {
|
||||||
type = 'toggle',
|
type = 'toggle',
|
||||||
name = L["Display when targeting"],
|
name = L["Only if unit exists"],
|
||||||
desc = L["Whether to display this bar when you target a unit, even if the buff/debuff specified is not present."],
|
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()
|
get = function(info)
|
||||||
return self.moduleSettings.displayWhenTargeting
|
return self.moduleSettings.displayWhenUnitExists
|
||||||
end,
|
end,
|
||||||
set = function(info, v)
|
set = function(info, v)
|
||||||
self.moduleSettings.displayWhenTargeting = v
|
self.moduleSettings.displayWhenUnitExists = v
|
||||||
self:UpdateCustomBar()
|
self:UpdateCustomBar()
|
||||||
end,
|
end,
|
||||||
disabled = function()
|
disabled = function()
|
||||||
return not self.moduleSettings.enabled
|
return not self.moduleSettings.enabled
|
||||||
end,
|
end,
|
||||||
order = 30.91
|
order = 30.91,
|
||||||
}
|
}
|
||||||
|
|
||||||
opts["buffTimerDisplay"] = {
|
opts["buffTimerDisplay"] = {
|
||||||
@ -811,7 +824,11 @@ function IceCustomBar.prototype:UpdateCustomBar(unit, fromUpdate)
|
|||||||
|
|
||||||
self:UpdateBar(self.auraDuration ~= 0 and remaining / self.auraDuration or 0, "undef")
|
self:UpdateBar(self.auraDuration ~= 0 and remaining / self.auraDuration or 0, "undef")
|
||||||
else
|
else
|
||||||
self:UpdateBar(0, "undef")
|
local updateVal = 0
|
||||||
|
if self.moduleSettings.displayMode == displayModes.MISSING then
|
||||||
|
updateVal = 1
|
||||||
|
end
|
||||||
|
self:UpdateBar(updateVal, "undef")
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
if not self:ShouldAlwaysSubscribe() then
|
if not self:ShouldAlwaysSubscribe() then
|
||||||
self.handlesOwnUpdates = false
|
self.handlesOwnUpdates = false
|
||||||
@ -866,9 +883,21 @@ function IceCustomBar.prototype:Show(bShouldShow, bForceHide)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if self.moduleSettings.displayWhenTargeting and self.target then
|
if self.moduleSettings.displayWhenUnitExists and not UnitExists(self.unit) then
|
||||||
IceCustomBar.super.prototype.Show(self, true)
|
IceCustomBar.super.prototype.Show(self, false)
|
||||||
elseif self.moduleSettings.displayWhenEmpty then
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.moduleSettings.displayMode == displayModes.MISSING then
|
||||||
|
local show = not bShouldShow
|
||||||
|
if show and not self:IsEnabled() then
|
||||||
|
show = false
|
||||||
|
end
|
||||||
|
|
||||||
|
IceCustomBar.super.prototype.Show(self, show)
|
||||||
|
elseif self.moduleSettings.displayMode == displayModes.WHEN_TARGETING and self.target then
|
||||||
|
IceCustomBar.super.prototype.Show(self, self:IsEnabled())
|
||||||
|
elseif self.moduleSettings.displayMode == displayModes.ALWAYS then
|
||||||
if not self.bIsVisible then
|
if not self.bIsVisible then
|
||||||
IceCustomBar.super.prototype.Show(self, true)
|
IceCustomBar.super.prototype.Show(self, true)
|
||||||
end
|
end
|
||||||
@ -876,3 +905,13 @@ function IceCustomBar.prototype:Show(bShouldShow, bForceHide)
|
|||||||
IceCustomBar.super.prototype.Show(self, bShouldShow)
|
IceCustomBar.super.prototype.Show(self, bShouldShow)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function IceCustomBar.prototype:UpdateAuraIcon()
|
||||||
|
if not self.barFrame or not self.barFrame.icon then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local _, _, auraIcon = GetSpellInfo(self.moduleSettings.buffToTrack)
|
||||||
|
|
||||||
|
self.barFrame.icon:SetTexture(auraIcon)
|
||||||
|
end
|
||||||
|
@ -326,7 +326,7 @@ end
|
|||||||
function IceCustomCount.prototype:CreateFrame()
|
function IceCustomCount.prototype:CreateFrame()
|
||||||
IceCustomCount.super.prototype.CreateFrame(self)
|
IceCustomCount.super.prototype.CreateFrame(self)
|
||||||
|
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
||||||
self.frame:SetWidth((self.countSize + self.moduleSettings.countGap)*IceStackCounter_GetMaxCount(self))
|
self.frame:SetWidth((self.countSize + self.moduleSettings.countGap)*IceStackCounter_GetMaxCount(self))
|
||||||
self.frame:SetHeight(1)
|
self.frame:SetHeight(1)
|
||||||
@ -382,7 +382,7 @@ function IceCustomCount.prototype:CreateCustomFrame(doTextureUpdate)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphicalBG[i]:SetFrameStrata("BACKGROUND")
|
self.frame.graphicalBG[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame.graphicalBG[i]:SetWidth(self.countSize)
|
self.frame.graphicalBG[i]:SetWidth(self.countSize)
|
||||||
self.frame.graphicalBG[i]:SetHeight(self.countSize)
|
self.frame.graphicalBG[i]:SetHeight(self.countSize)
|
||||||
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
||||||
@ -416,7 +416,7 @@ function IceCustomCount.prototype:CreateCustomFrame(doTextureUpdate)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphical[i]:SetFrameStrata("BACKGROUND")
|
self.frame.graphical[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame.graphical[i]:SetAllPoints(self.frame.graphicalBG[i])
|
self.frame.graphical[i]:SetAllPoints(self.frame.graphicalBG[i])
|
||||||
|
|
||||||
self.frame.graphical[i]:Hide()
|
self.frame.graphical[i]:Hide()
|
||||||
|
@ -144,6 +144,8 @@ function IceCustomHealth.prototype:Update(unit)
|
|||||||
|
|
||||||
if (self.moduleSettings.scaleHealthColor) then
|
if (self.moduleSettings.scaleHealthColor) then
|
||||||
self.color = "ScaledHealthColor"
|
self.color = "ScaledHealthColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
self.color = "ScaledHealthColor"
|
||||||
end
|
end
|
||||||
|
|
||||||
if (self.tapped) then
|
if (self.tapped) then
|
||||||
|
189
modules/DragonridingVigor.lua
Normal file
189
modules/DragonridingVigor.lua
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
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
|
||||||
|
368893, -- Winding Slitherdrake
|
||||||
|
412088, -- Grotto Netherwing Drake
|
||||||
|
}
|
||||||
|
|
||||||
|
local vigorWidgetSetID = 283
|
||||||
|
local vigorWidgetID = 4460
|
||||||
|
local knowsAlternateMountEnum = Enum and Enum.PowerType and Enum.PowerType.AlternateMount
|
||||||
|
local unitPowerType = Enum and Enum.PowerType and Enum.PowerType.AlternateMount
|
||||||
|
unitPowerType = unitPowerType or ALTERNATE_POWER_INDEX
|
||||||
|
|
||||||
|
function DragonridingVigor.prototype:init()
|
||||||
|
DragonridingVigor.super.prototype.init(self, "Vigor")
|
||||||
|
|
||||||
|
self:SetDefaultColor("VigorNumeric", 150, 150, 255)
|
||||||
|
|
||||||
|
self.unit = "player"
|
||||||
|
self.numericColor = "VigorNumeric"
|
||||||
|
self.unitPower = unitPowerType
|
||||||
|
self.minLevel = 0
|
||||||
|
self.bTreatEmptyAsFull = false
|
||||||
|
self.runeWidth = self.runeHeight
|
||||||
|
self.shouldRegisterDisplayPower = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function DragonridingVigor.prototype:Enable(core)
|
||||||
|
self.numRunes = UnitPowerMax(self.unit, unitPowerType)
|
||||||
|
self.runeCoords = { }
|
||||||
|
for i = 1, self.numRunes do
|
||||||
|
self:SetupNewRune(i)
|
||||||
|
end
|
||||||
|
|
||||||
|
DragonridingVigor.super.prototype.Enable(self, core)
|
||||||
|
self:Show(false)
|
||||||
|
|
||||||
|
self:RegisterEvent("UNIT_AURA", "CheckShouldShow")
|
||||||
|
self:RegisterEvent("UPDATE_UI_WIDGET", "UpdateVigorRecharge")
|
||||||
|
end
|
||||||
|
|
||||||
|
function DragonridingVigor.prototype:EnteringWorld()
|
||||||
|
DragonridingVigor.super.prototype.EnteringWorld(self)
|
||||||
|
|
||||||
|
self:CheckShouldShow("PLAYER_ENTERING_WORLD", "player")
|
||||||
|
end
|
||||||
|
|
||||||
|
function DragonridingVigor.prototype:CheckShouldShow(event, unit, info)
|
||||||
|
if unit ~= "player" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local info = C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo(vigorWidgetID)
|
||||||
|
if not info or info.shownState == 0 then
|
||||||
|
self:Show(false)
|
||||||
|
self.suppressHideBlizz = true
|
||||||
|
if self.moduleSettings.hideBlizz then
|
||||||
|
self:ShowBlizz()
|
||||||
|
end
|
||||||
|
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self:Show(true)
|
||||||
|
|
||||||
|
-- if knowsAlternateMountEnum and UnitPowerMax(self.unit, unitPowerType) > 0 then
|
||||||
|
-- self:Show(true)
|
||||||
|
-- elseif not knowsAlternateMountEnum and 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
|
||||||
|
|
||||||
|
local info = C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo(vigorWidgetID)
|
||||||
|
if not info then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.suppressHideBlizz = not info or info.shownState == 0
|
||||||
|
|
||||||
|
if event ~= "internal" then
|
||||||
|
if self.moduleSettings.hideBlizz then
|
||||||
|
self:HideBlizz()
|
||||||
|
else
|
||||||
|
self:ShowBlizz()
|
||||||
|
end
|
||||||
|
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()
|
||||||
|
local info = C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo(vigorWidgetID)
|
||||||
|
if not info or info.shownState == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
UIWidgetPowerBarContainerFrame.widgetFrames[vigorWidgetID]:Show()
|
||||||
|
end
|
||||||
|
|
||||||
|
function DragonridingVigor.prototype:HideBlizz()
|
||||||
|
if not UIWidgetPowerBarContainerFrame.widgetFrames or not UIWidgetPowerBarContainerFrame.widgetFrames[vigorWidgetID] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if not self.suppressHideBlizz then
|
||||||
|
UIWidgetPowerBarContainerFrame.widgetFrames[vigorWidgetID]:Hide()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Load us up
|
||||||
|
if unitPowerType and C_UIWidgetManager and C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo then
|
||||||
|
IceHUD.DragonridingVigor = DragonridingVigor:new()
|
||||||
|
end
|
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
|
if (self.moduleSettings.scaleHealthColor) then
|
||||||
self.color = "ScaledHealthColor"
|
self.color = "ScaledHealthColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
self.color = "ScaledHealthColor"
|
||||||
end
|
end
|
||||||
|
|
||||||
if (self.tapped) then
|
if (self.tapped) then
|
||||||
@ -420,9 +422,9 @@ end
|
|||||||
|
|
||||||
function FocusHealth.prototype:UpdateRaidFocusIcon()
|
function FocusHealth.prototype:UpdateRaidFocusIcon()
|
||||||
if self.moduleSettings.raidIconOnTop then
|
if self.moduleSettings.raidIconOnTop then
|
||||||
self.frame.raidIcon:SetFrameStrata("MEDIUM")
|
self.frame.raidIcon:SetFrameStrata(IceHUD.IceCore:DetermineStrata("MEDIUM"))
|
||||||
else
|
else
|
||||||
self.frame.raidIcon:SetFrameStrata("LOW")
|
self.frame.raidIcon:SetFrameStrata(IceHUD.IceCore:DetermineStrata("LOW"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if not (UnitExists(self.unit)) or not self.moduleSettings.showRaidIcon then
|
if not (UnitExists(self.unit)) or not self.moduleSettings.showRaidIcon then
|
||||||
|
@ -88,6 +88,8 @@ function FocusMana.prototype:Update(unit)
|
|||||||
local color = "FocusMana"
|
local color = "FocusMana"
|
||||||
if (self.moduleSettings.scaleManaColor) then
|
if (self.moduleSettings.scaleManaColor) then
|
||||||
color = "ScaledManaColor"
|
color = "ScaledManaColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
color = "ScaledManaColor"
|
||||||
end
|
end
|
||||||
if (manaType == SPELL_POWER_RAGE) then
|
if (manaType == SPELL_POWER_RAGE) then
|
||||||
color = "FocusRage"
|
color = "FocusRage"
|
||||||
|
@ -38,7 +38,7 @@ function GlobalCoolDown.prototype:Enable(core)
|
|||||||
|
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
|
|
||||||
self.frame:SetFrameStrata("LOW")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("LOW"))
|
||||||
|
|
||||||
self.CDSpellId = self:GetSpellId()
|
self.CDSpellId = self:GetSpellId()
|
||||||
end
|
end
|
||||||
@ -289,6 +289,12 @@ function GlobalCoolDown.prototype:GetSpellId()
|
|||||||
if not GetSpellInfo(defaultSpells["PALADIN"]) then
|
if not GetSpellInfo(defaultSpells["PALADIN"]) then
|
||||||
defaultSpells["PALADIN"] = 635
|
defaultSpells["PALADIN"] = 635
|
||||||
end
|
end
|
||||||
|
if not GetSpellInfo(defaultSpells["MAGE"]) then
|
||||||
|
defaultSpells["MAGE"] = 133
|
||||||
|
end
|
||||||
|
if not GetSpellInfo(defaultSpells["WARRIOR"]) then
|
||||||
|
defaultSpells["WARRIOR"] = 6673
|
||||||
|
end
|
||||||
|
|
||||||
local _, unitClass = UnitClass("player")
|
local _, unitClass = UnitClass("player")
|
||||||
return defaultSpells[unitClass]
|
return defaultSpells[unitClass]
|
||||||
|
@ -93,6 +93,8 @@ function PetHealth.prototype:Update(unit)
|
|||||||
|
|
||||||
if (self.moduleSettings.scaleHealthColor) then
|
if (self.moduleSettings.scaleHealthColor) then
|
||||||
color = "ScaledHealthColor"
|
color = "ScaledHealthColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
color = "ScaledHealthColor"
|
||||||
end
|
end
|
||||||
|
|
||||||
if not (self.alive) then
|
if not (self.alive) then
|
||||||
|
@ -173,6 +173,8 @@ function PetMana.prototype:Update(unit)
|
|||||||
local color = "PetMana"
|
local color = "PetMana"
|
||||||
if (self.moduleSettings.scaleManaColor) then
|
if (self.moduleSettings.scaleManaColor) then
|
||||||
color = "ScaledManaColor"
|
color = "ScaledManaColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
color = "ScaledManaColor"
|
||||||
end
|
end
|
||||||
if not (self.alive) then
|
if not (self.alive) then
|
||||||
color = "Dead"
|
color = "Dead"
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
IceHUDPlayerAlternatePower = IceCore_CreateClass(IceUnitBar)
|
local PlayerAlternatePower = IceCore_CreateClass(IceUnitBar)
|
||||||
|
|
||||||
-- Constructor --
|
-- Constructor --
|
||||||
function IceHUDPlayerAlternatePower.prototype:init(moduleName, unit)
|
function PlayerAlternatePower.prototype:init(moduleName, unit)
|
||||||
IceHUDPlayerAlternatePower.super.prototype.init(self, moduleName or "PlayerAlternatePower", "player")
|
PlayerAlternatePower.super.prototype.init(self, moduleName or "PlayerAlternatePower", "player")
|
||||||
|
|
||||||
self.bTreatEmptyAsFull = true
|
self.bTreatEmptyAsFull = true
|
||||||
self.power = 0
|
self.power = 0
|
||||||
@ -13,8 +13,8 @@ function IceHUDPlayerAlternatePower.prototype:init(moduleName, unit)
|
|||||||
self.powerName = "MANA"
|
self.powerName = "MANA"
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:GetDefaultSettings()
|
function PlayerAlternatePower.prototype:GetDefaultSettings()
|
||||||
local settings = IceHUDPlayerAlternatePower.super.prototype.GetDefaultSettings(self)
|
local settings = PlayerAlternatePower.super.prototype.GetDefaultSettings(self)
|
||||||
|
|
||||||
settings["side"] = IceCore.Side.Left
|
settings["side"] = IceCore.Side.Left
|
||||||
settings["offset"] = -1
|
settings["offset"] = -1
|
||||||
@ -25,8 +25,8 @@ function IceHUDPlayerAlternatePower.prototype:GetDefaultSettings()
|
|||||||
return settings
|
return settings
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:Enable(core)
|
function PlayerAlternatePower.prototype:Enable(core)
|
||||||
IceHUDPlayerAlternatePower.super.prototype.Enable(self, core)
|
PlayerAlternatePower.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
|
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
|
||||||
if IceHUD.EventExistsUnitMaxPower then
|
if IceHUD.EventExistsUnitMaxPower then
|
||||||
@ -39,40 +39,50 @@ function IceHUDPlayerAlternatePower.prototype:Enable(core)
|
|||||||
|
|
||||||
if self.maxPower == 0 then
|
if self.maxPower == 0 then
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
|
else
|
||||||
|
self.wantToShow = true
|
||||||
end
|
end
|
||||||
if self.moduleSettings.hideBlizz then
|
if self.moduleSettings.hideBlizz then
|
||||||
self:HideBlizz()
|
self:HideBlizz()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:PowerBarShow(event, unit)
|
function PlayerAlternatePower.prototype:PowerBarShow(event, unit)
|
||||||
if unit ~= self.unit then
|
if unit ~= self.unit then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self.wantToShow = true
|
||||||
self:Show(true)
|
self:Show(true)
|
||||||
self:Update(self.unit)
|
self:Update(self.unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:PowerBarHide(event, unit)
|
function PlayerAlternatePower.prototype:PowerBarHide(event, unit)
|
||||||
if unit ~= self.unit then
|
if unit ~= self.unit then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self.wantToShow = false
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
self:Update(self.unit)
|
self:Update(self.unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:UpdateEvent(event, unit)
|
function PlayerAlternatePower.prototype:UpdateEvent(event, unit)
|
||||||
self:Update(unit)
|
self:Update(unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:Update(unit)
|
function PlayerAlternatePower.prototype:Update(unit)
|
||||||
IceHUDPlayerAlternatePower.super.prototype.Update(self)
|
PlayerAlternatePower.super.prototype.Update(self)
|
||||||
if (unit and (unit ~= self.unit)) then
|
if (unit and (unit ~= self.unit)) then
|
||||||
return
|
return
|
||||||
end
|
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.maxPower = UnitPowerMax(self.unit, self.powerIndex)
|
||||||
self.power = UnitPower(self.unit, self.powerIndex)
|
self.power = UnitPower(self.unit, self.powerIndex)
|
||||||
if self.maxPower > 0 then
|
if self.maxPower > 0 then
|
||||||
@ -92,8 +102,8 @@ function IceHUDPlayerAlternatePower.prototype:Update(unit)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:GetOptions()
|
function PlayerAlternatePower.prototype:GetOptions()
|
||||||
local opts = IceHUDPlayerAlternatePower.super.prototype.GetOptions(self)
|
local opts = PlayerAlternatePower.super.prototype.GetOptions(self)
|
||||||
|
|
||||||
opts["lowThresholdColor"] = nil
|
opts["lowThresholdColor"] = nil
|
||||||
|
|
||||||
@ -121,11 +131,11 @@ function IceHUDPlayerAlternatePower.prototype:GetOptions()
|
|||||||
return opts
|
return opts
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:ShowBlizz()
|
function PlayerAlternatePower.prototype:ShowBlizz()
|
||||||
PlayerPowerBarAlt:GetScript("OnLoad")(PlayerPowerBarAlt)
|
PlayerPowerBarAlt:GetScript("OnLoad")(PlayerPowerBarAlt)
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUDPlayerAlternatePower.prototype:HideBlizz()
|
function PlayerAlternatePower.prototype:HideBlizz()
|
||||||
PlayerPowerBarAlt:Hide()
|
PlayerPowerBarAlt:Hide()
|
||||||
|
|
||||||
PlayerPowerBarAlt:UnregisterAllEvents()
|
PlayerPowerBarAlt:UnregisterAllEvents()
|
||||||
@ -133,5 +143,5 @@ end
|
|||||||
|
|
||||||
-- Load us up
|
-- Load us up
|
||||||
if ALTERNATE_POWER_INDEX then
|
if ALTERNATE_POWER_INDEX then
|
||||||
IceHUD.PlayerAlternatePower = IceHUDPlayerAlternatePower:new()
|
IceHUD.PlayerAlternatePower = PlayerAlternatePower:new()
|
||||||
end
|
end
|
||||||
|
@ -1276,6 +1276,8 @@ function PlayerHealth.prototype:Update(unit)
|
|||||||
|
|
||||||
if (self.moduleSettings.scaleHealthColor) then
|
if (self.moduleSettings.scaleHealthColor) then
|
||||||
color = "ScaledHealthColor"
|
color = "ScaledHealthColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
color = "ScaledHealthColor"
|
||||||
end
|
end
|
||||||
|
|
||||||
if not (self.alive) then
|
if not (self.alive) then
|
||||||
|
@ -115,16 +115,30 @@ end
|
|||||||
|
|
||||||
function PlayerInfo.prototype:ShowBlizz()
|
function PlayerInfo.prototype:ShowBlizz()
|
||||||
BuffFrame:Show()
|
BuffFrame:Show()
|
||||||
|
if DebuffFrame then
|
||||||
|
DebuffFrame:Show()
|
||||||
|
DebuffFrame:GetScript("OnLoad")(DebuffFrame)
|
||||||
|
if DebuffFrame.Update then
|
||||||
|
DebuffFrame:Update()
|
||||||
|
end
|
||||||
|
end
|
||||||
if TemporaryEnchantFrame then
|
if TemporaryEnchantFrame then
|
||||||
TemporaryEnchantFrame:Show()
|
TemporaryEnchantFrame:Show()
|
||||||
end
|
end
|
||||||
|
|
||||||
BuffFrame:GetScript("OnLoad")(BuffFrame)
|
BuffFrame:GetScript("OnLoad")(BuffFrame)
|
||||||
|
if BuffFrame.Update then
|
||||||
|
BuffFrame:Update()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function PlayerInfo.prototype:HideBlizz()
|
function PlayerInfo.prototype:HideBlizz()
|
||||||
BuffFrame:Hide()
|
BuffFrame:Hide()
|
||||||
|
if DebuffFrame then
|
||||||
|
DebuffFrame:Hide()
|
||||||
|
DebuffFrame:UnregisterAllEvents()
|
||||||
|
end
|
||||||
if TemporaryEnchantFrame then
|
if TemporaryEnchantFrame then
|
||||||
TemporaryEnchantFrame:Hide()
|
TemporaryEnchantFrame:Hide()
|
||||||
end
|
end
|
||||||
|
@ -344,6 +344,8 @@ function PlayerMana.prototype:Update(unit, powertype)
|
|||||||
color = "Dead"
|
color = "Dead"
|
||||||
elseif (self.moduleSettings.scaleManaColor and (UnitPowerType(self.unit) == SPELL_POWER_MANA or self.moduleSettings.scaleManaColorForAll)) then
|
elseif (self.moduleSettings.scaleManaColor and (UnitPowerType(self.unit) == SPELL_POWER_MANA or self.moduleSettings.scaleManaColorForAll)) then
|
||||||
color = "ScaledManaColor"
|
color = "ScaledManaColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
color = "ScaledManaColor"
|
||||||
else
|
else
|
||||||
if (self.manaType == SPELL_POWER_RAGE) then
|
if (self.manaType == SPELL_POWER_RAGE) then
|
||||||
color = "PlayerRage"
|
color = "PlayerRage"
|
||||||
@ -473,7 +475,7 @@ function PlayerMana.prototype:CreateTickerFrame()
|
|||||||
self.tickerFrame = CreateFrame("Frame", nil, self.barFrame)
|
self.tickerFrame = CreateFrame("Frame", nil, self.barFrame)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.tickerFrame:SetFrameStrata("BACKGROUND")
|
self.tickerFrame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.tickerFrame:SetWidth(self.settings.barWidth)
|
self.tickerFrame:SetWidth(self.settings.barWidth)
|
||||||
self.tickerFrame:SetHeight(self.settings.barHeight)
|
self.tickerFrame:SetHeight(self.settings.barHeight)
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ function RangeCheck.prototype:init()
|
|||||||
|
|
||||||
self.scalingEnabled = true
|
self.scalingEnabled = true
|
||||||
|
|
||||||
LibRange = LibStub("LibRangeCheck-2.0", true)
|
LibRange = LibStub("LibRangeCheck-3.0", true)
|
||||||
end
|
end
|
||||||
|
|
||||||
function RangeCheck.prototype:Enable(core)
|
function RangeCheck.prototype:Enable(core)
|
||||||
@ -126,7 +126,7 @@ function RangeCheck.prototype:CreateFrame(redraw)
|
|||||||
end
|
end
|
||||||
|
|
||||||
self.frame:SetScale(self.moduleSettings.scale)
|
self.frame:SetScale(self.moduleSettings.scale)
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame:SetWidth(200)
|
self.frame:SetWidth(200)
|
||||||
self.frame:SetHeight(32)
|
self.frame:SetHeight(32)
|
||||||
self.frame:ClearAllPoints()
|
self.frame:ClearAllPoints()
|
||||||
|
@ -456,7 +456,7 @@ end
|
|||||||
function Runes.prototype:CreateFrame()
|
function Runes.prototype:CreateFrame()
|
||||||
Runes.super.prototype.CreateFrame(self)
|
Runes.super.prototype.CreateFrame(self)
|
||||||
|
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame:SetWidth(self.runeSize*self.numRunes)
|
self.frame:SetWidth(self.runeSize*self.numRunes)
|
||||||
self.frame:SetHeight(1)
|
self.frame:SetHeight(1)
|
||||||
self.frame:ClearAllPoints()
|
self.frame:ClearAllPoints()
|
||||||
@ -516,7 +516,7 @@ function Runes.prototype:CreateRune(i, type, name)
|
|||||||
self.frame.graphical[i].shine = self.frame.graphical[i]:CreateTexture(nil, "OVERLAY")
|
self.frame.graphical[i].shine = self.frame.graphical[i]:CreateTexture(nil, "OVERLAY")
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphical[i]:SetFrameStrata("BACKGROUND")
|
self.frame.graphical[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame.graphical[i]:SetWidth(self.runeSize)
|
self.frame.graphical[i]:SetWidth(self.runeSize)
|
||||||
self.frame.graphical[i]:SetHeight(self.runeSize)
|
self.frame.graphical[i]:SetHeight(self.runeSize)
|
||||||
|
|
||||||
@ -546,7 +546,7 @@ function Runes.prototype:CreateRune(i, type, name)
|
|||||||
self.frame.graphical[i]:Hide()
|
self.frame.graphical[i]:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphical[i].cd:SetFrameStrata("BACKGROUND")
|
self.frame.graphical[i].cd:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame.graphical[i].cd:SetFrameLevel(self.frame.graphical[i]:GetFrameLevel()+1)
|
self.frame.graphical[i].cd:SetFrameLevel(self.frame.graphical[i]:GetFrameLevel()+1)
|
||||||
self.frame.graphical[i].cd:ClearAllPoints()
|
self.frame.graphical[i].cd:ClearAllPoints()
|
||||||
self.frame.graphical[i].cd:SetAllPoints(self.frame.graphical[i])
|
self.frame.graphical[i].cd:SetAllPoints(self.frame.graphical[i])
|
||||||
|
@ -131,7 +131,7 @@ function ShardCounter.prototype:UpdatePowerType(event)
|
|||||||
|
|
||||||
self.shouldShowUnmodified = false
|
self.shouldShowUnmodified = false
|
||||||
self.requiredSpec = CurrentSpec
|
self.requiredSpec = CurrentSpec
|
||||||
self.currentGrowMode = nil
|
self.currentGrowMode = self.growModes["height"]
|
||||||
|
|
||||||
if CurrentSpec == SPEC_WARLOCK_AFFLICTION then
|
if CurrentSpec == SPEC_WARLOCK_AFFLICTION then
|
||||||
self.runeCoords = AfflictionCoords
|
self.runeCoords = AfflictionCoords
|
||||||
|
@ -17,6 +17,12 @@ local staggerIds = {LightID, ModerateID, HeavyID}
|
|||||||
|
|
||||||
local MinLevel = 10
|
local MinLevel = 10
|
||||||
|
|
||||||
|
local STAGGER_YELLOW_TRANSITION, STAGGER_RED_TRANSITION = STAGGER_YELLOW_TRANSITION, STAGGER_RED_TRANSITION
|
||||||
|
if STAGGER_STATES then
|
||||||
|
STAGGER_YELLOW_TRANSITION = STAGGER_STATES.YELLOW.threshold
|
||||||
|
STAGGER_RED_TRANSITION = STAGGER_STATES.RED.threshold
|
||||||
|
end
|
||||||
|
|
||||||
StaggerBar.prototype.StaggerDuration = 0
|
StaggerBar.prototype.StaggerDuration = 0
|
||||||
StaggerBar.prototype.StaggerEndTime = 0
|
StaggerBar.prototype.StaggerEndTime = 0
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
IceTargetAbsorb = IceCore_CreateClass(IceUnitBar)
|
IceTargetAbsorb = IceCore_CreateClass(IceUnitBar)
|
||||||
|
|
||||||
IceTargetAbsorb.prototype.highestAbsorbSinceLastZero = 0
|
IceTargetAbsorb.prototype.highestAbsorbSinceLastZero = 0
|
||||||
@ -29,6 +30,28 @@ function IceTargetAbsorb.prototype:GetDefaultSettings()
|
|||||||
return settings
|
return settings
|
||||||
end
|
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)
|
function IceTargetAbsorb.prototype:Enable(core)
|
||||||
IceTargetAbsorb.super.prototype.Enable(self, core)
|
IceTargetAbsorb.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
@ -47,6 +70,7 @@ function IceTargetAbsorb.prototype:MyUnregisterCustomEvents()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function IceTargetAbsorb.prototype:Update()
|
function IceTargetAbsorb.prototype:Update()
|
||||||
|
IceTargetAbsorb.super.prototype.Update(self)
|
||||||
self:UpdateAbsorbAmount()
|
self:UpdateAbsorbAmount()
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -63,13 +87,17 @@ function IceTargetAbsorb.prototype:UpdateAbsorbAmount(event, unit)
|
|||||||
self.highestAbsorbSinceLastZero = absorbAmount
|
self.highestAbsorbSinceLastZero = absorbAmount
|
||||||
end
|
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)
|
self:Show(false)
|
||||||
else
|
else
|
||||||
self:Show(true)
|
self:Show(true)
|
||||||
self:UpdateBar(absorbAmount / self.highestAbsorbSinceLastZero, self.ColorName)
|
self:UpdateBar(self.absorbPercent, self.ColorName)
|
||||||
end
|
end
|
||||||
|
|
||||||
if not IceHUD.IceCore:ShouldUseDogTags() and self.frame:IsVisible() then
|
if not IceHUD.IceCore:ShouldUseDogTags() and self.frame:IsVisible() then
|
||||||
|
@ -72,10 +72,20 @@ local IncapacitateCCList = {
|
|||||||
19503,
|
19503,
|
||||||
-- Sleep
|
-- Sleep
|
||||||
700,
|
700,
|
||||||
-- Polymorph
|
-- Polymorph (rank 1)
|
||||||
118,
|
118,
|
||||||
|
-- Also Polymorph
|
||||||
|
65801,
|
||||||
|
-- Polymorph rank 2
|
||||||
|
12824,
|
||||||
|
-- Polymorph rank 3
|
||||||
|
12825,
|
||||||
|
-- Polymorph rank 4
|
||||||
|
12826,
|
||||||
-- Polymorph: Pig
|
-- Polymorph: Pig
|
||||||
28272,
|
28272,
|
||||||
|
-- Also Polymorph: Pig
|
||||||
|
28285,
|
||||||
-- Polymorph: Turtle
|
-- Polymorph: Turtle
|
||||||
28271,
|
28271,
|
||||||
-- Polymorph: Penguin
|
-- Polymorph: Penguin
|
||||||
@ -350,7 +360,7 @@ function TargetCC.prototype:GetMaxDebuffDuration(unitName, debuffNames)
|
|||||||
while debuff do
|
while debuff do
|
||||||
remaining = endTime - GetTime()
|
remaining = endTime - GetTime()
|
||||||
|
|
||||||
if debuffNames[spellId] and (not self.moduleSettings.onlyShowForMyDebuffs or isMine) then
|
if (debuffNames[spellId] or debuffNames[debuff]) and (not self.moduleSettings.onlyShowForMyDebuffs or isMine) then
|
||||||
if result[0] then
|
if result[0] then
|
||||||
if result[2] < remaining then
|
if result[2] < remaining then
|
||||||
result = {debuff, duration, remaining}
|
result = {debuff, duration, remaining}
|
||||||
|
@ -204,6 +204,6 @@ end
|
|||||||
|
|
||||||
-- Fulzamoth 2019-09-27 : load in Classic if LibClassicCasterino exists
|
-- Fulzamoth 2019-09-27 : load in Classic if LibClassicCasterino exists
|
||||||
-- Load us up
|
-- Load us up
|
||||||
if not IceHUD.WowClassic or LibClassicCasterino then
|
if IceHUD.CanShowTargetCasting then
|
||||||
IceHUD.TargetCast = TargetCast:new()
|
IceHUD.TargetCast = TargetCast:new()
|
||||||
end
|
end
|
||||||
|
@ -841,6 +841,8 @@ function IceTargetHealth.prototype:Update(unit)
|
|||||||
|
|
||||||
if (self.moduleSettings.scaleHealthColor) then
|
if (self.moduleSettings.scaleHealthColor) then
|
||||||
self.color = "ScaledHealthColor"
|
self.color = "ScaledHealthColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
self.color = "ScaledHealthColor"
|
||||||
end
|
end
|
||||||
|
|
||||||
if (self.tapped) then
|
if (self.tapped) then
|
||||||
@ -982,9 +984,9 @@ end
|
|||||||
|
|
||||||
function IceTargetHealth.prototype:UpdateRaidTargetIcon()
|
function IceTargetHealth.prototype:UpdateRaidTargetIcon()
|
||||||
if self.moduleSettings.raidIconOnTop then
|
if self.moduleSettings.raidIconOnTop then
|
||||||
self.frame.raidIcon:SetFrameStrata("MEDIUM")
|
self.frame.raidIcon:SetFrameStrata(IceHUD.IceCore:DetermineStrata("MEDIUM"))
|
||||||
else
|
else
|
||||||
self.frame.raidIcon:SetFrameStrata("LOW")
|
self.frame.raidIcon:SetFrameStrata(IceHUD.IceCore:DetermineStrata("LOW"))
|
||||||
end
|
end
|
||||||
|
|
||||||
if not self.moduleSettings.showRaidIcon or (not UnitExists(self.unit) and (not self.configMode and not IceHUD.IceCore:IsInConfigMode())) then
|
if not self.moduleSettings.showRaidIcon or (not UnitExists(self.unit) and (not self.configMode and not IceHUD.IceCore:IsInConfigMode())) then
|
||||||
|
@ -1136,7 +1136,7 @@ do -- OVERRIDE: IceTargetInfo.prototype:CreateFrame(redraw)
|
|||||||
|
|
||||||
self.frame:SetScale(self.moduleSettings.scale)
|
self.frame:SetScale(self.moduleSettings.scale)
|
||||||
|
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame:SetWidth(self.width)
|
self.frame:SetWidth(self.width)
|
||||||
self.frame:SetHeight(32)
|
self.frame:SetHeight(32)
|
||||||
self.frame:ClearAllPoints()
|
self.frame:ClearAllPoints()
|
||||||
@ -1220,7 +1220,7 @@ function IceTargetInfo.prototype:CreateAuraFrame(aura, redraw)
|
|||||||
|
|
||||||
if (not self.frame[auraFrame]) then
|
if (not self.frame[auraFrame]) then
|
||||||
self.frame[auraFrame] = CreateFrame("Frame", nil, self.frame)
|
self.frame[auraFrame] = CreateFrame("Frame", nil, self.frame)
|
||||||
self.frame[auraFrame]:SetFrameStrata("BACKGROUND")
|
self.frame[auraFrame]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame[auraFrame]:SetWidth(1)
|
self.frame[auraFrame]:SetWidth(1)
|
||||||
self.frame[auraFrame]:SetHeight(1)
|
self.frame[auraFrame]:SetHeight(1)
|
||||||
self.frame[auraFrame]:Show()
|
self.frame[auraFrame]:Show()
|
||||||
@ -1244,7 +1244,7 @@ end
|
|||||||
do
|
do
|
||||||
local function FrameFactory(frameType, parentFrame, inheritsFrame)
|
local function FrameFactory(frameType, parentFrame, inheritsFrame)
|
||||||
local frame = CreateFrame(frameType, nil, parentFrame, inheritsFrame)
|
local frame = CreateFrame(frameType, nil, parentFrame, inheritsFrame)
|
||||||
frame:SetFrameStrata("BACKGROUND")
|
frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
frame:ClearAllPoints()
|
frame:ClearAllPoints()
|
||||||
return frame
|
return frame
|
||||||
end
|
end
|
||||||
@ -1453,7 +1453,7 @@ function IceTargetInfo.prototype:UpdateBuffType(aura)
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
self.frame[auraFrame].iconFrames[i]:Hide()
|
self.frame[auraFrame].iconFrames[i]:Hide()
|
||||||
buffData[aura][i] = nil
|
table.remove(buffData[aura], i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -125,6 +125,8 @@ function IceTargetMana.prototype:Update(unit)
|
|||||||
|
|
||||||
if (self.moduleSettings.scaleManaColor) then
|
if (self.moduleSettings.scaleManaColor) then
|
||||||
self.color = "ScaledManaColor"
|
self.color = "ScaledManaColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
self.color = "ScaledManaColor"
|
||||||
end
|
end
|
||||||
|
|
||||||
if (manaType == SPELL_POWER_RAGE) then
|
if (manaType == SPELL_POWER_RAGE) then
|
||||||
|
@ -314,7 +314,7 @@ function TargetOfTarget.prototype:CreateFrame()
|
|||||||
self.frame:SetAttribute("unit", self.unit)
|
self.frame:SetAttribute("unit", self.unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
if self.moduleSettings.sizeToGap then
|
if self.moduleSettings.sizeToGap then
|
||||||
self.frame:SetWidth(self.settings.gap)
|
self.frame:SetWidth(self.settings.gap)
|
||||||
else
|
else
|
||||||
@ -368,7 +368,7 @@ function TargetOfTarget.prototype:CreateBarFrame()
|
|||||||
|
|
||||||
self.frame.bg:SetTexture(0,0,0)
|
self.frame.bg:SetTexture(0,0,0)
|
||||||
|
|
||||||
self.frame.bar:SetFrameStrata("BACKGROUND")
|
self.frame.bar:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
if self.moduleSettings.sizeToGap then
|
if self.moduleSettings.sizeToGap then
|
||||||
self.frame.bg:SetWidth(self.settings.gap + 2)
|
self.frame.bg:SetWidth(self.settings.gap + 2)
|
||||||
self.frame.bar:SetWidth(self.settings.gap)
|
self.frame.bar:SetWidth(self.settings.gap)
|
||||||
@ -435,7 +435,7 @@ function TargetOfTarget.prototype:CreateDebuffFrame()
|
|||||||
end
|
end
|
||||||
self.frame.debuffFrame = CreateFrame("Frame", nil, self.frame)
|
self.frame.debuffFrame = CreateFrame("Frame", nil, self.frame)
|
||||||
|
|
||||||
self.frame.debuffFrame:SetFrameStrata("BACKGROUND")
|
self.frame.debuffFrame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame.debuffFrame:SetWidth(10)
|
self.frame.debuffFrame:SetWidth(10)
|
||||||
self.frame.debuffFrame:SetHeight(self.height)
|
self.frame.debuffFrame:SetHeight(self.height)
|
||||||
|
|
||||||
@ -451,7 +451,7 @@ function TargetOfTarget.prototype:CreateIconFrames(parent)
|
|||||||
|
|
||||||
for i = 1, IceCore.BuffLimit do
|
for i = 1, IceCore.BuffLimit do
|
||||||
buffs[i] = CreateFrame("Frame", nil, parent)
|
buffs[i] = CreateFrame("Frame", nil, parent)
|
||||||
buffs[i]:SetFrameStrata("BACKGROUND")
|
buffs[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
buffs[i]:SetWidth(self.buffSize)
|
buffs[i]:SetWidth(self.buffSize)
|
||||||
buffs[i]:SetHeight(self.buffSize)
|
buffs[i]:SetHeight(self.buffSize)
|
||||||
buffs[i]:SetPoint("LEFT", (i-1) * self.buffSize + (i-1), 0)
|
buffs[i]:SetPoint("LEFT", (i-1) * self.buffSize + (i-1), 0)
|
||||||
|
@ -136,6 +136,8 @@ function TargetTargetHealth.prototype:Update(unit)
|
|||||||
|
|
||||||
if (self.moduleSettings.scaleHealthColor) then
|
if (self.moduleSettings.scaleHealthColor) then
|
||||||
self.color = "ScaledHealthColor"
|
self.color = "ScaledHealthColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.healthPercentage and self.healthPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
self.color = "ScaledHealthColor"
|
||||||
end
|
end
|
||||||
|
|
||||||
if (self.tapped) then
|
if (self.tapped) then
|
||||||
|
@ -83,6 +83,8 @@ function TargetTargetMana.prototype:Update(unit)
|
|||||||
|
|
||||||
if (self.moduleSettings.scaleManaColor) then
|
if (self.moduleSettings.scaleManaColor) then
|
||||||
self.color = "ScaledManaColor"
|
self.color = "ScaledManaColor"
|
||||||
|
elseif self.moduleSettings.lowThresholdColor and self.manaPercentage and self.manaPercentage <= self.moduleSettings.lowThreshold then
|
||||||
|
self.color = "ScaledManaColor"
|
||||||
end
|
end
|
||||||
|
|
||||||
if (manaType == 1) then
|
if (manaType == 1) then
|
||||||
|
@ -89,11 +89,11 @@ function Totems.prototype:GetOptions()
|
|||||||
end,
|
end,
|
||||||
order = 31
|
order = 31
|
||||||
}
|
}
|
||||||
--[[
|
|
||||||
opts["hideBlizz"] = {
|
opts["hideBlizz"] = {
|
||||||
type = "toggle",
|
type = "toggle",
|
||||||
name = L["Hide Blizzard Frame"],
|
name = L["Hide Blizzard Frame"],
|
||||||
desc = L["Hides Blizzard Rune frame and disables all events related to it"],
|
desc = L["Hides Blizzard frame and disables all events related to it.\n\nNOTE: Blizzard attaches this UI to the player's unitframe, so if you have that hidden in PlayerHealth, then this won't do anything."],
|
||||||
get = function()
|
get = function()
|
||||||
return self.moduleSettings.hideBlizz
|
return self.moduleSettings.hideBlizz
|
||||||
end,
|
end,
|
||||||
@ -110,7 +110,7 @@ function Totems.prototype:GetOptions()
|
|||||||
end,
|
end,
|
||||||
order = 32
|
order = 32
|
||||||
}
|
}
|
||||||
--]]
|
|
||||||
opts["displayMode"] = {
|
opts["displayMode"] = {
|
||||||
type = 'select',
|
type = 'select',
|
||||||
name = L["Totem orientation"],
|
name = L["Totem orientation"],
|
||||||
@ -193,7 +193,7 @@ function Totems.prototype:GetDefaultSettings()
|
|||||||
defaults["totemFontSize"] = 20
|
defaults["totemFontSize"] = 20
|
||||||
defaults["totemMode"] = "Graphical"
|
defaults["totemMode"] = "Graphical"
|
||||||
defaults["usesDogTagStrings"] = false
|
defaults["usesDogTagStrings"] = false
|
||||||
defaults["hideBlizz"] = true
|
defaults["hideBlizz"] = IceHUD.CanHookDestroyTotem
|
||||||
defaults["alwaysFullAlpha"] = false
|
defaults["alwaysFullAlpha"] = false
|
||||||
defaults["displayMode"] = "Horizontal"
|
defaults["displayMode"] = "Horizontal"
|
||||||
defaults["cooldownMode"] = "Cooldown"
|
defaults["cooldownMode"] = "Cooldown"
|
||||||
@ -265,7 +265,7 @@ end
|
|||||||
function Totems.prototype:CreateFrame()
|
function Totems.prototype:CreateFrame()
|
||||||
Totems.super.prototype.CreateFrame(self)
|
Totems.super.prototype.CreateFrame(self)
|
||||||
|
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame:SetWidth(self.totemSize*self.numTotems)
|
self.frame:SetWidth(self.totemSize*self.numTotems)
|
||||||
self.frame:SetHeight(1)
|
self.frame:SetHeight(1)
|
||||||
self.frame:ClearAllPoints()
|
self.frame:ClearAllPoints()
|
||||||
@ -349,7 +349,7 @@ function Totems.prototype:CreateTotem(i, name)
|
|||||||
self.frame.graphical[i].totem:SetAllPoints(self.frame.graphical[i])
|
self.frame.graphical[i].totem:SetAllPoints(self.frame.graphical[i])
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphical[i]:SetFrameStrata("BACKGROUND")
|
self.frame.graphical[i]:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame.graphical[i]:SetWidth(self.totemSize)
|
self.frame.graphical[i]:SetWidth(self.totemSize)
|
||||||
self.frame.graphical[i]:SetHeight(self.totemSize)
|
self.frame.graphical[i]:SetHeight(self.totemSize)
|
||||||
|
|
||||||
@ -380,7 +380,7 @@ function Totems.prototype:CreateTotem(i, name)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.frame.graphical[i].cd:SetFrameStrata("BACKGROUND")
|
self.frame.graphical[i].cd:SetFrameStrata(IceHUD.IceCore:DetermineStrata("BACKGROUND"))
|
||||||
self.frame.graphical[i].cd:SetFrameLevel(self.frame.graphical[i]:GetFrameLevel()+1)
|
self.frame.graphical[i].cd:SetFrameLevel(self.frame.graphical[i]:GetFrameLevel()+1)
|
||||||
self.frame.graphical[i].cd:ClearAllPoints()
|
self.frame.graphical[i].cd:ClearAllPoints()
|
||||||
self.frame.graphical[i].cd:SetAllPoints(self.frame.graphical[i])
|
self.frame.graphical[i].cd:SetAllPoints(self.frame.graphical[i])
|
||||||
|
158
this_version.md
158
this_version.md
@ -1,5 +1,163 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
v1.14.37:
|
||||||
|
|
||||||
|
- Update LibRangeCheck version to address taint issues (wowace ticket #353)
|
||||||
|
|
||||||
|
v1.14.36:
|
||||||
|
|
||||||
|
- Really fix IceHUD stomping on other uses of the PowerBarContainer such as the Digging bar for the Archive event.
|
||||||
|
|
||||||
|
v1.14.35:
|
||||||
|
|
||||||
|
- Fix IceHUD stomping on other uses of the PowerBarContainer such as the Digging bar for the Archive event.
|
||||||
|
|
||||||
|
v1.14.34:
|
||||||
|
|
||||||
|
- Fix Vigor showing up sometimes when it shouldn't.
|
||||||
|
|
||||||
|
v1.14.33:
|
||||||
|
|
||||||
|
- Update TOC for Dragonflight to 10.2.5
|
||||||
|
|
||||||
|
v1.14.32:
|
||||||
|
|
||||||
|
- Enable GlobalCoolDown module in Classic Era 1.15.0+
|
||||||
|
- Enable tracking target buffs/debuffs in Classic Era 1.15.0+
|
||||||
|
|
||||||
|
v1.14.31:
|
||||||
|
|
||||||
|
- Fix nil concatenation error (wowace ticket #351)
|
||||||
|
|
||||||
|
v1.14.30:
|
||||||
|
|
||||||
|
- Update Classic-era TOC for 1.15.0
|
||||||
|
- Enable TargetCastBar module on Classic-era 1.15+
|
||||||
|
|
||||||
|
v1.14.29:
|
||||||
|
|
||||||
|
- Fix Stagger bar error for 10.2.0 (wowace ticket #348)
|
||||||
|
|
||||||
|
v1.14.28:
|
||||||
|
|
||||||
|
- Update TOC for Dragonflight to 10.2.0
|
||||||
|
|
||||||
|
v1.14.27:
|
||||||
|
|
||||||
|
- Update TOC for Dragonflight to 10.1.7
|
||||||
|
|
||||||
|
v1.14.26:
|
||||||
|
|
||||||
|
- Update TOC for classic-era to 1.14.4
|
||||||
|
|
||||||
|
v1.14.25:
|
||||||
|
|
||||||
|
- Fixed lua error that would appear when targetting webwrapped players in heroic alpha/beta titan rune dungeons.
|
||||||
|
- Added ability to adjust strata globally.
|
||||||
|
|
||||||
|
v1.14.24:
|
||||||
|
|
||||||
|
- Fixed an error when targeting a player and right-clicking a module that should show a menu in 10.1.5.
|
||||||
|
|
||||||
|
v1.14.23:
|
||||||
|
|
||||||
|
- Update Dragonflight TOC for 10.1.5
|
||||||
|
|
||||||
|
v1.14.22:
|
||||||
|
|
||||||
|
- Fixed reported issue with a Lua error on Wrath Classic clients. https://www.wowace.com/projects/ice-hud/issues/344
|
||||||
|
- Fixed Vigor module not working when riding Grotto Netherwing Drake (and theoretically all future Dragonriding mount types).
|
||||||
|
- Updated TOC for Wrath-Classic.
|
||||||
|
|
||||||
|
v1.14.21:
|
||||||
|
|
||||||
|
- Increased maximum scale/zoom to 400%, by request.
|
||||||
|
- Fixed TargetCC/FocusCC modules on Wrath Classic.
|
||||||
|
- Fixed disabled Buff/Debuff Watchers showing a static gray bar when set to When Missing or Always display modes.
|
||||||
|
- Fixed Buff/Debuff Watchers showing an empty bar when set to Missing mode. If the background was disabled, this looked like just a floating spell icon.
|
||||||
|
- Fixed spell icons sometimes not showing up for custom bars until the tracked spell had been cast once.
|
||||||
|
|
||||||
|
v1.14.20:
|
||||||
|
|
||||||
|
- Added Winding Slitherdrake as recognized for the Dragonriding Vigor module
|
||||||
|
|
||||||
|
v1.14.19:
|
||||||
|
|
||||||
|
- Updated TOCs for 10.1.0
|
||||||
|
- Added addon icon for 10.1.0 clients
|
||||||
|
- Fixed Dragonriding Vigor charges not showing up in 10.1.0
|
||||||
|
- Fixed Vigor not always updating correctly when loading into the game or a new zone
|
||||||
|
|
||||||
|
v1.14.18:
|
||||||
|
|
||||||
|
- Fixed Runic Power showing on a scale of 0-1000+ instead of 0-100+ with DogTags off
|
||||||
|
- Added option (enabled by default) to hide mod during cataloging.
|
||||||
|
- Fixed "Hide Blizzard Buffs" option on PlayerInfo causing errors and "?" icons when toggling off.
|
||||||
|
- Also hide Debuff frame if it exists (Dragonflight+) when enabling "Hide Blizzard Buffs" in the PlayerInfo module.
|
||||||
|
|
||||||
|
v1.14.17:
|
||||||
|
|
||||||
|
- Updated TOCs for 10.0.7
|
||||||
|
|
||||||
|
v1.14.16:
|
||||||
|
|
||||||
|
- Exposed the option in the Totems module to hide the Blizzard Totems frame or not, and changed the default value to not hide when on a version of the game that doesn't support right-clicking to destroy totems (any version after Wrath). This enables using the default Totems frame to cancel totems early.
|
||||||
|
- Fixed a reported error when playing Darkmoon Faire games.
|
||||||
|
- Added a few more Polymorph ranks to TargetCC for Classic. I'm sure there are more missing.
|
||||||
|
|
||||||
|
v1.14.15:
|
||||||
|
|
||||||
|
- Updated TOCs for 10.0.5
|
||||||
|
|
||||||
|
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.
|
||||||
|
- 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.
|
||||||
|
- Add "@" after the number when the Combo Points module is in Numeric mode, "Show Charged points" is enabled, and the current combo point is charged.
|
||||||
|
- Fix Charged point support in the ComboPointsBar module.
|
||||||
|
|
||||||
|
v1.14.4:
|
||||||
|
|
||||||
|
- Update TOC for 10.0.2
|
||||||
|
|
||||||
v1.14.3:
|
v1.14.3:
|
||||||
|
|
||||||
- Add Spell ID support for aura tracking.
|
- Add Spell ID support for aura tracking.
|
||||||
|
Reference in New Issue
Block a user