Compare commits

...

39 Commits

Author SHA1 Message Date
d0187a44e3 Revving to get a new build to pick up the latest LibRangeCheck 2019-08-15 16:36:02 -05:00
b4e1374400 Revving to get a new build to pick up the latest Ace3 2019-08-12 08:07:49 -05:00
ba8748ecca First batch of WoW Classic compatibility updates
This has been tested on Classic with a Rogue up to level 5 using various modules and casually checked against a few level 1 classes. I'm sure there's a lot more to do here. I also made sure to test on Live.

Where possible I tried to check for API availability rather than specific client versions or program IDs. There are many cases where that's impractical, however, so version/program ID checks were used.

This was tested with:
* Ace3 @r1225
* AceGUI-3.0-SharedMediaWidgets @r61
* LibDBIcon-1.0 @v8.2.0
* LibDogTag-3.0 @v80200.1
* LibDogTag-Unit-3.0 @v80200.1-2-g93a898d-alpha
* LibRangeCheck-2.0 @v4.2.3 (with a couple of local changes)
* LibSharedMedia-3.0 @r113-alpha
2019-08-11 23:21:06 -05:00
5b71a4f819 Updated TOC to 8.2 2019-06-25 09:53:14 -05:00
77351997b4 Updated changelog 2019-06-03 22:55:26 -05:00
901b49f7b3 Attempt to fix pet health/power not updating when entering instance 2019-06-03 22:46:24 -05:00
53b59b5be2 Attempt to fix pet health not updating (wowace ticket 245) 2019-04-16 17:37:11 -05:00
1bb217c4aa Updated changelog 2019-03-17 12:30:49 -05:00
8469824f53 Fixed player health not updating to max health 2019-03-17 12:28:58 -05:00
118aa0f493 Updated TOC to 8.1 2019-01-12 17:33:29 -06:00
48ee6c0270 Updated changelog 2018-10-03 08:21:58 -05:00
395de299f0 Fixed shard numeric formatting incorrectly in non-Destruction specs 2018-10-03 08:20:30 -05:00
588ba76ef5 Possible fix for reported nil comparison issue. Can't reproduce here. 2018-10-02 09:02:59 -05:00
9fc64bcfe4 Added suggested CC spells 2018-09-19 16:35:13 -05:00
a4945641fb Updated changelog 2018-09-15 14:51:59 -05:00
195b7ab264 Only show placeholder icon when in config mode 2018-09-15 14:50:33 -05:00
410cc2b634 Fixed CD bars not displaying when both IgnoreRange and OnlyShowWithTarget were set 2018-09-12 22:06:33 -05:00
6986131d73 Only show placeholder icon when in config mode
If a CD bar was tracking a spell that was currently unknown to the player (such as the not-currently-active variations of Wildfire Bomb for Survival Hunters after first login/UI reload) then the placeholder frost icon would show up instead. The icon was only meant to be used to aid in configuration mode, so now the icon is set to the placeholder icon when config mode is enabled only. Technically we should clear the icon if it's set to the default whenever config mode is exited, but I figure config mode is pretty rare and should be okay for now.
2018-09-12 21:59:29 -05:00
43aff89b5c Updated changelog 2018-08-30 16:48:33 -05:00
b3a1602d6c Hide lag bar if lag is over half the cast time 2018-08-27 22:57:33 -05:00
c558010b25 Updated changelog 2018-08-27 21:02:05 -05:00
af42f4a4f3 Added option (enabled by default) to hide mod during shell games 2018-08-27 20:48:30 -05:00
ccdabc210c Added HasDebuffs utility method 2018-08-27 20:48:13 -05:00
32e2ce3902 Added Rogue Between the Eyes stun 2018-08-24 00:04:56 -05:00
9764694568 Updated changelog 2018-08-18 14:56:01 -05:00
337bd72545 Fix cast lag indicator updating for others' spells 2018-08-18 14:55:22 -05:00
c4d35b9766 Updated changelog 2018-08-18 11:02:40 -05:00
7dfe505db2 Increased reliability of lag bar
It's still, at it's core, a guess because Blizzard doesn't offer the necessary events to make a reliable decision, so it tends to be wrong semi-frequently in a chain-casting scenario. But it's better than it was.
2018-08-18 11:00:31 -05:00
a8f175fad4 Don't recreate lag bar unnecessarily 2018-08-17 22:45:12 -05:00
1591b36e89 Fixed SpellCastSucceeded signature and spell name for 8.0 2018-08-17 22:44:03 -05:00
8ddc6c5911 Fixed castbar lag indicator covering the whole bar sometimes 2018-08-17 22:41:18 -05:00
bbab772044 Fixed error when showing Blizzard's Rune frame 2018-08-16 20:21:16 -05:00
d27fb83f02 Fixed lag indicator for GCD bar 2018-08-16 17:07:43 -05:00
59e8ac2de8 Fixed cast lag indicator
Apparently the lag bar has been broken since 8.0 due to an incorrect event handler signature that was storing the cast guid incorrectly.
2018-08-16 10:47:01 -05:00
ef9fcdf29b Curse packager test 2018-08-06 16:51:18 -05:00
ac8effb177 C'mon packager... 2018-07-27 21:12:32 -05:00
b89bc5516e Poke Curse packager again 2018-07-24 21:51:56 -05:00
5ae7771fea Poke Curse packager 2018-07-24 21:51:28 -05:00
0d146ab10f Balance druids with Nature's Wrath now treat 50-100 astral power as full for alpha purposes 2018-07-24 21:49:59 -05:00
48 changed files with 447 additions and 236 deletions

View File

