Compare commits
45 Commits
v1.0.5-Bet
...
v1.09-Beta
Author | SHA1 | Date | |
---|---|---|---|
a60119caa2 | |||
1546e3db6e | |||
82a9a014e4 | |||
a9a1a77dd3 | |||
084fad0074 | |||
2b9e219839 | |||
ba8ea87863 | |||
f498a0dde1 | |||
673dc72b3b | |||
6da33b6c68 | |||
0c6cae0b04 | |||
ded321e772 | |||
7015bb989e | |||
eaeccf5595 | |||
c7d07c62ee | |||
cf804546c2 | |||
467b459898 | |||
0d9cbc8f45 | |||
2c858e1c84 | |||
ffc5d32b80 | |||
1956b3a568 | |||
84f542b3b8 | |||
ccf7d08832 | |||
2e093950e2 | |||
2f9356f8de | |||
8c4a70fd04 | |||
cac0124f1a | |||
cef9de3819 | |||
a84178edbf | |||
c05fab9454 | |||
be54619576 | |||
c70560e66a | |||
de4adaec16 | |||
01d748f37e | |||
ad130af188 | |||
67edecf8d1 | |||
e01b86e1e6 | |||
8b69f5ef93 | |||
4f774b1ddb | |||
3a846add3b | |||
9dfec29f16 | |||
28d33d2f9a | |||
2d53df2b5f | |||
cddea2e094 | |||
ee1a78000e |
38
Bindings.xml
38
Bindings.xml
@ -1,38 +0,0 @@
|
||||
<Bindings>
|
||||
<Binding name="GLADDYBUTTON1_LEFT" header="GLADDY" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON2_LEFT" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON3_LEFT" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON4_LEFT" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON5_LEFT" category="ADDONS"/>
|
||||
|
||||
<Binding name="GLADDYBUTTON1_RIGHT" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON2_RIGHT" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON3_RIGHT" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON4_RIGHT" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON5_RIGHT" category="ADDONS"/>
|
||||
|
||||
<Binding name="GLADDYBUTTON1_MIDDLE" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON2_MIDDLE" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON3_MIDDLE" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON4_MIDDLE" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON5_MIDDLE" category="ADDONS"/>
|
||||
|
||||
<Binding name="GLADDYBUTTON1_BUTTON4" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON2_BUTTON4" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON3_BUTTON4" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON4_BUTTON4" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON5_BUTTON4" category="ADDONS"/>
|
||||
|
||||
<Binding name="GLADDYBUTTON1_BUTTON5" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON2_BUTTON5" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON3_BUTTON5" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON4_BUTTON5" category="ADDONS"/>
|
||||
<Binding name="GLADDYBUTTON5_BUTTON5" category="ADDONS"/>
|
||||
|
||||
|
||||
<Binding header="GLADDYTRINKET" name="GLADDYTRINKET1" category="ADDONS"/>
|
||||
<Binding name="GLADDYTRINKET2" category="ADDONS"/>
|
||||
<Binding name="GLADDYTRINKET3" category="ADDONS"/>
|
||||
<Binding name="GLADDYTRINKET4" category="ADDONS"/>
|
||||
<Binding name="GLADDYTRINKET5" category="ADDONS"/>
|
||||
</Bindings>
|
@ -366,6 +366,13 @@ function Gladdy:GetImportantAuras()
|
||||
priority = 10,
|
||||
spellID = 1044,
|
||||
},
|
||||
-- Blessing of Sacrifice
|
||||
[GetSpellInfo(6940)] = {
|
||||
track = AURA_TYPE_BUFF,
|
||||
duration = 30,
|
||||
priority = 12,
|
||||
spellID = 6940,
|
||||
},
|
||||
-- Divine Shield
|
||||
[GetSpellInfo(642)] = {
|
||||
track = AURA_TYPE_BUFF,
|
||||
@ -599,6 +606,14 @@ function Gladdy:GetImportantAuras()
|
||||
priority = 20,
|
||||
spellID = 8178
|
||||
},
|
||||
--Intervene
|
||||
[GetSpellInfo(3411)] = {
|
||||
track = AURA_TYPE_BUFF,
|
||||
duration = 10,
|
||||
priority = 10,
|
||||
spellSchool = "physical",
|
||||
spellID = 3411,
|
||||
},
|
||||
|
||||
|
||||
-- War Stomp
|
||||
|
@ -177,7 +177,7 @@ function EventListener:ARENA_OPPONENT_UPDATE(unit, updateReason)
|
||||
end
|
||||
end
|
||||
|
||||
local exceptionNames = {
|
||||
local exceptionNames = { -- TODO MOVE ME TO CLASSBUFFS LIB
|
||||
[31117] = GetSpellInfo(30405) .. " Silence", -- Unstable Affliction Silence
|
||||
[43523] = GetSpellInfo(30405) .. " Silence",
|
||||
[24131] = select(1, GetSpellInfo(19386)) .. " Dot", -- Wyvern Sting Dot
|
||||
|
141
Frame.lua
141
Frame.lua
@ -30,9 +30,12 @@ Gladdy.BUTTON_DEFAULTS = {
|
||||
|
||||
function Gladdy:CreateFrame()
|
||||
self.frame = CreateFrame("Frame", "GladdyFrame", UIParent)
|
||||
--self.frame.texture = self.frame:CreateTexture(nil, "OVERLAY")
|
||||
--self.frame.texture:SetAllPoints(self.frame)
|
||||
--self.frame.texture:SetTexture("Interface\\AddOns\\Gladdy\\Images\\Border_rounded_blp")
|
||||
|
||||
self.frame:SetClampedToScreen(true)
|
||||
self.frame:EnableMouse(true)
|
||||
self.frame:EnableMouse(false)
|
||||
self.frame:SetMovable(true)
|
||||
self.frame:RegisterForDrag("LeftButton")
|
||||
|
||||
@ -109,48 +112,69 @@ function Gladdy:UpdateFrame()
|
||||
end
|
||||
local teamSize = self.curBracket or 0
|
||||
|
||||
local iconSize = self.db.healthBarHeight
|
||||
local margin = 0
|
||||
local width = self.db.barWidth + self.db.padding * 2 + 5
|
||||
local height = self.db.healthBarHeight * teamSize + margin * (teamSize - 1) + self.db.padding * 2 + 5
|
||||
local extraBarWidth = 0
|
||||
local extraBarHeight = 0
|
||||
local highlightBorderSize = (self.db.highlightInset and 0 or self.db.highlightBorderSize * 2)
|
||||
local leftSize = 0
|
||||
local rightSize = 0
|
||||
--Trinket + Racial
|
||||
if self.db.trinketEnabled and self.db.trinketPos == "LEFT" then
|
||||
leftSize = leftSize + self.db.trinketSize * self.db.trinketWidthFactor + self.db.padding
|
||||
if self.db.racialEnabled and self.db.racialAnchor == "trinket" and self.db.racialPos == "LEFT" then
|
||||
leftSize = leftSize + self.db.racialSize * self.db.racialWidthFactor + self.db.padding
|
||||
end
|
||||
end
|
||||
if self.db.trinketEnabled and self.db.trinketPos == "RIGHT" then
|
||||
rightSize = rightSize + self.db.trinketSize * self.db.trinketWidthFactor + self.db.padding
|
||||
if self.db.racialEnabled and self.db.racialAnchor == "trinket" and self.db.racialPos == "RIGHT" then
|
||||
rightSize = rightSize + self.db.racialSize * self.db.racialWidthFactor + self.db.padding
|
||||
end
|
||||
end
|
||||
--ClassIcon
|
||||
if self.db.classIconPos == "LEFT" then
|
||||
leftSize = leftSize + self.db.classIconSize * self.db.classIconWidthFactor + self.db.padding
|
||||
else
|
||||
rightSize = rightSize + self.db.classIconSize * self.db.classIconWidthFactor + self.db.padding
|
||||
end
|
||||
--Highlight
|
||||
if not self.db.highlightInset then
|
||||
leftSize = leftSize + self.db.highlightBorderSize
|
||||
rightSize = rightSize + self.db.highlightBorderSize
|
||||
end
|
||||
|
||||
-- Powerbar
|
||||
iconSize = iconSize + self.db.powerBarHeight
|
||||
margin = margin + self.db.powerBarHeight
|
||||
height = height + self.db.powerBarHeight * teamSize
|
||||
extraBarHeight = extraBarHeight + self.db.powerBarHeight
|
||||
local margin = self.db.powerBarHeight + 1
|
||||
local width = self.db.barWidth + leftSize + rightSize
|
||||
local height = (self.db.healthBarHeight + self.db.powerBarHeight + 1) * teamSize
|
||||
+ (self.db.highlightInset and 0 or self.db.highlightBorderSize * 2 * teamSize)
|
||||
+ self.db.bottomMargin * (teamSize - 1)
|
||||
|
||||
-- Cooldown
|
||||
margin = margin + 1 + self.db.highlightBorderSize * 2 + 1 -- + 1 space between health and power bar
|
||||
height = height + self.db.highlightBorderSize * teamSize
|
||||
-- Highlight
|
||||
margin = margin + highlightBorderSize
|
||||
|
||||
if (self.db.cooldownYPos == "TOP" or self.db.cooldownYPos == "BOTTOM") and self.db.cooldown then
|
||||
margin = margin + self.db.cooldownSize
|
||||
height = height + self.db.cooldownSize * teamSize
|
||||
height = height + self.db.cooldownSize * (teamSize - 1)
|
||||
end
|
||||
if (self.db.buffsCooldownPos == "TOP" or self.db.buffsCooldownPos == "BOTTOM") and self.db.buffsEnabled then
|
||||
margin = margin + self.db.buffsIconSize
|
||||
height = height + self.db.buffsIconSize * teamSize
|
||||
height = height + self.db.buffsIconSize * (teamSize - 1)
|
||||
end
|
||||
if (self.db.buffsBuffsCooldownPos == "TOP" or self.db.buffsBuffsCooldownPos == "BOTTOM") and self.db.buffsEnabled then
|
||||
margin = margin + self.db.buffsBuffsIconSize
|
||||
height = height + self.db.buffsBuffsIconSize * teamSize
|
||||
height = height + self.db.buffsBuffsIconSize * (teamSize - 1)
|
||||
end
|
||||
if self.db.buffsCooldownPos == "TOP" and self.db.cooldownYPos == "TOP" and self.db.cooldown and self.db.buffsEnabled then
|
||||
margin = margin + 1
|
||||
height = height + (teamSize - 1)
|
||||
end
|
||||
if self.db.buffsCooldownPos == "BOTTOM" and self.db.cooldownYPos == "BOTTOM" and self.db.cooldown and self.db.buffsEnabled then
|
||||
margin = margin + 1
|
||||
height = height + (teamSize - 1)
|
||||
end
|
||||
|
||||
-- Classicon
|
||||
width = width + iconSize
|
||||
extraBarWidth = extraBarWidth + iconSize
|
||||
|
||||
-- Trinket
|
||||
width = width + iconSize
|
||||
-- GrowDirection
|
||||
if (self.db.growDirection == "LEFT" or self.db.growDirection == "RIGHT") then
|
||||
width = self.db.barWidth * teamSize + (leftSize + rightSize) * teamSize + self.db.bottomMargin * (teamSize - 1)
|
||||
height = self.db.healthBarHeight + self.db.powerBarHeight + 1
|
||||
end
|
||||
|
||||
self.frame:SetScale(self.db.frameScale)
|
||||
self.frame:SetWidth(width)
|
||||
@ -161,61 +185,79 @@ function Gladdy:UpdateFrame()
|
||||
self.frame:SetPoint("CENTER")
|
||||
else
|
||||
local scale = self.frame:GetEffectiveScale()
|
||||
if (self.db.growUp) then
|
||||
if (self.db.growDirection == "TOP") then
|
||||
self.frame:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", self.db.x / scale, self.db.y / scale)
|
||||
else
|
||||
self.frame:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", self.db.x / scale, self.db.y / scale)
|
||||
end
|
||||
end
|
||||
|
||||
--Anchor
|
||||
self.anchor:SetWidth(width)
|
||||
self.anchor:ClearAllPoints()
|
||||
if (self.db.growUp) then
|
||||
if (self.db.growDirection == "TOP") then
|
||||
self.anchor:SetPoint("TOPLEFT", self.frame, "BOTTOMLEFT")
|
||||
else
|
||||
elseif self.growDirection == "BOTTOM" or self.growDirection == "RIGHT" then
|
||||
self.anchor:SetPoint("BOTTOMLEFT", self.frame, "TOPLEFT")
|
||||
else
|
||||
self.anchor:SetPoint("BOTTOMRIGHT", self.frame, "TOPRIGHT")
|
||||
end
|
||||
|
||||
if (self.db.locked) then
|
||||
self.anchor:Hide()
|
||||
self.anchor:Hide()
|
||||
else
|
||||
self.anchor:Show()
|
||||
end
|
||||
|
||||
for i = 1, teamSize do
|
||||
local button = self.buttons["arena" .. i]
|
||||
button:SetWidth(self.db.barWidth + extraBarWidth)
|
||||
button:SetWidth(self.db.barWidth)
|
||||
button:SetHeight(self.db.healthBarHeight)
|
||||
button.secure:SetWidth(self.db.barWidth + extraBarWidth)
|
||||
button.secure:SetHeight(self.db.healthBarHeight + extraBarHeight)
|
||||
button.secure:SetWidth(self.db.barWidth)
|
||||
button.secure:SetHeight(self.db.healthBarHeight + self.db.powerBarHeight + 1)
|
||||
|
||||
button:ClearAllPoints()
|
||||
button.secure:ClearAllPoints()
|
||||
if (self.db.growUp) then
|
||||
if (self.db.growDirection == "TOP") then
|
||||
if (i == 1) then
|
||||
button:SetPoint("BOTTOMLEFT", self.frame, "BOTTOMLEFT", self.db.padding + 2, 0)
|
||||
button.secure:SetPoint("BOTTOMLEFT", self.frame, "BOTTOMLEFT", self.db.padding + 2, 0)
|
||||
button:SetPoint("BOTTOMLEFT", self.frame, "BOTTOMLEFT", leftSize, self.db.powerBarHeight + 1)
|
||||
button.secure:SetPoint("TOPLEFT", button.powerBar, "TOPLEFT")
|
||||
else
|
||||
button:SetPoint("BOTTOMLEFT", self.buttons["arena" .. (i - 1)], "TOPLEFT", 0, margin + self.db.bottomMargin)
|
||||
button.secure:SetPoint("BOTTOMLEFT", self.buttons["arena" .. (i - 1)], "TOPLEFT", 0, margin + self.db.bottomMargin)
|
||||
button.secure:SetPoint("TOPLEFT", button.powerBar, "TOPLEFT")
|
||||
end
|
||||
else
|
||||
elseif (self.db.growDirection == "BOTTOM") then
|
||||
if (i == 1) then
|
||||
button:SetPoint("TOPLEFT", self.frame, "TOPLEFT", self.db.padding + 2, 0)
|
||||
button.secure:SetPoint("TOPLEFT", self.frame, "TOPLEFT", self.db.padding + 2, 0)
|
||||
button:SetPoint("TOPLEFT", self.frame, "TOPLEFT", leftSize, 0)
|
||||
button.secure:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT")
|
||||
else
|
||||
button:SetPoint("TOPLEFT", self.buttons["arena" .. (i - 1)], "BOTTOMLEFT", 0, -margin - self.db.bottomMargin)
|
||||
button.secure:SetPoint("TOPLEFT", self.buttons["arena" .. (i - 1)], "BOTTOMLEFT", 0, -margin - self.db.bottomMargin)
|
||||
button.secure:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT")
|
||||
end
|
||||
elseif (self.db.growDirection == "LEFT") then
|
||||
if (i == 1) then
|
||||
button:SetPoint("TOPRIGHT", self.frame, "TOPRIGHT", -rightSize, 0)
|
||||
button.secure:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT")
|
||||
else
|
||||
button:SetPoint("TOPRIGHT", self.buttons["arena" .. (i - 1)], "TOPLEFT", -rightSize - leftSize - self.db.bottomMargin, 0)
|
||||
button.secure:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT")
|
||||
end
|
||||
elseif (self.db.growDirection == "RIGHT") then
|
||||
if (i == 1) then
|
||||
button:SetPoint("TOPLEFT", self.frame, "TOPLEFT", leftSize, 0)
|
||||
button.secure:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT")
|
||||
else
|
||||
button:SetPoint("TOPLEFT", self.buttons["arena" .. (i - 1)], "TOPRIGHT", leftSize + rightSize + self.db.bottomMargin, 0)
|
||||
button.secure:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
for k, v in self:IterModules() do
|
||||
for _, v in self:IterModules() do
|
||||
self:Call(v, "UpdateFrame", button.unit)
|
||||
end
|
||||
end
|
||||
for k, v in self:IterModules() do
|
||||
for _, v in self:IterModules() do
|
||||
self:Call(v, "UpdateFrameOnce")
|
||||
end
|
||||
end
|
||||
@ -257,7 +299,11 @@ function Gladdy:CreateButton(i)
|
||||
end
|
||||
|
||||
local button = CreateFrame("Frame", "GladdyButtonFrame" .. i, self.frame)
|
||||
button:SetAlpha(0)
|
||||
button:EnableMouse(false)
|
||||
--button:SetAlpha(0)
|
||||
--button.texture = button:CreateTexture(nil, "OVERLAY")
|
||||
--button.texture:SetAllPoints(button)
|
||||
--button.texture:SetTexture("Interface\\AddOns\\Gladdy\\Images\\Border_rounded_blp")
|
||||
|
||||
local secure = CreateFrame("Button", "GladdyButton" .. i, button, "SecureActionButtonTemplate")
|
||||
secure:RegisterForClicks("AnyUp")
|
||||
@ -265,12 +311,9 @@ function Gladdy:CreateButton(i)
|
||||
secure:SetAttribute("*type1", "target")
|
||||
secure:SetAttribute("*type2", "focus")
|
||||
secure:SetAttribute("unit", "arena" .. i)
|
||||
|
||||
button:RegisterEvent("UNIT_NAME_UPDATE")
|
||||
button:RegisterEvent("ARENA_OPPONENT_UPDATE")
|
||||
button:RegisterEvent("ARENA_COOLDOWNS_UPDATE")
|
||||
button:RegisterEvent("ARENA_CROWD_CONTROL_SPELL_UPDATE")
|
||||
button:RegisterUnitEvent("UNIT_CONNECTION", "arena" .. i)
|
||||
--secure.texture = secure:CreateTexture(nil, "OVERLAY")
|
||||
--secure.texture:SetAllPoints(secure)
|
||||
--secure.texture:SetTexture("Interface\\AddOns\\Gladdy\\Images\\Border_rounded_blp")
|
||||
|
||||
button.id = i
|
||||
button.unit = "arena" .. i
|
||||
@ -281,7 +324,7 @@ function Gladdy:CreateButton(i)
|
||||
|
||||
self.buttons[button.unit] = button
|
||||
|
||||
for k, v in self:IterModules() do
|
||||
for _, v in self:IterModules() do
|
||||
self:Call(v, "CreateFrame", button.unit)
|
||||
end
|
||||
end
|
||||
|
@ -25,7 +25,7 @@ local MAJOR, MINOR = "Gladdy", 4
|
||||
local Gladdy = LibStub:NewLibrary(MAJOR, MINOR)
|
||||
local L
|
||||
Gladdy.version_major_num = 1
|
||||
Gladdy.version_minor_num = 0.05
|
||||
Gladdy.version_minor_num = 0.09
|
||||
Gladdy.version_num = Gladdy.version_major_num + Gladdy.version_minor_num
|
||||
Gladdy.version_releaseType = RELEASE_TYPES.beta
|
||||
Gladdy.version = PREFIX .. Gladdy.version_num .. "-" .. Gladdy.version_releaseType
|
||||
|
@ -1,6 +1,6 @@
|
||||
## Interface: 20501
|
||||
## Title: Gladdy - TBC
|
||||
## Version: 1.0.5-Beta
|
||||
## Version: 1.08-Beta
|
||||
## Notes: The most powerful arena AddOn for WoW 2.5.1
|
||||
## Author: XiconQoo, DnB_Junkee, Knall
|
||||
## X-Email: contact me on discord Knall#1751
|
||||
@ -34,4 +34,5 @@ Modules\VersionCheck.lua
|
||||
Modules\XiconProfiles.lua
|
||||
Modules\Pets.lua
|
||||
Modules\ExportImport.lua
|
||||
Modules\CombatIndicator.lua
|
||||
EventListener.lua
|
||||
|
BIN
Images/BasicProfiles/Blizz1.blp
Normal file
BIN
Images/BasicProfiles/Blizz1.blp
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Images/mask.blp
Normal file
BIN
Images/mask.blp
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -6,8 +6,6 @@ assert(LibStub, string.format("%s requires LibStub.", major))
|
||||
local Data = LibStub:NewLibrary(major, minor)
|
||||
if( not Data ) then return end
|
||||
|
||||
if( IS_WRATH_BUILD == nil ) then IS_WRATH_BUILD = (select(4, GetBuildInfo()) >= 30000) end
|
||||
|
||||
-- How long before DR resets
|
||||
Data.RESET_TIME = 18
|
||||
|
||||
@ -234,42 +232,6 @@ Data.spells = {
|
||||
[10912] = "charm",
|
||||
}
|
||||
|
||||
-- Add WoTLK spells
|
||||
if( IS_WRATH_BUILD ) then
|
||||
-- Death Coil
|
||||
Data.spells[47859] = "dc"
|
||||
Data.spells[47860] = "dc"
|
||||
|
||||
-- Wyvern Sting
|
||||
Data.spells[49011] = "sleep"
|
||||
Data.spells[49012] = "sleep"
|
||||
|
||||
-- Entangling Roots
|
||||
Data.spells[53308] = "root"
|
||||
|
||||
-- Frost Nova
|
||||
Data.spells[42917] = "root"
|
||||
|
||||
-- Intercept (Remove all except this one come WoTLK)
|
||||
Data.spells[20252] = "ctrlstun"
|
||||
|
||||
-- Pounce
|
||||
Data.spells[49803] = "ctrlstun"
|
||||
|
||||
-- Polymorph
|
||||
Data.spells[61305] = "disorient"
|
||||
Data.spells[61025] = "disorient"
|
||||
|
||||
-- Sap
|
||||
Data.spells[51724] = "disorient"
|
||||
|
||||
-- Maim
|
||||
Data.spells[49802] = "disorient"
|
||||
|
||||
-- Hex (Guessing)
|
||||
Data.spells[51514] = "disorient"
|
||||
end
|
||||
|
||||
-- DR Category names
|
||||
Data.typeNames = {
|
||||
["disorient"] = "Disorients",
|
||||
|
@ -59,41 +59,107 @@ Buff({ 33891 }, { buffType = "form"}, "DRUID") -- Tree of Life
|
||||
Buff({ 16864 }, { buffType = "magic"}, "DRUID") -- Omen of Clarity
|
||||
Buff({ 16689, 16810, 16811, 16812, 16813, 17329, 27009 }, { buffType = "magic"}, "DRUID") -- Nature's Grasp
|
||||
Buff({ 45281, 45282, 45283 }, { buffType = "magic"}, "DRUID") -- Natural Perfection
|
||||
Buff({ 16188 }, { buffType = "magic"}, "DRUID") -- Nature's Swiftness
|
||||
Buff({ 17116 }, { buffType = "magic"}, "DRUID") -- Nature's Swiftness
|
||||
Buff({ 17007 }, { buffType = "aura"}, "DRUID") -- Leader of the Pack
|
||||
|
||||
-------------
|
||||
-- WARRIOR
|
||||
-- WARRIOR -- TODO
|
||||
-------------
|
||||
--Buff({ 29703 }, { buffType = "physical"}, "WARRIOR") -- Dazed
|
||||
Buff({ 29838 }, { buffType = "physical"}, "WARRIOR") -- Second Wind
|
||||
Buff({ 12292 }, { buffType = "physical"}, "WARRIOR") -- Death Wish
|
||||
Buff({ 6673 }, { buffType = "physical"}, "WARRIOR") -- Battle Shout
|
||||
Buff({ 469 }, { buffType = "physical"}, "WARRIOR") -- Commanding Shout
|
||||
Buff({ 12328 }, { buffType = "physical"}, "WARRIOR") -- Sweeping Strikes
|
||||
Buff({ 30032 }, { buffType = "physical"}, "WARRIOR") -- Rampage
|
||||
Buff({ 2687 }, { buffType = "physical"}, "WARRIOR") -- Blood Rage
|
||||
Buff({ 20230 }, { buffType = "physical"}, "WARRIOR") -- Retaliation
|
||||
Buff({ 871 }, { buffType = "physical"}, "WARRIOR") -- Shield Wall
|
||||
Buff({ 18499 }, { buffType = "physical"}, "WARRIOR") -- Berserker Rage
|
||||
Buff({ 23885 }, { buffType = "physical"}, "WARRIOR") -- Bloodthirst
|
||||
Buff({ 3411 }, { buffType = "physical"}, "WARRIOR") -- Intervene
|
||||
|
||||
|
||||
--------------
|
||||
-- ROGUE
|
||||
-- ROGUE -- TODO
|
||||
--------------
|
||||
|
||||
Buff({ 2983 }, { buffType = "physical" }, "ROGUE") -- Sprint
|
||||
Buff({ 5277 }, { buffType = "physical" }, "ROGUE") -- Evasion
|
||||
Buff({ 31224 }, { buffType = "physical" }, "ROGUE") -- Cloak of Shadows
|
||||
Buff({ 14278 }, { buffType = "physical" }, "ROGUE") -- Ghostly Strike
|
||||
|
||||
|
||||
------------
|
||||
-- WARLOCK
|
||||
-- WARLOCK --TODO
|
||||
------------
|
||||
Buff({ 19028 }, { buffType = "immune"}, "WARLOCK") -- Soul Link
|
||||
Buff({ 23759 }, { buffType = "immune"}, "WARLOCK") -- Master Demonologist
|
||||
Buff({ 19028 }, { buffType = "aura"}, "WARLOCK") -- Soul Link
|
||||
Buff({ 696 }, { buffType = "aura"}, "WARLOCK") -- Demon Skin
|
||||
Buff({ 706 }, { buffType = "aura"}, "WARLOCK") -- Demon Armor
|
||||
Buff({ 28176 }, { buffType = "aura"}, "WARLOCK") -- Fel Armor
|
||||
Buff({ 23759 }, { buffType = "aura"}, "WARLOCK") -- Master Demonologist
|
||||
Buff({ 34936 }, { buffType = "magic"}, "WARLOCK") -- Backlash
|
||||
Buff({ 5697 }, { buffType = "magic"}, "WARLOCK") -- Unending Breath
|
||||
Buff({ 132 }, { buffType = "magic"}, "WARLOCK") -- Detect Invisibility
|
||||
Buff({ 1949 }, { buffType = "aura"}, "WARLOCK") -- Hellfire
|
||||
Buff({ 6229 }, { buffType = "magic"}, "WARLOCK") -- Shadow Ward
|
||||
Buff({ 19480 }, { buffType = "magic"}, "WARLOCK") -- Paranoia
|
||||
Buff({ 7812 }, { buffType = "magic"}, "WARLOCK") -- Sacrifice
|
||||
Buff({ 2947 }, { buffType = "magic"}, "WARLOCK") -- Fire Shield
|
||||
|
||||
|
||||
---------------
|
||||
-- SHAMAN
|
||||
---------------
|
||||
|
||||
Buff({ 8178 } ,{ buffType = "magic" }, "SHAMAN") -- Grounding Totem Effect
|
||||
|
||||
Buff({ 30823 } ,{ buffType = "magic" }, "SHAMAN") -- Shamanistic Rage
|
||||
Buff({ 32182 } ,{ buffType = "magic" }, "SHAMAN") -- Heroism
|
||||
Buff({ 2825 } ,{ buffType = "magic" }, "SHAMAN") -- Bloodlust
|
||||
Buff({ 974 } ,{ buffType = "magic" }, "SHAMAN") -- Earth Shield
|
||||
Buff({ 24398 } ,{ buffType = "magic" }, "SHAMAN") -- Water Shield
|
||||
Buff({ 324 } ,{ buffType = "magic" }, "SHAMAN") -- Lightning Shield
|
||||
Buff({ 16188 } ,{ buffType = "magic" }, "SHAMAN") -- Nature's Swiftness
|
||||
Buff({ 16166 } ,{ buffType = "magic" }, "SHAMAN") -- Elemental Mastery
|
||||
|
||||
--------------
|
||||
-- PALADIN
|
||||
-- PALADIN --TODO
|
||||
--------------
|
||||
|
||||
--Buff( { 25771 }, { buffType = "immune"}, "PALADIN") -- Forbearance
|
||||
--Blessings
|
||||
Buff( { 1022, 5599, 10278 }, { buffType = "magic"}, "PALADIN") -- Blessing of Protection
|
||||
Buff( { 6940 }, { buffType = "magic"}, "PALADIN") -- Blessing of Sacrifice
|
||||
Buff( { 1044 }, { buffType = "magic"}, "PALADIN") -- Blessing of Freedom
|
||||
Buff( { 19740, 19834, 19835, 19836, 19837, 19838, 25291, 27140 }, { buffType = "magic"}, "PALADIN") -- Blessing of Might
|
||||
Buff( { 19742 }, { buffType = "magic"}, "PALADIN") -- Blessing of Wisdom
|
||||
Buff( { 20217 }, { buffType = "magic"}, "PALADIN") -- Blessing of Kings
|
||||
Buff( { 19977 }, { buffType = "magic"}, "PALADIN") -- Blessing of Light
|
||||
Buff( { 1038 }, { buffType = "magic"}, "PALADIN") -- Blessing of Salvation
|
||||
Buff( { 20911 }, { buffType = "magic"}, "PALADIN") -- Blessing of Sanctuary
|
||||
Buff( { 25898 }, { buffType = "magic"}, "PALADIN") -- Greater Blessing of Kings
|
||||
Buff( { 25890 }, { buffType = "magic"}, "PALADIN") -- Greater Blessing of Light
|
||||
Buff( { 25782 }, { buffType = "magic"}, "PALADIN") -- Greater Blessing of Might
|
||||
Buff( { 25895 }, { buffType = "magic"}, "PALADIN") -- Greater Blessing of Salvation
|
||||
Buff( { 25899 }, { buffType = "magic"}, "PALADIN") -- Greater Blessing of Sanctuary
|
||||
Buff( { 25894 }, { buffType = "magic"}, "PALADIN") -- Greater Blessing of Wisdom
|
||||
Buff( { 642 }, { buffType = "magic"}, "PALADIN") -- Divine Shield
|
||||
--Auras
|
||||
Buff( { 465, 10290, 643, 10291, 1032, 10292, 10293, 27149 }, { buffType = "aura"}, "PALADIN") -- Devotion Aura
|
||||
Buff( { 7294 }, { buffType = "aura"}, "PALADIN") -- Retribution Aura
|
||||
Buff( { 19746 }, { buffType = "aura"}, "PALADIN") -- Concentration Aura
|
||||
Buff( { 19876 }, { buffType = "aura"}, "PALADIN") -- Shadow Resistance Aura
|
||||
Buff( { 20218 }, { buffType = "aura"}, "PALADIN") -- Sanctity Aura
|
||||
Buff( { 19888 }, { buffType = "aura"}, "PALADIN") -- Frost Resistance Aura
|
||||
Buff( { 19891 }, { buffType = "aura"}, "PALADIN") -- Fire Resistance Aura
|
||||
Buff( { 32223 }, { buffType = "aura"}, "PALADIN") -- Crusader Aura
|
||||
--Seals
|
||||
Buff( { 20154, 20287, 20288, 20289, 20290, 20291, 20292, 20293, 27155 }, { buffType = "magic"}, "PALADIN") -- Seal of Righteousness
|
||||
Buff( { 31892 }, { buffType = "magic"}, "PALADIN") -- Seal of Blood
|
||||
Buff( { 20375 }, { buffType = "magic"}, "PALADIN") -- Seal of Command
|
||||
Buff( { 20164 }, { buffType = "magic"}, "PALADIN") -- Seal of Justice
|
||||
Buff( { 20165 }, { buffType = "magic"}, "PALADIN") -- Seal of Light
|
||||
Buff( { 15277 }, { buffType = "magic"}, "PALADIN") -- Seal of Reckoning
|
||||
Buff( { 31801 }, { buffType = "magic"}, "PALADIN") -- Seal of Vengeance
|
||||
Buff( { 20166 }, { buffType = "magic"}, "PALADIN") -- Seal of Wisdom
|
||||
Buff( { 21082 }, { buffType = "magic"}, "PALADIN") -- Seal of the Crusade
|
||||
|
||||
|
||||
-------------
|
||||
|
@ -1,5 +1,6 @@
|
||||
local type, ipairs, pairs, tinsert = type, ipairs, pairs, tinsert
|
||||
local GetSpellInfo = GetSpellInfo
|
||||
local AURA_TYPE_DEBUFF, AURA_TYPE_BUFF = AURA_TYPE_DEBUFF, AURA_TYPE_BUFF
|
||||
|
||||
local LibClassAuras = LibStub:NewLibrary("LibClassAuras-1.0", 1)
|
||||
LibClassAuras.debuffs = {}
|
||||
@ -72,3 +73,13 @@ local function getClassBuffs(class)
|
||||
return classSpells
|
||||
end
|
||||
LibClassAuras.GetClassBuffs = getClassBuffs
|
||||
|
||||
local function getSpellNameToId(auraType)
|
||||
if auraType == AURA_TYPE_DEBUFF then
|
||||
return LibClassAuras.debuffToId
|
||||
else
|
||||
return LibClassAuras.buffToId
|
||||
end
|
||||
end
|
||||
|
||||
LibClassAuras.GetSpellNameToId = getSpellNameToId
|
@ -21,12 +21,12 @@ local Announcements = Gladdy:NewModule("Announcements", nil, {
|
||||
drinks = true,
|
||||
resurrections = true,
|
||||
enemy = false,
|
||||
spec = false,
|
||||
spec = true,
|
||||
health = false,
|
||||
healthThreshold = 20,
|
||||
trinketUsed = true,
|
||||
trinketReady = false,
|
||||
dest = "self",
|
||||
dest = "party",
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
local select, floor, str_len, tostring, str_sub, str_find = select, math.floor, string.len, tostring, string.sub, string.find
|
||||
local IsInInstance = IsInInstance
|
||||
local floor, str_len, tostring, str_sub, str_find = math.floor, string.len, tostring, string.sub, string.find
|
||||
local CreateFrame = CreateFrame
|
||||
|
||||
local Gladdy = LibStub("Gladdy")
|
||||
local L = Gladdy.L
|
||||
@ -8,87 +8,88 @@ local ACDFrame = Gladdy:NewModule("Countdown", nil, {
|
||||
arenaCountdownSize = 256
|
||||
})
|
||||
|
||||
function ACDFrame:OnEvent(event, ...)
|
||||
self[event](self, ...)
|
||||
end
|
||||
|
||||
function ACDFrame:Initialize()
|
||||
self.hidden = false
|
||||
self.countdown = -1
|
||||
self.texturePath = "Interface\\AddOns\\Gladdy\\Images\\Countdown\\";
|
||||
ACDFrame:RegisterEvent("CHAT_MSG_BG_SYSTEM_NEUTRAL")
|
||||
ACDFrame:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
|
||||
local ACDNumFrame = CreateFrame("Frame", "ACDNumFrame", UIParent)
|
||||
ACDNumFrame:EnableMouse(false)
|
||||
ACDNumFrame:SetHeight(256)
|
||||
ACDNumFrame:SetWidth(256)
|
||||
ACDNumFrame:SetPoint("CENTER", 0, 128)
|
||||
ACDNumFrame:Show()
|
||||
self.ACDNumFrame = ACDNumFrame
|
||||
|
||||
local ACDNumTens = ACDNumFrame:CreateTexture("ACDNumTens", "HIGH")
|
||||
ACDNumTens:SetWidth(256)
|
||||
ACDNumTens:SetHeight(128)
|
||||
ACDNumTens:SetPoint("CENTER", ACDNumFrame, "CENTER", -48, 0)
|
||||
self.ACDNumTens = ACDNumTens
|
||||
|
||||
local ACDNumOnes = ACDNumFrame:CreateTexture("ACDNumOnes", "HIGH")
|
||||
ACDNumOnes:SetWidth(256)
|
||||
ACDNumOnes:SetHeight(128)
|
||||
ACDNumOnes:SetPoint("CENTER", ACDNumFrame, "CENTER", 48, 0)
|
||||
self.ACDNumOnes = ACDNumOnes
|
||||
|
||||
local ACDNumOne = ACDNumFrame:CreateTexture("ACDNumOne", "HIGH")
|
||||
ACDNumOne:SetWidth(256)
|
||||
ACDNumOne:SetHeight(128)
|
||||
ACDNumOne:SetPoint("CENTER", ACDNumFrame, "CENTER", 0, 0)
|
||||
self.ACDNumOne = ACDNumOne
|
||||
|
||||
self:RegisterMessage("JOINED_ARENA")
|
||||
end
|
||||
|
||||
function ACDFrame:OnEvent(event, ...)
|
||||
-- functions created in "object:method"-style have an implicit first parameter of "self", which points to object
|
||||
self[event](self, ...) -- route event parameters to LoseControl:event methods
|
||||
end
|
||||
ACDFrame:SetScript("OnEvent", ACDFrame.OnEvent)
|
||||
function ACDFrame.OnUpdate(self, elapse)
|
||||
if (self.countdown > 0 and Gladdy.db.countdown) then
|
||||
self.hidden = false;
|
||||
|
||||
if ((floor(self.countdown) ~= floor(self.countdown - elapse)) and (floor(self.countdown - elapse) >= 0)) then
|
||||
local str = tostring(floor(self.countdown - elapse));
|
||||
|
||||
local ACDNumFrame = CreateFrame("Frame", "ACDNumFrame", UIParent)
|
||||
ACDNumFrame:SetHeight(256)
|
||||
ACDNumFrame:SetWidth(256)
|
||||
ACDNumFrame:SetPoint("CENTER", 0, 128)
|
||||
ACDNumFrame:Show()
|
||||
if (floor(self.countdown - elapse) == 0) then
|
||||
self.ACDNumTens:Hide();
|
||||
self.ACDNumOnes:Hide();
|
||||
self.ACDNumOne:Hide();
|
||||
elseif (str_len(str) == 2) then
|
||||
-- Display has 2 digits
|
||||
self.ACDNumOne:Hide();
|
||||
self.ACDNumTens:Show();
|
||||
self.ACDNumOnes:Show();
|
||||
|
||||
local ACDNumTens = ACDNumFrame:CreateTexture("ACDNumTens", "HIGH")
|
||||
ACDNumTens:SetWidth(256)
|
||||
ACDNumTens:SetHeight(128)
|
||||
ACDNumTens:SetPoint("CENTER", ACDNumFrame, "CENTER", -48, 0)
|
||||
|
||||
local ACDNumOnes = ACDNumFrame:CreateTexture("ACDNumOnes", "HIGH")
|
||||
ACDNumOnes:SetWidth(256)
|
||||
ACDNumOnes:SetHeight(128)
|
||||
ACDNumOnes:SetPoint("CENTER", ACDNumFrame, "CENTER", 48, 0)
|
||||
|
||||
local ACDNumOne = ACDNumFrame:CreateTexture("ACDNumOne", "HIGH")
|
||||
ACDNumOne:SetWidth(256)
|
||||
ACDNumOne:SetHeight(128)
|
||||
ACDNumOne:SetPoint("CENTER", ACDNumFrame, "CENTER", 0, 0)
|
||||
|
||||
function ACDFrame:PLAYER_ENTERING_WORLD()
|
||||
|
||||
local instanceType = select(2, IsInInstance())
|
||||
if (( instanceType == "arena" )) then
|
||||
ACDFrame:SetScript("OnUpdate", function(self, elapse)
|
||||
if (self.countdown > 0 and Gladdy.db.countdown) then
|
||||
self.hidden = false;
|
||||
|
||||
if ((floor(self.countdown) ~= floor(self.countdown - elapse)) and (floor(self.countdown - elapse) >= 0)) then
|
||||
local str = tostring(floor(self.countdown - elapse));
|
||||
|
||||
if (floor(self.countdown - elapse) == 0) then
|
||||
ACDNumTens:Hide();
|
||||
ACDNumOnes:Hide();
|
||||
ACDNumOne:Hide();
|
||||
elseif (str_len(str) == 2) then
|
||||
-- Display has 2 digits
|
||||
ACDNumOne:Hide();
|
||||
ACDNumTens:Show();
|
||||
ACDNumOnes:Show();
|
||||
|
||||
ACDNumTens:SetTexture(self.texturePath .. str_sub(str, 0, 1));
|
||||
ACDNumOnes:SetTexture(self.texturePath .. str_sub(str, 2, 2));
|
||||
ACDNumFrame:SetScale(0.7)
|
||||
elseif (str_len(str) == 1) then
|
||||
-- Display has 1 digit
|
||||
ACDNumOne:Show();
|
||||
ACDNumOne:SetTexture(self.texturePath .. str_sub(str, 0, 1));
|
||||
ACDNumOnes:Hide();
|
||||
ACDNumTens:Hide();
|
||||
ACDNumFrame:SetScale(1.0)
|
||||
end
|
||||
end
|
||||
self.countdown = self.countdown - elapse;
|
||||
else
|
||||
self.hidden = true;
|
||||
ACDNumTens:Hide();
|
||||
ACDNumOnes:Hide();
|
||||
ACDNumOne:Hide();
|
||||
self.ACDNumTens:SetTexture(self.texturePath .. str_sub(str, 0, 1));
|
||||
self.ACDNumOnes:SetTexture(self.texturePath .. str_sub(str, 2, 2));
|
||||
self.ACDNumFrame:SetScale(0.7)
|
||||
elseif (str_len(str) == 1) then
|
||||
-- Display has 1 digit
|
||||
self.ACDNumOne:Show();
|
||||
self.ACDNumOne:SetTexture(self.texturePath .. str_sub(str, 0, 1));
|
||||
self.ACDNumOnes:Hide();
|
||||
self.ACDNumTens:Hide();
|
||||
self.ACDNumFrame:SetScale(1.0)
|
||||
end
|
||||
|
||||
end)
|
||||
end
|
||||
self.countdown = self.countdown - elapse;
|
||||
else
|
||||
self.hidden = true;
|
||||
self.ACDNumTens:Hide();
|
||||
self.ACDNumOnes:Hide();
|
||||
self.ACDNumOne:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
function ACDFrame:JOINED_ARENA()
|
||||
self:RegisterEvent("CHAT_MSG_BG_SYSTEM_NEUTRAL")
|
||||
self:SetScript("OnEvent", ACDFrame.OnEvent)
|
||||
self:SetScript("OnUpdate", ACDFrame.OnUpdate)
|
||||
end
|
||||
|
||||
function ACDFrame:CHAT_MSG_BG_SYSTEM_NEUTRAL(msg)
|
||||
if (str_find(msg, "L'ar\195\168ne ouvre ses portes dans 60 secondes !")) then
|
||||
self.countdown = 61
|
||||
@ -129,29 +130,36 @@ function ACDFrame:CHAT_MSG_BG_SYSTEM_NEUTRAL(msg)
|
||||
end
|
||||
|
||||
function ACDFrame:UpdateFrame()
|
||||
ACDNumFrame:SetHeight(Gladdy.db.arenaCountdownSize)
|
||||
ACDNumFrame:SetWidth(Gladdy.db.arenaCountdownSize)
|
||||
ACDNumFrame:SetPoint("CENTER", 0, 128)
|
||||
self.ACDNumFrame:SetHeight(Gladdy.db.arenaCountdownSize)
|
||||
self.ACDNumFrame:SetWidth(Gladdy.db.arenaCountdownSize)
|
||||
self.ACDNumFrame:SetPoint("CENTER", 0, 128)
|
||||
|
||||
ACDNumTens:SetWidth(Gladdy.db.arenaCountdownSize)
|
||||
ACDNumTens:SetHeight(Gladdy.db.arenaCountdownSize/2)
|
||||
ACDNumTens:SetPoint("CENTER", ACDNumFrame, "CENTER", -(Gladdy.db.arenaCountdownSize/8 + Gladdy.db.arenaCountdownSize/8/2), 0)
|
||||
self.ACDNumTens:SetWidth(Gladdy.db.arenaCountdownSize)
|
||||
self.ACDNumTens:SetHeight(Gladdy.db.arenaCountdownSize/2)
|
||||
self.ACDNumTens:SetPoint("CENTER", self.ACDNumFrame, "CENTER", -(Gladdy.db.arenaCountdownSize/8 + Gladdy.db.arenaCountdownSize/8/2), 0)
|
||||
|
||||
ACDNumOnes:SetWidth(Gladdy.db.arenaCountdownSize)
|
||||
ACDNumOnes:SetHeight(Gladdy.db.arenaCountdownSize/2)
|
||||
ACDNumOnes:SetPoint("CENTER", ACDNumFrame, "CENTER", (Gladdy.db.arenaCountdownSize/8 + Gladdy.db.arenaCountdownSize/8/2), 0)
|
||||
self.ACDNumOnes:SetWidth(Gladdy.db.arenaCountdownSize)
|
||||
self.ACDNumOnes:SetHeight(Gladdy.db.arenaCountdownSize/2)
|
||||
self.ACDNumOnes:SetPoint("CENTER", self.ACDNumFrame, "CENTER", (Gladdy.db.arenaCountdownSize/8 + Gladdy.db.arenaCountdownSize/8/2), 0)
|
||||
|
||||
ACDNumOne:SetWidth(Gladdy.db.arenaCountdownSize)
|
||||
ACDNumOne:SetHeight(Gladdy.db.arenaCountdownSize/2)
|
||||
ACDNumOne:SetPoint("CENTER", ACDNumFrame, "CENTER", 0, 0)
|
||||
self.ACDNumOne:SetWidth(Gladdy.db.arenaCountdownSize)
|
||||
self.ACDNumOne:SetHeight(Gladdy.db.arenaCountdownSize/2)
|
||||
self.ACDNumOne:SetPoint("CENTER", self.ACDNumFrame, "CENTER", 0, 0)
|
||||
end
|
||||
|
||||
function ACDFrame:Test()
|
||||
self.countdown = 30
|
||||
self:JOINED_ARENA()
|
||||
end
|
||||
|
||||
function ACDFrame:Reset()
|
||||
self.countdown = 0
|
||||
self:UnregisterEvent("CHAT_MSG_BG_SYSTEM_NEUTRAL")
|
||||
self:SetScript("OnUpdate", nil)
|
||||
self.hidden = true;
|
||||
self.ACDNumTens:Hide();
|
||||
self.ACDNumOnes:Hide();
|
||||
self.ACDNumOne:Hide();
|
||||
end
|
||||
|
||||
function ACDFrame:GetOptions()
|
||||
|
@ -13,6 +13,7 @@ local function defaultSpells(auraType)
|
||||
spells[tostring(v.spellID)] = {}
|
||||
spells[tostring(v.spellID)].enabled = true
|
||||
spells[tostring(v.spellID)].priority = v.priority
|
||||
spells[tostring(v.spellID)].track = v.track
|
||||
end
|
||||
end
|
||||
return spells
|
||||
@ -42,6 +43,7 @@ end
|
||||
|
||||
function Auras:CreateFrame(unit)
|
||||
local auraFrame = CreateFrame("Frame", nil, Gladdy.modules.Classicon.frames[unit])
|
||||
auraFrame:EnableMouse(false)
|
||||
auraFrame:SetFrameStrata("MEDIUM")
|
||||
auraFrame:SetFrameLevel(3)
|
||||
|
||||
@ -59,6 +61,7 @@ function Auras:CreateFrame(unit)
|
||||
auraFrame.cooldownFrame:SetFrameLevel(5)
|
||||
|
||||
auraFrame.icon = auraFrame:CreateTexture(nil, "BACKGROUND")
|
||||
auraFrame.icon:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
auraFrame.icon:SetAllPoints(auraFrame)
|
||||
|
||||
auraFrame.icon.overlay = auraFrame.cooldownFrame:CreateTexture(nil, "OVERLAY")
|
||||
@ -68,16 +71,6 @@ function Auras:CreateFrame(unit)
|
||||
local classIcon = Gladdy.modules.Classicon.frames[unit]
|
||||
auraFrame:ClearAllPoints()
|
||||
auraFrame:SetAllPoints(classIcon)
|
||||
auraFrame:SetScript("OnUpdate", function(self, elapsed)
|
||||
if (self.active) then
|
||||
if (self.timeLeft <= 0) then
|
||||
Auras:AURA_FADE(unit)
|
||||
else
|
||||
self.timeLeft = self.timeLeft - elapsed
|
||||
self.text:SetFormattedText("%.1f", self.timeLeft >= 0.0 and self.timeLeft or 0.0)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
auraFrame.text = auraFrame.cooldownFrame:CreateFontString(nil, "OVERLAY")
|
||||
auraFrame.text:SetFont(Gladdy.LSM:Fetch("font", Gladdy.db.auraFont), 10, "OUTLINE")
|
||||
@ -88,6 +81,17 @@ function Auras:CreateFrame(unit)
|
||||
auraFrame.text:SetPoint("CENTER")
|
||||
auraFrame.unit = unit
|
||||
|
||||
auraFrame:SetScript("OnUpdate", function(self, elapsed)
|
||||
if (self.active) then
|
||||
if (self.timeLeft <= 0) then
|
||||
Auras:AURA_FADE(self.unit, self.track)
|
||||
else
|
||||
self.timeLeft = self.timeLeft - elapsed
|
||||
self.text:SetFormattedText("%.1f", self.timeLeft >= 0.0 and self.timeLeft or 0.0)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
self.frames[unit] = auraFrame
|
||||
self:ResetUnit(unit)
|
||||
end
|
||||
@ -121,6 +125,7 @@ function Auras:UpdateFrame(unit)
|
||||
else
|
||||
auraFrame.icon.overlay:SetVertexColor(0, 0, 0, 1)
|
||||
end
|
||||
auraFrame.icon.overlay:Hide()
|
||||
if Gladdy.db.auraDisableCircle then
|
||||
auraFrame.cooldown:SetAlpha(0)
|
||||
end
|
||||
@ -128,21 +133,30 @@ end
|
||||
|
||||
function Auras:ResetUnit(unit)
|
||||
self.frames[unit]:UnregisterAllEvents()
|
||||
self:AURA_FADE(unit)
|
||||
self:AURA_FADE(unit, AURA_TYPE_DEBUFF)
|
||||
self:AURA_FADE(unit, AURA_TYPE_BUFF)
|
||||
end
|
||||
|
||||
function Auras:Test(unit)
|
||||
local aura, _, icon
|
||||
local spellName, _, icon
|
||||
|
||||
if (unit == "arena1") then
|
||||
aura, _, icon = GetSpellInfo(12826)
|
||||
self:AURA_GAIN(unit,nil, 12826, aura, icon, self.auras[aura].duration, GetTime() + self.auras[aura].duration)
|
||||
spellName, _, icon = GetSpellInfo(12826)
|
||||
self:AURA_FADE(unit, AURA_TYPE_BUFF)
|
||||
self:AURA_FADE(unit, AURA_TYPE_DEBUFF)
|
||||
self:AURA_GAIN(unit,AURA_TYPE_DEBUFF, 12826, spellName, icon, self.auras[spellName].duration, GetTime() + self.auras[spellName].duration)
|
||||
elseif (unit == "arena2") then
|
||||
aura, _, icon = GetSpellInfo(6770)
|
||||
self:AURA_GAIN(unit,nil, 6770, aura, icon, self.auras[aura].duration, GetTime() + self.auras[aura].duration)
|
||||
spellName, _, icon = GetSpellInfo(6770)
|
||||
self:AURA_FADE(unit, AURA_TYPE_BUFF)
|
||||
self:AURA_FADE(unit,AURA_TYPE_DEBUFF)
|
||||
self:AURA_GAIN(unit,AURA_TYPE_DEBUFF, 6770, spellName, icon, self.auras[spellName].duration, GetTime() + self.auras[spellName].duration)
|
||||
elseif (unit == "arena3") then
|
||||
aura, _, icon = GetSpellInfo(31224)
|
||||
self:AURA_GAIN(unit,nil, 31224, aura, icon, self.auras[aura].duration, GetTime() + self.auras[aura].duration)
|
||||
spellName, _, icon = GetSpellInfo(31224)
|
||||
self:AURA_FADE(unit, AURA_TYPE_BUFF)
|
||||
self:AURA_GAIN(unit,AURA_TYPE_BUFF, 31224, spellName, icon, self.auras[spellName].duration, GetTime() + self.auras[spellName].duration)
|
||||
spellName, _, icon = GetSpellInfo(18425)
|
||||
self:AURA_FADE(unit, AURA_TYPE_DEBUFF)
|
||||
self:AURA_GAIN(unit,AURA_TYPE_DEBUFF, 18425, spellName, icon, self.auras[spellName].duration, GetTime() + self.auras[spellName].duration)
|
||||
end
|
||||
end
|
||||
|
||||
@ -153,35 +167,36 @@ function Auras:JOINED_ARENA()
|
||||
end
|
||||
end
|
||||
|
||||
function Auras:AURA_GAIN(unit, auraType, spellID, aura, icon, duration, expirationTime, count, debuffType)
|
||||
function Auras:AURA_GAIN(unit, auraType, spellID, spellName, icon, duration, expirationTime, count, debuffType)
|
||||
local auraFrame = self.frames[unit]
|
||||
if (not auraFrame) then
|
||||
return
|
||||
end
|
||||
if not self.auras[aura] then
|
||||
|
||||
if not self.auras[spellName] then
|
||||
return
|
||||
end
|
||||
-- don't use spellId from combatlog, in case of different spellrank
|
||||
if not Gladdy.db.auraListDefault[tostring(self.auras[aura].spellID)] or not Gladdy.db.auraListDefault[tostring(self.auras[aura].spellID)].enabled then
|
||||
if not Gladdy.db.auraListDefault[tostring(self.auras[spellName].spellID)] or not Gladdy.db.auraListDefault[tostring(self.auras[spellName].spellID)].enabled then
|
||||
return
|
||||
end
|
||||
|
||||
if (auraFrame.priority and auraFrame.priority > Gladdy.db.auraListDefault[tostring(self.auras[aura].spellID)].priority) then
|
||||
if (auraFrame.priority and auraFrame.priority > Gladdy.db.auraListDefault[tostring(self.auras[spellName].spellID)].priority) then
|
||||
return
|
||||
end
|
||||
auraFrame.startTime = expirationTime - duration
|
||||
auraFrame.endTime = expirationTime
|
||||
auraFrame.name = aura
|
||||
auraFrame.name = spellName
|
||||
auraFrame.timeLeft = expirationTime - GetTime()
|
||||
auraFrame.priority = Gladdy.db.auraListDefault[tostring(self.auras[aura].spellID)].priority
|
||||
auraFrame.priority = Gladdy.db.auraListDefault[tostring(self.auras[spellName].spellID)].priority
|
||||
auraFrame.icon:SetTexture(icon)
|
||||
auraFrame.track = self.auras[aura].track
|
||||
auraFrame.track = auraType
|
||||
auraFrame.active = true
|
||||
auraFrame.icon.overlay:SetTexture(Gladdy.db.auraBorderStyle)
|
||||
auraFrame.icon.overlay:Show()
|
||||
auraFrame.cooldownFrame:Show()
|
||||
if auraFrame.track and auraFrame.track == AURA_TYPE_DEBUFF then
|
||||
if auraType == AURA_TYPE_DEBUFF then
|
||||
auraFrame.icon.overlay:SetVertexColor(Gladdy.db.auraDebuffBorderColor.r, Gladdy.db.auraDebuffBorderColor.g, Gladdy.db.auraDebuffBorderColor.b, Gladdy.db.auraDebuffBorderColor.a)
|
||||
elseif auraFrame.track and auraFrame.track == AURA_TYPE_BUFF then
|
||||
elseif auraType == AURA_TYPE_BUFF then
|
||||
auraFrame.icon.overlay:SetVertexColor(Gladdy.db.auraBuffBorderColor.r, Gladdy.db.auraBuffBorderColor.g, Gladdy.db.auraBuffBorderColor.b, Gladdy.db.auraBuffBorderColor.a)
|
||||
else
|
||||
auraFrame.icon.overlay:SetVertexColor(Gladdy.db.frameBorderColor.r, Gladdy.db.frameBorderColor.g, Gladdy.db.frameBorderColor.b, Gladdy.db.frameBorderColor.a)
|
||||
@ -192,9 +207,9 @@ function Auras:AURA_GAIN(unit, auraType, spellID, aura, icon, duration, expirati
|
||||
end
|
||||
end
|
||||
|
||||
function Auras:AURA_FADE(unit)
|
||||
function Auras:AURA_FADE(unit, auraType)
|
||||
local auraFrame = self.frames[unit]
|
||||
if (not auraFrame) then
|
||||
if (not auraFrame or auraFrame.track ~= auraType) then
|
||||
return
|
||||
end
|
||||
if auraFrame.active then
|
||||
@ -209,7 +224,7 @@ function Auras:AURA_FADE(unit)
|
||||
auraFrame.endTime = nil
|
||||
auraFrame.icon:SetTexture("")
|
||||
auraFrame.text:SetText("")
|
||||
auraFrame.icon.overlay:SetTexture("")
|
||||
auraFrame.icon.overlay:Hide()
|
||||
auraFrame.cooldownFrame:Hide()
|
||||
end
|
||||
|
||||
@ -250,6 +265,13 @@ function Auras:GetOptions()
|
||||
step = 0.1,
|
||||
order = 4,
|
||||
}),
|
||||
}
|
||||
},
|
||||
font = {
|
||||
type = "group",
|
||||
name = L["Font"],
|
||||
order = 2,
|
||||
args = {
|
||||
auraFont = Gladdy:option({
|
||||
type = "select",
|
||||
name = L["Font"],
|
||||
@ -274,12 +296,12 @@ function Auras:GetOptions()
|
||||
order = 7,
|
||||
hasAlpha = true,
|
||||
}),
|
||||
}
|
||||
},
|
||||
},
|
||||
border = {
|
||||
type = "group",
|
||||
name = "Border",
|
||||
order = 2,
|
||||
order = 3,
|
||||
args = {
|
||||
headerAuras = {
|
||||
type = "header",
|
||||
|
@ -1,7 +1,7 @@
|
||||
local GetSpellInfo = GetSpellInfo
|
||||
local CreateFrame = CreateFrame
|
||||
local GetTime = GetTime
|
||||
local select, lower, ceil, tremove, tinsert, pairs, ipairs = select, string.lower, ceil, tremove, tinsert, pairs, ipairs
|
||||
local select, lower, ceil, tremove, tinsert, pairs, ipairs, tostring = select, string.lower, ceil, tremove, tinsert, pairs, ipairs, tostring
|
||||
local auraTypeColor = { }
|
||||
local AURA_TYPE_DEBUFF, AURA_TYPE_BUFF = AURA_TYPE_DEBUFF, AURA_TYPE_BUFF
|
||||
local auraTypes = {AURA_TYPE_BUFF, AURA_TYPE_DEBUFF}
|
||||
@ -21,9 +21,10 @@ auraTypeColor[""] = auraTypeColor["none"]
|
||||
---------------------------
|
||||
|
||||
local Gladdy = LibStub("Gladdy")
|
||||
local LibClassAuras = LibStub("LibClassAuras-1.0")
|
||||
local L = Gladdy.L
|
||||
local defaultTrackedDebuffs = select(2, Gladdy:GetAuras("debuff"))
|
||||
local defaultTrackedBuffs = select(2, Gladdy:GetAuras("buff"))
|
||||
local defaultTrackedDebuffs = select(2, Gladdy:GetAuras(AURA_TYPE_DEBUFF))
|
||||
local defaultTrackedBuffs = select(2, Gladdy:GetAuras(AURA_TYPE_BUFF))
|
||||
local BuffsDebuffs = Gladdy:NewModule("BuffsDebuffs", nil, {
|
||||
buffsEnabled = true,
|
||||
buffsShowAuraDebuffs = false,
|
||||
@ -145,18 +146,23 @@ end
|
||||
function BuffsDebuffs:Test(unit)
|
||||
if Gladdy.db.buffsEnabled then
|
||||
if unit == "arena1" or unit == "arena3" then
|
||||
self:AddOrRefreshAura(unit, 1943, AURA_TYPE_DEBUFF, 10, 10, 1,"physical", select(3, GetSpellInfo(1943)), 1)
|
||||
self:AddOrRefreshAura(unit, 18647, AURA_TYPE_DEBUFF, 10, 10,1, "immune", select(3, GetSpellInfo(18647)), 2)
|
||||
self:AddOrRefreshAura(unit, 27218, AURA_TYPE_DEBUFF, 24, 20,1, "curse", select(3, GetSpellInfo(27218)), 3)
|
||||
self:AddOrRefreshAura(unit, 27216, AURA_TYPE_DEBUFF, 18, 18,1, "magic", select(3, GetSpellInfo(27216)), 4)
|
||||
self:AddOrRefreshAura(unit, 27189, AURA_TYPE_DEBUFF, 12, 12,5, "poison", select(3, GetSpellInfo(27189)), 5)
|
||||
self:AddOrRefreshAura(unit, 1, AURA_TYPE_BUFF, 20, 20,5, "magic", select(3, GetSpellInfo(32999)), 1)
|
||||
self:AddOrRefreshAura(unit, 1, AURA_TYPE_BUFF, 20, 20,5, "magic", select(3, GetSpellInfo(25389)), 2)
|
||||
BuffsDebuffs:AURA_FADE(unit, AURA_TYPE_DEBUFF)
|
||||
BuffsDebuffs:AURA_FADE(unit, AURA_TYPE_BUFF)
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_DEBUFF, 1943, select(1, GetSpellInfo(1943)), select(3, GetSpellInfo(1943)), 10, GetTime() + 10, 1, "physical")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_DEBUFF, 18647, select(1, GetSpellInfo(18647)), select(3, GetSpellInfo(18647)), 10, GetTime() + 10, 1, "immune")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_DEBUFF, 27218, select(1, GetSpellInfo(27218)), select(3, GetSpellInfo(27218)), 24, GetTime() + 20, 1, "curse")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_DEBUFF, 27216, select(1, GetSpellInfo(27216)), select(3, GetSpellInfo(27216)), 18, GetTime() + 18, 1, "magic")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_DEBUFF, 27189, select(1, GetSpellInfo(27189)), select(3, GetSpellInfo(27189)), 12, GetTime() + 12, 5, "poison")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_BUFF, 33076, select(1, GetSpellInfo(33076)), select(3, GetSpellInfo(33076)), 20, GetTime() + 20, 1, "magic")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_BUFF, 26980, select(1, GetSpellInfo(26980)), select(3, GetSpellInfo(26980)), 20, GetTime() + 20, 5, "magic")
|
||||
elseif unit == "arena2" then
|
||||
self:AddOrRefreshAura(unit, 1943, AURA_TYPE_DEBUFF, 10, 10, 1, "physical", select(3, GetSpellInfo(1943)), 1)
|
||||
self:AddOrRefreshAura(unit, 1, AURA_TYPE_DEBUFF, 20, 20,5, "poison", select(3, GetSpellInfo(1)), 2)
|
||||
self:AddOrRefreshAura(unit, 1, AURA_TYPE_BUFF, 20, 20,5, "magic", select(3, GetSpellInfo(32999)), 1)
|
||||
self:AddOrRefreshAura(unit, 1, AURA_TYPE_BUFF, 20, 20,5, "magic", select(3, GetSpellInfo(25389)), 2)
|
||||
BuffsDebuffs:AURA_FADE(unit, AURA_TYPE_DEBUFF)
|
||||
BuffsDebuffs:AURA_FADE(unit, AURA_TYPE_BUFF)
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_DEBUFF, 1943, select(1, GetSpellInfo(1943)), select(3, GetSpellInfo(1943)), 10, GetTime() + 10, 1, "physical")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_DEBUFF, 1, select(1, GetSpellInfo(1)), select(3, GetSpellInfo(1)), 20, GetTime() + 20, 5, "poison")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_BUFF, 27009, select(1, GetSpellInfo(27009)), select(3, GetSpellInfo(27009)), 20, GetTime() + 15, 1, "magic")
|
||||
BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_BUFF, 11426, select(1, GetSpellInfo(11426)), select(3, GetSpellInfo(11426)), 10, GetTime() + 10, 1, "magic")
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -196,11 +202,13 @@ function BuffsDebuffs:AURA_GAIN(unit, auraType, spellID, spellName, texture, dur
|
||||
return
|
||||
end
|
||||
local auraFrame = self.frames[unit]
|
||||
local aura = Gladdy.db.auraListDefault[spellName] and Gladdy.db.auraListDefault[spellName].enabled
|
||||
local aura = Gladdy:GetImportantAuras()[spellName] and Gladdy.db.auraListDefault[tostring(Gladdy:GetImportantAuras()[spellName].spellID)].enabled
|
||||
if aura and Gladdy.db.buffsShowAuraDebuffs then
|
||||
aura = false
|
||||
end
|
||||
if not aura and spellID and expirationTime and (Gladdy.db.trackedBuffs[spellName] or Gladdy.db.trackedDebuffs[spellName]) then
|
||||
local auraNames = LibClassAuras.GetSpellNameToId(auraType)
|
||||
local spellId = auraNames[spellName] and auraNames[spellName].id[1]
|
||||
if not aura and spellID and spellId and expirationTime and (Gladdy.db.trackedBuffs[tostring(spellId)] or Gladdy.db.trackedDebuffs[tostring(spellId)]) then
|
||||
local index
|
||||
if auraType == AURA_TYPE_DEBUFF then
|
||||
auraFrame.numDebuffs = auraFrame.numDebuffs + 1
|
||||
@ -218,15 +226,16 @@ end
|
||||
---------------------------
|
||||
|
||||
function BuffsDebuffs:CreateFrame(unit)
|
||||
local verticalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) + Gladdy.db.padding
|
||||
local debuffFrame = CreateFrame("Frame", "GladdyDebuffs" .. unit, Gladdy.buttons[unit])
|
||||
debuffFrame:SetHeight(Gladdy.db.buffsIconSize)
|
||||
debuffFrame:SetWidth(1)
|
||||
debuffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPLEFT", 0, Gladdy.db.highlightBorderSize + Gladdy.db.padding)
|
||||
debuffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPLEFT", 0, verticalMargin)
|
||||
debuffFrame.unit = unit
|
||||
local buffFrame = CreateFrame("Frame", "GladdyBuffs" .. unit, Gladdy.buttons[unit])
|
||||
buffFrame:SetHeight(Gladdy.db.buffsIconSize)
|
||||
buffFrame:SetWidth(1)
|
||||
buffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPLEFT", 0, Gladdy.db.highlightBorderSize + Gladdy.db.padding)
|
||||
buffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPLEFT", 0, verticalMargin)
|
||||
buffFrame.unit = unit
|
||||
self.frames[unit] = {}
|
||||
self.frames[unit].buffFrame = buffFrame
|
||||
@ -269,7 +278,9 @@ end
|
||||
function BuffsDebuffs:UpdateFrame(unit)
|
||||
self.frames[unit].debuffFrame:SetHeight(Gladdy.db.buffsIconSize)
|
||||
self.frames[unit].debuffFrame:ClearAllPoints()
|
||||
local horizontalMargin = Gladdy.db.highlightBorderSize
|
||||
|
||||
--DEBUFFS
|
||||
local horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize)
|
||||
local verticalMargin = -(Gladdy.db.powerBarHeight)/2
|
||||
if Gladdy.db.buffsCooldownPos == "TOP" then
|
||||
verticalMargin = horizontalMargin + 1
|
||||
@ -292,7 +303,7 @@ function BuffsDebuffs:UpdateFrame(unit)
|
||||
self.frames[unit].debuffFrame:SetPoint("TOPRIGHT", Gladdy.buttons[unit].powerBar, "BOTTOMLEFT", Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset -verticalMargin)
|
||||
end
|
||||
elseif Gladdy.db.buffsCooldownPos == "LEFT" then
|
||||
horizontalMargin = Gladdy.db.highlightBorderSize - 1 + Gladdy.db.padding
|
||||
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
|
||||
local anchor = Gladdy:GetAnchor(unit, "LEFT")
|
||||
if anchor == Gladdy.buttons[unit].healthBar then
|
||||
self.frames[unit].debuffFrame:SetPoint("RIGHT", anchor, "LEFT", -horizontalMargin + Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset)
|
||||
@ -310,9 +321,10 @@ function BuffsDebuffs:UpdateFrame(unit)
|
||||
end
|
||||
end
|
||||
|
||||
--BUFFS
|
||||
self.frames[unit].buffFrame:SetHeight(Gladdy.db.buffsBuffsIconSize)
|
||||
self.frames[unit].buffFrame:ClearAllPoints()
|
||||
horizontalMargin = Gladdy.db.highlightBorderSize
|
||||
horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize)
|
||||
verticalMargin = -(Gladdy.db.powerBarHeight)/2
|
||||
if Gladdy.db.buffsBuffsCooldownPos == "TOP" then
|
||||
verticalMargin = horizontalMargin + 1
|
||||
@ -361,7 +373,7 @@ function BuffsDebuffs:UpdateFrame(unit)
|
||||
--self.frames[unit].buffFrame:SetPoint("RIGHT", Gladdy.buttons[unit].healthBar, "LEFT", -horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
|
||||
|
||||
local anchor = Gladdy:GetAnchor(unit, "LEFT")
|
||||
horizontalMargin = Gladdy.db.highlightBorderSize - 1 + Gladdy.db.padding
|
||||
horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) - 1 + Gladdy.db.padding
|
||||
if anchor == Gladdy.buttons[unit].healthBar then
|
||||
self.frames[unit].buffFrame:SetPoint("RIGHT", anchor, "LEFT", -horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset)
|
||||
else
|
||||
@ -395,7 +407,7 @@ function BuffsDebuffs:UpdateFrame(unit)
|
||||
--self.frames[unit].buffFrame:SetPoint("LEFT", Gladdy.buttons[unit].healthBar, "RIGHT", horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
|
||||
|
||||
local anchor = Gladdy:GetAnchor(unit, "RIGHT")
|
||||
horizontalMargin = Gladdy.db.highlightBorderSize - 1 + Gladdy.db.padding
|
||||
horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) - 1 + Gladdy.db.padding
|
||||
if anchor == Gladdy.buttons[unit].healthBar then
|
||||
self.frames[unit].buffFrame:SetPoint("LEFT", anchor, "RIGHT", horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset)
|
||||
else
|
||||
@ -459,10 +471,6 @@ function BuffsDebuffs:UpdateAurasOnUnit(unit)
|
||||
end
|
||||
end
|
||||
|
||||
function BuffsDebuffs:UNIT_DEATH(destUnit)
|
||||
self:RemoveAuras(destUnit)
|
||||
end
|
||||
|
||||
local function iconTimer(auraFrame, elapsed)
|
||||
if auraFrame.endtime ~= "undefined" then
|
||||
local timeLeftMilliSec = auraFrame.endtime - GetTime()
|
||||
@ -502,8 +510,10 @@ function BuffsDebuffs:AddAura(unit, spellID, auraType, duration, timeLeft, stack
|
||||
aura = tremove(self.framePool, #self.framePool)
|
||||
else
|
||||
aura = CreateFrame("Frame")
|
||||
aura:EnableMouse(false)
|
||||
aura:SetFrameLevel(3)
|
||||
aura.texture = aura:CreateTexture(nil, "BACKGROUND")
|
||||
aura.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
aura.texture:SetAllPoints(aura)
|
||||
aura.cooldowncircle = CreateFrame("Cooldown", nil, aura, "CooldownFrameTemplate")
|
||||
aura.cooldowncircle:SetFrameLevel(4)
|
||||
@ -1021,7 +1031,7 @@ function BuffsDebuffs:GetOptions()
|
||||
type = "group",
|
||||
order = 11,
|
||||
childGroups = "tree",
|
||||
args = select(1, Gladdy:GetAuras("debuff")),
|
||||
args = select(1, Gladdy:GetAuras(AURA_TYPE_DEBUFF)),
|
||||
set = function(info, state)
|
||||
local optionKey = info[#info]
|
||||
Gladdy.dbi.profile.trackedDebuffs[optionKey] = state
|
||||
@ -1036,7 +1046,7 @@ function BuffsDebuffs:GetOptions()
|
||||
type = "group",
|
||||
order = 12,
|
||||
childGroups = "tree",
|
||||
args = select(1, Gladdy:GetAuras("buffs")),
|
||||
args = select(1, Gladdy:GetAuras(AURA_TYPE_BUFF)),
|
||||
set = function(info, state)
|
||||
local optionKey = info[#info]
|
||||
Gladdy.dbi.profile.trackedBuffs[optionKey] = state
|
||||
|
@ -57,6 +57,7 @@ end
|
||||
|
||||
function Castbar:CreateFrame(unit)
|
||||
local castBar = CreateFrame("Frame", nil, Gladdy.buttons[unit], BackdropTemplateMixin and "BackdropTemplate")
|
||||
castBar:EnableMouse(false)
|
||||
castBar.unit = unit
|
||||
|
||||
castBar:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.castBarBorderStyle),
|
||||
@ -85,6 +86,7 @@ function Castbar:CreateFrame(unit)
|
||||
|
||||
castBar.icon = CreateFrame("Frame", nil, castBar)
|
||||
castBar.icon.texture = castBar.icon:CreateTexture(nil, "BACKGROUND")
|
||||
castBar.icon.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
castBar.icon.texture:SetAllPoints(castBar.icon)
|
||||
castBar.icon.texture.overlay = castBar.icon:CreateTexture(nil, "BORDER")
|
||||
castBar.icon.texture.overlay:SetAllPoints(castBar.icon.texture)
|
||||
@ -163,7 +165,7 @@ function Castbar:UpdateFrame(unit)
|
||||
end
|
||||
|
||||
castBar:ClearAllPoints()
|
||||
local horizontalMargin = Gladdy.db.highlightBorderSize + Gladdy.db.padding
|
||||
local horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) + Gladdy.db.padding
|
||||
if (Gladdy.db.castBarPos == "LEFT") then
|
||||
local anchor = Gladdy:GetAnchor(unit, "LEFT")
|
||||
if anchor == Gladdy.buttons[unit].healthBar then
|
||||
|
@ -1,5 +1,8 @@
|
||||
local select = select
|
||||
|
||||
local Gladdy = LibStub("Gladdy")
|
||||
local CreateFrame = CreateFrame
|
||||
local GetSpellInfo = GetSpellInfo
|
||||
local L = Gladdy.L
|
||||
local Classicon = Gladdy:NewModule("Classicon", 80, {
|
||||
classIconPos = "LEFT",
|
||||
@ -7,21 +10,87 @@ local Classicon = Gladdy:NewModule("Classicon", 80, {
|
||||
classIconWidthFactor = 0.9,
|
||||
classIconBorderStyle = "Interface\\AddOns\\Gladdy\\Images\\Border_rounded_blp",
|
||||
classIconBorderColor = { r = 0, g = 0, b = 0, a = 1 },
|
||||
classIconSpecIcon = false,
|
||||
})
|
||||
|
||||
local classIconPath = "Interface\\Addons\\Gladdy\\Images\\Classes\\"
|
||||
local classIcons = {
|
||||
["DRUID"] = classIconPath .. "inv_misc_monsterclaw_04",
|
||||
["HUNTER"] = classIconPath .. "inv_weapon_bow_07",
|
||||
["MAGE"] = classIconPath .. "inv_staff_13",
|
||||
["PALADIN"] = classIconPath .. "inv_hammer_01",
|
||||
["PRIEST"] = classIconPath .. "inv_staff_30",
|
||||
["ROGUE"] = classIconPath .. "inv_throwingknife_04",
|
||||
["SHAMAN"] = classIconPath .. "inv_jewelry_talisman_04",
|
||||
["WARLOCK"] = classIconPath .. "spell_nature_drowsy",
|
||||
["WARRIOR"] = classIconPath .. "inv_sword_27",
|
||||
}
|
||||
|
||||
local specIcons = {
|
||||
--DRUID
|
||||
["DRUID"] = {
|
||||
[L["Balance"]] = select(3, GetSpellInfo(8921)), -- Moonfire
|
||||
[L["Feral"]] = select(3, GetSpellInfo(27545)), -- Cat Form
|
||||
[L["Restoration"]] = select(3, GetSpellInfo(5185)), -- Healing Touch
|
||||
},
|
||||
["HUNTER"] = {
|
||||
[L["Beast Mastery"]] = select(3, GetSpellInfo(1515)), -- Tame Beast
|
||||
[L["Marksmanship"]] = select(3, GetSpellInfo(42243)), -- Volley
|
||||
[L["Survival"]] = select(3, GetSpellInfo(1495)), -- Mongoose Bite
|
||||
},
|
||||
["MAGE"] = {
|
||||
[L["Arcane"]] = select(3, GetSpellInfo(1459)), -- Arcane Intellect
|
||||
[L["Fire"]] = select(3, GetSpellInfo(133)), -- Fireball
|
||||
[L["Frost"]] = select(3, GetSpellInfo(116)), -- Frostbolt
|
||||
},
|
||||
["PALADIN"] = {
|
||||
[L["Holy"]] = select(3, GetSpellInfo(635)), -- Holy Light
|
||||
[L["Retribution"]] = select(3, GetSpellInfo(7294)), -- Retribution Aura
|
||||
[L["Protection"]] = select(3, GetSpellInfo(32828)), -- Protection Aura
|
||||
},
|
||||
["PRIEST"] = {
|
||||
[L["Discipline"]] = select(3, GetSpellInfo(1243)), -- Power Word: Fortitude
|
||||
[L["Shadow"]] = select(3, GetSpellInfo(589)), -- Shadow Word: Pain
|
||||
[L["Holy"]] = select(3, GetSpellInfo(635)), -- Holy Light
|
||||
},
|
||||
["ROGUE"] = {
|
||||
[L["Assassination"]] = select(3, GetSpellInfo(1329)), -- Mutilate (Eviscerate? 2098)
|
||||
[L["Combat"]] = select(3, GetSpellInfo(53)), -- Backstab
|
||||
[L["Subtlety"]] = select(3, GetSpellInfo(1784)), -- Stealth
|
||||
},
|
||||
["SHAMAN"] = {
|
||||
[L["Elemental"]] = select(3, GetSpellInfo(403)), -- Lightning Bolt
|
||||
[L["Enhancement"]] = select(3, GetSpellInfo(324)), -- Lightning Shield
|
||||
[L["Restoration"]] = select(3, GetSpellInfo(331)), -- Healing Wave
|
||||
},
|
||||
["WARLOCK"] = {
|
||||
[L["Affliction"]] = select(3, GetSpellInfo(6789)), -- Affliction
|
||||
[L["Demonology"]] = select(3, GetSpellInfo(5500)), -- Sense Demons
|
||||
[L["Destruction"]] = select(3, GetSpellInfo(5740)), -- Rain of Fire
|
||||
},
|
||||
["WARRIOR"] = {
|
||||
[L["Arms"]] = select(3, GetSpellInfo(12294)), -- Mortal Strike
|
||||
[L["Fury"]] = select(3, GetSpellInfo(12325)), -- Inner Rage
|
||||
[L["Protection"]] = select(3, GetSpellInfo(71)), -- Defensive Stance
|
||||
},
|
||||
}
|
||||
|
||||
function Classicon:Initialize()
|
||||
self.frames = {}
|
||||
|
||||
self:RegisterMessage("ENEMY_SPOTTED")
|
||||
self:RegisterMessage("UNIT_DEATH")
|
||||
self:RegisterMessage("UNIT_SPEC")
|
||||
end
|
||||
|
||||
function Classicon:CreateFrame(unit)
|
||||
local classIcon = CreateFrame("Frame", nil, Gladdy.buttons[unit])
|
||||
classIcon:EnableMouse(false)
|
||||
classIcon:SetFrameStrata("MEDIUM")
|
||||
classIcon:SetFrameLevel(1)
|
||||
classIcon.texture = classIcon:CreateTexture(nil, "BACKGROUND")
|
||||
classIcon.texture:SetAllPoints(classIcon)
|
||||
classIcon.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
|
||||
classIcon.texture.overlay = classIcon:CreateTexture(nil, "BORDER")
|
||||
classIcon.texture.overlay:SetAllPoints(classIcon)
|
||||
@ -51,7 +120,7 @@ function Classicon:UpdateFrame(unit)
|
||||
classIcon:SetHeight(Gladdy.db.classIconSize)
|
||||
|
||||
classIcon:ClearAllPoints()
|
||||
local margin = Gladdy.db.highlightBorderSize + Gladdy.db.padding
|
||||
local margin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) + Gladdy.db.padding
|
||||
if (Gladdy.db.classIconPos == "LEFT") then
|
||||
classIcon:SetPoint("TOPRIGHT", Gladdy.buttons[unit].healthBar, "TOPLEFT", -margin, 0)
|
||||
else
|
||||
@ -65,6 +134,25 @@ function Classicon:UpdateFrame(unit)
|
||||
classIcon.texture.overlay:SetVertexColor(Gladdy.db.classIconBorderColor.r, Gladdy.db.classIconBorderColor.g, Gladdy.db.classIconBorderColor.b, Gladdy.db.classIconBorderColor.a)
|
||||
end
|
||||
|
||||
function Classicon:ENEMY_SPOTTED(unit)
|
||||
local classIcon = self.frames[unit]
|
||||
if (not classIcon) then
|
||||
return
|
||||
end
|
||||
|
||||
classIcon.texture:SetTexture(classIcons[Gladdy.buttons[unit].class])
|
||||
--classIcon.texture:SetTexCoord(unpack(CLASS_BUTTONS[Gladdy.buttons[unit].class]))
|
||||
classIcon.texture:SetAllPoints(classIcon)
|
||||
end
|
||||
|
||||
function Classicon:UNIT_SPEC(unit, spec)
|
||||
local classIcon = self.frames[unit]
|
||||
if (not Gladdy.db.classIconSpecIcon or not classIcon) then
|
||||
return
|
||||
end
|
||||
classIcon.texture:SetTexture(specIcons[Gladdy.buttons[unit].class][spec])
|
||||
end
|
||||
|
||||
function Classicon:Test(unit)
|
||||
self:ENEMY_SPOTTED(unit)
|
||||
end
|
||||
@ -85,17 +173,41 @@ function Classicon:GetOptions()
|
||||
name = L["Class Icon"],
|
||||
order = 2,
|
||||
},
|
||||
classIconSpecIcon = {
|
||||
type = "toggle",
|
||||
name = L["Show Spec Icon"],
|
||||
desc = L["Shows Spec Icon once spec is detected"],
|
||||
order = 3,
|
||||
get = function(info) return Gladdy.db.classIconSpecIcon end,
|
||||
set = function(info, value)
|
||||
Gladdy.db.classIconSpecIcon = value
|
||||
if Gladdy.curBracket and Gladdy.curBracket > 0 then
|
||||
for i=1,Gladdy.curBracket do
|
||||
local unit = "arena" .. i
|
||||
if (Gladdy.buttons[unit] and Gladdy.buttons[unit].spec) then
|
||||
self:ENEMY_SPOTTED(unit)
|
||||
self:UNIT_SPEC(unit, Gladdy.buttons[unit].spec)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
group = {
|
||||
type = "group",
|
||||
childGroups = "tree",
|
||||
name = "Frame",
|
||||
order = 3,
|
||||
order = 4,
|
||||
args = {
|
||||
size = {
|
||||
type = "group",
|
||||
name = L["Icon size"],
|
||||
order = 1,
|
||||
args = {
|
||||
header = {
|
||||
type = "header",
|
||||
name = L["Icon size"],
|
||||
order = 1,
|
||||
},
|
||||
classIconSize = Gladdy:option({
|
||||
type = "range",
|
||||
name = L["Icon size"],
|
||||
@ -165,38 +277,3 @@ function Classicon:GetOptions()
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
local function getClassIcon(class)
|
||||
-- see https://wow.gamepedia.com/Class_icon
|
||||
local classIcon = "Interface\\Addons\\Gladdy\\Images\\Classes\\"
|
||||
if class == "DRUID" then
|
||||
return classIcon .. "inv_misc_monsterclaw_04"
|
||||
elseif class == "HUNTER" then
|
||||
return classIcon .. "inv_weapon_bow_07"
|
||||
elseif class == "MAGE" then
|
||||
return classIcon .. "inv_staff_13"
|
||||
elseif class == "PALADIN" then
|
||||
return classIcon .. "inv_hammer_01"
|
||||
elseif class == "PRIEST" then
|
||||
return classIcon .. "inv_staff_30"
|
||||
elseif class == "ROGUE" then
|
||||
return classIcon .. "inv_throwingknife_04"
|
||||
elseif class == "SHAMAN" then
|
||||
return classIcon .. "inv_jewelry_talisman_04"
|
||||
elseif class == "WARLOCK" then
|
||||
return classIcon .. "spell_nature_drowsy"
|
||||
elseif class == "WARRIOR" then
|
||||
return classIcon .. "inv_sword_27"
|
||||
end
|
||||
end
|
||||
|
||||
function Classicon:ENEMY_SPOTTED(unit)
|
||||
local classIcon = self.frames[unit]
|
||||
if (not classIcon) then
|
||||
return
|
||||
end
|
||||
|
||||
classIcon.texture:SetTexture(getClassIcon(Gladdy.buttons[unit].class))
|
||||
--classIcon.texture:SetTexCoord(unpack(CLASS_BUTTONS[Gladdy.buttons[unit].class]))
|
||||
classIcon.texture:SetAllPoints(classIcon)
|
||||
end
|
243
Modules/CombatIndicator.lua
Normal file
243
Modules/CombatIndicator.lua
Normal file
@ -0,0 +1,243 @@
|
||||
local select = select
|
||||
local UnitExists, UnitAffectingCombat, GetSpellInfo = UnitExists, UnitAffectingCombat, GetSpellInfo
|
||||
local CreateFrame = CreateFrame
|
||||
local ANCHORS = { ["LEFT"] = "RIGHT", ["RIGHT"] = "LEFT", ["BOTTOM"] = "TOP", ["TOP"] = "BOTTOM"}
|
||||
|
||||
local Gladdy = LibStub("Gladdy")
|
||||
local L = Gladdy.L
|
||||
|
||||
local CombatIndicator = Gladdy:NewModule("CombatIndicator", nil, {
|
||||
ciEnabled = true,
|
||||
ciSize = 20,
|
||||
ciAlpha = 1,
|
||||
ciWidthFactor = 1,
|
||||
ciAnchor = "healthBar",
|
||||
ciPos = "TOP",
|
||||
ciXOffset = 0,
|
||||
ciYOffset = -31,
|
||||
ciBorderStyle = "Interface\\AddOns\\Gladdy\\Images\\Border_rounded_blp",
|
||||
ciBorderColor = { r = 0, g = 0, b = 0, a = 1 },
|
||||
})
|
||||
|
||||
function CombatIndicator:Initialize()
|
||||
self.frames = {}
|
||||
self:RegisterMessage("JOINED_ARENA")
|
||||
self.updateInterval = 0.05
|
||||
self.combatIndicatorIcon = select(3, GetSpellInfo(674))
|
||||
end
|
||||
|
||||
function CombatIndicator:JOINED_ARENA()
|
||||
self:SetScript("OnUpdate", CombatIndicator.OnEvent)
|
||||
self.lastTimeUpdated = 0
|
||||
end
|
||||
|
||||
function CombatIndicator:CreateFrame(unit)
|
||||
local button = Gladdy.buttons[unit]
|
||||
if not button then
|
||||
return
|
||||
end
|
||||
local ciFrame = CreateFrame("Frame", "GladdyCombatindicator" .. unit, button)
|
||||
ciFrame:EnableMouse(false)
|
||||
ciFrame:SetFrameStrata("HIGH")
|
||||
ciFrame:SetHeight(Gladdy.db.ciSize)
|
||||
ciFrame:SetWidth(Gladdy.db.ciSize * Gladdy.db.ciWidthFactor)
|
||||
|
||||
ciFrame.texture = ciFrame:CreateTexture(nil, "OVERLAY")
|
||||
ciFrame.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
ciFrame.texture:SetTexture(self.combatIndicatorIcon)
|
||||
ciFrame.texture:SetAllPoints(ciFrame)
|
||||
|
||||
ciFrame.border = ciFrame:CreateTexture(nil, "OVERLAY")
|
||||
ciFrame.border:SetAllPoints(ciFrame)
|
||||
ciFrame.border:SetTexture(Gladdy.db.ciBorderStyle)
|
||||
ciFrame.border:SetVertexColor(Gladdy.db.ciBorderColor.r, Gladdy.db.ciBorderColor.g, Gladdy.db.ciBorderColor.b, Gladdy.db.ciBorderColor.a)
|
||||
|
||||
self.frames[unit] = ciFrame
|
||||
button.ciFrame = ciFrame
|
||||
end
|
||||
|
||||
function CombatIndicator:UpdateFrame(unit)
|
||||
local button = Gladdy.buttons[unit]
|
||||
local ciFrame = self.frames[unit]
|
||||
if (not button or not ciFrame) then
|
||||
return
|
||||
end
|
||||
ciFrame:SetHeight(Gladdy.db.ciSize)
|
||||
ciFrame:SetWidth(Gladdy.db.ciSize * Gladdy.db.ciWidthFactor)
|
||||
ciFrame.border:SetTexture(Gladdy.db.ciBorderStyle)
|
||||
ciFrame.border:SetVertexColor(Gladdy.db.ciBorderColor.r, Gladdy.db.ciBorderColor.g, Gladdy.db.ciBorderColor.b, Gladdy.db.ciBorderColor.a)
|
||||
|
||||
ciFrame:ClearAllPoints()
|
||||
ciFrame:SetPoint(ANCHORS[Gladdy.db.ciPos], Gladdy.buttons[unit][Gladdy.db.ciAnchor], Gladdy.db.ciPos, Gladdy.db.ciXOffset, Gladdy.db.ciYOffset)
|
||||
|
||||
ciFrame:SetAlpha(Gladdy.db.ciAlpha)
|
||||
|
||||
if (Gladdy.db.ciEnabled == false) then
|
||||
ciFrame:Hide()
|
||||
else
|
||||
ciFrame:Show()
|
||||
end
|
||||
end
|
||||
|
||||
function CombatIndicator:Test()
|
||||
self.test = true
|
||||
self:JOINED_ARENA()
|
||||
end
|
||||
|
||||
function CombatIndicator:Reset()
|
||||
self:SetScript("OnUpdate", nil)
|
||||
self.test = false
|
||||
end
|
||||
|
||||
function CombatIndicator.OnEvent(self, elapsed)
|
||||
self.lastTimeUpdated = self.lastTimeUpdated + elapsed
|
||||
|
||||
if (self.lastTimeUpdated > self.updateInterval) then
|
||||
for i=1,Gladdy.curBracket do
|
||||
local unit = "arena" .. i
|
||||
if CombatIndicator.test or (UnitExists(unit) and UnitAffectingCombat(unit)) then
|
||||
CombatIndicator.frames[unit]:Show()
|
||||
else
|
||||
CombatIndicator.frames[unit]:Hide()
|
||||
end
|
||||
end
|
||||
self.lastTimeUpdated = 0
|
||||
end
|
||||
end
|
||||
|
||||
function CombatIndicator:GetOptions()
|
||||
return {
|
||||
headerTrinket = {
|
||||
type = "header",
|
||||
name = L["Racial"],
|
||||
order = 2,
|
||||
},
|
||||
ciEnabled = Gladdy:option({
|
||||
type = "toggle",
|
||||
name = L["Enabled"],
|
||||
desc = L["Enable ci icon"],
|
||||
order = 3,
|
||||
}),
|
||||
group = {
|
||||
type = "group",
|
||||
childGroups = "tree",
|
||||
name = "Frame",
|
||||
order = 4,
|
||||
args = {
|
||||
general = {
|
||||
type = "group",
|
||||
name = L["Frame"],
|
||||
order = 1,
|
||||
args = {
|
||||
header = {
|
||||
type = "header",
|
||||
name = L["Frame"],
|
||||
order = 1,
|
||||
},
|
||||
ciSize = Gladdy:option({
|
||||
type = "range",
|
||||
name = L["Icon size"],
|
||||
min = 5,
|
||||
max = 100,
|
||||
step = 1,
|
||||
order = 2,
|
||||
}),
|
||||
ciWidthFactor = Gladdy:option({
|
||||
type = "range",
|
||||
name = L["Icon width factor"],
|
||||
min = 0.5,
|
||||
max = 2,
|
||||
step = 0.05,
|
||||
order = 3,
|
||||
}),
|
||||
ciAlpha = Gladdy:option({
|
||||
type = "range",
|
||||
name = L["Alpha"],
|
||||
min = 0,
|
||||
max = 1,
|
||||
step = 0.05,
|
||||
order = 4,
|
||||
}),
|
||||
},
|
||||
},
|
||||
position = {
|
||||
type = "group",
|
||||
name = L["Position"],
|
||||
order = 4,
|
||||
args = {
|
||||
header = {
|
||||
type = "header",
|
||||
name = L["Position"],
|
||||
order = 4,
|
||||
},
|
||||
ciAnchor = Gladdy:option({
|
||||
type = "select",
|
||||
name = L["Anchor"],
|
||||
desc = L["This changes the anchor of the ci icon"],
|
||||
order = 20,
|
||||
values = {
|
||||
["trinket"] = L["Trinket"],
|
||||
["classIcon"] = L["Class Icon"],
|
||||
["healthBar"] = L["Health Bar"],
|
||||
["powerBar"] = L["Power Bar"],
|
||||
},
|
||||
}),
|
||||
ciPos = Gladdy:option({
|
||||
type = "select",
|
||||
name = L["Position"],
|
||||
desc = L["This changes position relative to its anchor of the ci icon"],
|
||||
order = 21,
|
||||
values = {
|
||||
["LEFT"] = L["Left"],
|
||||
["RIGHT"] = L["Right"],
|
||||
["TOP"] = L["Top"],
|
||||
["BOTTOM"] = L["Bottom"],
|
||||
},
|
||||
}),
|
||||
ciXOffset = Gladdy:option({
|
||||
type = "range",
|
||||
name = L["Horizontal offset"],
|
||||
order = 23,
|
||||
min = -400,
|
||||
max = 400,
|
||||
step = 0.1,
|
||||
}),
|
||||
ciYOffset = Gladdy:option({
|
||||
type = "range",
|
||||
name = L["Vertical offset"],
|
||||
order = 24,
|
||||
min = -400,
|
||||
max = 400,
|
||||
step = 0.1,
|
||||
}),
|
||||
},
|
||||
},
|
||||
border = {
|
||||
type = "group",
|
||||
name = L["Border"],
|
||||
order = 4,
|
||||
args = {
|
||||
header = {
|
||||
type = "header",
|
||||
name = L["Border"],
|
||||
order = 4,
|
||||
},
|
||||
ciBorderStyle = Gladdy:option({
|
||||
type = "select",
|
||||
name = L["Border style"],
|
||||
order = 31,
|
||||
values = Gladdy:GetIconStyles()
|
||||
}),
|
||||
ciBorderColor = Gladdy:colorOption({
|
||||
type = "color",
|
||||
name = L["Border color"],
|
||||
desc = L["Color of the border"],
|
||||
order = 32,
|
||||
hasAlpha = true,
|
||||
}),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
@ -93,11 +93,13 @@ function Cooldowns:CreateFrame(unit)
|
||||
local button = Gladdy.buttons[unit]
|
||||
-- Cooldown frame
|
||||
local spellCooldownFrame = CreateFrame("Frame", nil, button)
|
||||
spellCooldownFrame:EnableMouse(false)
|
||||
for x = 1, 14 do
|
||||
local icon = CreateFrame("Frame", nil, spellCooldownFrame)
|
||||
icon:EnableMouse(false)
|
||||
icon:SetFrameLevel(3)
|
||||
icon.texture = icon:CreateTexture(nil, "BACKGROUND")
|
||||
icon.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
icon.texture:SetAllPoints(icon)
|
||||
|
||||
icon.cooldown = CreateFrame("Cooldown", nil, icon, "CooldownFrameTemplate")
|
||||
@ -133,29 +135,30 @@ function Cooldowns:UpdateFrame(unit)
|
||||
if (Gladdy.db.cooldown) then
|
||||
button.spellCooldownFrame:ClearAllPoints()
|
||||
local verticalMargin = -(Gladdy.db.powerBarHeight)/2
|
||||
local horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize)
|
||||
if Gladdy.db.cooldownYPos == "TOP" then
|
||||
if Gladdy.db.cooldownXPos == "RIGHT" then
|
||||
button.spellCooldownFrame:SetPoint("BOTTOMRIGHT", button.healthBar, "TOPRIGHT", Gladdy.db.cooldownXOffset, Gladdy.db.highlightBorderSize + Gladdy.db.cooldownYOffset) -- needs to be properly anchored after trinket
|
||||
button.spellCooldownFrame:SetPoint("BOTTOMRIGHT", button.healthBar, "TOPRIGHT", Gladdy.db.cooldownXOffset, horizontalMargin + Gladdy.db.cooldownYOffset)
|
||||
else
|
||||
button.spellCooldownFrame:SetPoint("BOTTOMLEFT", button.healthBar, "TOPLEFT", Gladdy.db.cooldownXOffset, Gladdy.db.highlightBorderSize + Gladdy.db.cooldownYOffset)
|
||||
button.spellCooldownFrame:SetPoint("BOTTOMLEFT", button.healthBar, "TOPLEFT", Gladdy.db.cooldownXOffset, horizontalMargin + Gladdy.db.cooldownYOffset)
|
||||
end
|
||||
elseif Gladdy.db.cooldownYPos == "BOTTOM" then
|
||||
if Gladdy.db.cooldownXPos == "RIGHT" then
|
||||
button.spellCooldownFrame:SetPoint("TOPRIGHT", button.powerBar, "BOTTOMRIGHT", Gladdy.db.cooldownXOffset, -Gladdy.db.highlightBorderSize + Gladdy.db.cooldownYOffset) -- needs to be properly anchored after trinket
|
||||
button.spellCooldownFrame:SetPoint("TOPRIGHT", button.powerBar, "BOTTOMRIGHT", Gladdy.db.cooldownXOffset, -horizontalMargin + Gladdy.db.cooldownYOffset)
|
||||
else
|
||||
button.spellCooldownFrame:SetPoint("TOPLEFT", button.powerBar, "BOTTOMLEFT", Gladdy.db.cooldownXOffset, -Gladdy.db.highlightBorderSize + Gladdy.db.cooldownYOffset)
|
||||
button.spellCooldownFrame:SetPoint("TOPLEFT", button.powerBar, "BOTTOMLEFT", Gladdy.db.cooldownXOffset, -horizontalMargin + Gladdy.db.cooldownYOffset)
|
||||
end
|
||||
elseif Gladdy.db.cooldownYPos == "LEFT" then
|
||||
local anchor = Gladdy:GetAnchor(unit, "LEFT")
|
||||
if anchor == Gladdy.buttons[unit].healthBar then
|
||||
button.spellCooldownFrame:SetPoint("RIGHT", anchor, "LEFT", -(Gladdy.db.highlightBorderSize + Gladdy.db.padding) + Gladdy.db.cooldownXOffset, Gladdy.db.cooldownYOffset)
|
||||
button.spellCooldownFrame:SetPoint("RIGHT", anchor, "LEFT", -(horizontalMargin + Gladdy.db.padding) + Gladdy.db.cooldownXOffset, Gladdy.db.cooldownYOffset)
|
||||
else
|
||||
button.spellCooldownFrame:SetPoint("RIGHT", anchor, "LEFT", -Gladdy.db.padding + Gladdy.db.cooldownXOffset, Gladdy.db.cooldownYOffset)
|
||||
end
|
||||
elseif Gladdy.db.cooldownYPos == "RIGHT" then
|
||||
local anchor = Gladdy:GetAnchor(unit, "RIGHT")
|
||||
if anchor == Gladdy.buttons[unit].healthBar then
|
||||
button.spellCooldownFrame:SetPoint("LEFT", anchor, "RIGHT", Gladdy.db.highlightBorderSize + Gladdy.db.padding + Gladdy.db.cooldownXOffset, Gladdy.db.cooldownYOffset)
|
||||
button.spellCooldownFrame:SetPoint("LEFT", anchor, "RIGHT", horizontalMargin + Gladdy.db.padding + Gladdy.db.cooldownXOffset, Gladdy.db.cooldownYOffset)
|
||||
else
|
||||
button.spellCooldownFrame:SetPoint("LEFT", anchor, "RIGHT", Gladdy.db.padding + Gladdy.db.cooldownXOffset, Gladdy.db.cooldownYOffset)
|
||||
end
|
||||
@ -599,7 +602,7 @@ function Cooldowns:GetOptions()
|
||||
desc = L["Size of each cd icon"],
|
||||
order = 4,
|
||||
min = 5,
|
||||
max = (Gladdy.db.healthBarHeight + Gladdy.db.castBarHeight + Gladdy.db.powerBarHeight + Gladdy.db.bottomMargin) / 2,
|
||||
max = 50,
|
||||
}),
|
||||
cooldownWidthFactor = Gladdy:option({
|
||||
type = "range",
|
||||
|
@ -67,6 +67,7 @@ end
|
||||
|
||||
function Diminishings:CreateFrame(unit)
|
||||
local drFrame = CreateFrame("Frame", nil, Gladdy.buttons[unit])
|
||||
drFrame:EnableMouse(false)
|
||||
|
||||
for i = 1, 16 do
|
||||
local icon = CreateFrame("Frame", "GladdyDr" .. unit .. "Icon" .. i, drFrame)
|
||||
@ -74,6 +75,7 @@ function Diminishings:CreateFrame(unit)
|
||||
icon:EnableMouse(false)
|
||||
icon:SetFrameLevel(3)
|
||||
icon.texture = icon:CreateTexture(nil, "BACKGROUND")
|
||||
icon.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
icon.texture:SetAllPoints(icon)
|
||||
icon:SetScript("OnUpdate", function(self, elapsed)
|
||||
if (self.active) then
|
||||
@ -160,7 +162,7 @@ function Diminishings:UpdateFrame(unit)
|
||||
end
|
||||
|
||||
drFrame:ClearAllPoints()
|
||||
local horizontalMargin = Gladdy.db.highlightBorderSize + Gladdy.db.padding
|
||||
local horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) + Gladdy.db.padding
|
||||
if (Gladdy.db.drCooldownPos == "LEFT") then
|
||||
local anchor = Gladdy:GetAnchor(unit, "LEFT")
|
||||
if anchor == Gladdy.buttons[unit].healthBar then
|
||||
@ -229,9 +231,9 @@ function Diminishings:UpdateFrame(unit)
|
||||
icon.border:SetTexture(Gladdy.db.drBorderStyle)
|
||||
end
|
||||
|
||||
icon.texture:SetTexCoord(.1, .9, .1, .9)
|
||||
icon.texture:SetPoint("TOPLEFT", icon, "TOPLEFT", 2, -2)
|
||||
icon.texture:SetPoint("BOTTOMRIGHT", icon, "BOTTOMRIGHT", -2, 2)
|
||||
--icon.texture:SetTexCoord(.1, .9, .1, .9)
|
||||
--icon.texture:SetPoint("TOPLEFT", icon, "TOPLEFT", 2, -2)
|
||||
--icon.texture:SetPoint("BOTTOMRIGHT", icon, "BOTTOMRIGHT", -2, 2)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -85,6 +85,10 @@ end)
|
||||
import:AddChild(importClearButton)
|
||||
import.clearButton = importClearButton
|
||||
|
||||
local deletedOptions = { --TODO backward compatibility Imports on deleted options
|
||||
growUp = true
|
||||
}
|
||||
|
||||
function ExportImport:CheckDeserializedOptions(tbl, refTbl, str)
|
||||
if str == nil and not tbl.version_major_num then
|
||||
return false, "Version conflict: version_major_num not seen"
|
||||
|
@ -19,6 +19,7 @@ local Healthbar = Gladdy:NewModule("Healthbar", 100, {
|
||||
healthBarFontColor = { r = 1, g = 1, b = 1, a = 1 },
|
||||
healthBarNameFontSize = 12,
|
||||
healthBarHealthFontSize = 12,
|
||||
healthNameToArenaId = false,
|
||||
healthName = true,
|
||||
healthActual = false,
|
||||
healthMax = true,
|
||||
@ -27,6 +28,7 @@ local Healthbar = Gladdy:NewModule("Healthbar", 100, {
|
||||
|
||||
function Healthbar:Initialize()
|
||||
self.frames = {}
|
||||
self:RegisterMessage("JOINED_ARENA")
|
||||
self:RegisterMessage("ENEMY_SPOTTED")
|
||||
self:RegisterMessage("UNIT_DESTROYED")
|
||||
self:RegisterMessage("UNIT_DEATH")
|
||||
@ -36,6 +38,7 @@ function Healthbar:CreateFrame(unit)
|
||||
local button = Gladdy.buttons[unit]
|
||||
|
||||
local healthBar = CreateFrame("Frame", nil, Gladdy.buttons[unit], BackdropTemplateMixin and "BackdropTemplate")
|
||||
healthBar:EnableMouse(false)
|
||||
healthBar:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.healthBarBorderStyle),
|
||||
edgeSize = Gladdy.db.healthBarBorderSize })
|
||||
healthBar:SetBackdropBorderColor(Gladdy.db.healthBarBorderColor.r, Gladdy.db.healthBarBorderColor.g, Gladdy.db.healthBarBorderColor.b, Gladdy.db.healthBarBorderColor.a)
|
||||
@ -161,7 +164,7 @@ function Healthbar:UpdateFrame(unit)
|
||||
edgeSize = Gladdy.db.healthBarBorderSize })
|
||||
healthBar:SetBackdropBorderColor(Gladdy.db.healthBarBorderColor.r, Gladdy.db.healthBarBorderColor.g, Gladdy.db.healthBarBorderColor.b, Gladdy.db.healthBarBorderColor.a)
|
||||
healthBar:ClearAllPoints()
|
||||
healthBar:SetPoint("TOPLEFT", Gladdy.buttons[unit], "TOPLEFT", iconSize, 0)
|
||||
healthBar:SetPoint("TOPLEFT", Gladdy.buttons[unit], "TOPLEFT", 0, 0)
|
||||
healthBar:SetPoint("BOTTOMRIGHT", Gladdy.buttons[unit], "BOTTOMRIGHT")
|
||||
|
||||
healthBar.hp:SetStatusBarTexture(Gladdy.LSM:Fetch("statusbar", Gladdy.db.healthBarTexture))
|
||||
@ -210,10 +213,20 @@ function Healthbar:Test(unit)
|
||||
return
|
||||
end
|
||||
|
||||
self:JOINED_ARENA()
|
||||
self:ENEMY_SPOTTED(unit)
|
||||
self:UNIT_HEALTH(unit, button.health, button.healthMax)
|
||||
end
|
||||
|
||||
function Healthbar:JOINED_ARENA()
|
||||
if Gladdy.db.healthNameToArenaId and Gladdy.db.healthName then
|
||||
for i=1,Gladdy.curBracket do
|
||||
local healthBar = self.frames["arena" .. i]
|
||||
healthBar.nameText:SetText("Arena" .. i)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Healthbar:ENEMY_SPOTTED(unit)
|
||||
local healthBar = self.frames[unit]
|
||||
local button = Gladdy.buttons[unit]
|
||||
@ -228,7 +241,10 @@ function Healthbar:ENEMY_SPOTTED(unit)
|
||||
healthBar.hp:SetValue(health)
|
||||
Healthbar:SetHealthText(healthBar, health, healthMax)
|
||||
end
|
||||
healthBar.nameText:SetText(button.name)
|
||||
if Gladdy.db.healthName and not Gladdy.db.healthNameToArenaId then
|
||||
healthBar.nameText:SetText(button.name)
|
||||
end
|
||||
|
||||
healthBar.hp:SetStatusBarColor(RAID_CLASS_COLORS[button.class].r, RAID_CLASS_COLORS[button.class].g, RAID_CLASS_COLORS[button.class].b, 1)
|
||||
end
|
||||
|
||||
@ -459,27 +475,34 @@ function Healthbar:GetOptions()
|
||||
},
|
||||
healthName = option({
|
||||
type = "toggle",
|
||||
name = L["Show the name"],
|
||||
name = L["Show name text"],
|
||||
desc = L["Show the units name"],
|
||||
order = 30,
|
||||
order = 2,
|
||||
}),
|
||||
healthNameToArenaId = option({
|
||||
type = "toggle",
|
||||
name = L["Show ArenaX"],
|
||||
desc = L["Show Arena1-5 as name instead"],
|
||||
order = 3,
|
||||
disabled = function() return not Gladdy.db.healthName end
|
||||
}),
|
||||
healthActual = option({
|
||||
type = "toggle",
|
||||
name = L["Show the actual health"],
|
||||
desc = L["Show the actual health on the health bar"],
|
||||
order = 31,
|
||||
order = 4,
|
||||
}),
|
||||
healthMax = option({
|
||||
type = "toggle",
|
||||
name = L["Show max health"],
|
||||
desc = L["Show max health on the health bar"],
|
||||
order = 32,
|
||||
order = 5,
|
||||
}),
|
||||
healthPercentage = option({
|
||||
type = "toggle",
|
||||
name = L["Show health percentage"],
|
||||
desc = L["Show health percentage on the health bar"],
|
||||
order = 33,
|
||||
order = 6,
|
||||
}),
|
||||
},
|
||||
},
|
||||
|
@ -3,10 +3,12 @@ local CreateFrame, UnitIsUnit = CreateFrame, UnitIsUnit
|
||||
local Gladdy = LibStub("Gladdy")
|
||||
local L = Gladdy.L
|
||||
local Highlight = Gladdy:NewModule("Highlight", nil, {
|
||||
highlightBorderSize = 2,
|
||||
highlightBorderSize = 1,
|
||||
highlightInset = false,
|
||||
targetBorderColor = { r = 1, g = 0.8, b = 0, a = 1 },
|
||||
focusBorderColor = { r = 1, g = 0, b = 0, a = 1 },
|
||||
leaderBorderColor = { r = 0, g = 1, b = 0, a = 1 },
|
||||
highlightBorderStyle = "Square Full White",
|
||||
highlight = true,
|
||||
targetBorder = true,
|
||||
focusBorder = true,
|
||||
@ -53,18 +55,18 @@ function Highlight:CreateFrame(unit)
|
||||
local healthBar = Gladdy.modules.Healthbar.frames[unit]
|
||||
|
||||
local targetBorder = CreateFrame("Frame", nil, button, BackdropTemplateMixin and "BackdropTemplate")
|
||||
targetBorder:SetBackdrop({ edgeFile = "Interface\\ChatFrame\\ChatFrameBackground", edgeSize = Gladdy.db.highlightBorderSize })
|
||||
targetBorder:SetFrameStrata("HIGH")
|
||||
targetBorder:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.highlightBorderStyle), edgeSize = Gladdy.db.highlightBorderSize })
|
||||
--targetBorder:SetFrameStrata("MEDIUM")
|
||||
targetBorder:Hide()
|
||||
|
||||
local focusBorder = CreateFrame("Frame", nil, button, BackdropTemplateMixin and "BackdropTemplate")
|
||||
focusBorder:SetBackdrop({ edgeFile = "Interface\\ChatFrame\\ChatFrameBackground", edgeSize = Gladdy.db.highlightBorderSize })
|
||||
focusBorder:SetFrameStrata("LOW")
|
||||
focusBorder:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.highlightBorderStyle), edgeSize = Gladdy.db.highlightBorderSize })
|
||||
--focusBorder:SetFrameStrata("MEDIUM")
|
||||
focusBorder:Hide()
|
||||
|
||||
local leaderBorder = CreateFrame("Frame", nil, button, BackdropTemplateMixin and "BackdropTemplate")
|
||||
leaderBorder:SetBackdrop({ edgeFile = "Interface\\ChatFrame\\ChatFrameBackground", edgeSize = Gladdy.db.highlightBorderSize })
|
||||
leaderBorder:SetFrameStrata("MEDIUM")
|
||||
leaderBorder:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.highlightBorderStyle), edgeSize = Gladdy.db.highlightBorderSize })
|
||||
--leaderBorder:SetFrameStrata("MEDIUM")
|
||||
leaderBorder:Hide()
|
||||
|
||||
local highlight = healthBar:CreateTexture(nil, "OVERLAY")
|
||||
@ -88,29 +90,48 @@ function Highlight:UpdateFrame(unit)
|
||||
end
|
||||
|
||||
local borderSize = Gladdy.db.highlightBorderSize
|
||||
local borderOffset = borderSize
|
||||
local iconSize = Gladdy.db.healthBarHeight + Gladdy.db.powerBarHeight + 1
|
||||
local width = Gladdy.db.barWidth + borderSize * 2
|
||||
local height = iconSize + borderSize * 2
|
||||
local width = Gladdy.db.barWidth + (Gladdy.db.highlightInset and 0 or borderSize * 2)
|
||||
local height = iconSize + (Gladdy.db.highlightInset and 0 or borderSize * 2)
|
||||
|
||||
button.targetBorder:SetWidth(width)
|
||||
button.targetBorder:SetHeight(height)
|
||||
button.targetBorder:ClearAllPoints()
|
||||
button.targetBorder:SetPoint("TOP", button.healthBar, "TOP", 0, borderSize)
|
||||
button.targetBorder:SetBackdrop({ edgeFile = "Interface\\ChatFrame\\ChatFrameBackground", edgeSize = borderSize })
|
||||
if Gladdy.db.highlightInset then
|
||||
button.targetBorder:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT", -(borderOffset/Gladdy.db.statusbarBorderOffset), (borderOffset/Gladdy.db.statusbarBorderOffset))
|
||||
button.targetBorder:SetPoint("BOTTOMRIGHT", button.powerBar, "BOTTOMRIGHT", (borderOffset/Gladdy.db.statusbarBorderOffset), -(borderOffset/Gladdy.db.statusbarBorderOffset))
|
||||
else
|
||||
button.targetBorder:SetPoint("TOP", button.healthBar, "TOP", 0, (Gladdy.db.highlightInset and 0 or borderSize))
|
||||
end
|
||||
|
||||
button.targetBorder:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.highlightBorderStyle), edgeSize = borderSize })
|
||||
button.targetBorder:SetBackdropBorderColor(Gladdy.db.targetBorderColor.r, Gladdy.db.targetBorderColor.g, Gladdy.db.targetBorderColor.b, Gladdy.db.targetBorderColor.a)
|
||||
|
||||
button.focusBorder:SetWidth(width)
|
||||
button.focusBorder:SetHeight(height)
|
||||
button.focusBorder:ClearAllPoints()
|
||||
button.focusBorder:SetPoint("TOP", button.healthBar, "TOP", 0, borderSize)
|
||||
button.focusBorder:SetBackdrop({ edgeFile = "Interface\\ChatFrame\\ChatFrameBackground", edgeSize = borderSize })
|
||||
if Gladdy.db.highlightInset then
|
||||
button.focusBorder:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT", -(borderOffset/Gladdy.db.statusbarBorderOffset), (borderOffset/Gladdy.db.statusbarBorderOffset))
|
||||
button.focusBorder:SetPoint("BOTTOMRIGHT", button.powerBar, "BOTTOMRIGHT", (borderOffset/Gladdy.db.statusbarBorderOffset), -(borderOffset/Gladdy.db.statusbarBorderOffset))
|
||||
else
|
||||
button.focusBorder:SetPoint("TOP", button.healthBar, "TOP", 0, (Gladdy.db.highlightInset and 0 or borderSize))
|
||||
end
|
||||
|
||||
button.focusBorder:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.highlightBorderStyle), edgeSize = borderSize })
|
||||
button.focusBorder:SetBackdropBorderColor(Gladdy.db.focusBorderColor.r, Gladdy.db.focusBorderColor.g, Gladdy.db.focusBorderColor.b, Gladdy.db.focusBorderColor.a)
|
||||
|
||||
button.leaderBorder:SetWidth(width)
|
||||
button.leaderBorder:SetHeight(height)
|
||||
button.leaderBorder:ClearAllPoints()
|
||||
button.leaderBorder:SetPoint("TOP", button.healthBar, "TOP", 0, borderSize)
|
||||
button.leaderBorder:SetBackdrop({ edgeFile = "Interface\\ChatFrame\\ChatFrameBackground", edgeSize = borderSize })
|
||||
if Gladdy.db.highlightInset then
|
||||
button.leaderBorder:SetPoint("TOPLEFT", button.healthBar, "TOPLEFT", -(borderOffset/Gladdy.db.statusbarBorderOffset), (borderOffset/Gladdy.db.statusbarBorderOffset))
|
||||
button.leaderBorder:SetPoint("BOTTOMRIGHT", button.powerBar, "BOTTOMRIGHT", (borderOffset/Gladdy.db.statusbarBorderOffset), -(borderOffset/Gladdy.db.statusbarBorderOffset))
|
||||
else
|
||||
button.leaderBorder:SetPoint("TOP", button.healthBar, "TOP", 0, (Gladdy.db.highlightInset and 0 or borderSize))
|
||||
end
|
||||
|
||||
button.leaderBorder:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.highlightBorderStyle), edgeSize = borderSize })
|
||||
button.leaderBorder:SetBackdropBorderColor(Gladdy.db.leaderBorderColor.r, Gladdy.db.leaderBorderColor.g, Gladdy.db.leaderBorderColor.b, Gladdy.db.leaderBorderColor.a)
|
||||
if Gladdy.frame.testing then
|
||||
Highlight:Test(unit)
|
||||
@ -179,34 +200,52 @@ function Highlight:GetOptions()
|
||||
name = L["Highlight"],
|
||||
order = 2,
|
||||
},
|
||||
highlightBorderSize = {
|
||||
highlightInset = Gladdy:option({
|
||||
type = "toggle",
|
||||
name = L["Show Inside"],
|
||||
desc = L["Show Highlight border inside of frame"],
|
||||
order = 3,
|
||||
}),
|
||||
highlightBorderSize = Gladdy:option({
|
||||
type = "range",
|
||||
name = L["Border size"],
|
||||
desc = L["Border size"],
|
||||
order = 3,
|
||||
order = 4,
|
||||
min = 1,
|
||||
max = 10,
|
||||
max = 20,
|
||||
step = 1,
|
||||
}),
|
||||
highlightBorderStyle = Gladdy:option({
|
||||
type = "select",
|
||||
name = L["Border style"],
|
||||
order = 5,
|
||||
dialogControl = "LSM30_Border",
|
||||
values = AceGUIWidgetLSMlists.border,
|
||||
}),
|
||||
headerColor = {
|
||||
type = "header",
|
||||
name = L["Colors"],
|
||||
order = 6,
|
||||
},
|
||||
targetBorderColor = Gladdy:colorOption({
|
||||
type = "color",
|
||||
name = L["Target border color"],
|
||||
desc = L["Color of the selected targets border"],
|
||||
order = 4,
|
||||
order = 7,
|
||||
hasAlpha = true,
|
||||
}),
|
||||
focusBorderColor = Gladdy:colorOption({
|
||||
type = "color",
|
||||
name = L["Focus border color"],
|
||||
desc = L["Color of the focus border"],
|
||||
order = 5,
|
||||
order = 8,
|
||||
hasAlpha = true,
|
||||
}),
|
||||
leaderBorderColor = Gladdy:colorOption({
|
||||
type = "color",
|
||||
name = L["Raid leader border color"],
|
||||
desc = L["Color of the raid leader border"],
|
||||
order = 6,
|
||||
order = 9,
|
||||
hasAlpha = true,
|
||||
}),
|
||||
headerEnable = {
|
||||
|
@ -1,12 +1,12 @@
|
||||
local string_gsub, floor, pairs = string.gsub, math.floor, pairs
|
||||
local CreateFrame = CreateFrame
|
||||
local CreateFrame, SetPortraitTexture = CreateFrame, SetPortraitTexture
|
||||
local UnitHealthMax, UnitHealth, UnitGUID = UnitHealthMax, UnitHealth, UnitGUID
|
||||
|
||||
local Gladdy = LibStub("Gladdy")
|
||||
local L = Gladdy.L
|
||||
local Pets = Gladdy:NewModule("Pets", nil, {
|
||||
petEnabled = true,
|
||||
petWidth = 100,
|
||||
petWidth = 128,
|
||||
petHeight = 20,
|
||||
petPortraitEnabled = true,
|
||||
petPortraitBorderStyle = "Interface\\AddOns\\Gladdy\\Images\\Border_rounded_blp",
|
||||
@ -21,8 +21,8 @@ local Pets = Gladdy:NewModule("Pets", nil, {
|
||||
petHealthBarFontColor = { r = 1, g = 1, b = 1, a = 1 },
|
||||
petHealthBarFontSize = 12,
|
||||
petHealthPercentage = true,
|
||||
petXOffset = 50,
|
||||
petYOffset = 0,
|
||||
petXOffset = 1,
|
||||
petYOffset = -62,
|
||||
})
|
||||
|
||||
function Pets:Initialize()
|
||||
@ -124,6 +124,7 @@ function Pets:Test(unitId)
|
||||
petFrame.healthBar.hp:SetMinMaxValues(0, 6200)
|
||||
petFrame.healthBar.hp:SetValue(2000)
|
||||
Pets:SetHealthText(petFrame.healthBar, 2000, 6200)
|
||||
SetPortraitTexture(petFrame.healthBar.portrait, "player")
|
||||
end
|
||||
end
|
||||
|
||||
@ -374,7 +375,7 @@ function Pets:GetOptions()
|
||||
desc = L["Width of the bar"],
|
||||
order = 4,
|
||||
min = 10,
|
||||
max = 100,
|
||||
max = 300,
|
||||
step = 1,
|
||||
}),
|
||||
petHealthBarTexture = option({
|
||||
|
@ -36,6 +36,7 @@ function Powerbar:CreateFrame(unit)
|
||||
local button = Gladdy.buttons[unit]
|
||||
|
||||
local powerBar = CreateFrame("Frame", nil, Gladdy.buttons[unit], BackdropTemplateMixin and "BackdropTemplate")
|
||||
powerBar:EnableMouse(false)
|
||||
powerBar:SetBackdrop({ edgeFile = Gladdy.LSM:Fetch("border", Gladdy.db.powerBarBorderStyle),
|
||||
edgeSize = Gladdy.db.powerBarBorderSize })
|
||||
powerBar:SetBackdropBorderColor(Gladdy.db.powerBarBorderColor.r, Gladdy.db.powerBarBorderColor.g, Gladdy.db.powerBarBorderColor.b, Gladdy.db.powerBarBorderColor.a)
|
||||
@ -206,8 +207,13 @@ function Powerbar:UNIT_SPEC(unit, spec)
|
||||
if (not powerBar or not button) then
|
||||
return
|
||||
end
|
||||
local raceText = Gladdy.db.powerShowRace and button.raceLoc or ""
|
||||
|
||||
powerBar.raceText:SetText(spec .. " " .. button.raceLoc)
|
||||
if (button.spec and Gladdy.db.powerShowSpec) then
|
||||
raceText = spec .. " " .. raceText
|
||||
end
|
||||
|
||||
powerBar.raceText:SetText(raceText)
|
||||
end
|
||||
|
||||
function Powerbar:UNIT_POWER(unit, power, powerMax, powerType)
|
||||
|
@ -77,8 +77,10 @@ end
|
||||
|
||||
function Racial:CreateFrame(unit)
|
||||
local racial = CreateFrame("Button", "GladdyTrinketButton" .. unit, Gladdy.buttons[unit])
|
||||
racial:EnableMouse(false)
|
||||
racial.texture = racial:CreateTexture(nil, "BACKGROUND")
|
||||
racial.texture:SetAllPoints(racial)
|
||||
racial.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
--racial.texture:SetTexture("Interface\\Icons\\INV_Jewelry_TrinketPVP_02")
|
||||
|
||||
racial.cooldown = CreateFrame("Cooldown", nil, racial, "CooldownFrameTemplate")
|
||||
@ -132,7 +134,7 @@ function Racial:UpdateFrame(unit)
|
||||
racial.texture.overlay:SetVertexColor(Gladdy.db.racialBorderColor.r, Gladdy.db.racialBorderColor.g, Gladdy.db.racialBorderColor.b, Gladdy.db.racialBorderColor.a)
|
||||
|
||||
racial:ClearAllPoints()
|
||||
local margin = Gladdy.db.highlightBorderSize + Gladdy.db.padding
|
||||
local margin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) + Gladdy.db.padding
|
||||
local parent = Gladdy.buttons[unit][Gladdy.db.racialAnchor]
|
||||
if (Gladdy.db.racialPos == "RIGHT") then
|
||||
racial:SetPoint(ANCHORS[Gladdy.db.racialPos], parent, Gladdy.db.racialPos, Gladdy.db.padding + Gladdy.db.racialXOffset, Gladdy.db.racialYOffset)
|
||||
@ -194,7 +196,7 @@ function Racial:ResetUnit(unit)
|
||||
if (not racial) then
|
||||
return
|
||||
end
|
||||
|
||||
racial.texture:SetTexture(nil)
|
||||
racial.timeLeft = nil
|
||||
racial.active = false
|
||||
racial.cooldown:Clear()
|
||||
@ -235,7 +237,7 @@ function Racial:GetOptions()
|
||||
header = {
|
||||
type = "header",
|
||||
name = L["Size"],
|
||||
order = 4,
|
||||
order = 1,
|
||||
},
|
||||
racialSize = Gladdy:option({
|
||||
type = "range",
|
||||
@ -243,7 +245,7 @@ function Racial:GetOptions()
|
||||
min = 5,
|
||||
max = 100,
|
||||
step = 1,
|
||||
order = 4,
|
||||
order = 2,
|
||||
}),
|
||||
racialWidthFactor = Gladdy:option({
|
||||
type = "range",
|
||||
@ -251,7 +253,7 @@ function Racial:GetOptions()
|
||||
min = 0.5,
|
||||
max = 2,
|
||||
step = 0.05,
|
||||
order = 6,
|
||||
order = 3,
|
||||
}),
|
||||
},
|
||||
},
|
||||
|
@ -26,7 +26,7 @@ local totemData = {
|
||||
[string_lower("Disease Cleansing Totem")] = {id = 8170,texture = select(3, GetSpellInfo(8170)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Disease Cleansing Totem
|
||||
[string_lower("Healing Stream Totem")] = {id = 5394,texture = select(3, GetSpellInfo(5394)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Healing Stream Totem
|
||||
[string_lower("Mana Tide Totem")] = {id = 16190,texture = select(3, GetSpellInfo(16190)), color = {r = 0.078, g = 0.9, b = 0.16, a = 1}, enabled = true, priority = 3}, -- Mana Tide Totem
|
||||
[string_lower("Mana Spring Totem")] = {id = 5675,texture = "Interface\\AddOns\\Gladdy\\Images\\Totems\\Spell_Nature_ManaRegenTotem_edit", color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 1}, -- Mana Spring Totem
|
||||
[string_lower("Mana Spring Totem")] = {id = 5675,texture = select(3, GetSpellInfo(5675)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 1}, -- Mana Spring Totem
|
||||
-- Earth
|
||||
[string_lower("Earthbind Totem")] = {id = 2484,texture = select(3, GetSpellInfo(2484)), color = {r = 0.5, g = 0.5, b = 0.5, a = 1}, enabled = true, priority = 1}, -- Earthbind Totem
|
||||
[string_lower("Stoneclaw Totem")] = {id = 5730,texture = select(3, GetSpellInfo(5730)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Stoneclaw Totem
|
||||
@ -36,13 +36,13 @@ local totemData = {
|
||||
[string_lower("Tremor Totem")] = {id = 8143,texture = select(3, GetSpellInfo(8143)), color = {r = 1, g = 0.9, b = 0.1, a = 1}, enabled = true, priority = 3}, -- Tremor Totem
|
||||
-- Air
|
||||
[string_lower("Grounding Totem")] = {id = 8177,texture = select(3, GetSpellInfo(8177)), color = {r = 0, g = 0.53, b = 0.92, a = 1}, enabled = true, priority = 3}, -- Grounding Totem
|
||||
[string_lower("Grace of Air Totem")] = {id = 8835,texture = "Interface\\AddOns\\Gladdy\\Images\\Totems\\Spell_Nature_InvisibilityTotem_edit", color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Grace of Air Totem
|
||||
[string_lower("Grace of Air Totem")] = {id = 8835,texture = select(3, GetSpellInfo(8835)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Grace of Air Totem
|
||||
[string_lower("Nature Resistance Totem")] = {id = 10595,texture = select(3, GetSpellInfo(10595)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Nature Resistance Totem
|
||||
[string_lower("Windfury Totem")] = {id = 8512,texture = "Interface\\AddOns\\Gladdy\\Images\\Totems\\Spell_Nature_Windfury_edit", color = {r = 0.96, g = 0, b = 0.07, a = 1}, enabled = true, priority = 2}, -- Windfury Totem
|
||||
[string_lower("Sentry Totem")] = {id = 6495, texture = "Interface\\AddOns\\Gladdy\\Images\\Totems\\Spell_Nature_RemoveCurse_edit", color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Sentry Totem
|
||||
[string_lower("Windfury Totem")] = {id = 8512,texture = select(3, GetSpellInfo(8512)), color = {r = 0.96, g = 0, b = 0.07, a = 1}, enabled = true, priority = 2}, -- Windfury Totem
|
||||
[string_lower("Sentry Totem")] = {id = 6495, texture = select(3, GetSpellInfo(6495)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Sentry Totem
|
||||
[string_lower("Windwall Totem")] = {id = 15107,texture = select(3, GetSpellInfo(15107)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Windwall Totem
|
||||
[string_lower("Wrath of Air Totem")] = {id = 3738,texture = "Interface\\AddOns\\Gladdy\\Images\\Totems\\Spell_Nature_SlowingTotem_edit", color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Wrath of Air Totem
|
||||
[string_lower("Tranquil Air Totem")] = {id = 25908,texture = "Interface\\Icons\\INV_Staff_07", color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Tranquil Air Totem
|
||||
[string_lower("Wrath of Air Totem")] = {id = 3738,texture = select(3, GetSpellInfo(3738)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Wrath of Air Totem
|
||||
[string_lower("Tranquil Air Totem")] = {id = 25908,texture = select(3, GetSpellInfo(25908)), color = {r = 0, g = 0, b = 0, a = 1}, enabled = true, priority = 0}, -- Tranquil Air Totem
|
||||
}
|
||||
local localizedTotemData = {
|
||||
["default"] = {
|
||||
@ -77,38 +77,6 @@ local localizedTotemData = {
|
||||
[string_lower(select(1, GetSpellInfo(3738)))] = totemData[string_lower("Wrath of Air Totem")], -- Wrath of Air Totem
|
||||
[string_lower(select(1, GetSpellInfo(25908)))] = totemData[string_lower("Tranquil Air Totem")], -- Tranquil Air Totem
|
||||
},
|
||||
["frFR"] = {
|
||||
[string_lower("Totem incendiaire")] = totemData[string_lower("Searing Totem")],
|
||||
[string_lower("Totem Langue de feu")] = totemData[string_lower("Flametongue Totem")],
|
||||
[string_lower("Totem de lien terrestre")] = totemData[string_lower("Earthbind Totem")],
|
||||
[string_lower("Totem de Griffes de pierre")] = totemData[string_lower("Stoneclaw Totem")],
|
||||
[string_lower("Totem Nova de feu")] = totemData[string_lower("Fire Nova Totem")],
|
||||
[string_lower("Totem de Magma")] = totemData[string_lower("Magma Totem")],
|
||||
[string_lower("Totem de courroux")] = totemData[string_lower("Totem of Wrath")],
|
||||
[string_lower("Totem d'\195\169lementaire de feu")] = totemData[string_lower("Fire Elemental Totem")],
|
||||
[string_lower("Totem d'\195\169l\195\169mentaire de feu")] = totemData[string_lower("Fire Elemental Totem")],
|
||||
[string_lower("Totem de Peau de pierre")] = totemData[string_lower("Stoneskin Totem")],
|
||||
[string_lower("Totem d'\195\169lementaire de terre")] = totemData[string_lower("Earth Elemental Totem")],
|
||||
[string_lower("Totem d'\195\169l\195\169mentaire de terre")] = totemData[string_lower("Earth Elemental Totem")],
|
||||
[string_lower("Totem de Force de la Terre")] = totemData[string_lower("Strength of Earth Totem")],
|
||||
[string_lower("Totem de r\195\169sistance au Givre")] = totemData[string_lower("Frost Resistance Totem")],
|
||||
[string_lower("Totem de r\195\169sistance au Feu")] = totemData[string_lower("Fire Resistance Totem")],
|
||||
[string_lower("Totem de Gl\195\168be")] = totemData[string_lower("Grounding Totem")],
|
||||
[string_lower("Totem de Gr\195\162ce a\195\169rienne")] = totemData[string_lower("Grace of Air Totem")],
|
||||
[string_lower("Totem de R\195\169sistance \195\160 la Nature")] = totemData[string_lower("Nature Resistance Totem")],
|
||||
[string_lower("Totem Furie-des-vents")] = totemData[string_lower("Windfury Totem")],
|
||||
[string_lower("Totem Sentinelle")] = totemData[string_lower("Sentry Totem")],
|
||||
[string_lower("Totem de Mur des vents")] = totemData[string_lower("Windwall Totem")],
|
||||
[string_lower("Totem de courroux de l'air")] = totemData[string_lower("Wrath of Air Totem")],
|
||||
[string_lower("Totem de S\195\169isme")] = totemData[string_lower("Tremor Totem")],
|
||||
[string_lower("Totem gu\195\169risseur")] = totemData[string_lower("Healing Stream Totem")],
|
||||
[string_lower("Totem de Purification du poison")] = totemData[string_lower("Poison Cleansing Totem")],
|
||||
[string_lower("Totem Fontaine de mana")] = totemData[string_lower("Mana Spring Totem")],
|
||||
[string_lower("Totem de Purification des maladies")] = totemData[string_lower("Disease Cleansing Totem")],
|
||||
[string_lower("Totem de purification")] = totemData[string_lower("Disease Cleansing Totem")],
|
||||
[string_lower("Totem de Vague de mana")] = totemData[string_lower("Mana Tide Totem")],
|
||||
[string_lower("Totem de Tranquillit\195\169 de l'air")] = totemData[string_lower("Tranquil Air Totem")],
|
||||
}
|
||||
}
|
||||
|
||||
local function GetTotemColorDefaultOptions()
|
||||
@ -329,6 +297,7 @@ function TotemPlates:NAME_PLATE_UNIT_ADDED(...)
|
||||
nameplate.gladdyTotemFrame:SetWidth(Gladdy.db.npTotemPlatesSize * Gladdy.db.npTotemPlatesWidthFactor)
|
||||
nameplate.gladdyTotemFrame:SetHeight(Gladdy.db.npTotemPlatesSize)
|
||||
nameplate.gladdyTotemFrame.totemIcon = nameplate.gladdyTotemFrame:CreateTexture(nil, "BACKGROUND")
|
||||
nameplate.gladdyTotemFrame.totemIcon:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
nameplate.gladdyTotemFrame.totemIcon:ClearAllPoints()
|
||||
nameplate.gladdyTotemFrame.totemIcon:SetPoint("TOPLEFT", nameplate.gladdyTotemFrame, "TOPLEFT")
|
||||
nameplate.gladdyTotemFrame.totemIcon:SetPoint("BOTTOMRIGHT", nameplate.gladdyTotemFrame, "BOTTOMRIGHT")
|
||||
@ -482,7 +451,7 @@ function TotemPlates:GetOptions()
|
||||
args = {
|
||||
header = {
|
||||
type = "header",
|
||||
name = L["Icon"],
|
||||
name = L["Font"],
|
||||
order = 1,
|
||||
},
|
||||
npTremorFont = Gladdy:option({
|
||||
|
@ -71,9 +71,11 @@ end
|
||||
|
||||
function Trinket:CreateFrame(unit)
|
||||
local trinket = CreateFrame("Button", "GladdyTrinketButton" .. unit, Gladdy.buttons[unit])
|
||||
trinket:EnableMouse(false)
|
||||
trinket.texture = trinket:CreateTexture(nil, "BACKGROUND")
|
||||
trinket.texture:SetAllPoints(trinket)
|
||||
trinket.texture:SetTexture("Interface\\Icons\\INV_Jewelry_TrinketPVP_02")
|
||||
trinket.texture:SetMask("Interface\\AddOns\\Gladdy\\Images\\mask")
|
||||
|
||||
trinket.cooldown = CreateFrame("Cooldown", nil, trinket, "CooldownFrameTemplate")
|
||||
trinket.cooldown.noCooldownCount = true --Gladdy.db.trinketDisableOmniCC
|
||||
@ -128,7 +130,7 @@ function Trinket:UpdateFrame(unit)
|
||||
trinket.texture.overlay:SetVertexColor(Gladdy.db.trinketBorderColor.r, Gladdy.db.trinketBorderColor.g, Gladdy.db.trinketBorderColor.b, Gladdy.db.trinketBorderColor.a)
|
||||
|
||||
trinket:ClearAllPoints()
|
||||
local margin = Gladdy.db.highlightBorderSize + Gladdy.db.padding
|
||||
local margin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) + Gladdy.db.padding
|
||||
if (Gladdy.db.classIconPos == "LEFT") then
|
||||
if (Gladdy.db.trinketPos == "RIGHT") then
|
||||
trinket:SetPoint("TOPLEFT", Gladdy.buttons[unit].healthBar, "TOPRIGHT", margin, 0)
|
||||
|
@ -34,12 +34,41 @@ function XiconProfiles:ApplyClassic()
|
||||
Gladdy:ToggleFrame(3)
|
||||
end
|
||||
|
||||
function XiconProfiles:ApplyBlizz()
|
||||
local deserialized = Gladdy.modules["ExportImport"]:Decode(Gladdy:GetBlizzardProfile())
|
||||
if deserialized then
|
||||
Gladdy.modules["ExportImport"]:ApplyImport(deserialized, Gladdy.db)
|
||||
end
|
||||
Gladdy:Reset()
|
||||
Gladdy:HideFrame()
|
||||
Gladdy:ToggleFrame(3)
|
||||
end
|
||||
|
||||
function XiconProfiles:GetOptions()
|
||||
return {
|
||||
headerProfileBlizzard = {
|
||||
type = "header",
|
||||
name = L["Blizzard Profile"],
|
||||
order = 2,
|
||||
},
|
||||
blizzardProfile = {
|
||||
type = "execute",
|
||||
func = function()
|
||||
Gladdy.dbi:ResetProfile(Gladdy.dbi:GetCurrentProfile())
|
||||
XiconProfiles:ApplyBlizz()
|
||||
end,
|
||||
name = " ",
|
||||
desc = "Blizzard Profile",
|
||||
image = "Interface\\AddOns\\Gladdy\\Images\\BasicProfiles\\Blizz1.blp",
|
||||
imageWidth = 350,
|
||||
imageHeight = 175,
|
||||
width = "full",
|
||||
order = 3,
|
||||
},
|
||||
headerProfileClassic = {
|
||||
type = "header",
|
||||
name = L["Classic Profile"],
|
||||
order = 2,
|
||||
order = 4,
|
||||
},
|
||||
classicProfile = {
|
||||
type = "execute",
|
||||
@ -50,15 +79,15 @@ function XiconProfiles:GetOptions()
|
||||
name = " ",
|
||||
desc = "Classic Profile",
|
||||
image = "Interface\\AddOns\\Gladdy\\Images\\BasicProfiles\\Classic1.blp",
|
||||
imageWidth = 256,
|
||||
imageHeight = 128,
|
||||
imageWidth = 350,
|
||||
imageHeight = 175,
|
||||
width = "full",
|
||||
order = 3,
|
||||
order = 5,
|
||||
},
|
||||
headerProfileKnall = {
|
||||
type = "header",
|
||||
name = L["Knall's Profile"],
|
||||
order = 4,
|
||||
order = 6,
|
||||
},
|
||||
knallProfile = {
|
||||
type = "execute",
|
||||
@ -69,15 +98,15 @@ function XiconProfiles:GetOptions()
|
||||
name = " ",
|
||||
desc = "Knall's Profile",
|
||||
image = "Interface\\AddOns\\Gladdy\\Images\\BasicProfiles\\Knall1.blp",
|
||||
imageWidth = 256,
|
||||
imageHeight = 128,
|
||||
imageWidth = 350,
|
||||
imageHeight = 175,
|
||||
width = "full",
|
||||
order = 5,
|
||||
order = 7,
|
||||
},
|
||||
headerProfileKlimp = {
|
||||
type = "header",
|
||||
name = L["Klimp's Profile"],
|
||||
order = 6,
|
||||
order = 8,
|
||||
},
|
||||
klimpProfiles = {
|
||||
type = "execute",
|
||||
@ -86,12 +115,13 @@ function XiconProfiles:GetOptions()
|
||||
XiconProfiles:ApplyKlimp()
|
||||
end,
|
||||
image = "Interface\\AddOns\\Gladdy\\Images\\BasicProfiles\\Klimp1.blp",
|
||||
imageWidth = 256,
|
||||
imageHeight = 128,
|
||||
imageWidth = 350,
|
||||
imageHeight = 175,
|
||||
name = " ",
|
||||
desc = "Klimp's Profile",
|
||||
width = "full",
|
||||
order = 7,
|
||||
order = 9,
|
||||
},
|
||||
|
||||
}
|
||||
end
|
228
Options.lua
228
Options.lua
@ -1,9 +1,10 @@
|
||||
local type, pairs, tinsert, tsort, tostring = type, pairs, table.insert, table.sort, tostring
|
||||
local type, pairs, tinsert, tsort, tostring, str_match, tonumber = type, pairs, table.insert, table.sort, tostring, string.match, tonumber
|
||||
|
||||
local InterfaceOptionsFrame_OpenToFrame = InterfaceOptionsFrame_OpenToFrame
|
||||
local GetSpellInfo = GetSpellInfo
|
||||
local LOCALIZED_CLASS_NAMES_MALE = LOCALIZED_CLASS_NAMES_MALE
|
||||
local CLASS_ICON_TCOORDS = CLASS_ICON_TCOORDS
|
||||
local AURA_TYPE_DEBUFF, AURA_TYPE_BUFF = AURA_TYPE_DEBUFF, AURA_TYPE_BUFF
|
||||
|
||||
local Gladdy = LibStub("Gladdy")
|
||||
local LibClassAuras = LibStub("LibClassAuras-1.0")
|
||||
@ -15,25 +16,24 @@ Gladdy.defaults = {
|
||||
x = 0,
|
||||
y = 0,
|
||||
growUp = false,
|
||||
growDirection = "BOTTOM",
|
||||
frameScale = 1,
|
||||
padding = 3,
|
||||
padding = 1,
|
||||
barWidth = 180,
|
||||
bottomMargin = 10,
|
||||
statusbarBorderOffset = 7,
|
||||
bottomMargin = 2,
|
||||
statusbarBorderOffset = 6,
|
||||
},
|
||||
}
|
||||
|
||||
SLASH_GLADDY1 = "/gladdy"
|
||||
SlashCmdList["GLADDY"] = function(msg)
|
||||
if (msg == "test2") then
|
||||
Gladdy:ToggleFrame(2)
|
||||
elseif (msg == "test5") then
|
||||
Gladdy:ToggleFrame(5)
|
||||
elseif (msg:find("test")) then
|
||||
if (str_match(msg, "test[1-5]")) then
|
||||
local _, num = str_match(msg, "(test)([1-5])")
|
||||
Gladdy:ToggleFrame(tonumber(num))
|
||||
elseif (msg == "test") then
|
||||
Gladdy:ToggleFrame(3)
|
||||
elseif (msg == "ui" or msg == "options" or msg == "config") then
|
||||
LibStub("AceConfigDialog-3.0"):Open("Gladdy")
|
||||
--Gladdy:ShowOptions()
|
||||
elseif (msg == "reset") then
|
||||
Gladdy.dbi:ResetProfile()
|
||||
elseif (msg == "hide") then
|
||||
@ -42,7 +42,8 @@ SlashCmdList["GLADDY"] = function(msg)
|
||||
else
|
||||
Gladdy:Print(L["Valid slash commands are:"])
|
||||
Gladdy:Print("/gladdy ui")
|
||||
Gladdy:Print("/gladdy test2-5")
|
||||
Gladdy:Print("/gladdy test")
|
||||
Gladdy:Print("/gladdy test1-5")
|
||||
Gladdy:Print("/gladdy hide")
|
||||
Gladdy:Print("/gladdy reset")
|
||||
end
|
||||
@ -193,10 +194,21 @@ function Gladdy:SetupOptions()
|
||||
desc = L["If enabled the frame will grow upwards instead of downwards"],
|
||||
order = 2,
|
||||
},
|
||||
growDirection = {
|
||||
type = "select",
|
||||
name = L["Grow Direction"],
|
||||
order = 3,
|
||||
values = {
|
||||
["BOTTOM"] = L["Down"],
|
||||
["TOP"] = L["Up"],
|
||||
["LEFT"] = L["Left"],
|
||||
["RIGHT"] = L["Right"],
|
||||
}
|
||||
},
|
||||
group = {
|
||||
type = "group",
|
||||
name = "General",
|
||||
order = 3,
|
||||
order = 4,
|
||||
childGroups = "tree",
|
||||
args = {
|
||||
frameGeneral = {
|
||||
@ -238,11 +250,11 @@ function Gladdy:SetupOptions()
|
||||
},
|
||||
bottomMargin = {
|
||||
type = "range",
|
||||
name = L["Bottom margin"],
|
||||
name = L["Margin"],
|
||||
desc = L["Margin between each button"],
|
||||
order = 7,
|
||||
min = -100,
|
||||
max = 100,
|
||||
min = -200,
|
||||
max = 200,
|
||||
step = 1,
|
||||
},
|
||||
}
|
||||
@ -267,7 +279,8 @@ function Gladdy:SetupOptions()
|
||||
local c = Gladdy.db.trinketDisableCircle
|
||||
local d = Gladdy.db.drDisableCircle
|
||||
local e = Gladdy.db.buffsDisableCircle
|
||||
if (a == b and a == c and a == d and a == e) then
|
||||
local f = Gladdy.db.racialDisableCircle
|
||||
if (a == b and a == c and a == d and a == e and a == f) then
|
||||
return a
|
||||
else
|
||||
return ""
|
||||
@ -279,6 +292,7 @@ function Gladdy:SetupOptions()
|
||||
Gladdy.db.trinketDisableCircle = value
|
||||
Gladdy.db.drDisableCircle = value
|
||||
Gladdy.db.buffsDisableCircle = value
|
||||
Gladdy.db.racialDisableCircle = value
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
width= "full",
|
||||
@ -296,7 +310,8 @@ function Gladdy:SetupOptions()
|
||||
local c = Gladdy.db.auraCooldownAlpha
|
||||
local d = Gladdy.db.trinketCooldownAlpha
|
||||
local e = Gladdy.db.buffsCooldownAlpha
|
||||
if (a == b and a == c and a == d and a == e) then
|
||||
local f = Gladdy.db.racialCooldownAlpha
|
||||
if (a == b and a == c and a == d and a == e and a == f) then
|
||||
return a
|
||||
else
|
||||
return ""
|
||||
@ -308,6 +323,7 @@ function Gladdy:SetupOptions()
|
||||
Gladdy.db.auraCooldownAlpha = value
|
||||
Gladdy.db.trinketCooldownAlpha = value
|
||||
Gladdy.db.buffsCooldownAlpha = value
|
||||
Gladdy.db.racialCooldownAlpha = value
|
||||
Gladdy:UpdateFrame()
|
||||
end
|
||||
},
|
||||
@ -331,33 +347,42 @@ function Gladdy:SetupOptions()
|
||||
dialogControl = "LSM30_Font",
|
||||
values = AceGUIWidgetLSMlists.font,
|
||||
get = function(info)
|
||||
local a = Gladdy.db.castBarFont
|
||||
local b = Gladdy.db.healthBarFont
|
||||
local c = Gladdy.db.powerBarFont
|
||||
local a = Gladdy.db.auraFont
|
||||
local b = Gladdy.db.buffsFont
|
||||
local c = Gladdy.db.castBarFont
|
||||
local d = Gladdy.db.cooldownFont
|
||||
local e = Gladdy.db.drFont
|
||||
local f = Gladdy.db.auraFont
|
||||
local g = Gladdy.db.buffsFont
|
||||
if (a == b and a == c and a == d and a == e and a == f and a == g) then
|
||||
local f = Gladdy.db.healthBarFont
|
||||
local g = Gladdy.db.petHealthBarFont
|
||||
local h = Gladdy.db.powerBarFont
|
||||
local i = Gladdy.db.racialFont
|
||||
local j = Gladdy.db.npTremorFont
|
||||
local k = Gladdy.db.trinketFont
|
||||
if (a == b and a == c and a == d and a == e and a == f
|
||||
and a == g and a == h and a == i and a == j and a == k) then
|
||||
return a
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end,
|
||||
set = function(info, value)
|
||||
Gladdy.db.castBarFont = value
|
||||
Gladdy.db.healthBarFont = value
|
||||
Gladdy.db.powerBarFont = value
|
||||
Gladdy.db.cooldownFont = value
|
||||
Gladdy.db.drFont = value
|
||||
Gladdy.db.auraFont = value
|
||||
Gladdy.db.buffsFont = value
|
||||
Gladdy.db.castBarFont = value
|
||||
Gladdy.db.cooldownFont = value
|
||||
Gladdy.db.drFont = value
|
||||
Gladdy.db.healthBarFont = value
|
||||
Gladdy.db.petHealthBarFont = value
|
||||
Gladdy.db.powerBarFont = value
|
||||
Gladdy.db.racialFont = value
|
||||
Gladdy.db.npTremorFont = value
|
||||
Gladdy.db.trinketFont = value
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
},
|
||||
fontColor = {
|
||||
type = "color",
|
||||
name = L["Font color"],
|
||||
name = L["Font color text"],
|
||||
desc = L["Color of the text"],
|
||||
order = 12,
|
||||
hasAlpha = true,
|
||||
@ -365,8 +390,10 @@ function Gladdy:SetupOptions()
|
||||
local a = Gladdy.db.healthBarFontColor
|
||||
local b = Gladdy.db.powerBarFontColor
|
||||
local c = Gladdy.db.castBarFontColor
|
||||
local d = Gladdy.db.petHealthBarFontColor
|
||||
if (a.r == b.r and a.g == b.g and a.b == b.b and a.a == b.a
|
||||
and a.r == c.r and a.g == c.g and a.b == c.b and a.a == c.a) then
|
||||
and a.r == c.r and a.g == c.g and a.b == c.b and a.a == c.a
|
||||
and a.r == d.r and a.g == d.g and a.b == d.b and a.a == d.a) then
|
||||
return a.r, a.g, a.b, a.a
|
||||
else
|
||||
return { r = 0, g = 0, b = 0, a = 0 }
|
||||
@ -377,6 +404,35 @@ function Gladdy:SetupOptions()
|
||||
Gladdy.db.healthBarFontColor = rgb
|
||||
Gladdy.db.powerBarFontColor = rgb
|
||||
Gladdy.db.castBarFontColor = rgb
|
||||
Gladdy.db.petHealthBarFontColor = rgb
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
},
|
||||
fontColorCD = {
|
||||
type = "color",
|
||||
name = L["Font color timer"],
|
||||
desc = L["Color of the timers"],
|
||||
order = 12,
|
||||
hasAlpha = true,
|
||||
get = function(info)
|
||||
local a = Gladdy.db.auraFontColor
|
||||
local b = Gladdy.db.buffsFontColor
|
||||
local c = Gladdy.db.cooldownFontColor
|
||||
local d = Gladdy.db.drFontColor
|
||||
if (a.r == b.r and a.g == b.g and a.b == b.b and a.a == b.a
|
||||
and a.r == c.r and a.g == c.g and a.b == c.b and a.a == c.a
|
||||
and a.r == d.r and a.g == d.g and a.b == d.b and a.a == d.a) then
|
||||
return a.r, a.g, a.b, a.a
|
||||
else
|
||||
return { r = 0, g = 0, b = 0, a = 0 }
|
||||
end
|
||||
end,
|
||||
set = function(info, r, g, b, a)
|
||||
local rgb = {r = r, g = g, b = b, a = a}
|
||||
Gladdy.db.auraFontColor = rgb
|
||||
Gladdy.db.buffsFontColor = rgb
|
||||
Gladdy.db.cooldownFontColor = rgb
|
||||
Gladdy.db.drFontColor = rgb
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
},
|
||||
@ -399,27 +455,34 @@ function Gladdy:SetupOptions()
|
||||
order = 14,
|
||||
values = Gladdy:GetIconStyles(),
|
||||
get = function(info)
|
||||
if (Gladdy.db.classIconBorderStyle == Gladdy.db.trinketBorderStyle
|
||||
and Gladdy.db.classIconBorderStyle == Gladdy.db.castBarIconStyle
|
||||
and Gladdy.db.classIconBorderStyle == Gladdy.db.auraBorderStyle
|
||||
and Gladdy.db.classIconBorderStyle == Gladdy.db.cooldownBorderStyle
|
||||
and Gladdy.db.classIconBorderStyle == Gladdy.db.buffsBorderStyle
|
||||
and Gladdy.db.classIconBorderStyle == Gladdy.db.drBorderStyle
|
||||
and Gladdy.db.classIconBorderStyle == Gladdy.db.npTotemPlatesBorderStyle) then
|
||||
return Gladdy.db.classIconBorderStyle
|
||||
if (Gladdy.db.auraBorderStyle == Gladdy.db.buffsBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.castBarIconStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.classIconBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.cooldownBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.ciBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.cooldownBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.drBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.racialBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.npTotemPlatesBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.petPortraitBorderStyle
|
||||
and Gladdy.db.auraBorderStyle == Gladdy.db.trinketBorderStyle) then
|
||||
return Gladdy.db.auraBorderStyle
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end,
|
||||
set = function(info, value)
|
||||
Gladdy.db.classIconBorderStyle = value
|
||||
Gladdy.db.trinketBorderStyle = value
|
||||
Gladdy.db.castBarIconStyle = value
|
||||
Gladdy.db.auraBorderStyle = value
|
||||
Gladdy.db.npTotemPlatesBorderStyle = value
|
||||
Gladdy.db.cooldownBorderStyle = value
|
||||
Gladdy.db.buffsBorderStyle = value
|
||||
Gladdy.db.castBarIconStyle = value
|
||||
Gladdy.db.classIconBorderStyle = value
|
||||
Gladdy.db.ciBorderStyle = value
|
||||
Gladdy.db.cooldownBorderStyle = value
|
||||
Gladdy.db.drBorderStyle = value
|
||||
Gladdy.db.racialBorderStyle = value
|
||||
Gladdy.db.npTotemPlatesBorderStyle = value
|
||||
Gladdy.db.petPortraitBorderStyle = value
|
||||
Gladdy.db.trinketBorderStyle = value
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
},
|
||||
@ -430,11 +493,25 @@ function Gladdy:SetupOptions()
|
||||
order = 15,
|
||||
hasAlpha = true,
|
||||
get = function(info)
|
||||
local a = Gladdy.db.classIconBorderColor
|
||||
local b = Gladdy.db.trinketBorderColor
|
||||
local c = Gladdy.db.castBarIconColor
|
||||
local a = Gladdy.db.auraBuffBorderColor
|
||||
local b = Gladdy.db.auraDebuffBorderColor
|
||||
local c = Gladdy.db.buffsBorderColor
|
||||
local d = Gladdy.db.castBarIconColor
|
||||
local e = Gladdy.db.classIconBorderColor
|
||||
local f = Gladdy.db.ciBorderColor
|
||||
local g = Gladdy.db.cooldownBorderColor
|
||||
local h = Gladdy.db.drBorderColor
|
||||
local i = Gladdy.db.trinketBorderColor
|
||||
local j = Gladdy.db.racialBorderColor
|
||||
if (a.r == b.r and a.g == b.g and a.b == b.b and a.a == b.a
|
||||
and a.r == c.r and a.g == c.g and a.b == c.b and a.a == c.a) then
|
||||
and a.r == c.r and a.g == c.g and a.b == c.b and a.a == c.a
|
||||
and a.r == d.r and a.g == d.g and a.b == d.b and a.a == d.a
|
||||
and a.r == e.r and a.g == e.g and a.b == e.b and a.a == e.a
|
||||
and a.r == f.r and a.g == f.g and a.b == f.b and a.a == f.a
|
||||
and a.r == g.r and a.g == g.g and a.b == g.b and a.a == g.a
|
||||
and a.r == h.r and a.g == h.g and a.b == h.b and a.a == h.a
|
||||
and a.r == i.r and a.g == i.g and a.b == i.b and a.a == i.a
|
||||
and a.r == j.r and a.g == j.g and a.b == j.b and a.a == j.a) then
|
||||
return a.r, a.g, a.b, a.a
|
||||
else
|
||||
return { r = 0, g = 0, b = 0, a = 0 }
|
||||
@ -442,13 +519,16 @@ function Gladdy:SetupOptions()
|
||||
end,
|
||||
set = function(info, r, g, b, a)
|
||||
local rgb = {r = r, g = g, b = b, a = a}
|
||||
Gladdy.db.classIconBorderColor = rgb
|
||||
Gladdy.db.trinketBorderColor = rgb
|
||||
Gladdy.db.castBarIconColor = rgb
|
||||
Gladdy.db.npTotemPlatesBorderColor = rgb
|
||||
Gladdy.db.drBorderColor = rgb
|
||||
Gladdy.db.cooldownBorderColor = rgb
|
||||
Gladdy.db.auraBuffBorderColor = rgb
|
||||
Gladdy.db.auraDebuffBorderColor = rgb
|
||||
Gladdy.db.buffsBorderColor = rgb
|
||||
Gladdy.db.castBarIconColor = rgb
|
||||
Gladdy.db.classIconBorderColor = rgb
|
||||
Gladdy.db.ciBorderColor = rgb
|
||||
Gladdy.db.cooldownBorderColor = rgb
|
||||
Gladdy.db.drBorderColor = rgb
|
||||
Gladdy.db.trinketBorderColor = rgb
|
||||
Gladdy.db.racialBorderColor = rgb
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
},
|
||||
@ -475,7 +555,8 @@ function Gladdy:SetupOptions()
|
||||
local a = Gladdy.db.healthBarTexture
|
||||
local b = Gladdy.db.powerBarTexture
|
||||
local c = Gladdy.db.castBarTexture
|
||||
if (a == b and a == c) then
|
||||
local d = Gladdy.db.petHealthBarTexture
|
||||
if (a == b and a == c and a == d) then
|
||||
return a
|
||||
else
|
||||
return ""
|
||||
@ -485,6 +566,7 @@ function Gladdy:SetupOptions()
|
||||
Gladdy.db.healthBarTexture = value
|
||||
Gladdy.db.powerBarTexture = value
|
||||
Gladdy.db.castBarTexture = value
|
||||
Gladdy.db.petHealthBarTexture = value
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
width= "full",
|
||||
@ -500,7 +582,8 @@ function Gladdy:SetupOptions()
|
||||
local a = Gladdy.db.healthBarBorderStyle
|
||||
local b = Gladdy.db.powerBarBorderStyle
|
||||
local c = Gladdy.db.castBarBorderStyle
|
||||
if (a == b and a == c) then
|
||||
local d = Gladdy.db.petHealthBarBorderStyle
|
||||
if (a == b and a == c and a == d) then
|
||||
return a
|
||||
else
|
||||
return ""
|
||||
@ -510,6 +593,7 @@ function Gladdy:SetupOptions()
|
||||
Gladdy.db.healthBarBorderStyle = value
|
||||
Gladdy.db.powerBarBorderStyle = value
|
||||
Gladdy.db.castBarBorderStyle = value
|
||||
Gladdy.db.petHealthBarBorderStyle = value
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
},
|
||||
@ -531,8 +615,10 @@ function Gladdy:SetupOptions()
|
||||
local a = Gladdy.db.castBarBorderColor
|
||||
local b = Gladdy.db.healthBarBorderColor
|
||||
local c = Gladdy.db.powerBarBorderColor
|
||||
local d = Gladdy.db.petHealthBarBorderColor
|
||||
if (a.r == b.r and a.g == b.g and a.b == b.b and a.a == b.a
|
||||
and a.r == c.r and a.g == c.g and a.b == c.b and a.a == c.a) then
|
||||
and a.r == c.r and a.g == c.g and a.b == c.b and a.a == c.a
|
||||
and a.r == d.r and a.g == d.g and a.b == d.b and a.a == d.a) then
|
||||
return a.r, a.g, a.b, a.a
|
||||
else
|
||||
return { r = 0, g = 0, b = 0, a = 0 }
|
||||
@ -543,6 +629,7 @@ function Gladdy:SetupOptions()
|
||||
Gladdy.db.castBarBorderColor = rgb
|
||||
Gladdy.db.healthBarBorderColor = rgb
|
||||
Gladdy.db.powerBarBorderColor = rgb
|
||||
Gladdy.db.petHealthBarBorderColor = rgb
|
||||
Gladdy:UpdateFrame()
|
||||
end,
|
||||
},
|
||||
@ -597,8 +684,14 @@ function Gladdy:GetAuras(auraType)
|
||||
name = "Check All",
|
||||
type = "execute",
|
||||
func = function(info)
|
||||
for k,v in pairs(Gladdy.dbi.profile.trackedDebuffs) do
|
||||
Gladdy.dbi.profile.trackedDebuffs[k] = true
|
||||
if auraType == AURA_TYPE_DEBUFF then
|
||||
for k,v in pairs(Gladdy.defaults.profile.trackedDebuffs) do
|
||||
Gladdy.dbi.profile.trackedDebuffs[k] = true
|
||||
end
|
||||
else
|
||||
for k,v in pairs(Gladdy.defaults.profile.trackedBuffs) do
|
||||
Gladdy.dbi.profile.trackedBuffs[k] = true
|
||||
end
|
||||
end
|
||||
end,
|
||||
},
|
||||
@ -608,8 +701,14 @@ function Gladdy:GetAuras(auraType)
|
||||
name = "Uncheck All",
|
||||
type = "execute",
|
||||
func = function(info)
|
||||
for k,v in pairs(Gladdy.dbi.profile.trackedDebuffs) do
|
||||
Gladdy.dbi.profile.trackedDebuffs[k] = false
|
||||
if auraType == AURA_TYPE_DEBUFF then
|
||||
for k,v in pairs(Gladdy.defaults.profile.trackedDebuffs) do
|
||||
Gladdy.dbi.profile.trackedDebuffs[k] = false
|
||||
end
|
||||
else
|
||||
for k,v in pairs(Gladdy.defaults.profile.trackedBuffs) do
|
||||
Gladdy.dbi.profile.trackedBuffs[k] = false
|
||||
end
|
||||
end
|
||||
end,
|
||||
},
|
||||
@ -689,13 +788,12 @@ function Gladdy:GetAuras(auraType)
|
||||
local defaultDebuffs = {}
|
||||
local assignForClass = function(class)
|
||||
local args = {}
|
||||
local classSpells = auraType == "debuff" and LibClassAuras.GetClassDebuffs(class) or LibClassAuras.GetClassBuffs(class)
|
||||
local classSpells = auraType == AURA_TYPE_DEBUFF and LibClassAuras.GetClassDebuffs(class) or LibClassAuras.GetClassBuffs(class)
|
||||
table.sort(classSpells, function(a, b)
|
||||
return a.name:upper() < b.name:upper()
|
||||
end)
|
||||
for i=1, #classSpells do
|
||||
local spellName, _, texture = GetSpellInfo(classSpells[i].id[#classSpells[i].id])
|
||||
--spellName = (classSpells[i].id[#classSpells[i].id] == 31117 or classSpells[i].id[#classSpells[i].id] == 43523) and "Unstable Affliction Silence" or spellName
|
||||
local _, _, texture = GetSpellInfo(classSpells[i].id[#classSpells[i].id])
|
||||
if classSpells[i].texture then
|
||||
texture = classSpells[i].texture
|
||||
end
|
||||
@ -704,8 +802,8 @@ function Gladdy:GetAuras(auraType)
|
||||
name = classSpells[i].name,
|
||||
type = "toggle",
|
||||
image = texture,
|
||||
width = "2",
|
||||
arg = classSpells[i].name
|
||||
width = "full",
|
||||
arg = tostring(classSpells[i].id[1])
|
||||
}
|
||||
defaultDebuffs[tostring(classSpells[i].id[1])] = true
|
||||
end
|
||||
|
35
README.md
35
README.md
@ -1,7 +1,7 @@
|
||||
# Gladdy - TBC
|
||||
|
||||
### The most powerful arena addon for WoW TBC 2.5.1
|
||||
## [v1.0.5-Beta Download Here](https://github.com/XiconQoo/Gladdy-TBC/releases/download/v1.0.5-Beta/Gladdy_TBC-Classic_v1.0.5-Beta.zip)
|
||||
## [v1.09-Beta Download Here](https://github.com/XiconQoo/Gladdy-TBC/releases/download/v1.09-Beta/Gladdy_TBC-Classic_v1.09-Beta.zip)
|
||||
|
||||
###### <a target="_blank" rel="noopener noreferrer" href="https://www.paypal.me/xiconqoo/10"><img src="https://raw.githubusercontent.com/XiconQoo/Gladdy/readme-media/Paypal-Donate.png" height="30" style="margin-top:-30px;position:relative;top:20px;"></a> Please consider donating if you like my work
|
||||
|
||||
@ -17,11 +17,15 @@ The goal is to make Gladdy highly configurable in it's appearance. Everything ca
|
||||
- Announcement (drink, trinket usage, spec detection ...)
|
||||
- ArenaCountDown
|
||||
- Auras (show important (de)buffs in the class icon)
|
||||
- BuffsDebuffs (show buffs and debuffs on arena frames - can be filtered)
|
||||
- ClassIcon (or specicon, once detected)
|
||||
- CombatIndicator
|
||||
- Cooldown (tracks important cooldowns)
|
||||
- Diminishing (tracks DRs)
|
||||
- ExportImport (share your profile with your friends in the form of a string, which can be imported)
|
||||
- Highlight (highlights focus and target)
|
||||
- Pets (show arena pets)
|
||||
- Racial Spells
|
||||
- TotemPlates (show totem icons instead of normal nameplates)
|
||||
- Trinket (tracks trinket usage)
|
||||
- VersionCheck (checks if you use an older version that your teammate)
|
||||
@ -35,6 +39,35 @@ The goal is to make Gladdy highly configurable in it's appearance. Everything ca
|
||||
|
||||
### Changes
|
||||
|
||||
#### v1.09-Beta
|
||||
- fix Blizzard profile not having all modules preconfigured
|
||||
|
||||
#### v1.08-Beta
|
||||
- fix Buffs not showing on class icon
|
||||
- added option highlight to be inside
|
||||
- added option to grow frames vertically
|
||||
- added new profile to XiconProfile (Blizzard raid style)
|
||||
- minor bugfixes
|
||||
|
||||
#### v1.07-Beta
|
||||
|
||||
- CombatIndicator module added
|
||||
- spec icon option added to Classicon module
|
||||
- arena1-5 for name option added
|
||||
- add a couple buffs to LibClassAuras
|
||||
- add blessing of sacrifice and intervene to auras
|
||||
- general options updated to apply font/borders/etc for all frames
|
||||
- XiconProfiles updated
|
||||
- /gladdy test1-5 now possible
|
||||
- fix PowerBar text updates
|
||||
- click through frames exept health/power bar
|
||||
- add mask texture for icons
|
||||
|
||||
#### v1.06-Beta
|
||||
- fixed BuffsDebuff module
|
||||
- fix racial texture reset
|
||||
- minor bugfixes
|
||||
|
||||
#### v1.0.5-Beta
|
||||
- fixed Aura-Module
|
||||
- Racial module added to EventListener and Version check updated
|
||||
|
Reference in New Issue
Block a user