mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
c425206748 | |||
57ddf62f73 | |||
67cd7330ad | |||
5c344cfac1 | |||
681e1f7b55 | |||
038ea16642 | |||
12c509b133 | |||
2ae826654a | |||
acee3f4725
|
|||
2db6ddea57
|
|||
7e4a6ecab6
|
|||
af33ab9781
|
|||
c0262de622
|
|||
cfa86813a7
|
|||
c85c304eb6
|
|||
5321f7c64d
|
|||
6b2eb8d6e2
|
|||
c72b67235d
|
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
@ -56,3 +56,9 @@ jobs:
|
||||
uses: BigWigsMods/packager@v2
|
||||
with:
|
||||
args: -g wrath -w 0
|
||||
|
||||
- name: Package and release for Cataclysm
|
||||
uses: BigWigsMods/packager@v2
|
||||
with:
|
||||
args: -g cata -w 0
|
||||
|
8
.pkgmeta
8
.pkgmeta
@ -40,8 +40,8 @@ externals:
|
||||
libs/AceHook-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceHook-3.0
|
||||
tag: latest
|
||||
libs/LibRangeCheck-2.0:
|
||||
url: https://github.com/WeakAuras/LibRangeCheck-2.0/
|
||||
libs/LibRangeCheck-3.0:
|
||||
url: https://github.com/WeakAuras/LibRangeCheck-3.0/
|
||||
libs/LibSharedMedia-3.0:
|
||||
url: svn://svn.wowace.com/wow/libsharedmedia-3-0/mainline/trunk
|
||||
tag: latest
|
||||
@ -57,11 +57,11 @@ externals:
|
||||
optional-dependencies:
|
||||
- libdogtag-3-0
|
||||
- libdogtag-unit-3-0
|
||||
- librangecheck-2-0
|
||||
- librangecheck-3-0
|
||||
|
||||
move-folders:
|
||||
IceHUD/IceHUD_Options: IceHUD_Options
|
||||
IceHUD/libs/LibRangeCheck-2.0/LibRangeCheck-2.0: IceHUD/libs/LibRangeCheck-2.0
|
||||
IceHUD/libs/LibRangeCheck-3.0/LibRangeCheck-3.0: IceHUD/libs/LibRangeCheck-3.0
|
||||
|
||||
tools-used:
|
||||
- libdatabroker-1-1
|
||||
|
@ -361,7 +361,7 @@ function IceCastBar.prototype:MyOnUpdate()
|
||||
|
||||
local timeString = self.moduleSettings.showCastTime and string.format("%.1fs ", remainingTime) or ""
|
||||
local empowerString = self.NumStages ~= nil and (L["Stage %d"]):format(self:GetCurrentStage()) or ""
|
||||
local line1 = timeString .. self.actionMessage
|
||||
local line1 = timeString .. (self.actionMessage or "")
|
||||
if self.moduleSettings.empowerStageTextDisplay == "TOPLINE" then
|
||||
line1 = line1 .. " " .. empowerString
|
||||
end
|
||||
@ -470,6 +470,10 @@ function IceCastBar.prototype:GetCurrentCastingColor()
|
||||
end
|
||||
|
||||
function IceCastBar.prototype:FlashBar(color, alpha, text, textColor)
|
||||
if self.moduleSettings.flashInstants == "Never" then
|
||||
return
|
||||
end
|
||||
|
||||
if alpha then
|
||||
self.frame:SetAlpha(alpha)
|
||||
end
|
||||
|
13
IceHUD.lua
13
IceHUD.lua
@ -20,10 +20,12 @@ if GetClassicExpansionLevel then
|
||||
IceHUD.WowClassic = GetClassicExpansionLevel() == 0
|
||||
IceHUD.WowClassicBC = GetClassicExpansionLevel() == 1
|
||||
IceHUD.WowClassicWrath = GetClassicExpansionLevel() == 2
|
||||
IceHUD.WowClassicCataclysm = GetClassicExpansionLevel() == 3
|
||||
else
|
||||
IceHUD.WowClassic = WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_CLASSIC
|
||||
IceHUD.WowClassicBC = false
|
||||
IceHUD.WowClassicWrath = false
|
||||
IceHUD.WowClassicCataclysm = 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
|
||||
@ -32,10 +34,13 @@ else
|
||||
end
|
||||
elseif WOW_PROJECT_WRATH_CLASSIC and WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC then
|
||||
IceHUD.WowClassicWrath = true
|
||||
elseif WOW_PROJECT_CATACLYSM_CLASSIC and WOW_PROJECT_ID == WOW_PROJECT_CATACLYSM_CLASSIC then
|
||||
IceHUD.WowClassicCataclysm = true
|
||||
end
|
||||
end
|
||||
|
||||
-- compatibility/feature flags
|
||||
IceHUD.CanShowTargetCasting = not IceHUD.WowClassic or LibClassicCasterino or (IceHUD.WowClassic and IceHUD.WowVer >= 11500)
|
||||
IceHUD.GetPlayerAuraBySpellID = _G["C_UnitAuras"] and C_UnitAuras.GetPlayerAuraBySpellID
|
||||
IceHUD.SpellFunctionsReturnRank = IceHUD.WowMain and IceHUD.WowVer < 80000
|
||||
IceHUD.EventExistsPlayerPetChanged = IceHUD.WowMain and IceHUD.WowVer < 80000
|
||||
@ -48,14 +53,14 @@ IceHUD.EventExistsUnitDynamicFlags = IceHUD.WowMain and IceHUD.WowVer < 80000
|
||||
IceHUD.EventExistsUnitHealthFrequent = not IceHUD.WowMain or (IceHUD.WowVer >= 40000 and IceHUD.WowVer < 90000)
|
||||
IceHUD.PerPowerEventsExist = IceHUD.WowMain and IceHUD.WowVer < 40000
|
||||
IceHUD.PerTargetComboPoints = IceHUD.WowVer < 60000
|
||||
IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic
|
||||
IceHUD.CanTrackGCD = not IceHUD.WowClassic
|
||||
IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic or IceHUD.WowVer >= 11500
|
||||
IceHUD.CanTrackGCD = not IceHUD.WowClassic or IceHUD.WowVer >= 11500
|
||||
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
|
||||
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath
|
||||
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC or IceHUD.WowClassicWrath or IceHUD.WowClassicCataclysm
|
||||
IceHUD.ShouldUpdateTargetHealthEveryTick = (IceHUD.WowClassic or IceHUD.WowClassicBC) and GetCVarBool("predictedHealth")
|
||||
IceHUD.UsesUIPanelButtonTemplate = IceHUD.WowVer >= 50000 or not IceHUD.WowMain
|
||||
IceHUD.EventExistsSpellcastInterruptible = IceHUD.WowVer >= 30200 and not IceHUD.WowClassicWrath
|
||||
IceHUD.DeathKnightUnholyFrostRunesSwapped = IceHUD.WowVer < 70300 and not IceHUD.WowClassicWrath
|
||||
IceHUD.DeathKnightUnholyFrostRunesSwapped = IceHUD.WowVer < 70300 and not IceHUD.WowClassicWrath and not IceHUD.WowClassicCataclysm
|
||||
IceHUD.SupportsHealPrediction = IceHUD.WowVer >= 40000 or IceHUD.WowClassicWrath
|
||||
IceHUD.UnitGroupRolesReturnsRoleString = IceHUD.WowVer >= 40000 or IceHUD.WowClassicWrath
|
||||
IceHUD.ShellGameSpellID = 271571
|
||||
|
@ -1,8 +1,9 @@
|
||||
## Interface: 100200
|
||||
## Interface-Retail: 100200
|
||||
## Interface-Classic: 11404
|
||||
## Interface: 100207
|
||||
## Interface-Retail: 100207
|
||||
## Interface-Classic: 11502
|
||||
## Interface-BCC: 20504
|
||||
## Interface-Wrath: 30403
|
||||
## Interface-Cata: 40400
|
||||
## Author: Parnic, originally created by Iceroth
|
||||
## Name: IceHUD
|
||||
## Title: IceHUD |cff7fff7f-Ace3-|r
|
||||
@ -15,7 +16,7 @@
|
||||
#@end-non-debug@
|
||||
## SavedVariables: IceCoreDB
|
||||
## IconTexture: Interface\Icons\Spell_Frost_Frost
|
||||
## 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
|
||||
## OptionalDeps: Ace3, LibSharedMedia-3.0, LibDogTag-3.0, LibDogTag-Unit-3.0, LibRangeCheck-3.0, LibDualSpec-1.0, LibDBIcon-1.0, AceGUI-3.0-SharedMediaWidgets
|
||||
## X-Category: HUDs
|
||||
## X-Website: https://www.wowace.com/projects/ice-hud
|
||||
## X-Curse-Project-ID: 5394
|
||||
|
@ -1,8 +1,9 @@
|
||||
## Interface: 100200
|
||||
## Interface-Retail: 100200
|
||||
## Interface-Classic: 11404
|
||||
## Interface: 100207
|
||||
## Interface-Retail: 100207
|
||||
## Interface-Classic: 11502
|
||||
## Interface-BCC: 20504
|
||||
## Interface-Wrath: 30403
|
||||
## Interface-Cata: 40400
|
||||
## Title: IceHUD |cff7fff7f-Options-|r
|
||||
## Author: Parnic
|
||||
## Version: @project-version@
|
||||
|
52
changelog.md
52
changelog.md
@ -1,5 +1,57 @@
|
||||
# Changelog
|
||||
|
||||
v1.14.41:
|
||||
|
||||
- Fix swapped DK runes in Cataclysm Classic
|
||||
- Possible fix for castbar flashing sometimes when set to "Never"
|
||||
- Fix IceHUD Vigor bar not showing up for some types of dragons such as the Algarian Stormrider
|
||||
|
||||
v1.14.40:
|
||||
|
||||
- Update TOC for Dragonflight to 10.2.7
|
||||
|
||||
v1.14.39:
|
||||
|
||||
- Support Cataclysm Classic 4.4.0
|
||||
|
||||
v1.14.38:
|
||||
|
||||
- Update TOCs
|
||||
|
||||
v1.14.37:
|
||||
|
||||
- Update LibRangeCheck version to address taint issues (wowace ticket #353)
|
||||
|
||||
v1.14.36:
|
||||
|
||||
- Really fix IceHUD stomping on other uses of the PowerBarContainer such as the Digging bar for the Archive event.
|
||||
|
||||
v1.14.35:
|
||||
|
||||
- Fix IceHUD stomping on other uses of the PowerBarContainer such as the Digging bar for the Archive event.
|
||||
|
||||
v1.14.34:
|
||||
|
||||
- Fix Vigor showing up sometimes when it shouldn't.
|
||||
|
||||
v1.14.33:
|
||||
|
||||
- Update TOC for Dragonflight to 10.2.5
|
||||
|
||||
v1.14.32:
|
||||
|
||||
- Enable GlobalCoolDown module in Classic Era 1.15.0+
|
||||
- Enable tracking target buffs/debuffs in Classic Era 1.15.0+
|
||||
|
||||
v1.14.31:
|
||||
|
||||
- Fix nil concatenation error (wowace ticket #351)
|
||||
|
||||
v1.14.30:
|
||||
|
||||
- Update Classic-era TOC for 1.15.0
|
||||
- Enable TargetCastBar module on Classic-era 1.15+
|
||||
|
||||
v1.14.29:
|
||||
|
||||
- Fix Stagger bar error for 10.2.0 (wowace ticket #348)
|
||||
|
@ -14,7 +14,7 @@
|
||||
<Include file="libs\AceHook-3.0\AceHook-3.0.xml"/>
|
||||
<Include file="libs\LibDogTag-3.0\lib.xml"/>
|
||||
<Include file="libs\LibDogTag-Unit-3.0\lib.xml"/>
|
||||
<Script file="libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"/>
|
||||
<Script file="libs\LibRangeCheck-3.0\LibRangeCheck-3.0.lua"/>
|
||||
<Include file="libs\LibSharedMedia-3.0\lib.xml"/>
|
||||
<Include file="libs\AceGUI-3.0-SharedMediaWidgets\widget.xml"/>
|
||||
<Script file="LibDataBroker-1.1.lua"/>
|
||||
|
@ -11,7 +11,9 @@ local DragonridingBuffs = {
|
||||
}
|
||||
|
||||
local vigorWidgetSetID = 283
|
||||
local vigorWidgetID = 4460
|
||||
local vigorWidgetType = 24
|
||||
local defaultVigorWidgetID = 4460
|
||||
local vigorWidgetIDs = nil
|
||||
local knowsAlternateMountEnum = Enum and Enum.PowerType and Enum.PowerType.AlternateMount
|
||||
local unitPowerType = Enum and Enum.PowerType and Enum.PowerType.AlternateMount
|
||||
unitPowerType = unitPowerType or ALTERNATE_POWER_INDEX
|
||||
@ -38,6 +40,7 @@ function DragonridingVigor.prototype:Enable(core)
|
||||
end
|
||||
|
||||
DragonridingVigor.super.prototype.Enable(self, core)
|
||||
self:Show(false)
|
||||
|
||||
self:RegisterEvent("UNIT_AURA", "CheckShouldShow")
|
||||
self:RegisterEvent("UPDATE_UI_WIDGET", "UpdateVigorRecharge")
|
||||
@ -50,20 +53,45 @@ function DragonridingVigor.prototype:EnteringWorld()
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:CheckShouldShow(event, unit, info)
|
||||
if unit ~= "player" then
|
||||
if not vigorWidgetIDs or #vigorWidgetIDs == 0 then
|
||||
self:PopulateVigorWidgetIDs()
|
||||
end
|
||||
|
||||
if unit ~= "player" or not vigorWidgetIDs then
|
||||
return
|
||||
end
|
||||
|
||||
if knowsAlternateMountEnum and UnitPowerMax(self.unit, unitPowerType) > 0 then
|
||||
self:Show(true)
|
||||
elseif IceHUD:HasAnyBuff("player", DragonridingBuffs) then
|
||||
self:Show(true)
|
||||
else
|
||||
local shown = false
|
||||
for i=1,#vigorWidgetIDs do
|
||||
local info = C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo(vigorWidgetIDs[i])
|
||||
if info and info.shownState ~= 0 then
|
||||
shown = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not shown then
|
||||
self:Show(false)
|
||||
self.suppressHideBlizz = true
|
||||
if self.moduleSettings.hideBlizz then
|
||||
self:ShowBlizz()
|
||||
end
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
self:Show(true)
|
||||
|
||||
-- if knowsAlternateMountEnum and UnitPowerMax(self.unit, unitPowerType) > 0 then
|
||||
-- self:Show(true)
|
||||
-- elseif not knowsAlternateMountEnum and IceHUD:HasAnyBuff("player", DragonridingBuffs) then
|
||||
-- self:Show(true)
|
||||
-- else
|
||||
-- self:Show(false)
|
||||
-- if self.moduleSettings.hideBlizz then
|
||||
-- self:ShowBlizz()
|
||||
-- end
|
||||
-- end
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
@ -71,13 +99,49 @@ function DragonridingVigor.prototype:UpdateRunePower(event, arg1, arg2)
|
||||
DragonridingVigor.super.prototype.UpdateRunePower(self, event, arg1, arg2)
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:PopulateVigorWidgetIDs()
|
||||
local widgets = C_UIWidgetManager.GetAllWidgetsBySetID(vigorWidgetSetID)
|
||||
if not widgets then
|
||||
return
|
||||
end
|
||||
|
||||
for i=1,#widgets do
|
||||
if widgets[i].widgetType == vigorWidgetType then
|
||||
if not vigorWidgetIDs then
|
||||
vigorWidgetIDs = {}
|
||||
end
|
||||
|
||||
table.insert(vigorWidgetIDs, widgets[i].widgetID)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:UpdateVigorRecharge(event, widget)
|
||||
if not vigorWidgetIDs or #vigorWidgetIDs == 0 then
|
||||
self:PopulateVigorWidgetIDs()
|
||||
end
|
||||
if not vigorWidgetIDs or #vigorWidgetIDs == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
self.partialReady = nil
|
||||
self.partialReadyPercent = nil
|
||||
if event ~= "internal" and (not widget or widget.widgetSetID ~= vigorWidgetSetID) then
|
||||
return
|
||||
end
|
||||
|
||||
local widgetID = defaultVigorWidgetID
|
||||
if widget then
|
||||
widgetID = widget.widgetID
|
||||
end
|
||||
|
||||
local info = C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo(widgetID)
|
||||
if not info then
|
||||
return
|
||||
end
|
||||
|
||||
self.suppressHideBlizz = not info or info.shownState == 0
|
||||
|
||||
if event ~= "internal" then
|
||||
if self.moduleSettings.hideBlizz then
|
||||
self:HideBlizz()
|
||||
@ -86,11 +150,6 @@ function DragonridingVigor.prototype:UpdateVigorRecharge(event, widget)
|
||||
end
|
||||
end
|
||||
|
||||
local info = C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo(vigorWidgetID)
|
||||
if not info then
|
||||
return
|
||||
end
|
||||
|
||||
if info.numFullFrames == info.numTotalFrames then
|
||||
return
|
||||
end
|
||||
@ -150,11 +209,21 @@ function DragonridingVigor.prototype:GetPartialRuneAtlas(rune)
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:ShowBlizz()
|
||||
UIWidgetPowerBarContainerFrame:Show()
|
||||
local info = C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo(defaultVigorWidgetID)
|
||||
if not info or info.shownState == 0 then
|
||||
return
|
||||
end
|
||||
UIWidgetPowerBarContainerFrame.widgetFrames[defaultVigorWidgetID]:Show()
|
||||
end
|
||||
|
||||
function DragonridingVigor.prototype:HideBlizz()
|
||||
UIWidgetPowerBarContainerFrame:Hide()
|
||||
if not UIWidgetPowerBarContainerFrame.widgetFrames or not UIWidgetPowerBarContainerFrame.widgetFrames[defaultVigorWidgetID] then
|
||||
return
|
||||
end
|
||||
|
||||
if not self.suppressHideBlizz then
|
||||
UIWidgetPowerBarContainerFrame.widgetFrames[defaultVigorWidgetID]:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
-- Load us up
|
||||
|
@ -289,6 +289,12 @@ function GlobalCoolDown.prototype:GetSpellId()
|
||||
if not GetSpellInfo(defaultSpells["PALADIN"]) then
|
||||
defaultSpells["PALADIN"] = 635
|
||||
end
|
||||
if not GetSpellInfo(defaultSpells["MAGE"]) then
|
||||
defaultSpells["MAGE"] = 133
|
||||
end
|
||||
if not GetSpellInfo(defaultSpells["WARRIOR"]) then
|
||||
defaultSpells["WARRIOR"] = 6673
|
||||
end
|
||||
|
||||
local _, unitClass = UnitClass("player")
|
||||
return defaultSpells[unitClass]
|
||||
|
@ -11,7 +11,7 @@ function RangeCheck.prototype:init()
|
||||
|
||||
self.scalingEnabled = true
|
||||
|
||||
LibRange = LibStub("LibRangeCheck-2.0", true)
|
||||
LibRange = LibStub("LibRangeCheck-3.0", true)
|
||||
end
|
||||
|
||||
function RangeCheck.prototype:Enable(core)
|
||||
|
@ -204,6 +204,6 @@ end
|
||||
|
||||
-- Fulzamoth 2019-09-27 : load in Classic if LibClassicCasterino exists
|
||||
-- Load us up
|
||||
if not IceHUD.WowClassic or LibClassicCasterino then
|
||||
if IceHUD.CanShowTargetCasting then
|
||||
IceHUD.TargetCast = TargetCast:new()
|
||||
end
|
||||
|
@ -410,7 +410,7 @@ function TargetOfTarget.prototype:CreateToTFrame()
|
||||
|
||||
self.frame.totName:SetHeight(self.moduleSettings.moduleHeight)
|
||||
self.frame.totName:SetJustifyH("LEFT")
|
||||
self.frame.totName:SetJustifyV("CENTER")
|
||||
self.frame.totName:SetJustifyV("MIDDLE")
|
||||
|
||||
self.frame.totName:SetPoint("LEFT", self.frame, "LEFT", 0, -1)
|
||||
self.frame.totName:Show()
|
||||
@ -422,7 +422,7 @@ function TargetOfTarget.prototype:CreateToTHPFrame()
|
||||
|
||||
self.frame.totHealth:SetHeight(self.moduleSettings.moduleHeight)
|
||||
self.frame.totHealth:SetJustifyH("RIGHT")
|
||||
self.frame.totHealth:SetJustifyV("CENTER")
|
||||
self.frame.totHealth:SetJustifyV("MIDDLE")
|
||||
|
||||
self.frame.totHealth:SetPoint("RIGHT", self.frame, "RIGHT", 0, 0)
|
||||
self.frame.totHealth:Show()
|
||||
|
@ -1,5 +1,57 @@
|
||||
# Changelog
|
||||
|
||||
v1.14.41:
|
||||
|
||||
- Fix swapped DK runes in Cataclysm Classic
|
||||
- Possible fix for castbar flashing sometimes when set to "Never"
|
||||
- Fix IceHUD Vigor bar not showing up for some types of dragons such as the Algarian Stormrider
|
||||
|
||||
v1.14.40:
|
||||
|
||||
- Update TOC for Dragonflight to 10.2.7
|
||||
|
||||
v1.14.39:
|
||||
|
||||
- Support Cataclysm Classic 4.4.0
|
||||
|
||||
v1.14.38:
|
||||
|
||||
- Update TOCs
|
||||
|
||||
v1.14.37:
|
||||
|
||||
- Update LibRangeCheck version to address taint issues (wowace ticket #353)
|
||||
|
||||
v1.14.36:
|
||||
|
||||
- Really fix IceHUD stomping on other uses of the PowerBarContainer such as the Digging bar for the Archive event.
|
||||
|
||||
v1.14.35:
|
||||
|
||||
- Fix IceHUD stomping on other uses of the PowerBarContainer such as the Digging bar for the Archive event.
|
||||
|
||||
v1.14.34:
|
||||
|
||||
- Fix Vigor showing up sometimes when it shouldn't.
|
||||
|
||||
v1.14.33:
|
||||
|
||||
- Update TOC for Dragonflight to 10.2.5
|
||||
|
||||
v1.14.32:
|
||||
|
||||
- Enable GlobalCoolDown module in Classic Era 1.15.0+
|
||||
- Enable tracking target buffs/debuffs in Classic Era 1.15.0+
|
||||
|
||||
v1.14.31:
|
||||
|
||||
- Fix nil concatenation error (wowace ticket #351)
|
||||
|
||||
v1.14.30:
|
||||
|
||||
- Update Classic-era TOC for 1.15.0
|
||||
- Enable TargetCastBar module on Classic-era 1.15+
|
||||
|
||||
v1.14.29:
|
||||
|
||||
- Fix Stagger bar error for 10.2.0 (wowace ticket #348)
|
||||
|
Reference in New Issue
Block a user