61 lines
2.2 KiB
Lua
61 lines
2.2 KiB
Lua
|
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||
|
local UF = E:GetModule('UnitFrames')
|
||
|
local LSM = E.Libs.LSM
|
||
|
|
||
|
local unpack = unpack
|
||
|
local CreateFrame = CreateFrame
|
||
|
|
||
|
function UF:Construct_RaidDebuffs(frame)
|
||
|
local debuff = CreateFrame('Frame', nil, frame.RaisedElementParent, 'BackdropTemplate')
|
||
|
debuff:SetTemplate(nil, nil, nil, nil, true)
|
||
|
debuff:SetFrameLevel(frame.RaisedElementParent:GetFrameLevel() + 20) --Make them appear above regular buffs or debuffs
|
||
|
|
||
|
debuff.icon = debuff:CreateTexture(nil, 'OVERLAY')
|
||
|
debuff.icon:SetInside(debuff, UF.BORDER, UF.BORDER)
|
||
|
|
||
|
debuff.count = debuff:CreateFontString(nil, 'OVERLAY')
|
||
|
debuff.count:FontTemplate(nil, 10, 'OUTLINE')
|
||
|
debuff.count:Point('BOTTOMRIGHT', 0, 2)
|
||
|
debuff.count:SetTextColor(1, .9, 0)
|
||
|
|
||
|
debuff.time = debuff:CreateFontString(nil, 'OVERLAY')
|
||
|
debuff.time:FontTemplate(nil, 10, 'OUTLINE')
|
||
|
debuff.time:Point('CENTER')
|
||
|
debuff.time:SetTextColor(1, .9, 0)
|
||
|
|
||
|
return debuff
|
||
|
end
|
||
|
|
||
|
function UF:Configure_RaidDebuffs(frame)
|
||
|
local debuff = frame.RaidDebuffs
|
||
|
local db = frame.db.rdebuffs
|
||
|
|
||
|
if db.enable then
|
||
|
if not frame:IsElementEnabled('RaidDebuffs') then
|
||
|
frame:EnableElement('RaidDebuffs')
|
||
|
end
|
||
|
|
||
|
debuff.showDispellableDebuff = db.showDispellableDebuff
|
||
|
debuff.onlyMatchSpellID = db.onlyMatchSpellID
|
||
|
debuff.forceShow = frame.forceShowAuras
|
||
|
debuff.icon:SetTexCoord(unpack(E.TexCoords))
|
||
|
debuff:Point('BOTTOM', frame, 'BOTTOM', db.xOffset, db.yOffset + UF.SPACING)
|
||
|
debuff:Size(db.size)
|
||
|
|
||
|
local font = LSM:Fetch('font', db.font)
|
||
|
local stackColor = db.stack.color
|
||
|
debuff.count:FontTemplate(font, db.fontSize, db.fontOutline)
|
||
|
debuff.count:ClearAllPoints()
|
||
|
debuff.count:Point(db.stack.position, db.stack.xOffset, db.stack.yOffset)
|
||
|
debuff.count:SetTextColor(stackColor.r, stackColor.g, stackColor.b, stackColor.a)
|
||
|
|
||
|
local durationColor = db.duration.color
|
||
|
debuff.time:FontTemplate(font, db.fontSize, db.fontOutline)
|
||
|
debuff.time:ClearAllPoints()
|
||
|
debuff.time:Point(db.duration.position, db.duration.xOffset, db.duration.yOffset)
|
||
|
debuff.time:SetTextColor(durationColor.r, durationColor.g, durationColor.b, durationColor.a)
|
||
|
elseif frame:IsElementEnabled('RaidDebuffs') then
|
||
|
frame:DisableElement('RaidDebuffs')
|
||
|
end
|
||
|
end
|