@ -13,10 +13,16 @@ IceCastBar.prototype.unit = nil
IceCastBar.prototype.current = nil
local SPELL_POWER_MANA = SPELL_POWER_MANA
if IceHUD.WowVer >= 80000 then
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_MANA = Enum.PowerType.Mana
end
local UnitCastingInfo, UnitChannelInfo = UnitCastingInfo, UnitChannelInfo
if IceHUD.WowClassic then
UnitCastingInfo = CastingInfo
UnitChannelInfo = ChannelInfo
end
local AuraIconWidth = 20
local AuraIconHeight = 20
@ -352,13 +358,13 @@ end
function IceCastBar.prototype:StartBar(action, message)
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
spell, rank, displayName, icon, startTime, endTime = UnitChannelInfo(self.unit)
else
spell, displayName, icon, startTime, endTime = UnitChannelInfo(self.unit)
@ -510,7 +516,7 @@ function IceCastBar.prototype:SpellCastDelayed(event, unit, castGuid, spellId)
if (unit ~= self.unit) then return end
--IceHUD:Debug("SpellCastDelayed", unit, UnitCastingInfo(unit))
local endTime = select(IceHUD.WowVer < 80000 and 6 or 5, UnitCastingInfo(self.unit))
local endTime = select((IceHUD.WowVer < 80000 and not IceHUD.WowClassic) 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
@ -519,9 +525,9 @@ function IceCastBar.prototype:SpellCastDelayed(event, unit, castGuid, spellId)
end
function IceCastBar.prototype:SpellCastSucceeded(event, castGuid, spellId)
function IceCastBar.prototype:SpellCastSucceeded(event, unit, castGuid, spellId)
if (unit ~= self.unit) then return end
--IceHUD:Debug("SpellCastSucceeded", unit, spell, rank)
--IceHUD:Debug("SpellCastSucceeded", unit, castGuid, spellId)
-- never show on channeled (why on earth does this event even fire when channeling starts?)
if (self.action == IceCastBar.Actions.Channel) then
@ -533,6 +539,8 @@ function IceCastBar.prototype:SpellCastSucceeded(event, castGuid, spellId)
return
end
local spell = GetSpellInfo(spellId)
-- show after normal successfull cast
if (self.action == IceCastBar.Actions.Cast) then
self:StartBar(IceCastBar.Actions.Success, spell.. self:GetShortRank(rank))
@ -569,7 +577,7 @@ function IceCastBar.prototype:SpellCastChannelUpdate(event, unit)
--IceHUD:Debug("SpellCastChannelUpdate", unit, UnitChannelInfo(unit))
local spell, rank, displayName, icon, startTime, endTime
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
spell, rank, displayName, icon, startTime, endTime = UnitChannelInfo(unit)
else
spell, displayName, icon, startTime, endTime = UnitChannelInfo(unit)

View File

@ -94,6 +94,7 @@ function IceCore.prototype:SetupDefaults()
bHideDuringPetBattles = true,
bHideInBarberShop = true,
bHideDuringShellGame = true,
},
global = {
lastRunVersion = 0,
@ -250,10 +251,15 @@ function IceCore.prototype:Enable(userToggle)
IceHUD_Options:GenerateModuleOptions()
end
self.IceHUDFrame:RegisterEvent("PET_BATTLE_OPENING_START")
self.IceHUDFrame:RegisterEvent("PET_BATTLE_OVER")
self.IceHUDFrame:RegisterEvent("BARBER_SHOP_OPEN")
self.IceHUDFrame:RegisterEvent("BARBER_SHOP_CLOSE")
if UnitCanPetBattle then
self.IceHUDFrame:RegisterEvent("PET_BATTLE_OPENING_START")
self.IceHUDFrame:RegisterEvent("PET_BATTLE_OVER")
end
if GetBarberShopStyleInfo then
self.IceHUDFrame:RegisterEvent("BARBER_SHOP_OPEN")
self.IceHUDFrame:RegisterEvent("BARBER_SHOP_CLOSE")
end
self.IceHUDFrame:RegisterEvent("UNIT_AURA")
self.IceHUDFrame:SetScript("OnEvent", function(self, event, ...)
if (event == "PET_BATTLE_OPENING_START") then
if IceHUD.IceCore.settings.bHideDuringPetBattles then
@ -271,6 +277,15 @@ function IceCore.prototype:Enable(userToggle)
if IceHUD.IceCore.settings.bHideInBarberShop then
self:Show()
end
elseif (event == "UNIT_AURA") then
local unit = ...
if IceHUD.IceCore.settings.bHideDuringShellGame and unit == "player" and IceHUD:HasDebuffs("player", {271571})[1] and UnitInVehicle("player") then
self:RegisterEvent("UNIT_EXITED_VEHICLE")
self:Hide()
end
elseif (event == "UNIT_EXITED_VEHICLE") then
self:UnregisterEvent("UNIT_EXITED_VEHICLE")
self:Show()
end
end)

View File

@ -6,7 +6,7 @@ local IceHUD = IceHUD
local SML = LibStub("LibSharedMedia-3.0")
local ACR = LibStub("AceConfigRegistry-3.0")
local ConfigDialog = LibStub("AceConfigDialog-3.0")
local icon = LibStub("LibDBIcon-1.0")
local icon = LibStub("LibDBIcon-1.0", true)
local AceGUI = LibStub("AceGUI-3.0")
local AceSerializer = LibStub("AceSerializer-3.0", 1)
@ -17,8 +17,9 @@ IceHUD.CurrTagVersion = 3
IceHUD.debugging = false
IceHUD.WowVer = select(4, GetBuildInfo())
IceHUD.WowClassic = WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_CLASSIC
IceHUD.UnitPowerEvent = IceHUD.WowVer < 80000 and "UNIT_POWER" or "UNIT_POWER_UPDATE"
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
IceHUD.validBarList = { "Bar", "HiBar", "RoundBar", "ColorBar", "RivetBar", "RivetBar2", "CleanCurves", "GlowArc",
"BloodGlaives", "ArcHUD", "FangRune", "DHUD", "CleanCurvesOut", "CleanTank", "PillTank", "GemTank" }
@ -324,7 +325,7 @@ end
-- blizzard interface options
local blizOptionsPanel = CreateFrame("FRAME", "IceHUDConfigPanel", UIParent)
blizOptionsPanel.name = "IceHUD"
blizOptionsPanel.button = CreateFrame("BUTTON", "IceHUDOpenConfigButton", blizOptionsPanel, IceHUD.WowVer >= 50000 and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
blizOptionsPanel.button = CreateFrame("BUTTON", "IceHUDOpenConfigButton", blizOptionsPanel, (IceHUD.WowVer >= 50000 or IceHUD.WowClassic) and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
blizOptionsPanel.button:SetText("Open IceHUD configuration")
blizOptionsPanel.button:SetWidth(240)
blizOptionsPanel.button:SetHeight(30)
@ -412,7 +413,7 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine, matchByName)
local i = 1
local name, _, texture, applications
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
name, _, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
else
name, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
@ -424,7 +425,7 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine, matchByName)
end
i = i + 1
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
name, _, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
else
name, texture, applications = UnitAura(unit, i, auraType..(onlyMine and "|PLAYER" or ""))
@ -437,17 +438,17 @@ end
do
local retval = {}
function IceHUD:HasBuffs(unit, spellIDs)
function IceHUD:HasBuffs(unit, spellIDs, filter)
for i=1, #spellIDs do
retval[i] = false
end
local i = 1
local name, _, texture, applications, _, _, _, _, _, _, auraID
if IceHUD.WowVer < 80000 then
name, _, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
name, _, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i, filter)
else
name, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
name, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i, filter)
end
while name do
for i=1, #spellIDs do
@ -458,15 +459,19 @@ do
end
i = i + 1
if IceHUD.WowVer < 80000 then
name, _, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
name, _, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i, filter)
else
name, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i)
name, texture, applications, _, _, _, _, _, _, auraID = UnitAura(unit, i, filter)
end
end
return retval
end
function IceHUD:HasDebuffs(unit, spellIDs, filter)
return IceHUD:HasBuffs(unit, spellIDs, filter and filter.."|HARMFUL" or "HARMFUL")
end
end
function IceHUD:OnDisable()
@ -601,6 +606,10 @@ local function CheckLFGMode(mode)
end
function IceHUD:GetIsInLFGGroup()
if not GetLFGMode then
return false
end
local mode, submode
if IceHUD.WowVer >= 50000 then
mode, submode = GetLFGMode(LE_LFG_CATEGORY_LFD)

View File

@ -1,4 +1,4 @@
## Interface: 80000
## Interface: 80200
## Author: Parnic, originally created by Iceroth
## Name: IceHUD
## Title: IceHUD |cff7fff7f-Ace3-|r
@ -9,6 +9,7 @@
## X-Category: HUDs
## X-Website: https://www.wowace.com/projects/ice-hud
## X-WoWI-ID: 8149
## X-Compatible-With: 11302
#@no-lib-strip@
# Libraries

View File

@ -1,4 +1,4 @@
## Interface: 80000
## Interface: 80200
## Title: IceHUD |cff7fff7f-Options-|r
## Author: Parnic
## Version: @project-version@

View File

@ -1,6 +1,6 @@
local LibDualSpec = LibStub('LibDualSpec-1.0', true)
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
local icon = LibStub("LibDBIcon-1.0")
local icon = LibStub("LibDBIcon-1.0", true)
local lastCustomModule = "Bar"
IceHUD_Options = {}
@ -379,6 +379,7 @@ Blizzard added a "Personal Resource Display" feature in the 7.0 game client. You
IceHUD.IceCore.IceHUDFrame:Show()
end
end,
hidden = not UnitCanPetBattle,
order = 34,
},
@ -396,8 +397,27 @@ Blizzard added a "Personal Resource Display" feature in the 7.0 game client. You
IceHUD.IceCore.IceHUDFrame:Show()
end
end,
hidden = not GetBarberShopStyleInfo,
order = 35,
},
bHideDuringShellGame = {
type = 'toggle',
name = L["Hide during shell game"],
desc = L["This will hide the entire mod when playing the BfA Tortollan shell game world quest."],
width = 'double',
get = function()
return IceHUD.IceCore.settings.bHideDuringShellGame
end,
set = function(info, value)
IceHUD.IceCore.settings.bHideDuringShellGame = value
if not value then
IceHUD.IceCore.IceHUDFrame:Show()
end
end,
hidden = IceHUD.WowVer < 80000,
order = 36,
},
}
},

View File

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

View File

