mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
38 Commits
Author | SHA1 | Date | |
---|---|---|---|
d43555b7c4
|
|||
90e0dd1597
|
|||
6282dfb256
|
|||
4de8cb0d27
|
|||
ea28a05051
|
|||
ca80ca3f75
|
|||
fe22f7e658
|
|||
354fb483bb
|
|||
f6c737c654
|
|||
9a38c4b3ea
|
|||
ab6b662ac4
|
|||
a2addcb627
|
|||
7f84c28538
|
|||
924bd4a6ef
|
|||
0f753448d7
|
|||
891ddc230c
|
|||
06353d4974
|
|||
d44e62bee4
|
|||
8fe1ef75b7
|
|||
702aa5bff6
|
|||
d6e1fd707a
|
|||
88d7dd3982
|
|||
f495bb15be
|
|||
087c64ee6a
|
|||
077f381adb
|
|||
a5be2996da
|
|||
22f473b54d
|
|||
e7f95cbcb6
|
|||
5c19d7f89c
|
|||
f01d6495f8
|
|||
34ecd95e4f
|
|||
564919e0c6
|
|||
a18144aec0
|
|||
53bf76c58a
|
|||
1140d2e8c5
|
|||
7d562dfb35
|
|||
7c2fe06fa8
|
|||
819cc64aca
|
50
.github/workflows/release.yml
vendored
Normal file
50
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# description of this workflow, can be anything you want
|
||||||
|
name: Package and release
|
||||||
|
|
||||||
|
# we need to let GitHub know _when_ we want to release, typically only when we create a new tag.
|
||||||
|
# this will target only tags, and not all pushes to the master branch.
|
||||||
|
# this part can be heavily customized to your liking, like targeting only tags that match a certain word,
|
||||||
|
# other branches or even pullrequests.
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '**'
|
||||||
|
|
||||||
|
# a workflow is built up as jobs, and within these jobs are steps
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
# "release" is a job, you can name it anything you want
|
||||||
|
release:
|
||||||
|
|
||||||
|
# we can run our steps on pretty much anything, but the "ubuntu-latest" image is a safe bet
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
# specify the environment variables used by the packager, matching the secrets from the project on GitHub
|
||||||
|
env:
|
||||||
|
CF_API_KEY: ${{ secrets.CF_API_KEY }}
|
||||||
|
WOWI_API_TOKEN: ${{ secrets.WOWI_API_TOKEN }}
|
||||||
|
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_"
|
||||||
|
|
||||||
|
# "steps" holds a list of all the steps needed to package and release our AddOn
|
||||||
|
steps:
|
||||||
|
|
||||||
|
# we first have to clone the AddOn project, this is a required step
|
||||||
|
- name: Clone project
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
# once cloned, we just run the GitHub Action for the packager project
|
||||||
|
- name: Package and release
|
||||||
|
uses: BigWigsMods/packager@master
|
||||||
|
|
||||||
|
# another example where we supply additional arguments, this example is specifically to release
|
||||||
|
# for the Classic version of the game
|
||||||
|
- name: Package and release for Classic
|
||||||
|
uses: BigWigsMods/packager@master
|
||||||
|
with:
|
||||||
|
args: -g classic -w 0
|
||||||
|
|
||||||
|
- name: Package and release for TBC
|
||||||
|
uses: BigWigsMods/packager@master
|
||||||
|
with:
|
||||||
|
args: -g bc -w 0
|
1
.mailmap
1
.mailmap
@ -1,2 +1,3 @@
|
|||||||
Parnic <parnic@parnic.com> Parnic <chris@parnic.com>
|
Parnic <parnic@parnic.com> Parnic <chris@parnic.com>
|
||||||
rokiyo <rokiyo@example.com> Rokiyo <Rokiyo@example.com>
|
rokiyo <rokiyo@example.com> Rokiyo <Rokiyo@example.com>
|
||||||
|
Parnic <parnic@parnic.com> Chris Pickett <chris@perniciousgames.com>
|
||||||
|
4
.pkgmeta
4
.pkgmeta
@ -65,4 +65,6 @@ tools-used:
|
|||||||
ignore:
|
ignore:
|
||||||
- readme.md
|
- readme.md
|
||||||
|
|
||||||
manual-changelog: changelog.txt
|
manual-changelog: this_version.md
|
||||||
|
|
||||||
|
enable-nolib-creation: yes
|
||||||
|
@ -415,7 +415,7 @@ do
|
|||||||
type='range',
|
type='range',
|
||||||
name = L["Bar vertical offset"],
|
name = L["Bar vertical offset"],
|
||||||
desc = L["Adjust the vertical placement of this bar"],
|
desc = L["Adjust the vertical placement of this bar"],
|
||||||
min = -400,
|
min = -600,
|
||||||
max = 600,
|
max = 600,
|
||||||
step = 1,
|
step = 1,
|
||||||
get = function()
|
get = function()
|
||||||
@ -436,7 +436,7 @@ do
|
|||||||
type='range',
|
type='range',
|
||||||
name = L["Bar horizontal adjust"],
|
name = L["Bar horizontal adjust"],
|
||||||
desc = L["This is a per-pixel horizontal adjustment. You should probably use the 'offset' setting above as it is designed to snap bars together. This may be used in the case of a horizontal bar needing to be positioned outside the normal bar locations."],
|
desc = L["This is a per-pixel horizontal adjustment. You should probably use the 'offset' setting above as it is designed to snap bars together. This may be used in the case of a horizontal bar needing to be positioned outside the normal bar locations."],
|
||||||
min = -400,
|
min = -600,
|
||||||
max = 600,
|
max = 600,
|
||||||
step = 1,
|
step = 1,
|
||||||
get = function()
|
get = function()
|
||||||
@ -1040,7 +1040,7 @@ end
|
|||||||
|
|
||||||
-- Creates the actual bar
|
-- Creates the actual bar
|
||||||
function IceBarElement.prototype:CreateBar()
|
function IceBarElement.prototype:CreateBar()
|
||||||
self.barFrame = self:BarFactory(self.barFrame, "LOW", "ARTWORK")
|
self.barFrame = self:BarFactory(self.barFrame, "LOW", "ARTWORK", "Bar")
|
||||||
self:SetBarCoord(self.barFrame)
|
self:SetBarCoord(self.barFrame)
|
||||||
|
|
||||||
self.barFrame.bar:SetBlendMode(self.settings.barBlendMode)
|
self.barFrame.bar:SetBlendMode(self.settings.barBlendMode)
|
||||||
@ -1050,9 +1050,9 @@ end
|
|||||||
|
|
||||||
-- Returns a barFrame & barFrame.bar
|
-- Returns a barFrame & barFrame.bar
|
||||||
-- Rokiyo: Currently keeping old behaviour of running through bar creation on every Redraw, but I'm not convinced we need to.
|
-- Rokiyo: Currently keeping old behaviour of running through bar creation on every Redraw, but I'm not convinced we need to.
|
||||||
function IceBarElement.prototype:BarFactory(barFrame, frameStrata, textureLayer)
|
function IceBarElement.prototype:BarFactory(barFrame, frameStrata, textureLayer, nameSuffix)
|
||||||
if not (barFrame) then
|
if not (barFrame) then
|
||||||
barFrame = CreateFrame("Frame", nil, self.frame)
|
barFrame = CreateFrame("Frame", "IceHUD_"..self.elementName.."_"..(nameSuffix or "Bar"), self.frame)
|
||||||
end
|
end
|
||||||
|
|
||||||
barFrame:SetFrameStrata(frameStrata and frameStrata or "LOW")
|
barFrame:SetFrameStrata(frameStrata and frameStrata or "LOW")
|
||||||
@ -1584,7 +1584,7 @@ function IceBarElement.prototype:CreateMarker(idx)
|
|||||||
self.Markers[idx] = nil
|
self.Markers[idx] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
self.Markers[idx] = self:BarFactory(self.Markers[idx], "MEDIUM", "OVERLAY")
|
self.Markers[idx] = self:BarFactory(self.Markers[idx], "MEDIUM", "OVERLAY", "Marker"..idx)
|
||||||
|
|
||||||
local color = self.moduleSettings.markers[idx].color
|
local color = self.moduleSettings.markers[idx].color
|
||||||
self.Markers[idx].bar:SetVertexColor(color.r, color.g, color.b, self.alpha)
|
self.Markers[idx].bar:SetVertexColor(color.r, color.g, color.b, self.alpha)
|
||||||
|
@ -69,7 +69,7 @@ function IceElement.prototype:Create(parent)
|
|||||||
|
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
if not self.masterFrame then
|
if not self.masterFrame then
|
||||||
self.masterFrame = CreateFrame("Frame", nil, self.parent)
|
self.masterFrame = CreateFrame("Frame", "IceHUD_Element_"..self.elementName, self.parent)
|
||||||
self.masterFrame:SetFrameStrata("MEDIUM")
|
self.masterFrame:SetFrameStrata("MEDIUM")
|
||||||
end
|
end
|
||||||
self:CreateFrame()
|
self:CreateFrame()
|
||||||
|
14
IceHUD.lua
14
IceHUD.lua
@ -18,6 +18,7 @@ IceHUD.debugging = false
|
|||||||
|
|
||||||
IceHUD.WowVer = select(4, GetBuildInfo())
|
IceHUD.WowVer = select(4, GetBuildInfo())
|
||||||
IceHUD.WowClassic = WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_CLASSIC
|
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.UnitPowerEvent = "UNIT_POWER_UPDATE"
|
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"
|
||||||
|
|
||||||
@ -259,6 +260,10 @@ function IceHUD:NotifyOptionsChange()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function IceHUD:OnEnable(isFirst)
|
function IceHUD:OnEnable(isFirst)
|
||||||
|
-- if isFirst then
|
||||||
|
self:SetDebugging(self.IceCore:GetDebug())
|
||||||
|
self.debugFrame = ChatFrame1
|
||||||
|
-- end
|
||||||
self:Debug("IceHUD:OnEnable()")
|
self:Debug("IceHUD:OnEnable()")
|
||||||
|
|
||||||
if self.db.profile.enable then
|
if self.db.profile.enable then
|
||||||
@ -274,11 +279,6 @@ function IceHUD:OnEnable(isFirst)
|
|||||||
--@debug@
|
--@debug@
|
||||||
IceHUD_Options:OnLoad()
|
IceHUD_Options:OnLoad()
|
||||||
--@end-debug@
|
--@end-debug@
|
||||||
|
|
||||||
-- if isFirst then
|
|
||||||
self:SetDebugging(self.IceCore:GetDebug())
|
|
||||||
self.debugFrame = ChatFrame1
|
|
||||||
-- end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- add settings changes/updates here so that existing users don't lose their settings
|
-- add settings changes/updates here so that existing users don't lose their settings
|
||||||
@ -367,7 +367,11 @@ function IceHUD:Debug(...)
|
|||||||
for n=1,select('#', ...) do
|
for n=1,select('#', ...) do
|
||||||
msg = msg .. tostring(select(n, ...)) .. " "
|
msg = msg .. tostring(select(n, ...)) .. " "
|
||||||
end
|
end
|
||||||
|
if self.debugFrame then
|
||||||
self.debugFrame:AddMessage(msg)
|
self.debugFrame:AddMessage(msg)
|
||||||
|
else
|
||||||
|
print(msg)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
14
IceHUD.toc
14
IceHUD.toc
@ -1,15 +1,23 @@
|
|||||||
## Interface: 80300
|
## Interface: 90005
|
||||||
|
## Interface-Retail: 90005
|
||||||
|
## Interface-Classic: 11306
|
||||||
|
## Interface-BC: 20501
|
||||||
## Author: Parnic, originally created by Iceroth
|
## Author: Parnic, originally created by Iceroth
|
||||||
## Name: IceHUD
|
## Name: IceHUD
|
||||||
## Title: IceHUD |cff7fff7f-Ace3-|r
|
## Title: IceHUD |cff7fff7f-Ace3-|r
|
||||||
## Notes: Another HUD addon
|
## Notes: Another HUD addon
|
||||||
## Version: @project-version@
|
#@debug@
|
||||||
|
## Version: development
|
||||||
|
#@end-debug@
|
||||||
|
#@non-debug@
|
||||||
|
# ## Version: @project-version@
|
||||||
|
#@end-non-debug@
|
||||||
## SavedVariables: IceCoreDB
|
## SavedVariables: IceCoreDB
|
||||||
## 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-2.0, LibDualSpec-1.0, LibDBIcon-1.0, AceGUI-3.0-SharedMediaWidgets
|
||||||
## X-Category: HUDs
|
## X-Category: HUDs
|
||||||
## X-Website: https://www.wowace.com/projects/ice-hud
|
## X-Website: https://www.wowace.com/projects/ice-hud
|
||||||
|
## X-Curse-Project-ID: 5394
|
||||||
## X-WoWI-ID: 8149
|
## X-WoWI-ID: 8149
|
||||||
## X-Compatible-With: 11302
|
|
||||||
|
|
||||||
#@no-lib-strip@
|
#@no-lib-strip@
|
||||||
# Libraries
|
# Libraries
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
## Interface: 80300
|
## Interface: 90005
|
||||||
|
## Interface-Retail: 90005
|
||||||
|
## Interface-Classic: 11306
|
||||||
|
## Interface-BC: 20501
|
||||||
## Title: IceHUD |cff7fff7f-Options-|r
|
## Title: IceHUD |cff7fff7f-Options-|r
|
||||||
## Author: Parnic
|
## Author: Parnic
|
||||||
## Version: @project-version@
|
## Version: @project-version@
|
||||||
|
@ -171,7 +171,7 @@ end
|
|||||||
-- Creates the low amount warning frame
|
-- Creates the low amount warning frame
|
||||||
function IceUnitBar.prototype:CreateFlashFrame()
|
function IceUnitBar.prototype:CreateFlashFrame()
|
||||||
if not (self.flashFrame) then
|
if not (self.flashFrame) then
|
||||||
self.flashFrame = CreateFrame("Frame", nil, self.frame)
|
self.flashFrame = CreateFrame("Frame", "IceHUD_"..self.elementName.."_Flash", self.frame)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.flashFrame:SetFrameStrata("BACKGROUND")
|
self.flashFrame:SetFrameStrata("BACKGROUND")
|
||||||
@ -243,7 +243,14 @@ function IceUnitBar.prototype:Update()
|
|||||||
self.mana = IceHUD:MathRound(self.mana / 100)
|
self.mana = IceHUD:MathRound(self.mana / 100)
|
||||||
self.maxMana = IceHUD:MathRound(self.maxMana / 100)
|
self.maxMana = IceHUD:MathRound(self.maxMana / 100)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- account for cases where maxMana is 0, perhaps briefly (during certain spells, for example)
|
||||||
|
-- and properly handle it as full. this allows for proper alpha handling during these times.
|
||||||
|
if self.maxMana == self.mana then
|
||||||
|
self.manaPercentage = 1
|
||||||
|
else
|
||||||
self.manaPercentage = self.maxMana ~= 0 and (self.mana/self.maxMana) or 0
|
self.manaPercentage = self.maxMana ~= 0 and (self.mana/self.maxMana) or 0
|
||||||
|
end
|
||||||
|
|
||||||
local locClass
|
local locClass
|
||||||
locClass, self.unitClass = UnitClass(self.unit)
|
locClass, self.unitClass = UnitClass(self.unit)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -398,7 +398,7 @@ end
|
|||||||
|
|
||||||
function CastBar.prototype:CreateLagBar()
|
function CastBar.prototype:CreateLagBar()
|
||||||
if self.lagBar == nil then
|
if self.lagBar == nil then
|
||||||
self.lagBar = self:BarFactory(self.lagBar, "LOW", "OVERLAY")
|
self.lagBar = self:BarFactory(self.lagBar, "LOW", "OVERLAY", "Lag")
|
||||||
end
|
end
|
||||||
|
|
||||||
local r, g, b = self:GetColor("CastLag")
|
local r, g, b = self:GetColor("CastLag")
|
||||||
|
@ -12,12 +12,20 @@ if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
|
|||||||
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
|
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local GetUnitChargedPowerPoints = GetUnitChargedPowerPoints
|
||||||
|
if not GetUnitChargedPowerPoints then
|
||||||
|
GetUnitChargedPowerPoints = function()
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Constructor --
|
-- Constructor --
|
||||||
function ComboPoints.prototype:init()
|
function ComboPoints.prototype:init()
|
||||||
ComboPoints.super.prototype.init(self, "ComboPoints")
|
ComboPoints.super.prototype.init(self, "ComboPoints")
|
||||||
|
|
||||||
self:SetDefaultColor("ComboPoints", 1, 1, 0)
|
self:SetDefaultColor("ComboPoints", 1, 1, 0)
|
||||||
self:SetDefaultColor("AnticipationPoints", 1, 0, 1)
|
self:SetDefaultColor("AnticipationPoints", 1, 0, 1)
|
||||||
|
self:SetDefaultColor("KyrianAnimaComboPoint", 0.3137254901960784, 0.3725490196078432, 1)
|
||||||
self.scalingEnabled = true
|
self.scalingEnabled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -215,8 +223,29 @@ function ComboPoints.prototype:GetOptions()
|
|||||||
disabled = function()
|
disabled = function()
|
||||||
return not self.moduleSettings.enabled
|
return not self.moduleSettings.enabled
|
||||||
end,
|
end,
|
||||||
|
order = 35
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if IceHUD.WowVer >= 90000 then
|
||||||
|
opts["bShowAnimaCharged"] = {
|
||||||
|
type = 'toggle',
|
||||||
|
width = 'double',
|
||||||
|
name = L["Show Anima-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."],
|
||||||
|
get = function()
|
||||||
|
return self.moduleSettings.bShowAnimaCharged
|
||||||
|
end,
|
||||||
|
set = function(info, v)
|
||||||
|
self.moduleSettings.bShowAnimaCharged = v
|
||||||
|
self:UpdateChargedComboPoints()
|
||||||
|
end,
|
||||||
|
disabled = function()
|
||||||
|
return not self.moduleSettings.enabled
|
||||||
|
end,
|
||||||
|
order = 36
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
return opts
|
return opts
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -235,6 +264,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
|
||||||
return defaults
|
return defaults
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -274,11 +304,16 @@ function ComboPoints.prototype:Enable(core)
|
|||||||
self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
|
self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if IceHUD.WowVer >= 90000 then
|
||||||
|
self:RegisterEvent("UNIT_POWER_POINT_CHARGE", "UpdateChargedComboPoints")
|
||||||
|
end
|
||||||
|
|
||||||
if self.moduleSettings.comboMode == "Graphical" then
|
if self.moduleSettings.comboMode == "Graphical" then
|
||||||
self.moduleSettings.comboMode = "Graphical Bar"
|
self.moduleSettings.comboMode = "Graphical Bar"
|
||||||
end
|
end
|
||||||
|
|
||||||
self:CreateComboFrame(true)
|
self:CreateComboFrame(true)
|
||||||
|
self:UpdateChargedComboPoints()
|
||||||
end
|
end
|
||||||
|
|
||||||
function ComboPoints.prototype:UpdateMaxComboPoints(event, unit, powerType)
|
function ComboPoints.prototype:UpdateMaxComboPoints(event, unit, powerType)
|
||||||
@ -291,6 +326,13 @@ function ComboPoints.prototype:UpdateMaxComboPoints(event, unit, powerType)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ComboPoints.prototype:UpdateChargedComboPoints()
|
||||||
|
local chargedPowerPoints = GetUnitChargedPowerPoints("player")
|
||||||
|
self.chargedPowerPointIndex = chargedPowerPoints and chargedPowerPoints[1]
|
||||||
|
self:CreateComboFrame()
|
||||||
|
self:UpdateComboPoints()
|
||||||
|
end
|
||||||
|
|
||||||
-- 'Protected' methods --------------------------------------------------------
|
-- 'Protected' methods --------------------------------------------------------
|
||||||
|
|
||||||
-- OVERRIDE
|
-- OVERRIDE
|
||||||
@ -399,7 +441,12 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
if (self.moduleSettings.gradient) then
|
if (self.moduleSettings.gradient) then
|
||||||
g = g - ((1 / maxComboPoints)*i)
|
g = g - ((1 / maxComboPoints)*i)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if i == self.chargedPowerPointIndex and self.moduleSettings.bShowAnimaCharged then
|
||||||
|
self.frame.graphical[i].texture:SetVertexColor(self:GetColor("KyrianAnimaComboPoint"))
|
||||||
|
else
|
||||||
self.frame.graphical[i].texture:SetVertexColor(r, g, b)
|
self.frame.graphical[i].texture:SetVertexColor(r, g, b)
|
||||||
|
end
|
||||||
|
|
||||||
self.frame.graphical[i]:Hide()
|
self.frame.graphical[i]:Hide()
|
||||||
end
|
end
|
||||||
|
@ -6,6 +6,13 @@ if IceHUD.WowVer >= 80000 or IceHUD.WowClassic then
|
|||||||
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
|
SPELL_POWER_COMBO_POINTS = Enum.PowerType.ComboPoints
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local GetUnitChargedPowerPoints = GetUnitChargedPowerPoints
|
||||||
|
if not GetUnitChargedPowerPoints then
|
||||||
|
GetUnitChargedPowerPoints = function()
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function ComboPointsBar.prototype:init()
|
function ComboPointsBar.prototype:init()
|
||||||
ComboPointsBar.super.prototype.init(self, "ComboPointsBar")
|
ComboPointsBar.super.prototype.init(self, "ComboPointsBar")
|
||||||
|
|
||||||
@ -57,7 +64,6 @@ end
|
|||||||
|
|
||||||
function ComboPointsBar.prototype:GetDefaultSettings()
|
function ComboPointsBar.prototype:GetDefaultSettings()
|
||||||
local defaults = ComboPointsBar.super.prototype.GetDefaultSettings(self)
|
local defaults = ComboPointsBar.super.prototype.GetDefaultSettings(self)
|
||||||
defaults.textVisible['lower'] = false
|
|
||||||
defaults.offset = 8
|
defaults.offset = 8
|
||||||
defaults.enabled = false
|
defaults.enabled = false
|
||||||
defaults.alwaysDisplay = false
|
defaults.alwaysDisplay = false
|
||||||
@ -83,6 +89,18 @@ function ComboPointsBar.prototype:Enable(core)
|
|||||||
else
|
else
|
||||||
self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
|
self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if IceHUD.WowVer >= 90000 then
|
||||||
|
self:RegisterEvent("UNIT_POWER_POINT_CHARGE", "UpdateChargedComboPoints")
|
||||||
|
end
|
||||||
|
|
||||||
|
self:UpdateChargedComboPoints()
|
||||||
|
end
|
||||||
|
|
||||||
|
function ComboPointsBar.prototype:UpdateChargedComboPoints()
|
||||||
|
local chargedPowerPoints = GetUnitChargedPowerPoints("player")
|
||||||
|
self.chargedPowerPointIndex = chargedPowerPoints and chargedPowerPoints[1]
|
||||||
|
self:UpdateComboPoints()
|
||||||
end
|
end
|
||||||
|
|
||||||
function ComboPointsBar.prototype:CreateFrame()
|
function ComboPointsBar.prototype:CreateFrame()
|
||||||
@ -129,6 +147,7 @@ function ComboPointsBar.prototype:UpdateComboPoints(...)
|
|||||||
end
|
end
|
||||||
|
|
||||||
self:SetBottomText1(points or "0")
|
self:SetBottomText1(points or "0")
|
||||||
|
self:SetBottomText2(self.chargedPowerPointIndex)
|
||||||
end
|
end
|
||||||
|
|
||||||
function ComboPointsBar.prototype:Update()
|
function ComboPointsBar.prototype:Update()
|
||||||
|
@ -122,7 +122,7 @@ function IceCustomCount.prototype:GetOptions()
|
|||||||
self.moduleSettings.vpos = v
|
self.moduleSettings.vpos = v
|
||||||
self:Redraw()
|
self:Redraw()
|
||||||
end,
|
end,
|
||||||
min = -400,
|
min = -700,
|
||||||
max = 700,
|
max = 700,
|
||||||
step = 1,
|
step = 1,
|
||||||
disabled = function()
|
disabled = function()
|
||||||
|
@ -107,7 +107,7 @@ function EclipseBar.prototype:CreateFrame()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function EclipseBar.prototype:CreateSolarBar()
|
function EclipseBar.prototype:CreateSolarBar()
|
||||||
self.solarBar = self:BarFactory(self.solarBar,"BACKGROUND", "ARTWORK")
|
self.solarBar = self:BarFactory(self.solarBar,"BACKGROUND", "ARTWORK", "Solar")
|
||||||
self:SetBarCoord(self.solarBar, 0.5, true)
|
self:SetBarCoord(self.solarBar, 0.5, true)
|
||||||
|
|
||||||
self.solarBar.bar:SetVertexColor(self:GetColor("EclipseSolar", 1))
|
self.solarBar.bar:SetVertexColor(self:GetColor("EclipseSolar", 1))
|
||||||
|
@ -255,7 +255,7 @@ function GlobalCoolDown.prototype:CreateFrame()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function GlobalCoolDown.prototype:CreateLagBar()
|
function GlobalCoolDown.prototype:CreateLagBar()
|
||||||
self.lagBar = self:BarFactory(self.lagBar, "LOW", "OVERLAY")
|
self.lagBar = self:BarFactory(self.lagBar, "LOW", "OVERLAY", "Lag")
|
||||||
|
|
||||||
local r, g, b = self:GetColor("CastLag")
|
local r, g, b = self:GetColor("CastLag")
|
||||||
if (self.settings.backgroundToggle) then
|
if (self.settings.backgroundToggle) then
|
||||||
|
@ -32,7 +32,7 @@ function HolyPower.prototype:init()
|
|||||||
self.numericColor = "HolyPowerNumeric"
|
self.numericColor = "HolyPowerNumeric"
|
||||||
self.unitPower = SPELL_POWER_HOLY_POWER
|
self.unitPower = SPELL_POWER_HOLY_POWER
|
||||||
self.minLevel = PALADINPOWERBAR_SHOW_LEVEL
|
self.minLevel = PALADINPOWERBAR_SHOW_LEVEL
|
||||||
if IceHUD.WowVer >= 70000 then
|
if IceHUD.WowVer >= 70000 and IceHUD.WowVer < 90000 then
|
||||||
self.requiredSpec = SPEC_PALADIN_RETRIBUTION
|
self.requiredSpec = SPEC_PALADIN_RETRIBUTION
|
||||||
end
|
end
|
||||||
self.bTreatEmptyAsFull = true
|
self.bTreatEmptyAsFull = true
|
||||||
|
@ -280,8 +280,8 @@ function MirrorBarHandler.prototype:GetOptions()
|
|||||||
type='range',
|
type='range',
|
||||||
name = L["Bar vertical offset"],
|
name = L["Bar vertical offset"],
|
||||||
desc = L["Adjust the vertical placement of this bar"],
|
desc = L["Adjust the vertical placement of this bar"],
|
||||||
min = -400,
|
min = -600,
|
||||||
max = 400,
|
max = 600,
|
||||||
step = 1,
|
step = 1,
|
||||||
get = function()
|
get = function()
|
||||||
return self.moduleSettings.barVerticalOffset
|
return self.moduleSettings.barVerticalOffset
|
||||||
|
@ -49,7 +49,9 @@ function PetHealth.prototype:Enable(core)
|
|||||||
self:RegisterEvent("UNIT_PET", "CheckPet");
|
self:RegisterEvent("UNIT_PET", "CheckPet");
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_HEALTH", "UpdateEvent")
|
self:RegisterEvent("UNIT_HEALTH", "UpdateEvent")
|
||||||
|
if IceHUD.WowVer < 90000 then
|
||||||
self:RegisterEvent("UNIT_HEALTH_FREQUENT", "UpdateEvent")
|
self:RegisterEvent("UNIT_HEALTH_FREQUENT", "UpdateEvent")
|
||||||
|
end
|
||||||
self:RegisterEvent("UNIT_MAXHEALTH", "UpdateEvent")
|
self:RegisterEvent("UNIT_MAXHEALTH", "UpdateEvent")
|
||||||
|
|
||||||
if UnitHasVehicleUI then
|
if UnitHasVehicleUI then
|
||||||
@ -223,6 +225,7 @@ function PetHealth.prototype:ExitingVehicle(event, unit)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function PetHealth.prototype:EnteringWorld()
|
function PetHealth.prototype:EnteringWorld()
|
||||||
|
self:TargetChanged()
|
||||||
self:Update(self.unit)
|
self:Update(self.unit)
|
||||||
|
|
||||||
if UnitHasVehicleUI then
|
if UnitHasVehicleUI then
|
||||||
|
@ -242,6 +242,7 @@ function PetMana.prototype:ExitingVehicle(event, unit)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function PetMana.prototype:EnteringWorld()
|
function PetMana.prototype:EnteringWorld()
|
||||||
|
self:TargetChanged()
|
||||||
self:Update(self.unit)
|
self:Update(self.unit)
|
||||||
|
|
||||||
if UnitHasVehicleUI then
|
if UnitHasVehicleUI then
|
||||||
|
@ -68,7 +68,9 @@ function PlayerHealth.prototype:Enable(core)
|
|||||||
PlayerHealth.super.prototype.Enable(self, core)
|
PlayerHealth.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_HEALTH", "UpdateEvent")
|
self:RegisterEvent("UNIT_HEALTH", "UpdateEvent")
|
||||||
|
if IceHUD.WowVer < 90000 then
|
||||||
self:RegisterEvent("UNIT_HEALTH_FREQUENT", "UpdateEvent")
|
self:RegisterEvent("UNIT_HEALTH_FREQUENT", "UpdateEvent")
|
||||||
|
end
|
||||||
self:RegisterEvent("UNIT_MAXHEALTH", "UpdateEvent")
|
self:RegisterEvent("UNIT_MAXHEALTH", "UpdateEvent")
|
||||||
|
|
||||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
self:RegisterEvent("PLAYER_ENTERING_WORLD", "EnteringWorld")
|
||||||
@ -934,7 +936,7 @@ function PlayerHealth.prototype:CreateBackground(redraw)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function PlayerHealth.prototype:CreateHealBar()
|
function PlayerHealth.prototype:CreateHealBar()
|
||||||
self.healFrame = self:BarFactory(self.healFrame, "LOW","BACKGROUND")
|
self.healFrame = self:BarFactory(self.healFrame, "LOW","BACKGROUND", "Heal")
|
||||||
|
|
||||||
self.healFrame.bar:SetVertexColor(self:GetColor("PlayerHealthHealAmount", self.alpha * self.moduleSettings.healAlpha))
|
self.healFrame.bar:SetVertexColor(self:GetColor("PlayerHealthHealAmount", self.alpha * self.moduleSettings.healAlpha))
|
||||||
|
|
||||||
@ -946,7 +948,7 @@ function PlayerHealth.prototype:CreateHealBar()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function PlayerHealth.prototype:CreateAbsorbBar()
|
function PlayerHealth.prototype:CreateAbsorbBar()
|
||||||
self.absorbFrame = self:BarFactory(self.absorbFrame, "LOW","BACKGROUND")
|
self.absorbFrame = self:BarFactory(self.absorbFrame, "LOW","BACKGROUND", "Absorb")
|
||||||
|
|
||||||
self.absorbFrame.bar:SetVertexColor(self:GetColor("PlayerHealthAbsorbAmount", self.alpha * self.moduleSettings.absorbAlpha))
|
self.absorbFrame.bar:SetVertexColor(self:GetColor("PlayerHealthAbsorbAmount", self.alpha * self.moduleSettings.absorbAlpha))
|
||||||
|
|
||||||
|
@ -387,7 +387,7 @@ function PlayerMana.prototype:Update(unit, powertype)
|
|||||||
if not IceHUD.IceCore:ShouldUseDogTags() then
|
if not IceHUD.IceCore:ShouldUseDogTags() then
|
||||||
-- extra hack for whiny rogues (are there other kind?)
|
-- extra hack for whiny rogues (are there other kind?)
|
||||||
local displayPercentage = self.manaPercentage
|
local displayPercentage = self.manaPercentage
|
||||||
if self.manaType == SPELL_POWER_ENERGY or self.manaType == SPELL_POWER_FOCUS then
|
if self.manaType == SPELL_POWER_ENERGY or self.manaType == SPELL_POWER_FOCUS or self.manaType == SPELL_POWER_FURY then
|
||||||
displayPercentage = self.mana
|
displayPercentage = self.mana
|
||||||
else
|
else
|
||||||
displayPercentage = math.floor(displayPercentage * 100)
|
displayPercentage = math.floor(displayPercentage * 100)
|
||||||
|
@ -9,6 +9,8 @@ local maxComboPoints = 5
|
|||||||
local rtbEndTime = 0
|
local rtbEndTime = 0
|
||||||
local rtbDuration = 0
|
local rtbDuration = 0
|
||||||
local rtbCount = 0
|
local rtbCount = 0
|
||||||
|
local sixComboPointsTalentID = 19240
|
||||||
|
local behaviorDependsOnComboPoints = IceHUD.WowVer < 90000
|
||||||
|
|
||||||
local CurrMaxRtBDuration = 0
|
local CurrMaxRtBDuration = 0
|
||||||
local PotentialRtBDuration = 0
|
local PotentialRtBDuration = 0
|
||||||
@ -33,12 +35,14 @@ function RollTheBones.prototype:init()
|
|||||||
self.moduleSettings.shouldAnimate = false
|
self.moduleSettings.shouldAnimate = false
|
||||||
|
|
||||||
self:SetDefaultColor("RollTheBones", 1, 0.6, 0.2)
|
self:SetDefaultColor("RollTheBones", 1, 0.6, 0.2)
|
||||||
|
if behaviorDependsOnComboPoints then
|
||||||
self:SetDefaultColor("RollTheBones2", 0.75, 1, 0.2)
|
self:SetDefaultColor("RollTheBones2", 0.75, 1, 0.2)
|
||||||
self:SetDefaultColor("RollTheBones3", 0.4, 1, 0.2)
|
self:SetDefaultColor("RollTheBones3", 0.4, 1, 0.2)
|
||||||
self:SetDefaultColor("RollTheBones4", 0.4, 1, 0.2)
|
self:SetDefaultColor("RollTheBones4", 0.4, 1, 0.2)
|
||||||
self:SetDefaultColor("RollTheBones5", 0.1, 1, 0.7)
|
self:SetDefaultColor("RollTheBones5", 0.1, 1, 0.7)
|
||||||
self:SetDefaultColor("RollTheBones6", 0.1, 1, 0.7)
|
self:SetDefaultColor("RollTheBones6", 0.1, 1, 0.7)
|
||||||
self:SetDefaultColor("RollTheBonesPotential", 1, 1, 1)
|
self:SetDefaultColor("RollTheBonesPotential", 1, 1, 1)
|
||||||
|
end
|
||||||
|
|
||||||
self.bTreatEmptyAsFull = true
|
self.bTreatEmptyAsFull = true
|
||||||
end
|
end
|
||||||
@ -50,7 +54,10 @@ function RollTheBones.prototype:Enable(core)
|
|||||||
RollTheBones.super.prototype.Enable(self, core)
|
RollTheBones.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_AURA", "UpdateRollTheBones")
|
self:RegisterEvent("UNIT_AURA", "UpdateRollTheBones")
|
||||||
|
|
||||||
|
if behaviorDependsOnComboPoints then
|
||||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "ComboPointsChanged")
|
self:RegisterEvent(IceHUD.UnitPowerEvent, "ComboPointsChanged")
|
||||||
|
end
|
||||||
|
|
||||||
if not self.moduleSettings.alwaysFullAlpha then
|
if not self.moduleSettings.alwaysFullAlpha then
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
@ -106,6 +113,7 @@ function RollTheBones.prototype:GetOptions()
|
|||||||
opts["textSettings"].args["upperTextString"]["desc"] = "The text to display under this bar. # will be replaced with the number of Roll the Bones seconds remaining."
|
opts["textSettings"].args["upperTextString"]["desc"] = "The text to display under this bar. # will be replaced with the number of Roll the Bones seconds remaining."
|
||||||
opts["textSettings"].args["upperTextString"].hidden = false
|
opts["textSettings"].args["upperTextString"].hidden = false
|
||||||
|
|
||||||
|
if behaviorDependsOnComboPoints then
|
||||||
opts["showAsPercentOfMax"] =
|
opts["showAsPercentOfMax"] =
|
||||||
{
|
{
|
||||||
type = 'toggle',
|
type = 'toggle',
|
||||||
@ -142,6 +150,24 @@ function RollTheBones.prototype:GetOptions()
|
|||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opts["bUseMultipleBuffColors"] =
|
||||||
|
{
|
||||||
|
type = 'toggle',
|
||||||
|
name = L["Use multiple buff colors"],
|
||||||
|
desc = L["If this is checked, then the bar uses different colors depending on how many RtB buffs you have"],
|
||||||
|
get = function()
|
||||||
|
return self.moduleSettings.bUseMultipleBuffColors
|
||||||
|
end,
|
||||||
|
set = function(info, v)
|
||||||
|
self.moduleSettings.bUseMultipleBuffColors = v
|
||||||
|
self:Redraw()
|
||||||
|
end,
|
||||||
|
disabled = function()
|
||||||
|
return not self.moduleSettings.enabled
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
opts["bShowWithNoTarget"] =
|
opts["bShowWithNoTarget"] =
|
||||||
{
|
{
|
||||||
type = 'toggle',
|
type = 'toggle',
|
||||||
@ -159,23 +185,6 @@ function RollTheBones.prototype:GetOptions()
|
|||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
opts["bUseMultipleBuffColors"] =
|
|
||||||
{
|
|
||||||
type = 'toggle',
|
|
||||||
name = L["Use multiple buff colors"],
|
|
||||||
desc = L["If this is checked, then the bar uses different colors depending on how many RtB buffs you have"],
|
|
||||||
get = function()
|
|
||||||
return self.moduleSettings.bUseMultipleBuffColors
|
|
||||||
end,
|
|
||||||
set = function(info, v)
|
|
||||||
self.moduleSettings.bUseMultipleBuffColors = v
|
|
||||||
self:Redraw()
|
|
||||||
end,
|
|
||||||
disabled = function()
|
|
||||||
return not self.moduleSettings.enabled
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
||||||
return opts
|
return opts
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -186,7 +195,11 @@ function RollTheBones.prototype:CreateFrame()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function RollTheBones.prototype:CreateDurationBar()
|
function RollTheBones.prototype:CreateDurationBar()
|
||||||
self.durationFrame = self:BarFactory(self.durationFrame, "BACKGROUND","ARTWORK")
|
if not behaviorDependsOnComboPoints then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.durationFrame = self:BarFactory(self.durationFrame, "BACKGROUND","ARTWORK", "Duration")
|
||||||
|
|
||||||
-- Rokiyo: Do we need to call this here?
|
-- Rokiyo: Do we need to call this here?
|
||||||
self.CurrScale = 0
|
self.CurrScale = 0
|
||||||
@ -204,8 +217,10 @@ end
|
|||||||
function RollTheBones.prototype:RotateHorizontal()
|
function RollTheBones.prototype:RotateHorizontal()
|
||||||
RollTheBones.super.prototype.RotateHorizontal(self)
|
RollTheBones.super.prototype.RotateHorizontal(self)
|
||||||
|
|
||||||
|
if self.durationFrame then
|
||||||
self:RotateFrame(self.durationFrame)
|
self:RotateFrame(self.durationFrame)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function RollTheBones.prototype:ResetRotation()
|
function RollTheBones.prototype:ResetRotation()
|
||||||
RollTheBones.super.prototype.ResetRotation(self)
|
RollTheBones.super.prototype.ResetRotation(self)
|
||||||
@ -308,7 +323,7 @@ function RollTheBones.prototype:UpdateRollTheBones(event, unit, fromUpdate)
|
|||||||
if not remaining then
|
if not remaining then
|
||||||
remaining = rtbEndTime - now
|
remaining = rtbEndTime - now
|
||||||
end
|
end
|
||||||
local denominator = (self.moduleSettings.showAsPercentOfMax and CurrMaxRtBDuration or rtbDuration)
|
local denominator = ((self.moduleSettings.showAsPercentOfMax and behaviorDependsOnComboPoints) and CurrMaxRtBDuration or rtbDuration)
|
||||||
self:UpdateBar(denominator ~= 0 and remaining / denominator or 0, self:GetColorName(rtbCount))
|
self:UpdateBar(denominator ~= 0 and remaining / denominator or 0, self:GetColorName(rtbCount))
|
||||||
else
|
else
|
||||||
self:UpdateBar(0, "RollTheBones")
|
self:UpdateBar(0, "RollTheBones")
|
||||||
@ -326,13 +341,13 @@ function RollTheBones.prototype:UpdateRollTheBones(event, unit, fromUpdate)
|
|||||||
|
|
||||||
-- somewhat redundant, but we also need to check potential remaining time
|
-- somewhat redundant, but we also need to check potential remaining time
|
||||||
if (remaining ~= nil) or PotentialRtBDuration > 0 then
|
if (remaining ~= nil) or PotentialRtBDuration > 0 then
|
||||||
local potText = " (" .. PotentialRtBDuration .. ")"
|
local potText = behaviorDependsOnComboPoints and " (" .. PotentialRtBDuration .. ")" or ""
|
||||||
self:SetBottomText1(self.moduleSettings.upperText .. tostring(floor(remaining or 0)) .. (self.moduleSettings.durationAlpha ~= 0 and potText or ""))
|
self:SetBottomText1(self.moduleSettings.upperText .. tostring(floor(remaining or 0)) .. (self.moduleSettings.durationAlpha ~= 0 and potText or ""))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function RollTheBones.prototype:GetColorName(count)
|
function RollTheBones.prototype:GetColorName(count)
|
||||||
if self.moduleSettings.bUseMultipleBuffColors and count >= 2 then
|
if behaviorDependsOnComboPoints and self.moduleSettings.bUseMultipleBuffColors and count >= 2 then
|
||||||
return "RollTheBones"..count
|
return "RollTheBones"..count
|
||||||
else
|
else
|
||||||
return "RollTheBones"
|
return "RollTheBones"
|
||||||
@ -352,13 +367,17 @@ function RollTheBones.prototype:TargetChanged()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function RollTheBones.prototype:UpdateDurationBar(event, unit)
|
function RollTheBones.prototype:UpdateDurationBar(event, unit)
|
||||||
|
if not self.durationFrame then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
if unit and unit ~= self.unit then
|
if unit and unit ~= self.unit then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local points = RTBGetComboPoints(self.unit)
|
local points = RTBGetComboPoints(self.unit)
|
||||||
-- check for Deeper Stratagem
|
-- check for Deeper Stratagem
|
||||||
local _, _, _, DeeperStratagem = GetTalentInfo(3, 1, 1)
|
local _, _, _, DeeperStratagem = GetTalentInfoByID(sixComboPointsTalentID, GetActiveSpecGroup())
|
||||||
|
|
||||||
if DeeperStratagem then
|
if DeeperStratagem then
|
||||||
-- first, set the cached upper limit of RtB duration
|
-- first, set the cached upper limit of RtB duration
|
||||||
|
@ -20,6 +20,7 @@ local impSndBonusPerRank = 0.25
|
|||||||
local maxComboPoints = 5
|
local maxComboPoints = 5
|
||||||
local sndEndTime = 0
|
local sndEndTime = 0
|
||||||
local sndDuration = 0
|
local sndDuration = 0
|
||||||
|
local sixComboPointsTalentID = 19240
|
||||||
|
|
||||||
local CurrMaxSnDDuration = 0
|
local CurrMaxSnDDuration = 0
|
||||||
local PotentialSnDDuration = 0
|
local PotentialSnDDuration = 0
|
||||||
@ -66,6 +67,11 @@ function SliceAndDice.prototype:Enable(core)
|
|||||||
self:RegisterEvent(IceHUD.UnitPowerEvent, "ComboPointsChanged")
|
self:RegisterEvent(IceHUD.UnitPowerEvent, "ComboPointsChanged")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self:RegisterEvent("PLAYER_TALENT_UPDATE", "CheckMaxComboPoints")
|
||||||
|
self:CheckMaxComboPoints()
|
||||||
|
end
|
||||||
|
|
||||||
if not self.moduleSettings.alwaysFullAlpha then
|
if not self.moduleSettings.alwaysFullAlpha then
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
else
|
else
|
||||||
@ -75,6 +81,11 @@ function SliceAndDice.prototype:Enable(core)
|
|||||||
self:SetBottomText1("")
|
self:SetBottomText1("")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function SliceAndDice.prototype:CheckMaxComboPoints()
|
||||||
|
local talentID, name, texture, selected, available, spellID, unknown, row, column, known, grantedByAura = GetTalentInfoByID(sixComboPointsTalentID, GetActiveSpecGroup())
|
||||||
|
maxComboPoints = selected and 6 or 5
|
||||||
|
end
|
||||||
|
|
||||||
function SliceAndDice.prototype:Disable(core)
|
function SliceAndDice.prototype:Disable(core)
|
||||||
SliceAndDice.super.prototype.Disable(self, core)
|
SliceAndDice.super.prototype.Disable(self, core)
|
||||||
end
|
end
|
||||||
@ -182,7 +193,7 @@ function SliceAndDice.prototype:CreateFrame()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function SliceAndDice.prototype:CreateDurationBar()
|
function SliceAndDice.prototype:CreateDurationBar()
|
||||||
self.durationFrame = self:BarFactory(self.durationFrame, "BACKGROUND","ARTWORK")
|
self.durationFrame = self:BarFactory(self.durationFrame, "BACKGROUND","ARTWORK", "Duration")
|
||||||
|
|
||||||
-- Rokiyo: Do we need to call this here?
|
-- Rokiyo: Do we need to call this here?
|
||||||
self.CurrScale = 0
|
self.CurrScale = 0
|
||||||
@ -270,6 +281,10 @@ local function HasSpell(id)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function ShouldHide()
|
local function ShouldHide()
|
||||||
|
if IceHUD.WowVer >= 90000 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
return --[[(IceHUD.WowVer < 70000 or not IsSpellKnown(193316)) and]] not IsPlayerSpell(5171) -- IsSpellKnown returns incorrect info for SnD in 7.0
|
return --[[(IceHUD.WowVer < 70000 or not IsSpellKnown(193316)) and]] not IsPlayerSpell(5171) -- IsSpellKnown returns incorrect info for SnD in 7.0
|
||||||
-- commented code is here in case we decide we'd like to use this module for Roll the Bones.
|
-- commented code is here in case we decide we'd like to use this module for Roll the Bones.
|
||||||
-- if we do, though, the "active" check gets way more complicated since it can activate any number of 6 different abilities
|
-- if we do, though, the "active" check gets way more complicated since it can activate any number of 6 different abilities
|
||||||
|
@ -137,7 +137,7 @@ function StaggerBar.prototype:CreateFrame()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function StaggerBar.prototype:CreateTimerBar()
|
function StaggerBar.prototype:CreateTimerBar()
|
||||||
self.timerFrame = self:BarFactory(self.timerFrame, "MEDIUM","ARTWORK")
|
self.timerFrame = self:BarFactory(self.timerFrame, "MEDIUM","ARTWORK", "Timer")
|
||||||
|
|
||||||
self.CurrScale = 0
|
self.CurrScale = 0
|
||||||
|
|
||||||
|
@ -23,6 +23,13 @@ if IceHUD.WowVer >= 50000 or IceHUD.WowClassic then
|
|||||||
MAX_NUM_RAID_MEMBERS = MAX_RAID_MEMBERS
|
MAX_NUM_RAID_MEMBERS = MAX_RAID_MEMBERS
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local UnitGroupRolesAssigned = UnitGroupRolesAssigned
|
||||||
|
if not UnitGroupRolesAssigned then
|
||||||
|
UnitGroupRolesAssigned = function()
|
||||||
|
return "NONE"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local MAX_NUM_RAID_MEMBERS = 40
|
local MAX_NUM_RAID_MEMBERS = 40
|
||||||
local MAX_NUM_PARTY_MEMBERS = 5
|
local MAX_NUM_PARTY_MEMBERS = 5
|
||||||
|
|
||||||
@ -224,7 +231,7 @@ end
|
|||||||
|
|
||||||
-- create the aggro range indicator bar
|
-- create the aggro range indicator bar
|
||||||
function IceThreat.prototype:CreateAggroBar()
|
function IceThreat.prototype:CreateAggroBar()
|
||||||
self.aggroBar = self:BarFactory(self.aggroBar, "BACKGROUND","ARTWORK")
|
self.aggroBar = self:BarFactory(self.aggroBar, "BACKGROUND","ARTWORK", "Aggro")
|
||||||
|
|
||||||
local r, g, b = self:GetColor("ThreatPullAggro")
|
local r, g, b = self:GetColor("ThreatPullAggro")
|
||||||
if (self.settings.backgroundToggle) then
|
if (self.settings.backgroundToggle) then
|
||||||
@ -236,7 +243,7 @@ function IceThreat.prototype:CreateAggroBar()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function IceThreat.prototype:CreateSecondThreatBar()
|
function IceThreat.prototype:CreateSecondThreatBar()
|
||||||
self.secondThreatBar = self:BarFactory(self.secondThreatBar, "MEDIUM", "OVERLAY")
|
self.secondThreatBar = self:BarFactory(self.secondThreatBar, "MEDIUM", "OVERLAY", "SecondThreat")
|
||||||
|
|
||||||
self.secondThreatBar.bar:SetVertexColor(self:GetColor("ThreatSecondPlace", self.alpha * self.moduleSettings.secondPlaceThreatAlpha))
|
self.secondThreatBar.bar:SetVertexColor(self:GetColor("ThreatSecondPlace", self.alpha * self.moduleSettings.secondPlaceThreatAlpha))
|
||||||
|
|
||||||
|
@ -245,7 +245,7 @@ function Totems.prototype:UpdateTotem(event, totem, ...)
|
|||||||
if not totem or tonumber(totem) ~= totem or totem < 1 or totem > self.numTotems or not GetTotemInfo then
|
if not totem or tonumber(totem) ~= totem or totem < 1 or totem > self.numTotems or not GetTotemInfo then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local thisTotemName = self.totemNames[TOTEM_PRIORITIES[totem]]
|
|
||||||
local haveTotem, name, startTime, duration, icon = GetTotemInfo(totem);
|
local haveTotem, name, startTime, duration, icon = GetTotemInfo(totem);
|
||||||
if duration > 0 then
|
if duration > 0 then
|
||||||
self.frame.graphical[totem].totem:SetTexture(icon)
|
self.frame.graphical[totem].totem:SetTexture(icon)
|
||||||
@ -422,6 +422,6 @@ end
|
|||||||
|
|
||||||
-- Load us up
|
-- Load us up
|
||||||
local _, unitClass = UnitClass("player")
|
local _, unitClass = UnitClass("player")
|
||||||
if (unitClass == "SHAMAN") or (unitClass == "DRUID") then
|
if IceHUD.WowVer >= 90000 or (unitClass == "SHAMAN") or (unitClass == "DRUID") then
|
||||||
IceHUD.Totems = Totems:new()
|
IceHUD.Totems = Totems:new()
|
||||||
end
|
end
|
||||||
|
15
readme.md
15
readme.md
@ -1,11 +1,13 @@
|
|||||||
|
# IceHUD
|
||||||
|
|
||||||
IceHUD is a highly configurable and customizable HUD addon in the spirit of DHUD, MetaHUD, and others designed to keep your focus in the center of the screen where your character is.
|
IceHUD is a highly configurable and customizable HUD addon in the spirit of DHUD, MetaHUD, and others designed to keep your focus in the center of the screen where your character is.
|
||||||
|
|
||||||
|
## **What it is**
|
||||||
|
|
||||||
### **What it is**
|
* Player and target health and mana bars, casting and mirror bars, pet health and mana bars, druid mana bar in forms, extensive target info, ToT display, and much more, in a vertically-oriented heads-up display.
|
||||||
* Player and target health and mana bars, casting and mirror bars, pet health and mana bars, druid mana bar in forms, extensive target info, ToT display, and much more
|
|
||||||
|
|
||||||
|
## **Short feature list**
|
||||||
|
|
||||||
### **Short feature list**
|
|
||||||
* Lots of different bar shapes and patterns to make the HUD look like you want
|
* Lots of different bar shapes and patterns to make the HUD look like you want
|
||||||
* Class-specific modules such as combo point counters, Slice'n'dice timers, druid mana trackers, Eclipse bar, Holy Power monitoring, Warlock shard tracking, and more
|
* Class-specific modules such as combo point counters, Slice'n'dice timers, druid mana trackers, Eclipse bar, Holy Power monitoring, Warlock shard tracking, and more
|
||||||
* Target-of-target bars, Crowd Control timers, Range Finders, Threat meters, and plenty of other helpful modules
|
* Target-of-target bars, Crowd Control timers, Range Finders, Threat meters, and plenty of other helpful modules
|
||||||
@ -15,13 +17,12 @@ IceHUD is a highly configurable and customizable HUD addon in the spirit of DHUD
|
|||||||
* Fully customizable bars and counters capable of tracking buff/debuff applications on any unit, spell/ability cooldowns, and the health/mana of any unit you specify. The custom health/mana bars will even work with crazy unit specifications like "focustargettargetfocustarget" if you want!
|
* Fully customizable bars and counters capable of tracking buff/debuff applications on any unit, spell/ability cooldowns, and the health/mana of any unit you specify. The custom health/mana bars will even work with crazy unit specifications like "focustargettargetfocustarget" if you want!
|
||||||
* Highly configurable (can totally re-arrange all bars, change text display, etc.)
|
* Highly configurable (can totally re-arrange all bars, change text display, etc.)
|
||||||
|
|
||||||
|
## **Slash commands**
|
||||||
|
|
||||||
### **Slash commands**
|
|
||||||
* /icehud - opens the configuration UI to tweak any setting
|
* /icehud - opens the configuration UI to tweak any setting
|
||||||
* /icehudCL - command-line access to tweak IceHUD settings (for use with macros, etc.)
|
* /icehudCL - command-line access to tweak IceHUD settings (for use with macros, etc.)
|
||||||
|
|
||||||
|
## **Frequently Asked Questions**
|
||||||
# **Frequently Asked Questions**
|
|
||||||
|
|
||||||
1. **How do I hide the default Blizzard player, target unit frames and party unit frames?**
|
1. **How do I hide the default Blizzard player, target unit frames and party unit frames?**
|
||||||
Type /icehud, expand the "Module Settings" section, click "Player Health" or "Target Health," and check "Hide Blizzard Frame" and/or "Hide Blizzard Party Frame". (NOTE: before version 1.3.7, the player/target unitframes were hidden by default. Follow the same steps to enable them if desired)
|
Type /icehud, expand the "Module Settings" section, click "Player Health" or "Target Health," and check "Hide Blizzard Frame" and/or "Hide Blizzard Party Frame". (NOTE: before version 1.3.7, the player/target unitframes were hidden by default. Follow the same steps to enable them if desired)
|
||||||
@ -80,5 +81,7 @@ IceHUD is a highly configurable and customizable HUD addon in the spirit of DHUD
|
|||||||
1. **Why is there no target castbar for Classic?**
|
1. **Why is there no target castbar for Classic?**
|
||||||
The Classic game client doesn't offer a reliable way to show castbars for anyone except the player. IceHUD doesn't support the type of inaccurate guessing at combat log details that would be required to get a semi-useful target castbar.
|
The Classic game client doesn't offer a reliable way to show castbars for anyone except the player. IceHUD doesn't support the type of inaccurate guessing at combat log details that would be required to get a semi-useful target castbar.
|
||||||
|
|
||||||
|
1. **Why do buff/debuff timers not work in Classic?**
|
||||||
|
The Classic game client doesn't provide this information to addons because it wasn't a feature when the game first released. You can install the LibClassicDurations addon to enable support, but it's a best guess and not completely accurate.
|
||||||
|
|
||||||
See [here](https://www.wowace.com/projects/ice-hud/issues/113) for a user-created guide to creating new IceHUD textures.
|
See [here](https://www.wowace.com/projects/ice-hud/issues/113) for a user-created guide to creating new IceHUD textures.
|
||||||
|
6
this_version.md
Normal file
6
this_version.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
v1.13.4:
|
||||||
|
|
||||||
|
- Show Demon Hunter Fury top text as the raw Fury amount instead of a 0-100 scale with DogTags off. (ticket #301)
|
||||||
|
- Package newer LibDogTag to fix upgrade bug in that library.
|
Reference in New Issue
Block a user