mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
51 Commits
Author | SHA1 | Date | |
---|---|---|---|
666bd12126
|
|||
941c633a32
|
|||
af73b87626
|
|||
37b31ab3fd
|
|||
097c5802e0
|
|||
30281ddb76
|
|||
5701b72300
|
|||
0aad165944
|
|||
b3757f4892
|
|||
a4d7b3302f
|
|||
c9e93e8219
|
|||
0dddbd9b1a | |||
8105567792 | |||
5cf4ec7457 | |||
6d2a6392eb | |||
89f60cb34f | |||
3ce982bb71 | |||
fcf156e048 | |||
aa559113eb | |||
5fe8776249 | |||
08e8d3a087 | |||
2eae8fa419 | |||
94850e53dd | |||
a739b7ba99 | |||
176603ec51 | |||
0cdfde1758 | |||
2f7b081790 | |||
b7883036fd | |||
dd3371c22c | |||
7e65e506c5 | |||
ce1558a18e | |||
49f8a6c6b2 | |||
d9bd5e3f36 | |||
151e54746f | |||
d7505b73b1 | |||
f10a647590 | |||
54bd441f16 | |||
4a7212fc00 | |||
e6f87b52bb | |||
d38c32cf34 | |||
a3bd338ff6 | |||
55a376b959 | |||
5b201ffee1 | |||
103e8b4eee | |||
bda8da8b9a | |||
60a3293095 | |||
e26ccdfba1 | |||
ed0dee1e08 | |||
152a3898a7 | |||
2c5ea0c96b | |||
858436e052 |
5
.pkgmeta
5
.pkgmeta
@ -61,3 +61,8 @@ move-folders:
|
||||
|
||||
tools-used:
|
||||
- libdatabroker-1-1
|
||||
|
||||
ignore:
|
||||
- readme.md
|
||||
|
||||
manual-changelog: changelog.txt
|
||||
|
@ -171,6 +171,7 @@ function IceBarElement.prototype:GetDefaultSettings()
|
||||
settings["rotateBar"] = false
|
||||
settings["markers"] = {}
|
||||
settings["bAllowExpand"] = true
|
||||
settings["textVerticalGap"] = 0
|
||||
|
||||
return settings
|
||||
end
|
||||
@ -724,6 +725,26 @@ do
|
||||
order = 11.3,
|
||||
},
|
||||
|
||||
textVerticalGap = {
|
||||
type = 'range',
|
||||
name = L["Text Vertical Gap"],
|
||||
desc = L["Gap between Upper and Lower text vertically"],
|
||||
min = 0,
|
||||
max = 10,
|
||||
step = 1,
|
||||
get = function()
|
||||
return self.moduleSettings.textVerticalGap
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.textVerticalGap = v
|
||||
self:Redraw()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
order = 11.4,
|
||||
},
|
||||
|
||||
textHeader = {
|
||||
type = 'header',
|
||||
name = L["Upper Text"],
|
||||
@ -1116,8 +1137,13 @@ function IceBarElement.prototype:CreateTexts()
|
||||
offy = self.moduleSettings.textVerticalOffset
|
||||
end
|
||||
|
||||
local offgap = 0
|
||||
if self.moduleSettings.textVerticalGap ~= nil then
|
||||
offgap = self.moduleSettings.textVerticalGap
|
||||
end
|
||||
|
||||
self.frame.bottomUpperText:SetPoint("TOP"..ownPoint , self.frame, "BOTTOM"..parentPoint, offx, offy)
|
||||
self.frame.bottomLowerText:SetPoint("TOP"..ownPoint , self.frame, "BOTTOM"..parentPoint, offx, offy - 14)
|
||||
self.frame.bottomLowerText:SetPoint("TOP"..ownPoint , self.frame, "BOTTOM"..parentPoint, offx, offy - (14 + offgap))
|
||||
|
||||
if (self.moduleSettings.textVisible["upper"]) then
|
||||
self.frame.bottomUpperText:Show()
|
||||
@ -1433,6 +1459,16 @@ function IceBarElement.prototype:SetScaledColor(colorVar, percent, maxColor, min
|
||||
colorVar.b = ((maxColor.b - minColor.b) * percent) + minColor.b
|
||||
end
|
||||
|
||||
function IceBarElement.prototype:Round(num)
|
||||
if (num > 1000000) then
|
||||
return IceHUD:MathRound(num/1000000, 1) .. "M"
|
||||
end
|
||||
if (num > 1000) then
|
||||
return IceHUD:MathRound(num/1000, 1) .. "k"
|
||||
end
|
||||
return num
|
||||
end
|
||||
|
||||
-- To be overridden
|
||||
function IceBarElement.prototype:Update()
|
||||
end
|
||||
|
@ -12,6 +12,11 @@ IceCastBar.prototype.actionMessage = nil
|
||||
IceCastBar.prototype.unit = nil
|
||||
IceCastBar.prototype.current = nil
|
||||
|
||||
local SPELL_POWER_MANA = SPELL_POWER_MANA
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_MANA = Enum.PowerType.Mana
|
||||
end
|
||||
|
||||
local AuraIconWidth = 20
|
||||
local AuraIconHeight = 20
|
||||
|
||||
@ -86,7 +91,7 @@ function IceCastBar.prototype:GetOptions()
|
||||
end,
|
||||
order = 39.998
|
||||
}
|
||||
|
||||
if IceHUD.WowVer < 80000 then
|
||||
opts["showSpellRank"] =
|
||||
{
|
||||
type = 'toggle',
|
||||
@ -103,7 +108,7 @@ function IceCastBar.prototype:GetOptions()
|
||||
end,
|
||||
order = 39.999
|
||||
}
|
||||
|
||||
end
|
||||
opts["iconSettings"] = {
|
||||
type = 'group',
|
||||
name = "|c"..self.configColor..L["Icon Settings"].."|r",
|
||||
@ -346,9 +351,18 @@ end
|
||||
|
||||
|
||||
function IceCastBar.prototype:StartBar(action, message)
|
||||
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit)
|
||||
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill
|
||||
if IceHUD.WowVer < 80000 then
|
||||
spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit)
|
||||
else
|
||||
spell, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit)
|
||||
end
|
||||
if not (spell) then
|
||||
if IceHUD.WowVer < 80000 then
|
||||
spell, rank, displayName, icon, startTime, endTime = UnitChannelInfo(self.unit)
|
||||
else
|
||||
spell, displayName, icon, startTime, endTime = UnitChannelInfo(self.unit)
|
||||
end
|
||||
end
|
||||
|
||||
if not spell then
|
||||
@ -496,7 +510,7 @@ function IceCastBar.prototype:SpellCastDelayed(event, unit, delay)
|
||||
if (unit ~= self.unit) then return end
|
||||
--IceHUD:Debug("SpellCastDelayed", unit, UnitCastingInfo(unit))
|
||||
|
||||
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit)
|
||||
local endTime = select(IceHUD.WowVer < 80000 and 6 or 5, UnitCastingInfo(self.unit))
|
||||
|
||||
if (endTime and self.actionStartTime) then
|
||||
-- apparently this check is needed, got nils during a horrible lag spike
|
||||
@ -554,7 +568,12 @@ function IceCastBar.prototype:SpellCastChannelUpdate(event, unit)
|
||||
if (unit ~= self.unit or not self.actionStartTime) then return end
|
||||
--IceHUD:Debug("SpellCastChannelUpdate", unit, UnitChannelInfo(unit))
|
||||
|
||||
local spell, rank, displayName, icon, startTime, endTime = UnitChannelInfo(unit)
|
||||
local spell, rank, displayName, icon, startTime, endTime
|
||||
if IceHUD.WowVer < 80000 then
|
||||
spell, rank, displayName, icon, startTime, endTime = UnitChannelInfo(unit)
|
||||
else
|
||||
spell, displayName, icon, startTime, endTime = UnitChannelInfo(unit)
|
||||
end
|
||||
if not spell then
|
||||
self.actionDuration = 0
|
||||
else
|
||||
|
28
IceHUD.lua
28
IceHUD.lua
@ -18,6 +18,8 @@ IceHUD.debugging = false
|
||||
|
||||
IceHUD.WowVer = select(4, GetBuildInfo())
|
||||
|
||||
IceHUD.UnitPowerEvent = IceHUD.WowVer < 80000 and "UNIT_POWER" or "UNIT_POWER_UPDATE"
|
||||
|
||||
IceHUD.validBarList = { "Bar", "HiBar", "RoundBar", "ColorBar", "RivetBar", "RivetBar2", "CleanCurves", "GlowArc",
|
||||
"BloodGlaives", "ArcHUD", "FangRune", "DHUD", "CleanCurvesOut", "CleanTank", "PillTank", "GemTank" }
|
||||
IceHUD.validCustomModules = {Bar="Buff/Debuff watcher", Counter="Buff/Debuff stack counter", CD="Cooldown bar", Health="Health bar", Mana="Mana bar", CounterBar="Stack count bar"}
|
||||
@ -409,7 +411,12 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine, matchByName)
|
||||
end
|
||||
|
||||
local i = 1
|
||||
local name, _, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
|
||||
local name, _, texture, applications
|
||||
if IceHUD.WowVer < 80000 then
|
||||
name, _, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
|
||||
else
|
||||
name, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
|
||||
end
|
||||
while name do
|
||||
if (not matchByName and string.match(texture:upper(), ability:upper()))
|
||||
or (matchByName and string.match(name:upper(), ability:upper())) then
|
||||
@ -417,7 +424,11 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine, matchByName)
|
||||
end
|
||||
|
||||
i = i + 1
|
||||
if IceHUD.WowVer < 80000 then
|
||||
name, _, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
|
||||
else
|
||||
name, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
|
||||
end
|
||||
end
|
||||
|
||||
return 0
|
||||
@ -432,7 +443,12 @@ do
|
||||
end
|
||||
|
||||
local i = 1
|
||||
local name, _, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
|
||||
local name, _, texture, applications, _, _, _, _, _, _, auraID
|
||||
if IceHUD.WowVer < 80000 then
|
||||
name, _, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
|
||||
else
|
||||
name, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
|
||||
end
|
||||
while name do
|
||||
for i=1, #spellIDs do
|
||||
if spellIDs[i] == auraID then
|
||||
@ -442,7 +458,11 @@ do
|
||||
end
|
||||
|
||||
i = i + 1
|
||||
if IceHUD.WowVer < 80000 then
|
||||
name, _, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
|
||||
else
|
||||
name, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
|
||||
end
|
||||
end
|
||||
|
||||
return retval
|
||||
@ -724,7 +744,9 @@ local function figure_unit_menu(unit)
|
||||
end
|
||||
|
||||
IceHUD_UnitFrame_DropDown = CreateFrame("Frame", "IceHUD_UnitFrame_DropDown", UIParent, "UIDropDownMenuTemplate")
|
||||
UnitPopupFrames[#UnitPopupFrames+1] = "IceHUD_UnitFrame_DropDown"
|
||||
if UnitPopupFrames then
|
||||
UnitPopupFrames[#UnitPopupFrames+1] = "IceHUD_UnitFrame_DropDown"
|
||||
end
|
||||
|
||||
IceHUD.DropdownUnit = nil
|
||||
UIDropDownMenu_Initialize(IceHUD_UnitFrame_DropDown, function()
|
||||
|
@ -1,4 +1,4 @@
|
||||
## Interface: 70000
|
||||
## Interface: 80000
|
||||
## Author: Parnic, originally created by Iceroth
|
||||
## Name: IceHUD
|
||||
## Title: IceHUD |cff7fff7f-Ace3-|r
|
||||
@ -6,9 +6,9 @@
|
||||
## Version: @project-version@
|
||||
## 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
|
||||
## X-Compatible-With: 60200
|
||||
## X-Compatible-With: 70300
|
||||
## X-Category: HUDs
|
||||
## X-Website: http://www.wowace.com/addons/ice-hud/
|
||||
## X-Website: https://www.wowace.com/projects/ice-hud
|
||||
## X-WoWI-ID: 8149
|
||||
|
||||
#@no-lib-strip@
|
||||
|
@ -1,4 +1,4 @@
|
||||
## Interface: 70000
|
||||
## Interface: 80000
|
||||
## Title: IceHUD |cff7fff7f-Options-|r
|
||||
## Author: Parnic
|
||||
## Version: @project-version@
|
||||
|
@ -152,8 +152,8 @@ Blizzard added a "Personal Resource Display" feature in the 7.0 game client. You
|
||||
set = function(info, v)
|
||||
IceHUD.IceCore:SetScale(v)
|
||||
end,
|
||||
min = 0.5,
|
||||
max = 1.5,
|
||||
min = 0.2,
|
||||
max = 2.0,
|
||||
step = 0.05,
|
||||
isPercent = true,
|
||||
order = 14,
|
||||
|
@ -112,7 +112,7 @@ function IceStackCounter_GetMaxCount(frame)
|
||||
local _, max = GetSpellCharges(frame.moduleSettings.auraName)
|
||||
return max or 1
|
||||
else
|
||||
return frame.moduleSettings.maxCount
|
||||
return tonumber(frame.moduleSettings.maxCount)
|
||||
end
|
||||
end
|
||||
|
||||
@ -128,9 +128,10 @@ end
|
||||
function IceStackCounter_Enable(frame)
|
||||
frame:RegisterEvent("UNIT_AURA", "UpdateCustomCount")
|
||||
frame:RegisterEvent("UNIT_PET", "UpdateCustomCount")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
frame:RegisterEvent("PLAYER_PET_CHANGED", "UpdateCustomCount")
|
||||
end
|
||||
frame:RegisterEvent("PLAYER_FOCUS_CHANGED", "UpdateCustomCount")
|
||||
frame:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateCustomCount")
|
||||
frame:RegisterEvent("PLAYER_DEAD", "UpdateCustomCount")
|
||||
frame:RegisterEvent("SPELL_UPDATE_CHARGES", "UpdateCustomCount")
|
||||
|
||||
@ -171,5 +172,9 @@ function IceStackCounter_GetCount(frame)
|
||||
end
|
||||
|
||||
function IceStackCounter_UseTargetAlpha(frame)
|
||||
if frame.moduleSettings.auraType == "charges" then
|
||||
return IceStackCounter_GetCount(frame) ~= IceStackCounter_GetMaxCount(frame) or frame.target or frame.combat
|
||||
else
|
||||
return frame.lastPoints ~= nil and frame.lastPoints > 0
|
||||
end
|
||||
end
|
||||
|
@ -19,6 +19,11 @@ IceUnitBar.prototype.hasPet = nil
|
||||
|
||||
IceUnitBar.prototype.noFlash = nil
|
||||
|
||||
local SPELL_POWER_INSANITY = SPELL_POWER_INSANITY
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_INSANITY = Enum.PowerType.Insanity
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function IceUnitBar.prototype:init(name, unit)
|
||||
IceUnitBar.super.prototype.init(self, name)
|
||||
@ -227,6 +232,10 @@ function IceUnitBar.prototype:Update()
|
||||
|
||||
self.mana = UnitPower(self.unit, UnitPowerType(self.unit))
|
||||
self.maxMana = UnitPowerMax(self.unit, UnitPowerType(self.unit))
|
||||
if IceHUD.WowVer >= 70300 and UnitPowerType(self.unit) == SPELL_POWER_INSANITY then
|
||||
self.mana = IceHUD:MathRound(self.mana / 100)
|
||||
self.maxMana = IceHUD:MathRound(self.maxMana / 100)
|
||||
end
|
||||
self.manaPercentage = self.maxMana ~= 0 and (self.mana/self.maxMana) or 0
|
||||
|
||||
local locClass
|
||||
|
1169
changelog.txt
Normal file
1169
changelog.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,11 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
local ArcaneCharges = IceCore_CreateClass(IceClassPowerCounter)
|
||||
|
||||
local SPELL_POWER_ARCANE_CHARGES = SPELL_POWER_ARCANE_CHARGES
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_ARCANE_CHARGES = Enum.PowerType.ArcaneCharges
|
||||
end
|
||||
|
||||
function ArcaneCharges.prototype:init()
|
||||
ArcaneCharges.super.prototype.init(self, "ArcaneCharges")
|
||||
|
||||
|
@ -358,7 +358,10 @@ end
|
||||
|
||||
function CastBar.prototype:CVarUpdate(...)
|
||||
self.useFixedLatency = self.moduleSettings.respectLagTolerance and GetCVar("reducedLagTolerance") == "1"
|
||||
self.fixedLatency = tonumber(GetCVar("maxSpellStartRecoveryoffset")) / 1000
|
||||
local recoveryOffset = GetCVar("maxSpellStartRecoveryoffset")
|
||||
if recoveryOffset ~= nil then
|
||||
self.fixedLatency = tonumber(recoveryOffset) / 1000
|
||||
end
|
||||
end
|
||||
|
||||
function CastBar.prototype:Disable(core)
|
||||
|
@ -18,7 +18,7 @@ IceClassPowerCounter.prototype.requiredSpec = nil
|
||||
IceClassPowerCounter.prototype.shouldShowUnmodified = false
|
||||
IceClassPowerCounter.prototype.unmodifiedMaxPerRune = 10
|
||||
IceClassPowerCounter.prototype.unit = "player"
|
||||
|
||||
IceClassPowerCounter.prototype.round = ceil
|
||||
IceClassPowerCounter.prototype.growModes = { width = 1, height = 2 }
|
||||
IceClassPowerCounter.prototype.currentGrowMode = nil
|
||||
|
||||
@ -465,7 +465,7 @@ end
|
||||
function IceClassPowerCounter.prototype:DisplayCounter()
|
||||
self:UnregisterEvent("PLAYER_LEVEL_UP")
|
||||
|
||||
self:RegisterEvent("UNIT_POWER", "UpdateRunePower")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateRunePower")
|
||||
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateRunePower")
|
||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "UpdateRunePower")
|
||||
|
||||
@ -485,7 +485,7 @@ function IceClassPowerCounter.prototype:Disable(core)
|
||||
end
|
||||
|
||||
function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
if event and (event == "UNIT_POWER" or event == "UNIT_POWER_FREQUENT") and arg1 ~= "player" and arg1 ~= "vehicle" then
|
||||
if event and (event == IceHUD.UnitPowerEvent or event == "UNIT_POWER_FREQUENT") and arg1 ~= "player" and arg1 ~= "vehicle" then
|
||||
return
|
||||
end
|
||||
|
||||
@ -501,13 +501,17 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
local percentReady = self.shouldShowUnmodified and (UnitPower("player", self.unitPower, true) / self.unmodifiedMaxPerRune) or numReady
|
||||
|
||||
if self:GetRuneMode() == "Numeric" or self.moduleSettings.alsoShowNumeric then
|
||||
if self.numericFormat then
|
||||
self.frame.numeric:SetText(format(self.numericFormat, percentReady))
|
||||
else
|
||||
self.frame.numeric:SetText(tostring(percentReady))
|
||||
end
|
||||
self.frame.numeric:SetTextColor(self:GetColor(self.numericColor))
|
||||
end
|
||||
|
||||
if self:GetRuneMode() ~= "Numeric" then
|
||||
for i=1, self.numRunes do
|
||||
if i <= ceil(percentReady) then
|
||||
if i <= self.round(percentReady) then
|
||||
if self:GetRuneMode() == "Graphical" then
|
||||
self.frame.graphical[i].rune:SetVertexColor(1, 1, 1)
|
||||
else
|
||||
|
@ -7,6 +7,11 @@ local AnticipationSpellId = 114015
|
||||
|
||||
ComboPoints.prototype.comboSize = 20
|
||||
|
||||
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function ComboPoints.prototype:init()
|
||||
ComboPoints.super.prototype.init(self, "ComboPoints")
|
||||
@ -252,9 +257,11 @@ function ComboPoints.prototype:Enable(core)
|
||||
if IceHUD.WowVer < 70000 then
|
||||
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
|
||||
else
|
||||
self:RegisterEvent("UNIT_POWER", "UpdateComboPoints")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateComboPoints")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateMaxComboPoints")
|
||||
end
|
||||
end
|
||||
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
|
||||
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
|
||||
if IceHUD.WowVer < 70000 then
|
||||
@ -436,7 +443,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
||||
end
|
||||
|
||||
function ComboPoints.prototype:UpdateComboPoints(...)
|
||||
if select('#', ...) >= 3 and select(1, ...) == "UNIT_POWER" and select(3, ...) ~= "COMBO_POINTS" then
|
||||
if select('#', ...) >= 3 and select(1, ...) == IceHUD.UnitPowerEvent and select(3, ...) ~= "COMBO_POINTS" then
|
||||
return
|
||||
end
|
||||
|
||||
@ -454,7 +461,11 @@ function ComboPoints.prototype:UpdateComboPoints(...)
|
||||
end
|
||||
|
||||
if IceHUD.WowVer < 70000 then
|
||||
if IceHUD.WowVer < 80000 then
|
||||
_, _, _, anticipate = UnitAura("player", GetSpellInfo(AnticipationSpellId))
|
||||
else
|
||||
_, _, anticipate = UnitAura("player", GetSpellInfo(AnticipationSpellId))
|
||||
end
|
||||
else
|
||||
anticipate = 0
|
||||
end
|
||||
@ -520,7 +531,12 @@ do
|
||||
|
||||
function ComboPoints.prototype:CheckAnticipation(e, unit) -- UNIT_AURA handler
|
||||
if UnitIsUnit(unit, "player") then
|
||||
local _, _, _, newAntStacks = UnitAura("player", GetSpellInfo(AnticipationSpellId))
|
||||
local _, _, _, newAntStacks
|
||||
if IceHUD.WowVer < 80000 then
|
||||
_, _, _, newAntStacks = UnitAura("player", GetSpellInfo(AnticipationSpellId))
|
||||
else
|
||||
_, _, newAntStacks = UnitAura("player", GetSpellInfo(AnticipationSpellId))
|
||||
end
|
||||
if newAntStacks ~= antStacks then
|
||||
antStacks = newAntStacks
|
||||
self:UpdateComboPoints()
|
||||
|
@ -1,6 +1,11 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
local ComboPointsBar = IceCore_CreateClass(IceBarElement)
|
||||
|
||||
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
|
||||
end
|
||||
|
||||
function ComboPointsBar.prototype:init()
|
||||
ComboPointsBar.super.prototype.init(self, "ComboPointsBar")
|
||||
|
||||
@ -69,7 +74,7 @@ function ComboPointsBar.prototype:Enable(core)
|
||||
if IceHUD.WowVer < 70000 then
|
||||
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
|
||||
else
|
||||
self:RegisterEvent("UNIT_POWER", "UpdateComboPoints")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateComboPoints")
|
||||
end
|
||||
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
|
||||
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
|
||||
@ -87,7 +92,7 @@ end
|
||||
local color = {}
|
||||
|
||||
function ComboPointsBar.prototype:UpdateComboPoints(...)
|
||||
if select('#', ...) >= 3 and select(1, ...) == "UNIT_POWER" and select(3, ...) ~= "COMBO_POINTS" then
|
||||
if select('#', ...) >= 3 and select(1, ...) == IceHUD.UnitPowerEvent and select(3, ...) ~= "COMBO_POINTS" then
|
||||
return
|
||||
end
|
||||
|
||||
|
@ -36,7 +36,9 @@ function IceCustomBar.prototype:Enable(core)
|
||||
|
||||
self:RegisterEvent("UNIT_AURA", "UpdateCustomBarEvent")
|
||||
self:RegisterEvent("UNIT_PET", "UpdateCustomBarEvent")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("PLAYER_PET_CHANGED", "UpdateCustomBarEvent")
|
||||
end
|
||||
self:RegisterEvent("PLAYER_FOCUS_CHANGED", "UpdateCustomBarEvent")
|
||||
if self.unitClass == "SHAMAN" then
|
||||
self:RegisterEvent("PLAYER_TOTEM_UPDATE", "UpdateTotems")
|
||||
@ -664,7 +666,12 @@ function IceCustomBar.prototype:GetAuraDuration(unitName, buffName)
|
||||
local remaining
|
||||
local isBuff = self.moduleSettings.buffOrDebuff == "buff" and true or false
|
||||
local buffFilter = (isBuff and "HELPFUL" or "HARMFUL") .. (self.moduleSettings.trackOnlyMine and "|PLAYER" or "")
|
||||
local buff, rank, texture, count, type, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, buffFilter)
|
||||
local buff, rank, texture, count, type, duration, endTime, unitCaster, _, _, spellId
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buff, rank, texture, count, type, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, buffFilter)
|
||||
else
|
||||
buff, texture, count, type, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, buffFilter)
|
||||
end
|
||||
local isMine = unitCaster == "player"
|
||||
local mySpellId = tonumber(self.moduleSettings.buffToTrack)
|
||||
local checkId = mySpellId ~= nil
|
||||
@ -690,7 +697,11 @@ function IceCustomBar.prototype:GetAuraDuration(unitName, buffName)
|
||||
|
||||
i = i + 1;
|
||||
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buff, rank, texture, count, type, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, buffFilter)
|
||||
else
|
||||
buff, texture, count, type, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, buffFilter)
|
||||
end
|
||||
isMine = unitCaster == "player"
|
||||
end
|
||||
|
||||
|
@ -21,11 +21,6 @@ IceCustomCDBar.prototype.cooldownDuration = 0
|
||||
IceCustomCDBar.prototype.cooldownEndTime = 0
|
||||
IceCustomCDBar.prototype.coolingDown = false
|
||||
|
||||
-- super temp...remove this when blizzard fixes these spells to work by name with GetSpellCooldown()
|
||||
local brokenSpellsNameToId = {}
|
||||
table.insert(brokenSpellsNameToId, {"Holy Word: Serenity",88684})
|
||||
table.insert(brokenSpellsNameToId, {"Holy Word: Sanctuary",88685})
|
||||
|
||||
-- Constructor --
|
||||
function IceCustomCDBar.prototype:init()
|
||||
IceCustomCDBar.super.prototype.init(self, "MyCustomCDBar")
|
||||
@ -821,14 +816,6 @@ function IceCustomCDBar.prototype:IsReady()
|
||||
end
|
||||
|
||||
function IceCustomCDBar.prototype:GetSpellNameOrId(spellName)
|
||||
-- super temp hax. certain spells (the new 'morphing' spells) do not work by name with GetSpellCooldown(), only id.
|
||||
for i=1,#brokenSpellsNameToId do
|
||||
if spellName == brokenSpellsNameToId[i][1] then
|
||||
spellName = brokenSpellsNameToId[i][2]
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
return spellName
|
||||
end
|
||||
|
||||
|
@ -245,6 +245,23 @@ function IceCustomCount.prototype:GetOptions()
|
||||
order = 34
|
||||
}
|
||||
|
||||
opts["showWhenZero"] = {
|
||||
type = 'toggle',
|
||||
name = L["Show when zero"],
|
||||
desc = L["Whether or not to show the counter when the value is zero. This will cause a 0 to be displayed at all times for Numeric mode and faded markers for graphical mode."],
|
||||
get = function()
|
||||
return self.moduleSettings.showWhenZero
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.showWhenZero = v
|
||||
self:Redraw()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
order = 35,
|
||||
}
|
||||
|
||||
return opts
|
||||
end
|
||||
|
||||
@ -296,6 +313,11 @@ function IceCustomCount.prototype:Enable(core)
|
||||
self:UpdateCustomCount()
|
||||
end
|
||||
|
||||
function IceCustomCount.prototype:TargetChanged()
|
||||
IceCustomCount.super.prototype.TargetChanged(self)
|
||||
self:UpdateCustomCount()
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- 'Protected' methods --------------------------------------------------------
|
||||
@ -324,7 +346,7 @@ end
|
||||
|
||||
function IceCustomCount.prototype:CreateCustomFrame(doTextureUpdate)
|
||||
-- create numeric counts
|
||||
self.frame.numeric = self:FontFactory(self.moduleSettings.countFontSize, nil, self.frame.numeric)
|
||||
self.frame.numeric = self:FontFactory(self.moduleSettings.countFontSize, self.frame, self.frame.numeric)
|
||||
|
||||
self.frame.numeric:SetWidth(50)
|
||||
self.frame.numeric:SetJustifyH("CENTER")
|
||||
@ -421,6 +443,9 @@ function IceCustomCount.prototype:GetGradientColor(curr)
|
||||
local r, g, b = self:GetCustomColor()
|
||||
local mr, mg, mb = self:GetCustomMinColor()
|
||||
local scale = max > 1 and ((curr-1)/(max-1)) or 1
|
||||
if self.moduleSettings.countMode == "Numeric" and self.moduleSettings.showWhenZero then
|
||||
scale = max > 1 and (curr/max) or 1
|
||||
end
|
||||
|
||||
r = r * scale + mr * (1-scale)
|
||||
g = g * scale + mg * (1-scale)
|
||||
@ -436,6 +461,15 @@ function IceCustomCount.prototype:UpdateCustomCount()
|
||||
end
|
||||
|
||||
local points = IceStackCounter_GetCount(self)
|
||||
if not points and self.moduleSettings.showWhenZero then
|
||||
points = 0
|
||||
end
|
||||
local max = IceStackCounter_GetMaxCount(self)
|
||||
|
||||
if max > #self.frame.graphical then
|
||||
self:Redraw()
|
||||
return
|
||||
end
|
||||
|
||||
if (self.moduleSettings.countMode == "Numeric") then
|
||||
local r, g, b = self:GetCustomColor()
|
||||
|
@ -250,6 +250,11 @@ function IceCustomCounterBar.prototype:Enable(core)
|
||||
IceStackCounter_Enable(self)
|
||||
end
|
||||
|
||||
function IceCustomCounterBar.prototype:TargetChanged()
|
||||
IceCustomCount.super.prototype.TargetChanged(self)
|
||||
self:UpdateCustomCount()
|
||||
end
|
||||
|
||||
function IceCustomCounterBar.prototype:Redraw()
|
||||
IceCustomCounterBar.super.prototype.Redraw(self)
|
||||
|
||||
@ -319,7 +324,7 @@ function IceCustomCounterBar.prototype:UpdateCustomCount()
|
||||
self.barFrame.icon:Show()
|
||||
end
|
||||
|
||||
if points == nil or points == 0 then
|
||||
if (points == nil or points == 0) and self.moduleSettings.auraType ~= "charges" then
|
||||
self:Show(false)
|
||||
self:UpdateBar(0, "undef")
|
||||
else
|
||||
@ -343,3 +348,7 @@ end
|
||||
function IceCustomCounterBar.prototype:Update()
|
||||
self:UpdateCustomCount()
|
||||
end
|
||||
|
||||
function IceCustomCounterBar.prototype:UseTargetAlpha(scale)
|
||||
return IceStackCounter_UseTargetAlpha(self)
|
||||
end
|
||||
|
@ -1,6 +1,14 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
local FocusMana = IceCore_CreateClass(IceUnitBar)
|
||||
|
||||
local SPELL_POWER_RAGE = SPELL_POWER_RAGE
|
||||
local SPELL_POWER_FOCUS = SPELL_POWER_FOCUS
|
||||
local SPELL_POWER_ENERGY = SPELL_POWER_ENERGY
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_RAGE = Enum.PowerType.Rage
|
||||
SPELL_POWER_FOCUS = Enum.PowerType.Focus
|
||||
SPELL_POWER_ENERGY = Enum.PowerType.Energy
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function FocusMana.prototype:init()
|
||||
@ -32,8 +40,10 @@ function FocusMana.prototype:Enable(core)
|
||||
FocusMana.super.prototype.Enable(self, core)
|
||||
|
||||
if IceHUD.WowVer >= 40000 then
|
||||
self:RegisterEvent("UNIT_POWER", "UpdateEvent")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateEvent")
|
||||
end
|
||||
else
|
||||
self:RegisterEvent("UNIT_MANA", "UpdateEvent")
|
||||
self:RegisterEvent("UNIT_MAXMANA", "UpdateEvent")
|
||||
|
@ -45,7 +45,10 @@ end
|
||||
|
||||
function GlobalCoolDown.prototype:CVarUpdate()
|
||||
self.useFixedLatency = self.moduleSettings.respectLagTolerance and GetCVar("reducedLagTolerance") == "1"
|
||||
self.fixedLatency = tonumber(GetCVar("maxSpellStartRecoveryoffset")) / 1000.0
|
||||
local recoveryOffset = GetCVar("maxSpellStartRecoveryoffset")
|
||||
if recoveryOffset ~= nil then
|
||||
self.fixedLatency = tonumber(recoveryOffset) / 1000.0
|
||||
end
|
||||
end
|
||||
|
||||
-- OVERRIDE
|
||||
@ -140,7 +143,11 @@ function GlobalCoolDown.prototype:IsFull(scale)
|
||||
return false
|
||||
end
|
||||
|
||||
function GlobalCoolDown.prototype:SpellCastSent(event, unit, spell)
|
||||
function GlobalCoolDown.prototype:SpellCastSent(event, unit, spell, bfaCastGUID, bfaSpellId)
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
spell = bfaSpellId
|
||||
end
|
||||
|
||||
if unit ~= "player" or not spell then
|
||||
return
|
||||
end
|
||||
@ -148,7 +155,11 @@ function GlobalCoolDown.prototype:SpellCastSent(event, unit, spell)
|
||||
self.spellCastSent = GetTime()
|
||||
end
|
||||
|
||||
function GlobalCoolDown.prototype:SpellCastStop(event, unit, spell, _, _, spellId)
|
||||
function GlobalCoolDown.prototype:SpellCastStop(event, unit, spell, one, two, spellId)
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
spellId = one
|
||||
end
|
||||
|
||||
if unit ~= "player" or not spellId or not self.CurrSpellId or self.CurrSpellId ~= spellId then
|
||||
return
|
||||
end
|
||||
@ -179,7 +190,11 @@ function GlobalCoolDown.prototype:GetSpellCastTime(spell)
|
||||
end
|
||||
end
|
||||
|
||||
function GlobalCoolDown.prototype:CooldownStateChanged(event, unit, spell, _, _, spellId)
|
||||
function GlobalCoolDown.prototype:CooldownStateChanged(event, unit, spell, one, two, spellId)
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
spellId = one
|
||||
end
|
||||
|
||||
if unit ~= "player" or not spellId then
|
||||
return
|
||||
end
|
||||
|
@ -1,6 +1,11 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
local HarmonyPower = IceCore_CreateClass(IceClassPowerCounter)
|
||||
|
||||
local SPELL_POWER_CHI = SPELL_POWER_CHI
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_CHI = Enum.PowerType.Chi
|
||||
end
|
||||
|
||||
function HarmonyPower.prototype:init()
|
||||
HarmonyPower.super.prototype.init(self, "HarmonyPower")
|
||||
|
||||
|
@ -1,6 +1,11 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
local HolyPower = IceCore_CreateClass(IceClassPowerCounter)
|
||||
|
||||
local SPELL_POWER_HOLY_POWER = SPELL_POWER_HOLY_POWER
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_HOLY_POWER = Enum.PowerType.HolyPower
|
||||
end
|
||||
|
||||
function HolyPower.prototype:init()
|
||||
HolyPower.super.prototype.init(self, "HolyPower")
|
||||
|
||||
|
@ -165,6 +165,8 @@ function MirrorBarHandler.prototype:init()
|
||||
self:SetDefaultColor("BREATH", 0, 0.5, 1)
|
||||
self:SetDefaultColor("DEATH", 1, 0.7, 0)
|
||||
self:SetDefaultColor("FEIGNDEATH", 1, 0.9, 0)
|
||||
|
||||
self.scalingEnabled = true
|
||||
end
|
||||
|
||||
|
||||
@ -540,6 +542,7 @@ function MirrorBarHandler.prototype:SetSettings(bar)
|
||||
bar.moduleSettings.barVerticalOffset = self.moduleSettings.barVerticalOffset
|
||||
bar.moduleSettings.alwaysFullAlpha = self.moduleSettings.alwaysFullAlpha
|
||||
bar.moduleSettings.rotateBar = self.moduleSettings.rotateBar
|
||||
bar.moduleSettings.scale = self.moduleSettings.scale
|
||||
end
|
||||
|
||||
|
||||
|
@ -42,8 +42,10 @@ function PetHealth.prototype:Enable(core)
|
||||
PetHealth.super.prototype.Enable(self, core)
|
||||
|
||||
self:RegisterEvent("PET_UI_UPDATE", "CheckPet");
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("PLAYER_PET_CHANGED", "CheckPet");
|
||||
self:RegisterEvent("PET_BAR_CHANGED", "CheckPet");
|
||||
end
|
||||
self:RegisterEvent(IceHUD.WowVer < 80000 and "PET_BAR_CHANGED" or "PET_BAR_UPDATE_USABLE", "CheckPet");
|
||||
self:RegisterEvent("UNIT_PET", "CheckPet");
|
||||
|
||||
self:RegisterEvent("UNIT_HEALTH", "UpdateEvent")
|
||||
|
@ -1,6 +1,17 @@
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||
local PetMana = IceCore_CreateClass(IceUnitBar)
|
||||
|
||||
local SPELL_POWER_RAGE = SPELL_POWER_RAGE
|
||||
local SPELL_POWER_FOCUS = SPELL_POWER_FOCUS
|
||||
local SPELL_POWER_ENERGY = SPELL_POWER_ENERGY
|
||||
local SPELL_POWER_RUNIC_POWER = SPELL_POWER_RUNIC_POWER
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_RAGE = Enum.PowerType.Rage
|
||||
SPELL_POWER_FOCUS = Enum.PowerType.Focus
|
||||
SPELL_POWER_ENERGY = Enum.PowerType.Energy
|
||||
SPELL_POWER_RUNIC_POWER = Enum.PowerType.RunicPower
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function PetMana.prototype:init()
|
||||
PetMana.super.prototype.init(self, "PetMana", "pet")
|
||||
@ -51,13 +62,17 @@ function PetMana.prototype:Enable(core)
|
||||
PetMana.super.prototype.Enable(self, core)
|
||||
|
||||
self:RegisterEvent("PET_UI_UPDATE", "CheckPet")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("PLAYER_PET_CHANGED", "CheckPet")
|
||||
self:RegisterEvent("PET_BAR_CHANGED", "CheckPet")
|
||||
end
|
||||
self:RegisterEvent(IceHUD.WowVer < 80000 and "PET_BAR_CHANGED" or "PET_BAR_UPDATE_USABLE", "CheckPet")
|
||||
self:RegisterEvent("UNIT_PET", "CheckPet")
|
||||
|
||||
if IceHUD.WowVer >= 40000 then
|
||||
self:RegisterEvent("UNIT_POWER", "UpdateEvent")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateEvent")
|
||||
end
|
||||
else
|
||||
self:RegisterEvent("UNIT_MANA", "UpdateEvent")
|
||||
self:RegisterEvent("UNIT_MAXMANA", "UpdateEvent")
|
||||
|
@ -13,6 +13,7 @@ function PlayerAbsorb.prototype:GetDefaultSettings()
|
||||
|
||||
settings["side"] = IceCore.Side.Left
|
||||
settings["offset"] = 3
|
||||
settings["enabled"] = true
|
||||
|
||||
return settings
|
||||
end
|
||||
|
@ -6,6 +6,13 @@ PlayerAltMana.prototype.PlayerAltManaMax = nil
|
||||
|
||||
local _, unitClass = UnitClass("player")
|
||||
|
||||
local SPELL_POWER_MANA = SPELL_POWER_MANA
|
||||
local SPELL_POWER_INSANITY = SPELL_POWER_INSANITY
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_MANA = Enum.PowerType.Mana
|
||||
SPELL_POWER_INSANITY = Enum.PowerType.Insanity
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function PlayerAltMana.prototype:init()
|
||||
PlayerAltMana.super.prototype.init(self, "PlayerAltMana", "player")
|
||||
@ -76,6 +83,7 @@ function PlayerAltMana.prototype:Update()
|
||||
|
||||
self.PlayerAltMana = UnitPower(self.unit, SPELL_POWER_MANA)
|
||||
self.PlayerAltManaMax = UnitPowerMax(self.unit, SPELL_POWER_MANA)
|
||||
self.PlayerAltManaPercentage = self.PlayerAltManaMax ~= 0 and (self.PlayerAltMana/self.PlayerAltManaMax) or 0
|
||||
|
||||
if (not self.alive or not ShouldShow(self.unit) or not self.PlayerAltMana or not self.PlayerAltManaMax or self.PlayerAltManaMax == 0) then
|
||||
self:Show(false)
|
||||
@ -84,6 +92,16 @@ function PlayerAltMana.prototype:Update()
|
||||
self:Show(true)
|
||||
end
|
||||
|
||||
if not IceHUD.IceCore:ShouldUseDogTags() and self.frame:IsVisible() then
|
||||
self:SetBottomText1(math.floor(self.PlayerAltManaPercentage * 100))
|
||||
|
||||
if (self.PlayerAltManaMax ~= 100) then
|
||||
self:SetBottomText2(self:GetFormattedText(self:Round(self.PlayerAltMana), self:Round(self.PlayerAltManaMax)), "PlayerMana")
|
||||
else
|
||||
self:SetBottomText2()
|
||||
end
|
||||
end
|
||||
|
||||
self:UpdateBar(self.PlayerAltManaMax ~= 0 and self.PlayerAltMana / self.PlayerAltManaMax or 0, "PlayerAltMana")
|
||||
end
|
||||
|
||||
|
@ -28,8 +28,10 @@ end
|
||||
function IceHUDPlayerAlternatePower.prototype:Enable(core)
|
||||
IceHUDPlayerAlternatePower.super.prototype.Enable(self, core)
|
||||
|
||||
self:RegisterEvent("UNIT_POWER", "UpdateEvent")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateEvent")
|
||||
end
|
||||
self:RegisterEvent("UNIT_POWER_BAR_SHOW", "PowerBarShow")
|
||||
self:RegisterEvent("UNIT_POWER_BAR_HIDE", "PowerBarHide")
|
||||
|
||||
|
@ -5,6 +5,7 @@ local IceHUD = _G.IceHUD
|
||||
|
||||
PlayerHealth.prototype.resting = nil
|
||||
PlayerHealth.prototype.pendingBlizzardPartyHide = false
|
||||
PlayerHealth.prototype.absorbAmount = 0
|
||||
|
||||
local configMode = false
|
||||
local HealComm
|
||||
@ -16,6 +17,7 @@ function PlayerHealth.prototype:init()
|
||||
|
||||
self:SetDefaultColor("PlayerHealth", 37, 164, 30)
|
||||
self:SetDefaultColor("PlayerHealthHealAmount", 37, 164, 30)
|
||||
self:SetDefaultColor("PlayerHealthAbsorbAmount", 220, 220, 220)
|
||||
end
|
||||
|
||||
|
||||
@ -27,12 +29,14 @@ function PlayerHealth.prototype:GetDefaultSettings()
|
||||
settings["hideBlizz"] = false
|
||||
settings["hideBlizzParty"] = false
|
||||
settings["upperText"] = "[PercentHP:Round]"
|
||||
settings["lowerText"] = "[FractionalHP:HPColor:Bracket]"
|
||||
settings["lowerText"] = "[FractionalHP:Short:HPColor:Bracket]"
|
||||
settings["allowMouseInteraction"] = false
|
||||
settings["allowMouseInteractionCombat"] = false
|
||||
settings["healAlpha"] = 0.6
|
||||
settings["absorbAlpha"] = 0.6
|
||||
settings["lockIconAlpha"] = false
|
||||
settings["showIncomingHeals"] = true
|
||||
settings["showAbsorbs"] = true
|
||||
|
||||
settings["showStatusIcon"] = true
|
||||
settings["statusIconOffset"] = {x=110, y=0}
|
||||
@ -107,6 +111,8 @@ function PlayerHealth.prototype:Enable(core)
|
||||
self:RegisterEvent("UNIT_HEAL_PREDICTION", "IncomingHealPrediction")
|
||||
end
|
||||
|
||||
self:RegisterEvent("UNIT_ABSORB_AMOUNT_CHANGED", "UpdateAbsorbAmount")
|
||||
|
||||
if (self.moduleSettings.hideBlizz) then
|
||||
self:HideBlizz()
|
||||
end
|
||||
@ -164,6 +170,11 @@ function PlayerHealth.prototype:IncomingHealPrediction(event, unit)
|
||||
end
|
||||
end
|
||||
|
||||
function PlayerHealth.prototype:UpdateAbsorbAmount()
|
||||
self.absorbAmount = UnitGetTotalAbsorbs(self.unit) or 0
|
||||
self:Update()
|
||||
end
|
||||
|
||||
|
||||
-- OVERRIDE
|
||||
function PlayerHealth.prototype:GetOptions()
|
||||
@ -327,6 +338,52 @@ function PlayerHealth.prototype:GetOptions()
|
||||
order = 43.7
|
||||
}
|
||||
|
||||
opts["showAbsorbs"] =
|
||||
{
|
||||
type = 'toggle',
|
||||
name = L["Show absorbs"],
|
||||
desc = L["Whether or not to show absorb amounts as a lighter-colored bar on top of your current health."],
|
||||
get = function()
|
||||
return self.moduleSettings.showAbsorbs
|
||||
end,
|
||||
set = function(info, v)
|
||||
if not v then
|
||||
self.absorbFrame.bar:Hide()
|
||||
else
|
||||
self.absorbFrame.bar:Show()
|
||||
end
|
||||
|
||||
self.moduleSettings.showAbsorbs = v
|
||||
|
||||
self:Update()
|
||||
end,
|
||||
disabled = function()
|
||||
return not (self.moduleSettings.enabled and IceHUD.WowVer >= 70000)
|
||||
end,
|
||||
order = 43.8
|
||||
}
|
||||
|
||||
opts["absorbAlpha"] =
|
||||
{
|
||||
type = "range",
|
||||
name = L["Absorb bar alpha"],
|
||||
desc = L["What alpha value to use for the bar that displays how much effective health you have including absorbs (This gets multiplied by the bar's current alpha to stay in line with the bar on top of it)"],
|
||||
min = 0,
|
||||
max = 100,
|
||||
step = 5,
|
||||
get = function()
|
||||
return self.moduleSettings.absorbAlpha * 100
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.absorbAlpha = v / 100.0
|
||||
self:Redraw()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled or not self.moduleSettings.showAbsorbs
|
||||
end,
|
||||
order = 43.9
|
||||
}
|
||||
|
||||
opts["iconSettings"] =
|
||||
{
|
||||
type = 'group',
|
||||
@ -824,6 +881,7 @@ function PlayerHealth.prototype:CreateFrame()
|
||||
PlayerHealth.super.prototype.CreateFrame(self)
|
||||
|
||||
self:CreateHealBar()
|
||||
self:CreateAbsorbBar()
|
||||
end
|
||||
|
||||
|
||||
@ -880,6 +938,18 @@ function PlayerHealth.prototype:CreateHealBar()
|
||||
end
|
||||
end
|
||||
|
||||
function PlayerHealth.prototype:CreateAbsorbBar()
|
||||
self.absorbFrame = self:BarFactory(self.absorbFrame, "LOW","BACKGROUND")
|
||||
|
||||
self.absorbFrame.bar:SetVertexColor(self:GetColor("PlayerHealthAbsorbAmount", self.alpha * self.moduleSettings.absorbAlpha))
|
||||
|
||||
self:UpdateBar(1, "undef")
|
||||
|
||||
if not self.moduleSettings.showAbsorbs or UnitGetTotalAbsorbs == nil then
|
||||
self.absorbFrame.bar:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function PlayerHealth.prototype:EnableClickTargeting(bEnable)
|
||||
if bEnable then
|
||||
@ -1008,9 +1078,9 @@ function PlayerHealth.prototype:CheckPartyRole()
|
||||
if configMode or IceHUD:GetIsInLFGGroup() then
|
||||
if (configMode or self.moduleSettings.showPartyRoleIcon) and not self.frame.PartyRoleIcon then
|
||||
local isTank, isHeal, isDPS
|
||||
local proposalExists, typeID, id, name
|
||||
local proposalExists, typeID, id, subtypeID, name
|
||||
local texture, role, hasResponded, totalEncounters, completedEncounters, numMembers, isleader
|
||||
proposalExists, typeID, id, name, texture, role, hasResponded, totalEncounters, completedEncounters, numMembers, isleader = GetLFGProposal()
|
||||
proposalExists, id, typeID, subtypeID, name, texture, role, hasResponded, totalEncounters, completedEncounters, numMembers, isleader = GetLFGProposal()
|
||||
|
||||
local p = self.unit
|
||||
if IceHUD.WowVer < 40000 then
|
||||
@ -1026,7 +1096,7 @@ function PlayerHealth.prototype:CheckPartyRole()
|
||||
IceHUD:Debug( tostring(proposalExists) .."**".. tostring(typeID) .."**".. tostring(id) .."**".. tostring(name) .."**".. tostring(texture) .."**".. tostring(role) .."**".. tostring(hasResponded) .."**".. tostring(totalEncounters) .."**".. tostring(completedEncounters) .."**".. tostring(numMembers) .."**".. tostring(isleader) )
|
||||
|
||||
if proposalExists == true then
|
||||
IceHUD:Debug(tostring(typeID).." "..role)
|
||||
IceHUD:Debug(tostring(typeID).." "..(role or ""))
|
||||
isTank = (role == "TANK")
|
||||
isHeal = (role == "HEALER")
|
||||
isDPS = (role == "DAMAGER")
|
||||
@ -1216,7 +1286,7 @@ function PlayerHealth.prototype:Update(unit)
|
||||
local percent
|
||||
|
||||
if incomingHealAmt > 0 then
|
||||
percent = self.maxHealth ~= 0 and ((self.health + incomingHealAmt) / self.maxHealth) or 0
|
||||
percent = self.maxHealth ~= 0 and ((self.health + (self.absorbAmount or 0) + incomingHealAmt) / self.maxHealth) or 0
|
||||
if self.moduleSettings.reverse then
|
||||
percent = 1 - percent
|
||||
-- Rokiyo: I'm thinking the frama strata should also to be set to medium if we're in reverse.
|
||||
@ -1230,6 +1300,23 @@ function PlayerHealth.prototype:Update(unit)
|
||||
self:SetBarCoord(self.healFrame, percent)
|
||||
end
|
||||
|
||||
if self.moduleSettings.showAbsorbs and self.absorbFrame and self.absorbFrame.bar and self.absorbAmount then
|
||||
local percent
|
||||
|
||||
if self.absorbAmount > 0 then
|
||||
percent = self.maxHealth ~= 0 and ((self.health + self.absorbAmount) / self.maxHealth) or 0
|
||||
if self.moduleSettings.reverse then
|
||||
percent = 1 - percent
|
||||
end
|
||||
else
|
||||
percent = 0
|
||||
end
|
||||
|
||||
percent = IceHUD:Clamp(percent, 0, 1)
|
||||
|
||||
self:SetBarCoord(self.absorbFrame, percent)
|
||||
end
|
||||
|
||||
if not IceHUD.IceCore:ShouldUseDogTags() then
|
||||
self:SetBottomText1(math.floor(self.healthPercentage * 100))
|
||||
self:SetBottomText2(self:GetFormattedText(self.health, self.maxHealth), textColor)
|
||||
@ -1399,6 +1486,9 @@ function PlayerHealth.prototype:UpdateBar(scale, color, alpha)
|
||||
if self.healFrame and self.healFrame.bar then
|
||||
self.healFrame.bar:SetVertexColor(self:GetColor("PlayerHealthHealAmount", self.alpha * self.moduleSettings.healAlpha))
|
||||
end
|
||||
if self.absorbFrame and self.absorbFrame.bar then
|
||||
self.absorbFrame.bar:SetVertexColor(self:GetColor("PlayerHealthAbsorbAmount", self.alpha * self.moduleSettings.absorbAlpha))
|
||||
end
|
||||
--[[ seems to be causing taint. oh well
|
||||
if self.frame.button then
|
||||
if self.alpha == 0 then
|
||||
|
@ -3,6 +3,29 @@ local PlayerMana = IceCore_CreateClass(IceUnitBar)
|
||||
|
||||
local IceHUD = _G.IceHUD
|
||||
|
||||
local SPELL_POWER_MANA = SPELL_POWER_MANA
|
||||
local SPELL_POWER_RAGE = SPELL_POWER_RAGE
|
||||
local SPELL_POWER_FOCUS = SPELL_POWER_FOCUS
|
||||
local SPELL_POWER_ENERGY = SPELL_POWER_ENERGY
|
||||
local SPELL_POWER_RUNIC_POWER = SPELL_POWER_RUNIC_POWER
|
||||
local SPELL_POWER_INSANITY = SPELL_POWER_INSANITY
|
||||
local SPELL_POWER_FURY = SPELL_POWER_FURY
|
||||
local SPELL_POWER_MAELSTROM = SPELL_POWER_MAELSTROM
|
||||
local SPELL_POWER_PAIN = SPELL_POWER_PAIN
|
||||
local SPELL_POWER_LUNAR_POWER = SPELL_POWER_LUNAR_POWER
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_MANA = Enum.PowerType.Mana
|
||||
SPELL_POWER_RAGE = Enum.PowerType.Rage
|
||||
SPELL_POWER_FOCUS = Enum.PowerType.Focus
|
||||
SPELL_POWER_ENERGY = Enum.PowerType.Energy
|
||||
SPELL_POWER_RUNIC_POWER = Enum.PowerType.RunicPower
|
||||
SPELL_POWER_INSANITY = Enum.PowerType.Insanity
|
||||
SPELL_POWER_FURY = Enum.PowerType.Fury
|
||||
SPELL_POWER_MAELSTROM = Enum.PowerType.Maelstrom
|
||||
SPELL_POWER_PAIN = Enum.PowerType.Pain
|
||||
SPELL_POWER_LUNAR_POWER = Enum.PowerType.LunarPower
|
||||
end
|
||||
|
||||
PlayerMana.prototype.manaType = nil
|
||||
PlayerMana.prototype.tickStart = nil
|
||||
PlayerMana.prototype.previousEnergy = nil
|
||||
@ -18,9 +41,9 @@ function PlayerMana.prototype:init()
|
||||
self:SetDefaultColor("PlayerRunicPower", 62, 54, 152)
|
||||
if IceHUD.WowVer >= 70000 then
|
||||
self:SetDefaultColor("PlayerInsanity", 150, 50, 255)
|
||||
self:SetDefaultColor("PlayerFury", 255, 50, 255)
|
||||
self:SetDefaultColor("PlayerFury", 201, 66, 253)
|
||||
self:SetDefaultColor("PlayerMaelstrom", 62, 54, 152)
|
||||
self:SetDefaultColor("PlayerPain", 255, 50, 255)
|
||||
self:SetDefaultColor("PlayerPain", 255, 156, 0)
|
||||
end
|
||||
end
|
||||
|
||||
@ -34,7 +57,7 @@ function PlayerMana.prototype:GetDefaultSettings()
|
||||
settings["tickerEnabled"] = true
|
||||
settings["tickerAlpha"] = 0.5
|
||||
settings["upperText"] = "[PercentMP:Round]"
|
||||
settings["lowerText"] = "[FractionalMP:PowerColor]"
|
||||
settings["lowerText"] = "[FractionalMP:Short:PowerColor]"
|
||||
|
||||
return settings
|
||||
end
|
||||
@ -131,8 +154,10 @@ function PlayerMana.prototype:Enable(core)
|
||||
self:CreateTickerFrame()
|
||||
|
||||
if IceHUD.WowVer >= 40000 then
|
||||
self:RegisterEvent("UNIT_POWER", "UpdateEvent")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateEvent")
|
||||
end
|
||||
else
|
||||
self:RegisterEvent("UNIT_MAXMANA", "UpdateEvent")
|
||||
self:RegisterEvent("UNIT_MAXRAGE", "UpdateEvent")
|
||||
@ -174,7 +199,7 @@ function PlayerMana.prototype:CheckVehicle()
|
||||
end
|
||||
|
||||
function PlayerMana.prototype:ShouldUseTicker()
|
||||
return IceHUD.WowVer < 30000 or not GetCVarBool("predictedPower")
|
||||
return IceHUD.WowVer < 30000 or (IceHUD.WowVer < 70100 and not GetCVarBool("predictedPower"))
|
||||
end
|
||||
|
||||
function PlayerMana.prototype:SetupOnUpdate(enable)
|
||||
|
@ -56,7 +56,7 @@ do
|
||||
return
|
||||
end
|
||||
|
||||
self.current = select(15, UnitAura(self.unit, spellName)) or 0
|
||||
self.current = select(IceHUD.WowVer < 80000 and 15 or 14, UnitAura(self.unit, spellName)) or 0
|
||||
|
||||
self:Update()
|
||||
end
|
||||
|
@ -19,6 +19,11 @@ for _, v in ipairs(RtBBuffs) do
|
||||
RtBSet[v] = true
|
||||
end
|
||||
|
||||
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function RollTheBones.prototype:init()
|
||||
RollTheBones.super.prototype.init(self, "RollTheBones", "player")
|
||||
@ -30,6 +35,8 @@ function RollTheBones.prototype:init()
|
||||
self:SetDefaultColor("RollTheBones", 1, 0.6, 0.2)
|
||||
self:SetDefaultColor("RollTheBones2", 0.75, 1, 0.2)
|
||||
self:SetDefaultColor("RollTheBones3", 0.4, 1, 0.2)
|
||||
self:SetDefaultColor("RollTheBones4", 0.4, 1, 0.2)
|
||||
self:SetDefaultColor("RollTheBones5", 0.1, 1, 0.7)
|
||||
self:SetDefaultColor("RollTheBones6", 0.1, 1, 0.7)
|
||||
self:SetDefaultColor("RollTheBonesPotential", 1, 1, 1)
|
||||
|
||||
@ -43,7 +50,7 @@ function RollTheBones.prototype:Enable(core)
|
||||
RollTheBones.super.prototype.Enable(self, core)
|
||||
|
||||
self:RegisterEvent("UNIT_AURA", "UpdateRollTheBones")
|
||||
self:RegisterEvent("UNIT_POWER", "ComboPointsChanged")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "ComboPointsChanged")
|
||||
|
||||
if not self.moduleSettings.alwaysFullAlpha then
|
||||
self:Show(false)
|
||||
@ -59,7 +66,7 @@ function RollTheBones.prototype:Disable(core)
|
||||
end
|
||||
|
||||
function RollTheBones.prototype:ComboPointsChanged(...)
|
||||
if select('#', ...) >= 3 and select(1, ...) == "UNIT_POWER" and select(3, ...) ~= "COMBO_POINTS" then
|
||||
if select('#', ...) >= 3 and select(1, ...) == IceHUD.UnitPowerEvent and select(3, ...) ~= "COMBO_POINTS" then
|
||||
return
|
||||
end
|
||||
|
||||
@ -212,8 +219,12 @@ end
|
||||
|
||||
function RollTheBones.prototype:GetBuffDuration(unitName, ids)
|
||||
local i = 1
|
||||
local buff, rank, texture, type, duration, endTime, remaining, spellId
|
||||
local buff, _, type, duration, endTime, spellId
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buff, _, _, _, type, duration, endTime, _, _, _, spellId = UnitBuff(unitName, i)
|
||||
else
|
||||
buff, _, _, type, duration, endTime, _, _, _, spellId = UnitBuff(unitName, i)
|
||||
end
|
||||
|
||||
local realDuration, remaining, count
|
||||
local now = GetTime()
|
||||
@ -230,7 +241,11 @@ function RollTheBones.prototype:GetBuffDuration(unitName, ids)
|
||||
|
||||
i = i + 1;
|
||||
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buff, _, _, _, type, duration, endTime, _, _, _, spellId = UnitBuff(unitName, i)
|
||||
else
|
||||
buff, _, _, type, duration, endTime, _, _, _, spellId = UnitBuff(unitName, i)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
@ -8,19 +8,26 @@ if IceHUD.WowVer >= 70000 then
|
||||
CooldownFrame_SetTimer = CooldownFrame_Set
|
||||
end
|
||||
|
||||
-- blizzard cracks me up. the below block is copied verbatim from RuneFrame.lua ;)
|
||||
--Readability == win
|
||||
local RUNETYPE_BLOOD = 1;
|
||||
local RUNETYPE_DEATH = 2;
|
||||
local RUNETYPE_FROST = 3;
|
||||
local RUNETYPE_DEATH = IceHUD.WowVer < 70300 and 2 or 3;
|
||||
local RUNETYPE_FROST = IceHUD.WowVer < 70300 and 3 or 2;
|
||||
local RUNETYPE_CHROMATIC = 4;
|
||||
local RUNETYPE_LEGION = 5; -- not real, but makes for an easy update
|
||||
|
||||
local GetRuneType = GetRuneType
|
||||
if IceHUD.WowVer >= 70000 then
|
||||
if IceHUD.WowVer >= 70000 and IceHUD.WowVer < 70300 then
|
||||
GetRuneType = function() return RUNETYPE_LEGION end
|
||||
elseif IceHUD.WowVer >= 70300 then
|
||||
GetRuneType = function() return GetSpecialization() end
|
||||
end
|
||||
|
||||
local RUNEMODE_DEFAULT = "Blizzard"
|
||||
local RUNEMODE_NUMERIC = "Numeric"
|
||||
local RUNEMODE_BAR = "Graphical Bar"
|
||||
local RUNEMODE_CIRCLE = "Graphical Circle"
|
||||
local RUNEMODE_GLOW = "Graphical Glow"
|
||||
local RUNEMODE_CLEANCIRCLE = "Graphical Clean Circle"
|
||||
|
||||
-- setup the names to be more easily readable
|
||||
Runes.prototype.runeNames = {
|
||||
[RUNETYPE_BLOOD] = "Blood",
|
||||
@ -34,15 +41,24 @@ Runes.prototype.runeSize = 25
|
||||
-- blizzard has hardcoded 6 runes right now, so i'll do the same...see RuneFrame.xml
|
||||
Runes.prototype.numRunes = 6
|
||||
|
||||
Runes.prototype.lastRuneState = {}
|
||||
|
||||
local SPELL_POWER_RUNES = SPELL_POWER_RUNES
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_RUNES = Enum.PowerType.Runes
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function Runes.prototype:init()
|
||||
Runes.super.prototype.init(self, "Runes")
|
||||
|
||||
if IceHUD.WowVer < 70000 then
|
||||
if IceHUD.WowVer < 70000 or IceHUD.WowVer >= 70300 then
|
||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_BLOOD], 255, 0, 0)
|
||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_DEATH], 0, 207, 0)
|
||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_FROST], 0, 255, 255)
|
||||
if IceHUD.WowVer < 70300 then
|
||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_CHROMATIC], 204, 26, 255)
|
||||
end
|
||||
else
|
||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_LEGION], 204, 204, 255)
|
||||
end
|
||||
@ -152,6 +168,9 @@ function Runes.prototype:GetOptions()
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
hidden = function()
|
||||
return self.moduleSettings.runeMode ~= RUNEMODE_DEFAULT
|
||||
end,
|
||||
order = 36
|
||||
}
|
||||
|
||||
@ -175,6 +194,42 @@ function Runes.prototype:GetOptions()
|
||||
order = 34.1
|
||||
}
|
||||
|
||||
opts["runeMode"] = {
|
||||
type = 'select',
|
||||
name = L["Rune display mode"],
|
||||
desc = L["What graphical representation each rune should have. When setting to anything other than 'graphical', the module will behave more like combo points and simply show how many are active."],
|
||||
get = function(info)
|
||||
return IceHUD:GetSelectValue(info, self.moduleSettings.runeMode)
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.runeMode = info.option.values[v]
|
||||
self:ResetRuneAvailability()
|
||||
self:Redraw()
|
||||
end,
|
||||
values = { RUNEMODE_DEFAULT, RUNEMODE_NUMERIC, RUNEMODE_BAR, RUNEMODE_CIRCLE, RUNEMODE_GLOW, RUNEMODE_CLEANCIRCLE },
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
order = 35.5,
|
||||
}
|
||||
|
||||
opts["showWhenNotFull"] = {
|
||||
type = 'toggle',
|
||||
name = L["Show when not full"],
|
||||
desc = L["Whether to show the Runes module any time the player has fewer than max runes available (regardless of combat/target status)."],
|
||||
get = function()
|
||||
return self.moduleSettings.showWhenNotFull
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.showWhenNotFull = v
|
||||
self:Redraw()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
order = 38,
|
||||
}
|
||||
|
||||
return opts
|
||||
end
|
||||
|
||||
@ -192,7 +247,9 @@ function Runes.prototype:GetDefaultSettings()
|
||||
defaults["alwaysFullAlpha"] = false
|
||||
defaults["displayMode"] = "Horizontal"
|
||||
defaults["cooldownMode"] = "Cooldown"
|
||||
defaults["runeMode"] = RUNEMODE_DEFAULT
|
||||
defaults["runeGap"] = 0
|
||||
defaults["showWhenNotFull"] = false
|
||||
|
||||
return defaults
|
||||
end
|
||||
@ -212,10 +269,19 @@ function Runes.prototype:Enable(core)
|
||||
self.numRunes = UnitPowerMax("player", SPELL_POWER_RUNES)
|
||||
end
|
||||
|
||||
for i=1,self.numRunes do
|
||||
self.lastRuneState[i] = select(3, GetRuneCooldown(i))
|
||||
end
|
||||
|
||||
Runes.super.prototype.Enable(self, core)
|
||||
|
||||
self:RegisterEvent("RUNE_POWER_UPDATE", "UpdateRunePower")
|
||||
self:RegisterEvent("RUNE_POWER_UPDATE", "ResetRuneAvailability")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("RUNE_TYPE_UPDATE", "UpdateRuneType")
|
||||
end
|
||||
if IceHUD.WowVer >= 70300 then
|
||||
self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED", "UpdateRuneColors")
|
||||
end
|
||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "ResetRuneAvailability")
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "CheckMaxNumRunes")
|
||||
|
||||
@ -246,28 +312,43 @@ function Runes.prototype:CheckMaxNumRunes(event, unit, powerType)
|
||||
end
|
||||
end
|
||||
|
||||
function Runes.prototype:ResetRuneAvailability()
|
||||
function Runes.prototype:ResetRuneAvailability(event)
|
||||
for i=1, self.numRunes do
|
||||
self:UpdateRunePower(nil, i, true)
|
||||
self:UpdateRunePower(event, i, not event)
|
||||
end
|
||||
|
||||
if not event then
|
||||
self:Redraw()
|
||||
end
|
||||
end
|
||||
|
||||
-- simply shows/hides the foreground rune when it becomes usable/unusable. this allows the background transparent rune to show only
|
||||
function Runes.prototype:UpdateRunePower(event, rune, dontFlash)
|
||||
if not rune or not self.frame.graphical or #self.frame.graphical < rune then
|
||||
if rune and (not self.frame.graphical or #self.frame.graphical < rune) then
|
||||
return
|
||||
end
|
||||
|
||||
if self.moduleSettings.runeMode == RUNEMODE_NUMERIC then
|
||||
self.frame.numeric:SetText(tostring(self:GetNumRunesAvailable()))
|
||||
return
|
||||
end
|
||||
|
||||
local start, duration, usable = GetRuneCooldown(rune)
|
||||
|
||||
local lastState = self.lastRuneState[rune]
|
||||
self.lastRuneState[rune] = usable
|
||||
|
||||
if lastState == usable then
|
||||
return
|
||||
end
|
||||
|
||||
-- print("Runes.prototype:UpdateRunePower: rune="..rune.." usable="..(usable and "yes" or "no").." GetRuneType(rune)="..GetRuneType(rune));
|
||||
|
||||
if usable then
|
||||
if self.moduleSettings.cooldownMode == "Cooldown" then
|
||||
self.frame.graphical[rune].cd:Hide()
|
||||
elseif self.moduleSettings.cooldownMode == "Alpha" then
|
||||
if self.moduleSettings.cooldownMode == "Alpha" or self.moduleSettings.runeMode ~= RUNEMODE_DEFAULT then
|
||||
self.frame.graphical[rune]:SetAlpha(1)
|
||||
elseif self.moduleSettings.cooldownMode == "Cooldown" then
|
||||
self.frame.graphical[rune].cd:Hide()
|
||||
elseif self.moduleSettings.cooldownMode == "Both" then
|
||||
self.frame.graphical[rune].cd:Hide()
|
||||
self.frame.graphical[rune]:SetAlpha(1)
|
||||
@ -276,14 +357,17 @@ function Runes.prototype:UpdateRunePower(event, rune, dontFlash)
|
||||
if not dontFlash then
|
||||
local fadeInfo={
|
||||
mode = "IN",
|
||||
timeToFade = 0.5,
|
||||
finishedFunc = function(rune) self:ShineFinished(rune) end,
|
||||
finishedArg1 = rune
|
||||
timeToFade = 0.25,
|
||||
finishedFunc = Runes.prototype.ShineFinished,
|
||||
finishedArg1 = self,
|
||||
finishedArg2 = rune
|
||||
}
|
||||
UIFrameFade(self.frame.graphical[rune].shine, fadeInfo);
|
||||
end
|
||||
elseif start ~= nil and duration ~= nil then
|
||||
if self.moduleSettings.cooldownMode == "Cooldown" then
|
||||
if self.moduleSettings.runeMode ~= RUNEMODE_DEFAULT then
|
||||
self.frame.graphical[rune]:SetAlpha(0)
|
||||
elseif self.moduleSettings.cooldownMode == "Cooldown" then
|
||||
CooldownFrame_SetTimer(self.frame.graphical[rune].cd, start, duration, true)
|
||||
self.frame.graphical[rune].cd:Show()
|
||||
elseif self.moduleSettings.cooldownMode == "Alpha" then
|
||||
@ -294,6 +378,20 @@ function Runes.prototype:UpdateRunePower(event, rune, dontFlash)
|
||||
self.frame.graphical[rune]:SetAlpha(0.2)
|
||||
end
|
||||
end
|
||||
|
||||
self:Redraw()
|
||||
end
|
||||
|
||||
function Runes.prototype:GetNumRunesAvailable()
|
||||
local available = 0
|
||||
|
||||
for i=1,self.numRunes do
|
||||
if select(3, GetRuneCooldown(i)) then
|
||||
available = available + 1
|
||||
end
|
||||
end
|
||||
|
||||
return available
|
||||
end
|
||||
|
||||
function Runes.prototype:ShineFinished(rune)
|
||||
@ -318,11 +416,30 @@ function Runes.prototype:UpdateRuneType(event, rune)
|
||||
self.frame.graphical[rune].rune:SetVertexColor(self:GetColor("Runes"..thisRuneName))
|
||||
end
|
||||
|
||||
function Runes.prototype:GetRuneTexture(runeName)
|
||||
if not runeName then
|
||||
return ""
|
||||
function Runes.prototype:UpdateRuneColors()
|
||||
for i=1,self.numRunes do
|
||||
self:UpdateRuneType(nil, i)
|
||||
end
|
||||
end
|
||||
|
||||
function Runes.prototype:GetRuneTexture(runeName)
|
||||
if IceHUD.WowVer >= 70300 then
|
||||
runeName = self.runeNames[RUNETYPE_LEGION]
|
||||
end
|
||||
|
||||
if self.moduleSettings.runeMode == RUNEMODE_DEFAULT and runeName then
|
||||
return "Interface\\PlayerFrame\\UI-PlayerFrame-DeathKnight-"..runeName
|
||||
elseif self.moduleSettings.runeMode == RUNEMODE_BAR then
|
||||
return IceElement.TexturePath .. "Combo"
|
||||
elseif self.moduleSettings.runeMode == RUNEMODE_CIRCLE then
|
||||
return IceElement.TexturePath .. "ComboRound"
|
||||
elseif self.moduleSettings.runeMode == RUNEMODE_GLOW then
|
||||
return IceElement.TexturePath .. "ComboGlow"
|
||||
elseif self.moduleSettings.runeMode == RUNEMODE_CLEANCIRCLE then
|
||||
return IceElement.TexturePath .. "ComboCleanCurves"
|
||||
end
|
||||
|
||||
return ""
|
||||
end
|
||||
|
||||
-- 'Protected' methods --------------------------------------------------------
|
||||
@ -344,13 +461,19 @@ end
|
||||
|
||||
function Runes.prototype:CreateRuneFrame()
|
||||
-- create numeric runes
|
||||
self.frame.numeric = self:FontFactory(self.moduleSettings.runeFontSize, nil, self.frame.numeric)
|
||||
if not self.frame.numeric then
|
||||
self.frame.numeric = self:FontFactory(self.moduleSettings.runeFontSize, self.frame)
|
||||
end
|
||||
|
||||
self.frame.numeric:SetWidth(50)
|
||||
self.frame.numeric:SetJustifyH("CENTER")
|
||||
|
||||
self.frame.numeric:SetPoint("TOP", self.frame, "TOP", 0, 0)
|
||||
if self.moduleSettings.runeMode == RUNEMODE_NUMERIC then
|
||||
self.frame.numeric:Show()
|
||||
else
|
||||
self.frame.numeric:Hide()
|
||||
end
|
||||
|
||||
if (not self.frame.graphical) then
|
||||
self.frame.graphical = {}
|
||||
@ -409,7 +532,11 @@ function Runes.prototype:CreateRune(i, type, name)
|
||||
local runeTex = self:GetRuneTexture(name)
|
||||
self.frame.graphical[i].rune:SetTexture(runeTex)
|
||||
self.frame.graphical[i].rune:SetVertexColor(self:GetColor("Runes"..name))
|
||||
if self.moduleSettings.runeMode ~= RUNEMODE_NUMERIC then
|
||||
self.frame.graphical[i]:Show()
|
||||
else
|
||||
self.frame.graphical[i]:Hide()
|
||||
end
|
||||
|
||||
self.frame.graphical[i].cd:SetFrameStrata("BACKGROUND")
|
||||
self.frame.graphical[i].cd:SetFrameLevel(self.frame.graphical[i]:GetFrameLevel()+1)
|
||||
@ -485,6 +612,14 @@ function Runes.prototype:CheckCombat()
|
||||
self:Redraw()
|
||||
end
|
||||
|
||||
function Runes.prototype:UseTargetAlpha(scale)
|
||||
if not self.moduleSettings.showWhenNotFull then
|
||||
return Runes.super.prototype.UseTargetAlpha(scale)
|
||||
else
|
||||
return self:GetNumRunesAvailable() ~= self.numRunes
|
||||
end
|
||||
end
|
||||
|
||||
-- Load us up
|
||||
local _, unitClass = UnitClass("player")
|
||||
if (unitClass == "DEATHKNIGHT") then
|
||||
|
@ -3,14 +3,26 @@ local ShardCounter = IceCore_CreateClass(IceClassPowerCounter)
|
||||
|
||||
local CurrentSpec = nil
|
||||
|
||||
local AfflictionCoords =
|
||||
{
|
||||
local AfflictionCoords
|
||||
if IceHUD.WowVer < 70200 then
|
||||
AfflictionCoords =
|
||||
{
|
||||
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||
}
|
||||
}
|
||||
else
|
||||
AfflictionCoords =
|
||||
{
|
||||
{0, 1, 0, 1},
|
||||
{0, 1, 0, 1},
|
||||
{0, 1, 0, 1},
|
||||
{0, 1, 0, 1},
|
||||
{0, 1, 0, 1},
|
||||
}
|
||||
end
|
||||
|
||||
local DestructionCoords =
|
||||
{
|
||||
@ -25,6 +37,11 @@ local DemonologyCoords =
|
||||
{0.03906250, 0.55468750, 0.10546875, 0.19921875},
|
||||
}
|
||||
|
||||
local SPELL_POWER_SOUL_SHARDS = SPELL_POWER_SOUL_SHARDS
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_SOUL_SHARDS = Enum.PowerType.SoulShards
|
||||
end
|
||||
|
||||
function ShardCounter.prototype:init()
|
||||
ShardCounter.super.prototype.init(self, "Warlock Power")
|
||||
|
||||
@ -36,6 +53,10 @@ function ShardCounter.prototype:init()
|
||||
if IceHUD.WowVer >= 70000 then
|
||||
self.runeHeight = 23
|
||||
self.runeWidth = 26
|
||||
if IceHUD.WowVer >= 70200 then
|
||||
self.runeHeight = 27
|
||||
self.runeWidth = 22
|
||||
end
|
||||
self.runeCoords = AfflictionCoords
|
||||
self.unitPower = SPELL_POWER_SOUL_SHARDS
|
||||
self.unit = "player"
|
||||
@ -45,6 +66,16 @@ end
|
||||
function ShardCounter.prototype:Enable(core)
|
||||
if IceHUD.WowVer >= 70000 then
|
||||
self.numRunes = UnitPowerMax(self.unit, self.unitPower)
|
||||
|
||||
if GetSpecialization() == SPEC_WARLOCK_DESTRUCTION then
|
||||
self.shouldShowUnmodified = true
|
||||
self.numericFormat = "%.1f"
|
||||
self.round = floor
|
||||
else
|
||||
self.shouldShowUnmodified = nil
|
||||
self.numericFormat = nil
|
||||
self.round = nil
|
||||
end
|
||||
end
|
||||
|
||||
ShardCounter.super.prototype.Enable(self, core)
|
||||
@ -90,10 +121,10 @@ function ShardCounter.prototype:CheckGreenFire()
|
||||
end
|
||||
|
||||
function ShardCounter.prototype:UpdatePowerType(event)
|
||||
if IceHUD.WowVer >= 50000 then
|
||||
if IceHUD.WowVer >= 50000 and IceHUD.WowVer < 80000 then
|
||||
CurrentSpec = GetSpecialization()
|
||||
else
|
||||
-- all warlocks use shards in pre-5.0, so just act like our spec is affliction
|
||||
-- all warlocks use shards in pre-5.0/post-8.0, so just act like our spec is affliction
|
||||
CurrentSpec = SPEC_WARLOCK_AFFLICTION
|
||||
end
|
||||
|
||||
@ -205,6 +236,10 @@ function ShardCounter.prototype:GetDefaultSettings()
|
||||
end
|
||||
|
||||
function ShardCounter.prototype:GetRuneTexture(rune)
|
||||
if IceHUD.WowVer >= 70200 then
|
||||
return nil
|
||||
end
|
||||
|
||||
if not rune or rune ~= tonumber(rune) then
|
||||
return
|
||||
end
|
||||
@ -222,6 +257,10 @@ function ShardCounter.prototype:GetRuneTexture(rune)
|
||||
return "Interface\\PlayerFrame\\UI-WarlockShard"
|
||||
end
|
||||
|
||||
function ShardCounter.prototype:GetRuneAtlas(rune)
|
||||
return "Warlock-ReadyShard"
|
||||
end
|
||||
|
||||
function ShardCounter.prototype:ShowBlizz()
|
||||
WarlockPowerFrame:Show()
|
||||
|
||||
|
@ -29,6 +29,11 @@ if IceHUD.WowVer >= 50000 then
|
||||
gapPerComboPoint = 6
|
||||
end
|
||||
|
||||
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function SliceAndDice.prototype:init()
|
||||
SliceAndDice.super.prototype.init(self, "SliceAndDice", "player")
|
||||
@ -53,7 +58,7 @@ function SliceAndDice.prototype:Enable(core)
|
||||
if IceHUD.WowVer < 70000 then
|
||||
self:RegisterEvent("UNIT_COMBO_POINTS", "ComboPointsChanged")
|
||||
else
|
||||
self:RegisterEvent("UNIT_POWER", "ComboPointsChanged")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "ComboPointsChanged")
|
||||
end
|
||||
|
||||
if not self.moduleSettings.alwaysFullAlpha then
|
||||
@ -70,7 +75,7 @@ function SliceAndDice.prototype:Disable(core)
|
||||
end
|
||||
|
||||
function SliceAndDice.prototype:ComboPointsChanged(...)
|
||||
if select('#', ...) >= 3 and select(1, ...) == "UNIT_POWER" and select(3, ...) ~= "COMBO_POINTS" then
|
||||
if select('#', ...) >= 3 and select(1, ...) == IceHUD.UnitPowerEvent and select(3, ...) ~= "COMBO_POINTS" then
|
||||
return
|
||||
end
|
||||
|
||||
@ -205,15 +210,15 @@ end
|
||||
|
||||
function SliceAndDice.prototype:GetBuffDuration(unitName, buffName)
|
||||
local i = 1
|
||||
local buff, rank, texture, count, type, duration, endTime, remaining
|
||||
if IceHUD.WowVer >= 30000 then
|
||||
buff, rank, texture, count, type, duration, endTime = UnitBuff(unitName, i)
|
||||
local buff, _, texture, duration, endTime, remaining
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buff, _, texture, _, _, duration, endTime = UnitBuff(unitName, i)
|
||||
else
|
||||
buff, rank, texture, count, duration, remaining = UnitBuff(unitName, i)
|
||||
buff, texture, _, _, duration, endTime = UnitBuff(unitName, i)
|
||||
end
|
||||
|
||||
while buff do
|
||||
if (texture and string.match(texture, buffName)) then
|
||||
if (texture and (type(buffName) == 'string' and string.match(texture, buffName) or texture == buffName)) then
|
||||
if endTime and not remaining then
|
||||
remaining = endTime - GetTime()
|
||||
end
|
||||
@ -222,10 +227,10 @@ function SliceAndDice.prototype:GetBuffDuration(unitName, buffName)
|
||||
|
||||
i = i + 1;
|
||||
|
||||
if IceHUD.WowVer >= 30000 then
|
||||
buff, rank, texture, count, type, duration, endTime = UnitBuff(unitName, i)
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buff, _, texture, _, _, duration, endTime = UnitBuff(unitName, i)
|
||||
else
|
||||
buff, rank, texture, count, duration, remaining = UnitBuff(unitName, i)
|
||||
buff, texture, _, _, duration, endTime = UnitBuff(unitName, i)
|
||||
end
|
||||
end
|
||||
|
||||
@ -275,7 +280,7 @@ function SliceAndDice.prototype:UpdateSliceAndDice(event, unit, fromUpdate)
|
||||
local remaining = nil
|
||||
|
||||
if not fromUpdate or IceHUD.WowVer < 30000 then
|
||||
sndDuration, remaining = self:GetBuffDuration(self.unit, "Ability_Rogue_SliceDice")
|
||||
sndDuration, remaining = self:GetBuffDuration(self.unit, IceHUD.WowVer < 80000 and "Ability_Rogue_SliceDice" or 132306)
|
||||
|
||||
if not remaining then
|
||||
sndEndTime = 0
|
||||
|
@ -71,7 +71,7 @@ function StaggerBar.prototype:GetOptions()
|
||||
name = "Max Percent",
|
||||
desc = "Maximum percentage of your maximum health for the Stagger bar to represent. I.e, if set to 20%, the bar will be full when the Stagger damage over time effect is dealing 20% of your maximum health per second.",
|
||||
min = 0,
|
||||
max = 50,
|
||||
max = 100,
|
||||
step = 1,
|
||||
get = function()
|
||||
return self.moduleSettings.maxPercent
|
||||
@ -183,13 +183,13 @@ function StaggerBar.prototype:GetDebuffInfo()
|
||||
local staggerLevel = 1
|
||||
|
||||
for i = 1, IceCore.BuffLimit do
|
||||
local debuffID = select(11, UnitDebuff(self.unit, i))
|
||||
local debuffID = select(IceHUD.WowVer < 80000 and 11 or 10, UnitDebuff(self.unit, i))
|
||||
|
||||
if debuffID == LightID or debuffID == ModerateID or debuffID == HeavyID then
|
||||
local spellName = select(1, UnitDebuff(self.unit, i))
|
||||
local spellName = UnitDebuff(self.unit, i)
|
||||
|
||||
duration = select(6, UnitAura(self.unit, spellName, "", "HARMFUL"))
|
||||
amount = select(15, UnitAura(self.unit, spellName, "", "HARMFUL"))
|
||||
duration = select(IceHUD.WowVer < 80000 and 6 or 5, UnitAura(self.unit, spellName, "", "HARMFUL"))
|
||||
amount = select(IceHUD.WowVer < 80000 and 15 or 14, UnitAura(self.unit, spellName, "", "HARMFUL"))
|
||||
staggerLevel = (debuffID == LightID) and 1 or (debuffID == ModerateID) and 2 or 3
|
||||
|
||||
break
|
||||
@ -228,7 +228,12 @@ function StaggerBar.prototype:UpdateStaggerBar()
|
||||
end
|
||||
|
||||
function StaggerBar.prototype:GetDebuffDuration(unitName, buffName)
|
||||
local name, _, _, _, _, duration, endTime = UnitDebuff(unitName, buffName)
|
||||
local name, _, duration, endTime
|
||||
if IceHUD.WowVer < 80000 then
|
||||
name, _, _, _, _, duration, endTime = UnitDebuff(unitName, buffName)
|
||||
else
|
||||
name, _, _, _, duration, endTime = UnitDebuff(unitName, buffName)
|
||||
end
|
||||
|
||||
if name then
|
||||
return duration, endTime - GetTime()
|
||||
|
@ -63,12 +63,22 @@ function IceTargetAbsorb.prototype:UpdateAbsorbAmount(event, unit)
|
||||
self.highestAbsorbSinceLastZero = absorbAmount
|
||||
end
|
||||
|
||||
self.absorbPercent = self.highestAbsorbSinceLastZero ~= 0 and absorbAmount / self.highestAbsorbSinceLastZero or 0
|
||||
|
||||
if absorbAmount <= 0 or self.highestAbsorbSinceLastZero <= 0 then
|
||||
self:Show(false)
|
||||
else
|
||||
self:Show(true)
|
||||
self:UpdateBar(absorbAmount / self.highestAbsorbSinceLastZero, self.ColorName)
|
||||
end
|
||||
|
||||
if not IceHUD.IceCore:ShouldUseDogTags() and self.frame:IsVisible() then
|
||||
if (self.PlayerAltManaMax ~= 100) then
|
||||
self:SetBottomText1(self:GetFormattedText(self:Round(absorbAmount)), self.ColorName)
|
||||
else
|
||||
self:SetBottomText1()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function IceTargetAbsorb.prototype:Disable(core)
|
||||
|
@ -35,9 +35,9 @@ local StunCCList = {
|
||||
-- bash
|
||||
5211,
|
||||
-- Maim
|
||||
22570,
|
||||
-- pounce
|
||||
9005,
|
||||
203123,
|
||||
-- Rake
|
||||
163505,
|
||||
-- war stomp
|
||||
20549,
|
||||
-- deep freeze
|
||||
@ -315,7 +315,12 @@ end
|
||||
|
||||
function TargetCC.prototype:GetMaxDebuffDuration(unitName, debuffNames)
|
||||
local i = 1
|
||||
local debuff, rank, texture, count, debuffType, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, "HARMFUL")
|
||||
local debuff, rank, texture, count, debuffType, duration, endTime, unitCaster, _, _, spellId
|
||||
if IceHUD.WowVer < 80000 then
|
||||
debuff, rank, texture, count, debuffType, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, "HARMFUL")
|
||||
else
|
||||
debuff, texture, count, debuffType, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, "HARMFUL")
|
||||
end
|
||||
local isMine = unitCaster == "player"
|
||||
local result = {nil, nil, nil}
|
||||
local remaining
|
||||
@ -335,7 +340,11 @@ function TargetCC.prototype:GetMaxDebuffDuration(unitName, debuffNames)
|
||||
|
||||
i = i + 1;
|
||||
|
||||
if IceHUD.WowVer < 80000 then
|
||||
debuff, rank, texture, count, debuffType, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, "HARMFUL")
|
||||
else
|
||||
debuff, texture, count, debuffType, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, "HARMFUL")
|
||||
end
|
||||
isMine = unitCaster == "player"
|
||||
end
|
||||
|
||||
|
@ -82,15 +82,17 @@ function TargetCast.prototype:TargetChanged(unit)
|
||||
return
|
||||
end
|
||||
|
||||
local spell, _, _, _, _, _, _, _, notInterruptibleCast = UnitCastingInfo(self.unit)
|
||||
if (spell) then
|
||||
local spell = UnitCastingInfo(self.unit)
|
||||
local notInterruptible = select(IceHUD.WowVer < 80000 and 9 or 8, UnitCastingInfo(self.unit))
|
||||
if spell then
|
||||
self.notInterruptible = notInterruptibleCast
|
||||
self:StartBar(IceCastBar.Actions.Cast)
|
||||
return
|
||||
end
|
||||
|
||||
local channel, _, _, _, _, _, _, notInterruptibleChannel = UnitChannelInfo(self.unit)
|
||||
if (channel) then
|
||||
local channel = UnitChannelInfo(self.unit)
|
||||
notInterruptible = select(IceHUD.WowVer < 80000 and 8 or 7, UnitChannelInfo(self.unit))
|
||||
if channel then
|
||||
self.notInterruptible = notInterruptibleChannel
|
||||
self:StartBar(IceCastBar.Actions.Channel)
|
||||
return
|
||||
@ -167,9 +169,11 @@ function TargetCast.prototype:GetOptions()
|
||||
end
|
||||
|
||||
function TargetCast.prototype:StartBar(action, message)
|
||||
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill, castId, notInterruptible = UnitCastingInfo(self.unit)
|
||||
if not (spell) then
|
||||
spell, rank, displayName, icon, startTime, endTime, isTradeSkill, notInterruptible = UnitChannelInfo(self.unit)
|
||||
local spell = UnitCastingInfo(self.unit)
|
||||
local notInterruptible = select(IceHUD.WowVer < 80000 and 9 or 8, UnitCastingInfo(self.unit))
|
||||
if not spell then
|
||||
spell = UnitChannelInfo(self.unit)
|
||||
notInterruptible = select(IceHUD.WowVer < 80000 and 8 or 7, UnitChannelInfo(self.unit))
|
||||
end
|
||||
|
||||
if not spell then
|
||||
|
@ -43,7 +43,7 @@ function IceTargetHealth.prototype:GetDefaultSettings()
|
||||
settings["classColor"] = false
|
||||
settings["hideBlizz"] = false
|
||||
settings["upperText"] = "[PercentHP:Round]"
|
||||
settings["lowerText"] = "[(HP:Round \"/\" MaxHP:Round):HPColor:Bracket]"
|
||||
settings["lowerText"] = "[FractionalHP:Short:HPColor:Bracket]"
|
||||
settings["raidIconOnTop"] = true
|
||||
settings["showRaidIcon"] = true
|
||||
settings["raidIconXOffset"] = 12
|
||||
@ -972,17 +972,6 @@ function IceTargetHealth.prototype:UpdateRaidTargetIcon()
|
||||
end
|
||||
|
||||
|
||||
function IceTargetHealth.prototype:Round(health)
|
||||
if (health > 1000000) then
|
||||
return IceHUD:MathRound(health/1000000, 1) .. "M"
|
||||
end
|
||||
if (health > 1000) then
|
||||
return IceHUD:MathRound(health/1000, 1) .. "k"
|
||||
end
|
||||
return health
|
||||
end
|
||||
|
||||
|
||||
function IceTargetHealth.prototype:CheckPvP()
|
||||
local pvpMode = nil
|
||||
local minx, maxx, miny, maxy
|
||||
@ -1074,9 +1063,9 @@ function IceTargetHealth.prototype:CheckPartyRole()
|
||||
if self.configMode or IceHUD:GetIsInLFGGroup() then
|
||||
if self.configMode or self.moduleSettings.showPartyRoleIcon then
|
||||
local isTank, isHeal, isDPS
|
||||
local proposalExists, typeID, id, name
|
||||
local proposalExists, typeID, id, subtypeID, name
|
||||
local texture, role, hasResponded, totalEncounters, completedEncounters, numMembers, isleader
|
||||
proposalExists, typeID, id, name, texture, role, hasResponded, totalEncounters, completedEncounters, numMembers, isleader = GetLFGProposal()
|
||||
proposalExists, id, typeID, subtypeID, name, texture, role, hasResponded, totalEncounters, completedEncounters, numMembers, isleader = GetLFGProposal()
|
||||
|
||||
local p = self.unit
|
||||
if IceHUD.WowVer < 40000 then
|
||||
|
@ -129,7 +129,9 @@ function IceTargetInfo.prototype:Enable(core)
|
||||
self:RegisterEvent("UNIT_LEVEL", "TargetLevel")
|
||||
|
||||
self:RegisterEvent("UNIT_FLAGS", "TargetFlags")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("UNIT_DYNAMIC_FLAGS", "TargetFlags")
|
||||
end
|
||||
|
||||
self:RegisterEvent("RAID_TARGET_UPDATE", "UpdateRaidTargetIcon")
|
||||
|
||||
@ -958,6 +960,23 @@ function IceTargetInfo.prototype:GetOptions()
|
||||
order = 39.3,
|
||||
}
|
||||
|
||||
opts["showRaidIcon"] = {
|
||||
type = 'toggle',
|
||||
name = L['Show raid icon'],
|
||||
desc = L['Whether or not to show the raid icon for this unit.'],
|
||||
get = function()
|
||||
return self.moduleSettings.showRaidIcon
|
||||
end,
|
||||
set = function(info, v)
|
||||
self.moduleSettings.showRaidIcon = v
|
||||
self:UpdateRaidTargetIcon()
|
||||
end,
|
||||
disabled = function()
|
||||
return not self.moduleSettings.enabled
|
||||
end,
|
||||
order = 37.02,
|
||||
}
|
||||
|
||||
return opts
|
||||
end
|
||||
|
||||
@ -1011,6 +1030,7 @@ function IceTargetInfo.prototype:GetDefaultSettings()
|
||||
["sortByExpiration"] = true,
|
||||
}
|
||||
}
|
||||
defaults["showRaidIcon"] = true
|
||||
|
||||
return defaults
|
||||
end
|
||||
@ -1389,7 +1409,12 @@ function IceTargetInfo.prototype:UpdateBuffType(aura)
|
||||
|
||||
if self.moduleSettings.auras[aura].show then
|
||||
for i = 1, IceCore.BuffLimit do
|
||||
local name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable = UnitAura(self.unit, i, reaction .. (filter and "|PLAYER" or ""))
|
||||
local name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable
|
||||
if IceHUD.WowVer < 80000 then
|
||||
name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable = UnitAura(self.unit, i, reaction .. (filter and "|PLAYER" or ""))
|
||||
else
|
||||
name, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable = UnitAura(self.unit, i, reaction .. (filter and "|PLAYER" or ""))
|
||||
end
|
||||
local isFromMe = (unitCaster == "player")
|
||||
|
||||
if not icon and IceHUD.IceCore:IsInConfigMode() and UnitExists(self.unit) then
|
||||
@ -1480,7 +1505,7 @@ function IceTargetInfo.prototype:AuraChanged(event, unit)
|
||||
end
|
||||
|
||||
function IceTargetInfo.prototype:UpdateRaidTargetIcon()
|
||||
if not (UnitExists(self.unit)) then
|
||||
if not (UnitExists(self.unit)) or not self.moduleSettings.showRaidIcon then
|
||||
self.frame.raidIcon:Hide()
|
||||
return
|
||||
end
|
||||
|
@ -146,7 +146,12 @@ end
|
||||
|
||||
function TargetInvuln.prototype:GetMaxbuffDuration(unitName, buffNames)
|
||||
local i = 1
|
||||
local buff, rank, texture, count, buffType, duration, endTime, unitCaster = UnitAura(unitName, i, "HELPFUL")
|
||||
local buff, rank, texture, count, buffType, duration, endTime, unitCaster
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buff, rank, texture, count, buffType, duration, endTime, unitCaster = UnitAura(unitName, i, "HELPFUL")
|
||||
else
|
||||
buff, texture, count, buffType, duration, endTime, unitCaster = UnitAura(unitName, i, "HELPFUL")
|
||||
end
|
||||
local isMine = unitCaster == "player"
|
||||
local result = {nil, nil, nil}
|
||||
local remaining
|
||||
@ -173,7 +178,11 @@ function TargetInvuln.prototype:GetMaxbuffDuration(unitName, buffNames)
|
||||
|
||||
i = i + 1;
|
||||
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buff, rank, texture, count, buffType, duration, endTime, unitCaster = UnitAura(unitName, i, "HELPFUL")
|
||||
else
|
||||
buff, texture, count, buffType, duration, endTime, unitCaster = UnitAura(unitName, i, "HELPFUL")
|
||||
end
|
||||
isMine = unitCaster == "player"
|
||||
end
|
||||
|
||||
|
@ -4,6 +4,28 @@ IceTargetMana.prototype.registerEvents = true
|
||||
IceTargetMana.prototype.color = nil
|
||||
IceTargetMana.prototype.determineColor = true
|
||||
|
||||
local SPELL_POWER_MANA = SPELL_POWER_MANA
|
||||
local SPELL_POWER_RAGE = SPELL_POWER_RAGE
|
||||
local SPELL_POWER_FOCUS = SPELL_POWER_FOCUS
|
||||
local SPELL_POWER_ENERGY = SPELL_POWER_ENERGY
|
||||
local SPELL_POWER_RUNIC_POWER = SPELL_POWER_RUNIC_POWER
|
||||
local SPELL_POWER_INSANITY = SPELL_POWER_INSANITY
|
||||
local SPELL_POWER_FURY = SPELL_POWER_FURY
|
||||
local SPELL_POWER_MAELSTROM = SPELL_POWER_MAELSTROM
|
||||
local SPELL_POWER_PAIN = SPELL_POWER_PAIN
|
||||
local SPELL_POWER_LUNAR_POWER = SPELL_POWER_LUNAR_POWER
|
||||
if IceHUD.WowVer >= 80000 then
|
||||
SPELL_POWER_MANA = Enum.PowerType.Mana
|
||||
SPELL_POWER_RAGE = Enum.PowerType.Rage
|
||||
SPELL_POWER_FOCUS = Enum.PowerType.Focus
|
||||
SPELL_POWER_ENERGY = Enum.PowerType.Energy
|
||||
SPELL_POWER_RUNIC_POWER = Enum.PowerType.RunicPower
|
||||
SPELL_POWER_INSANITY = Enum.PowerType.Insanity
|
||||
SPELL_POWER_FURY = Enum.PowerType.Fury
|
||||
SPELL_POWER_MAELSTROM = Enum.PowerType.Maelstrom
|
||||
SPELL_POWER_PAIN = Enum.PowerType.Pain
|
||||
SPELL_POWER_LUNAR_POWER = Enum.PowerType.LunarPower
|
||||
end
|
||||
|
||||
-- Constructor --
|
||||
function IceTargetMana.prototype:init(moduleName, unit)
|
||||
@ -33,7 +55,7 @@ function IceTargetMana.prototype:GetDefaultSettings()
|
||||
settings["side"] = IceCore.Side.Right
|
||||
settings["offset"] = 2
|
||||
settings["upperText"] = "[PercentMP:Round]"
|
||||
settings["lowerText"] = "[FractionalMP:PowerColor]"
|
||||
settings["lowerText"] = "[FractionalMP:Short:PowerColor]"
|
||||
settings["onlyShowMana"] = false
|
||||
|
||||
return settings
|
||||
@ -45,8 +67,10 @@ function IceTargetMana.prototype:Enable(core)
|
||||
|
||||
if self.registerEvents then
|
||||
if IceHUD.WowVer >= 40000 then
|
||||
self:RegisterEvent("UNIT_POWER", "UpdateEvent")
|
||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
|
||||
if IceHUD.WowVer < 80000 then
|
||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdateEvent")
|
||||
end
|
||||
else
|
||||
self:RegisterEvent("UNIT_MAXMANA", "UpdateEvent")
|
||||
self:RegisterEvent("UNIT_MAXRAGE", "UpdateEvent")
|
||||
|
@ -485,7 +485,12 @@ function TargetOfTarget.prototype:UpdateBuffs()
|
||||
|
||||
if (self.moduleSettings.showDebuffs) then
|
||||
for i = 1, IceCore.BuffLimit do
|
||||
local buffName, buffRank, buffTexture, buffApplications = UnitDebuff(self.unit, i)
|
||||
local buffName, buffRank, buffTexture, buffApplications
|
||||
if IceHUD.WowVer < 80000 then
|
||||
buffName, buffRank, buffTexture, buffApplications = UnitDebuff(self.unit, i)
|
||||
else
|
||||
buffName, buffTexture, buffApplications = UnitDebuff(self.unit, i)
|
||||
end
|
||||
|
||||
if (buffApplications and (buffApplications > 1)) then
|
||||
debuffs = debuffs + 1
|
||||
|
@ -24,7 +24,7 @@ function TargetTargetHealth.prototype:GetDefaultSettings()
|
||||
settings["selfColor"] = { r = 0, g = 0, b = 1 }
|
||||
settings["selfDisplayMode"] = "Color as SelfColor"
|
||||
settings["upperText"] = "[PercentHP:Round]"
|
||||
settings["lowerText"] = "[(HP:Round \"/\" MaxHP:Round):HPColor:Bracket]"
|
||||
settings["lowerText"] = "[FractionalHP:Short:HPColor:Bracket]"
|
||||
settings["barVerticalOffset"] = 35
|
||||
settings["scale"] = 0.7
|
||||
settings["enabled"] = false
|
||||
|
@ -21,7 +21,7 @@ function TargetTargetMana.prototype:GetDefaultSettings()
|
||||
settings["side"] = IceCore.Side.Right
|
||||
settings["offset"] = 11
|
||||
settings["upperText"] = "[PercentMP:Round]"
|
||||
settings["lowerText"] = "[FractionalMP:PowerColor]"
|
||||
settings["lowerText"] = "[FractionalMP:Short:PowerColor]"
|
||||
settings["barVerticalOffset"] = 35
|
||||
settings["scale"] = 0.7
|
||||
settings["enabled"] = false
|
||||
|
Reference in New Issue
Block a user