Initial dump of BfA compatibility

Updated for:
- SPELL_POWER_* constants becoming Enum.PowerType.*
- Rank no longer existing in return values for UnitAura, UnitBuff, UnitDebuff, UnitCastingInfo, UnitChannelInfo
- UNIT_POWER event becoming UNIT_POWER_UPDATE
- UnitPopupFrames no longer existing
- Removed events: PLAYER_PET_CHANGED, UNIT_MAXPOWER, PET_BAR_CHANGED, UNIT_DYNAMIC_FLAGS
- Texture return value from UnitAura type changing (name -> id)
- All Warlock specializations using soul shards
- Death Knight rune changes

Haven't tested all classes/specializations yet, so I'm sure I missed some stuff.
Probably need to add support for the new circular cooldown wipe flourish added in the base client.
Saw a problem with cooldown flashes being delayed on DK runes becoming available that probably need to be fixed.
This commit is contained in:
Parnic
2018-06-06 22:57:35 -05:00
parent 0f7a2ff4f1
commit 89ef91b9b3
31 changed files with 353 additions and 83 deletions

View File

@ -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
@ -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
spell, rank, displayName, icon, startTime, endTime = UnitChannelInfo(self.unit)
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

View File

@ -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
name, _, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
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
name, _, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
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()

View File

@ -6,7 +6,7 @@
## 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: 70200
## X-Compatible-With: 80000
## X-Category: HUDs
## X-Website: https://www.wowace.com/projects/ice-hud
## X-WoWI-ID: 8149

View File

@ -128,7 +128,9 @@ end
function IceStackCounter_Enable(frame)
frame:RegisterEvent("UNIT_AURA", "UpdateCustomCount")
frame:RegisterEvent("UNIT_PET", "UpdateCustomCount")
frame:RegisterEvent("PLAYER_PET_CHANGED", "UpdateCustomCount")
if IceHUD.WowVer < 80000 then
frame:RegisterEvent("PLAYER_PET_CHANGED", "UpdateCustomCount")
end
frame:RegisterEvent("PLAYER_FOCUS_CHANGED", "UpdateCustomCount")
frame:RegisterEvent("PLAYER_DEAD", "UpdateCustomCount")
frame:RegisterEvent("SPELL_UPDATE_CHARGES", "UpdateCustomCount")

View File

@ -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)

View File

@ -1,3 +1,10 @@
v1.11:
- BfA compatibility
v1.10.17:
- Fixed Insanity display with DogTags disabled
- Show text on Absorb and AltMana with DogTags disabled
v1.10.16.1:
- Added option to hide the raid icon for Info frames.
- Updated TOC for 7.3

View File

@ -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")

View File

@ -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

View File

@ -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,8 +257,10 @@ function ComboPoints.prototype:Enable(core)
if IceHUD.WowVer < 70000 then
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
else
self:RegisterEvent("UNIT_POWER", "UpdateComboPoints")
self:RegisterEvent("UNIT_MAXPOWER", "UpdateMaxComboPoints")
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")
@ -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
_, _, _, anticipate = UnitAura("player", GetSpellInfo(AnticipationSpellId))
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()

View File

@ -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

View File

@ -36,7 +36,9 @@ function IceCustomBar.prototype:Enable(core)
self:RegisterEvent("UNIT_AURA", "UpdateCustomBarEvent")
self:RegisterEvent("UNIT_PET", "UpdateCustomBarEvent")
self:RegisterEvent("PLAYER_PET_CHANGED", "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;
buff, rank, texture, count, type, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, buffFilter)
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

View File

@ -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("UNIT_MAXPOWER", "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")

View File

@ -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")

View File

@ -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")

View File

@ -42,8 +42,10 @@ function PetHealth.prototype:Enable(core)
PetHealth.super.prototype.Enable(self, core)
self:RegisterEvent("PET_UI_UPDATE", "CheckPet");
self:RegisterEvent("PLAYER_PET_CHANGED", "CheckPet");
self:RegisterEvent("PET_BAR_CHANGED", "CheckPet");
if IceHUD.WowVer < 80000 then
self:RegisterEvent("PLAYER_PET_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")

View File

