mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 14:50:13 -05:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
fa064dc866
|
|||
ee72cd1f33
|
|||
777cf01174
|
|||
97e81018c7
|
|||
b65909c570
|
|||
b33a82622f
|
|||
96a8fb2c3d
|
|||
6c623d6965
|
|||
d31872512e
|
|||
d424afdab1
|
|||
9500bdf393
|
|||
6325ed1ade
|
|||
a4c44a5809
|
|||
82db70969a
|
|||
47931922bd
|
5
.github/workflows/release.yml
vendored
5
.github/workflows/release.yml
vendored
@ -48,3 +48,8 @@ jobs:
|
||||
uses: BigWigsMods/packager@master
|
||||
with:
|
||||
args: -g bcc -w 0
|
||||
|
||||
- name: Package and release for Wrath
|
||||
uses: BigWigsMods/packager@master
|
||||
with:
|
||||
args: -g wrath -w 0
|
||||
|
191
IceHUD.lua
191
IceHUD.lua
@ -19,24 +19,40 @@ IceHUD.debugging = false
|
||||
IceHUD.WowVer = select(4, GetBuildInfo())
|
||||
IceHUD.WowMain = not WOW_PROJECT_ID or WOW_PROJECT_ID == WOW_PROJECT_MAINLINE
|
||||
IceHUD.WowClassic = WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_CLASSIC
|
||||
IceHUD.WowClassicBC = WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC
|
||||
IceHUD.WowClassicBC = false
|
||||
IceHUD.WowClassicWrath = false
|
||||
if WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC then
|
||||
if not LE_EXPANSION_LEVEL_CURRENT or LE_EXPANSION_LEVEL_CURRENT == LE_EXPANSION_BURNING_CRUSADE then
|
||||
IceHUD.WowClassicBC = true
|
||||
elseif LE_EXPANSION_LEVEL_CURRENT == LE_EXPANSION_WRATH_OF_THE_LICH_KING then
|
||||
IceHUD.WowClassicWrath = true
|
||||
end
|
||||
elseif WOW_PROJECT_WRATH_CLASSIC then
|
||||
IceHUD.WowClassicWrath = true
|
||||
end
|
||||
|
||||
-- compatibility/feature flags
|
||||
IceHUD.SpellFunctionsReturnRank = IceHUD.WowMain and IceHUD.WowVer < 80000
|
||||
IceHUD.EventExistsPlayerPetChanged = IceHUD.WowVer < 80000 and not IceHUD.WowClassic and not IceHUD.WowClassicBC
|
||||
IceHUD.EventExistsPetBarChanged = IceHUD.WowVer < 80000 and not IceHUD.WowClassic and not IceHUD.WowClassicBC
|
||||
IceHUD.EventExistsPlayerPetChanged = IceHUD.WowVer < 80000 and not IceHUD.WowClassic and not IceHUD.WowClassicBC and not IceHUD.WowClassicWrath
|
||||
IceHUD.EventExistsPetBarChanged = IceHUD.WowVer < 80000 and not IceHUD.WowClassic and not IceHUD.WowClassicBC and not IceHUD.WowClassicWrath
|
||||
IceHUD.EventExistsPlayerComboPoints = IceHUD.WowMain and IceHUD.WowVer < 30000
|
||||
IceHUD.EventExistsUnitComboPoints = IceHUD.WowMain and IceHUD.WowVer < 70000
|
||||
IceHUD.EventExistsUnitMaxPower = IceHUD.WowMain and IceHUD.WowVer < 80000
|
||||
IceHUD.EventExistsGroupRosterUpdate = IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC
|
||||
IceHUD.EventExistsGroupRosterUpdate = IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
|
||||
IceHUD.EventExistsUnitDynamicFlags = IceHUD.WowMain and IceHUD.WowVer < 80000
|
||||
IceHUD.PerPowerEventsExist = IceHUD.WowMain and IceHUD.WowVer < 40000
|
||||
IceHUD.PerTargetComboPoints = IceHUD.WowVer < 60000
|
||||
IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic
|
||||
IceHUD.CanTrackGCD = not IceHUD.WowClassic
|
||||
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
|
||||
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC
|
||||
IceHUD.ShouldUpdateTargetHealthEveryTick = IceHUD.WowClassicBC and GetCVarBool("predictedHealth")
|
||||
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
|
||||
IceHUD.ShouldUpdateTargetHealthEveryTick = (IceHUD.WowClassic or IceHUD.WowClassicBC) and GetCVarBool("predictedHealth")
|
||||
IceHUD.UsesUIPanelButtonTemplate = IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
|
||||
IceHUD.EventExistsSpellcastInterruptible = IceHUD.WowVer >= 30200 and not IceHUD.WowClassicWrath
|
||||
IceHUD.DeathKnightUnholyFrostRunesSwapped = IceHUD.WowVer < 70300 and not IceHUD.WowClassicWrath
|
||||
IceHUD.UseFallbackPaladinGCDSpell = IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
|
||||
IceHUD.SupportsHealPrediction = IceHUD.WowVer >= 40000 or IceHUD.WowClassicWrath
|
||||
IceHUD.UnitGroupRolesReturnsRoleString = IceHUD.WowVer >= 40000 or IceHUD.WowClassicWrath
|
||||
|
||||
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
|
||||
|
||||
@ -44,6 +60,8 @@ IceHUD.validBarList = { "Bar", "HiBar", "RoundBar", "ColorBar", "RivetBar", "Riv
|
||||
"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"}
|
||||
|
||||
IceHUD_UnitFrame_DropDown = CreateFrame("Frame", "IceHUD_UnitFrame_DropDown", UIParent, "UIDropDownMenuTemplate")
|
||||
|
||||
--@debug@
|
||||
IceHUD.optionsLoaded = true
|
||||
--@end-debug@
|
||||
@ -343,7 +361,7 @@ end
|
||||
-- blizzard interface options
|
||||
local blizOptionsPanel = CreateFrame("FRAME", "IceHUDConfigPanel", UIParent)
|
||||
blizOptionsPanel.name = "IceHUD"
|
||||
blizOptionsPanel.button = CreateFrame("BUTTON", "IceHUDOpenConfigButton", blizOptionsPanel, (IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC) and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
|
||||
blizOptionsPanel.button = CreateFrame("BUTTON", "IceHUDOpenConfigButton", blizOptionsPanel, IceHUD.UsesUIPanelButtonTemplate and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
|
||||
blizOptionsPanel.button:SetText("Open IceHUD configuration")
|
||||
blizOptionsPanel.button:SetWidth(240)
|
||||
blizOptionsPanel.button:SetHeight(30)
|
||||
@ -684,31 +702,69 @@ function IceHUD:GetIsInLFGGroup()
|
||||
return IsInLFGGroup
|
||||
end
|
||||
|
||||
local BLACKLISTED_UNIT_MENU_OPTIONS = {
|
||||
SET_FOCUS = "ICEHUD_SET_FOCUS",
|
||||
CLEAR_FOCUS = "ICEHUD_CLEAR_FOCUS",
|
||||
PET_DISMISS = "ICEHUD_PET_DISMISS",
|
||||
LOCK_FOCUS_FRAME = true,
|
||||
UNLOCK_FOCUS_FRAME = true,
|
||||
}
|
||||
local BLACKLISTED_UNIT_MENU_OPTIONS = {}
|
||||
if UnitPopupButtons then
|
||||
BLACKLISTED_UNIT_MENU_OPTIONS = {
|
||||
SET_FOCUS = "ICEHUD_SET_FOCUS",
|
||||
CLEAR_FOCUS = "ICEHUD_CLEAR_FOCUS",
|
||||
LOCK_FOCUS_FRAME = true,
|
||||
UNLOCK_FOCUS_FRAME = true,
|
||||
}
|
||||
if select(2, UnitClass("player")) ~= "WARLOCK" then
|
||||
BLACKLISTED_UNIT_MENU_OPTIONS[PET_DISMISS] = "ICEHUD_PET_DISMISS"
|
||||
end
|
||||
|
||||
UnitPopupButtons["ICEHUD_SET_FOCUS"] = {
|
||||
text = L["Type %s to set focus"]:format(SLASH_FOCUS1),
|
||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
||||
dist = 0,
|
||||
}
|
||||
UnitPopupButtons["ICEHUD_SET_FOCUS"] = {
|
||||
text = L["Type %s to set focus"]:format(SLASH_FOCUS1),
|
||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
||||
dist = 0,
|
||||
}
|
||||
|
||||
UnitPopupButtons["ICEHUD_CLEAR_FOCUS"] = {
|
||||
text = L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1),
|
||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
||||
dist = 0,
|
||||
}
|
||||
UnitPopupButtons["ICEHUD_CLEAR_FOCUS"] = {
|
||||
text = L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1),
|
||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click focus with custom unit frames."],
|
||||
dist = 0,
|
||||
}
|
||||
|
||||
UnitPopupButtons["ICEHUD_PET_DISMISS"] = {
|
||||
text = L["Use your Dismiss Pet spell to dismiss a pet"],
|
||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click dismiss a pet with custom unit frames."],
|
||||
dist = 0,
|
||||
}
|
||||
UnitPopupButtons["ICEHUD_PET_DISMISS"] = {
|
||||
text = L["Use your Dismiss Pet spell to dismiss a pet"],
|
||||
tooltipText = L["Blizzard currently does not provide a proper way to right-click dismiss a pet with custom unit frames."],
|
||||
dist = 0,
|
||||
}
|
||||
elseif UnitPopupSetFocusButtonMixin then
|
||||
IceHUDUnitPopupSetFocusButtonMixin = CreateFromMixins(UnitPopupButtonBaseMixin)
|
||||
function IceHUDUnitPopupSetFocusButtonMixin:GetText()
|
||||
return L["Type %s to set focus"]:format(SLASH_FOCUS1)
|
||||
end
|
||||
function IceHUDUnitPopupSetFocusButtonMixin:OnClick()
|
||||
end
|
||||
|
||||
IceHUDUnitPopupClearFocusButtonMixin = CreateFromMixins(UnitPopupButtonBaseMixin)
|
||||
function IceHUDUnitPopupClearFocusButtonMixin:GetText()
|
||||
return L["Type %s to clear focus"]:format(SLASH_CLEARFOCUS1)
|
||||
end
|
||||
function IceHUDUnitPopupClearFocusButtonMixin:OnClick()
|
||||
end
|
||||
|
||||
IceHUDUnitPopupPetDismissButtonMixin = CreateFromMixins(UnitPopupButtonBaseMixin)
|
||||
function IceHUDUnitPopupPetDismissButtonMixin:GetText()
|
||||
return L["Use your Dismiss Pet spell to dismiss a pet"]
|
||||
end
|
||||
function IceHUDUnitPopupPetDismissButtonMixin:CanShow()
|
||||
return UnitPopupPetDismissButtonMixin:CanShow()
|
||||
end
|
||||
function IceHUDUnitPopupPetDismissButtonMixin:OnClick()
|
||||
end
|
||||
|
||||
BLACKLISTED_UNIT_MENU_OPTIONS[SET_FOCUS] = IceHUDUnitPopupSetFocusButtonMixin
|
||||
BLACKLISTED_UNIT_MENU_OPTIONS[CLEAR_FOCUS] = IceHUDUnitPopupClearFocusButtonMixin
|
||||
BLACKLISTED_UNIT_MENU_OPTIONS[LOCK_FOCUS_FRAME] = true
|
||||
BLACKLISTED_UNIT_MENU_OPTIONS[UNLOCK_FOCUS_FRAME] = true
|
||||
|
||||
if select(2, UnitClass("player")) ~= "WARLOCK" then
|
||||
BLACKLISTED_UNIT_MENU_OPTIONS[PET_DISMISS] = IceHUDUnitPopupPetDismissButtonMixin
|
||||
end
|
||||
end
|
||||
|
||||
local munged_unit_menus = {}
|
||||
local function munge_unit_menu(menu)
|
||||
@ -729,11 +785,34 @@ local function munge_unit_menu(menu)
|
||||
end
|
||||
|
||||
local found = false
|
||||
local _, v
|
||||
for _, v in ipairs(data) do
|
||||
if BLACKLISTED_UNIT_MENU_OPTIONS[v] then
|
||||
found = true
|
||||
break
|
||||
if data.GetMenuButtons then
|
||||
local btns = data.GetMenuButtons()
|
||||
for i=1, #btns do
|
||||
if btns[i].IsMenu() then
|
||||
local subbtns = btns[i].GetMenuButtons()
|
||||
for j=1, #subbtns do
|
||||
if BLACKLISTED_UNIT_MENU_OPTIONS[subbtns[j]:GetText()] then
|
||||
found = true
|
||||
break
|
||||
end
|
||||
end
|
||||
else
|
||||
if BLACKLISTED_UNIT_MENU_OPTIONS[btns[i]:GetText()] then
|
||||
found = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if found then
|
||||
break
|
||||
end
|
||||
end
|
||||
else
|
||||
for _, v in ipairs(data) do
|
||||
if BLACKLISTED_UNIT_MENU_OPTIONS[v] then
|
||||
found = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -744,15 +823,42 @@ local function munge_unit_menu(menu)
|
||||
end
|
||||
|
||||
local new_data = {}
|
||||
for _, v in ipairs(data) do
|
||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[v]
|
||||
if v == "PET_DISMISS" and select(2, UnitClass("player")) == "WARLOCK" then
|
||||
blacklisted = false
|
||||
if data.GetMenuButtons then
|
||||
local new_buttons_list = {}
|
||||
local btns = data.GetMenuButtons()
|
||||
for i=1, #btns do
|
||||
if btns[i].IsMenu() then
|
||||
local subbtns = btns[i].GetMenuButtons()
|
||||
for j=1, #subbtns do
|
||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[subbtns[j]:GetText()]
|
||||
if not blacklisted then
|
||||
new_buttons_list[#new_buttons_list+1] = subbtns[j]
|
||||
elseif blacklisted ~= true then
|
||||
new_buttons_list[#new_buttons_list+1] = blacklisted
|
||||
end
|
||||
end
|
||||
else
|
||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[btns[i]:GetText()]
|
||||
if not blacklisted then
|
||||
new_buttons_list[#new_buttons_list+1] = btns[i]
|
||||
elseif blacklisted ~= true then
|
||||
new_buttons_list[#new_buttons_list+1] = blacklisted
|
||||
end
|
||||
end
|
||||
end
|
||||
if not blacklisted then
|
||||
new_data[#new_data+1] = v
|
||||
elseif blacklisted ~= true then
|
||||
new_data[#new_data+1] = blacklisted
|
||||
|
||||
new_data = data
|
||||
function new_data:GetMenuButtons()
|
||||
return new_buttons_list
|
||||
end
|
||||
else
|
||||
for _, v in ipairs(data) do
|
||||
local blacklisted = BLACKLISTED_UNIT_MENU_OPTIONS[v]
|
||||
if not blacklisted then
|
||||
new_data[#new_data+1] = v
|
||||
elseif blacklisted ~= true then
|
||||
new_data[#new_data+1] = blacklisted
|
||||
end
|
||||
end
|
||||
end
|
||||
local new_menu_name = "ICEHUD_" .. menu
|
||||
@ -798,7 +904,6 @@ local function figure_unit_menu(unit)
|
||||
return "PLAYER"
|
||||
end
|
||||
|
||||
IceHUD_UnitFrame_DropDown = CreateFrame("Frame", "IceHUD_UnitFrame_DropDown", UIParent, "UIDropDownMenuTemplate")
|
||||
if UnitPopupFrames then
|
||||
UnitPopupFrames[#UnitPopupFrames+1] = "IceHUD_UnitFrame_DropDown"
|
||||
end
|
||||
|
@ -1,7 +1,8 @@
|
||||
## Interface: 90200
|
||||
## Interface-Retail: 90200
|
||||
## Interface-Classic: 11402
|
||||
## Interface-BCC: 20503
|
||||
## Interface: 90207
|
||||
## Interface-Retail: 90207
|
||||
## Interface-Classic: 11403
|
||||
## Interface-BCC: 20504
|
||||
## Interface-Wrath: 30400
|
||||
## Author: Parnic, originally created by Iceroth
|
||||
## Name: IceHUD
|
||||
## Title: IceHUD |cff7fff7f-Ace3-|r
|
||||
|
@ -1,7 +1,8 @@
|
||||
## Interface: 90200
|
||||
## Interface-Retail: 90200
|
||||
## Interface-Classic: 11402
|
||||
## Interface-BCC: 20503
|
||||
## Interface: 90207
|
||||
## Interface-Retail: 90207
|
||||
## Interface-Classic: 11403
|
||||
## Interface-BCC: 20504
|
||||
## Interface-Wrath: 30400
|
||||
## Title: IceHUD |cff7fff7f-Options-|r
|
||||
## Author: Parnic
|
||||
## Version: @project-version@
|
||||
|
28
changelog.md
28
changelog.md
@ -1,5 +1,33 @@
|
||||
# Changelog
|
||||
|
||||
v1.13.16:
|
||||
|
||||
- Enabled Incoming Heal Prediction on Wrath-Classic.
|
||||
- Added detection for the full Wrath Classic build (not just the pre-patch).
|
||||
|
||||
v1.13.15:
|
||||
|
||||
- Updated TOC for Retail (9.2.7).
|
||||
- Added Wrath-Classic compatibility.
|
||||
|
||||
v1.13.14.3:
|
||||
|
||||
- Restored right-click menus on Info and Health bars when targeting other players.
|
||||
|
||||
v1.13.14.2:
|
||||
|
||||
- Restored right-click menus on Info and Health bars.
|
||||
|
||||
v1.13.14.1:
|
||||
|
||||
- Restored guard around array that doesn't exist on Classic clients.
|
||||
|
||||
v1.13.14:
|
||||
|
||||
- Fixed target health updating infrequently on Classic.
|
||||
- Fixed compatibility with WoW 9.2.5.
|
||||
- Updated TOC for all game flavors.
|
||||
|
||||
v1.13.13:
|
||||
|
||||
- Slight optimization of Zereth Mortis puzzle detection logic.
|
||||
|
@ -286,7 +286,7 @@ function GlobalCoolDown.prototype:GetSpellId()
|
||||
MONK=100780, -- jab
|
||||
}
|
||||
|
||||
if IceHUD.WowClassicBC or IceHUD.WowClassic then
|
||||
if IceHUD.UseFallbackPaladinGCDSpell then
|
||||
defaultSpells["PALADIN"] = 635
|
||||
end
|
||||
|
||||
|
@ -105,7 +105,7 @@ function PlayerHealth.prototype:Enable(core)
|
||||
self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle")
|
||||
end
|
||||
|
||||
if IceHUD.WowVer < 40000 then
|
||||
if not IceHUD.SupportsHealPrediction then
|
||||
HealComm = LibStub("LibHealComm-4.0", true)
|
||||
if HealComm then
|
||||
HealComm.RegisterCallback(self, "HealComm_HealStarted", function(event, casterGUID, spellID, spellType, endTime, ...) self:HealComm_HealEvent(event, casterGUID, spellID, spellType, endTime, ...) end)
|
||||
@ -169,7 +169,7 @@ function PlayerHealth.prototype:HealComm_ModifierChanged(event, guid)
|
||||
end
|
||||
|
||||
function PlayerHealth.prototype:IncomingHealPrediction(event, unit)
|
||||
if IceHUD.WowVer >= 40000 then
|
||||
if IceHUD.SupportsHealPrediction then
|
||||
if unit and unit ~= self.unit then
|
||||
return
|
||||
end
|
||||
@ -321,7 +321,7 @@ function PlayerHealth.prototype:GetOptions()
|
||||
self:Update()
|
||||
end,
|
||||
disabled = function()
|
||||
return not (self.moduleSettings.enabled and (IceHUD.WowVer >= 40000 or HealComm))
|
||||
return not (self.moduleSettings.enabled and (IceHUD.SupportsHealPrediction or HealComm))
|
||||
end,
|
||||
order = 43.6
|
||||
}
|
||||
@ -942,7 +942,7 @@ function PlayerHealth.prototype:CreateHealBar()
|
||||
|
||||
self:UpdateBar(1, "undef")
|
||||
|
||||
if not self.moduleSettings.showIncomingHeals or (IceHUD.WowVer < 40000 and not HealComm) then
|
||||
if not self.moduleSettings.showIncomingHeals or (not IceHUD.SupportsHealPrediction and not HealComm) then
|
||||
self.healFrame.bar:Hide()
|
||||
end
|
||||
end
|
||||
@ -1094,7 +1094,7 @@ function PlayerHealth.prototype:CheckPartyRole()
|
||||
proposalExists, id, typeID, subtypeID, name, texture, role, hasResponded, totalEncounters, completedEncounters, numMembers, isleader = GetLFGProposal()
|
||||
|
||||
local p = self.unit
|
||||
if IceHUD.WowVer < 40000 then
|
||||
if not IceHUD.UnitGroupRolesReturnsRoleString then
|
||||
isTank, isHeal, isDPS = UnitGroupRolesAssigned(p)
|
||||
else
|
||||
local grpRole = UnitGroupRolesAssigned(p)
|
||||
|
@ -203,7 +203,7 @@ function PlayerMana.prototype:CheckVehicle()
|
||||
end
|
||||
|
||||
function PlayerMana.prototype:ShouldUseTicker()
|
||||
return IceHUD.WowVer < 30000 or (IceHUD.WowVer < 70100 and not GetCVarBool("predictedPower"))
|
||||
return IceHUD.WowVer < 30000 or (IceHUD.WowVer < 70100 and not GetCVarBool("predictedPower") and not IceHUD.WowClassicWrath)
|
||||
end
|
||||
|
||||
function PlayerMana.prototype:SetupOnUpdate(enable)
|
||||
|
@ -9,15 +9,15 @@ if CooldownFrame_Set then
|
||||
end
|
||||
|
||||
local RUNETYPE_BLOOD = 1;
|
||||
local RUNETYPE_DEATH = IceHUD.WowVer < 70300 and 2 or 3;
|
||||
local RUNETYPE_FROST = IceHUD.WowVer < 70300 and 3 or 2;
|
||||
local RUNETYPE_DEATH = IceHUD.DeathKnightUnholyFrostRunesSwapped and 2 or 3;
|
||||
local RUNETYPE_FROST = IceHUD.DeathKnightUnholyFrostRunesSwapped 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 and IceHUD.WowVer < 70300 then
|
||||
if IceHUD.WowVer >= 70000 and IceHUD.WowVer < 70300 and RUNETYPE_LEGION then
|
||||
GetRuneType = function() return RUNETYPE_LEGION end
|
||||
elseif IceHUD.WowVer >= 70300 then
|
||||
elseif IceHUD.WowVer >= 70300 and GetSpecialization then
|
||||
GetRuneType = function() return GetSpecialization() end
|
||||
end
|
||||
|
||||
|
@ -42,6 +42,10 @@ elseif IceHUD.WowClassicBC then
|
||||
impSndBonusPerRank = 0.15
|
||||
impSndTalentPage = 2
|
||||
impSndTalentIdx = 4
|
||||
elseif IceHUD.WowClassicWrath then
|
||||
impSndBonusPerRank = 0.25
|
||||
impSndTalentPage = 2
|
||||
impSndTalentIdx = 23
|
||||
end
|
||||
|
||||
local SPELL_POWER_COMBO_POINTS = SPELL_POWER_COMBO_POINTS
|
||||
@ -290,7 +294,7 @@ local function HasSpell(id)
|
||||
end
|
||||
|
||||
local function ShouldHide()
|
||||
if IceHUD.WowVer >= 90000 or IceHUD.WowClassicBC then
|
||||
if IceHUD.WowVer >= 90000 or IceHUD.WowClassicBC or IceHUD.WowClassicWrath then
|
||||
return false
|
||||
end
|
||||
|
||||
|
@ -15,7 +15,7 @@ end
|
||||
function TargetCast.prototype:Enable(core)
|
||||
TargetCast.super.prototype.Enable(self, core)
|
||||
|
||||
if IceHUD.WowVer >= 30200 then
|
||||
if IceHUD.EventExistsSpellcastInterruptible then
|
||||
self:RegisterEvent("UNIT_SPELLCAST_INTERRUPTIBLE", "SpellCastInterruptible")
|
||||
self:RegisterEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "SpellCastNotInterruptible")
|
||||
end
|
||||
|
@ -1108,7 +1108,7 @@ function IceTargetHealth.prototype:CheckPartyRole()
|
||||
proposalExists, id, typeID, subtypeID, name, texture, role, hasResponded, totalEncounters, completedEncounters, numMembers, isleader = GetLFGProposal()
|
||||
|
||||
local p = self.unit
|
||||
if IceHUD.WowVer < 40000 then
|
||||
if not IceHUD.UnitGroupRolesReturnsRoleString then
|
||||
isTank, isHeal, isDPS = UnitGroupRolesAssigned(p)
|
||||
else
|
||||
local grpRole = UnitGroupRolesAssigned(p)
|
||||
|
@ -1,7 +1,6 @@
|
||||
# Changelog
|
||||
|
||||
v1.13.13:
|
||||
v1.13.16:
|
||||
|
||||
- Slight optimization of Zereth Mortis puzzle detection logic.
|
||||
- Fixed target health updating infrequently on Classic-BC.
|
||||
- Fixed reported error in TargetInvuln module.
|
||||
- Enabled Incoming Heal Prediction on Wrath-Classic.
|
||||
- Added detection for the full Wrath Classic build (not just the pre-patch).
|
||||
|
Reference in New Issue
Block a user