Compare commits

...

21 Commits

Author SHA1 Message Date
c425206748 Hopefully fix Vigor bar not showing up for some types of dragons
Specifically the Algarian Stormrider which has a different flavor of Vigor widget with customized colors. Apparently that's a whole different widget id. So now instead of checking for just the one vigor widget, we look up all widgets in the vigor set and use those to see if any vigor bar is showing.
2024-05-11 16:19:00 -05:00
57ddf62f73 Maybe stop castbar flashing sometimes 2024-05-11 15:42:54 -05:00
67cd7330ad Fix swapped DK runes in Cataclysm Classic
Fixes wowace ticket # 357
2024-05-11 15:29:52 -05:00
5c344cfac1 Update TOC 2024-05-09 00:04:36 -05:00
681e1f7b55 Update changelog 2024-04-30 23:25:35 -05:00
038ea16642 Support Cataclysm Classic 2024-04-30 23:16:42 -05:00
12c509b133 Update TOCs 2024-04-15 17:05:05 -05:00
2ae826654a Update LibRangeCheck version
Should fix taint issues as reported in https://www.wowace.com/projects/ice-hud/issues/353
2024-04-04 08:14:32 -05:00
acee3f4725 Fix error when loading in while mounted 2024-02-10 14:12:28 -06:00
2db6ddea57 Only hide Blizzard Vigor bar, not all fill-ups
This fixes the bar from the Digging event in 10.2.5 not showing. For real this time.
2024-02-10 10:47:04 -06:00
7e4a6ecab6 Attempt to fix other uses of PowerBarContainer
Apparently other things are now using the game's UIWidgetPowerBarContainerFrame but we're forcing it to be hidden due to a variety of factors. This attempts to restrict the Hide behavior of that frame to only when we're Dragonriding.
2024-01-21 12:36:15 -06:00
af33ab9781 Fix Vigor showing up sometimes when it shouldn't
Seems like UnitPowerMax for the AlternateMount power returns the actual max from PLAYER_ENTERING_WORLD until you mount and then dismount a Dragonriding mount. This wasn't previously the case.

Now we rely on the native widget info to tell us whether it believes it should be on or not.
2024-01-19 09:02:41 -06:00
c0262de622 Only use HasBuff method as a fallback
If we can check the power type, we should rely on only that.
2024-01-19 07:26:55 -06:00
cfa86813a7 Update TOC 2024-01-16 17:27:43 -06:00
c85c304eb6 Enable GCD, target target buffs in Classic 1.15+ 2024-01-07 14:49:42 -06:00
5321f7c64d Prevent error
Wowace ticket #351
2023-12-26 15:47:36 -06:00
6b2eb8d6e2 Update TOC for Classic-era 2023-12-10 18:58:52 -06:00
c72b67235d Enable TargetCastBar on Classic-era 1.15+ 2023-12-10 18:58:08 -06:00
140596b930 Fix Stagger bar error for 10.2.0
Fixes wowace ticket 348
2023-11-08 09:33:17 -06:00
6ddb056cdf Update TOC 2023-11-07 16:36:03 -06:00
8df330d3b4 Update TOC 2023-09-08 10:30:11 -05:00
15 changed files with 263 additions and 37 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,9 @@
## Interface: 100105
## Interface-Retail: 100105
## Interface-Classic: 11404
## Interface: 100207
## Interface-Retail: 100207
## Interface-Classic: 11502
## Interface-BCC: 20504
## Interface-Wrath: 30402
## 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

View File

@ -1,8 +1,9 @@
## Interface: 100105
## Interface-Retail: 100105
## Interface-Classic: 11404
## Interface: 100207
## Interface-Retail: 100207
## Interface-Classic: 11502
## Interface-BCC: 20504
## Interface-Wrath: 30402
## Interface-Wrath: 30403
## Interface-Cata: 40400
## Title: IceHUD |cff7fff7f-Options-|r
## Author: Parnic
## Version: @project-version@

View File

@ -1,5 +1,69 @@
# 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)
v1.14.28:
- Update TOC for Dragonflight to 10.2.0
v1.14.27:
- Update TOC for Dragonflight to 10.1.7
v1.14.26:
- Update TOC for classic-era to 1.14.4

View File

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

View File

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

View File

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

View File

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

View File

@ -17,6 +17,12 @@ local staggerIds = {LightID, ModerateID, HeavyID}
local MinLevel = 10
local STAGGER_YELLOW_TRANSITION, STAGGER_RED_TRANSITION = STAGGER_YELLOW_TRANSITION, STAGGER_RED_TRANSITION
if STAGGER_STATES then
STAGGER_YELLOW_TRANSITION = STAGGER_STATES.YELLOW.threshold
STAGGER_RED_TRANSITION = STAGGER_STATES.RED.threshold
end
StaggerBar.prototype.StaggerDuration = 0
StaggerBar.prototype.StaggerEndTime = 0

View File

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

View File

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

View File

@ -1,5 +1,69 @@
# 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)
v1.14.28:
- Update TOC for Dragonflight to 10.2.0
v1.14.27:
- Update TOC for Dragonflight to 10.1.7
v1.14.26:
- Update TOC for classic-era to 1.14.4