mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 22:51:53 -05:00
Compare commits
76 Commits
Author | SHA1 | Date | |
---|---|---|---|
e36b87a407 | |||
880e2e3278 | |||
a5de40f087 | |||
6090814d4e | |||
c78f618149 | |||
6133a59ef3 | |||
a201aa5149 | |||
34d3060df3 | |||
9e7b34d43c | |||
2d4d32fa1f | |||
ca544384b8 | |||
46152e92f4 | |||
f0cafee719 | |||
f8c7875501 | |||
715f9584fb | |||
6824721947 | |||
0ac00068b3 | |||
5ca6f20944 | |||
d9218343d5 | |||
e9020becc0 | |||
c0771ea8f4 | |||
5771f990c7 | |||
702ebbd86a | |||
f214c945af | |||
debaf7f1ff | |||
d05c1dac18 | |||
aec7852011 | |||
8fef3a2b8c | |||
2646481d11 | |||
c75ffcc6fc | |||
b487aaf351 | |||
2235364df9 | |||
a8b6f53a68 | |||
ba2f873b60 | |||
7221e78290 | |||
97d04c174a | |||
6f0ddb7f6d | |||
0188a3fc0b | |||
a3a6cbb7f4 | |||
9ed739fb1b | |||
ab1ad06185 | |||
7b3d910956 | |||
6906f3545d | |||
5d718a4d07 | |||
e7ddb66531 | |||
b328ad0739 | |||
b9cfe48d03 | |||
f9b4d7acbb | |||
e15dc1d226 | |||
c49e0ad84a | |||
e219dac245 | |||
975fd3fbf4 | |||
1b3b9a1bb9 | |||
6610de6814 | |||
45a8f66249 | |||
e1e216d9dd | |||
316ec05e78 | |||
3c3088aa16 | |||
e54c645b99 | |||
5fbf85811e | |||
9b5df60efa | |||
efc25bdb9c | |||
a9e96ca151 | |||
2a98dc961d | |||
3aef209816 | |||
c4adadb301 | |||
7421f916ad | |||
45686f5a36 | |||
30f3210d30 | |||
fe656f463d | |||
b9d1447698 | |||
2c93dbc365 | |||
e7717731cb | |||
fa64f46bc1 | |||
b6fe6b215d | |||
976047a9bc |
6
.pkgmeta
6
.pkgmeta
@ -43,11 +43,9 @@ externals:
|
|||||||
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: svn://svn.wowace.com/wow/libdogtag-3-0/mainline/trunk
|
url: git://git.wowace.com/wow/libdogtag-3-0/mainline.git
|
||||||
tag: latest
|
|
||||||
libs/LibDogTag-Unit-3.0:
|
libs/LibDogTag-Unit-3.0:
|
||||||
url: svn://svn.wowace.com/wow/libdogtag-unit-3-0/mainline/trunk
|
url: git://git.wowace.com/wow/libdogtag-unit-3-0/mainline.git
|
||||||
tag: latest
|
|
||||||
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:
|
||||||
|
@ -946,6 +946,8 @@ function IceBarElement.prototype:CreateFrame()
|
|||||||
|
|
||||||
if self.moduleSettings.rotateBar then
|
if self.moduleSettings.rotateBar then
|
||||||
self:RotateHorizontal()
|
self:RotateHorizontal()
|
||||||
|
else
|
||||||
|
self:ResetRotation()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1140,7 +1142,7 @@ function IceBarElement.prototype:Flip(side)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Rokiyo: bar is the only required argument, scale & top are optional
|
-- Rokiyo: bar is the only required argument, scale & top are optional
|
||||||
function IceBarElement.prototype:SetBarCoord(barFrame, scale, top)
|
function IceBarElement.prototype:SetBarCoord(barFrame, scale, top, overrideReverse)
|
||||||
if not scale then scale = 0 end
|
if not scale then scale = 0 end
|
||||||
scale = IceHUD:Clamp(scale, 0, 1)
|
scale = IceHUD:Clamp(scale, 0, 1)
|
||||||
|
|
||||||
@ -1150,7 +1152,12 @@ function IceBarElement.prototype:SetBarCoord(barFrame, scale, top)
|
|||||||
local min_y, max_y
|
local min_y, max_y
|
||||||
local offset_y = 0
|
local offset_y = 0
|
||||||
|
|
||||||
if IceHUD:xor(self.moduleSettings.reverse, top) then
|
local reverse = self.moduleSettings.reverse
|
||||||
|
if overrideReverse then
|
||||||
|
reverse = false
|
||||||
|
end
|
||||||
|
|
||||||
|
if IceHUD:xor(reverse, top) then
|
||||||
if self.moduleSettings.inverse == "INVERSE" then
|
if self.moduleSettings.inverse == "INVERSE" then
|
||||||
min_y = 1 - scale
|
min_y = 1 - scale
|
||||||
max_y = 1
|
max_y = 1
|
||||||
|
@ -36,6 +36,7 @@ function IceCastBar.prototype:Enable(core)
|
|||||||
IceCastBar.super.prototype.Enable(self, core)
|
IceCastBar.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_SENT", "SpellCastSent") -- "player", spell, rank, target
|
self:RegisterEvent("UNIT_SPELLCAST_SENT", "SpellCastSent") -- "player", spell, rank, target
|
||||||
|
self:RegisterEvent("CURRENT_SPELL_CAST_CHANGED", "SpellCastChanged")
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_START", "SpellCastStart") -- unit, spell, rank
|
self:RegisterEvent("UNIT_SPELLCAST_START", "SpellCastStart") -- unit, spell, rank
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_STOP", "SpellCastStop") -- unit, spell, rank
|
self:RegisterEvent("UNIT_SPELLCAST_STOP", "SpellCastStop") -- unit, spell, rank
|
||||||
|
|
||||||
@ -256,7 +257,7 @@ end
|
|||||||
function IceCastBar.prototype:MyOnUpdate()
|
function IceCastBar.prototype:MyOnUpdate()
|
||||||
-- safety catch
|
-- safety catch
|
||||||
if (self.action == IceCastBar.Actions.None) then
|
if (self.action == IceCastBar.Actions.None) then
|
||||||
IceHUD:Debug("Stopping action ", self.action)
|
--IceHUD:Debug("Stopping action ", self.action)
|
||||||
self:StopBar()
|
self:StopBar()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -412,27 +413,30 @@ end
|
|||||||
-- NORMAL SPELLS --
|
-- NORMAL SPELLS --
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastSent(event, unit, spell, rank, target)
|
function IceCastBar.prototype:SpellCastSent(event, unit, spell, rank, target, lineId)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
--IceHUD:Debug("SpellCastSent", unit, spell, rank, target)
|
IceHUD:Debug("SpellCastSent", unit, spell, rank, target, lineId)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function IceCastBar.prototype:SpellCastChanged(event, arg1)
|
||||||
|
IceHUD:Debug("SpellCastChanged", arg1)
|
||||||
|
end
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastStart(event, unit, spell, rank)
|
function IceCastBar.prototype:SpellCastStart(event, unit, spell, rank, lineId, spellId)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
IceHUD:Debug("SpellCastStart", unit, spell, rank)
|
IceHUD:Debug("SpellCastStart", unit, spell, rank, lineId, spellId)
|
||||||
--UnitCastingInfo(unit)
|
--UnitCastingInfo(unit)
|
||||||
|
|
||||||
self:StartBar(IceCastBar.Actions.Cast)
|
self:StartBar(IceCastBar.Actions.Cast)
|
||||||
self.current = spell
|
self.current = lineId
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastStop(event, unit, spell, rank)
|
function IceCastBar.prototype:SpellCastStop(event, unit, spell, rank, lineId, spellId)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
IceHUD:Debug("SpellCastStop", unit, spell, self.current)
|
IceHUD:Debug("SpellCastStop", unit, spell, self.current, rank, lineId, spellId)
|
||||||
|
|
||||||
-- ignore if not coming from current spell
|
-- ignore if not coming from current spell
|
||||||
if (self.current and spell and self.current ~= spell) then
|
if (self.current and lineId and self.current ~= lineId) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -446,12 +450,12 @@ function IceCastBar.prototype:SpellCastStop(event, unit, spell, rank)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastFailed(event, unit, spell, rank)
|
function IceCastBar.prototype:SpellCastFailed(event, unit, spell, rank, lineId, spellId)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
IceHUD:Debug("SpellCastFailed", unit, self.current)
|
IceHUD:Debug("SpellCastFailed", unit, self.current, lineId, spellId)
|
||||||
|
|
||||||
-- ignore if not coming from current spell
|
-- ignore if not coming from current spell
|
||||||
if (self.current and spell and self.current ~= spell) then
|
if (self.current and lineId and self.current ~= lineId) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -474,12 +478,12 @@ function IceCastBar.prototype:SpellCastFailed(event, unit, spell, rank)
|
|||||||
self:StartBar(IceCastBar.Actions.Failure, "Failed")
|
self:StartBar(IceCastBar.Actions.Failure, "Failed")
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastInterrupted(event, unit, spell, rank)
|
function IceCastBar.prototype:SpellCastInterrupted(event, unit, spell, rank, lineId, spellId)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
IceHUD:Debug("SpellCastInterrupted", unit, self.current)
|
IceHUD:Debug("SpellCastInterrupted", unit, self.current, lineId, spellId)
|
||||||
|
|
||||||
-- ignore if not coming from current spell
|
-- ignore if not coming from current spell
|
||||||
if (self.current and spell and self.current ~= spell) then
|
if (self.current and lineId and self.current ~= lineId) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -501,7 +505,7 @@ function IceCastBar.prototype:SpellCastDelayed(event, unit, delay)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function IceCastBar.prototype:SpellCastSucceeded(event, unit, spell, rank)
|
function IceCastBar.prototype:SpellCastSucceeded(event, unit, spell, rank, lineId, spellId)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
--IceHUD:Debug("SpellCastSucceeded", unit, spell, rank)
|
--IceHUD:Debug("SpellCastSucceeded", unit, spell, rank)
|
||||||
|
|
||||||
@ -511,7 +515,7 @@ function IceCastBar.prototype:SpellCastSucceeded(event, unit, spell, rank)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- ignore if not coming from current spell
|
-- ignore if not coming from current spell
|
||||||
if (self.current and self.current ~= spell) then
|
if (self.current and self.current ~= lineId) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
14
IceCore.lua
14
IceCore.lua
@ -142,7 +142,7 @@ function IceCore.prototype:CheckDisplayUpdateMessage()
|
|||||||
thisVersion = @project-date-integer@
|
thisVersion = @project-date-integer@
|
||||||
--@end-non-debug@]===]
|
--@end-non-debug@]===]
|
||||||
--@debug@
|
--@debug@
|
||||||
thisVersion = 9999
|
thisVersion = 99999999999999
|
||||||
--@end-debug@
|
--@end-debug@
|
||||||
if self.accountSettings.lastRunVersion < thisVersion then
|
if self.accountSettings.lastRunVersion < thisVersion then
|
||||||
if self.accountSettings.lastRunVersion < 549 then
|
if self.accountSettings.lastRunVersion < 549 then
|
||||||
@ -167,6 +167,12 @@ function IceCore.prototype:CheckDisplayUpdateMessage()
|
|||||||
self.settings.modules["LacerateCount"] = {}
|
self.settings.modules["LacerateCount"] = {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if self.accountSettings.lastRunVersion <= 20160527053225 then
|
||||||
|
if self.settings.modules["DruidMana"] ~= nil then
|
||||||
|
self.settings.modules["PlayerAltMana"] = self.settings.modules["DruidMana"]
|
||||||
|
self.settings.modules["DruidMana"] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
self.accountSettings.lastRunVersion = thisVersion
|
self.accountSettings.lastRunVersion = thisVersion
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -266,7 +272,7 @@ end
|
|||||||
|
|
||||||
function IceCore.prototype:RedirectRemovedModules()
|
function IceCore.prototype:RedirectRemovedModules()
|
||||||
local _, class = UnitClass("player")
|
local _, class = UnitClass("player")
|
||||||
if class == "WARRIOR" and self.settings.modules["SunderCount"] and IceHUD.WowVer < 60000 then
|
if class == "WARRIOR" and self.settings.modules["SunderCount"] and GetSpellInfo(SUNDER_SPELL_ID) and IceHUD.WowVer < 60000 then
|
||||||
if self.settings.modules["SunderCount"].enabled or self.settings.modules["SunderCount"].enabled == nil then
|
if self.settings.modules["SunderCount"].enabled or self.settings.modules["SunderCount"].enabled == nil then
|
||||||
local bFound = false
|
local bFound = false
|
||||||
|
|
||||||
@ -303,7 +309,7 @@ function IceCore.prototype:RedirectRemovedModules()
|
|||||||
self.settings.modules["SunderCount"] = nil
|
self.settings.modules["SunderCount"] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
if class == "DRUID" and self.settings.modules["LacerateCount"] then
|
if class == "DRUID" and self.settings.modules["LacerateCount"] and GetSpellInfo(LACERATE_SPELL_ID) then
|
||||||
if self.settings.modules["LacerateCount"].enabled or self.settings.modules["LacerateCount"].enabled == nil then
|
if self.settings.modules["LacerateCount"].enabled or self.settings.modules["LacerateCount"].enabled == nil then
|
||||||
local bFound = false
|
local bFound = false
|
||||||
for k,v in pairs(self.elements) do
|
for k,v in pairs(self.elements) do
|
||||||
@ -340,7 +346,7 @@ function IceCore.prototype:RedirectRemovedModules()
|
|||||||
self.settings.modules["LacerateCount"] = nil
|
self.settings.modules["LacerateCount"] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
if class == "SHAMAN" and self.settings.modules["MaelstromCount"] then
|
if class == "SHAMAN" and self.settings.modules["MaelstromCount"] and GetSpellInfo(MAELSTROM_SPELL_ID) then
|
||||||
if self.settings.modules["MaelstromCount"].enabled or self.settings.modules["MaelstromCount"].enabled == nil then
|
if self.settings.modules["MaelstromCount"].enabled or self.settings.modules["MaelstromCount"].enabled == nil then
|
||||||
local bFound = false
|
local bFound = false
|
||||||
for k,v in pairs(self.elements) do
|
for k,v in pairs(self.elements) do
|
||||||
|
12
IceHUD.lua
12
IceHUD.lua
@ -272,10 +272,10 @@ function IceHUD:OnEnable(isFirst)
|
|||||||
IceHUD_Options:OnLoad()
|
IceHUD_Options:OnLoad()
|
||||||
--@end-debug@
|
--@end-debug@
|
||||||
|
|
||||||
if isFirst then
|
-- if isFirst then
|
||||||
self:SetDebugging(self.IceCore:GetDebug())
|
self:SetDebugging(self.IceCore:GetDebug())
|
||||||
self.debugFrame = ChatFrame2
|
self.debugFrame = ChatFrame1
|
||||||
end
|
-- 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
|
||||||
@ -358,8 +358,12 @@ function IceHUD:LoadOptions()
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceHUD:Debug(msg)
|
function IceHUD:Debug(...)
|
||||||
if self.debugging then
|
if self.debugging then
|
||||||
|
local msg = ""
|
||||||
|
for n=1,select('#', ...) do
|
||||||
|
msg = msg .. tostring(select(n, ...)) .. " "
|
||||||
|
end
|
||||||
self.debugFrame:AddMessage(msg)
|
self.debugFrame:AddMessage(msg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
10
IceHUD.toc
10
IceHUD.toc
@ -1,4 +1,4 @@
|
|||||||
## Interface: 60200
|
## Interface: 70000
|
||||||
## 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
|
||||||
@ -6,9 +6,9 @@
|
|||||||
## Version: @project-version@
|
## Version: @project-version@
|
||||||
## 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-Compatible-With: 50400
|
## X-Compatible-With: 60200
|
||||||
## X-Category: HUDs
|
## X-Category: HUDs
|
||||||
## X-Website: http://www.wowace.com/projects/ice-hud/
|
## X-Website: http://www.wowace.com/addons/ice-hud/
|
||||||
## X-WoWI-ID: 8149
|
## X-WoWI-ID: 8149
|
||||||
|
|
||||||
#@no-lib-strip@
|
#@no-lib-strip@
|
||||||
@ -36,7 +36,6 @@ modules\TargetHealth.lua
|
|||||||
modules\TargetMana.lua
|
modules\TargetMana.lua
|
||||||
modules\PetHealth.lua
|
modules\PetHealth.lua
|
||||||
modules\PetMana.lua
|
modules\PetMana.lua
|
||||||
modules\DruidMana.lua
|
|
||||||
modules\TargetInfo.lua
|
modules\TargetInfo.lua
|
||||||
modules\TargetOfTarget.lua
|
modules\TargetOfTarget.lua
|
||||||
modules\ComboPoints.lua
|
modules\ComboPoints.lua
|
||||||
@ -83,12 +82,13 @@ modules\Vengeance.lua
|
|||||||
modules\Resolve.lua
|
modules\Resolve.lua
|
||||||
modules\PlayerAlternatePower.lua
|
modules\PlayerAlternatePower.lua
|
||||||
modules\HarmonyPower.lua
|
modules\HarmonyPower.lua
|
||||||
modules\MonkManaBar.lua
|
|
||||||
modules\ShadowOrbs.lua
|
modules\ShadowOrbs.lua
|
||||||
modules\TargetAbsorb.lua
|
modules\TargetAbsorb.lua
|
||||||
modules\PlayerAbsorb.lua
|
modules\PlayerAbsorb.lua
|
||||||
modules\FocusAbsorb.lua
|
modules\FocusAbsorb.lua
|
||||||
modules\Stagger.lua
|
modules\Stagger.lua
|
||||||
|
modules\PlayerAltMana.lua
|
||||||
|
modules\ArcaneCharges.lua
|
||||||
|
|
||||||
#@do-not-package@
|
#@do-not-package@
|
||||||
IceHUD_Options\Options.lua
|
IceHUD_Options\Options.lua
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
## Interface: 60200
|
## Interface: 70000
|
||||||
## Title: IceHUD |cff7fff7f-Options-|r
|
## Title: IceHUD |cff7fff7f-Options-|r
|
||||||
## Author: Parnic
|
## Author: Parnic
|
||||||
## Version: @project-version@
|
## Version: @project-version@
|
||||||
|
@ -77,7 +77,13 @@ This module is called HarmonyPower. Harmony was the original name for Chi back w
|
|||||||
If you have DogTags enabled, you can open the Text Settings for the module in question and add SeparateDigits() around the tag you're trying to split up. To display Health/MaxHealth with commas, use: [(SeparateDigits(HP):HPColor "/" SeparateDigits(MaxHP):HPColor):Bracket]. To use periods instead of commas, use: [(SeparateDigits(HP, "."):HPColor "/" SeparateDigits(MaxHP, "."):HPColor):Bracket]. Use the /dog help menu to build your own similar tags for Mana, etc.
|
If you have DogTags enabled, you can open the Text Settings for the module in question and add SeparateDigits() around the tag you're trying to split up. To display Health/MaxHealth with commas, use: [(SeparateDigits(HP):HPColor "/" SeparateDigits(MaxHP):HPColor):Bracket]. To use periods instead of commas, use: [(SeparateDigits(HP, "."):HPColor "/" SeparateDigits(MaxHP, "."):HPColor):Bracket]. Use the /dog help menu to build your own similar tags for Mana, etc.
|
||||||
|
|
||||||
|cff9999ff16. The countdown timers on buffs and debuffs completely obscure the icon. How do I disable the timer text?|r
|
|cff9999ff16. The countdown timers on buffs and debuffs completely obscure the icon. How do I disable the timer text?|r
|
||||||
IceHUD is not responsible for this countdown text and cannot control it. The 6.0 patch added an option in the game client to display counts on top of cooldowns. Look at the Action Bars menu under the game's Interface options. You can turn the text on or off there. Mods like OmniCC or CooldownCount will generally give you the same feature but allow you to control when, where, and how the text shows up.]]
|
IceHUD is not responsible for this countdown text and cannot control it. The 6.0 patch added an option in the game client to display counts on top of cooldowns. Look at the Action Bars menu under the game's Interface options. You can turn the text on or off there. Mods like OmniCC or CooldownCount will generally give you the same feature but allow you to control when, where, and how the text shows up.
|
||||||
|
|
||||||
|
|cff9999ff17. When I rotate some modules 90 degrees, such as the castbar, the bar appears to wiggle up and down as it fills or empties. How do I fix this?|r
|
||||||
|
This is a side effect of the animation API that I'm co-opting to force a rotation without having to provide duplicates of every bar texture in the mod. Any bar moving sufficiently quickly and updating rapidly will cause this. IceHUD is intended to be a vertically-oriented mod, so the rotation feature is there for people who are willing to accept the side effects that come with it. My suggestion is to use one of the many horizontally-oriented bar mods out there if you're wanting horizontal bars. Quartz is a good castbar replacement that you can use and disable IceHUD's built-in castbar, for example.
|
||||||
|
|
||||||
|
|cff9999ff18. How do I get rid of the bars that showed up beneath the player in the 7.0 patch?|r
|
||||||
|
Blizzard added a "Personal Resource Display" feature in the 7.0 game client. You can disable it in the Game options -> Interface -> Names -> Personal Resource Display.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -197,13 +197,15 @@ end
|
|||||||
function IceUnitBar.prototype:RotateHorizontal()
|
function IceUnitBar.prototype:RotateHorizontal()
|
||||||
IceUnitBar.super.prototype.RotateHorizontal(self)
|
IceUnitBar.super.prototype.RotateHorizontal(self)
|
||||||
|
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self:RotateFrame(self.flashFrame)
|
self:RotateFrame(self.flashFrame)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function IceUnitBar.prototype:ResetRotation()
|
function IceUnitBar.prototype:ResetRotation()
|
||||||
IceUnitBar.super.prototype.ResetRotation(self)
|
IceUnitBar.super.prototype.ResetRotation(self)
|
||||||
|
|
||||||
if self.flashFrame.anim then
|
if IceHUD.WowVer < 70000 and self.flashFrame and self.flashFrame.anim then
|
||||||
self.flashFrame.anim:Stop()
|
self.flashFrame.anim:Stop()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -213,14 +215,18 @@ end
|
|||||||
function IceUnitBar.prototype:Update()
|
function IceUnitBar.prototype:Update()
|
||||||
IceUnitBar.super.prototype.Update(self)
|
IceUnitBar.super.prototype.Update(self)
|
||||||
|
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self.tapped = UnitIsTapped(self.unit) and (not UnitIsTappedByPlayer(self.unit))
|
self.tapped = UnitIsTapped(self.unit) and (not UnitIsTappedByPlayer(self.unit))
|
||||||
|
else
|
||||||
|
self.tapped = UnitIsTapDenied(self.unit)
|
||||||
|
end
|
||||||
|
|
||||||
self.health = UnitHealth(self.unit)
|
self.health = UnitHealth(self.unit)
|
||||||
self.maxHealth = UnitHealthMax(self.unit)
|
self.maxHealth = UnitHealthMax(self.unit)
|
||||||
self.healthPercentage = self.maxHealth ~= 0 and (self.health/self.maxHealth) or 0
|
self.healthPercentage = self.maxHealth ~= 0 and (self.health/self.maxHealth) or 0
|
||||||
|
|
||||||
self.mana = UnitPower(self.unit)
|
self.mana = UnitPower(self.unit, UnitPowerType(self.unit))
|
||||||
self.maxMana = UnitPowerMax(self.unit)
|
self.maxMana = UnitPowerMax(self.unit, UnitPowerType(self.unit))
|
||||||
self.manaPercentage = self.maxMana ~= 0 and (self.mana/self.maxMana) or 0
|
self.manaPercentage = self.maxMana ~= 0 and (self.mana/self.maxMana) or 0
|
||||||
|
|
||||||
local locClass
|
local locClass
|
||||||
|
61
modules/ArcaneCharges.lua
Normal file
61
modules/ArcaneCharges.lua
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
|
local ArcaneCharges = IceCore_CreateClass(IceClassPowerCounter)
|
||||||
|
|
||||||
|
function ArcaneCharges.prototype:init()
|
||||||
|
ArcaneCharges.super.prototype.init(self, "ArcaneCharges")
|
||||||
|
|
||||||
|
self:SetDefaultColor("ArcaneChargesNumeric", 150, 150, 255)
|
||||||
|
|
||||||
|
self.unit = "player"
|
||||||
|
self.numericColor = "ArcaneChargesNumeric"
|
||||||
|
self.unitPower = SPELL_POWER_ARCANE_CHARGES
|
||||||
|
self.minLevel = 0
|
||||||
|
self.bTreatEmptyAsFull = true
|
||||||
|
self.runeWidth = self.runeHeight
|
||||||
|
self.requiredSpec = SPEC_MAGE_ARCANE
|
||||||
|
end
|
||||||
|
|
||||||
|
function ArcaneCharges.prototype:Enable(core)
|
||||||
|
self.numRunes = UnitPowerMax(self.unit, SPELL_POWER_ARCANE_CHARGES)
|
||||||
|
self.runeCoords = { }
|
||||||
|
for i = 1, self.numRunes do
|
||||||
|
self.runeCoords[#self.runeCoords + 1] = {0, 1, 0, 1}
|
||||||
|
end
|
||||||
|
|
||||||
|
ArcaneCharges.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function ArcaneCharges.prototype:GetOptions()
|
||||||
|
local opts = ArcaneCharges.super.prototype.GetOptions(self)
|
||||||
|
|
||||||
|
opts.hideBlizz.desc = L["Hides Blizzard Arcane Charges frame and disables all events related to it.\n\nNOTE: Blizzard attaches the arcane charges UI to the player's unitframe, so if you have that hidden in PlayerHealth, then this won't do anything."]
|
||||||
|
|
||||||
|
return opts
|
||||||
|
end
|
||||||
|
|
||||||
|
function ArcaneCharges.prototype:GetRuneAtlas(rune)
|
||||||
|
return "Mage-ArcaneCharge"
|
||||||
|
end
|
||||||
|
|
||||||
|
function ArcaneCharges.prototype:GetShineAtlas(rune)
|
||||||
|
return "Mage-ArcaneCharge-SmallSpark"
|
||||||
|
end
|
||||||
|
|
||||||
|
function ArcaneCharges.prototype:ShowBlizz()
|
||||||
|
MageArcaneChargesFrame:Show()
|
||||||
|
|
||||||
|
MageArcaneChargesFrame:GetScript("OnLoad")(MageArcaneChargesFrame)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ArcaneCharges.prototype:HideBlizz()
|
||||||
|
MageArcaneChargesFrame:Hide()
|
||||||
|
|
||||||
|
MageArcaneChargesFrame:UnregisterAllEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Load us up
|
||||||
|
local _, unitClass = UnitClass("player")
|
||||||
|
if (unitClass == "MAGE" and IceHUD.WowVer >= 70000) then
|
||||||
|
IceHUD.ArcaneCharges = ArcaneCharges:new()
|
||||||
|
end
|
@ -3,9 +3,8 @@ local CastBar = IceCore_CreateClass(IceCastBar)
|
|||||||
|
|
||||||
local IceHUD = _G.IceHUD
|
local IceHUD = _G.IceHUD
|
||||||
|
|
||||||
CastBar.prototype.lagBar = nil
|
|
||||||
CastBar.prototype.spellCastSent = nil
|
CastBar.prototype.spellCastSent = nil
|
||||||
|
CastBar.prototype.sentSpell = nil
|
||||||
|
|
||||||
-- Constructor --
|
-- Constructor --
|
||||||
function CastBar.prototype:init()
|
function CastBar.prototype:init()
|
||||||
@ -35,6 +34,7 @@ function CastBar.prototype:GetDefaultSettings()
|
|||||||
settings["usesDogTagStrings"] = false
|
settings["usesDogTagStrings"] = false
|
||||||
settings["rangeColor"] = true
|
settings["rangeColor"] = true
|
||||||
settings["bAllowExpand"] = false
|
settings["bAllowExpand"] = false
|
||||||
|
settings["respectLagTolerance"] = true
|
||||||
|
|
||||||
return settings
|
return settings
|
||||||
end
|
end
|
||||||
@ -119,6 +119,24 @@ function CastBar.prototype:GetOptions()
|
|||||||
order = 43
|
order = 43
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opts["respectLagTolerance"] =
|
||||||
|
{
|
||||||
|
type = 'toggle',
|
||||||
|
name = L["Respect lag tolerance"],
|
||||||
|
desc = L["When checked, if a 'Custom Lag Tolerance' is set in the game's Combat options, the lag indicator will always use that tolerance value. Otherwise, it uses the computed latency."],
|
||||||
|
get = function()
|
||||||
|
return self.moduleSettings.respectLagTolerance
|
||||||
|
end,
|
||||||
|
set = function(info, value)
|
||||||
|
self.moduleSettings.respectLagTolerance = value
|
||||||
|
self:CVarUpdate()
|
||||||
|
end,
|
||||||
|
disabled = function()
|
||||||
|
return not self.moduleSettings.enabled or GetCVar("reducedLagTolerance") == "0"
|
||||||
|
end,
|
||||||
|
order = 42.1,
|
||||||
|
}
|
||||||
|
|
||||||
opts["barVisible"] = {
|
opts["barVisible"] = {
|
||||||
type = 'toggle',
|
type = 'toggle',
|
||||||
name = L["Bar visible"],
|
name = L["Bar visible"],
|
||||||
@ -339,7 +357,7 @@ function CastBar.prototype:CheckVehicle()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function CastBar.prototype:CVarUpdate(...)
|
function CastBar.prototype:CVarUpdate(...)
|
||||||
self.useFixedLatency = GetCVar("reducedLagTolerance") == "1"
|
self.useFixedLatency = self.moduleSettings.respectLagTolerance and GetCVar("reducedLagTolerance") == "1"
|
||||||
self.fixedLatency = tonumber(GetCVar("maxSpellStartRecoveryoffset")) / 1000
|
self.fixedLatency = tonumber(GetCVar("maxSpellStartRecoveryoffset")) / 1000
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -373,36 +391,50 @@ end
|
|||||||
|
|
||||||
|
|
||||||
function CastBar.prototype:CreateLagBar()
|
function CastBar.prototype:CreateLagBar()
|
||||||
self.lagBar = self:BarFactory(self.lagBar, "LOW","BACKGROUND")
|
self.lagBar = self:BarFactory(self.lagBar, "LOW", "OVERLAY")
|
||||||
self:SetBarCoord(self.lagBar, 0 , true)
|
|
||||||
|
|
||||||
local r, g, b = self:GetColor("CastLag")
|
local r, g, b = self:GetColor("CastLag")
|
||||||
if (self.settings.backgroundToggle) then
|
if (self.settings.backgroundToggle) then
|
||||||
r, g, b = self:GetColor("CastCasting")
|
r, g, b = self:GetColor("CastCasting")
|
||||||
end
|
end
|
||||||
self.lagBar.bar:SetVertexColor(r, g, b, self.moduleSettings.lagAlpha)
|
|
||||||
|
|
||||||
|
self.lagBar.bar:SetVertexColor(r, g, b, self.moduleSettings.lagAlpha)
|
||||||
self.lagBar.bar:Hide()
|
self.lagBar.bar:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- OVERRIDE
|
-- OVERRIDE
|
||||||
function CastBar.prototype:SpellCastSent(event, unit, spell, rank, target)
|
function CastBar.prototype:SpellCastSent(event, unit, spell, rank, target, lineId)
|
||||||
CastBar.super.prototype.SpellCastSent(self, event, unit, spell, rank, target)
|
CastBar.super.prototype.SpellCastSent(self, event, unit, spell, rank, target, lineId)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
|
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self.spellCastSent = GetTime()
|
self.spellCastSent = GetTime()
|
||||||
end
|
end
|
||||||
|
self.sentSpell = lineId
|
||||||
|
end
|
||||||
|
|
||||||
-- OVERRIDE
|
-- OVERRIDE
|
||||||
function CastBar.prototype:SpellCastStart(event, unit, spell, rank)
|
function CastBar.prototype:SpellCastChanged(event, arg1)
|
||||||
CastBar.super.prototype.SpellCastStart(self, event, unit, spell, rank)
|
CastBar.super.prototype.SpellCastChanged(self, event, arg1)
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self.spellCastSent = GetTime()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- OVERRIDE
|
||||||
|
function CastBar.prototype:SpellCastStart(event, unit, spell, rank, lineId, spellId)
|
||||||
|
CastBar.super.prototype.SpellCastStart(self, event, unit, spell, rank, lineId, spellId)
|
||||||
if (unit ~= self.unit) then return end
|
if (unit ~= self.unit) then return end
|
||||||
|
|
||||||
if not self:IsVisible() or not self.actionDuration then
|
if not self:IsVisible() or not self.actionDuration then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if self.sentSpell ~= lineId then
|
||||||
|
self.spellCastSent = nil
|
||||||
|
end
|
||||||
|
|
||||||
local scale
|
local scale
|
||||||
if self.unit == "vehicle" then
|
if self.unit == "vehicle" then
|
||||||
scale = 0
|
scale = 0
|
||||||
@ -414,8 +446,7 @@ function CastBar.prototype:SpellCastStart(event, unit, spell, rank)
|
|||||||
scale = IceHUD:Clamp(lag / self.actionDuration, 0, 1)
|
scale = IceHUD:Clamp(lag / self.actionDuration, 0, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.lagBar:SetFrameStrata("BACKGROUND")
|
self:SetBarCoord(self.lagBar, scale, true, true)
|
||||||
self:SetBarCoord(self.lagBar, scale, true)
|
|
||||||
|
|
||||||
self.spellCastSent = nil
|
self.spellCastSent = nil
|
||||||
end
|
end
|
||||||
@ -443,8 +474,7 @@ function CastBar.prototype:SpellCastChannelStart(event, unit)
|
|||||||
|
|
||||||
local top = not self.moduleSettings.reverseChannel
|
local top = not self.moduleSettings.reverseChannel
|
||||||
|
|
||||||
self.lagBar:SetFrameStrata("MEDIUM")
|
self:SetBarCoord(self.lagBar, scale, top, true)
|
||||||
self:SetBarCoord(self.lagBar, scale, top)
|
|
||||||
|
|
||||||
self.spellCastSent = nil
|
self.spellCastSent = nil
|
||||||
end
|
end
|
||||||
|
@ -17,6 +17,7 @@ IceClassPowerCounter.prototype.DesiredAnimPause = 0.5
|
|||||||
IceClassPowerCounter.prototype.requiredSpec = nil
|
IceClassPowerCounter.prototype.requiredSpec = nil
|
||||||
IceClassPowerCounter.prototype.shouldShowUnmodified = false
|
IceClassPowerCounter.prototype.shouldShowUnmodified = false
|
||||||
IceClassPowerCounter.prototype.unmodifiedMaxPerRune = 10
|
IceClassPowerCounter.prototype.unmodifiedMaxPerRune = 10
|
||||||
|
IceClassPowerCounter.prototype.unit = "player"
|
||||||
|
|
||||||
IceClassPowerCounter.prototype.growModes = { width = 1, height = 2 }
|
IceClassPowerCounter.prototype.growModes = { width = 1, height = 2 }
|
||||||
IceClassPowerCounter.prototype.currentGrowMode = nil
|
IceClassPowerCounter.prototype.currentGrowMode = nil
|
||||||
@ -418,6 +419,11 @@ end
|
|||||||
function IceClassPowerCounter.prototype:Enable(core)
|
function IceClassPowerCounter.prototype:Enable(core)
|
||||||
IceClassPowerCounter.super.prototype.Enable(self, core)
|
IceClassPowerCounter.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self.numRunes = UnitPowerMax(self.unit, self.unitPower)
|
||||||
|
end
|
||||||
|
self:CreateFrame()
|
||||||
|
|
||||||
self:CheckValidLevel(nil, UnitLevel("player"))
|
self:CheckValidLevel(nil, UnitLevel("player"))
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -483,6 +489,14 @@ function IceClassPowerCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
local numMax = UnitPowerMax(self.unit, self.unitPower)
|
||||||
|
if numMax ~= self.numRunes then
|
||||||
|
self.numRunes = numMax
|
||||||
|
self:CreateFrame()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local numReady = UnitPower("player", self.unitPower)
|
local numReady = UnitPower("player", self.unitPower)
|
||||||
local percentReady = self.shouldShowUnmodified and (UnitPower("player", self.unitPower, true) / self.unmodifiedMaxPerRune) or numReady
|
local percentReady = self.shouldShowUnmodified and (UnitPower("player", self.unitPower, true) / self.unmodifiedMaxPerRune) or numReady
|
||||||
|
|
||||||
@ -624,9 +638,20 @@ function IceClassPowerCounter.prototype:ShineFinished(rune)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function IceClassPowerCounter.prototype:GetRuneTexture(rune)
|
function IceClassPowerCounter.prototype:GetRuneTexture(rune)
|
||||||
assert(false, "Must override GetRuneTexture in child classes")
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function IceClassPowerCounter.prototype:GetRuneAtlas(rune)
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function IceClassPowerCounter.prototype:UseAtlasSize(rune)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function IceClassPowerCounter.prototype:GetShineAtlas(rune)
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
function IceClassPowerCounter.prototype:CreateFrame()
|
function IceClassPowerCounter.prototype:CreateFrame()
|
||||||
IceClassPowerCounter.super.prototype.CreateFrame(self)
|
IceClassPowerCounter.super.prototype.CreateFrame(self)
|
||||||
@ -659,11 +684,6 @@ function IceClassPowerCounter.prototype:SetDisplayMode()
|
|||||||
for i=1, self.numRunes do
|
for i=1, self.numRunes do
|
||||||
self:SetupRuneTexture(i)
|
self:SetupRuneTexture(i)
|
||||||
self.frame.graphical[i]:Show()
|
self.frame.graphical[i]:Show()
|
||||||
if self.moduleSettings.inactiveDisplayMode == "Darkened" then
|
|
||||||
self.frame.graphical[i].runebg:Show()
|
|
||||||
else
|
|
||||||
self.frame.graphical[i].runebg:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -698,14 +718,16 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
|||||||
|
|
||||||
self.frame.graphical[i].rune = self.frame.graphical[i]:CreateTexture(nil, "ARTWORK")
|
self.frame.graphical[i].rune = self.frame.graphical[i]:CreateTexture(nil, "ARTWORK")
|
||||||
self.frame.graphical[i].rune:SetVertexColor(0, 0, 0)
|
self.frame.graphical[i].rune:SetVertexColor(0, 0, 0)
|
||||||
self.frame.graphical[i].runebg = self.frame.graphical[i]:CreateTexture(nil, "BACKGROUND")
|
|
||||||
self.frame.graphical[i].runebg:SetVertexColor(0, 0, 0)
|
|
||||||
self:SetupRuneTexture(i)
|
self:SetupRuneTexture(i)
|
||||||
|
|
||||||
self.frame.graphical[i].shine = self.frame.graphical[i]:CreateTexture(nil, "OVERLAY")
|
self.frame.graphical[i].shine = self.frame.graphical[i]:CreateTexture(nil, "OVERLAY")
|
||||||
|
if self:GetShineAtlas(i) then
|
||||||
|
self.frame.graphical[i].shine:SetAtlas(self:GetShineAtlas(i))
|
||||||
|
else
|
||||||
self.frame.graphical[i].shine:SetTexture("Interface\\ComboFrame\\ComboPoint")
|
self.frame.graphical[i].shine:SetTexture("Interface\\ComboFrame\\ComboPoint")
|
||||||
self.frame.graphical[i].shine:SetBlendMode("ADD")
|
|
||||||
self.frame.graphical[i].shine:SetTexCoord(0.5625, 1, 0, 1)
|
self.frame.graphical[i].shine:SetTexCoord(0.5625, 1, 0, 1)
|
||||||
|
end
|
||||||
|
self.frame.graphical[i].shine:SetBlendMode("ADD")
|
||||||
self.frame.graphical[i].shine:ClearAllPoints()
|
self.frame.graphical[i].shine:ClearAllPoints()
|
||||||
self.frame.graphical[i].shine:SetPoint("CENTER", self.frame.graphical[i], "CENTER")
|
self.frame.graphical[i].shine:SetPoint("CENTER", self.frame.graphical[i], "CENTER")
|
||||||
|
|
||||||
@ -720,14 +742,10 @@ function IceClassPowerCounter.prototype:CreateRune(i)
|
|||||||
self.frame.graphical[i]:SetHeight(self.runeHeight)
|
self.frame.graphical[i]:SetHeight(self.runeHeight)
|
||||||
self.frame.graphical[i].rune:SetWidth(self.runeWidth)
|
self.frame.graphical[i].rune:SetWidth(self.runeWidth)
|
||||||
self.frame.graphical[i].rune:SetHeight(self.runeHeight)
|
self.frame.graphical[i].rune:SetHeight(self.runeHeight)
|
||||||
self.frame.graphical[i].runebg:SetWidth(self.runeWidth)
|
|
||||||
self.frame.graphical[i].runebg:SetHeight(self.runeHeight)
|
|
||||||
if self.currentGrowMode == self.growModes["width"] then
|
if self.currentGrowMode == self.growModes["width"] then
|
||||||
self.frame.graphical[i].rune:SetPoint("LEFT", self.frame.graphical[i], "LEFT")
|
self.frame.graphical[i].rune:SetPoint("LEFT", self.frame.graphical[i], "LEFT")
|
||||||
self.frame.graphical[i].runebg:SetPoint("LEFT", self.frame.graphical[i], "LEFT")
|
|
||||||
else
|
else
|
||||||
self.frame.graphical[i].rune:SetPoint("BOTTOM", self.frame.graphical[i], "BOTTOM")
|
self.frame.graphical[i].rune:SetPoint("BOTTOM", self.frame.graphical[i], "BOTTOM")
|
||||||
self.frame.graphical[i].runebg:SetPoint("BOTTOM", self.frame.graphical[i], "BOTTOM")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -745,7 +763,6 @@ function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
|||||||
|
|
||||||
-- make sure any texture aside from the special one is square and has the proper coordinates
|
-- make sure any texture aside from the special one is square and has the proper coordinates
|
||||||
self.frame.graphical[rune].rune:SetTexCoord(a, b, c, d)
|
self.frame.graphical[rune].rune:SetTexCoord(a, b, c, d)
|
||||||
self.frame.graphical[rune].runebg:SetTexCoord(a, b, c, d)
|
|
||||||
self.frame.graphical[rune]:SetWidth(width)
|
self.frame.graphical[rune]:SetWidth(width)
|
||||||
self.frame:SetWidth(width*self.numRunes)
|
self.frame:SetWidth(width*self.numRunes)
|
||||||
local runeAdjust = rune - (self.numRunes / 2) - 0.5
|
local runeAdjust = rune - (self.numRunes / 2) - 0.5
|
||||||
@ -756,7 +773,12 @@ function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if self:GetRuneMode() == "Graphical" then
|
if self:GetRuneMode() == "Graphical" then
|
||||||
self.frame.graphical[rune].rune:SetTexture(self:GetRuneTexture(rune))
|
local tex = self:GetRuneTexture(rune)
|
||||||
|
if tex then
|
||||||
|
self.frame.graphical[rune].rune:SetTexture(tex)
|
||||||
|
else
|
||||||
|
self.frame.graphical[rune].rune:SetAtlas(self:GetRuneAtlas(rune), self:UseAtlasSize(rune))
|
||||||
|
end
|
||||||
elseif self:GetRuneMode() == "Graphical Bar" then
|
elseif self:GetRuneMode() == "Graphical Bar" then
|
||||||
self.frame.graphical[rune].rune:SetTexture(IceElement.TexturePath .. "Combo")
|
self.frame.graphical[rune].rune:SetTexture(IceElement.TexturePath .. "Combo")
|
||||||
elseif self:GetRuneMode() == "Graphical Circle" then
|
elseif self:GetRuneMode() == "Graphical Circle" then
|
||||||
@ -766,7 +788,6 @@ function IceClassPowerCounter.prototype:SetupRuneTexture(rune)
|
|||||||
elseif self:GetRuneMode() == "Graphical Clean Circle" then
|
elseif self:GetRuneMode() == "Graphical Clean Circle" then
|
||||||
self.frame.graphical[rune].rune:SetTexture(IceElement.TexturePath .. "ComboCleanCurves")
|
self.frame.graphical[rune].rune:SetTexture(IceElement.TexturePath .. "ComboCleanCurves")
|
||||||
end
|
end
|
||||||
self.frame.graphical[rune].runebg:SetTexture(self.frame.graphical[rune].rune:GetTexture())
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceClassPowerCounter.prototype:GetAlphaAdd()
|
function IceClassPowerCounter.prototype:GetAlphaAdd()
|
||||||
|
@ -17,6 +17,15 @@ function ComboPoints.prototype:init()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function ComboPoints.prototype:GetMaxComboPoints()
|
||||||
|
local retval = UnitPowerMax("player", SPELL_POWER_COMBO_POINTS)
|
||||||
|
if retval == 0 then -- accommodate non-rogues who still need combo point displays for some specific encounters/quests
|
||||||
|
retval = 5
|
||||||
|
end
|
||||||
|
|
||||||
|
return retval
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- 'Public' methods -----------------------------------------------------------
|
-- 'Public' methods -----------------------------------------------------------
|
||||||
|
|
||||||
@ -149,6 +158,7 @@ function ComboPoints.prototype:GetOptions()
|
|||||||
order = 33.2
|
order = 33.2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
opts["anticipation"] = {
|
opts["anticipation"] = {
|
||||||
type = "toggle",
|
type = "toggle",
|
||||||
name = L["Show Anticipation"],
|
name = L["Show Anticipation"],
|
||||||
@ -166,11 +176,12 @@ function ComboPoints.prototype:GetOptions()
|
|||||||
end,
|
end,
|
||||||
order = 33.3
|
order = 33.3
|
||||||
}
|
}
|
||||||
|
end
|
||||||
|
|
||||||
opts["gradient"] = {
|
opts["gradient"] = {
|
||||||
type = "toggle",
|
type = "toggle",
|
||||||
name = L["Change color"],
|
name = L["Change color"],
|
||||||
desc = L["1 combo point: yellow, 5 combo points: red"],
|
desc = L["1 combo point: yellow, max combo points: red"],
|
||||||
get = function()
|
get = function()
|
||||||
return self.moduleSettings.gradient
|
return self.moduleSettings.gradient
|
||||||
end,
|
end,
|
||||||
@ -238,11 +249,18 @@ function ComboPoints.prototype:Enable(core)
|
|||||||
|
|
||||||
self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateComboPoints")
|
self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateComboPoints")
|
||||||
if IceHUD.WowVer >= 30000 then
|
if IceHUD.WowVer >= 30000 then
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
|
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
|
||||||
|
else
|
||||||
|
self:RegisterEvent("UNIT_POWER", "UpdateComboPoints")
|
||||||
|
self:RegisterEvent("UNIT_MAXPOWER", "UpdateMaxComboPoints")
|
||||||
|
end
|
||||||
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
|
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
|
||||||
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
|
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self:RegisterEvent("PLAYER_TALENT_UPDATE", "AddAnticipation")
|
self:RegisterEvent("PLAYER_TALENT_UPDATE", "AddAnticipation")
|
||||||
self:AddAnticipation()
|
self:AddAnticipation()
|
||||||
|
end
|
||||||
else
|
else
|
||||||
self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
|
self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
|
||||||
end
|
end
|
||||||
@ -254,7 +272,15 @@ function ComboPoints.prototype:Enable(core)
|
|||||||
self:CreateComboFrame(true)
|
self:CreateComboFrame(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ComboPoints.prototype:UpdateMaxComboPoints(event, unit, powerType)
|
||||||
|
if unit == "player" and powerType == "COMBO_POINTS" then
|
||||||
|
for i = 1, #self.frame.graphical do
|
||||||
|
self.frame.graphicalBG[i]:Hide()
|
||||||
|
self.frame.graphical[i]:Hide()
|
||||||
|
end
|
||||||
|
self:Redraw()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- 'Protected' methods --------------------------------------------------------
|
-- 'Protected' methods --------------------------------------------------------
|
||||||
|
|
||||||
@ -264,11 +290,11 @@ function ComboPoints.prototype:CreateFrame()
|
|||||||
|
|
||||||
self.frame:SetFrameStrata("BACKGROUND")
|
self.frame:SetFrameStrata("BACKGROUND")
|
||||||
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
||||||
self.frame:SetWidth(self.comboSize*5)
|
self.frame:SetWidth((self.comboSize - 5)*self:GetMaxComboPoints())
|
||||||
self.frame:SetHeight(1)
|
self.frame:SetHeight(1)
|
||||||
else
|
else
|
||||||
self.frame:SetWidth(1)
|
self.frame:SetWidth(1)
|
||||||
self.frame:SetHeight(self.comboSize*5)
|
self.frame:SetHeight(self.comboSize*self:GetMaxComboPoints())
|
||||||
end
|
end
|
||||||
self.frame:ClearAllPoints()
|
self.frame:ClearAllPoints()
|
||||||
self.frame:SetPoint("TOP", self.parent, "BOTTOM", self.moduleSettings.hpos, self.moduleSettings.vpos)
|
self.frame:SetPoint("TOP", self.parent, "BOTTOM", self.moduleSettings.hpos, self.moduleSettings.vpos)
|
||||||
@ -297,9 +323,10 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local i
|
local i
|
||||||
|
local maxComboPoints = self:GetMaxComboPoints()
|
||||||
|
|
||||||
-- create backgrounds
|
-- create backgrounds
|
||||||
for i = 1, 5 do
|
for i = 1, maxComboPoints do
|
||||||
if (not self.frame.graphicalBG[i]) then
|
if (not self.frame.graphicalBG[i]) then
|
||||||
local frame = CreateFrame("Frame", nil, self.frame)
|
local frame = CreateFrame("Frame", nil, self.frame)
|
||||||
self.frame.graphicalBG[i] = frame
|
self.frame.graphicalBG[i] = frame
|
||||||
@ -323,9 +350,9 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
self.frame.graphicalBG[i]:SetWidth(self.comboSize)
|
self.frame.graphicalBG[i]:SetWidth(self.comboSize)
|
||||||
self.frame.graphicalBG[i]:SetHeight(self.comboSize)
|
self.frame.graphicalBG[i]:SetHeight(self.comboSize)
|
||||||
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
if self.moduleSettings.graphicalLayout == "Horizontal" then
|
||||||
self.frame.graphicalBG[i]:SetPoint("TOPLEFT", ((i-1) * (self.comboSize-5)) + (i-1) + ((i-1) * self.moduleSettings.comboGap), 0)
|
self.frame.graphicalBG[i]:SetPoint("TOPLEFT", ((i-1) * (self.comboSize-5)) - 2.5 + ((i-1) * self.moduleSettings.comboGap), 0)
|
||||||
else
|
else
|
||||||
self.frame.graphicalBG[i]:SetPoint("TOPLEFT", 0, -1 * (((i-1) * (self.comboSize-5)) + (i-1) + ((i-1) * self.moduleSettings.comboGap)))
|
self.frame.graphicalBG[i]:SetPoint("TOPLEFT", 0, -1 * (((i-1) * (self.comboSize-5)) - 2.5 + ((i-1) * self.moduleSettings.comboGap)))
|
||||||
end
|
end
|
||||||
self.frame.graphicalBG[i]:SetAlpha(0.15)
|
self.frame.graphicalBG[i]:SetAlpha(0.15)
|
||||||
self.frame.graphicalBG[i].texture:SetVertexColor(self:GetColor("ComboPoints"))
|
self.frame.graphicalBG[i].texture:SetVertexColor(self:GetColor("ComboPoints"))
|
||||||
@ -334,7 +361,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- create combo points
|
-- create combo points
|
||||||
for i = 1, 5 do
|
for i = 1, maxComboPoints do
|
||||||
if (not self.frame.graphical[i]) then
|
if (not self.frame.graphical[i]) then
|
||||||
local frame = CreateFrame("Frame", nil, self.frame)
|
local frame = CreateFrame("Frame", nil, self.frame)
|
||||||
self.frame.graphical[i] = frame
|
self.frame.graphical[i] = frame
|
||||||
@ -359,7 +386,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
|
|
||||||
local r, g, b = self:GetColor("ComboPoints")
|
local r, g, b = self:GetColor("ComboPoints")
|
||||||
if (self.moduleSettings.gradient) then
|
if (self.moduleSettings.gradient) then
|
||||||
g = g - (0.15*i)
|
g = g - ((1 / maxComboPoints)*i)
|
||||||
end
|
end
|
||||||
self.frame.graphical[i].texture:SetVertexColor(r, g, b)
|
self.frame.graphical[i].texture:SetVertexColor(r, g, b)
|
||||||
|
|
||||||
@ -367,6 +394,7 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- create Anticipation points
|
-- create Anticipation points
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
for i = 1, 5 do
|
for i = 1, 5 do
|
||||||
if (not self.frame.graphicalAnt[i]) then
|
if (not self.frame.graphicalAnt[i]) then
|
||||||
local frame = CreateFrame("Frame", nil, self.frame)
|
local frame = CreateFrame("Frame", nil, self.frame)
|
||||||
@ -402,23 +430,32 @@ function ComboPoints.prototype:CreateComboFrame(forceTextureUpdate)
|
|||||||
|
|
||||||
self.frame.graphicalAnt[i]:Hide()
|
self.frame.graphicalAnt[i]:Hide()
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function ComboPoints.prototype:UpdateComboPoints(...)
|
||||||
|
if select('#', ...) >= 3 and select(1, ...) == "UNIT_POWER" and select(3, ...) ~= "COMBO_POINTS" then
|
||||||
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
function ComboPoints.prototype:UpdateComboPoints()
|
|
||||||
local points, anticipate, _
|
local points, anticipate, _
|
||||||
if IceHUD.IceCore:IsInConfigMode() then
|
if IceHUD.IceCore:IsInConfigMode() then
|
||||||
points = 5
|
points = self:GetMaxComboPoints()
|
||||||
elseif IceHUD.WowVer >= 30000 then
|
elseif IceHUD.WowVer >= 30000 then
|
||||||
-- Parnic: apparently some fights have combo points while the player is in a vehicle?
|
-- Parnic: apparently some fights have combo points while the player is in a vehicle?
|
||||||
local isInVehicle = UnitHasVehicleUI("player")
|
local isInVehicle = UnitHasVehicleUI("player")
|
||||||
local checkUnit = isInVehicle and "vehicle" or "player"
|
local checkUnit = isInVehicle and "vehicle" or "player"
|
||||||
if IceHUD.WowVer >= 60000 then
|
if IceHUD.WowVer >= 60000 then
|
||||||
points = UnitPower(checkUnit, 4)
|
points = UnitPower(checkUnit, SPELL_POWER_COMBO_POINTS)
|
||||||
else
|
else
|
||||||
points = GetComboPoints(checkUnit, "target")
|
points = GetComboPoints(checkUnit, "target")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
_, _, _, anticipate = UnitAura("player", GetSpellInfo(AnticipationSpellId))
|
_, _, _, anticipate = UnitAura("player", GetSpellInfo(AnticipationSpellId))
|
||||||
|
else
|
||||||
|
anticipate = 0
|
||||||
|
end
|
||||||
else
|
else
|
||||||
points = GetComboPoints("target")
|
points = GetComboPoints("target")
|
||||||
end
|
end
|
||||||
@ -426,10 +463,14 @@ function ComboPoints.prototype:UpdateComboPoints()
|
|||||||
points = points or 0
|
points = points or 0
|
||||||
anticipate = self.moduleSettings.showAnticipation and anticipate or 0
|
anticipate = self.moduleSettings.showAnticipation and anticipate or 0
|
||||||
|
|
||||||
|
if self:GetMaxComboPoints() > #self.frame.graphical then
|
||||||
|
self:CreateFrame()
|
||||||
|
end
|
||||||
|
|
||||||
if (self.moduleSettings.comboMode == "Numeric") then
|
if (self.moduleSettings.comboMode == "Numeric") then
|
||||||
local r, g, b = self:GetColor("ComboPoints")
|
local r, g, b = self:GetColor("ComboPoints")
|
||||||
if (self.moduleSettings.gradient and points) then
|
if (self.moduleSettings.gradient and points) then
|
||||||
g = g - (0.15*points)
|
g = g - ((1 / self:GetMaxComboPoints())*points)
|
||||||
end
|
end
|
||||||
self.frame.numeric:SetTextColor(r, g, b, 0.7)
|
self.frame.numeric:SetTextColor(r, g, b, 0.7)
|
||||||
|
|
||||||
@ -446,7 +487,7 @@ function ComboPoints.prototype:UpdateComboPoints()
|
|||||||
else
|
else
|
||||||
self.frame.numeric:SetText()
|
self.frame.numeric:SetText()
|
||||||
|
|
||||||
for i = 1, table.getn(self.frame.graphical) do
|
for i = 1, self:GetMaxComboPoints() do
|
||||||
local hideIfNoTarget = not UnitExists("target") and not self.moduleSettings.bShowWithNoTarget
|
local hideIfNoTarget = not UnitExists("target") and not self.moduleSettings.bShowWithNoTarget
|
||||||
|
|
||||||
if ((points > 0) or (anticipate > 0)) and not hideIfNoTarget then
|
if ((points > 0) or (anticipate > 0)) and not hideIfNoTarget then
|
||||||
@ -461,6 +502,7 @@ function ComboPoints.prototype:UpdateComboPoints()
|
|||||||
self.frame.graphical[i]:Hide()
|
self.frame.graphical[i]:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if i <= #self.frame.graphicalAnt then
|
||||||
if (i <= anticipate) and not hideIfNoTarget then
|
if (i <= anticipate) and not hideIfNoTarget then
|
||||||
self.frame.graphicalAnt[i]:Show()
|
self.frame.graphicalAnt[i]:Show()
|
||||||
else
|
else
|
||||||
@ -469,6 +511,7 @@ function ComboPoints.prototype:UpdateComboPoints()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
do
|
do
|
||||||
local antStacks
|
local antStacks
|
||||||
|
@ -66,7 +66,11 @@ function ComboPointsBar.prototype:Enable(core)
|
|||||||
|
|
||||||
self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateComboPoints")
|
self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateComboPoints")
|
||||||
if IceHUD.WowVer >= 30000 then
|
if IceHUD.WowVer >= 30000 then
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
|
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
|
||||||
|
else
|
||||||
|
self:RegisterEvent("UNIT_POWER", "UpdateComboPoints")
|
||||||
|
end
|
||||||
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
|
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
|
||||||
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
|
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
|
||||||
else
|
else
|
||||||
@ -80,16 +84,22 @@ function ComboPointsBar.prototype:CreateFrame()
|
|||||||
self:UpdateComboPoints()
|
self:UpdateComboPoints()
|
||||||
end
|
end
|
||||||
|
|
||||||
function ComboPointsBar.prototype:UpdateComboPoints()
|
local color = {}
|
||||||
|
|
||||||
|
function ComboPointsBar.prototype:UpdateComboPoints(...)
|
||||||
|
if select('#', ...) >= 3 and select(1, ...) == "UNIT_POWER" and select(3, ...) ~= "COMBO_POINTS" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local points
|
local points
|
||||||
if IceHUD.IceCore:IsInConfigMode() then
|
if IceHUD.IceCore:IsInConfigMode() then
|
||||||
points = 5
|
points = UnitPowerMax("player", SPELL_POWER_COMBO_POINTS)
|
||||||
elseif IceHUD.WowVer >= 30000 then
|
elseif IceHUD.WowVer >= 30000 then
|
||||||
-- Parnic: apparently some fights have combo points while the player is in a vehicle?
|
-- Parnic: apparently some fights have combo points while the player is in a vehicle?
|
||||||
local isInVehicle = UnitHasVehicleUI("player")
|
local isInVehicle = UnitHasVehicleUI("player")
|
||||||
local checkUnit = isInVehicle and "vehicle" or "player"
|
local checkUnit = isInVehicle and "vehicle" or "player"
|
||||||
if IceHUD.WowVer >= 60000 then
|
if IceHUD.WowVer >= 60000 then
|
||||||
points = UnitPower(checkUnit, 4)
|
points = UnitPower(checkUnit, SPELL_POWER_COMBO_POINTS)
|
||||||
else
|
else
|
||||||
points = GetComboPoints(checkUnit, "target")
|
points = GetComboPoints(checkUnit, "target")
|
||||||
end
|
end
|
||||||
@ -106,9 +116,8 @@ function ComboPointsBar.prototype:UpdateComboPoints()
|
|||||||
self:UpdateBar(0, "undef")
|
self:UpdateBar(0, "undef")
|
||||||
else
|
else
|
||||||
self:Show(true)
|
self:Show(true)
|
||||||
local color = {}
|
|
||||||
self:SetScaledColor(color, (points - 1) / 4.0, self.settings.colors["ComboPointsBarMax"], self.settings.colors["ComboPointsBarMin"])
|
self:SetScaledColor(color, (points - 1) / 4.0, self.settings.colors["ComboPointsBarMax"], self.settings.colors["ComboPointsBarMin"])
|
||||||
self:UpdateBar(points / 5.0, "undef")
|
self:UpdateBar(points / UnitPowerMax("player", SPELL_POWER_COMBO_POINTS), "undef")
|
||||||
self.barFrame.bar:SetVertexColor(color.r, color.g, color.b, self.alpha)
|
self.barFrame.bar:SetVertexColor(color.r, color.g, color.b, self.alpha)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
|
||||||
local DruidMana = IceCore_CreateClass(IceUnitBar)
|
|
||||||
|
|
||||||
DruidMana.prototype.druidMana = nil
|
|
||||||
DruidMana.prototype.druidManaMax = nil
|
|
||||||
|
|
||||||
local MANA_POWER_INDEX = SPELL_POWER_MANA
|
|
||||||
|
|
||||||
-- Constructor --
|
|
||||||
function DruidMana.prototype:init()
|
|
||||||
DruidMana.super.prototype.init(self, "DruidMana", "player")
|
|
||||||
|
|
||||||
self.side = IceCore.Side.Right
|
|
||||||
self.offset = 0
|
|
||||||
|
|
||||||
self:SetDefaultColor("DruidMana", 87, 82, 141)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function DruidMana.prototype:GetDefaultSettings()
|
|
||||||
local settings = DruidMana.super.prototype.GetDefaultSettings(self)
|
|
||||||
|
|
||||||
settings["side"] = IceCore.Side.Right
|
|
||||||
settings["offset"] = 0
|
|
||||||
settings["textVisible"] = {upper = true, lower = false}
|
|
||||||
settings["upperText"] = "[PercentDruidMP:Round]"
|
|
||||||
settings["lowerText"] = "[FractionalDruidMP:Color('3071bf'):Bracket]"
|
|
||||||
|
|
||||||
return settings
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function DruidMana.prototype:Enable(core)
|
|
||||||
DruidMana.super.prototype.Enable(self, core)
|
|
||||||
|
|
||||||
self:RegisterEvent("UPDATE_SHAPESHIFT_FORM", "Update")
|
|
||||||
if IceHUD.WowVer >= 40000 then
|
|
||||||
self:RegisterEvent("UNIT_POWER", "Update")
|
|
||||||
self:RegisterEvent("UNIT_MAXPOWER", "Update")
|
|
||||||
else
|
|
||||||
self:RegisterEvent("UNIT_MAXMANA", "Update")
|
|
||||||
self:RegisterEvent("UNIT_MANA", "Update")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function DruidMana.prototype:Disable(core)
|
|
||||||
DruidMana.super.prototype.Disable(self, core)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function DruidMana.prototype:Update()
|
|
||||||
DruidMana.super.prototype.Update(self)
|
|
||||||
|
|
||||||
local forms = (UnitPowerType(self.unit) ~= 0)
|
|
||||||
|
|
||||||
self.druidMana = UnitPower(self.unit, MANA_POWER_INDEX)
|
|
||||||
self.druidManaMax = UnitPowerMax(self.unit, MANA_POWER_INDEX)
|
|
||||||
|
|
||||||
if (not self.alive or not forms or not self.druidMana or not self.druidManaMax or self.druidManaMax == 0) then
|
|
||||||
self:Show(false)
|
|
||||||
return
|
|
||||||
else
|
|
||||||
self:Show(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
self:UpdateBar(self.druidManaMax ~= 0 and self.druidMana / self.druidManaMax or 0, "DruidMana")
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Load us up (if we are a druid)
|
|
||||||
local _, unitClass = UnitClass("player")
|
|
||||||
if (unitClass == "DRUID") then
|
|
||||||
IceHUD.DruidMana = DruidMana:new()
|
|
||||||
end
|
|
@ -190,6 +190,6 @@ function EclipseBar.prototype:MyOnUpdate()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local _, unitClass = UnitClass("player")
|
local _, unitClass = UnitClass("player")
|
||||||
if (unitClass == "DRUID" and IceHUD.WowVer >= 40000) then
|
if (unitClass == "DRUID" and IceHUD.WowVer >= 40000 and IceHUD.WowVer < 70000) then
|
||||||
IceHUD.EclipseBar = EclipseBar:new()
|
IceHUD.EclipseBar = EclipseBar:new()
|
||||||
end
|
end
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
local GlobalCoolDown = IceCore_CreateClass(IceBarElement)
|
local GlobalCoolDown = IceCore_CreateClass(IceBarElement)
|
||||||
|
|
||||||
local maxSpellCastSkipTimeMs = 1500
|
|
||||||
|
|
||||||
-- Constructor --
|
-- Constructor --
|
||||||
function GlobalCoolDown.prototype:init()
|
function GlobalCoolDown.prototype:init()
|
||||||
GlobalCoolDown.super.prototype.init(self, "GlobalCoolDown")
|
GlobalCoolDown.super.prototype.init(self, "GlobalCoolDown")
|
||||||
@ -18,27 +16,36 @@ end
|
|||||||
function GlobalCoolDown.prototype:Enable(core)
|
function GlobalCoolDown.prototype:Enable(core)
|
||||||
GlobalCoolDown.super.prototype.Enable(self, core)
|
GlobalCoolDown.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
|
if self.moduleSettings.inverse == "EXPAND" then
|
||||||
|
self.moduleSettings.inverse = "NORMAL"
|
||||||
|
end
|
||||||
|
|
||||||
|
self:RegisterEvent("UNIT_SPELLCAST_SENT","SpellCastSent")
|
||||||
|
|
||||||
--self:RegisterEvent("ACTIONBAR_UPDATE_COOLDOWN", "CooldownStateChanged")
|
--self:RegisterEvent("ACTIONBAR_UPDATE_COOLDOWN", "CooldownStateChanged")
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_START","CooldownStateChanged")
|
self:RegisterEvent("UNIT_SPELLCAST_START","CooldownStateChanged")
|
||||||
|
self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START","CooldownStateChanged")
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED","CooldownStateChanged")
|
self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED","CooldownStateChanged")
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_INTERRUPTED","CooldownAborted")
|
self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_STOP","SpellCastStop")
|
||||||
self:RegisterEvent("UNIT_SPELLCAST_FAILED","CooldownAborted")
|
self:RegisterEvent("UNIT_SPELLCAST_INTERRUPTED","SpellCastStop")
|
||||||
|
self:RegisterEvent("UNIT_SPELLCAST_FAILED","SpellCastStop")
|
||||||
|
self:RegisterEvent("UNIT_SPELLCAST_STOP","SpellCastStop")
|
||||||
|
|
||||||
|
self:RegisterEvent("CVAR_UPDATE", "CVarUpdate")
|
||||||
|
|
||||||
|
self:CVarUpdate()
|
||||||
|
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
|
|
||||||
self.frame:SetFrameStrata("TOOLTIP")
|
self.frame:SetFrameStrata("LOW")
|
||||||
|
|
||||||
self.CDSpellId = self:GetSpellId()
|
self.CDSpellId = self:GetSpellId()
|
||||||
end
|
end
|
||||||
|
|
||||||
function GlobalCoolDown.prototype:CooldownAborted(event, unit, spell)
|
function GlobalCoolDown.prototype:CVarUpdate()
|
||||||
if unit ~= "player" or not spell or not self.CurrSpell or self.CurrSpell ~= spell then
|
self.useFixedLatency = self.moduleSettings.respectLagTolerance and GetCVar("reducedLagTolerance") == "1"
|
||||||
return
|
self.fixedLatency = tonumber(GetCVar("maxSpellStartRecoveryoffset")) / 1000.0
|
||||||
end
|
|
||||||
|
|
||||||
self.CurrLerpTime = self.moduleSettings.desiredLerpTime
|
|
||||||
self.CurrSpell = nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- OVERRIDE
|
-- OVERRIDE
|
||||||
@ -57,6 +64,9 @@ function GlobalCoolDown.prototype:GetDefaultSettings()
|
|||||||
settings["bHideMarkerSettings"] = true
|
settings["bHideMarkerSettings"] = true
|
||||||
settings["showDuringCast"] = true
|
settings["showDuringCast"] = true
|
||||||
settings["barVisible"]["bg"] = false
|
settings["barVisible"]["bg"] = false
|
||||||
|
settings["bAllowExpand"] = false
|
||||||
|
settings["lagAlpha"] = 0.7
|
||||||
|
settings["respectLagTolerance"] = true
|
||||||
|
|
||||||
return settings
|
return settings
|
||||||
end
|
end
|
||||||
@ -84,6 +94,45 @@ function GlobalCoolDown.prototype:GetOptions()
|
|||||||
order = 21,
|
order = 21,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opts["lagAlpha"] =
|
||||||
|
{
|
||||||
|
type = 'range',
|
||||||
|
name = L["Lag Indicator alpha"],
|
||||||
|
desc = L["Lag indicator alpha (0 is disabled)"],
|
||||||
|
min = 0,
|
||||||
|
max = 1,
|
||||||
|
step = 0.1,
|
||||||
|
get = function()
|
||||||
|
return self.moduleSettings.lagAlpha
|
||||||
|
end,
|
||||||
|
set = function(info, value)
|
||||||
|
self.moduleSettings.lagAlpha = value
|
||||||
|
self:Redraw()
|
||||||
|
end,
|
||||||
|
disabled = function()
|
||||||
|
return not self.moduleSettings.enabled
|
||||||
|
end,
|
||||||
|
order = 42
|
||||||
|
}
|
||||||
|
|
||||||
|
opts["respectLagTolerance"] =
|
||||||
|
{
|
||||||
|
type = 'toggle',
|
||||||
|
name = L["Respect lag tolerance"],
|
||||||
|
desc = L["When checked, if a 'Custom Lag Tolerance' is set in the game's Combat options, the lag indicator will always use that tolerance value. Otherwise, it uses the computed latency."],
|
||||||
|
get = function()
|
||||||
|
return self.moduleSettings.respectLagTolerance
|
||||||
|
end,
|
||||||
|
set = function(info, value)
|
||||||
|
self.moduleSettings.respectLagTolerance = value
|
||||||
|
self:CVarUpdate()
|
||||||
|
end,
|
||||||
|
disabled = function()
|
||||||
|
return not self.moduleSettings.enabled or GetCVar("reducedLagTolerance") == "0"
|
||||||
|
end,
|
||||||
|
order = 42.1,
|
||||||
|
}
|
||||||
|
|
||||||
return opts
|
return opts
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -91,6 +140,26 @@ function GlobalCoolDown.prototype:IsFull(scale)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function GlobalCoolDown.prototype:SpellCastSent(event, unit, spell)
|
||||||
|
if unit ~= "player" or not spell then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.spellCastSent = GetTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
function GlobalCoolDown.prototype:SpellCastStop(event, unit, spell, _, _, spellId)
|
||||||
|
if unit ~= "player" or not spellId or not self.CurrSpellId or self.CurrSpellId ~= spellId then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.CurrSpellId = nil
|
||||||
|
|
||||||
|
if event == "UNIT_SPELLCAST_INTERRUPTED" or event == "UNIT_SPELLCAST_FAILED" then
|
||||||
|
self.CurrLerpTime = self.moduleSettings.desiredLerpTime
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function GlobalCoolDown.prototype:GetSpellCastTime(spell)
|
function GlobalCoolDown.prototype:GetSpellCastTime(spell)
|
||||||
if not spell then
|
if not spell then
|
||||||
return nil, nil
|
return nil, nil
|
||||||
@ -110,20 +179,31 @@ function GlobalCoolDown.prototype:GetSpellCastTime(spell)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function GlobalCoolDown.prototype:CooldownStateChanged(event, unit, spell)
|
function GlobalCoolDown.prototype:CooldownStateChanged(event, unit, spell, _, _, spellId)
|
||||||
if unit ~= "player" or not spell then
|
if unit ~= "player" or not spellId then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if not self.moduleSettings.showDuringCast then
|
-- Ignore all events unrelated to the spell currently being cast
|
||||||
local castTime = self:GetSpellCastTime(spell)
|
if self.CurrSpellId and self.CurrSpellId ~= spellId then
|
||||||
if castTime and castTime > maxSpellCastSkipTimeMs then
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Update the current spell ID for all events indicating a spellcast is starting
|
||||||
|
if event ~= "UNIT_SPELLCAST_SUCCEEDED" then
|
||||||
|
self.CurrSpellId = spellId
|
||||||
end
|
end
|
||||||
|
|
||||||
local start, dur = GetSpellCooldown(self.CDSpellId)
|
local start, dur = GetSpellCooldown(self.CDSpellId)
|
||||||
|
|
||||||
|
if not self.moduleSettings.showDuringCast then
|
||||||
|
local castTime = self:GetSpellCastTime(spellId)
|
||||||
|
local channeledSpellName = UnitChannelInfo(unit)
|
||||||
|
if (castTime and castTime >= dur*1000) or channeledSpellName then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if start and dur ~= nil and dur > 0 and dur <= 1.5 then
|
if start and dur ~= nil and dur > 0 and dur <= 1.5 then
|
||||||
local bRestart = not self.startTime or start > self.startTime + 0.5
|
local bRestart = not self.startTime or start > self.startTime + 0.5
|
||||||
if bRestart then
|
if bRestart then
|
||||||
@ -136,15 +216,23 @@ function GlobalCoolDown.prototype:CooldownStateChanged(event, unit, spell)
|
|||||||
self.CurrLerpTime = 0
|
self.CurrLerpTime = 0
|
||||||
self.lastLerpTime = GetTime()
|
self.lastLerpTime = GetTime()
|
||||||
self.moduleSettings.desiredLerpTime = dur or 1
|
self.moduleSettings.desiredLerpTime = dur or 1
|
||||||
self.CurrSpell = spell
|
|
||||||
|
|
||||||
self:UpdateBar(0, "GlobalCoolDown")
|
self:UpdateBar(0, "GlobalCoolDown")
|
||||||
self:Show(true)
|
self:Show(true)
|
||||||
end
|
|
||||||
|
-- Update latency indicator
|
||||||
|
local scale = 0
|
||||||
|
if self.useFixedLatency then
|
||||||
|
scale = IceHUD:Clamp(self.fixedLatency / self.duration, 0, 1)
|
||||||
|
else
|
||||||
|
local now = GetTime()
|
||||||
|
local lag = now - (self.spellCastSent or now)
|
||||||
|
scale = IceHUD:Clamp(lag / self.duration, 0, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
if event == "UNIT_SPELLCAST_SUCCEEDED" then
|
self:SetBarCoord(self.lagBar, scale, false, true)
|
||||||
self.CurrSpell = nil
|
self.spellCastSent = nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -163,9 +251,25 @@ function GlobalCoolDown.prototype:CreateFrame()
|
|||||||
self.barFrame.bar:SetVertexColor(self:GetColor("GlobalCoolDown", 0.8))
|
self.barFrame.bar:SetVertexColor(self:GetColor("GlobalCoolDown", 0.8))
|
||||||
local r, g, b = self.settings.backgroundColor.r, self.settings.backgroundColor.g, self.settings.backgroundColor.b
|
local r, g, b = self.settings.backgroundColor.r, self.settings.backgroundColor.g, self.settings.backgroundColor.b
|
||||||
self.frame.bg:SetVertexColor(r, g, b, 0.6)
|
self.frame.bg:SetVertexColor(r, g, b, 0.6)
|
||||||
|
|
||||||
|
self:CreateLagBar()
|
||||||
|
end
|
||||||
|
|
||||||
|
function GlobalCoolDown.prototype:CreateLagBar()
|
||||||
|
self.lagBar = self:BarFactory(self.lagBar, "LOW", "OVERLAY")
|
||||||
|
|
||||||
|
local r, g, b = self:GetColor("CastLag")
|
||||||
|
if (self.settings.backgroundToggle) then
|
||||||
|
r, g, b = self:GetColor("CastCasting")
|
||||||
|
end
|
||||||
|
|
||||||
|
self.lagBar.bar:SetVertexColor(r, g, b, self.moduleSettings.lagAlpha)
|
||||||
|
self.lagBar.bar:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
function GlobalCoolDown.prototype:GetSpellId()
|
function GlobalCoolDown.prototype:GetSpellId()
|
||||||
|
return 61304
|
||||||
|
--[[
|
||||||
local defaultSpells
|
local defaultSpells
|
||||||
|
|
||||||
defaultSpells = {
|
defaultSpells = {
|
||||||
@ -184,6 +288,7 @@ function GlobalCoolDown.prototype:GetSpellId()
|
|||||||
|
|
||||||
local _, unitClass = UnitClass("player")
|
local _, unitClass = UnitClass("player")
|
||||||
return defaultSpells[unitClass]
|
return defaultSpells[unitClass]
|
||||||
|
]]
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Load us up
|
-- Load us up
|
||||||
|
@ -23,6 +23,9 @@ function HarmonyPower.prototype:init()
|
|||||||
else
|
else
|
||||||
self.unitPower = SPELL_POWER_LIGHT_FORCE
|
self.unitPower = SPELL_POWER_LIGHT_FORCE
|
||||||
end
|
end
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self.requiredSpec = SPEC_MONK_WINDWALKER
|
||||||
|
end
|
||||||
self.minLevel = 0
|
self.minLevel = 0
|
||||||
self.bTreatEmptyAsFull = true
|
self.bTreatEmptyAsFull = true
|
||||||
self.unit = "player"
|
self.unit = "player"
|
||||||
@ -33,8 +36,6 @@ function HarmonyPower.prototype:Enable(core)
|
|||||||
HarmonyPower.super.prototype.Enable(self, core)
|
HarmonyPower.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_POWER_FREQUENT", "UpdateRunePower")
|
self:RegisterEvent("UNIT_POWER_FREQUENT", "UpdateRunePower")
|
||||||
|
|
||||||
self:Redraw()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function HarmonyPower.prototype:UpdateRunePower(event, arg1, arg2)
|
function HarmonyPower.prototype:UpdateRunePower(event, arg1, arg2)
|
||||||
@ -48,10 +49,6 @@ function HarmonyPower.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if self.fakeNumRunes ~= nil and self.fakeNumRunes > 0 then
|
|
||||||
numRunes = self.fakeNumRunes
|
|
||||||
end
|
|
||||||
|
|
||||||
if numRunes ~= self.numRunes then
|
if numRunes ~= self.numRunes then
|
||||||
if numRunes < self.numRunes and #self.frame.graphical >= numRunes then
|
if numRunes < self.numRunes and #self.frame.graphical >= numRunes then
|
||||||
for i=numRunes + 1, #self.frame.graphical do
|
for i=numRunes + 1, #self.frame.graphical do
|
||||||
@ -94,15 +91,23 @@ function HarmonyPower.prototype:GetRuneTexture(rune)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function HarmonyPower.prototype:ShowBlizz()
|
function HarmonyPower.prototype:ShowBlizz()
|
||||||
MonkHarmonyBar:Show()
|
local frame = MonkHarmonyBarFrame
|
||||||
|
if frame == nil then
|
||||||
|
frame = MonkHarmonyBar
|
||||||
|
end
|
||||||
|
|
||||||
MonkHarmonyBar:GetScript("OnLoad")(MonkHarmonyBar)
|
frame:Show()
|
||||||
|
frame:GetScript("OnLoad")(frame)
|
||||||
end
|
end
|
||||||
|
|
||||||
function HarmonyPower.prototype:HideBlizz()
|
function HarmonyPower.prototype:HideBlizz()
|
||||||
MonkHarmonyBar:Hide()
|
local frame = MonkHarmonyBarFrame
|
||||||
|
if frame == nil then
|
||||||
|
frame = MonkHarmonyBar
|
||||||
|
end
|
||||||
|
|
||||||
MonkHarmonyBar:UnregisterAllEvents()
|
frame:Hide()
|
||||||
|
frame:UnregisterAllEvents()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Load us up
|
-- Load us up
|
||||||
|
@ -27,6 +27,9 @@ 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
|
||||||
|
self.requiredSpec = SPEC_PALADIN_RETRIBUTION
|
||||||
|
end
|
||||||
self.bTreatEmptyAsFull = true
|
self.bTreatEmptyAsFull = true
|
||||||
self.unit = "player"
|
self.unit = "player"
|
||||||
self.numRunes = 5
|
self.numRunes = 5
|
||||||
@ -75,15 +78,23 @@ function HolyPower.prototype:GetRuneTexture(rune)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function HolyPower.prototype:ShowBlizz()
|
function HolyPower.prototype:ShowBlizz()
|
||||||
PaladinPowerBar:Show()
|
local frame = PaladinPowerBarFrame
|
||||||
|
if frame == nil then
|
||||||
|
frame = PaladinPowerBar
|
||||||
|
end
|
||||||
|
|
||||||
PaladinPowerBar:GetScript("OnLoad")(PaladinPowerBar)
|
frame:Show()
|
||||||
|
frame:GetScript("OnLoad")(frame)
|
||||||
end
|
end
|
||||||
|
|
||||||
function HolyPower.prototype:HideBlizz()
|
function HolyPower.prototype:HideBlizz()
|
||||||
PaladinPowerBar:Hide()
|
local frame = PaladinPowerBarFrame
|
||||||
|
if frame == nil then
|
||||||
|
frame = PaladinPowerBar
|
||||||
|
end
|
||||||
|
|
||||||
PaladinPowerBar:UnregisterAllEvents()
|
frame:Hide()
|
||||||
|
frame:UnregisterAllEvents()
|
||||||
end
|
end
|
||||||
|
|
||||||
function HolyPower.prototype:UpdateRunePower(event)
|
function HolyPower.prototype:UpdateRunePower(event)
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
local MonkManaBar = IceCore_CreateClass(IceHUDPlayerAlternatePower)
|
|
||||||
|
|
||||||
function MonkManaBar.prototype:init(moduleName, unit)
|
|
||||||
MonkManaBar.super.prototype.init(self, "MonkMana", unit)
|
|
||||||
|
|
||||||
self.bTreatEmptyAsFull = false
|
|
||||||
end
|
|
||||||
|
|
||||||
function MonkManaBar.prototype:GetDefaultSettings()
|
|
||||||
local settings = MonkManaBar.super.prototype.GetDefaultSettings(self)
|
|
||||||
|
|
||||||
settings["upperText"] = "[PercentMonkMP:Round]"
|
|
||||||
settings["lowerText"] = "[Concatenate(MonkMP:Short, \"/\", MaxMonkMP:Short):Bracket]"
|
|
||||||
|
|
||||||
return settings
|
|
||||||
end
|
|
||||||
|
|
||||||
function MonkManaBar.prototype:GetOptions()
|
|
||||||
local opts = MonkManaBar.super.prototype.GetOptions(self)
|
|
||||||
|
|
||||||
opts.showBlizz = nil
|
|
||||||
opts.hideBlizz = nil
|
|
||||||
|
|
||||||
return opts
|
|
||||||
end
|
|
||||||
|
|
||||||
function MonkManaBar.prototype:Enable(core)
|
|
||||||
self.specRestriction = SPEC_MONK_MISTWEAVER
|
|
||||||
self.powerIndex = SPELL_POWER_MANA
|
|
||||||
self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED", "CheckShouldShowOnSpecChange")
|
|
||||||
self:RegisterEvent("UNIT_DISPLAYPOWER", "CheckShouldShowOnSpecChange")
|
|
||||||
|
|
||||||
MonkManaBar.super.prototype.Enable(self, core)
|
|
||||||
|
|
||||||
self:CheckShouldShowOnSpecChange(nil, self.unit)
|
|
||||||
end
|
|
||||||
|
|
||||||
function MonkManaBar.prototype:CheckShouldShowOnSpecChange(event, unit)
|
|
||||||
if unit ~= self.unit and event ~= "PLAYER_SPECIALIZATION_CHANGED" then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if GetSpecialization() == self.specRestriction then
|
|
||||||
self:PowerBarShow(event, self.unit)
|
|
||||||
else
|
|
||||||
self:PowerBarHide(event, self.unit)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Load us up
|
|
||||||
if select(2, UnitClass("player")) == "MONK" then
|
|
||||||
IceHUD.MonkManaBar = MonkManaBar:new()
|
|
||||||
end
|
|
@ -17,11 +17,5 @@ function PlayerAbsorb.prototype:GetDefaultSettings()
|
|||||||
return settings
|
return settings
|
||||||
end
|
end
|
||||||
|
|
||||||
function PlayerAbsorb.prototype:MyRegisterCustomEvents()
|
|
||||||
end
|
|
||||||
|
|
||||||
function PlayerAbsorb.prototype:MyUnregisterCustomEvents()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Load us up
|
-- Load us up
|
||||||
IceHUD.PlayerAbsorb = PlayerAbsorb:new()
|
IceHUD.PlayerAbsorb = PlayerAbsorb:new()
|
||||||
|
95
modules/PlayerAltMana.lua
Normal file
95
modules/PlayerAltMana.lua
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
|
local PlayerAltMana = IceCore_CreateClass(IceUnitBar)
|
||||||
|
|
||||||
|
PlayerAltMana.prototype.PlayerAltMana = nil
|
||||||
|
PlayerAltMana.prototype.PlayerAltManaMax = nil
|
||||||
|
|
||||||
|
local _, unitClass = UnitClass("player")
|
||||||
|
|
||||||
|
-- Constructor --
|
||||||
|
function PlayerAltMana.prototype:init()
|
||||||
|
PlayerAltMana.super.prototype.init(self, "PlayerAltMana", "player")
|
||||||
|
|
||||||
|
self.side = IceCore.Side.Right
|
||||||
|
self.offset = 0
|
||||||
|
|
||||||
|
self:SetDefaultColor("PlayerAltMana", 87, 82, 141)
|
||||||
|
end
|
||||||
|
|
||||||
|
function PlayerAltMana.prototype:GetDefaultSettings()
|
||||||
|
local settings = PlayerAltMana.super.prototype.GetDefaultSettings(self)
|
||||||
|
|
||||||
|
settings["side"] = IceCore.Side.Right
|
||||||
|
settings["offset"] = 0
|
||||||
|
settings["textVisible"] = {upper = true, lower = false}
|
||||||
|
settings["upperText"] = "[PercentMana:Round]"
|
||||||
|
settings["lowerText"] = "[FractionalMana:Color('3071bf'):Bracket]"
|
||||||
|
|
||||||
|
return settings
|
||||||
|
end
|
||||||
|
|
||||||
|
function GetEventsToRegister()
|
||||||
|
return {"UNIT_DISPLAYPOWER"}
|
||||||
|
--[[ if unitClass == "PRIEST" then
|
||||||
|
return {"PLAYER_SPECIALIZATION_CHANGED"}
|
||||||
|
elseif unitClass == "SHAMAN" then
|
||||||
|
return {"PLAYER_SPECIALIZATION_CHANGED"}
|
||||||
|
elseif unitClass == "DRUID" then
|
||||||
|
return {"UPDATE_SHAPESHIFT_FORM"}
|
||||||
|
end
|
||||||
|
]]-- probably not necessary, but could use as a fallback
|
||||||
|
end
|
||||||
|
|
||||||
|
function PlayerAltMana.prototype:Enable(core)
|
||||||
|
PlayerAltMana.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
|
local eventsToRegister = GetEventsToRegister()
|
||||||
|
for i = 1, #eventsToRegister do
|
||||||
|
self:RegisterEvent(eventsToRegister[i], "Update")
|
||||||
|
end
|
||||||
|
self:RegisterEvent("UNIT_POWER_FREQUENT", "Update")
|
||||||
|
self:RegisterEvent("UNIT_MAXPOWER", "Update")
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function PlayerAltMana.prototype:Disable(core)
|
||||||
|
PlayerAltMana.super.prototype.Disable(self, core)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShouldShow(unit)
|
||||||
|
if unitClass == "MONK" then
|
||||||
|
return GetSpecialization() == SPEC_MONK_MISTWEAVER
|
||||||
|
end
|
||||||
|
return UnitPowerType(unit) ~= SPELL_POWER_MANA
|
||||||
|
--[[ if unitClass == "PRIEST" then
|
||||||
|
return UnitPowerType(unit) == SPELL_POWER_INSANITY
|
||||||
|
elseif unitClass == "SHAMAN" then
|
||||||
|
return GetSpecialization() ~= SPEC_SHAMAN_RESTORATION
|
||||||
|
elseif unitClass == "DRUID" then
|
||||||
|
return UnitPowerType(unit) ~= SPELL_POWER_MANA
|
||||||
|
end
|
||||||
|
]]-- probably not necessary, but could use as a fallback
|
||||||
|
end
|
||||||
|
|
||||||
|
function PlayerAltMana.prototype:Update()
|
||||||
|
PlayerAltMana.super.prototype.Update(self)
|
||||||
|
|
||||||
|
self.PlayerAltMana = UnitPower(self.unit, SPELL_POWER_MANA)
|
||||||
|
self.PlayerAltManaMax = UnitPowerMax(self.unit, SPELL_POWER_MANA)
|
||||||
|
|
||||||
|
if (not self.alive or not ShouldShow(self.unit) or not self.PlayerAltMana or not self.PlayerAltManaMax or self.PlayerAltManaMax == 0) then
|
||||||
|
self:Show(false)
|
||||||
|
return
|
||||||
|
else
|
||||||
|
self:Show(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
self:UpdateBar(self.PlayerAltManaMax ~= 0 and self.PlayerAltMana / self.PlayerAltManaMax or 0, "PlayerAltMana")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (unitClass == "PRIEST" and IceHUD.WowVer >= 70000)
|
||||||
|
or (unitClass == "DRUID")
|
||||||
|
or (unitClass == "SHAMAN" and IceHUD.WowVer >= 70000)
|
||||||
|
or (unitClass == "MONK" and IceHUD.WowVer < 70000) then
|
||||||
|
IceHUD.PlayerAltMana = PlayerAltMana:new()
|
||||||
|
end
|
@ -16,6 +16,12 @@ function PlayerMana.prototype:init()
|
|||||||
self:SetDefaultColor("PlayerEnergy", 218, 231, 31)
|
self:SetDefaultColor("PlayerEnergy", 218, 231, 31)
|
||||||
self:SetDefaultColor("PlayerFocus", 242, 149, 98)
|
self:SetDefaultColor("PlayerFocus", 242, 149, 98)
|
||||||
self:SetDefaultColor("PlayerRunicPower", 62, 54, 152)
|
self:SetDefaultColor("PlayerRunicPower", 62, 54, 152)
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self:SetDefaultColor("PlayerInsanity", 150, 50, 255)
|
||||||
|
self:SetDefaultColor("PlayerFury", 255, 50, 255)
|
||||||
|
self:SetDefaultColor("PlayerMaelstrom", 62, 54, 152)
|
||||||
|
self:SetDefaultColor("PlayerPain", 255, 50, 255)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -233,15 +239,16 @@ function PlayerMana.prototype:ManaType(event, unit)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if self.manaType == SPELL_POWER_RAGE or self.manaType == SPELL_POWER_RUNIC_POWER then
|
self.bTreatEmptyAsFull = self:TreatEmptyAsFull()
|
||||||
self.bTreatEmptyAsFull = true
|
|
||||||
else
|
|
||||||
self.bTreatEmptyAsFull = false
|
|
||||||
end
|
|
||||||
|
|
||||||
self:Update(self.unit)
|
self:Update(self.unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function PlayerMana.prototype:TreatEmptyAsFull()
|
||||||
|
return self.manaType == SPELL_POWER_RAGE or self.manaType == SPELL_POWER_RUNIC_POWER
|
||||||
|
or (IceHUD.WowVer >= 70000 and (self.manaType == SPELL_POWER_LUNAR_POWER or self.manaType == SPELL_POWER_INSANITY
|
||||||
|
or self.manaType == SPELL_POWER_FURY or self.manaType == SPELL_POWER_PAIN or self.manaType == SPELL_POWER_MAELSTROM))
|
||||||
|
end
|
||||||
|
|
||||||
function PlayerMana.prototype:UpdateEvent(event, unit, powertype)
|
function PlayerMana.prototype:UpdateEvent(event, unit, powertype)
|
||||||
self:Update(unit, powertype)
|
self:Update(unit, powertype)
|
||||||
@ -289,6 +296,14 @@ function PlayerMana.prototype:Update(unit, powertype)
|
|||||||
color = "PlayerRunicPower"
|
color = "PlayerRunicPower"
|
||||||
elseif (self.manaType == SPELL_POWER_FOCUS) then
|
elseif (self.manaType == SPELL_POWER_FOCUS) then
|
||||||
color = "PlayerFocus"
|
color = "PlayerFocus"
|
||||||
|
elseif (IceHUD.WowVer >= 70000 and self.manaType == SPELL_POWER_INSANITY) then
|
||||||
|
color = "PlayerInsanity"
|
||||||
|
elseif (IceHUD.WowVer >= 70000 and self.manaType == SPELL_POWER_FURY) then
|
||||||
|
color = "PlayerFury"
|
||||||
|
elseif (IceHUD.WowVer >= 70000 and self.manaType == SPELL_POWER_MAELSTROM) then
|
||||||
|
color = "PlayerMaelstrom"
|
||||||
|
elseif (IceHUD.WowVer >= 70000 and self.manaType == SPELL_POWER_PAIN) then
|
||||||
|
color = "PlayerPain"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -296,8 +311,8 @@ function PlayerMana.prototype:Update(unit, powertype)
|
|||||||
|
|
||||||
self:ConditionalUpdateFlash()
|
self:ConditionalUpdateFlash()
|
||||||
|
|
||||||
if (self.manaPercentage == 1 and self.manaType ~= SPELL_POWER_RAGE and self.manaType ~= SPELL_POWER_RUNIC_POWER)
|
if (self.manaPercentage == 1 and not self:TreatEmptyAsFull())
|
||||||
or (self.manaPercentage == 0 and (self.manaType == SPELL_POWER_RAGE or self.manaType == SPELL_POWER_RUNIC_POWER)) then
|
or (self.manaPercentage == 0 and self:TreatEmptyAsFull()) then
|
||||||
self:SetupOnUpdate(false)
|
self:SetupOnUpdate(false)
|
||||||
else
|
else
|
||||||
self:SetupOnUpdate(true)
|
self:SetupOnUpdate(true)
|
||||||
@ -347,13 +362,13 @@ function PlayerMana.prototype:UpdateEnergy(event, unit)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
self.previousEnergy = UnitPower(self.unit)
|
self.previousEnergy = UnitPower(self.unit, UnitPowerType(self.unit))
|
||||||
if IceHUD.WowVer < 40000 then
|
if IceHUD.WowVer < 40000 then
|
||||||
self:Update(unit)
|
self:Update(unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
if self:ShouldUseTicker() and
|
if self:ShouldUseTicker() and
|
||||||
((not (self.previousEnergy) or (self.previousEnergy <= UnitPower(self.unit))) and
|
((not (self.previousEnergy) or (self.previousEnergy <= UnitPower(self.unit, UnitPowerType(self.unit)))) and
|
||||||
(self.moduleSettings.tickerEnabled) and self.manaType == SPELL_POWER_ENERGY) then
|
(self.moduleSettings.tickerEnabled) and self.manaType == SPELL_POWER_ENERGY) then
|
||||||
self.tickStart = GetTime()
|
self.tickStart = GetTime()
|
||||||
self.tickerFrame:Show()
|
self.tickerFrame:Show()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
local Resolve = IceCore_CreateClass(IceUnitBar)
|
local Resolve = IceCore_CreateClass(IceUnitBar)
|
||||||
|
|
||||||
local RESOLVE_SPELL_ID = 158298
|
local RESOLVE_SPELL_ID = 158300
|
||||||
local RESOLVE_MAX = 240
|
local RESOLVE_MAX = 240
|
||||||
|
|
||||||
Resolve.prototype.current = nil
|
Resolve.prototype.current = nil
|
||||||
@ -49,45 +49,14 @@ end
|
|||||||
|
|
||||||
-- scan the tooltip and extract the Resolve value
|
-- scan the tooltip and extract the Resolve value
|
||||||
do
|
do
|
||||||
-- making these local as they're not used anywhere else
|
|
||||||
local regions = {}
|
|
||||||
local spellName = GetSpellInfo(RESOLVE_SPELL_ID)
|
local spellName = GetSpellInfo(RESOLVE_SPELL_ID)
|
||||||
local tooltipBuffer = CreateFrame("GameTooltip","tooltipBuffer",nil,"GameTooltipTemplate")
|
|
||||||
tooltipBuffer:SetOwner(WorldFrame, "ANCHOR_NONE")
|
|
||||||
|
|
||||||
-- suggested by Antiarc as a way to repopulate the same table instead of repeatedly creating a new one
|
|
||||||
local function makeTable(t, ...)
|
|
||||||
wipe(t)
|
|
||||||
for i = 1, select("#", ...) do
|
|
||||||
t[i] = select(i, ...)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function Resolve.prototype:UpdateCurrent(event, unit)
|
function Resolve.prototype:UpdateCurrent(event, unit)
|
||||||
if (unit and (unit ~= self.unit)) then
|
if (unit and (unit ~= self.unit)) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local name = UnitAura(self.unit, spellName)
|
self.current = select(15, UnitAura(self.unit, spellName)) or 0
|
||||||
if name then
|
|
||||||
-- Buff found, copy it into the buffer for scanning
|
|
||||||
tooltipBuffer:ClearLines()
|
|
||||||
tooltipBuffer:SetUnitBuff(self.unit, name)
|
|
||||||
|
|
||||||
-- Grab all regions, stuff em into our table
|
|
||||||
makeTable(regions, tooltipBuffer:GetRegions())
|
|
||||||
|
|
||||||
-- Convert FontStrings to strings, replace anything else with ""
|
|
||||||
for i=1, #regions do
|
|
||||||
local region = regions[i]
|
|
||||||
regions[i] = region:GetObjectType() == "FontString" and region:GetText() or ""
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Find the number, save it
|
|
||||||
self.current = tonumber(string.match(table.concat(regions),"%d+")) or 0
|
|
||||||
else
|
|
||||||
self.current = 0
|
|
||||||
end
|
|
||||||
|
|
||||||
self:Update()
|
self:Update()
|
||||||
end
|
end
|
||||||
@ -111,6 +80,6 @@ end
|
|||||||
-- Load for tanks only
|
-- Load for tanks only
|
||||||
local _, unitClass = UnitClass("player")
|
local _, unitClass = UnitClass("player")
|
||||||
if ((unitClass == "DEATHKNIGHT" or unitClass == "DRUID" or unitClass == "PALADIN" or unitClass == "WARRIOR" or unitClass == "MONK")
|
if ((unitClass == "DEATHKNIGHT" or unitClass == "DRUID" or unitClass == "PALADIN" or unitClass == "WARRIOR" or unitClass == "MONK")
|
||||||
and IceHUD.WowVer >= 60000) then
|
and IceHUD.WowVer >= 60000 and IceHUD.WowVer < 70000) then
|
||||||
IceHUD.Resolve = Resolve:new()
|
IceHUD.Resolve = Resolve:new()
|
||||||
end
|
end
|
||||||
|
@ -3,12 +3,23 @@ local Runes = IceCore_CreateClass(IceElement)
|
|||||||
|
|
||||||
local IceHUD = _G.IceHUD
|
local IceHUD = _G.IceHUD
|
||||||
|
|
||||||
|
local CooldownFrame_SetTimer = CooldownFrame_SetTimer
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
CooldownFrame_SetTimer = CooldownFrame_Set
|
||||||
|
end
|
||||||
|
|
||||||
-- blizzard cracks me up. the below block is copied verbatim from RuneFrame.lua ;)
|
-- blizzard cracks me up. the below block is copied verbatim from RuneFrame.lua ;)
|
||||||
--Readability == win
|
--Readability == win
|
||||||
local RUNETYPE_BLOOD = 1;
|
local RUNETYPE_BLOOD = 1;
|
||||||
local RUNETYPE_DEATH = 2;
|
local RUNETYPE_DEATH = 2;
|
||||||
local RUNETYPE_FROST = 3;
|
local RUNETYPE_FROST = 3;
|
||||||
local RUNETYPE_CHROMATIC = 4;
|
local RUNETYPE_CHROMATIC = 4;
|
||||||
|
local RUNETYPE_LEGION = 5; -- not real, but makes for an easy update
|
||||||
|
|
||||||
|
local GetRuneType = GetRuneType
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
GetRuneType = function() return RUNETYPE_LEGION end
|
||||||
|
end
|
||||||
|
|
||||||
-- setup the names to be more easily readable
|
-- setup the names to be more easily readable
|
||||||
Runes.prototype.runeNames = {
|
Runes.prototype.runeNames = {
|
||||||
@ -16,6 +27,7 @@ Runes.prototype.runeNames = {
|
|||||||
[RUNETYPE_DEATH] = "Unholy",
|
[RUNETYPE_DEATH] = "Unholy",
|
||||||
[RUNETYPE_FROST] = "Frost",
|
[RUNETYPE_FROST] = "Frost",
|
||||||
[RUNETYPE_CHROMATIC] = "Death",
|
[RUNETYPE_CHROMATIC] = "Death",
|
||||||
|
[RUNETYPE_LEGION] = "SingleRune",
|
||||||
}
|
}
|
||||||
|
|
||||||
Runes.prototype.runeSize = 25
|
Runes.prototype.runeSize = 25
|
||||||
@ -26,10 +38,14 @@ Runes.prototype.numRunes = 6
|
|||||||
function Runes.prototype:init()
|
function Runes.prototype:init()
|
||||||
Runes.super.prototype.init(self, "Runes")
|
Runes.super.prototype.init(self, "Runes")
|
||||||
|
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_BLOOD], 255, 0, 0)
|
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_BLOOD], 255, 0, 0)
|
||||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_DEATH], 0, 207, 0)
|
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_DEATH], 0, 207, 0)
|
||||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_FROST], 0, 255, 255)
|
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_FROST], 0, 255, 255)
|
||||||
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_CHROMATIC], 204, 26, 255)
|
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_CHROMATIC], 204, 26, 255)
|
||||||
|
else
|
||||||
|
self:SetDefaultColor("Runes"..self.runeNames[RUNETYPE_LEGION], 204, 204, 255)
|
||||||
|
end
|
||||||
self.scalingEnabled = true
|
self.scalingEnabled = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -192,11 +208,16 @@ end
|
|||||||
|
|
||||||
-- OVERRIDE
|
-- OVERRIDE
|
||||||
function Runes.prototype:Enable(core)
|
function Runes.prototype:Enable(core)
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self.numRunes = UnitPowerMax("player", SPELL_POWER_RUNES)
|
||||||
|
end
|
||||||
|
|
||||||
Runes.super.prototype.Enable(self, core)
|
Runes.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
self:RegisterEvent("RUNE_POWER_UPDATE", "UpdateRunePower")
|
self:RegisterEvent("RUNE_POWER_UPDATE", "UpdateRunePower")
|
||||||
self:RegisterEvent("RUNE_TYPE_UPDATE", "UpdateRuneType")
|
self:RegisterEvent("RUNE_TYPE_UPDATE", "UpdateRuneType")
|
||||||
self:RegisterEvent("PLAYER_ENTERING_WORLD", "ResetRuneAvailability")
|
self:RegisterEvent("PLAYER_ENTERING_WORLD", "ResetRuneAvailability")
|
||||||
|
self:RegisterEvent("UNIT_MAXPOWER", "CheckMaxNumRunes")
|
||||||
|
|
||||||
if (self.moduleSettings.hideBlizz) then
|
if (self.moduleSettings.hideBlizz) then
|
||||||
self:HideBlizz()
|
self:HideBlizz()
|
||||||
@ -211,6 +232,20 @@ function Runes.prototype:Disable(core)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Runes.prototype:CheckMaxNumRunes(event, unit, powerType)
|
||||||
|
if unit ~= "player" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if UnitPowerMax("player", SPELL_POWER_RUNES) ~= self.numRunes then
|
||||||
|
self.numRunes = UnitPowerMax("player", SPELL_POWER_RUNES)
|
||||||
|
for i = 1, #self.frame.graphical do
|
||||||
|
self.frame.graphical[i]:Hide()
|
||||||
|
end
|
||||||
|
self:Redraw()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function Runes.prototype:ResetRuneAvailability()
|
function Runes.prototype:ResetRuneAvailability()
|
||||||
for i=1, self.numRunes do
|
for i=1, self.numRunes do
|
||||||
self:UpdateRunePower(nil, i, true)
|
self:UpdateRunePower(nil, i, true)
|
||||||
@ -249,12 +284,12 @@ function Runes.prototype:UpdateRunePower(event, rune, dontFlash)
|
|||||||
end
|
end
|
||||||
elseif start ~= nil and duration ~= nil then
|
elseif start ~= nil and duration ~= nil then
|
||||||
if self.moduleSettings.cooldownMode == "Cooldown" then
|
if self.moduleSettings.cooldownMode == "Cooldown" then
|
||||||
self.frame.graphical[rune].cd:SetCooldown(start, duration)
|
CooldownFrame_SetTimer(self.frame.graphical[rune].cd, start, duration, true)
|
||||||
self.frame.graphical[rune].cd:Show()
|
self.frame.graphical[rune].cd:Show()
|
||||||
elseif self.moduleSettings.cooldownMode == "Alpha" then
|
elseif self.moduleSettings.cooldownMode == "Alpha" then
|
||||||
self.frame.graphical[rune]:SetAlpha(0.2)
|
self.frame.graphical[rune]:SetAlpha(0.2)
|
||||||
elseif self.moduleSettings.cooldownMode == "Both" then
|
elseif self.moduleSettings.cooldownMode == "Both" then
|
||||||
self.frame.graphical[rune].cd:SetCooldown(start, duration)
|
CooldownFrame_SetTimer(self.frame.graphical[rune].cd, start, duration, true)
|
||||||
self.frame.graphical[rune].cd:Show()
|
self.frame.graphical[rune].cd:Show()
|
||||||
self.frame.graphical[rune]:SetAlpha(0.2)
|
self.frame.graphical[rune]:SetAlpha(0.2)
|
||||||
end
|
end
|
||||||
@ -266,7 +301,7 @@ function Runes.prototype:ShineFinished(rune)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function Runes.prototype:UpdateRuneType(event, rune)
|
function Runes.prototype:UpdateRuneType(event, rune)
|
||||||
-- DEFAULT_CHAT_FRAME:AddMessage("Runes.prototype:UpdateRuneType: rune="..rune.." GetRuneType(rune)="..GetRuneType(rune));
|
IceHUD:Debug("Runes.prototype:UpdateRuneType: rune="..rune.." GetRuneType(rune)="..GetRuneType(rune));
|
||||||
|
|
||||||
if not rune or tonumber(rune) ~= rune or rune < 1 or rune > self.numRunes then
|
if not rune or tonumber(rune) ~= rune or rune < 1 or rune > self.numRunes then
|
||||||
return
|
return
|
||||||
@ -355,7 +390,8 @@ function Runes.prototype:CreateRune(i, type, name)
|
|||||||
self.frame.graphical[i]:SetHeight(self.runeSize)
|
self.frame.graphical[i]:SetHeight(self.runeSize)
|
||||||
|
|
||||||
-- hax for blizzard's swapping the unholy and frost rune placement on the default ui...
|
-- hax for blizzard's swapping the unholy and frost rune placement on the default ui...
|
||||||
local runeSwapI
|
local runeSwapI = i
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
if i == 3 or i == 4 then
|
if i == 3 or i == 4 then
|
||||||
runeSwapI = i + 2
|
runeSwapI = i + 2
|
||||||
elseif i == 5 or i == 6 then
|
elseif i == 5 or i == 6 then
|
||||||
@ -363,6 +399,7 @@ function Runes.prototype:CreateRune(i, type, name)
|
|||||||
else
|
else
|
||||||
runeSwapI = i
|
runeSwapI = i
|
||||||
end
|
end
|
||||||
|
end
|
||||||
if self.moduleSettings.displayMode == "Horizontal" then
|
if self.moduleSettings.displayMode == "Horizontal" then
|
||||||
self.frame.graphical[i]:SetPoint("TOPLEFT", (runeSwapI-1) * (self.runeSize-5) + (runeSwapI-1) + ((runeSwapI-1) * self.moduleSettings.runeGap), 0)
|
self.frame.graphical[i]:SetPoint("TOPLEFT", (runeSwapI-1) * (self.runeSize-5) + (runeSwapI-1) + ((runeSwapI-1) * self.moduleSettings.runeGap), 0)
|
||||||
else
|
else
|
||||||
|
@ -103,7 +103,7 @@ end
|
|||||||
|
|
||||||
-- Load us up
|
-- Load us up
|
||||||
local _, unitClass = UnitClass("player")
|
local _, unitClass = UnitClass("player")
|
||||||
if (unitClass == "PRIEST" and IceHUD.WowVer >= 50000) then
|
if (unitClass == "PRIEST" and IceHUD.WowVer >= 50000 and IceHUD.WowVer < 70000) then
|
||||||
IceHUD.ShadowOrbs = ShadowOrbs:new()
|
IceHUD.ShadowOrbs = ShadowOrbs:new()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ local AfflictionCoords =
|
|||||||
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||||
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||||
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||||
|
{0.01562500, 0.28125000, 0.00781250, 0.13281250},
|
||||||
}
|
}
|
||||||
|
|
||||||
local DestructionCoords =
|
local DestructionCoords =
|
||||||
@ -31,12 +32,24 @@ function ShardCounter.prototype:init()
|
|||||||
|
|
||||||
self.numericColor = "ShardCounterNumeric"
|
self.numericColor = "ShardCounterNumeric"
|
||||||
self.minLevel = SHARDBAR_SHOW_LEVEL
|
self.minLevel = SHARDBAR_SHOW_LEVEL
|
||||||
|
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self.runeHeight = 23
|
||||||
|
self.runeWidth = 26
|
||||||
|
self.runeCoords = AfflictionCoords
|
||||||
|
self.unitPower = SPELL_POWER_SOUL_SHARDS
|
||||||
|
self.unit = "player"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function ShardCounter.prototype:Enable(core)
|
function ShardCounter.prototype:Enable(core)
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self.numRunes = UnitPowerMax(self.unit, self.unitPower)
|
||||||
|
end
|
||||||
|
|
||||||
ShardCounter.super.prototype.Enable(self, core)
|
ShardCounter.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
if IceHUD.WowVer >= 50000 then
|
if IceHUD.WowVer >= 50000 and IceHUD.WowVer < 70000 then
|
||||||
self:RegisterEvent("PLAYER_TALENT_UPDATE", "UpdatePowerType")
|
self:RegisterEvent("PLAYER_TALENT_UPDATE", "UpdatePowerType")
|
||||||
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdatePowerType")
|
self:RegisterEvent("UNIT_DISPLAYPOWER", "UpdatePowerType")
|
||||||
self:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED", "UpdatePowerType")
|
self:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED", "UpdatePowerType")
|
||||||
@ -44,12 +57,14 @@ function ShardCounter.prototype:Enable(core)
|
|||||||
self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED", "UpdatePowerType")
|
self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED", "UpdatePowerType")
|
||||||
self:RegisterEvent("UNIT_MAXPOWER", "UpdatePowerType")
|
self:RegisterEvent("UNIT_MAXPOWER", "UpdatePowerType")
|
||||||
end
|
end
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self:UpdatePowerType()
|
self:UpdatePowerType()
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function ShardCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
function ShardCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
||||||
if IceHUD.WowVer >= 50000 then
|
if IceHUD.WowVer >= 50000 and IceHUD.WowVer < 70000 then
|
||||||
if event == "UNIT_POWER_FREQUENT" and arg1 == "player" then
|
if event == "UNIT_POWER_FREQUENT" and arg1 == self.unit then
|
||||||
if CurrentSpec == SPEC_WARLOCK_DESTRUCTION and arg2 ~= "BURNING_EMBERS" then
|
if CurrentSpec == SPEC_WARLOCK_DESTRUCTION and arg2 ~= "BURNING_EMBERS" then
|
||||||
return
|
return
|
||||||
elseif CurrentSpec == SPEC_WARLOCK_DEMONOLOGY and arg2 ~= "DEMONIC_FURY" then
|
elseif CurrentSpec == SPEC_WARLOCK_DEMONOLOGY and arg2 ~= "DEMONIC_FURY" then
|
||||||
@ -60,7 +75,7 @@ function ShardCounter.prototype:UpdateRunePower(event, arg1, arg2)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if event == "PLAYER_ENTERING_WORLD" then
|
if event == "PLAYER_ENTERING_WORLD" and IceHUD.WowVer < 70000 then
|
||||||
self:UpdatePowerType(event)
|
self:UpdatePowerType(event)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -90,7 +105,7 @@ function ShardCounter.prototype:UpdatePowerType(event)
|
|||||||
self.runeCoords = AfflictionCoords
|
self.runeCoords = AfflictionCoords
|
||||||
self.unitPower = SPELL_POWER_SOUL_SHARDS
|
self.unitPower = SPELL_POWER_SOUL_SHARDS
|
||||||
|
|
||||||
local powerMax = UnitPowerMax("player", self.unitPower)
|
local powerMax = UnitPowerMax(self.unit, self.unitPower)
|
||||||
if powerMax == 0 then -- abort abort! this is bad.
|
if powerMax == 0 then -- abort abort! this is bad.
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -102,7 +117,7 @@ function ShardCounter.prototype:UpdatePowerType(event)
|
|||||||
|
|
||||||
if IceHUD.WowVer >= 50000 then
|
if IceHUD.WowVer >= 50000 then
|
||||||
if not IsPlayerSpell(WARLOCK_SOULBURN) then
|
if not IsPlayerSpell(WARLOCK_SOULBURN) then
|
||||||
self.requiredSpec = -1
|
self.requiredSpec = nil
|
||||||
self:RegisterEvent("SPELLS_CHANGED", "UpdatePowerType")
|
self:RegisterEvent("SPELLS_CHANGED", "UpdatePowerType")
|
||||||
else
|
else
|
||||||
self:UnregisterEvent("SPELLS_CHANGED", "UpdatePowerType")
|
self:UnregisterEvent("SPELLS_CHANGED", "UpdatePowerType")
|
||||||
@ -112,7 +127,7 @@ function ShardCounter.prototype:UpdatePowerType(event)
|
|||||||
self.runeCoords = DestructionCoords
|
self.runeCoords = DestructionCoords
|
||||||
self.unitPower = SPELL_POWER_BURNING_EMBERS
|
self.unitPower = SPELL_POWER_BURNING_EMBERS
|
||||||
|
|
||||||
local powerMax = UnitPowerMax("player", self.unitPower)
|
local powerMax = UnitPowerMax(self.unit, self.unitPower)
|
||||||
if powerMax == 0 then -- abort abort! this is bad.
|
if powerMax == 0 then -- abort abort! this is bad.
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -126,7 +141,7 @@ function ShardCounter.prototype:UpdatePowerType(event)
|
|||||||
self.currentGrowMode = self.growModes["height"]
|
self.currentGrowMode = self.growModes["height"]
|
||||||
|
|
||||||
if not IsPlayerSpell(WARLOCK_BURNING_EMBERS) then
|
if not IsPlayerSpell(WARLOCK_BURNING_EMBERS) then
|
||||||
self.requiredSpec = -1
|
self.requiredSpec = nil
|
||||||
self:RegisterEvent("SPELLS_CHANGED", "UpdatePowerType")
|
self:RegisterEvent("SPELLS_CHANGED", "UpdatePowerType")
|
||||||
elseif not IsSpellKnown(WARLOCK_GREEN_FIRE) then
|
elseif not IsSpellKnown(WARLOCK_GREEN_FIRE) then
|
||||||
self:RegisterEvent("SPELLS_CHANGED", "CheckGreenFire")
|
self:RegisterEvent("SPELLS_CHANGED", "CheckGreenFire")
|
||||||
@ -142,7 +157,7 @@ function ShardCounter.prototype:UpdatePowerType(event)
|
|||||||
self.numConsideredFull = 99
|
self.numConsideredFull = 99
|
||||||
self.currentGrowMode = self.growModes["width"]
|
self.currentGrowMode = self.growModes["width"]
|
||||||
else
|
else
|
||||||
self.requiredSpec = -1
|
self.requiredSpec = nil
|
||||||
self:RegisterEvent("SPELLS_CHANGED", "UpdatePowerType")
|
self:RegisterEvent("SPELLS_CHANGED", "UpdatePowerType")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -50,7 +50,11 @@ function SliceAndDice.prototype:Enable(core)
|
|||||||
SliceAndDice.super.prototype.Enable(self, core)
|
SliceAndDice.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_AURA", "UpdateSliceAndDice")
|
self:RegisterEvent("UNIT_AURA", "UpdateSliceAndDice")
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self:RegisterEvent("UNIT_COMBO_POINTS", "ComboPointsChanged")
|
self:RegisterEvent("UNIT_COMBO_POINTS", "ComboPointsChanged")
|
||||||
|
else
|
||||||
|
self:RegisterEvent("UNIT_POWER", "ComboPointsChanged")
|
||||||
|
end
|
||||||
|
|
||||||
if not self.moduleSettings.alwaysFullAlpha then
|
if not self.moduleSettings.alwaysFullAlpha then
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
@ -65,7 +69,11 @@ function SliceAndDice.prototype:Disable(core)
|
|||||||
SliceAndDice.super.prototype.Disable(self, core)
|
SliceAndDice.super.prototype.Disable(self, core)
|
||||||
end
|
end
|
||||||
|
|
||||||
function SliceAndDice.prototype:ComboPointsChanged()
|
function SliceAndDice.prototype:ComboPointsChanged(...)
|
||||||
|
if select('#', ...) >= 3 and select(1, ...) == "UNIT_POWER" and select(3, ...) ~= "COMBO_POINTS" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
self:TargetChanged()
|
self:TargetChanged()
|
||||||
self:UpdateDurationBar()
|
self:UpdateDurationBar()
|
||||||
end
|
end
|
||||||
@ -188,7 +196,7 @@ end
|
|||||||
function SliceAndDice.prototype:ResetRotation()
|
function SliceAndDice.prototype:ResetRotation()
|
||||||
SliceAndDice.super.prototype.ResetRotation(self)
|
SliceAndDice.super.prototype.ResetRotation(self)
|
||||||
|
|
||||||
if self.durationFrame.anim then
|
if self.durationFrame and self.durationFrame.anim then
|
||||||
self.durationFrame.anim:Stop()
|
self.durationFrame.anim:Stop()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -236,7 +244,7 @@ end
|
|||||||
|
|
||||||
local function SNDGetComboPoints(unit)
|
local function SNDGetComboPoints(unit)
|
||||||
if IceHUD.WowVer >= 60000 then
|
if IceHUD.WowVer >= 60000 then
|
||||||
return UnitPower(unit, 4)
|
return UnitPower(unit, SPELL_POWER_COMBO_POINTS)
|
||||||
elseif IceHUD.WowVer >= 30000 then
|
elseif IceHUD.WowVer >= 30000 then
|
||||||
return GetComboPoints(unit, "target")
|
return GetComboPoints(unit, "target")
|
||||||
else
|
else
|
||||||
@ -244,6 +252,20 @@ local function SNDGetComboPoints(unit)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- use this to figure out if Roll the Bones is available or not. neither IsSpellKnown nor IsPlayerSpell are correct for it
|
||||||
|
-- when SnD is known, but this is.
|
||||||
|
local function HasSpell(id)
|
||||||
|
local spell = GetSpellInfo(id)
|
||||||
|
return spell == GetSpellInfo(spell)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function ShouldHide()
|
||||||
|
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.
|
||||||
|
-- if we do, though, the "active" check gets way more complicated since it can activate any number of 6 different abilities
|
||||||
|
-- with different durations
|
||||||
|
end
|
||||||
|
|
||||||
function SliceAndDice.prototype:UpdateSliceAndDice(event, unit, fromUpdate)
|
function SliceAndDice.prototype:UpdateSliceAndDice(event, unit, fromUpdate)
|
||||||
if unit and unit ~= self.unit then
|
if unit and unit ~= self.unit then
|
||||||
return
|
return
|
||||||
@ -276,12 +298,12 @@ function SliceAndDice.prototype:UpdateSliceAndDice(event, unit, fromUpdate)
|
|||||||
else
|
else
|
||||||
self:UpdateBar(0, "SliceAndDice")
|
self:UpdateBar(0, "SliceAndDice")
|
||||||
|
|
||||||
if SNDGetComboPoints(self.unit) == 0 or (not UnitExists("target") and not self.moduleSettings.bShowWithNoTarget) then
|
if SNDGetComboPoints(self.unit) == 0 or (not UnitExists("target") and not self.moduleSettings.bShowWithNoTarget) or ShouldHide() then
|
||||||
if self.bIsVisible then
|
if self.bIsVisible then
|
||||||
self.bUpdateSnd = nil
|
self.bUpdateSnd = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
if not self.moduleSettings.alwaysFullAlpha then
|
if not self.moduleSettings.alwaysFullAlpha or ShouldHide() then
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -321,7 +343,8 @@ function SliceAndDice.prototype:UpdateDurationBar(event, unit)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- player doesn't want to show the percent of max or the alpha is zeroed out, so don't bother with the duration bar
|
-- player doesn't want to show the percent of max or the alpha is zeroed out, so don't bother with the duration bar
|
||||||
if not self.moduleSettings.showAsPercentOfMax or self.moduleSettings.durationAlpha == 0 or (points == 0 and not self:IsVisible()) then
|
if not self.moduleSettings.showAsPercentOfMax or self.moduleSettings.durationAlpha == 0 or (points == 0 and not self:IsVisible())
|
||||||
|
or ShouldHide() then
|
||||||
self.durationFrame:Hide()
|
self.durationFrame:Hide()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -19,23 +19,6 @@ local MinLevel = 10
|
|||||||
StaggerBar.prototype.StaggerDuration = 0
|
StaggerBar.prototype.StaggerDuration = 0
|
||||||
StaggerBar.prototype.StaggerEndTime = 0
|
StaggerBar.prototype.StaggerEndTime = 0
|
||||||
|
|
||||||
local function ReadableNumber(num, places)
|
|
||||||
local ret
|
|
||||||
local placeValue = ("%%.%df"):format(places or 0)
|
|
||||||
|
|
||||||
if not num then
|
|
||||||
ret = 0
|
|
||||||
elseif num >= 1000000 then
|
|
||||||
ret = placeValue:format(num / 1000000) .. "M" -- million
|
|
||||||
elseif num >= 1000 then
|
|
||||||
ret = placeValue:format(num / 1000) .. "k" -- thousand
|
|
||||||
else
|
|
||||||
ret = num -- hundreds
|
|
||||||
end
|
|
||||||
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
function StaggerBar.prototype:init()
|
function StaggerBar.prototype:init()
|
||||||
StaggerBar.super.prototype.init(self, "Stagger", "player")
|
StaggerBar.super.prototype.init(self, "Stagger", "player")
|
||||||
|
|
||||||
@ -65,13 +48,14 @@ function StaggerBar.prototype:GetDefaultSettings()
|
|||||||
settings["showAsPercentOfMax"] = true
|
settings["showAsPercentOfMax"] = true
|
||||||
settings["maxPercent"] = 20
|
settings["maxPercent"] = 20
|
||||||
settings["timerAlpha"] = 0.3
|
settings["timerAlpha"] = 0.3
|
||||||
settings["usesDogTagStrings"] = false
|
|
||||||
settings["lockLowerFontAlpha"] = false
|
settings["lockLowerFontAlpha"] = false
|
||||||
settings["lowerTextString"] = ""
|
settings["lowerTextString"] = ""
|
||||||
settings["lowerTextVisible"] = false
|
settings["lowerTextVisible"] = false
|
||||||
settings["hideAnimationSettings"] = true
|
settings["hideAnimationSettings"] = true
|
||||||
settings["bAllowExpand"] = true
|
settings["bAllowExpand"] = true
|
||||||
settings["bShowWithNoTarget"] = true
|
settings["bShowWithNoTarget"] = true
|
||||||
|
settings["upperText"] = "[PercentStagger]"
|
||||||
|
settings["lowerText"] = "[FractionalStagger:Short]"
|
||||||
|
|
||||||
return settings
|
return settings
|
||||||
end
|
end
|
||||||
@ -180,6 +164,20 @@ function StaggerBar.prototype:ACTIVE_TALENT_GROUP_CHANGED()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function StaggerBar.prototype:GetDebuffInfo()
|
function StaggerBar.prototype:GetDebuffInfo()
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self.amount = UnitStagger(self.unit)
|
||||||
|
self.staggerLevel = 1
|
||||||
|
|
||||||
|
local healthMax = UnitHealthMax(self.unit)
|
||||||
|
local percent = self.amount / healthMax
|
||||||
|
if percent >= STAGGER_YELLOW_TRANSITION then
|
||||||
|
self.staggerLevel = 2
|
||||||
|
elseif percent >= STAGGER_RED_TRANSITION then
|
||||||
|
self.staggerLevel = 3
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local amount = 0
|
local amount = 0
|
||||||
local duration = 0
|
local duration = 0
|
||||||
local staggerLevel = 1
|
local staggerLevel = 1
|
||||||
@ -216,19 +214,15 @@ function StaggerBar.prototype:UpdateStaggerBar()
|
|||||||
|
|
||||||
-- local health = UnitHealth(self.unit)
|
-- local health = UnitHealth(self.unit)
|
||||||
local maxHealth = UnitHealthMax(self.unit)
|
local maxHealth = UnitHealthMax(self.unit)
|
||||||
local percent = (self.amount / maxHealth) * 100
|
|
||||||
local percentText = percent >= 10 and floor(percent) or strform("%.1f", percent)
|
|
||||||
local scale = IceHUD:Clamp((self.amount / maxHealth) * (100 / self.moduleSettings.maxPercent), 0, 1)
|
local scale = IceHUD:Clamp((self.amount / maxHealth) * (100 / self.moduleSettings.maxPercent), 0, 1)
|
||||||
|
|
||||||
if self.amount > 0 and self.duration <= 10 then
|
if self.amount > 0 and (IceHUD.WowVer >= 7000 or self.duration <= 10) then
|
||||||
-- self.timerFrame.bar:SetVertexColor(self:GetColor("StaggerTime", self.moduleSettings.timerAlpha))
|
-- self.timerFrame.bar:SetVertexColor(self:GetColor("StaggerTime", self.moduleSettings.timerAlpha))
|
||||||
self:UpdateBar(scale or 0, "Stagger"..self.staggerLevel)
|
self:UpdateBar(scale or 0, "Stagger"..self.staggerLevel)
|
||||||
self:SetBottomText1(self.moduleSettings.upperText .. " " .. ReadableNumber(self.amount, 1) .. " (" .. percentText .. "%)")
|
|
||||||
self:UpdateShown()
|
self:UpdateShown()
|
||||||
self:UpdateTimerFrame()
|
self:UpdateTimerFrame()
|
||||||
else
|
else
|
||||||
self:UpdateBar(0, "Stagger1")
|
self:UpdateBar(0, "Stagger1")
|
||||||
self:SetBottomText1("")
|
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -4,13 +4,8 @@ IceTargetAbsorb.prototype.highestAbsorbSinceLastZero = 0
|
|||||||
IceTargetAbsorb.prototype.ColorName = "TargetAbsorb"
|
IceTargetAbsorb.prototype.ColorName = "TargetAbsorb"
|
||||||
|
|
||||||
local UnitGetTotalAbsorbs = UnitGetTotalAbsorbs
|
local UnitGetTotalAbsorbs = UnitGetTotalAbsorbs
|
||||||
if IceHUD.WowVer < 50200 then
|
|
||||||
UnitGetTotalAbsorbs = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Constructor --
|
|
||||||
function IceTargetAbsorb.prototype:init(moduleName, unit, colorName)
|
function IceTargetAbsorb.prototype:init(moduleName, unit, colorName)
|
||||||
-- not sure if this is necessary...i think it is...this way, we can instantiate this bar on its own or as a parent class
|
|
||||||
if moduleName == nil or unit == nil then
|
if moduleName == nil or unit == nil then
|
||||||
IceTargetAbsorb.super.prototype.init(self, "TargetAbsorb", "target")
|
IceTargetAbsorb.super.prototype.init(self, "TargetAbsorb", "target")
|
||||||
else
|
else
|
||||||
@ -29,45 +24,46 @@ function IceTargetAbsorb.prototype:GetDefaultSettings()
|
|||||||
|
|
||||||
settings["side"] = IceCore.Side.Right
|
settings["side"] = IceCore.Side.Right
|
||||||
settings["offset"] = 3
|
settings["offset"] = 3
|
||||||
settings["upperText"] = "[TotalAbsorb]"
|
settings["upperText"] = "[TotalAbsorb:VeryShort]"
|
||||||
|
|
||||||
return settings
|
return settings
|
||||||
end
|
end
|
||||||
|
|
||||||
-- OVERRIDE
|
|
||||||
function IceTargetAbsorb.prototype:Enable(core)
|
function IceTargetAbsorb.prototype:Enable(core)
|
||||||
IceTargetAbsorb.super.prototype.Enable(self, core)
|
IceTargetAbsorb.super.prototype.Enable(self, core)
|
||||||
|
|
||||||
self:RegisterEvent("UNIT_ABSORB_AMOUNT_CHANGED", "UpdateAbsorbAmount")
|
self:RegisterEvent("UNIT_ABSORB_AMOUNT_CHANGED", "UpdateAbsorbAmount")
|
||||||
self:MyRegisterCustomEvents()
|
self:MyRegisterCustomEvents()
|
||||||
|
|
||||||
self:UpdateAbsorbAmount("UNIT_ABSORB_AMOUNT_CHANGED", self.unit)
|
self:UpdateAbsorbAmount()
|
||||||
|
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceTargetAbsorb.prototype:MyRegisterCustomEvents()
|
function IceTargetAbsorb.prototype:MyRegisterCustomEvents()
|
||||||
self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateAbsorbAmount")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceTargetAbsorb.prototype:MyUnregisterCustomEvents()
|
function IceTargetAbsorb.prototype:MyUnregisterCustomEvents()
|
||||||
self:UnregisterEvent("PLAYER_TARGET_CHANGED")
|
end
|
||||||
|
|
||||||
|
function IceTargetAbsorb.prototype:Update()
|
||||||
|
self:UpdateAbsorbAmount()
|
||||||
end
|
end
|
||||||
|
|
||||||
function IceTargetAbsorb.prototype:UpdateAbsorbAmount(event, unit)
|
function IceTargetAbsorb.prototype:UpdateAbsorbAmount(event, unit)
|
||||||
if UnitGetTotalAbsorbs == nil or (event == "UNIT_ABSORB_AMOUNT_CHANGED" and unit ~= self.unit) then
|
if event == "UNIT_ABSORB_AMOUNT_CHANGED" and unit ~= self.unit then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local absorbAmount = UnitGetTotalAbsorbs(self.unit)
|
local absorbAmount = UnitGetTotalAbsorbs(self.unit) or 0
|
||||||
|
|
||||||
if absorbAmount == nil or absorbAmount <= 0 then
|
if absorbAmount <= 0 then
|
||||||
self.highestAbsorbSinceLastZero = 0
|
self.highestAbsorbSinceLastZero = 0
|
||||||
elseif absorbAmount > self.highestAbsorbSinceLastZero then
|
elseif absorbAmount > self.highestAbsorbSinceLastZero then
|
||||||
self.highestAbsorbSinceLastZero = absorbAmount
|
self.highestAbsorbSinceLastZero = absorbAmount
|
||||||
end
|
end
|
||||||
|
|
||||||
if absorbAmount == nil or absorbAmount <= 0 or self.highestAbsorbSinceLastZero <= 0 then
|
if absorbAmount <= 0 or self.highestAbsorbSinceLastZero <= 0 then
|
||||||
self:Show(false)
|
self:Show(false)
|
||||||
else
|
else
|
||||||
self:Show(true)
|
self:Show(true)
|
||||||
@ -82,4 +78,6 @@ function IceTargetAbsorb.prototype:Disable(core)
|
|||||||
self:MyUnregisterCustomEvents()
|
self:MyUnregisterCustomEvents()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if UnitGetTotalAbsorbs ~= nil then
|
||||||
IceHUD.TargetAbsorb = IceTargetAbsorb:new()
|
IceHUD.TargetAbsorb = IceTargetAbsorb:new()
|
||||||
|
end
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
IceTargetInfo = IceCore_CreateClass(IceElement)
|
IceTargetInfo = IceCore_CreateClass(IceElement)
|
||||||
|
|
||||||
|
local CooldownFrame_SetTimer = CooldownFrame_SetTimer
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
CooldownFrame_SetTimer = CooldownFrame_Set
|
||||||
|
end
|
||||||
|
|
||||||
local DogTag = nil
|
local DogTag = nil
|
||||||
|
|
||||||
local internal = "internal"
|
local internal = "internal"
|
||||||
@ -1320,6 +1325,7 @@ do
|
|||||||
icon:SetHeight(size-2)
|
icon:SetHeight(size-2)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
frame.texture:SetTexture(0, 0, 0, 0.5)
|
||||||
icon:SetWidth(size-2)
|
icon:SetWidth(size-2)
|
||||||
icon:SetHeight(size-2)
|
icon:SetHeight(size-2)
|
||||||
end
|
end
|
||||||
@ -1445,7 +1451,7 @@ function IceTargetInfo.prototype:SetupAura(aura, i, icon, duration, expirationTi
|
|||||||
if (duration and duration > 0 and expirationTime and expirationTime > 0) then
|
if (duration and duration > 0 and expirationTime and expirationTime > 0) then
|
||||||
local start = expirationTime - duration
|
local start = expirationTime - duration
|
||||||
|
|
||||||
frame.cd:SetCooldown(start, duration)
|
CooldownFrame_SetTimer(frame.cd, start, duration, true)
|
||||||
frame.cd:Show()
|
frame.cd:Show()
|
||||||
else
|
else
|
||||||
frame.cd:Hide()
|
frame.cd:Hide()
|
||||||
@ -1624,7 +1630,11 @@ end
|
|||||||
|
|
||||||
function IceTargetInfo.prototype:TargetFlags(event, unit)
|
function IceTargetInfo.prototype:TargetFlags(event, unit)
|
||||||
if (unit == self.unit or unit == internal) then
|
if (unit == self.unit or unit == internal) then
|
||||||
|
if IceHUD.WowVer < 70000 then
|
||||||
self.tapped = UnitIsTapped(self.unit) and (not UnitIsTappedByPlayer(self.unit))
|
self.tapped = UnitIsTapped(self.unit) and (not UnitIsTappedByPlayer(self.unit))
|
||||||
|
else
|
||||||
|
self.tapped = UnitIsTapDenied(self.unit)
|
||||||
|
end
|
||||||
self.targetCombat = UnitAffectingCombat(self.unit) and " |cffee4030Combat|r" or ""
|
self.targetCombat = UnitAffectingCombat(self.unit) and " |cffee4030Combat|r" or ""
|
||||||
self:UpdateBuffs()
|
self:UpdateBuffs()
|
||||||
self:Update(unit)
|
self:Update(unit)
|
||||||
|
@ -18,6 +18,12 @@ function IceTargetMana.prototype:init(moduleName, unit)
|
|||||||
self:SetDefaultColor("TargetEnergy", 228, 242, 31)
|
self:SetDefaultColor("TargetEnergy", 228, 242, 31)
|
||||||
self:SetDefaultColor("TargetFocus", 242, 149, 98)
|
self:SetDefaultColor("TargetFocus", 242, 149, 98)
|
||||||
self:SetDefaultColor("TargetRunicPower", 52, 64, 221)
|
self:SetDefaultColor("TargetRunicPower", 52, 64, 221)
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
self:SetDefaultColor("TargetInsanity", 150, 50, 255)
|
||||||
|
self:SetDefaultColor("TargetFury", 255, 50, 255)
|
||||||
|
self:SetDefaultColor("TargetMaelstrom", 52, 64, 221)
|
||||||
|
self:SetDefaultColor("TargetPain", 255, 50, 255)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -105,6 +111,14 @@ function IceTargetMana.prototype:Update(unit)
|
|||||||
self.color = "TargetEnergy"
|
self.color = "TargetEnergy"
|
||||||
elseif (manaType == SPELL_POWER_RUNIC_POWER) then
|
elseif (manaType == SPELL_POWER_RUNIC_POWER) then
|
||||||
self.color = "TargetRunicPower"
|
self.color = "TargetRunicPower"
|
||||||
|
elseif (IceHUD.WowVer >= 70000 and manaType == SPELL_POWER_INSANITY) then
|
||||||
|
self.color = "TargetInsanity"
|
||||||
|
elseif (IceHUD.WowVer >= 70000 and manaType == SPELL_POWER_FURY) then
|
||||||
|
self.color = "TargetFury"
|
||||||
|
elseif (IceHUD.WowVer >= 70000 and manaType == SPELL_POWER_MAELSTROM) then
|
||||||
|
self.color = "TargetMaelstrom"
|
||||||
|
elseif (IceHUD.WowVer >= 70000 and manaType == SPELL_POWER_PAIN) then
|
||||||
|
self.color = "TargetPain"
|
||||||
end
|
end
|
||||||
|
|
||||||
if (self.tapped) then
|
if (self.tapped) then
|
||||||
@ -112,11 +126,7 @@ function IceTargetMana.prototype:Update(unit)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if manaType == SPELL_POWER_RAGE or manaType == SPELL_POWER_RUNIC_POWER then
|
self.bTreatEmptyAsFull = self:TreatEmptyAsFull(manaType)
|
||||||
self.bTreatEmptyAsFull = true
|
|
||||||
else
|
|
||||||
self.bTreatEmptyAsFull = false
|
|
||||||
end
|
|
||||||
|
|
||||||
self:UpdateBar(self.manaPercentage, self.color)
|
self:UpdateBar(self.manaPercentage, self.color)
|
||||||
|
|
||||||
@ -126,6 +136,11 @@ function IceTargetMana.prototype:Update(unit)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function IceTargetMana.prototype:TreatEmptyAsFull(manaType)
|
||||||
|
return manaType == SPELL_POWER_RAGE or manaType == SPELL_POWER_RUNIC_POWER
|
||||||
|
or (IceHUD.WowVer >= 70000 and (manaType == SPELL_POWER_LUNAR_POWER or manaType == SPELL_POWER_INSANITY
|
||||||
|
or manaType == SPELL_POWER_FURY or manaType == SPELL_POWER_PAIN or manaType == SPELL_POWER_MAELSTROM))
|
||||||
|
end
|
||||||
|
|
||||||
-- OVERRIDE
|
-- OVERRIDE
|
||||||
function IceTargetMana.prototype:GetOptions()
|
function IceTargetMana.prototype:GetOptions()
|
||||||
|
@ -332,7 +332,7 @@ threatValue = 100
|
|||||||
scaledPercentZeroToOne = 0
|
scaledPercentZeroToOne = 0
|
||||||
scaledPercent = 0
|
scaledPercent = 0
|
||||||
|
|
||||||
IceHUD:Debug( "Threat: nil threat on valid target" )
|
--IceHUD:Debug( "Threat: nil threat on valid target" )
|
||||||
else
|
else
|
||||||
if self.moduleSettings.showScaledThreat then
|
if self.moduleSettings.showScaledThreat then
|
||||||
scaledPercentZeroToOne = scaledPercent / 100
|
scaledPercentZeroToOne = scaledPercent / 100
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
local L = LibStub("AceLocale-3.0"):GetLocale("IceHUD", false)
|
||||||
local Totems = IceCore_CreateClass(IceElement)
|
local Totems = IceCore_CreateClass(IceElement)
|
||||||
|
|
||||||
|
local CooldownFrame_SetTimer = CooldownFrame_SetTimer
|
||||||
|
if IceHUD.WowVer >= 70000 then
|
||||||
|
CooldownFrame_SetTimer = CooldownFrame_Set
|
||||||
|
end
|
||||||
|
|
||||||
-- the below block is copied from TotemFrame.lua
|
-- the below block is copied from TotemFrame.lua
|
||||||
local FIRE_TOTEM_SLOT = 1;
|
local FIRE_TOTEM_SLOT = 1;
|
||||||
local EARTH_TOTEM_SLOT = 2;
|
local EARTH_TOTEM_SLOT = 2;
|
||||||
@ -239,7 +244,7 @@ function Totems.prototype:UpdateTotem(event, 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)
|
||||||
self.frame.graphical[totem].cd:SetCooldown(startTime, duration)
|
CooldownFrame_SetTimer(self.frame.graphical[totem].cd, startTime, duration, true)
|
||||||
self.frame.graphical[totem].cd:Show()
|
self.frame.graphical[totem].cd:Show()
|
||||||
self.frame.graphical[totem]:Show()
|
self.frame.graphical[totem]:Show()
|
||||||
else
|
else
|
||||||
@ -367,7 +372,7 @@ function Totems.prototype:CreateTotem(i, name)
|
|||||||
self.frame.graphical[i].cd:ClearAllPoints()
|
self.frame.graphical[i].cd:ClearAllPoints()
|
||||||
self.frame.graphical[i].cd:SetAllPoints(self.frame.graphical[i])
|
self.frame.graphical[i].cd:SetAllPoints(self.frame.graphical[i])
|
||||||
if duration > 0 then
|
if duration > 0 then
|
||||||
self.frame.graphical[i].cd:SetCooldown(startTime, duration)
|
CooldownFrame_SetTimer(self.frame.graphical[i].cd, startTime, duration, true)
|
||||||
self.frame.graphical[i].cd:Show()
|
self.frame.graphical[i].cd:Show()
|
||||||
self.frame.graphical[i]:Show()
|
self.frame.graphical[i]:Show()
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user