@ -20,7 +20,7 @@ IceUnitBar.prototype.hasPet = nil
IceUnitBar.prototype.noFlash = nil
local SPELL_POWER_INSANITY = SPELL_POWER_INSANITY
if IceHUD.WowVer >= 80000 then
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_INSANITY = Enum.PowerType.Insanity
end
@ -220,7 +220,7 @@ end
function IceUnitBar.prototype:Update()
IceUnitBar.super.prototype.Update(self)
if IceHUD.WowVer < 70000 then
if UnitIsTapped then
self.tapped = UnitIsTapped(self.unit) and (not UnitIsTappedByPlayer(self.unit))
else
self.tapped = UnitIsTapDenied(self.unit)

View File

@ -1,3 +1,42 @@
v1.12.0-alpha:
- WoW Classic compatibility
v1.11.11:
- Updated TOC to 8.2
v1.11.10:
- Fixed pet health/power not updating every time it was supposed to.
v1.11.9:
- Fixed player health never quite reaching full (and therefore never adhering to "full" alpha settings). It seems like a WoW client patch caused UNIT_MAXHEALTH to stop firing.
v1.11.8:
- Updated TOC to 8.1
v1.11.7:
- Fixed Warlock shard numeric formatting incorrectly in non-Destruction specs.
- Possibly fixed reported bug with Brewmaster Monks' Stagger bars.
- Added several spells to be tracked in the CC modules.
v1.11.6:
- Only show placeholder icon on custom bars when in configuration mode (fixes placeholder icon showing up for abilities the player hasn't enabled yet, like Survival Hunter's Bombs).
- Fixed Custom Cooldown bars not displaying properly when both "ignore range" and "only show with target" were checked.
v1.11.5:
- Added Rogue's Between the Eyes stun to the CC stun bar list.
- Added option (enabled by default) to hide mod during shell games.
- Packaged new LibDogTag-Unit to fix hostile NPC class names displaying in all caps.
v1.11.4:
- Fixed cast lag indicator updating randomly mid-cast.
v1.11.3:
- Balance druids with Nature's Wrath now treat 50-100 astral power as full for alpha purposes (so the bar will fade to "out of combat" levels when resting around 50%).
- Fixed the GCD and player castbar lag indicator to show up again.
- Fixed a longstanding bug where the castbar lag indicator would sometimes be the size of the full bar if the mod never received the client-side "started casting" notification.
- Improved reliability of castbar lag indicator. Blizzard doesn't offer the necessary events to display this with 100% certainty.
- Fixed an error caused by the Runes module when toggling "Hide Blizzard Frame" off.
v1.11.2:
- Fixed Stagger bar to work in 8.0
- Fixed DK Runes in graphical mode not always correctly showing runes on cooldown (curse ticket 238, thanks ithorazei!)

View File

@ -2,7 +2,7 @@ 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
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_ARCANE_CHARGES = Enum.PowerType.ArcaneCharges
end

View File

@ -4,7 +4,6 @@ local CastBar = IceCore_CreateClass(IceCastBar)
local IceHUD = _G.IceHUD
CastBar.prototype.spellCastSent = nil
CastBar.prototype.sentSpell = nil
-- Constructor --
function CastBar.prototype:init()
@ -314,8 +313,10 @@ end
function CastBar.prototype:Enable(core)
CastBar.super.prototype.Enable(self, core)
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
if UnitHasVehicleUI then
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
end
self:RegisterEvent("PLAYER_ENTERING_WORLD", "CheckVehicle")
self:RegisterEvent("CVAR_UPDATE", "CVarUpdate")
@ -349,10 +350,12 @@ end
function CastBar.prototype:CheckVehicle()
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
if UnitHasVehicleUI then
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
end
end
end
@ -394,7 +397,9 @@ end
function CastBar.prototype:CreateLagBar()
self.lagBar = self:BarFactory(self.lagBar, "LOW", "OVERLAY")
if self.lagBar == nil then
self.lagBar = self:BarFactory(self.lagBar, "LOW", "OVERLAY")
end
local r, g, b = self:GetColor("CastLag")
if (self.settings.backgroundToggle) then
@ -407,14 +412,13 @@ end
-- OVERRIDE
function CastBar.prototype:SpellCastSent(event, unit, castGuid, spellId)
CastBar.super.prototype.SpellCastSent(self, event, unit, castGuid, spellId)
function CastBar.prototype:SpellCastSent(event, unit, target, castGuid, spellId)
CastBar.super.prototype.SpellCastSent(self, event, unit, target, castGuid, spellId)
if (unit ~= self.unit) then return end
if IceHUD.WowVer < 70000 then
self.spellCastSent = GetTime()
end
self.sentSpell = castGuid
end
-- OVERRIDE
@ -428,30 +432,14 @@ end
-- OVERRIDE
function CastBar.prototype:SpellCastStart(event, unit, castGuid, spellId)
CastBar.super.prototype.SpellCastStart(self, event, unit, castGuid, spellId)
if (unit ~= self.unit) then return end
if (unit ~= self.unit or not spellId) then return end
if not self:IsVisible() or not self.actionDuration then
return
end
if self.sentSpell ~= castGuid then
self.spellCastSent = nil
end
local scale
if self.unit == "vehicle" then
scale = 0
elseif self.useFixedLatency then
scale = IceHUD:Clamp(self.fixedLatency / self.actionDuration, 0, 1)
else
local now = GetTime()
local lag = now - (self.spellCastSent or now)
scale = IceHUD:Clamp(lag / self.actionDuration, 0, 1)
end
self:SetBarCoord(self.lagBar, scale, true, true)
self.spellCastSent = nil
self:UpdateLagBar()
self.nextLagUpdate = GetTime() + (select(2, GetSpellCooldown(IceHUD.GlobalCoolDown:GetSpellId())) / 2)
end
@ -464,20 +452,43 @@ function CastBar.prototype:SpellCastChannelStart(event, unit)
return
end
self:UpdateLagBar(self.moduleSettings.reverseChannel)
end
-- OVERRIDE
function CastBar.prototype:SpellCastSucceeded(event, unit, castGuid, spellId)
CastBar.super.prototype.SpellCastSucceeded(self, event, unit, castGuid, spellId)
if not self.actionDuration or unit ~= self.unit then
return
end
self:UpdateLagBar()
self.nextLagUpdate = GetTime() + (select(2, GetSpellCooldown(IceHUD.GlobalCoolDown:GetSpellId())) / 2)
end
function CastBar.prototype:UpdateLagBar(isChannel)
local now = GetTime()
if self.nextLagUpdate and now <= self.nextLagUpdate then
return
end
local scale
if self.unit == "vehicle" then
scale = 0
elseif self.useFixedLatency then
scale = IceHUD:Clamp(self.fixedLatency / self.actionDuration, 0, 1)
else
local now = GetTime()
local lag = now - (self.spellCastSent or now)
scale = IceHUD:Clamp(lag / self.actionDuration, 0, 1)
if lag >= (self.actionDuration / 2) then
scale = 0
else
scale = IceHUD:Clamp(lag / self.actionDuration, 0, 1)
end
end
local top = not self.moduleSettings.reverseChannel
self:SetBarCoord(self.lagBar, scale, top, true)
self:SetBarCoord(self.lagBar, scale, not isChannel, true)
self.spellCastSent = nil
end

View File

