mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
b467af21c0
|
|||
acc400de6e
|
|||
cac0deeb3c
|
|||
e951d40b12
|
|||
46883e355b
|
|||
004df582ef
|
|||
b8cf6e90b0
|
|||
d0c06c7b55
|
|||
8858459b10
|
|||
86e40187a2
|
|||
62bcc17ed6
|
|||
52c9b51e8d
|
|||
aa03a0b332
|
|||
3017b5dd18
|
|||
1f54f7d41d
|
|||
5b73d3b35f
|
|||
decb0017f3
|
|||
a32b75bf44
|
|||
6c506579be
|
|||
701fb1373f
|
|||
20d26d8f5e
|
|||
5a41d9a7f4
|
13
.github/workflows/release.yml
vendored
13
.github/workflows/release.yml
vendored
@ -23,6 +23,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
CF_API_KEY: ${{ secrets.CF_API_KEY }}
|
CF_API_KEY: ${{ secrets.CF_API_KEY }}
|
||||||
WOWI_API_TOKEN: ${{ secrets.WOWI_API_TOKEN }}
|
WOWI_API_TOKEN: ${{ secrets.WOWI_API_TOKEN }}
|
||||||
|
WAGO_API_TOKEN: ${{ secrets.WAGO_API_TOKEN }}
|
||||||
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }} # "GITHUB_TOKEN" is a secret always provided to the workflow
|
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }} # "GITHUB_TOKEN" is a secret always provided to the workflow
|
||||||
# for your own token, the name cannot start with "GITHUB_"
|
# for your own token, the name cannot start with "GITHUB_"
|
||||||
|
|
||||||
@ -31,25 +32,27 @@ jobs:
|
|||||||
|
|
||||||
# we first have to clone the AddOn project, this is a required step
|
# we first have to clone the AddOn project, this is a required step
|
||||||
- name: Clone project
|
- name: Clone project
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # gets git history for changelogs
|
||||||
|
|
||||||
# once cloned, we just run the GitHub Action for the packager project
|
# once cloned, we just run the GitHub Action for the packager project
|
||||||
- name: Package and release
|
- name: Package and release
|
||||||
uses: BigWigsMods/packager@master
|
uses: BigWigsMods/packager@v2
|
||||||
|
|
||||||
# another example where we supply additional arguments, this example is specifically to release
|
# another example where we supply additional arguments, this example is specifically to release
|
||||||
# for the Classic version of the game
|
# for the Classic version of the game
|
||||||
- name: Package and release for Classic
|
- name: Package and release for Classic
|
||||||
uses: BigWigsMods/packager@master
|
uses: BigWigsMods/packager@v2
|
||||||
with:
|
with:
|
||||||
args: -g classic -w 0
|
args: -g classic -w 0
|
||||||
|
|
||||||
- name: Package and release for TBC
|
- name: Package and release for TBC
|
||||||
uses: BigWigsMods/packager@master
|
uses: BigWigsMods/packager@v2
|
||||||
with:
|
with:
|
||||||
args: -g bcc -w 0
|
args: -g bcc -w 0
|
||||||
|
|
||||||
- name: Package and release for Wrath
|
- name: Package and release for Wrath
|
||||||
uses: BigWigsMods/packager@master
|
uses: BigWigsMods/packager@v2
|
||||||
with:
|
with:
|
||||||
args: -g wrath -w 0
|
args: -g wrath -w 0
|
||||||
|
9
.pkgmeta
9
.pkgmeta
@ -37,15 +37,18 @@ externals:
|
|||||||
libs/AceLocale-3.0:
|
libs/AceLocale-3.0:
|
||||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceLocale-3.0
|
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceLocale-3.0
|
||||||
tag: latest
|
tag: latest
|
||||||
|
libs/AceHook-3.0:
|
||||||
|
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceHook-3.0
|
||||||
|
tag: latest
|
||||||
libs/LibRangeCheck-2.0:
|
libs/LibRangeCheck-2.0:
|
||||||
url: https://github.com/WeakAuras/LibRangeCheck-2.0/
|
url: https://github.com/WeakAuras/LibRangeCheck-2.0/
|
||||||
libs/LibSharedMedia-3.0:
|
libs/LibSharedMedia-3.0:
|
||||||
url: svn://svn.wowace.com/wow/libsharedmedia-3-0/mainline/trunk
|
url: svn://svn.wowace.com/wow/libsharedmedia-3-0/mainline/trunk
|
||||||
tag: latest
|
tag: latest
|
||||||
libs/LibDogTag-3.0:
|
libs/LibDogTag-3.0:
|
||||||
url: git://git.wowace.com/wow/libdogtag-3-0/mainline.git
|
url: https://github.com/parnic/LibDogTag-3.0
|
||||||
libs/LibDogTag-Unit-3.0:
|
libs/LibDogTag-Unit-3.0:
|
||||||
url: git://git.wowace.com/wow/libdogtag-unit-3-0/mainline.git
|
url: https://github.com/parnic/LibDogTag-Unit-3.0
|
||||||
libs/LibDBIcon-1.0:
|
libs/LibDBIcon-1.0:
|
||||||
url: svn://svn.wowace.com/wow/libdbicon-1-0/mainline/trunk/LibDBIcon-1.0
|
url: svn://svn.wowace.com/wow/libdbicon-1-0/mainline/trunk/LibDBIcon-1.0
|
||||||
libs/LibDualSpec-1.0:
|
libs/LibDualSpec-1.0:
|
||||||
@ -65,6 +68,8 @@ tools-used:
|
|||||||
|
|
||||||
ignore:
|
ignore:
|
||||||
- readme.md
|
- readme.md
|
||||||
|
- FUNDING.yml
|
||||||
|
- this_version.md
|
||||||
|
|
||||||
manual-changelog: this_version.md
|
manual-changelog: this_version.md
|
||||||
|
|
||||||
|
3
FUNDING.yml
Normal file
3
FUNDING.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
github: parnic
|
||||||
|
ko_fi: parnic
|
||||||
|
custom: "https://www.paypal.me/parnic"
|
@ -284,6 +284,8 @@ function IceCore.prototype:Enable(userToggle)
|
|||||||
self.IceHUDFrame:RegisterEvent("ZONE_CHANGED")
|
self.IceHUDFrame:RegisterEvent("ZONE_CHANGED")
|
||||||
end
|
end
|
||||||
self.IceHUDFrame:RegisterEvent("UNIT_AURA")
|
self.IceHUDFrame:RegisterEvent("UNIT_AURA")
|
||||||
|
self.IceHUDFrame:RegisterEvent("PLAYER_REGEN_ENABLED", IceHUD.PLAYER_REGEN_ENABLED)
|
||||||
|
self.IceHUDFrame:RegisterEvent("PLAYER_REGEN_DISABLED", IceHUD.PLAYER_REGEN_DISABLED)
|
||||||
self.IceHUDFrame:SetScript("OnEvent", function(self, event, ...)
|
self.IceHUDFrame:SetScript("OnEvent", function(self, event, ...)
|
||||||
if (event == "PET_BATTLE_OPENING_START") then
|
if (event == "PET_BATTLE_OPENING_START") then
|
||||||
if IceHUD.IceCore.settings.bHideDuringPetBattles then
|
if IceHUD.IceCore.settings.bHideDuringPetBattles then
|
||||||
|
52
IceHUD.lua
52
IceHUD.lua
@ -1,5 +1,5 @@
|
|||||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
IceHUD = LibStub("AceAddon-3.0"):NewAddon("IceHUD", "AceConsole-3.0")
|
IceHUD = LibStub("AceAddon-3.0"):NewAddon("IceHUD", "AceConsole-3.0", "AceHook-3.0")
|
||||||
|
|
||||||
local IceHUD = IceHUD
|
local IceHUD = IceHUD
|
||||||
|
|
||||||
@ -963,3 +963,53 @@ UIDropDownMenu_Initialize(IceHUD_UnitFrame_DropDown, function()
|
|||||||
UnitPopup_ShowMenu(IceHUD_UnitFrame_DropDown, menu, IceHUD.DropdownUnit, nil, id)
|
UnitPopup_ShowMenu(IceHUD_UnitFrame_DropDown, menu, IceHUD.DropdownUnit, nil, id)
|
||||||
end
|
end
|
||||||
end, "MENU", nil)
|
end, "MENU", nil)
|
||||||
|
|
||||||
|
function IceHUD:OutOfCombatWrapper(func)
|
||||||
|
return function(...)
|
||||||
|
return IceHUD:RunOnLeaveCombat(func, ...)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
do
|
||||||
|
local in_combat = false
|
||||||
|
local in_lockdown = false
|
||||||
|
local actions_to_perform = {}
|
||||||
|
local pool = setmetatable({}, {__mode='k'})
|
||||||
|
function IceHUD:PLAYER_REGEN_ENABLED()
|
||||||
|
in_combat = false
|
||||||
|
in_lockdown = false
|
||||||
|
for i, t in ipairs(actions_to_perform) do
|
||||||
|
t.f(unpack(t, 1, t.n))
|
||||||
|
actions_to_perform[i] = nil
|
||||||
|
wipe(t)
|
||||||
|
pool[t] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function IceHUD:PLAYER_REGEN_DISABLED()
|
||||||
|
in_combat = true
|
||||||
|
end
|
||||||
|
function IceHUD:RunOnLeaveCombat(func, ...)
|
||||||
|
if not in_combat then
|
||||||
|
-- out of combat, call right away and return
|
||||||
|
func(...)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not in_lockdown then
|
||||||
|
in_lockdown = InCombatLockdown() -- still in PLAYER_REGEN_DISABLED
|
||||||
|
if not in_lockdown then
|
||||||
|
func(...)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local t = next(pool) or {}
|
||||||
|
pool[t] = nil
|
||||||
|
|
||||||
|
t.f = func
|
||||||
|
local n = select('#', ...)
|
||||||
|
t.n = n
|
||||||
|
for i = 1, n do
|
||||||
|
t[i] = select(i, ...)
|
||||||
|
end
|
||||||
|
actions_to_perform[#actions_to_perform+1] = t
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
## Interface: 90207
|
## Interface: 100000
|
||||||
## Interface-Retail: 90207
|
## Interface-Retail: 100000
|
||||||
## Interface-Classic: 11403
|
## Interface-Classic: 11403
|
||||||
## Interface-BCC: 20504
|
## Interface-BCC: 20504
|
||||||
## Interface-Wrath: 30400
|
## Interface-Wrath: 30400
|
||||||
@ -19,6 +19,7 @@
|
|||||||
## X-Website: https://www.wowace.com/projects/ice-hud
|
## X-Website: https://www.wowace.com/projects/ice-hud
|
||||||
## X-Curse-Project-ID: 5394
|
## X-Curse-Project-ID: 5394
|
||||||
## X-WoWI-ID: 8149
|
## X-WoWI-ID: 8149
|
||||||
|
## X-Wago-ID: 5bGolJN0
|
||||||
|
|
||||||
#@no-lib-strip@
|
#@no-lib-strip@
|
||||||
# Libraries
|
# Libraries
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
## Interface: 90207
|
## Interface: 100000
|
||||||
## Interface-Retail: 90207
|
## Interface-Retail: 100000
|
||||||
## Interface-Classic: 11403
|
## Interface-Classic: 11403
|
||||||
## Interface-BCC: 20504
|
## Interface-BCC: 20504
|
||||||
## Interface-Wrath: 30400
|
## Interface-Wrath: 30400
|
||||||
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2021 parnic
|
Copyright (c) 2021-2022 parnic
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
25
changelog.md
25
changelog.md
@ -1,5 +1,30 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
v1.14.2:
|
||||||
|
|
||||||
|
- Fix CC and Invuln modules not showing immediately when they should.
|
||||||
|
|
||||||
|
v1.14.1:
|
||||||
|
|
||||||
|
- Fix Hide Party feature on pre-10.0 clients.
|
||||||
|
|
||||||
|
v1.14.0:
|
||||||
|
|
||||||
|
- 10.0 compatibility
|
||||||
|
- Renamed Anima Charged combo points to Charged, and removed specific references to Kyrian.
|
||||||
|
|
||||||
|
v1.13.17.3:
|
||||||
|
|
||||||
|
- Packaged latest LibDogTag-Unit to work around crash in Wrath Classic client.
|
||||||
|
|
||||||
|
v1.13.17.2:
|
||||||
|
|
||||||
|
- Fixed Runes disappearing for Death Knights on Wrath Classic when using the dual spec feature.
|
||||||
|
|
||||||
|
v1.13.17.1:
|
||||||
|
|
||||||
|
- Fixed Priests hanging on login on the retail client.
|
||||||
|
|
||||||
v1.13.17:
|
v1.13.17:
|
||||||
|
|
||||||
- Internal maintainability updates. There are so many versions of the game now, updates need to be as easy and safe as possible.
|
- Internal maintainability updates. There are so many versions of the game now, updates need to be as easy and safe as possible.
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
<Include file="libs\AceConsole-3.0\AceConsole-3.0.xml"/>
|
<Include file="libs\AceConsole-3.0\AceConsole-3.0.xml"/>
|
||||||
<Include file="libs\AceAddon-3.0\AceAddon-3.0.xml"/>
|
<Include file="libs\AceAddon-3.0\AceAddon-3.0.xml"/>
|
||||||
<Include file="libs\AceLocale-3.0\AceLocale-3.0.xml"/>
|
<Include file="libs\AceLocale-3.0\AceLocale-3.0.xml"/>
|
||||||
|
<Include file="libs\AceHook-3.0\AceHook-3.0.xml"/>
|
||||||
<Include file="libs\LibDogTag-3.0\lib.xml"/>
|
<Include file="libs\LibDogTag-3.0\lib.xml"/>
|
||||||
<Include file="libs\LibDogTag-Unit-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-2.0\LibRangeCheck-2.0.lua"/>
|
||||||
|
@ -3,6 +3,11 @@ local CastBar = IceCore_CreateClass(IceCastBar)
|
|||||||
|
|
||||||
local IceHUD = _G.IceHUD
|
local IceHUD = _G.IceHUD
|
||||||
|
|
||||||
|
local CastingBarFrame = CastingBarFrame
|
||||||
|
if not CastingBarFrame then
|
||||||
|
CastingBarFrame = PlayerCastingBarFrame
|
||||||
|
end
|
||||||
|
|
||||||
CastBar.prototype.spellCastSent = nil
|
CastBar.prototype.spellCastSent = nil
|
||||||
|
|
||||||
-- Constructor --
|
-- Constructor --
|
||||||
|
@ -468,6 +468,9 @@ function IceClassPowerCounter.prototype:DisplayCounter()
|
|||||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateRunePower")
|
self:RegisterEvent(IceHUD.UnitPowerEvent, "UpdateRunePower")
|
||||||
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateRunePower")
|
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdateRunePower")
|
||||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
||||||
|
if IceHUD.EventExistsUnitMaxPower then
|
||||||
|
self:RegisterEvent("UNIT_MAXPOWER", "UpdateRunePower")
|
||||||
|
end
|
||||||
|
|
||||||
if (self.moduleSettings.hideBlizz) then
|
if (self.moduleSettings.hideBlizz) then
|
||||||
self:HideBlizz()
|
self:HideBlizz()
|
||||||
@ -497,8 +500,22 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
if IceHUD.WowVer >= 70000 then
|
if IceHUD.WowVer >= 70000 then
|
||||||
local numMax = UnitPowerMax(self.unit, self.unitPower)
|
local numMax = UnitPowerMax(self.unit, self.unitPower)
|
||||||
if numMax ~= self.numRunes then
|
if numMax ~= self.numRunes then
|
||||||
|
local oldMax = self.numRunes
|
||||||
self.numRunes = numMax
|
self.numRunes = numMax
|
||||||
self:CreateFrame()
|
self:CreateFrame()
|
||||||
|
self:SetDisplayMode()
|
||||||
|
|
||||||
|
for i=self.numRunes+1, oldMax do
|
||||||
|
if self.frame.graphical[i] then
|
||||||
|
self.frame.graphical[i]:Hide()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for i=oldMax+1, self.numRunes do
|
||||||
|
if self:GetRuneMode() ~= "Numeric" then
|
||||||
|
self.frame.graphical[i]:Show()
|
||||||
|
end
|
||||||
|
self:HideRune(i)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -567,11 +584,7 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if self.moduleSettings.inactiveDisplayMode == "Darkened" then
|
self:HideRune(i)
|
||||||
self.frame.graphical[i].rune:SetVertexColor(0, 0, 0)
|
|
||||||
elseif self.moduleSettings.inactiveDisplayMode == "Hidden" then
|
|
||||||
self.frame.graphical[i]:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -592,6 +605,19 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function IceClassPowerCounter.prototype:HideRune(i)
|
||||||
|
if self:GetRuneMode() == "Numeric" then
|
||||||
|
self.frame.graphical[i].Hide()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.moduleSettings.inactiveDisplayMode == "Darkened" then
|
||||||
|
self.frame.graphical[i].rune:SetVertexColor(0, 0, 0)
|
||||||
|
elseif self.moduleSettings.inactiveDisplayMode == "Hidden" then
|
||||||
|
self.frame.graphical[i]:Hide()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function IceClassPowerCounter.prototype:StartRunesFullAnimation()
|
function IceClassPowerCounter.prototype:StartRunesFullAnimation()
|
||||||
if not self.AnimUpdate then
|
if not self.AnimUpdate then
|
||||||
self.AnimUpdate = function() self:UpdateRuneAnimation() end
|
self.AnimUpdate = function() self:UpdateRuneAnimation() end
|
||||||
@ -717,6 +743,9 @@ function IceClassPowerCounter.prototype:CreateRuneFrame()
|
|||||||
for i=1, self.numRunes do
|
for i=1, self.numRunes do
|
||||||
self:CreateRune(i)
|
self:CreateRune(i)
|
||||||
end
|
end
|
||||||
|
for i=self.numRunes+1, #self.frame.graphical do
|
||||||
|
self.frame.graphical[i]:Hide()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceClassPowerCounter.prototype:CreateRune(i)
|
function IceClassPowerCounter.prototype:CreateRune(i)
|
||||||
@ -758,7 +787,13 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function IceClassPowerCounter.prototype:SetupNewRune(rune)
|
||||||
|
end
|
||||||
|
|
||||||
function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
||||||
|
if rune > #self.runeCoords then
|
||||||
|
self:SetupNewRune(rune)
|
||||||
|
end
|
||||||
if not rune or rune < 1 or rune > #self.runeCoords then
|
if not rune or rune < 1 or rune > #self.runeCoords then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -21,7 +21,7 @@ function ComboPoints.prototype:init()
|
|||||||
if AnticipationExists then
|
if AnticipationExists then
|
||||||
self:SetDefaultColor("AnticipationPoints", 1, 0, 1)
|
self:SetDefaultColor("AnticipationPoints", 1, 0, 1)
|
||||||
end
|
end
|
||||||
self:SetDefaultColor("KyrianAnimaComboPoint", 0.3137254901960784, 0.3725490196078432, 1)
|
self:SetDefaultColor("ChargedComboPoint", 0.3137254901960784, 0.3725490196078432, 1)
|
||||||
self.scalingEnabled = true
|
self.scalingEnabled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -222,16 +222,16 @@ function ComboPoints.prototype:GetOptions()
|
|||||||
order = 35
|
order = 35
|
||||||
}
|
}
|
||||||
|
|
||||||
opts["bShowAnimaCharged"] = {
|
opts["bShowCharged"] = {
|
||||||
type = 'toggle',
|
type = 'toggle',
|
||||||
width = 'double',
|
width = 'double',
|
||||||
name = L["Show Anima-charged points"],
|
name = L["Show Charged points"],
|
||||||
desc = L["Whether or not to color an anima-charged combo point a separate color. Set the KyrianAnimaComboPoint color to the color you would like it to be."],
|
desc = L["Whether or not to color a charged combo point a separate color. Set the ChargedComboPoint color to the color you would like it to be."],
|
||||||
get = function()
|
get = function()
|
||||||
return self.moduleSettings.bShowAnimaCharged
|
return self.moduleSettings.bShowCharged
|
||||||
end,
|
end,
|
||||||
set = function(info, v)
|
set = function(info, v)
|
||||||
self.moduleSettings.bShowAnimaCharged = v
|
self.moduleSettings.bShowCharged = v
|
||||||
self:UpdateChargedComboPoints()
|
self:UpdateChargedComboPoints()
|
||||||
end,
|
end,
|
||||||
disabled = function()
|
disabled = function()
|
||||||
@ -261,7 +261,7 @@ function ComboPoints.prototype:GetDefaultSettings()
|
|||||||
defaults["comboGap"] = 0
|
defaults["comboGap"] = 0
|
||||||
defaults["showAnticipation"] = true
|
defaults["showAnticipation"] = true
|
||||||
defaults["bShowWithNoTarget"] = true
|
defaults["bShowWithNoTarget"] = true
|
||||||
defaults["bShowAnimaCharged"] = true
|
defaults["bShowCharged"] = true
|
||||||
return defaults
|
return defaults
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -440,8 +440,8 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
g = g - ((1 / maxComboPoints)*i)
|
g = g - ((1 / maxComboPoints)*i)
|
||||||
end
|
end
|
||||||
|
|
||||||
if self.moduleSettings.bShowAnimaCharged and self:IsAnimaChargedPoint(i) then
|
if self.moduleSettings.bShowCharged and self:IsChargedPoint(i) then
|
||||||
self.frame.graphical[i].texture:SetVertexColor(self:GetColor("KyrianAnimaComboPoint"))
|
self.frame.graphical[i].texture:SetVertexColor(self:GetColor("ChargedComboPoint"))
|
||||||
else
|
else
|
||||||
self.frame.graphical[i].texture:SetVertexColor(r, g, b)
|
self.frame.graphical[i].texture:SetVertexColor(r, g, b)
|
||||||
end
|
end
|
||||||
@ -489,7 +489,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function ComboPoints.prototype:IsAnimaChargedPoint(point)
|
function ComboPoints.prototype:IsChargedPoint(point)
|
||||||
if not self.chargedPowerPoints then
|
if not self.chargedPowerPoints then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
@ -142,7 +142,9 @@ function ComboPointsBar.prototype:UpdateComboPoints(...)
|
|||||||
end
|
end
|
||||||
|
|
||||||
self:SetBottomText1(points or "0")
|
self:SetBottomText1(points or "0")
|
||||||
self:SetBottomText2(self.chargedPowerPointIndex)
|
if self.chargedPowerPointIndex then
|
||||||
|
self:SetBottomText2(self.chargedPowerPointIndex)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function ComboPointsBar.prototype:Update()
|
function ComboPointsBar.prototype:Update()
|
||||||
|
@ -10,6 +10,7 @@ PlayerHealth.prototype.absorbAmount = 0
|
|||||||
local configMode = false
|
local configMode = false
|
||||||
local HealComm
|
local HealComm
|
||||||
local incomingHealAmt = 0
|
local incomingHealAmt = 0
|
||||||
|
local groupEvent = IceHUD.EventExistsGroupRosterUpdate and "GROUP_ROSTER_UPDATE" or "PARTY_MEMBERS_CHANGED"
|
||||||
|
|
||||||
-- Constructor --
|
-- Constructor --
|
||||||
function PlayerHealth.prototype:init()
|
function PlayerHealth.prototype:init()
|
||||||
@ -81,11 +82,7 @@ function PlayerHealth.prototype:Enable(core)
|
|||||||
self:RegisterEvent("PLAYER_REGEN_DISABLED", "CheckCombat")
|
self:RegisterEvent("PLAYER_REGEN_DISABLED", "CheckCombat")
|
||||||
|
|
||||||
self:RegisterEvent("PARTY_LEADER_CHANGED", "CheckLeader")
|
self:RegisterEvent("PARTY_LEADER_CHANGED", "CheckLeader")
|
||||||
if IceHUD.EventExistsGroupRosterUpdate then
|
self:RegisterEvent(groupEvent, "CheckLeader")
|
||||||
self:RegisterEvent("GROUP_ROSTER_UPDATE", "CheckLeader")
|
|
||||||
else
|
|
||||||
self:RegisterEvent("PARTY_MEMBERS_CHANGED", "CheckLeader")
|
|
||||||
end
|
|
||||||
if GetLFGProposal then
|
if GetLFGProposal then
|
||||||
self:RegisterEvent("LFG_PROPOSAL_UPDATE", "CheckPartyRole")
|
self:RegisterEvent("LFG_PROPOSAL_UPDATE", "CheckPartyRole")
|
||||||
self:RegisterEvent("LFG_PROPOSAL_FAILED", "CheckPartyRole")
|
self:RegisterEvent("LFG_PROPOSAL_FAILED", "CheckPartyRole")
|
||||||
@ -1421,43 +1418,78 @@ function PlayerHealth.prototype:HideBlizz()
|
|||||||
PlayerFrame:SetParent(self.PlayerFrameParent)
|
PlayerFrame:SetParent(self.PlayerFrameParent)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local parents = {}
|
||||||
|
local hide_frame = IceHUD:OutOfCombatWrapper(function(self) self:Hide() end)
|
||||||
|
|
||||||
|
local function hook_frames(...)
|
||||||
|
for i = 1, select("#", ...) do
|
||||||
|
local frame = select(i, ...)
|
||||||
|
frame:UnregisterAllEvents()
|
||||||
|
if not IceHUD:IsHooked(frame, "OnShow") then
|
||||||
|
IceHUD:SecureHookScript(frame, "OnShow", hide_frame)
|
||||||
|
end
|
||||||
|
frame:Hide()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function unhook_frame(frame)
|
||||||
|
if IceHUD:IsHooked(frame, "OnShow") then
|
||||||
|
IceHUD:Unhook(frame, "OnShow")
|
||||||
|
local parent = parents[frame]
|
||||||
|
if parent then
|
||||||
|
frame:SetParent(parent)
|
||||||
|
end
|
||||||
|
elseif IceHUD:IsHooked(frame, "Show") then
|
||||||
|
IceHUD:Unhook(frame, "Show")
|
||||||
|
IceHUD:Unhook(frame, "SetPoint")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function unhook_frames(...)
|
||||||
|
for i = 1, select("#", ...) do
|
||||||
|
local frame = select(i, ...)
|
||||||
|
unhook_frame(frame)
|
||||||
|
local handler = frame:GetScript("OnLoad")
|
||||||
|
if handler then
|
||||||
|
handler(frame)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function PlayerHealth.prototype:HideBlizzardParty()
|
function PlayerHealth.prototype:HideBlizzardParty()
|
||||||
if self.combat then
|
if self.combat then
|
||||||
self.pendingBlizzardPartyHide = true
|
self.pendingBlizzardPartyHide = true
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Both Pitbull 4 and Xperl use these exact code, so we use it too.
|
if PartyFrame then
|
||||||
for i = 1, MAX_PARTY_MEMBERS do
|
PartyFrame:Hide()
|
||||||
local party = _G['PartyMemberFrame'..i]
|
PartyFrame:UnregisterEvent(groupEvent)
|
||||||
party:UnregisterAllEvents()
|
else
|
||||||
party:Hide()
|
for i = 1, MAX_PARTY_MEMBERS do
|
||||||
party.Show = function() end
|
local frame = _G["PartyMemberFrame" .. i]
|
||||||
|
frame:SetAttribute("statehidden", true)
|
||||||
|
hook_frames(frame)
|
||||||
|
end
|
||||||
|
UIParent:UnregisterEvent(groupEvent)
|
||||||
end
|
end
|
||||||
|
|
||||||
UIParent:UnregisterEvent('RAID_ROSTER_UPDATE')
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function PlayerHealth.prototype:ShowBlizzardParty()
|
function PlayerHealth.prototype:ShowBlizzardParty()
|
||||||
-- Both Pitbull 4 and Xperl use these exact code, so we use it too.
|
if PartyFrame then
|
||||||
for i = 1, MAX_PARTY_MEMBERS do
|
PartyFrame:Show()
|
||||||
local frame = _G["PartyMemberFrame"..i]
|
PartyFrame:Layout()
|
||||||
if frame then
|
PartyFrame:RegisterEvent(groupEvent)
|
||||||
frame.Show = nil
|
else
|
||||||
frame:GetScript("OnLoad")(frame)
|
for i = 1, MAX_PARTY_MEMBERS do
|
||||||
if IceHUD.WowVer >= 50000 then
|
local frame = _G["PartyMemberFrame" .. i]
|
||||||
frame:GetScript("OnEvent")(frame, "GROUP_ROSTER_UPDATE")
|
frame:SetAttribute("statehidden", nil)
|
||||||
else
|
unhook_frames(frame)
|
||||||
frame:GetScript("OnEvent")(frame, "PARTY_MEMBERS_CHANGED")
|
frame:GetScript("OnEvent")(frame, groupEvent)
|
||||||
end
|
|
||||||
|
|
||||||
PartyMemberFrame_UpdateMember(frame)
|
|
||||||
end
|
end
|
||||||
|
UIParent:RegisterEvent(groupEvent)
|
||||||
end
|
end
|
||||||
|
|
||||||
UIParent:RegisterEvent("RAID_ROSTER_UPDATE")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--function PlayerHealth.prototype:ShowBlizzParty()
|
--function PlayerHealth.prototype:ShowBlizzParty()
|
||||||
|
@ -115,7 +115,9 @@ end
|
|||||||
|
|
||||||
function PlayerInfo.prototype:ShowBlizz()
|
function PlayerInfo.prototype:ShowBlizz()
|
||||||
BuffFrame:Show()
|
BuffFrame:Show()
|
||||||
TemporaryEnchantFrame:Show()
|
if TemporaryEnchantFrame then
|
||||||
|
TemporaryEnchantFrame:Show()
|
||||||
|
end
|
||||||
|
|
||||||
BuffFrame:GetScript("OnLoad")(BuffFrame)
|
BuffFrame:GetScript("OnLoad")(BuffFrame)
|
||||||
end
|
end
|
||||||
@ -123,7 +125,9 @@ end
|
|||||||
|
|
||||||
function PlayerInfo.prototype:HideBlizz()
|
function PlayerInfo.prototype:HideBlizz()
|
||||||
BuffFrame:Hide()
|
BuffFrame:Hide()
|
||||||
TemporaryEnchantFrame:Hide()
|
if TemporaryEnchantFrame then
|
||||||
|
TemporaryEnchantFrame:Hide()
|
||||||
|
end
|
||||||
|
|
||||||
BuffFrame:UnregisterAllEvents()
|
BuffFrame:UnregisterAllEvents()
|
||||||
end
|
end
|
||||||
|
@ -274,7 +274,7 @@ end
|
|||||||
function RollTheBones.prototype:MyOnUpdate()
|
function RollTheBones.prototype:MyOnUpdate()
|
||||||
RollTheBones.super.prototype.MyOnUpdate(self)
|
RollTheBones.super.prototype.MyOnUpdate(self)
|
||||||
if self.bUpdateRtb then
|
if self.bUpdateRtb then
|
||||||
self:UpdateRollTheBones(nil, self.unit, true)
|
self:UpdateRollTheBones("internal", self.unit)
|
||||||
end
|
end
|
||||||
if self.target or self.moduleSettings.bShowWithNoTarget then
|
if self.target or self.moduleSettings.bShowWithNoTarget then
|
||||||
self:UpdateDurationBar()
|
self:UpdateDurationBar()
|
||||||
@ -296,13 +296,14 @@ local function ShouldHide()
|
|||||||
return not HasSpell(193316)
|
return not HasSpell(193316)
|
||||||
end
|
end
|
||||||
|
|
||||||
function RollTheBones.prototype:UpdateRollTheBones(event, unit, fromUpdate)
|
function RollTheBones.prototype:UpdateRollTheBones(event, unit)
|
||||||
if unit and unit ~= self.unit then
|
if unit and unit ~= self.unit then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local now = GetTime()
|
local now = GetTime()
|
||||||
local remaining = nil
|
local remaining = nil
|
||||||
|
local fromUpdate = event == "internal"
|
||||||
|
|
||||||
if not fromUpdate then
|
if not fromUpdate then
|
||||||
rtbDuration, remaining, rtbCount = self:GetBuffDuration(self.unit, RtBSet)
|
rtbDuration, remaining, rtbCount = self:GetBuffDuration(self.unit, RtBSet)
|
||||||
|
@ -3,6 +3,8 @@ local Runes = IceCore_CreateClass(IceElement)
|
|||||||
|
|
||||||
local IceHUD = _G.IceHUD
|
local IceHUD = _G.IceHUD
|
||||||
|
|
||||||
|
local RunesReturnedByMaxPower = IceHUD.WowVer >= 70000
|
||||||
|
|
||||||
local CooldownFrame_SetTimer = CooldownFrame_SetTimer
|
local CooldownFrame_SetTimer = CooldownFrame_SetTimer
|
||||||
if CooldownFrame_Set then
|
if CooldownFrame_Set then
|
||||||
CooldownFrame_SetTimer = CooldownFrame_Set
|
CooldownFrame_SetTimer = CooldownFrame_Set
|
||||||
@ -132,6 +134,9 @@ function Runes.prototype:GetOptions()
|
|||||||
disabled = function()
|
disabled = function()
|
||||||
return not self.moduleSettings.enabled
|
return not self.moduleSettings.enabled
|
||||||
end,
|
end,
|
||||||
|
hidden = function()
|
||||||
|
return not PlayerFrame_HideVehicleTexture
|
||||||
|
end,
|
||||||
order = 32
|
order = 32
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,7 +270,7 @@ end
|
|||||||
|
|
||||||
-- OVERRIDE
|
-- OVERRIDE
|
||||||
function Runes.prototype:Enable(core)
|
function Runes.prototype:Enable(core)
|
||||||
if IceHUD.WowVer >= 70000 then
|
if RunesReturnedByMaxPower then
|
||||||
self.numRunes = UnitPowerMax("player", SPELL_POWER_RUNES)
|
self.numRunes = UnitPowerMax("player", SPELL_POWER_RUNES)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -283,7 +288,9 @@ function Runes.prototype:Enable(core)
|
|||||||
self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED", "UpdateRuneColors")
|
self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED", "UpdateRuneColors")
|
||||||
end
|
end
|
||||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
||||||
self:RegisterEvent("UNIT_MAXPOWER", "CheckMaxNumRunes")
|
if RunesReturnedByMaxPower then
|
||||||
|
self:RegisterEvent("UNIT_MAXPOWER", "CheckMaxNumRunes")
|
||||||
|
end
|
||||||
|
|
||||||
if (self.moduleSettings.hideBlizz) then
|
if (self.moduleSettings.hideBlizz) then
|
||||||
self:HideBlizz()
|
self:HideBlizz()
|
||||||
@ -577,6 +584,10 @@ local function hook_playerframe()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function Runes.prototype:HideBlizz()
|
function Runes.prototype:HideBlizz()
|
||||||
|
if not PlayerFrame_HideVehicleTexture then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
RuneFrame:Hide()
|
RuneFrame:Hide()
|
||||||
RuneFrame:UnregisterAllEvents()
|
RuneFrame:UnregisterAllEvents()
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ end
|
|||||||
|
|
||||||
-- Load us up
|
-- Load us up
|
||||||
local _, unitClass = UnitClass("player")
|
local _, unitClass = UnitClass("player")
|
||||||
if (unitClass == "PRIEST" and PriestBarFrame) then
|
if (unitClass == "PRIEST" and IceHUD.WowVer >= 50000 and IceHUD.WowVer < 70000) then
|
||||||
IceHUD.ShadowOrbs = ShadowOrbs:new()
|
IceHUD.ShadowOrbs = ShadowOrbs:new()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -277,7 +277,7 @@ end
|
|||||||
function SliceAndDice.prototype:MyOnUpdate()
|
function SliceAndDice.prototype:MyOnUpdate()
|
||||||
SliceAndDice.super.prototype.MyOnUpdate(self)
|
SliceAndDice.super.prototype.MyOnUpdate(self)
|
||||||
if self.bUpdateSnd then
|
if self.bUpdateSnd then
|
||||||
self:UpdateSliceAndDice(nil, self.unit, true)
|
self:UpdateSliceAndDice("internal", self.unit)
|
||||||
end
|
end
|
||||||
if self.target or self.moduleSettings.bShowWithNoTarget then
|
if self.target or self.moduleSettings.bShowWithNoTarget then
|
||||||
self:UpdateDurationBar()
|
self:UpdateDurationBar()
|
||||||
@ -312,13 +312,14 @@ local function ShouldHide()
|
|||||||
-- with different durations
|
-- with different durations
|
||||||
end
|
end
|
||||||
|
|
||||||
function SliceAndDice.prototype:UpdateSliceAndDice(event, unit, fromUpdate)
|
function SliceAndDice.prototype:UpdateSliceAndDice(event, unit)
|
||||||
if unit and unit ~= self.unit then
|
if unit and unit ~= self.unit then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local now = GetTime()
|
local now = GetTime()
|
||||||
local remaining = nil
|
local remaining = nil
|
||||||
|
local fromUpdate = event == "internal"
|
||||||
|
|
||||||
if not fromUpdate or IceHUD.WowVer < 30000 then
|
if not fromUpdate or IceHUD.WowVer < 30000 then
|
||||||
sndDuration, remaining = self:GetBuffDuration(self.unit, sndBuffName)
|
sndDuration, remaining = self:GetBuffDuration(self.unit, sndBuffName)
|
||||||
|
@ -375,11 +375,12 @@ end
|
|||||||
|
|
||||||
function TargetCC.prototype:MyOnUpdate()
|
function TargetCC.prototype:MyOnUpdate()
|
||||||
TargetCC.super.prototype.MyOnUpdate(self)
|
TargetCC.super.prototype.MyOnUpdate(self)
|
||||||
self:UpdateTargetDebuffs(nil, self.unit, true)
|
self:UpdateTargetDebuffs("internal", self.unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
function TargetCC.prototype:UpdateTargetDebuffs(event, unit, isUpdate)
|
function TargetCC.prototype:UpdateTargetDebuffs(event, unit)
|
||||||
local name, duration, remaining
|
local name, duration, remaining
|
||||||
|
local isUpdate = event == "internal"
|
||||||
|
|
||||||
if not isUpdate or not self.lastUpdateTime then
|
if not isUpdate or not self.lastUpdateTime then
|
||||||
self.debuffName, self.debuffDuration, self.debuffRemaining = self:GetMaxDebuffDuration(self.unit, self.debuffList)
|
self.debuffName, self.debuffDuration, self.debuffRemaining = self:GetMaxDebuffDuration(self.unit, self.debuffList)
|
||||||
|
@ -191,11 +191,12 @@ end
|
|||||||
|
|
||||||
function TargetInvuln.prototype:MyOnUpdate()
|
function TargetInvuln.prototype:MyOnUpdate()
|
||||||
TargetInvuln.super.prototype.MyOnUpdate(self)
|
TargetInvuln.super.prototype.MyOnUpdate(self)
|
||||||
self:UpdateTargetBuffs(nil, self.unit, true)
|
self:UpdateTargetBuffs("internal", self.unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
function TargetInvuln.prototype:UpdateTargetBuffs(event, unit, isUpdate)
|
function TargetInvuln.prototype:UpdateTargetBuffs(event, unit)
|
||||||
local name, duration, remaining
|
local name, duration, remaining
|
||||||
|
local isUpdate = event == "internal"
|
||||||
|
|
||||||
if not isUpdate or not self.lastUpdateTime then
|
if not isUpdate or not self.lastUpdateTime then
|
||||||
self.buffName, self.buffDuration, self.buffRemaining = self:GetMaxbuffDuration(self.unit, self.buffList)
|
self.buffName, self.buffDuration, self.buffRemaining = self:GetMaxbuffDuration(self.unit, self.buffList)
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
v1.13.17:
|
v1.14.2:
|
||||||
|
|
||||||
- Internal maintainability updates. There are so many versions of the game now, updates need to be as easy and safe as possible.
|
- Fix CC and Invuln modules not showing immediately when they should.
|
||||||
- Improved reliability of Slice-n-Dice predicted length when changing talents.
|
|
||||||
- Improved various modules's ability to respond to the player's maximum power type changing (going from 5 max combo points to 6, for example).
|
v1.14.1:
|
||||||
- Fixed invalid texture layers specified on a variety of textures (10.0 fix).
|
|
||||||
- Removed HolyPowerNumeric text from the configuration options of several modules that it didn't belong with.
|
- Fix Hide Party feature on pre-10.0 clients.
|
||||||
- Fixed combo points in Classic Era clients.
|
|
||||||
|
v1.14.0:
|
||||||
|
|
||||||
|
- 10.0 compatibility
|
||||||
|
- Renamed Anima Charged combo points to Charged, and removed specific references to Kyrian.
|
||||||
|
Reference in New Issue
Block a user