@ -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")
self:RegisterEvent("PLAYER_PET_CHANGED", "CheckPet")
self:RegisterEvent("PET_BAR_CHANGED", "CheckPet")
if IceHUD.WowVer < 80000 then
self:RegisterEvent("PLAYER_PET_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("UNIT_MAXPOWER", "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")

View File

@ -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")

View File

@ -28,8 +28,10 @@ end
function IceHUDPlayerAlternatePower.prototype:Enable(core)
IceHUDPlayerAlternatePower.super.prototype.Enable(self, core)
self:RegisterEvent("UNIT_POWER", "UpdateEvent")
self:RegisterEvent("UNIT_MAXPOWER", "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")

View File

@ -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
@ -131,8 +154,10 @@ function PlayerMana.prototype:Enable(core)
self:CreateTickerFrame()
if IceHUD.WowVer >= 40000 then
self:RegisterEvent("UNIT_POWER", "UpdateEvent")
self:RegisterEvent("UNIT_MAXPOWER", "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")

View File

@ -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

View File

@ -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")
@ -43,7 +48,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 +64,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 +217,12 @@ end
function RollTheBones.prototype:GetBuffDuration(unitName, ids)
local i = 1
local buff, rank, texture, type, duration, endTime, remaining, spellId
buff, _, _, _, type, duration, endTime, _, _, _, spellId = UnitBuff(unitName, i)
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 +239,11 @@ function RollTheBones.prototype:GetBuffDuration(unitName, ids)
i = i + 1;
buff, _, _, _, type, duration, endTime, _, _, _, spellId = UnitBuff(unitName, i)
if IceHUD.WowVer < 80000 then
buff, _, _, _, type, duration, endTime, _, _, _, spellId = UnitBuff(unitName, i)
else
buff, _, _, type, duration, endTime, _, _, _, spellId = UnitBuff(unitName, i)
end
end

View File

@ -8,17 +8,17 @@ 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 < 80000 and 2 or 3;
local RUNETYPE_FROST = IceHUD.WowVer < 80000 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 < 80000 then
GetRuneType = function() return RUNETYPE_LEGION end
elseif IceHUD.WowVer >= 80000 then
GetRuneType = function() return GetSpecialization() end
end
local RUNEMODE_DEFAULT = "Blizzard"
@ -43,15 +43,22 @@ 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 >= 80000 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)
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_CHROMATIC], 204, 26, 255)
if IceHUD.WowVer < 80000 then
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_CHROMATIC], 204, 26, 255)
end
else
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_LEGION], 204, 204, 255)
end
@ -269,7 +276,11 @@ function Runes.prototype:Enable(core)
Runes.super.prototype.Enable(self, core)
self:RegisterEvent("RUNE_POWER_UPDATE", "UpdateRunePower")
self:RegisterEvent("RUNE_TYPE_UPDATE", "UpdateRuneType")
if IceHUD.WowVer < 80000 then
self:RegisterEvent("RUNE_TYPE_UPDATE", "UpdateRuneType")
else
self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED", "UpdateRuneColors")
end
self:RegisterEvent("PLAYER_ENTERING_WORLD", "ResetRuneAvailability")
self:RegisterEvent("UNIT_MAXPOWER", "CheckMaxNumRunes")
@ -418,7 +429,17 @@ function Runes.prototype:UpdateRuneType(event, rune)
self.frame.graphical[rune].rune:SetVertexColor(self:GetColor("Runes"..thisRuneName))
end
function Runes.prototype:UpdateRuneColors()
for i=1,self.numRunes do
self:UpdateRuneType(nil, i)
end
end
function Runes.prototype:GetRuneTexture(runeName)
if IceHUD.WowVer >= 80000 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

View File

@ -37,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")
@ -116,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

View File

@ -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

View File

@ -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()

View File

@ -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;
debuff, rank, texture, count, debuffType, duration, endTime, unitCaster, _, _, spellId = UnitAura(unitName, i, "HARMFUL")
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

View File

@ -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

View File

@ -129,7 +129,9 @@ function IceTargetInfo.prototype:Enable(core)
self:RegisterEvent("UNIT_LEVEL", "TargetLevel")
self:RegisterEvent("UNIT_FLAGS", "TargetFlags")
self:RegisterEvent("UNIT_DYNAMIC_FLAGS", "TargetFlags")
if IceHUD.WowVer < 80000 then
self:RegisterEvent("UNIT_DYNAMIC_FLAGS", "TargetFlags")
end
self:RegisterEvent("RAID_TARGET_UPDATE", "UpdateRaidTargetIcon")
@ -1407,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

View File

@ -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;
buff, rank, texture, count, buffType, duration, endTime, unitCaster = UnitAura(unitName, i, "HELPFUL")
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

View File

@ -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)
@ -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("UNIT_MAXPOWER", "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")

View File

@ -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