@ -8,7 +8,7 @@ local AnticipationSpellId = 114015
ComboPoints.prototype.comboSize = 20
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
if IceHUD.WowVer >= 80000 then
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
end
@ -163,7 +163,7 @@ function ComboPoints.prototype:GetOptions()
order = 33.2
}
if IceHUD.WowVer < 70000 then
if IceHUD.WowVer < 70000 and not IceHUD.WowClassic then
opts["anticipation"] = {
type = "toggle",
name = L["Show Anticipation"],
@ -253,8 +253,8 @@ function ComboPoints.prototype:Enable(core)
ComboPoints.super.prototype.Enable(self, core)
self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateComboPoints")
if IceHUD.WowVer >= 30000 then
if IceHUD.WowVer < 70000 then
if IceHUD.WowVer >= 30000 or IceHUD.WowClassic then
if IceHUD.WowVer < 70000 and not IceHUD.WowClassic then
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
else
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateComboPoints")
@ -262,9 +262,11 @@ function ComboPoints.prototype:Enable(core)
self:RegisterEvent("UNIT_MAXPOWER", "UpdateMaxComboPoints")
end
end
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
if IceHUD.WowVer < 70000 then
if UnitHasVehicleUI then
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
end
if IceHUD.WowVer < 70000 and not IceHUD.WowClassic then
self:RegisterEvent("PLAYER_TALENT_UPDATE", "AddAnticipation")
self:AddAnticipation()
end
@ -450,22 +452,18 @@ function ComboPoints.prototype:UpdateComboPoints(...)
local points, anticipate, _
if IceHUD.IceCore:IsInConfigMode() then
points = self:GetMaxComboPoints()
elseif IceHUD.WowVer >= 30000 then
elseif IceHUD.WowVer >= 30000 or IceHUD.WowClassic then
-- Parnic: apparently some fights have combo points while the player is in a vehicle?
local isInVehicle = UnitHasVehicleUI("player")
local isInVehicle = UnitHasVehicleUI and UnitHasVehicleUI("player")
local checkUnit = isInVehicle and "vehicle" or "player"
if IceHUD.WowVer >= 60000 then
if IceHUD.WowVer >= 60000 or IceHUD.WowClassic then
points = UnitPower(checkUnit, SPELL_POWER_COMBO_POINTS)
else
points = GetComboPoints(checkUnit, "target")
end
if IceHUD.WowVer < 70000 then
if IceHUD.WowVer < 80000 then
_, _, _, anticipate = UnitAura("player", GetSpellInfo(AnticipationSpellId))
else
_, _, anticipate = UnitAura("player", GetSpellInfo(AnticipationSpellId))
end
if IceHUD.WowVer < 70000 and IceHUD.WowVer >= 50000 then
_, _, _, anticipate = UnitAura("player", GetSpellInfo(AnticipationSpellId))
else
anticipate = 0
end

View File

@ -2,7 +2,7 @@ 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
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
end
@ -70,14 +70,16 @@ function ComboPointsBar.prototype:Enable(core)
ComboPointsBar.super.prototype.Enable(self, core)
self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateComboPoints")
if IceHUD.WowVer >= 30000 then
if IceHUD.WowVer < 70000 then
if IceHUD.WowVer >= 30000 or IceHUD.WowClassic then
if IceHUD.WowVer < 70000 and not IceHUD.WowClassic then
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
else
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateComboPoints")
end
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
if UnitHasVehicleUI then
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
end
else
self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
end
@ -99,11 +101,11 @@ function ComboPointsBar.prototype:UpdateComboPoints(...)
local points
if IceHUD.IceCore:IsInConfigMode() then
points = UnitPowerMax("player", SPELL_POWER_COMBO_POINTS)
elseif IceHUD.WowVer >= 30000 then
elseif IceHUD.WowVer >= 30000 or IceHUD.WowClassic then
-- Parnic: apparently some fights have combo points while the player is in a vehicle?
local isInVehicle = UnitHasVehicleUI("player")
local isInVehicle = UnitHasVehicleUI and UnitHasVehicleUI("player")
local checkUnit = isInVehicle and "vehicle" or "player"
if IceHUD.WowVer >= 60000 then
if IceHUD.WowVer >= 60000 or IceHUD.WowClassic then
points = UnitPower(checkUnit, SPELL_POWER_COMBO_POINTS)
else
points = GetComboPoints(checkUnit, "target")

View File

@ -36,10 +36,12 @@ function IceCustomBar.prototype:Enable(core)
self:RegisterEvent("UNIT_AURA", "UpdateCustomBarEvent")
self:RegisterEvent("UNIT_PET", "UpdateCustomBarEvent")
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
self:RegisterEvent("PLAYER_PET_CHANGED", "UpdateCustomBarEvent")
end
self:RegisterEvent("PLAYER_FOCUS_CHANGED", "UpdateCustomBarEvent")
if FocusUnit then
self:RegisterEvent("PLAYER_FOCUS_CHANGED", "UpdateCustomBarEvent")
end
if self.unitClass == "SHAMAN" then
self:RegisterEvent("PLAYER_TOTEM_UPDATE", "UpdateTotems")
end
@ -169,8 +171,6 @@ function IceCustomBar.prototype:CreateBar()
if not self.barFrame.icon then
self.barFrame.icon = self.masterFrame:CreateTexture(nil, "LOW")
-- default texture so that 'config mode' can work without activating the bar first
self.barFrame.icon:SetTexture("Interface\\Icons\\Spell_Frost_Frost")
-- this cuts off the border around the buff icon
self.barFrame.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
self.barFrame.icon:SetDrawLayer("OVERLAY")
@ -635,7 +635,7 @@ end
-- 'Protected' methods --------------------------------------------------------
function IceCustomBar.prototype:GetAuraDuration(unitName, buffName)
if not unitName or not buffName then
if not unitName or not buffName or buffName == "" then
return nil
end
@ -667,7 +667,7 @@ function IceCustomBar.prototype:GetAuraDuration(unitName, buffName)
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
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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)
@ -697,7 +697,7 @@ function IceCustomBar.prototype:GetAuraDuration(unitName, buffName)
i = i + 1;
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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)
@ -776,6 +776,10 @@ function IceCustomBar.prototype:UpdateCustomBar(unit, fromUpdate)
end
if IceHUD.IceCore:IsInConfigMode() or self.moduleSettings.displayAuraIcon then
if IceHUD.IceCore:IsInConfigMode() and not self.barFrame.icon:GetTexture() then
self.barFrame.icon:SetTexture("Interface\\Icons\\Spell_Frost_Frost")
end
self.barFrame.icon:Show()
else
self.barFrame.icon:Hide()

View File

@ -132,8 +132,6 @@ function IceCustomCDBar.prototype:CreateBar()
if not self.barFrame.icon then
self.barFrame.icon = self.masterFrame:CreateTexture(nil, "LOW")
-- default texture so that 'config mode' can work without activating the bar first
self.barFrame.icon:SetTexture("Interface\\Icons\\Spell_Frost_Frost")
-- this cuts off the border around the buff icon
self.barFrame.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
self.barFrame.icon:SetDrawLayer("OVERLAY")
@ -675,6 +673,9 @@ function IceCustomCDBar.prototype:UpdateIcon()
end
if IceHUD.IceCore:IsInConfigMode() or self.moduleSettings.displayAuraIcon then
if not self.barFrame.icon:GetTexture() and IceHUD.IceCore:IsInConfigMode() then
self.barFrame.icon:SetTexture("Interface\\Icons\\Spell_Frost_Frost")
end
self.barFrame.icon:Show()
else
self.barFrame.icon:Hide()
@ -694,7 +695,10 @@ function IceCustomCDBar.prototype:UpdateItemUnitInventoryChanged(event, unit)
end
end
function IceCustomCDBar.prototype:UpdateCustomBarEvent()
function IceCustomCDBar.prototype:UpdateCustomBarEvent(event, unit)
if unit ~= self.unit then
return
end
if not self.moduleSettings.cooldownType or self.moduleSettings.cooldownType == COOLDOWN_TYPE_SPELL then
self:UpdateCustomBar()
end
@ -722,6 +726,8 @@ function IceCustomCDBar.prototype:UpdateCustomBar(fromUpdate)
else
self.cooldownEndTime = remaining + now
end
self:UpdateIcon()
end
if self.cooldownEndTime and self.cooldownEndTime >= now then
@ -796,7 +802,9 @@ function IceCustomCDBar.prototype:IsReady()
local checkSpell = self:GetSpellNameOrId(self.moduleSettings.cooldownToTrack)
if (IsUsableSpell(checkSpell)) then
if (not self.moduleSettings.bIgnoreRange and SpellHasRange(checkSpell)) or (self.moduleSettings.bOnlyShowWithTarget) then
if self.moduleSettings.bIgnoreRange and self.moduleSettings.bOnlyShowWithTarget then
is_ready = UnitExists("target") and 1 or nil
elseif (not self.moduleSettings.bIgnoreRange and SpellHasRange(checkSpell)) or (self.moduleSettings.bOnlyShowWithTarget) then
if (UnitExists("target") and (not SpellHasRange(checkSpell) or IsSpellInRange(checkSpell, "target") == 1))
or (not UnitExists("target") and not self.moduleSettings.bOnlyShowWithTarget and IsSpellInRange(checkSpell, "player")) then
is_ready = 1

View File

@ -278,7 +278,6 @@ function IceCustomCounterBar.prototype:CreateFrame()
if not self.barFrame.icon then
self.barFrame.icon = self.masterFrame:CreateTexture(nil, "LOW")
self.barFrame.icon:SetTexture(DefaultAuraIcon)
self.barFrame.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
self.barFrame.icon:SetDrawLayer("OVERLAY")
self.barFrame.icon:Hide()
@ -306,10 +305,6 @@ function IceCustomCounterBar.prototype:UpdateAuraIcon()
local auraIcon, _
_, _, auraIcon = GetSpellInfo(self.moduleSettings.auraName)
if auraIcon == nil then
auraIcon = "Interface\\Icons\\Spell_Frost_Frost"
end
self.barFrame.icon:SetTexture(auraIcon)
end
@ -319,6 +314,10 @@ function IceCustomCounterBar.prototype:UpdateCustomCount()
local percent = IceHUD:Clamp(1.0 * points / (max > 0 and max or 1), 0, 1)
if IceHUD.IceCore:IsInConfigMode() then
if not self.barFrame.icon:GetTexture() then
self.barFrame.icon:SetTexture(DefaultAuraIcon)
end
points = IceStackCounter_GetMaxCount(self)
percent = 1
self.barFrame.icon:Show()

View File

@ -26,4 +26,6 @@ function FocusAbsorb.prototype:MyUnregisterCustomEvents()
end
-- Load us up
IceHUD.FocusAbsorb = FocusAbsorb:new()
if UnitGetTotalAbsorbs ~= nil then
IceHUD.FocusAbsorb = FocusAbsorb:new()
end

View File

@ -23,4 +23,6 @@ end
-- 'Protected' methods --------------------------------------------------------
-- Load us up
IceHUD.FocusCC = FocusCC:new()
if FocusUnit then
IceHUD.FocusCC = FocusCC:new()
end

View File

@ -1,6 +1,12 @@
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
local FocusCast = IceCore_CreateClass(IceCastBar)
local UnitCastingInfo, UnitChannelInfo = UnitCastingInfo, UnitChannelInfo
if IceHUD.WowClassic then
UnitCastingInfo = CastingInfo
UnitChannelInfo = ChannelInfo
end
-- Constructor --
function FocusCast.prototype:init()
FocusCast.super.prototype.init(self, "FocusCast")
@ -112,4 +118,6 @@ end
-- Load us up
IceHUD.FocusCast = FocusCast:new()
if FocusUnit then
IceHUD.FocusCast = FocusCast:new()
end

View File

@ -471,4 +471,6 @@ function FocusHealth.prototype:HideBlizz()
end
-- Load us up
IceHUD.FocusHealth = FocusHealth:new()
if FocusUnit then
IceHUD.FocusHealth = FocusHealth:new()
end

View File

@ -4,7 +4,7 @@ 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
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_RAGE = Enum.PowerType.Rage
SPELL_POWER_FOCUS = Enum.PowerType.Focus
SPELL_POWER_ENERGY = Enum.PowerType.Energy
@ -136,4 +136,6 @@ end
-- Load us up
IceHUD.FocusMana = FocusMana:new()
if FocusUnit then
IceHUD.FocusMana = FocusMana:new()
end

View File

@ -16,4 +16,6 @@ function IceFocusThreat.prototype:GetDefaultSettings()
end
-- Load us up
IceHUD.IceFocusThreat = IceFocusThreat:new()
if FocusUnit then
IceHUD.IceFocusThreat = IceFocusThreat:new()
end

View File

@ -20,7 +20,7 @@ function GlobalCoolDown.prototype:Enable(core)
self.moduleSettings.inverse = "NORMAL"
end
self:RegisterEvent("UNIT_SPELLCAST_SENT","SpellCastSent")
self:RegisterEvent("CURRENT_SPELL_CAST_CHANGED", "SpellCastChanged")
--self:RegisterEvent("ACTIONBAR_UPDATE_COOLDOWN", "CooldownStateChanged")
self:RegisterEvent("UNIT_SPELLCAST_START","CooldownStateChanged")
@ -143,28 +143,16 @@ function GlobalCoolDown.prototype:IsFull(scale)
return false
end
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
function GlobalCoolDown.prototype:SpellCastChanged(event, cancelled)
self.spellCastSent = GetTime()
end
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
function GlobalCoolDown.prototype:SpellCastStop(event, unit, castGuid, spellId)
if unit ~= "player" or not spellId or not self.CurrSpellGuid or self.CurrSpellGuid ~= castGuid then
return
end
self.CurrSpellId = nil
self.CurrSpellGuid = nil
if event == "UNIT_SPELLCAST_INTERRUPTED" or event == "UNIT_SPELLCAST_FAILED" then
self.CurrLerpTime = self.moduleSettings.desiredLerpTime
@ -190,23 +178,19 @@ function GlobalCoolDown.prototype:GetSpellCastTime(spell)
end
end
function GlobalCoolDown.prototype:CooldownStateChanged(event, unit, spell, one, two, spellId)
if IceHUD.WowVer >= 80000 then
spellId = one
end
function GlobalCoolDown.prototype:CooldownStateChanged(event, unit, castGuid, spellId)
if unit ~= "player" or not spellId then
return
end
-- Ignore all events unrelated to the spell currently being cast
if self.CurrSpellId and self.CurrSpellId ~= spellId then
if self.CurrSpellGuid and self.CurrSpellGuid ~= castGuid then
return
end
-- Update the current spell ID for all events indicating a spellcast is starting
if event ~= "UNIT_SPELLCAST_SUCCEEDED" then
self.CurrSpellId = spellId
self.CurrSpellGuid = castGuid
end
local start, dur = GetSpellCooldown(self.CDSpellId)

View File

@ -2,7 +2,7 @@ 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
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_CHI = Enum.PowerType.Chi
end

View File

@ -2,7 +2,7 @@ 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
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_HOLY_POWER = Enum.PowerType.HolyPower
end

View File

@ -42,18 +42,21 @@ function PetHealth.prototype:Enable(core)
PetHealth.super.prototype.Enable(self, core)
self:RegisterEvent("PET_UI_UPDATE", "CheckPet");
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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("PET_BAR_UPDATE_USABLE", "CheckPet");
self:RegisterEvent("UNIT_PET", "CheckPet");
self:RegisterEvent("UNIT_HEALTH", "UpdateEvent")
self:RegisterEvent("UNIT_HEALTH_FREQUENT", "UpdateEvent")
self:RegisterEvent("UNIT_MAXHEALTH", "UpdateEvent")
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
self:RegisterEvent("PLAYER_ENTERING_WORLD", "CheckVehicle")
if UnitHasVehicleUI then
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
end
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
self.frame:SetAttribute("unit", self.unit)
RegisterUnitWatch(self.frame)
@ -219,11 +222,15 @@ function PetHealth.prototype:ExitingVehicle(event, unit)
end
end
function PetHealth.prototype:CheckVehicle()
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
function PetHealth.prototype:EnteringWorld()
self:Update(self.unit)
if UnitHasVehicleUI then
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
end
end
end

View File

@ -5,7 +5,7 @@ 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
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_RAGE = Enum.PowerType.Rage
SPELL_POWER_FOCUS = Enum.PowerType.Focus
SPELL_POWER_ENERGY = Enum.PowerType.Energy
@ -62,15 +62,15 @@ function PetMana.prototype:Enable(core)
PetMana.super.prototype.Enable(self, core)
self:RegisterEvent("PET_UI_UPDATE", "CheckPet")
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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(IceHUD.WowVer < 80000 and not IceHUD.WowClassic and "PET_BAR_CHANGED" or "PET_BAR_UPDATE_USABLE", "CheckPet")
self:RegisterEvent("UNIT_PET", "CheckPet")
if IceHUD.WowVer >= 40000 then
if IceHUD.WowVer >= 40000 or IceHUD.WowClassic then
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
self:RegisterEvent("UNIT_MAXPOWER", "UpdateEvent")
end
else
@ -86,9 +86,11 @@ function PetMana.prototype:Enable(core)
self:RegisterEvent("UNIT_DISPLAYPOWER", "ManaType")
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
self:RegisterEvent("PLAYER_ENTERING_WORLD", "CheckVehicle")
if UnitHasVehicleUI then
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
end
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
self:CheckPet()
self:ManaType(nil, self.unit)
@ -239,11 +241,15 @@ function PetMana.prototype:ExitingVehicle(event, unit)
end
end
function PetMana.prototype:CheckVehicle()
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
function PetMana.prototype:EnteringWorld()
self:Update(self.unit)
if UnitHasVehicleUI then
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
end
end
end

View File

@ -19,4 +19,6 @@ function PlayerAbsorb.prototype:GetDefaultSettings()
end
-- Load us up
IceHUD.PlayerAbsorb = PlayerAbsorb:new()
if UnitGetTotalAbsorbs ~= nil then
IceHUD.PlayerAbsorb = PlayerAbsorb:new()
end

View File

@ -8,7 +8,7 @@ local _, unitClass = UnitClass("player")
local SPELL_POWER_MANA = SPELL_POWER_MANA
local SPELL_POWER_INSANITY = SPELL_POWER_INSANITY
if IceHUD.WowVer >= 80000 then
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_MANA = Enum.PowerType.Mana
SPELL_POWER_INSANITY = Enum.PowerType.Insanity
end

View File

@ -132,4 +132,6 @@ function IceHUDPlayerAlternatePower.prototype:HideBlizz()
end
-- Load us up
IceHUD.PlayerAlternatePower = IceHUDPlayerAlternatePower:new()
if ALTERNATE_POWER_INDEX then
IceHUD.PlayerAlternatePower = IceHUDPlayerAlternatePower:new()
end

View File

@ -68,6 +68,7 @@ function PlayerHealth.prototype:Enable(core)
PlayerHealth.super.prototype.Enable(self, core)
self:RegisterEvent("UNIT_HEALTH", "UpdateEvent")
self:RegisterEvent("UNIT_HEALTH_FREQUENT", "UpdateEvent")
self:RegisterEvent("UNIT_MAXHEALTH", "UpdateEvent")
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
@ -78,14 +79,16 @@ function PlayerHealth.prototype:Enable(core)
self:RegisterEvent("PLAYER_REGEN_DISABLED", "CheckCombat")
self:RegisterEvent("PARTY_LEADER_CHANGED", "CheckLeader")
if IceHUD.WowVer >= 50000 then
if IceHUD.WowVer >= 50000 or IceHUD.WowClassic then
self:RegisterEvent("GROUP_ROSTER_UPDATE", "CheckLeader")
else
self:RegisterEvent("PARTY_MEMBERS_CHANGED", "CheckLeader")
end
self:RegisterEvent("LFG_PROPOSAL_UPDATE", "CheckPartyRole")
self:RegisterEvent("LFG_PROPOSAL_FAILED", "CheckPartyRole")
self:RegisterEvent("LFG_ROLE_UPDATE", "CheckPartyRole")
if GetLFGProposal then
self:RegisterEvent("LFG_PROPOSAL_UPDATE", "CheckPartyRole")
self:RegisterEvent("LFG_PROPOSAL_FAILED", "CheckPartyRole")
self:RegisterEvent("LFG_ROLE_UPDATE", "CheckPartyRole")
end
--self:RegisterEvent("PARTY_MEMBERS_CHANGED", "CheckPartyFrameStatus")
@ -95,8 +98,10 @@ function PlayerHealth.prototype:Enable(core)
self:RegisterEvent("PLAYER_FLAGS_CHANGED", "CheckPvP")
self:RegisterEvent("UNIT_FACTION", "CheckPvP")
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
if UnitHasVehicleUI then
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
end
if IceHUD.WowVer < 40000 then
HealComm = LibStub("LibHealComm-4.0", true)
@ -111,7 +116,9 @@ function PlayerHealth.prototype:Enable(core)
self:RegisterEvent("UNIT_HEAL_PREDICTION", "IncomingHealPrediction")
end
self:RegisterEvent("UNIT_ABSORB_AMOUNT_CHANGED", "UpdateAbsorbAmount")
if UnitGetTotalAbsorbs then
self:RegisterEvent("UNIT_ABSORB_AMOUNT_CHANGED", "UpdateAbsorbAmount")
end
if (self.moduleSettings.hideBlizz) then
self:HideBlizz()
@ -994,10 +1001,12 @@ function PlayerHealth.prototype:EnteringWorld()
end
function PlayerHealth.prototype:CheckVehicle()
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
if UnitHasVehicleUI then
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
end
end
end
@ -1160,7 +1169,7 @@ end
function PlayerHealth.prototype:CheckLeader()
local isLeader
if IceHUD.WowVer >= 50000 then
if UnitIsGroupLeader then
isLeader = UnitIsGroupLeader("player")
else
isLeader = IsPartyLeader()

View File

@ -13,7 +13,7 @@ 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
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_MANA = Enum.PowerType.Mana
SPELL_POWER_RAGE = Enum.PowerType.Rage
SPELL_POWER_FOCUS = Enum.PowerType.Focus
@ -153,9 +153,9 @@ function PlayerMana.prototype:Enable(core)
self:CreateTickerFrame()
if IceHUD.WowVer >= 40000 then
if IceHUD.WowVer >= 40000 or IceHUD.WowClassic then
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
self:RegisterEvent("UNIT_MAXPOWER", "UpdateEvent")
end
else
@ -170,8 +170,10 @@ function PlayerMana.prototype:Enable(core)
self:RegisterEvent("UNIT_RUNIC_POWER", "UpdateEvent")
end
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
if UnitHasVehicleUI then
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
end
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
if not self.CustomOnUpdate then
@ -191,10 +193,12 @@ function PlayerMana.prototype:EnteringWorld()
end
function PlayerMana.prototype:CheckVehicle()
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
if UnitHasVehicleUI then
if UnitHasVehicleUI("player") then
self:EnteringVehicle(nil, "player", true)
else
self:ExitingVehicle(nil, "player")
end
end
end
@ -296,6 +300,14 @@ function PlayerMana.prototype:TreatEmptyAsFull()
or self.manaType == SPELL_POWER_FURY or self.manaType == SPELL_POWER_PAIN or self.manaType == SPELL_POWER_MAELSTROM))
end
function PlayerMana.prototype:IsFull(scale)
if IceHUD.WowVer >= 80000 and self.manaType == SPELL_POWER_LUNAR_POWER and IsPlayerSpell(202430) then
return scale - 0.5 >= 0
end
return PlayerMana.super.prototype.IsFull(self, scale)
end
function PlayerMana.prototype:UpdateEvent(event, unit, powertype)
self:Update(unit, powertype)
end

View File

@ -56,7 +56,7 @@ do
return
end
self.current = select(IceHUD.WowVer < 80000 and 15 or 14, UnitAura(self.unit, spellName)) or 0
self.current = select((IceHUD.WowVer < 80000 and not IceHUD.WowClassic) and 15 or 14, UnitAura(self.unit, spellName)) or 0
self:Update()
end

View File

@ -20,7 +20,7 @@ for _, v in ipairs(RtBBuffs) do
end
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
if IceHUD.WowVer >= 80000 then
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
end

View File

@ -4,7 +4,7 @@ local Runes = IceCore_CreateClass(IceElement)
local IceHUD = _G.IceHUD
local CooldownFrame_SetTimer = CooldownFrame_SetTimer
if IceHUD.WowVer >= 70000 then
if CooldownFrame_Set then
CooldownFrame_SetTimer = CooldownFrame_Set
end
@ -44,7 +44,7 @@ Runes.prototype.numRunes = 6
Runes.prototype.lastRuneState = {}
local SPELL_POWER_RUNES = SPELL_POWER_RUNES
if IceHUD.WowVer >= 80000 then
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_RUNES = Enum.PowerType.Runes
end
@ -559,13 +559,7 @@ function Runes.prototype:ShowBlizz()
RuneFrame:Show()
RuneFrame:GetScript("OnLoad")(RuneFrame)
RuneFrame:GetScript("OnEvent")(frame, "PLAYER_ENTERING_WORLD")
for i=1, self.numRunes do
local frame = _G["RuneButtonIndividual"..i]
if frame then
frame:GetScript("OnLoad")(frame)
end
end
RuneFrame:GetScript("OnEvent")(RuneFrame, "PLAYER_ENTERING_WORLD")
end
local function hook_playerframe()

View File

@ -38,7 +38,7 @@ local DemonologyCoords =
}
local SPELL_POWER_SOUL_SHARDS = SPELL_POWER_SOUL_SHARDS
if IceHUD.WowVer >= 80000 then
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_SOUL_SHARDS = Enum.PowerType.SoulShards
end
@ -67,7 +67,7 @@ function ShardCounter.prototype:Enable(core)
if IceHUD.WowVer >= 70000 then
self.numRunes = UnitPowerMax(self.unit, self.unitPower)
if GetSpecialization() == SPEC_WARLOCK_DESTRUCTION then
if IceHUD.WowVer >= 80000 or GetSpecialization() == SPEC_WARLOCK_DESTRUCTION then
self.shouldShowUnmodified = true
self.numericFormat = "%.1f"
self.round = floor

View File

@ -28,6 +28,11 @@ if IceHUD.WowVer >= 50000 then
baseTime = 12
gapPerComboPoint = 6
end
if IceHUD.WowClassic then
impSndBonusPerRank = 0.15
impSndTalentPage = 1
impSndTalentIdx = 6
end
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
if IceHUD.WowVer >= 80000 then
@ -55,7 +60,7 @@ function SliceAndDice.prototype:Enable(core)
SliceAndDice.super.prototype.Enable(self, core)
self:RegisterEvent("UNIT_AURA", "UpdateSliceAndDice")
if IceHUD.WowVer < 70000 then
if IceHUD.WowVer < 70000 and not IceHUD.WowClassic then
self:RegisterEvent("UNIT_COMBO_POINTS", "ComboPointsChanged")
else
self:RegisterEvent(IceHUD.UnitPowerEvent, "ComboPointsChanged")
@ -211,7 +216,7 @@ end
function SliceAndDice.prototype:GetBuffDuration(unitName, buffName)
local i = 1
local buff, _, texture, duration, endTime, remaining
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
buff, _, texture, _, _, duration, endTime = UnitBuff(unitName, i)
else
buff, texture, _, _, duration, endTime = UnitBuff(unitName, i)
@ -227,7 +232,7 @@ function SliceAndDice.prototype:GetBuffDuration(unitName, buffName)
i = i + 1;
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
buff, _, texture, _, _, duration, endTime = UnitBuff(unitName, i)
else
buff, texture, _, _, duration, endTime = UnitBuff(unitName, i)
@ -248,7 +253,7 @@ function SliceAndDice.prototype:MyOnUpdate()
end
local function SNDGetComboPoints(unit)
if IceHUD.WowVer >= 60000 then
if IceHUD.WowVer >= 60000 or IceHUD.WowClassic then
return UnitPower(unit, SPELL_POWER_COMBO_POINTS)
elseif IceHUD.WowVer >= 30000 then
return GetComboPoints(unit, "target")
@ -280,7 +285,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, IceHUD.WowVer < 80000 and "Ability_Rogue_SliceDice" or 132306)
sndDuration, remaining = self:GetBuffDuration(self.unit, (IceHUD.WowVer < 80000 and not IceHUD.WowClassic) and "Ability_Rogue_SliceDice" or 132306)
if not remaining then
sndEndTime = 0
@ -404,8 +409,10 @@ function SliceAndDice.prototype:GetMaxBuffTime(numComboPoints)
end
local rank = 0
local _
_, _, _, _, rank = GetTalentInfo(impSndTalentPage, impSndTalentIdx)
if GetTalentInfo then
local _
_, _, _, _, rank = GetTalentInfo(impSndTalentPage, impSndTalentIdx)
end
maxduration = maxduration * (1 + (rank * impSndBonusPerRank))
end
@ -466,6 +473,9 @@ function SliceAndDice.prototype:HasNineTailedBonus()
end
function SliceAndDice.prototype:HasGlyphBonus()
if not GetNumGlyphSockets then
return false
end
for i=1,GetNumGlyphSockets() do
local enabled, _, _, spell = GetGlyphSocketInfo(i)

View File

@ -166,7 +166,7 @@ end
function StaggerBar.prototype:GetDebuffInfo()
if IceHUD.WowVer >= 70000 then
self.amount = UnitStagger(self.unit)
self.amount = UnitStagger(self.unit) or 0
self.staggerLevel = 1
local healthMax = UnitHealthMax(self.unit)
@ -189,8 +189,8 @@ function StaggerBar.prototype:GetDebuffInfo()
if debuffID == LightID or debuffID == ModerateID or debuffID == HeavyID then
local spellName = UnitDebuff(self.unit, i)
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"))
duration = select((IceHUD.WowVer < 80000 and not IceHUD.WowClassic) and 6 or 5, UnitAura(self.unit, spellName, "", "HARMFUL"))
amount = select((IceHUD.WowVer < 80000 and not IceHUD.WowClassic) and 15 or 14, UnitAura(self.unit, spellName, "", "HARMFUL"))
staggerLevel = (debuffID == LightID) and 1 or (debuffID == ModerateID) and 2 or 3
break

View File

@ -53,6 +53,8 @@ local StunCCList = {
105593,
-- Remorseless Winter
115001,
-- Between the Eyes
199804,
}
local IncapacitateCCList = {
@ -78,6 +80,14 @@ local IncapacitateCCList = {
28271,
-- Polymorph: Penguin
59634,
-- Polymorph: Monkey
161354,
-- Polymorph: Polar Bear Cub
120137,
-- Polymorph: Porcupine
120140,
-- Polymorph: Direhorn
162625,
-- Hibernate
2637,
-- Freezing Trap Effect
@ -113,6 +123,16 @@ local FearCCList = {
5246,
-- Hex
51514,
-- Hex: Compy
210873,
-- Hex: Wicker Mongrel
277784,
-- Hex: Zandalari Tendonripper
277778,
-- Hex: Spider
211004,
-- Hex: Skeletal Hatchling
269352,
-- Scare Beast
1513,
}
@ -316,7 +336,7 @@ end
function TargetCC.prototype:GetMaxDebuffDuration(unitName, debuffNames)
local i = 1
local debuff, rank, texture, count, debuffType, duration, endTime, unitCaster, _, _, spellId
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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")
@ -340,7 +360,7 @@ function TargetCC.prototype:GetMaxDebuffDuration(unitName, debuffNames)
i = i + 1;
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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")

View File

@ -3,6 +3,12 @@ local TargetCast = IceCore_CreateClass(IceCastBar)
TargetCast.prototype.notInterruptible = false
local UnitCastingInfo, UnitChannelInfo = UnitCastingInfo, UnitChannelInfo
if IceHUD.WowClassic then
UnitCastingInfo = CastingInfo
UnitChannelInfo = ChannelInfo
end
-- Constructor --
function TargetCast.prototype:init()
TargetCast.super.prototype.init(self, "TargetCast")
@ -15,8 +21,10 @@ end
function TargetCast.prototype:Enable(core)
TargetCast.super.prototype.Enable(self, core)
self:RegisterEvent("UNIT_SPELLCAST_INTERRUPTIBLE", "SpellCastInterruptible")
self:RegisterEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "SpellCastNotInterruptible")
if IceHUD.WowVer >= 30200 then
self:RegisterEvent("UNIT_SPELLCAST_INTERRUPTIBLE", "SpellCastInterruptible")
self:RegisterEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "SpellCastNotInterruptible")
end
end
@ -83,7 +91,7 @@ function TargetCast.prototype:TargetChanged(unit)
end
local spell = UnitCastingInfo(self.unit)
local notInterruptible = select(IceHUD.WowVer < 80000 and 9 or 8, UnitCastingInfo(self.unit))
local notInterruptible = select((IceHUD.WowVer < 80000 and not IceHUD.WowClassic) and 9 or 8, UnitCastingInfo(self.unit))
if spell then
self.notInterruptible = notInterruptibleCast
self:StartBar(IceCastBar.Actions.Cast)
@ -91,7 +99,7 @@ function TargetCast.prototype:TargetChanged(unit)
end
local channel = UnitChannelInfo(self.unit)
notInterruptible = select(IceHUD.WowVer < 80000 and 8 or 7, UnitChannelInfo(self.unit))
notInterruptible = select((IceHUD.WowVer < 80000 and not IceHUD.WowClassic) and 8 or 7, UnitChannelInfo(self.unit))
if channel then
self.notInterruptible = notInterruptibleChannel
self:StartBar(IceCastBar.Actions.Channel)

View File

@ -637,9 +637,11 @@ function IceTargetHealth.prototype:Enable(core)
self:RegisterEvent("UPDATE_FACTION", "CheckPvP")
self:RegisterEvent("PLAYER_FLAGS_CHANGED", "CheckPvP")
self:RegisterEvent("UNIT_FACTION", "CheckPvP")
self:RegisterEvent("LFG_PROPOSAL_UPDATE", "CheckPartyRole")
self:RegisterEvent("LFG_PROPOSAL_FAILED", "CheckPartyRole")
self:RegisterEvent("LFG_ROLE_UPDATE", "CheckPartyRole")
if GetLFGRoles then
self:RegisterEvent("LFG_PROPOSAL_UPDATE", "CheckPartyRole")
self:RegisterEvent("LFG_PROPOSAL_FAILED", "CheckPartyRole")
self:RegisterEvent("LFG_ROLE_UPDATE", "CheckPartyRole")
end
end
if (self.moduleSettings.hideBlizz) then

View File

@ -2,7 +2,7 @@ local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
IceTargetInfo = IceCore_CreateClass(IceElement)
local CooldownFrame_SetTimer = CooldownFrame_SetTimer
if IceHUD.WowVer >= 70000 then
if CooldownFrame_Set then
CooldownFrame_SetTimer = CooldownFrame_Set
end
@ -129,7 +129,7 @@ function IceTargetInfo.prototype:Enable(core)
self:RegisterEvent("UNIT_LEVEL", "TargetLevel")
self:RegisterEvent("UNIT_FLAGS", "TargetFlags")
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
self:RegisterEvent("UNIT_DYNAMIC_FLAGS", "TargetFlags")
end
@ -1410,7 +1410,7 @@ 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
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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 ""))
@ -1584,7 +1584,7 @@ function IceTargetInfo.prototype:TargetName(event, unit)
end
if IceHUD.WowVer < 50000 then
if UnitIsPartyLeader then
self.leader = UnitIsPartyLeader(self.unit) and " |cffcccc11Leader|r" or ""
else
self.leader = UnitIsGroupLeader(self.unit) and " |cffcccc11Leader|r" or ""
@ -1655,7 +1655,7 @@ end
function IceTargetInfo.prototype:TargetFlags(event, unit)
if (unit == self.unit or unit == internal) then
if IceHUD.WowVer < 70000 then
if UnitIsTapped then
self.tapped = UnitIsTapped(self.unit) and (not UnitIsTappedByPlayer(self.unit))
else
self.tapped = UnitIsTapDenied(self.unit)

View File

@ -147,7 +147,7 @@ end
function TargetInvuln.prototype:GetMaxbuffDuration(unitName, buffNames)
local i = 1
local buff, rank, texture, count, buffType, duration, endTime, unitCaster
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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")
@ -178,7 +178,7 @@ function TargetInvuln.prototype:GetMaxbuffDuration(unitName, buffNames)
i = i + 1;
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic 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")

View File

@ -14,7 +14,7 @@ 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
if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
SPELL_POWER_MANA = Enum.PowerType.Mana
SPELL_POWER_RAGE = Enum.PowerType.Rage
SPELL_POWER_FOCUS = Enum.PowerType.Focus
@ -66,9 +66,9 @@ function IceTargetMana.prototype:Enable(core)
IceTargetMana.super.prototype.Enable(self, core)
if self.registerEvents then
if IceHUD.WowVer >= 40000 then
if IceHUD.WowVer >= 40000 or IceHUD.WowClassic then
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateEvent")
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
self:RegisterEvent("UNIT_MAXPOWER", "UpdateEvent")
end
else

View File

@ -486,7 +486,7 @@ function TargetOfTarget.prototype:UpdateBuffs()
if (self.moduleSettings.showDebuffs) then
for i = 1, IceCore.BuffLimit do
local buffName, buffRank, buffTexture, buffApplications
if IceHUD.WowVer < 80000 then
if IceHUD.WowVer < 80000 and not IceHUD.WowClassic then
buffName, buffRank, buffTexture, buffApplications = UnitDebuff(self.unit, i)
else
buffName, buffTexture, buffApplications = UnitDebuff(self.unit, i)

View File

@ -4,6 +4,12 @@ TargetTargetCast.prototype.scheduledEvent = nil
local SelfDisplayModeOptions = {"Hide", "Normal"}
local UnitCastingInfo, UnitChannelInfo = UnitCastingInfo, UnitChannelInfo
if IceHUD.WowClassic then
UnitCastingInfo = CastingInfo
UnitChannelInfo = ChannelInfo
end
-- Constructor --
function TargetTargetCast.prototype:init()
TargetTargetCast.super.prototype.init(self, "TargetTargetCast")

View File

@ -16,7 +16,7 @@ IceThreat.prototype.scheduledEvent = nil
local GetNumPartyMembers, GetNumRaidMembers = GetNumPartyMembers, GetNumRaidMembers
local MAX_NUM_RAID_MEMBERS, MAX_NUM_PARTY_MEMBERS = MAX_NUM_RAID_MEMBERS, MAX_NUM_PARTY_MEMBERS
if IceHUD.WowVer >= 50000 then
if IceHUD.WowVer >= 50000 or IceHUD.WowClassic then
GetNumPartyMembers = GetNumGroupMembers
GetNumRaidMembers = GetNumGroupMembers
MAX_NUM_PARTY_MEMBERS = MAX_PARTY_MEMBERS
@ -468,4 +468,6 @@ function IceThreat.prototype:Show(bShouldShow)
end
-- Load us up
IceHUD.IceThreat = IceThreat:new()
if UnitDetailedThreatSituation then
IceHUD.IceThreat = IceThreat:new()
end

View File

@ -2,7 +2,7 @@ local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
local Totems = IceCore_CreateClass(IceElement)
local CooldownFrame_SetTimer = CooldownFrame_SetTimer
if IceHUD.WowVer >= 70000 then
if CooldownFrame_Set then
CooldownFrame_SetTimer = CooldownFrame_Set
end
@ -247,6 +247,7 @@ function Totems.prototype:UpdateTotem(event, totem, ...)
CooldownFrame_SetTimer(self.frame.graphical[totem].cd, startTime, duration, true)
self.frame.graphical[totem].cd:Show()
self.frame.graphical[totem]:Show()
self.frame.graphical[totem].name = name
else
self.frame.graphical[totem].cd:Hide()
self.frame.graphical[totem]:Hide()
@ -293,14 +294,18 @@ function Totems.prototype:GetAlphaAdd()
end
function Totems.prototype:ShowBlizz()
TotemFrame:Show()
TotemFrame:GetScript("OnLoad")(TotemFrame)
if TotemFrame then
TotemFrame:Show()
TotemFrame:GetScript("OnLoad")(TotemFrame)
end
end
function Totems.prototype:HideBlizz()
TotemFrame:Hide()
TotemFrame:UnregisterAllEvents()
if TotemFrame then
TotemFrame:Hide()
TotemFrame:UnregisterAllEvents()
end
end
function Totems.prototype:TargetChanged()
@ -354,7 +359,14 @@ function Totems.prototype:CreateTotem(i, name)
end
if not self.graphicalOnEnter then
self.graphicalOnEnter = function(button) GameTooltip:SetOwner(button); GameTooltip:SetTotem(button.slot) end
self.graphicalOnEnter = function(button)
GameTooltip:SetOwner(button)
if IceHUD.WowClassic then
GameTooltip:SetText(button.name)
else
GameTooltip:SetTotem(button.slot)
end
end
end
if not self.graphicalOnLeave then
self.graphicalOnLeave = function() GameTooltip:Hide() end
@ -396,6 +408,7 @@ function Totems.prototype:CreateTotem(i, name)
self.frame.graphical[i]:SetScript("OnLeave", nil)
end
self.frame.graphical[i].slot = i
self.frame.graphical[i].name = name
-- it looks like HookScript will continue to add handlers every time instead of replacing them like SetScript
if (bWasNewFrame) then