Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local addon, ns = ...
- local cfg = ns.cfg
- local tags = ns.tags
- local _, playerClass = UnitClass('player')
- local _, class = UnitClass('player')
- local blankTex = "Interface\\Buttons\\WHITE8x8"
- local backdrop = {edgeFile = blankTex, edgeSize = 1}
- local backdrop2 = {bgFile = blankTex}
- --backdrop3 = {bgFile = blankTex, edgeFile = blankTex, edgeSize = 1, insets = { left = -1, right = -1, top = -1, bottom = -1}}
- local backdrop3 = {bgFile = blankTex, insets = { left = -1, right = -1, top = -1, bottom = -1}}
- -- change some colors
- local colors = setmetatable({
- power = setmetatable({
- ["MANA"] = {0.36, 0.45, 0.88},
- ["RAGE"] = {0.8, 0.21, 0.31},
- ["FUEL"] = {0, 0.55, 0.5},
- ["FOCUS"] = {0.71, 0.43, 0.27},
- ["ENERGY"] = {0.85, 0.83, 0.35},
- ["AMMOSLOT"] = {0.8, 0.6, 0},
- ["RUNIC_POWER"] = {0, 0.82, 1},
- ["POWER_TYPE_STEAM"] = {0.55, 0.57, 0.61},
- ["POWER_TYPE_PYRITE"] = {0.60, 0.09, 0.17},
- }, {__index = oUF.colors.power}),
- }, {__index = oUF.colors})
- -- format numbers
- function round(num, idp)
- if idp and idp > 0 then
- local mult = 10^idp
- return math.floor(num * mult + 0.5) / mult
- end
- return math.floor(num + 0.5)
- end
- function CoolNumber(num)
- if(num >= 1e6) then
- return round(num/1e6,cfg.Numberzzz).."m"
- elseif(num >= 1e3) then
- return round(num/1e3,cfg.Numberzzz).."k"
- else
- return num
- end
- end
- fs = function(parent, layer, font, fontsiz, outline, r, g, b, justify)
- local string = parent:CreateFontString(nil, layer)
- string:SetFont(font, fontsiz, outline)
- string:SetShadowOffset(0, 0)
- string:SetTextColor(r, g, b)
- if justify then
- string:SetJustifyH(justify)
- end
- return string
- end
- framebd = function(parent, anchor)
- local frame = CreateFrame('Frame', nil, parent)
- frame:SetFrameStrata('BACKGROUND')
- frame:SetPoint('TOPLEFT', anchor, 'TOPLEFT', -4, 4)
- frame:SetPoint('BOTTOMRIGHT', anchor, 'BOTTOMRIGHT', 4, -4)
- frame:SetBackdrop({
- -- edgeFile = 'Interface\\AddOns\\Media\\glowTex', edgeSize = 5,
- bgFile = [=[Interface\ChatFrame\ChatFrameBackground]=],
- insets = {left = 3, right = 3, top = 3, bottom = 3}})
- frame:SetBackdropColor(.05, .05, .05)
- frame:SetBackdropBorderColor(0, 0, 0)
- return frame
- end
- local fixStatusbar = function(bar)
- bar:GetStatusBarTexture():SetHorizTile(false)
- bar:GetStatusBarTexture():SetVertTile(false)
- end
- createStatusbar = function(parent, tex, layer, height, width, r, g, b, alpha)
- local bar = CreateFrame'StatusBar'
- bar:SetParent(parent)
- if height then
- bar:SetHeight(height)
- end
- if width then
- bar:SetWidth(width)
- end
- bar:SetStatusBarTexture(tex, layer)
- bar:SetStatusBarColor(r, g, b, alpha)
- fixStatusbar(bar)
- return bar
- end
- -- health update
- local PostUpdateHealth = function(Health, unit, min, max)
- local self = Health:GetParent()
- local d =(round(min/max, 2)*100)
- local c = UnitClassification(unit)
- if(UnitIsDead(unit)) then
- Health:SetValue(0)
- Health.value:SetText"RIP"
- elseif(UnitIsGhost(unit)) then
- Health:SetValue(0)
- Health.value:SetText"GHO"
- elseif(not UnitIsConnected(unit)) then
- Health.value:SetText"OFF"
- --elseif(UnitIsTapped(unit) and not UnitIsTappedByPlayer(unit)) then
- --Health.value:SetText"TPD"
- else
- Health.value:SetText(CoolNumber(min))
- end
- -- set text color
- if(unit) then
- if(d <= 35 and d >= 25) then
- Health.value:SetTextColor(253/255, 238/255, 80/255)
- elseif(d < 25 and d >= 20) then
- Health.value:SetTextColor(250/255, 130/255, 0/255)
- elseif(d < 20) then
- Health.value:SetTextColor(200/255, 20/255, 40/255)
- else
- Health.value:SetTextColor(unpack(cfg.sndcolor))
- end
- end
- end
- -- health update transparency mode
- local PostUpdateHealthTM = function(Health, unit, min, max)
- local self = Health:GetParent()
- local d =(round(min/max, 2)*100)
- local c = UnitClassification(unit)
- local HPheight = Health:GetHeight()
- self.Health.bg:SetPoint('LEFT', Health:GetStatusBarTexture(), 'RIGHT')
- self.Health.bg:SetHeight(HPheight)
- --[[local htext = fs(self.Health, 'OVERLAY', cfg.NameFont, 8, cfg.FontF, 1, 1, 1)
- htext:SetPoint('RIGHT', -2, 0)
- htext.frequentUpdates = .1
- self:Tag(htext, '[player:hp]')
- ]]--
- if(UnitIsDead(unit)) then
- Health.value:SetText"RIP"
- elseif(UnitIsGhost(unit)) then
- Health.value:SetText"GHO"
- elseif(not UnitIsConnected(unit)) then
- Health.value:SetText"OFF"
- elseif(UnitIsTapped(unit) and not UnitIsTappedByPlayer(unit)) then
- Health.value:SetText"TPD"
- elseif(c == 'worldboss') then
- Health.value:SetText(CoolNumber(min).." "..(round(min/max, 2)*100))
- else
- Health.value:SetText(CoolNumber(min))
- end
- -- set health background color
- if not cfg.solidHPBGcolor then
- local _, class = UnitClass(unit)
- local color = CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS[class] or RAID_CLASS_COLORS[class]
- if UnitIsPlayer(unit) and color then
- self.Health.bg:SetVertexColor(color.r, color.g, color.b, 0.9)
- else
- local r, g, b = UnitSelectionColor(unit)
- self.Health.bg:SetVertexColor(r, g, b, 0.9)
- end
- if UnitLevel(unit) == 0 then
- self.Health.bg:SetVertexColor(0, 0, 0, 0.5)
- elseif UnitIsConnected(unit) ~= 1 then
- self.Health.bg:SetVertexColor(0, 0, 0, 0.5)
- elseif UnitIsDeadOrGhost(unit) == 1 then
- self.Health.bg:SetVertexColor(200/255, 20/255, 40/255, 0.5)
- end
- else
- if UnitIsDeadOrGhost(unit) == 1 then
- self.Health.bg:SetVertexColor(200/255, 20/255, 40/255, 0.5)
- else
- hpBGr, hpBGg, hpBGb = unpack(cfg.hpBGcolor)
- self.Health.bg:SetVertexColor(hpBGr, hpBGg, hpBGb, 1)
- end
- end
- -- set text color
- if(unit) then
- if(d <= 35 and d >= 25) then
- Health.value:SetTextColor(253/255, 238/255, 80/255)
- elseif(d < 25 and d >= 20) then
- Health.value:SetTextColor(250/255, 130/255, 0/255)
- elseif(d < 20) then
- Health.value:SetTextColor(200/255, 20/255, 40/255)
- else
- Health.value:SetTextColor(unpack(cfg.sndcolor))
- end
- end
- end
- -- power update
- local PostUpdatePower = function(Power, unit, min, max)
- local dp =(round(min/max, 2)*100)
- if(min == 0 or max == 0 or not UnitIsConnected(unit)) then
- Power.value:SetText()
- Power:SetValue(0)
- elseif(UnitIsDead(unit) or UnitIsGhost(unit)) then
- Power:SetValue(0)
- Power.value:SetText()
- elseif(unit == "player") then
- if(dp < 100) then
- Power.value:Show()
- Power.value:SetText(CoolNumber(min))
- else
- Power.value:Hide()
- end
- else
- Power.value:SetText(CoolNumber(min))
- end
- -- color power text by power type
- local _, ptype = UnitPowerType(unit)
- if(colors.power[ptype]) then
- r, g, b = unpack(colors.power[ptype])
- end
- Power.value:SetTextColor(r, g, b)
- end
- local PostUpdatePowerRaid = function(Power, unit)
- local powertype, _ = UnitPowerType(unit)
- --if powertype ~= SPELL_POWER_MANA then
- -- Power:Hide()
- --else
- Power:Show()
- end
- -- custom castbar text (curCastTime/maxCastTime)
- local function CustomTimeText(self, duration)
- if self.casting then
- self.Time:SetFormattedText('%.2f /', (self.max - duration))
- self.Time2:SetFormattedText(' %.2f', self.max)
- elseif self.channeling then
- self.Time:SetFormattedText('%.2f /', duration)
- self.Time2:SetFormattedText(' %.2f', self.max)
- end
- end
- --------------------
- -- aura functions --
- --------------------
- -- filter some crap
- local Whitelist = RaidDebuffs
- local CustomFilter = function(icons, unit, icon, name, rank, texture, count, dtype, duration, timeLeft, caster, isStealable, shouldConsolidate, spellID)
- if(spellID) then
- return true
- end
- end
- --[[local CustomFilter = function(icons, ...)
- local _, icon, name, _, _, _, _, _, _, caster = ...
- local isPlayer
- if (caster == 'player' or caster == 'vechicle') then
- isPlayer = true
- end
- if((icons.onlyShowPlayer and isPlayer) or (not icons.onlyShowPlayer and name)) then
- icon.isPlayer = isPlayer
- icon.owner = caster
- return true
- end
- end]]--
- -- format time
- local FormatTime = function(s)
- local day, hour, minute = 86400, 3600, 60
- if s >= day then
- return format("%dd", floor(s/day + 0.5)), s % day
- elseif s >= hour then
- return format("%dh", floor(s/hour + 0.5)), s % hour
- elseif s >= minute then
- if s <= minute * 5 then
- return format('%d:%02d', floor(s/60), s % minute), s - floor(s)
- end
- return format("%dm", floor(s/minute + 0.5)), s % minute
- elseif s >= minute / 12 then
- return floor(s + 0.5), (s * 100 - floor(s * 100))/100
- end
- return format("%d", s), (s * 100 - floor(s * 100))/100
- end
- -- aura timer
- local CreateAuraTimer = function(self, elapsed)
- self.elapsed = (self.elapsed or 0) + elapsed
- if self.elapsed >= 0.1 then
- if not self.first then
- self.timeLeft = self.timeLeft - self.elapsed
- else
- self.timeLeft = self.timeLeft - GetTime()
- self.first = false
- end
- if self.timeLeft > 0 then
- local time = FormatTime(self.timeLeft)
- self.time:SetText(time)
- if self.timeLeft < 5 then
- self.time:SetTextColor(1, 1, 1)
- --elseif self.timeLeft >= 5 and self.timeLeft < cfg.HideAuraTimer then
- -- self.time:SetTextColor(unpack(cfg.sndcolor))
- ---else
- -- self.time:SetText('')
- -- self.time:SetTextColor(unpack(cfg.sndcolor))
- else
- self.time:SetTextColor(1, 1, 1)
- end
- --else
- --self.time:Hide()
- end
- self.elapsed = 0
- end
- end
- -- icon style
- local PostCreateIcon = function(Auras, button)
- local buttonwidth = button:GetWidth()
- button.cd.noOCC = true -- hide OmniCC CDs
- button.cd.noCooldownCount = true -- hide CDC CDs
- Auras.disableCooldown = true -- hide CD spiral
- Auras.showDebuffType = false -- show debuff border type color
- button.overlay:SetTexture("Interface\\Addons\\rActionButtonStyler\\media\\flash")
- button.overlay:SetPoint("TOPLEFT", button.icon, "TOPLEFT", -2, 2)
- button.overlay:SetPoint("BOTTOMRIGHT", button.icon, "BOTTOMRIGHT", 2, -2)
- button.overlay:SetTexCoord(0, 1, 0, 1)
- button.overlay.Hide = function(self) self:SetVertexColor(unpack(cfg.brdcolor)) end
- --button.overlay:SetBackground()
- button.time = button:CreateFontString(nil, 'OVERLAY')
- button.time:SetFont(cfg.NumbFont, 8, cfg.fontFNum)
- button.time:SetPoint("TOPLEFT", button, 3, -2)
- button.time:SetJustifyH('CENTER')
- button.time:SetVertexColor(unpack(cfg.sndcolor))
- button:SetSize(cfg.buSize, cfg.buSize*cfg.buHeightMulti)
- local count = button.count
- count:ClearAllPoints()
- count:SetPoint("BOTTOMRIGHT", button, 0, 2)
- count:SetFont(cfg.NumbFont, 8, cfg.fontFNum)
- count:SetVertexColor(unpack(cfg.sndcolor))
- button.icon:SetTexCoord(.08, .92, .08, .92)
- end
- -- weapon enchant icon
- local function WeapEnchantIcon(self, icon, icons)
- local iconwidth = icon:GetWidth()
- icon.time = icon:CreateFontString(nil, 'OVERLAY')
- icon.time:SetFont(cfg.NumbFont, iconwidth/2.6, cfg.fontFNum)
- icon.time:SetPoint("BOTTOM", icon, 0, -2)
- icon.time:SetJustifyH('CENTER')
- icon.time:SetVertexColor(unpack(cfg.sndcolor))
- icon.overlay:SetTexture(cfg.Auratex)
- icon.overlay:SetTexCoord(0, 1, 0, 1)
- icon.overlay:SetVertexColor(unpack(cfg.brdcolor))
- icon.icon:SetTexCoord(.08, .92, .08, .92)
- end
- local AWIcon = function(AWatch, icon, spellID, name, self)
- local count = fs(icon, 'OVERLAY', cfg.aura.font, cfg.aura.fontsize, cfg.aura.fontflag, 1, 1, 1)
- count:SetPoint('BOTTOMRIGHT', icon, 5, -5)
- icon.count = count
- icon.cd:SetReverse(true)
- end
- local createAuraWatch = function(self, unit)
- if cfg.aw.enable then
- local auras = CreateFrame('Frame', nil, self)
- auras:SetAllPoints(self.Health)
- auras.onlyShowPresent = cfg.aw.onlyShowPresent
- auras.anyUnit = cfg.aw.anyUnit
- auras.icons = {}
- auras.PostCreateIcon = AWIcon
- for i, v in pairs(cfg.spellIDs[class]) do
- local icon = CreateFrame('Frame', nil, auras)
- icon.spellID = v[1]
- icon:SetSize(8, 8)
- if v[3] then
- icon:SetPoint(v[3])
- else
- icon:SetPoint('BOTTOMLEFT', self.Health, 'BOTTOMRIGHT', -8 * i, 16)
- end
- icon:SetBackdrop(backdrop_1px)
- icon:SetBackdropColor(0, 0, 0, 1)
- local tex = icon:CreateTexture(nil, 'ARTWORK')
- tex:SetAllPoints(icon)
- tex:SetTexCoord(.1, .9, .1, .9)
- tex:SetTexture(cfg.texture)
- tex:SetVertexColor(unpack(v[2]))
- icon.icon = tex
- auras.icons[v[1]] = icon
- end
- self.AuraWatch = auras
- end
- end
- local CreateEnchantTimer = function(self, icons)
- for i = 1, 2 do
- local icon = icons[i]
- if icon.expTime then
- icon.timeLeft = icon.expTime - GetTime()
- icon.time:Show()
- else
- icon.time:Hide()
- end
- icon:SetScript("OnUpdate", CreateAuraTimer)
- end
- end
- -- update icon
- local PostUpdateIcon
- do
- local playerUnits = {
- player = true,
- pet = true,
- vehicle = true,
- }
- PostUpdateIcon = function(icons, unit, icon, index, offset, filter, isDebuff)
- local name, _, _, _, dtype, duration, expirationTime, unitCaster, _ = UnitAura(unit, index, icon.filter)
- local texture = icon.icon
- if unit == "target" or unit == "focus" then
- if duration and duration > 0 and spellID or (playerUnits[icon.owner]) then
- icon.time:Show()
- icon.timeLeft = expirationTime
- icon:SetScript("OnUpdate", CreateAuraTimer)
- else
- icon.time:Hide()
- end
- else
- if duration and duration > 0 then
- icon.time:Show()
- icon.timeLeft = expirationTime
- icon:SetScript("OnUpdate", CreateAuraTimer)
- else
- icon.time:Hide()
- end
- end
- if unit == "target" or unit == "focus" then
- if (playerUnits[icon.owner]) then
- if dtype == "Magic" or dtype == "Disease" or dtype == "Poison" or dtype == "Curse" then
- local color = DebuffTypeColor[dtype] or DebuffTypeColor.none
- icon.overlay:SetVertexColor(color.r*0.9, color.g*0.9, color.b*0.9)
- texture:SetDesaturated(false)
- end
- else
- icons.showDebuffType = false
- icon.overlay:SetVertexColor(unpack(cfg.brdcolor))
- texture:SetDesaturated(false)
- end
- end
- icon.first = true
- end
- end
- -- right click menu
- local dropdown = CreateFrame("Frame", "MyAddOnUnitDropDownMenu", UIParent, "UIDropDownMenuTemplate")
- UIDropDownMenu_Initialize(dropdown, function(self)
- local unit = self:GetParent().unit
- if not unit then return end
- local menu, name, id
- if UnitIsUnit(unit, "player") then
- menu = "SELF"
- elseif UnitIsUnit(unit, "vehicle") then
- menu = "VEHICLE"
- elseif UnitIsUnit(unit, "pet") then
- menu = "PET"
- elseif UnitIsPlayer(unit) then
- id = UnitInRaid(unit)
- if id then
- menu = "RAID_PLAYER"
- name = GetRaidRosterInfo(id)
- elseif UnitInParty(unit) then
- menu = "PARTY"
- else
- menu = "PLAYER"
- end
- else
- menu = "TARGET"
- name = RAID_TARGET_ICON
- end
- if menu then
- UnitPopup_ShowMenu(self, menu, unit, name, id)
- end
- end, "MENU")
- local menu = function(self)
- dropdown:SetParent(self)
- ToggleDropDownMenu(1, nil, dropdown, "cursor", 0, 0)
- end
- -- threat highlight
- local function updateThreatStatus(self, event, u)
- if (self.unit ~= u) then return end
- local s = UnitThreatSituation(u)
- if s and s > 1 then
- local r, g, b = GetThreatStatusColor(s)
- self.ThreatHlt:Show()
- self.ThreatHlt:SetVertexColor(r, g, b, 1.0)
- else
- self.ThreatHlt:Hide()
- end
- end
- -- debuff highlight
- local CanDispel = {
- PRIEST = { Magic = true, Disease = false, },
- SHAMAN = { Magic = true, Curse = true},
- PALADIN = { Magic = true, Poison = true, Disease = true, },
- MAGE = { Curse = true, },
- DRUID = { Magic = true, Curse = true, Poison = true},
- }
- local dispellist = CanDispel[playerClass] or {}
- local function GetDebuffType(unit)
- if not UnitCanAssist("player", unit) then return nil end
- local i = 1
- while true do
- local name, rank, texture, count, debufftype, duration, expirationTime, source = UnitDebuff(unit, i)
- if not texture then break end
- if debufftype and dispellist[debufftype] then
- return debufftype
- end
- i = i + 1
- end
- end
- --[[local function updateDispel(self, event, u)
- if not u or self.unit ~= u then return end
- local debufftype = GetDebuffType(u)
- if debufftype then
- local color = DebuffTypeColor[debufftype]
- self.dHlight:Show()
- self.dHlight:SetVertexColor(color.r, color.g, color.b)
- self.dHlight2:Show()
- self.dHlight2:SetVertexColor(color.r, color.g, color.b)
- else
- self.dHlight:Hide()
- self.dHlight2:Hide()
- end
- end]]--
- -- mouseover highlight
- local UnitFrame_OnEnter = function(self)
- UnitFrame_OnEnter(self)
- self.Mouseover:Show()
- end
- local UnitFrame_OnLeave = function(self)
- UnitFrame_OnLeave(self)
- self.Mouseover:Hide()
- end
- --[[
- local AWIcon = function(AWatch, icon, spellID, name, self)
- local count = fs(icon, 'OVERLAY', cfg.NumbFont, 8, cfg.FontF, 1, 1, 1)
- count:SetPoint('BOTTOMRIGHT', icon, 5, -5)
- icon.count = count
- icon.cd:SetReverse(true)
- end
- --]]
- -- castbar ticks
- --[[local channelingTicks = {
- [GetSpellInfo(44203)] = 4, -- Tranquility
- [GetSpellInfo(16914)] = 10, -- Hurricane
- [GetSpellInfo(106996)] = 10,-- Astral Storm
- -- Mage
- [GetSpellInfo(5143)] = 5, -- Arcane Missiles
- [GetSpellInfo(10)] = 8, -- Blizzard
- [GetSpellInfo(12051)] = 4, -- Evocation
- -- Monk
- [GetSpellInfo(115175)] = 9, -- Soothing Mist
- -- Priest
- [GetSpellInfo(15407)] = 3, -- Mind Flay
- [GetSpellInfo(48045)] = 5, -- Mind Sear
- -- [GetSpellInfo(129197)],
- [GetSpellInfo(47540)] = 2, -- Penance
- [GetSpellInfo(64901)] = 4, -- Hymn of Hope
- [GetSpellInfo(64843)] = 4, -- Divine Hymn
- -- Warlock
- [GetSpellInfo(689)] = 6, -- Drain Life
- [GetSpellInfo(108371)] = 6, -- Harvest Life
- [GetSpellInfo(1120)] = 6, -- Drain Soul
- [GetSpellInfo(755)] = 6, -- Health Funnel
- [GetSpellInfo(1949)] = 15, -- Hellfire
- [GetSpellInfo(5740)] = 4, -- Rain of Fire
- [GetSpellInfo(103103)] = 3, -- Malefic Grasp
- }
- local ticks = {}
- local setBarTicks = function(Castbar, ticknum)
- if ticknum and ticknum > 0 then
- local delta = Castbar:GetWidth() / ticknum
- for k = 1, ticknum do
- if not ticks[k] then
- ticks[k] = Castbar:CreateTexture(nil, 'OVERLAY')
- ticks[k]:SetTexture(cfg.texture)
- ticks[k]:SetVertexColor(0.6, 0.6, 0.6)
- ticks[k]:SetWidth(1)
- ticks[k]:SetHeight(21)
- end
- ticks[k]:ClearAllPoints()
- ticks[k]:SetPoint('CENTER', Castbar, 'LEFT', delta * k, 0 )
- ticks[k]:Show()
- end
- else
- for k, v in pairs(ticks) do
- v:Hide()
- end
- end
- end]]--
- -- hide/show unitname/spellname while casting
- local PostCastStart = function(Castbar, unit, spell, spellrank)
- Castbar:GetParent().Name:Hide()
- Castbar:GetParent().Status:Hide()
- --[[if unit == 'player' then
- local sf = Castbar.SafeZone
- if not sf then return end
- if not sf.sendTime then sf.sendTime = GetTime() end
- sf.timeDiff = GetTime() - sf.sendTime
- sf.timeDiff = sf.timeDiff > self.max and self.max or sf.timeDiff
- sf:SetWidth(self:GetWidth() * sf.timeDiff / self.max)
- if not UnitInVehicle('player') then sf:Show() else sf:Hide() end
- if self.casting then
- setBarTicks(self, 0)
- else
- local spell = UnitChannelInfo(unit)
- self.channelingTicks = channelingTicks[spell] or 0
- setBarTicks(self, self.channelingTicks)
- end
- end]]--
- if Castbar.interrupt and UnitCanAttack("player", unit) then
- --self.Shield:Show()
- Castbar:SetStatusBarColor(1, 1, 0, 1)
- if cfg.useSpellIcon then
- Castbar.IconGlow:SetBackdropColor(0.9, 0, 1.0, 0.6)
- end
- else if unit == "player" then
- local cbR, cbG, cbB = unpack(cfg.trdcolor)
- Castbar:SetStatusBarColor(cbR, cbG, cbB, 1)
- if cfg.useSpellIcon then
- Castbar.IconGlow:SetBackdropColor(unpack(cfg.brdcolor))
- end
- else
- local cbbR, cbbG, cbbB = unpack(cfg.enemycast)
- Castbar:SetStatusBarColor(cbbR, cbbG, cbbB, 1)
- if cfg.useSpellIcon then
- Castbar.IconGlow:SetBackdropColor(unpack(cfg.brdcolor))
- end
- end
- end
- end
- local PostCastStop = function(Castbar, unit)
- local self = Castbar:GetParent()
- self.Name:Show()
- self.Status:Show()
- end
- local PostCastStopUpdate = function(self, event, unit)
- if(unit ~= self.unit) then return end
- return PostCastStop(self.Castbar, unit)
- end
- -- skin mirror bars
- function MirrorBars()
- if(MirrorBars) then
- for _, bar in pairs({
- 'MirrorTimer1',
- 'MirrorTimer2',
- 'MirrorTimer3',
- }) do
- local bg = select(1, _G[bar]:GetRegions())
- bg:Hide()
- _G[bar]:SetBackdrop(backdrop3)
- _G[bar]:SetBackdropColor(unpack(cfg.brdcolor))
- _G[bar..'Border']:Hide()
- _G[bar]:SetParent(UIParent)
- _G[bar]:SetScale(1)
- _G[bar]:SetHeight(4)
- _G[bar]:SetWidth(160)
- _G[bar..'Background'] = _G[bar]:CreateTexture(bar..'Background', 'BACKGROUND', _G[bar])
- _G[bar..'Background']:SetTexture(blankTex)
- _G[bar..'Background']:SetAllPoints(_G[bar])
- _G[bar..'Background']:SetVertexColor(0, 0, 0, 0.5)
- _G[bar..'Text']:SetFont(cfg.NameFont, cfg.NameFS, cfg.FontF)
- _G[bar..'Text']:ClearAllPoints()
- _G[bar..'Text']:SetPoint('TOP', MirrorTimer1StatusBar, 'BOTTOM', 0, -2)
- _G[bar..'StatusBar']:SetStatusBarTexture(cfg.HPtex)
- _G[bar..'StatusBar']:SetAllPoints(_G[bar])
- end
- end
- end
- --------------------------------
- -- shared stuff for all units --
- --------------------------------
- local Shared = function(self, unit, isSingle)
- local _, playerClass = UnitClass('player')
- self.menu = menu
- self:SetAttribute("*type2", "menu")
- self:SetScript("OnEnter", UnitFrame_OnEnter)
- self:SetScript("OnLeave", UnitFrame_OnLeave)
- self:RegisterForClicks"AnyUp"
- -- set/clear focus with shift + left click
- if cfg.ShiftClickFocus then
- local ModKey = 'Shift'
- local MouseButton = 1
- local key = ModKey .. '-type' .. (MouseButton or '')
- if(self.unit == 'focus') then
- self:SetAttribute(key, 'macro')
- self:SetAttribute('macrotext', '/clearfocus')
- else
- self:SetAttribute(key, 'focus')
- end
- end
- if cfg.HideBlizzardAuras == true then
- -- hide blizzard buff, debuff and weapon enchant frame
- local BlizzFrame = _G['BuffFrame']
- BlizzFrame:UnregisterEvent('UNIT_AURA')
- BlizzFrame:Hide()
- BlizzFrame = _G['TemporaryEnchantFrame']
- BlizzFrame:Hide()
- end
- -- hp
- local hp = CreateFrame("StatusBar", nil, self)
- hp:SetHeight(cfg.heightHP)
- hp:SetStatusBarTexture(cfg.HPtex)
- hp:SetPoint"TOP"
- hp:SetPoint"LEFT"
- hp:SetPoint"RIGHT"
- hp:GetStatusBarTexture():SetHorizTile(true)
- hp:SetFrameLevel(3)
- hp.frequentUpdates = true
- hp.Smooth = true
- self.Health = hp
- if cfg.TransparencyMode then
- local tmR, tmG, tmB = unpack(cfg.hpTransMcolor)
- hp:SetStatusBarColor(tmR, tmG, tmB, cfg.hpTransMalpha)
- self.Health.PostUpdate = PostUpdateHealthTM
- else
- hp.colorTapping = true
- hp.colorClass = true
- hp.colorReaction = true
- self.Health.PostUpdate = PostUpdateHealth
- end
- -- hp border
- self.Glow = CreateFrame("Frame", nil, hp)
- self.Glow:SetPoint("TOPLEFT", hp, "TOPLEFT", -1, 1)
- self.Glow:SetPoint("BOTTOMRIGHT", hp, "BOTTOMRIGHT", 1, -1)
- self.Glow:SetBackdrop(backdrop)
- self.Glow:SetBackdropBorderColor(unpack(cfg.brdcolor))
- self.Glow:SetFrameLevel(3)
- local Framewidth = self:GetWidth()
- -- hp bg
- hpbg = hp:CreateTexture(nil, "BACKGROUND")
- hpbg:SetTexture(cfg.Itex)
- hp.bg = hpbg
- if cfg.TransparencyMode then
- hpbg:SetPoint"LEFT"
- hpbg:SetPoint"RIGHT"
- hpbg:SetPoint("LEFT", hp:GetStatusBarTexture(), "RIGHT")
- else
- hpbg:SetAllPoints(hp)
- hpbg:SetAlpha(0.6)
- hpbg.multiplier = 0.4
- end
- -- pp
- local pp = CreateFrame("StatusBar", nil, self)
- pp:SetSize(cfg.widthP, cfg.heightPP)
- pp:SetStatusBarTexture(cfg.PPtex)
- pp:SetPoint("TOPLEFT", self.Health, "BOTTOMLEFT", 0, -cfg.PPyOffset)
- pp:GetStatusBarTexture():SetHorizTile(true)
- pp:SetFrameLevel(1)
- pp.frequentUpdates = true
- pp.colorPower = false
- self.Power = pp
- self.Power.PostUpdate = PostUpdatePower
- self.Power.Smooth = false
- self.Power.colorPower = false
- self.Power.colorClass = true
- -- pp border
- self.Glow.pp = CreateFrame("Frame", nil, pp)
- self.Glow.pp:SetPoint("TOPLEFT", pp, "TOPLEFT", -1, 1)
- self.Glow.pp:SetPoint("BOTTOMRIGHT", pp, "BOTTOMRIGHT", 1, -1)
- self.Glow.pp:SetBackdrop(backdrop)
- self.Glow.pp:SetBackdropBorderColor(unpack(cfg.brdcolor))
- self.Glow.pp:SetFrameLevel(1)
- -- pp bg
- local ppBG = pp:CreateTexture(nil, 'BORDER')
- ppBG:SetAllPoints()
- ppBG:SetTexture(cfg.Itex)
- ppBG.multiplier = 0.4
- ppBG:SetAlpha(0.5)
- pp.bg = ppBG
- if cfg.TransparencyMode then
- pp:SetAlpha(0.8)
- else
- pp:SetAlpha(1)
- end
- -- enable custom colors
- self.colors = colors
- -- font strings
- self.Health.value = hp:CreateFontString(nil, "OVERLAY")
- self.Health.value:SetFont(cfg.NumbFont, cfg.hpNumbFS, cfg.fontFNum)
- self.Power.value = hp:CreateFontString(nil, "OVERLAY")
- self.Power.value:SetFont(cfg.NumbFont, cfg.NumbFS, cfg.fontFNum)
- self.Name = hp:CreateFontString(nil, "OVERLAY")
- self.Name:SetFont(cfg.NameFont, cfg.NameFS, cfg.FontF)
- self:Tag(self.Name, '[raidcolor][abbrevname]')
- self.Status = hp:CreateFontString(nil, "OVERLAY")
- self.Status:SetFont(cfg.NameFont, cfg.NameFS, cfg.FontF)
- self:Tag(self.Status, '[afkdnd][difficulty][smartlevel] ')
- -- mouseover highlight
- local mov = self.Health:CreateTexture(nil, "OVERLAY")
- mov:SetAllPoints(self.Health)
- mov:SetTexture("Interface\\AddOns\\dMedia\\highlight")
- mov:SetVertexColor(1, 1, 1, 0.3)
- mov:SetTexCoord(0,1,1,0)
- mov:SetBlendMode("ADD")
- mov:Hide()
- self.Mouseover = mov
- -- debuff highlight
- --local dHlight = self.Health:CreateTexture(nil, "OVERLAY")
- --dHlight:SetSize(64,16)
- --dHlight:SetPoint("TOPLEFT", self.Health, -4, 4)
- --dHlight:SetTexture("Interface\\AddOns\\dMedia\\dHlight")
- --dHlight:Hide()
- --self.dHlight = dHlight
- --local dHlight2 = self.Health:CreateTexture(nil, "OVERLAY")
- --dHlight2:SetSize(64,16)
- --dHlight2:SetPoint("TOPRIGHT", self.Health, 4, 4)
- --dHlight2:SetTexture("Interface\\AddOns\\dMedia\\dHlight")
- --dHlight2:SetTexCoord(1,0,0,1)
- --dHlight2:Hide()
- --self.dHlight2 = dHlight2
- -- threat highlight
- --local Thrt = self.Health:CreateTexture(nil, "OVERLAY")
- --Thrt:SetPoint("TOPLEFT", self.Health, 1/5, 3)
- --Thrt:SetPoint("TOPRIGHT", self.Health, -1/5, 3)
- --Thrt:SetHeight(2)
- --Thrt:SetTexture("Interface\\AddOns\\dMedia\\threat")
- --Thrt:Hide()
- --self.ThreatHlt = Thrt
- -- update threat
- --self:RegisterEvent("UNIT_THREAT_LIST_UPDATE", updateThreatStatus)
- --self:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE", updateThreatStatus)
- end
- ----------------------
- -- object functions --
- ----------------------
- -- castbar
- local createCastbar = function(self, unit)
- local cb = CreateFrame("StatusBar", nil, self)
- cb:SetStatusBarTexture(cfg.CBtex)
- cb:GetStatusBarTexture():SetHorizTile(true)
- cb:SetFrameLevel(4)
- self.Castbar = cb
- cb.Text = cb:CreateFontString(nil, 'ARTWORK')
- cb.Text:SetJustifyH("LEFT")
- cb.Text:SetFont(cfg.NameFont, cfg.CastFS, cfg.FontF)
- cb.Text:SetTextColor(unpack(cfg.sndcolor))
- cb.Time = cb:CreateFontString(nil, 'ARTWORK')
- cb.Time:SetFont(cfg.NumbFont, cfg.CastFS, cfg.fontFNum)
- cb.Time:SetJustifyH('RIGHT')
- cb.Time:SetTextColor(unpack(cfg.sndcolor))
- cb.Time2 = cb:CreateFontString(nil, 'ARTWORK')
- cb.Time2:SetFont(cfg.NumbFont, cfg.CastFS, cfg.fontFNum)
- cb.Time2:SetJustifyH('RIGHT')
- cb.Time2:SetTextColor(unpack(cfg.sndcolor))
- cb.CustomTimeText = CustomTimeText
- if cfg.useSpellIcon then
- cb.Icon = cb:CreateTexture(nil, 'OVERLAY')
- cb.Icon:SetSize(28,28)
- cb.Icon:SetTexCoord(0.1,0.9,0.1,0.9)
- cb.IconGlow = CreateFrame("Frame", nil, cb)
- cb.IconGlow:SetPoint("TOPLEFT", cb.Icon, "TOPLEFT", -1, 1)
- cb.IconGlow:SetPoint("BOTTOMRIGHT", cb.Icon, "BOTTOMRIGHT", 1, -1)
- cb.IconGlow:SetBackdrop(backdrop2)
- cb.IconGlow:SetBackdropColor(unpack(cfg.brdcolor))
- cb.IconGlow:SetFrameLevel(0)
- end
- cb.Spark = cb:CreateTexture(nil, 'OVERLAY')
- cb.Spark:SetBlendMode('ADD')
- cb.Spark:SetSize(6, cfg.heightP*2.5)
- self:RegisterEvent('UNIT_NAME_UPDATE', PostCastStopUpdate)
- table.insert(self.__elements, PostCastStopUpdate)
- cb.PostCastStart = PostCastStart
- cb.PostChannelStart = PostCastStart
- cb.PostCastStop = PostCastStop
- cb.PostChannelStop = PostCastStop
- end
- -- buffs
- local createBuffs = function(self)
- local Buffs = CreateFrame("Frame", nil, self)
- Buffs.num = 40
- Buffs.spacing = 2
- Buffs.size = cfg.buSize
- self.Buffs = Buffs
- Buffs.PostCreateIcon = PostCreateIcon
- Buffs.PostUpdateIcon = PostUpdateIcon
- end
- -- debuffs
- local createDebuffs = function(self)
- local Debuffs = CreateFrame("Frame", nil, self)
- Debuffs.spacing = 2
- Debuffs.size = cfg.buSize
- self.Debuffs = Debuffs
- Debuffs.PostCreateIcon = PostCreateIcon
- Debuffs.PostUpdateIcon = PostUpdateIcon
- end
- -- phase icon
- local createPhaseIcon = function(self)
- local pIcon = self.Health:CreateTexture(nil, 'OVERLAY')
- pIcon:SetSize(18, 18)
- self.PhaseIcon = pIcon
- end
- -- quest icon
- --[[local createQuestIcon = function(self)
- local qIcon = self.Health:CreateTexture(nil, 'OVERLAY')
- qIcon:SetSize(18, 18)
- self.QuestIcon = qIcon
- end]]--
- local createQuestIcon = function(self)
- local q = fs(self.Health, 'OVERLAY', cfg.NumbFont, 12, cfg.FontF, 1, 1, 1)
- q:SetPoint('LEFT', name, 'RIGHT', 1, 0)
- q:SetText('|cff8AFF30!|r')
- self.QuestIcon = q
- end
- -- raid icons
- local createRaidIcon = function(self)
- RI = self.Health:CreateTexture(nil, "OVERLAY")
- RI:SetTexture("Interface\\AddOns\\dMedia\\raidicons.blp")
- RI:SetSize(20, 20)
- self.RaidIcon = RI
- end
- -- class (healer) specific tags
- local classTags = function(self)
- local PriestTags = "[NivPWS] [NivRenew] [NivPoM] [NivGS] [NivFW]"
- local PaladinTags = "[NivBoL]"
- local DruidTags = "[NivRej] [NivReg] [NivLB] [NivWG] [NivInn]"
- local ShamanTags = "[NivES] [NivRipT] [NivErLiv]"
- self.Text = self.Health:CreateFontString(nil, "ARTWORK")
- self.Text:SetFont(cfg.NumbFont, cfg.RaidFS, cfg.fontFNum)
- self.Text:SetTextColor(unpack(cfg.sndcolor))
- --self.Text:SetPoint("TOPLEFT", self.Health, "TOPLEFT", cfg.widthR*0.3, 2)
- self.Text:SetPoint("TOPLEFT", self.Health, "TOPLEFT", 1, 2)
- self.Text:SetPoint("BOTTOMRIGHT", self.Health, "BOTTOMRIGHT", -1, 0)
- if playerClass == "PRIEST" then
- self:Tag(self.Text, PriestTags)
- elseif playerClass == "PALADIN" then
- self:Tag(self.Text, PaladinTags)
- elseif playerClass == "DRUID" then
- self:Tag(self.Text, DruidTags)
- elseif playerClass == "SHAMAN" then
- self:Tag(self.Text, ShamanTags)
- else
- self:Tag(self.Text, " ")
- end
- end
- -- plugin support
- local SpellRange = function(self)
- if IsAddOnLoaded("oUF_SpellRange") then
- self.SpellRange = {
- insideAlpha = 1,
- outsideAlpha = cfg.FadeOutAlpha}
- end
- end
- local CombatFeedback = function(self)
- if IsAddOnLoaded("oUF_CombatFeedback") then
- local cbft = self.Health:CreateFontString(nil, "ARTWORK")
- cbft:SetPoint("CENTER", self.Health, "CENTER", 0, 0)
- self.CombatFeedbackText = cbft
- self.CombatFeedbackText:SetFont(cfg.NumbFont, cfg.NumbFS, cfg.fontFNum)
- end
- end
- local BarFader = function(self)
- if IsAddOnLoaded("oUF_BarFader") then
- self.BarFade = true
- self.BarFaderMinAlpha = cfg.BarFadeAlpha
- end
- end
- local HealComm4 = function(self)
- if IsAddOnLoaded("oUF_HealComm4") then
- HCB = CreateFrame('StatusBar', nil, self.Health)
- HCB:SetStatusBarTexture(cfg.HPtex)
- HCB:SetStatusBarColor(0, 0.8, 0, 0.5)
- HCB:SetPoint('LEFT', self.Health, 'LEFT')
- self.HealCommBar = HCB
- self.allowHealCommOverflow = false
- self.HealCommOthersOnly = true
- end
- end
- local WeaponEnchant = function(self)
- if IsAddOnLoaded("oUF_WeaponEnchant") then
- self.Enchant = CreateFrame("Frame", nil, self)
- self.Enchant:SetSize(cfg.WeapEnchantIconSize * 2, cfg.WeapEnchantIconSize)
- self.Enchant:SetPoint("TOPRIGHT", self, 0, 0)
- self.Enchant.size = cfg.WeapEnchantIconSize
- self.Enchant.spacing = 2
- self.Enchant.initialAnchor = "TOPRIGHT"
- self.Enchant["growth-x"] = "LEFT"
- self.Enchant:SetFrameLevel(10)
- self.PostCreateEnchantIcon = WeapEnchantIcon
- self.PostUpdateEnchantIcons = CreateEnchantTimer
- end
- end
- local TotemBar = function(self)
- if IsAddOnLoaded("oUF_TotemBar") then
- self.TotemBar = {}
- for i = 1, 4 do
- self.TotemBar[i] = CreateFrame("StatusBar", nil, self)
- self.TotemBar[i]:SetHeight(cfg.ClassBarHeight)
- self.TotemBar[i]:SetWidth(((cfg.widthP - 9)/4))
- if (i == 1) then
- self.TotemBar[i]:SetPoint("BOTTOMLEFT", self, "TOPLEFT", 0, 4)
- else
- self.TotemBar[i]:SetPoint("TOPLEFT", self.TotemBar[i-1], "TOPRIGHT", 3, 0)
- end
- self.TotemBar[i]:SetStatusBarTexture(cfg.Itex)
- self.TotemBar[i]:SetMinMaxValues(0, 1)
- self.TotemBar[i].destroy = true
- self.TotemBar[i].bg = self.TotemBar[i]:CreateTexture(nil, "BORDER")
- self.TotemBar[i].bg:SetAllPoints(self.TotemBar[i])
- self.TotemBar[i].bg:SetTexture(cfg.Itex)
- self.TotemBar[i].bg.multiplier = 0.3
- self.TotemBar[i].bg:SetAlpha(1.0)
- self.TotemBarBorder = CreateFrame("Frame", nil, self)
- self.TotemBarBorder:SetPoint("TOPLEFT", self.TotemBar[i], "TOPLEFT", -1, 1)
- self.TotemBarBorder:SetPoint("BOTTOMRIGHT", self.TotemBar[i], "BOTTOMRIGHT", 1, -1)
- self.TotemBarBorder:SetBackdrop(backdrop2)
- self.TotemBarBorder:SetBackdropColor(unpack(cfg.brdcolor))
- self.TotemBarBorder:SetFrameLevel(0)
- end
- end
- end
- -------------------------
- -- unit specific stuff --
- -------------------------
- local UnitSpecific = {
- player = function(self, ...)
- Shared(self, ...)
- MirrorBars()
- if cfg.useCastbar then
- createCastbar(self)
- -- disable blizzards pet castbar
- PetCastingBarFrame:UnregisterAllEvents()
- PetCastingBarFrame.Show = function() end
- PetCastingBarFrame:Hide()
- self.Castbar:SetAllPoints(self.Health)
- self.Castbar.Text:SetPoint("TOPLEFT", self.Power, "BOTTOMLEFT", 0, -2)
- self.Castbar.Time:SetPoint("BOTTOMLEFT", self.Castbar.Text, "BOTTOMRIGHT", 2, 0)
- self.Castbar.Time2:SetPoint("BOTTOMLEFT", self.Castbar.Time, "BOTTOMRIGHT", 0, 0)
- if cfg.useSpellIcon then
- if not cfg.PlayerRightSideSpellIcon then
- self.Castbar.Icon:SetPoint("TOPRIGHT", self.Health, "TOPLEFT", -4, 0)
- else
- self.Castbar.Icon:SetPoint("TOPLEFT", self.Health, "TOPRIGHT", 4, 0)
- end
- end
- end
- --self.Health.value:SetPoint("TOPRIGHT", self.Power, "BOTTOMRIGHT", 0, -2)
- self.Health:SetHeight(cfg.heightP)
- self.Health:SetWidth(cfg.widthP)
- --self.Health:Tag(htext, '[player:hp]')
- self.Power:SetWidth(cfg.widthP)
- local htext = fs(self.Health, 'OVERLAY', cfg.NameFont, 8, cfg.FontF, 1, 1, 1)
- htext:SetPoint('RIGHT', 2, -19)
- htext.frequentUpdates = .1
- self:Tag(htext, '[player:hp]')
- self.Power.value:SetPoint("TOPRIGHT", htext, "BOTTOMRIGHT", 0, -2)
- -- Icons
- local Ihld = CreateFrame("Frame", nil, self)
- Ihld:SetAllPoints(self.Health)
- Ihld:SetFrameLevel(6)
- createRaidIcon(self)
- self.RaidIcon:SetPoint("RIGHT", self.Health, "RIGHT", -4, 0)
- self.RaidIcon:SetParent(Ihld)
- RIc = Ihld:CreateTexture(nil, 'OVERLAY')
- RIc:SetSize(14, 14)
- RIc:SetPoint("TOPLEFT", self.Health, 4, 6)
- self.Resting = RIc
- CIc = Ihld:CreateTexture(nil, 'OVERLAY')
- CIc:SetSize(16, 16)
- CIc:SetPoint("LEFT", RIc, "RIGHT", 4, 0)
- self.Combat = CIc
- LIc = Ihld:CreateTexture(nil, "OVERLAY")
- LIc:SetSize(14, 14)
- LIc:SetPoint("LEFT", CIc, "RIGHT", 4, 0)
- self.Leader = LIc
- MLIc = Ihld:CreateTexture(nil, 'OVERLAY')
- MLIc:SetSize(14, 14)
- MLIc:SetPoint("LEFT", LIc, "RIGHT", 4, 0)
- self.MasterLooter = MLIc
- -- plugins
- CombatFeedback(self)
- BarFader(self)
- -- TotemBar
- if playerClass == "SHAMAN" then
- TotemBar(self)
- end
- if playerClass =="DEATHKNIGHT" then
- self.Runes = CreateFrame("Frame", nil, self)
- for i = 1, 6 do
- self.Runes[i] = CreateFrame("StatusBar", self:GetName().."_Runes"..i, self)
- self.Runes[i]:SetHeight(cfg.ClassBarHeight)
- self.Runes[i]:SetWidth((cfg.widthP - 15) / 6)
- if (i == 1) then
- self.Runes[i]:SetPoint("BOTTOMLEFT", self, "TOPLEFT", 0, 4)
- else
- self.Runes[i]:SetPoint("TOPLEFT", self.Runes[i-1], "TOPRIGHT", 3, 0)
- end
- self.Runes[i]:SetStatusBarTexture(cfg.HPtex)
- self.Runes[i].bg = self.Runes[i]:CreateTexture(nil, "BORDER")
- self.Runes[i].bg:SetPoint("TOPLEFT", self.Runes[i], "TOPLEFT", -0, 0)
- self.Runes[i].bg:SetPoint("BOTTOMRIGHT", self.Runes[i], "BOTTOMRIGHT", 0, -0)
- self.Runes[i].bg:SetTexture(cfg.Itex)
- self.Runes[i].bg.multiplier = 0.34
- self.RunesBorder = CreateFrame("Frame", nil, self)
- self.RunesBorder:SetPoint("TOPLEFT", self.Runes[i], "TOPLEFT", -1, 1)
- self.RunesBorder:SetPoint("BOTTOMRIGHT", self.Runes[i], "BOTTOMRIGHT", 1, -1)
- self.RunesBorder:SetBackdrop(backdrop2)
- self.RunesBorder:SetBackdropColor(unpack(cfg.brdcolor))
- self.RunesBorder:SetFrameLevel(0)
- end
- end
- --[[if playerClass == 'DRUID' then
- local eclipseBar = CreateFrame('Frame', nil, self)
- eclipseBar:SetPoint("BOTTOMLEFT", self, "TOPLEFT", 0, 4)
- eclipseBar:SetSize(cfg.widthP, cfg.ClassBarHeight)
- eclipseBar.Border = CreateFrame("Frame", nil, eclipseBar)
- eclipseBar.Border:SetPoint("TOPLEFT", eclipseBar, "TOPLEFT", -1, 1)
- eclipseBar.Border:SetPoint("BOTTOMRIGHT", eclipseBar, "BOTTOMRIGHT", 1, -1)
- eclipseBar.Border:SetBackdrop(backdrop2)
- eclipseBar.Border:SetBackdropColor(unpack(cfg.brdcolor))
- eclipseBar.Border:SetFrameLevel(0)
- local lunarBar = CreateFrame('StatusBar', nil, eclipseBar)
- lunarBar:SetPoint('LEFT', eclipseBar, 'LEFT', 0, 0)
- lunarBar:SetSize(cfg.widthP, cfg.ClassBarHeight)
- lunarBar:SetStatusBarTexture(cfg.HPtex)
- lunarBar:SetStatusBarColor(0.34, 0.1, 0.86)
- eclipseBar.LunarBar = lunarBar
- local solarBar = CreateFrame('StatusBar', nil, eclipseBar)
- solarBar:SetPoint('LEFT', lunarBar:GetStatusBarTexture(), 'RIGHT', 0, 0)
- solarBar:SetSize(cfg.widthP, cfg.ClassBarHeight)
- solarBar:SetStatusBarTexture(cfg.HPtex)
- solarBar:SetStatusBarColor(0.95, 0.73, 0.15)
- eclipseBar.SolarBar = solarBar
- local eclipseBarText = solarBar:CreateFontString(nil, 'OVERLAY')
- eclipseBarText:SetPoint('CENTER', eclipseBar, 'CENTER', 0, 0)
- eclipseBarText:SetFont(cfg.NumbFont, cfg.NumbFS, cfg.fontFNum)
- self:Tag(eclipseBarText, '[pereclipse]%')
- self.EclipseBar = eclipseBar
- end
- ]]--
- -- update debuff highlight
- --self:RegisterEvent("UNIT_AURA", updateDispel)
- local TFrame = CreateFrame("Frame", nil, self)
- TFrame:SetPoint("TOPLEFT", self, "TOPLEFT", -4, 4)
- TFrame:SetPoint("BOTTOMRIGHT", self.Power, "BOTTOMRIGHT", 4, -4)
- TFrame:SetFrameLevel(0)
- --[[TFrame.bg = TFrame:CreateTexture(nil, "BACKGROUND")
- TFrame.bg:SetPoint("TOPLEFT", TFrame, 0, 0)
- TFrame.bg:SetPoint("TOPRIGHT", TFrame, 0, 0)
- TFrame.bg:SetHeight(1)
- TFrame.bg:SetTexture(blankTex)
- TFrame.bg:SetGradientAlpha("HORIZONTAL", 0, 0, 0, 1, 0, 0, 0, 0.1) -- HORIZONTAL | VERTICAL
- TFrame.bg2 = TFrame:CreateTexture(nil, "BACKGROUND")
- TFrame.bg2:SetPoint("TOPLEFT", TFrame, 0, -1)
- TFrame.bg2:SetPoint("BOTTOMLEFT", TFrame, 0, 0)
- TFrame.bg2:SetWidth(1)
- TFrame.bg2:SetTexture(blankTex)
- TFrame.bg2:SetGradientAlpha("VERTICAL", 0, 0, 0, 0.1, 0, 0, 0, 1.0) -- HORIZONTAL | VERTICAL]]--
- --[[self.dHlight:SetSize(128,16)
- self.dHlight2:SetSize(128,16)
- self.dHlight:SetTexture("Interface\\AddOns\\dMedia\\dHlightL")
- self.dHlight2:SetTexture("Interface\\AddOns\\dMedia\\dHlightL")]]--
- -- xp/rep
- if cfg.showXpRep then
- local XpRepHld = CreateFrame("Frame", nil, self)
- XpRepHld:SetAllPoints(self.Health)
- XpRepHld:SetFrameLevel(10)
- xprep = XpRepHld:CreateFontString(nil, "OVERLAY")
- xprep:SetFont(cfg.NameFont, cfg.NameFS, cfg.FontF)
- xprep:SetTextColor(unpack(cfg.sndcolor))
- xprep:SetAlpha(0)
- xprep:SetPoint("CENTER", self.Health)
- self:Tag(xprep, '[SlimExp] [SlimRep]')
- self.xprep = xprep
- local xprepDummy = XpRepHld:CreateFontString(nil, "OVERLAY")
- xprepDummy:SetFont(cfg.NameFont, cfg.NameFS, cfg.FontF)
- xprepDummy:SetTextColor(unpack(cfg.sndcolor))
- xprepDummy:SetPoint("CENTER", self.Health)
- xprepDummy:SetAlpha(0)
- xprepDummy:Hide()
- local animXPFadeIn = xprepDummy:CreateAnimationGroup()
- local delayXP = animXPFadeIn:CreateAnimation("Alpha")
- delayXP:SetChange(0)
- delayXP:SetDuration(cfg.delay)
- delayXP:SetOrder(1)
- local alphaInXP = animXPFadeIn:CreateAnimation("Alpha")
- alphaInXP:SetChange(1)
- alphaInXP:SetSmoothing("OUT")
- alphaInXP:SetDuration(cfg.delay)
- alphaInXP:SetOrder(2)
- animXPFadeIn:SetScript("OnFinished", function()
- xprep:SetAlpha(1)
- xprepDummy:Hide()
- end)
- self:HookScript("OnEnter", function(_, motion)
- if motion then
- xprepDummy:SetText(self.xprep:GetText())
- xprepDummy:Show()
- animXPFadeIn:Play()
- end
- end)
- self:HookScript("OnLeave", function()
- if animXPFadeIn:IsPlaying() then animXPFadeIn:Stop() end
- xprepDummy:Hide()
- xprep:SetAlpha(0)
- end)
- end
- if cfg.treat.enable then
- local treat = createStatusbar(UIParent, cfg.texture, nil, cfg.treat.height, cfg.treat.width, 1, 1, 1, 1)
- treat:SetFrameStrata('LOW')
- treat:SetPoint(unpack(cfg.treat.pos))
- treat.useRawThreat = false
- treat.usePlayerTarget = false
- treat.bg = treat:CreateTexture(nil, 'BACKGROUND')
- treat.bg:SetAllPoints(treat)
- treat.bg:SetTexture(cfg.texture)
- treat.bg:SetVertexColor(1, 0, 0, 0.2)
- -- treat.Title = fs(treat, 'OVERLAY', cfg.aura.font, cfg.aura.fontsize, cfg.aura.fontflag, 0.8, 0.8, 0.8)
- -- treat.Title:SetText('Threat:')
- -- treat.Title:SetPoint('RIGHT', treat, 'CENTER')
- -- treat.Text = fs(treat, 'OVERLAY', cfg.aura.font, cfg.aura.fontsize, cfg.aura.fontflag, 0.8, 0.8, 0.8)
- -- treat.Text:SetPoint('LEFT', treat, 'CENTER')
- treat.bg = framebd(treat, treat)
- self.ThreatBar = treat
- end
- --[[if cfg.PlayerDebuffs then
- local d = CreateFrame('Frame', nil, self)
- d.size = 28
- d.spacing = 5.6
- d.num = 14
- d:SetPoint('BOTTOMLEFT', self, 'TOPLEFT', 0, 7)
- d:SetSize(cfg.widthP, d.size)
- d.initialAnchor = 'TOPLEFT'
- d.PostCreateIcon = auraIcon
- d.PostUpdateIcon = PostUpdateIcon
- d.CustomFilter = CustomFilter
- self.Debuffs = d
- end]]--
- createDebuffs(self)
- self.Debuffs.size = 32
- self.Debuffs:SetPoint("BOTTOMLEFT", self.Health, "TOPLEFT", 0, 4)
- self.Debuffs.initialAnchor = "BOTTOMLEFT"
- self.Debuffs["growth-x"] = "RIGHT"
- self.Debuffs["growth-y"] = "UP"
- self.Debuffs.num = 14
- self.Debuffs:SetSize(cfg.widthP, self.Debuffs.size)
- self:SetSize(cfg.widthP, cfg.heightP + cfg.NumbFS + cfg.PPyOffset)
- end,
- WpnEnch = function(self, ...)
- WeaponEnchant(self)
- BarFader(self)
- self:SetSize(cfg.WeapEnchantIconSize*2, cfg.WeapEnchantIconSize)
- end,
- pClassPoints = function(self, ...)
- local _, playerClass = UnitClass('player')
- -- plugins
- BarFader(self)
- self.cCount = self:CreateFontString(nil, "OVERLAY")
- self.cCount:SetFont(cfg.NumbFont, cfg.ComboFS, cfg.fontFNum)
- self.cCount:SetPoint("RIGHT", self, 0, 0)
- if playerClass == "DRUID" then
- self:Tag(self.cCount, '[druidPower]')
- elseif playerClass == "PALADIN" then
- self:Tag(self.cCount, '[holyPower]')
- elseif playerClass == "WARLOCK" then
- self:Tag(self.cCount, '[soulShards]')
- --elseif playerClass == "PRIEST" then
- -- self:Tag(self.cCount, '|CFFfcf514[evangelism]|r |CFF911fff[shadoworbs]|r')
- elseif playerClass == "SHAMAN" then
- self:Tag(self.cCount, '|CFFfcf514[maelstrom]|r')
- end
- self:RegisterEvent('PLAYER_REGEN_ENABLED', function(self) self.cCount:SetAlpha(0.3) end)
- self:RegisterEvent('PLAYER_REGEN_DISABLED', function(self) self.cCount:SetAlpha(1) end)
- self:RegisterEvent('PLAYER_ENTERING_WORLD', function(self) self.cCount:SetAlpha(0.3) end)
- self:SetSize(cfg.widthCB, cfg.heightCB)
- end,
- target = function(self, ...)
- Shared(self, ...)
- self.Health:SetHeight(cfg.heightT)
- self.Health:SetWidth(cfg.widthT)
- self.Power:SetWidth(cfg.widthT)
- if cfg.useCastbar then
- createCastbar(self)
- self.Castbar:SetAllPoints(self.Health)
- self.Castbar.Text:SetPoint("TOPRIGHT", self.Power, "BOTTOMRIGHT", 0, -2)
- self.Castbar.Time2:SetPoint("BOTTOMRIGHT", self.Castbar.Text, "BOTTOMLEFT", -5, 0)
- self.Castbar.Time:SetPoint("BOTTOMRIGHT", self.Castbar.Time2, "BOTTOMLEFT", 0, 0)
- if cfg.useSpellIcon then
- if not cfg.TargetRightSideSpellIcon then
- self.Castbar.Icon:SetPoint("TOPRIGHT", self.Health, "TOPLEFT", -4, 0)
- else
- self.Castbar.Icon:SetPoint("TOPLEFT", self.Health, "TOPRIGHT", 4, 0)
- end
- end
- end
- --self.Health.value:SetPoint("TOPLEFT", self.Power, "BOTTOMLEFT", 0, -2)
- --self.Power.value:SetPoint("TOPLEFT", self.Health.value, "BOTTOMLEFT", 0, -2)
- self.Power.frequentUpdates = .1
- self.Name:SetPoint("TOPRIGHT", self.Power, "BOTTOMRIGHT", 0, -3)
- self.Status:SetPoint("TOPRIGHT", self.Name, "TOPLEFT", 0, 0)
- local htext = fs(self.Health, 'OVERLAY', cfg.NameFont, 8, cfg.FontF, 1, 1, 1)
- htext:SetPoint('LEFT', 0, -19)
- htext.frequentUpdates = .1
- self:Tag(htext, '[player:hp]')
- self.Power.value:SetPoint("TOPLEFT", htext, "BOTTOMLEFT", 0, -2)
- -- combo point font string
- local cpoints = self.Health:CreateFontString(nil, 'OVERLAY')
- cpoints:SetPoint("RIGHT", self.Health, "RIGHT", -8, 0)
- cpoints:SetFont(cfg.NumbFont, cfg.ComboFS, cfg.fontFNum)
- cpoints:SetTextColor(unpack(cfg.sndcolor))
- self:Tag(cpoints, '[cpoints]')
- createBuffs(self)
- self.Buffs:SetPoint("BOTTOMLEFT", self.Health, "TOPLEFT", 0, 4)
- self.Buffs.initialAnchor = "BOTTOMLEFT"
- self.Buffs["growth-x"] = "RIGHT"
- self.Buffs.num = 18
- self.Buffs.size = 24
- self.Buffs.spacing = 4
- self.Buffs:SetSize(cfg.widthP, self.Buffs.size)
- createDebuffs(self)
- self.Debuffs:SetPoint("BOTTOMLEFT", self.Health, "TOPLEFT", 0, self.Buffs.size*cfg.buHeightMulti+12)
- self.Debuffs.initialAnchor = "BOTTOMLEFT"
- self.Debuffs["growth-x"] = "RIGHT"
- self.Debuffs["growth-y"] = "UP"
- self.Debuffs.num = 0
- --self.size = 10
- self.Debuffs:SetSize(self.Debuffs.size*13, self.Debuffs.size*2)
- if cfg.onlyShowPlayerBuffs then
- self.Buffs.onlyShowPlayer = true
- end
- if cfg.onlyShowPlayerDebuffs then
- self.Debuffs.onlyShowPlayer = true
- end
- -- plugins
- SpellRange(self)
- CombatFeedback(self)
- --Icons
- local Ihld = CreateFrame("Frame", nil, self)
- Ihld:SetAllPoints(self.Health)
- Ihld:SetFrameLevel(6)
- local q = fs(self.Health, 'OVERLAY', cfg.NameFont, 12, cfg.FontF, 1, 1, 1)
- q:SetPoint('LEFT', name, 'RIGHT', 1, 25)
- q:SetText('|cff8AFF30!|r')
- self.QuestIcon = q
- createRaidIcon(self)
- createQuestIcon(self)
- createPhaseIcon(self)
- self.RaidIcon:SetPoint("LEFT", self.Health, "LEFT", 4, 0)
- self.QuestIcon:SetPoint("LEFT", self.RaidIcon, "RIGHT", 90, -1)
- self.QuestIcon:SetSize(32,32)
- self.PhaseIcon:SetPoint("LEFT", self.QuestIcon, "RIGHT", 4, 0)
- self.RaidIcon:SetParent(Ihld)
- self.QuestIcon:SetParent(Ihld)
- self.PhaseIcon:SetParent(Ihld)
- -- update debuff highlight
- --self:RegisterEvent("UNIT_AURA", updateDispel)
- local TTFrame = CreateFrame("Frame", nil, self)
- TTFrame:SetPoint("TOPLEFT", self, "TOPLEFT", -4, 4)
- TTFrame:SetPoint("BOTTOMRIGHT", self.Power, "BOTTOMRIGHT", 4, -4)
- TTFrame:SetFrameLevel(0)
- --[[TTFrame.bg = TTFrame:CreateTexture(nil, "BACKGROUND")
- TTFrame.bg:SetPoint("TOPLEFT", TTFrame, 0, 0)
- TTFrame.bg:SetPoint("TOPRIGHT", TTFrame, 0, 0)
- TTFrame.bg:SetHeight(1)
- TTFrame.bg:SetTexture(blankTex)
- TTFrame.bg:SetGradientAlpha("HORIZONTAL", 0, 0, 0, 0.2, 0, 0, 0, 1.0) -- HORIZONTAL | VERTICAL
- TTFrame.bg2 = TTFrame:CreateTexture(nil, "BACKGROUND")
- TTFrame.bg2:SetPoint("TOPRIGHT", TTFrame, 0, -1)
- TTFrame.bg2:SetPoint("BOTTOMRIGHT", TTFrame, 0, 0)
- TTFrame.bg2:SetWidth(1)
- TTFrame.bg2:SetTexture(blankTex)
- TTFrame.bg2:SetGradientAlpha("VERTICAL", 0, 0, 0, 0.1, 0, 0, 0, 1.0) -- HORIZONTAL | VERTICAL]]--
- --[[self.dHlight:SetSize(128,16)
- self.dHlight2:SetSize(128,16)
- self.dHlight:SetTexture("Interface\\AddOns\\dMedia\\dHlightL")
- self.dHlight2:SetTexture("Interface\\AddOns\\dMedia\\dHlightL")]]--
- self:SetSize(cfg.widthT, cfg.heightT + cfg.NumbFS + cfg.PPyOffset)
- end,
- focus = function(self, ...)
- Shared(self, ...)
- self.Health:SetHeight(cfg.heightF)
- self.Health:SetWidth(cfg.widthF)
- self.Power:SetWidth(cfg.widthF)
- if cfg.useCastbar then
- createCastbar(self)
- self.Castbar:SetAllPoints(self.Health)
- self.Castbar.Text:SetPoint("TOPRIGHT", self.Power, "BOTTOMRIGHT", 0, -2)
- self.Castbar.Time2:SetPoint("BOTTOMRIGHT", self.Castbar.Text, "BOTTOMLEFT", -5, 0)
- self.Castbar.Time:SetPoint("BOTTOMRIGHT", self.Castbar.Time2, "BOTTOMLEFT", 0, 0)
- if cfg.useSpellIcon then
- if not cfg.FocusRightSideSpellIcon then
- self.Castbar.Icon:SetPoint("TOPRIGHT", self.Health, "TOPLEFT", -4, 0)
- else
- self.Castbar.Icon:SetPoint("TOPLEFT", self.Health, "TOPRIGHT", 4, 0)
- end
- end
- end
- --self.Health.value:SetPoint("TOPLEFT", self.Power, "BOTTOMLEFT", 0, -2)
- --self.Power.value:SetPoint("TOPLEFT", self.Health.value, "BOTTOMLEFT", 0, -2)
- self.Name:SetPoint("TOPRIGHT", self.Power, "BOTTOMRIGHT", 0, -3)
- self.Status:SetPoint("TOPRIGHT", self.Name, "TOPLEFT", 0, 0)
- local htext = fs(self.Health, 'OVERLAY', cfg.NameFont, 8, cfg.FontF, 1, 1, 1)
- htext:SetPoint('LEFT', 0, -19)
- htext.frequentUpdates = .1
- self:Tag(htext, '[player:hp]')
- self.Power.value:SetPoint("TOPLEFT", htext, "BOTTOMLEFT", 0, -2)
- --[[createBuffs(self)
- self.Buffs:SetPoint("BOTTOMLEFT", self.Health, "TOPLEFT", 0, 6)
- self.Buffs.initialAnchor = "BOTTOMLEFT"
- self.Buffs["growth-x"] = "RIGHT"
- self.Buffs.num = 12
- self.Buffs:SetSize(self.Buffs.size*13, self.Buffs.size)]]--
- createBuffs(self)
- self.Buffs:SetPoint("BOTTOMLEFT", self.Health, "TOPLEFT", 0, 4)
- self.Buffs.initialAnchor = "BOTTOMLEFT"
- self.Buffs["growth-x"] = "RIGHT"
- self.Buffs.num = 7
- self.Buffs.size = 24
- self.Buffs.spacing = 5
- self.Buffs:SetSize(cfg.widthP, self.Buffs.size)
- createDebuffs(self)
- self.Debuffs:SetPoint("LEFT", self.Health, "RIGHT", 3, -3)
- self.Debuffs.initialAnchor = "LEFT"
- self.Debuffs["growth-x"] = "RIGHT"
- self.Debuffs["growth-y"] = "UP"
- self.Debuffs.num = 4
- self.Debuffs.size = 20
- self.Debuffs.spacing = 4
- self.Debuffs:SetSize(self.Debuffs.size*13, self.Debuffs.size*2)
- if cfg.onlyShowPlayerBuffs then
- self.Buffs.onlyShowPlayer = true
- end
- --if cfg.onlyShowPlayerDebuffs then
- -- self.Debuffs.onlyShowPlayer = true
- --end
- self.Debuffs.onlyShowPlayer = false
- -- plugins
- SpellRange(self)
- CombatFeedback(self)
- -- Icons
- local Ihld = CreateFrame("Frame", nil, self)
- Ihld:SetAllPoints(self.Health)
- Ihld:SetFrameLevel(6)
- createRaidIcon(self)
- createQuestIcon(self)
- self.RaidIcon:SetPoint("LEFT", self.Health, "LEFT", 4, 0)
- self.QuestIcon:SetPoint("LEFT", self.RaidIcon, "RIGHT", 75, -1)
- self.RaidIcon:SetParent(Ihld)
- self.QuestIcon:SetParent(Ihld)
- -- update and debuff highlight
- --self:RegisterEvent("UNIT_AURA", updateDispel)
- self:SetSize(cfg.widthF, cfg.heightF + cfg.NumbFS + cfg.PPyOffset)
- end,
- pet = function(self, ...)
- Shared(self, ...)
- self.Health:SetHeight(cfg.heightS)
- self.Health:SetWidth(cfg.widthS)
- self.Power:SetWidth(cfg.widthS)
- self.Name:SetPoint("TOP", self.Power, "BOTTOM", 0, -3)
- self:Tag(self.Name, '[raidcolor][shortname]')
- self.Power.colorPower = true
- -- plugins
- SpellRange(self)
- BarFader(self)
- -- Icons
- createRaidIcon(self)
- self.RaidIcon:SetPoint("CENTER", self.Health, "CENTER", 0, 0)
- -- update and debuff highlight
- --self:RegisterEvent("UNIT_AURA", updateDispel)
- self:SetSize(cfg.widthS, cfg.heightS + cfg.NumbFS + cfg.PPyOffset)
- end,
- targettarget = function(self, ...)
- Shared(self, ...)
- self.Health:SetHeight(cfg.heightS)
- self.Health:SetWidth(cfg.widthS)
- self.Power:SetWidth(cfg.widthS)
- self.Name:SetPoint("TOP", self.Power, "BOTTOM", 0, -3)
- self:Tag(self.Name, '[raidcolor][shortname]')
- -- plugins
- SpellRange(self)
- -- Icons
- createRaidIcon(self)
- self.RaidIcon:SetPoint("CENTER", self.Health, "CENTER", 0, 0)
- -- update and debuff highlight
- --self:RegisterEvent("UNIT_AURA", updateDispel)
- self:SetSize(cfg.widthS, cfg.heightS + cfg.NumbFS + cfg.PPyOffset)
- end,
- focustarget = function(self, ...)
- Shared(self, ...)
- self.Health:SetHeight(cfg.heightS)
- self.Health:SetWidth(cfg.widthS)
- self.Power:SetWidth(cfg.widthS)
- self.Name:SetPoint("TOP", self.Power, "BOTTOM", 0, -3)
- self:Tag(self.Name, '[raidcolor][shortname]')
- -- plugins
- SpellRange(self)
- -- Icons
- createRaidIcon(self)
- self.RaidIcon:SetPoint("CENTER", self.Health, "CENTER", 0, 0)
- -- update and debuff highlight
- --self:RegisterEvent("UNIT_AURA", updateDispel)
- self:SetSize(cfg.widthS, cfg.heightS + cfg.NumbFS + cfg.PPyOffset)
- end,
- boss = function(self, ...)
- Shared(self, ...)
- self.Health:SetHeight(cfg.heightM)
- self.Health:SetWidth(cfg.widthM)
- self.Power:Hide()
- self.Name:SetPoint("TOPLEFT", self.Health, 0, cfg.NameFS/2)
- self:Tag(self.Name, '[afkdnd][raidcolor][abbrevname]')
- --self.Health.value:SetPoint("TOPRIGHT", self.Health, 0, cfg.NameFS/2)
- local htext = fs(self.Health, 'OVERLAY', cfg.NameFont, 8, cfg.FontF, 1, 1, 1)
- htext:SetPoint('LEFT', 0, -10)
- htext.frequentUpdates = .1
- self:Tag(htext, '[player:hp]')
- self.Power.value:SetPoint("TOPLEFT", htext, "BOTTOMLEFT", 0, -1)
- local alttext = fs(self.Health, 'OVERLAY', cfg.NameFont, 8, cfg.FontF, 1, 1, 1)
- alttext:SetPoint('RIGHT', 0, -10)
- alttext.frequentUpdates = .1
- self:Tag(alttext, '[altpower]')
- -- plugins
- SpellRange(self)
- -- Icons
- createRaidIcon(self)
- self.RaidIcon:SetPoint("CENTER", self.Health, "CENTER", 0, 0)
- self:SetSize(cfg.widthM, cfg.heightM + cfg.NumbFS + cfg.PPyOffset)
- end,
- MainTank = function(self, ...)
- Shared(self, ...)
- self.Health:SetHeight(cfg.heightM)
- self.Health:SetWidth(cfg.widthM)
- self.Power:Hide()
- self.Name:SetPoint("TOPLEFT", self.Health, 0, cfg.NameFS/2)
- self:Tag(self.Name, '[afkdnd][raidcolor][abbrevname]')
- self.Health.value:SetPoint("TOPRIGHT", self.Health, 0, cfg.NameFS/2)
- -- plugins
- SpellRange(self)
- -- Icons
- createRaidIcon(self)
- self.RaidIcon:SetPoint("CENTER", self.Health, "CENTER", 0, 0)
- end,
- arenaframes = function(self, ...)
- Shared(self, ...)
- self.Health:SetHeight(cfg.heightPA)
- self.Health:SetWidth(cfg.widthPA)
- self.Power:SetWidth(cfg.widthPA)
- --self.Health.value:SetPoint("RIGHT", self.Health, "RIGHT", -4, 0)
- --self.Power.value:SetPoint("RIGHT", self.Health.value, "LEFT", -2, 0)
- self.Status:SetPoint("TOPLEFT", self.Power, "BOTTOMLEFT", 0, -2)
- self.Name:SetPoint("TOPLEFT", self.Status, "TOPRIGHT", 0, 0)
- self.Health.value:SetFont(cfg.NumbFont, cfg.NumbFS, cfg.fontFNum)
- local htext = fs(self.Health, 'OVERLAY', cfg.NameFont, 8, cfg.FontF, 1, 1, 1)
- htext:SetPoint('RIGHT', 2, -19)
- htext.frequentUpdates = .1
- self:Tag(htext, '[player:hp]')
- self.Power.value:SetPoint("TOPRIGHT", htext, "BOTTOMRIGHT", 0, -2)
- local Auras = CreateFrame("Frame", nil, self)
- Auras:SetHeight(cfg.heightPA)
- Auras:SetPoint("TOPRIGHT", self, "TOPLEFT", 300, 30)
- Auras.initialAnchor = "TOPLEFT"
- Auras.size = 24
- Auras:SetWidth(Auras.size * 13)
- Auras.gap = false
- Auras.numBuffs = 8
- Auras.numDebuffs = 4
- Auras.spacing = 2
- Auras["growth-x"] = "RIGHT"
- Auras.PostCreateIcon = PostCreateIcon
- --Auras.PostUpdateIcon = PostUpdateIcon
- self.Auras = Auras
- -- apply aura filter
- if cfg.FilterAuras then
- self.Auras.CustomFilter = CustomFilter
- end
- -- plugins
- CombatFeedback(self)
- SpellRange(self)
- -- Icons
- createRaidIcon(self)
- self.RaidIcon:SetPoint("LEFT", self.Health, "LEFT", 4, 0)
- self:SetSize(cfg.widthPA, cfg.heightPA + cfg.NumbFS + cfg.PPyOffset)
- end,
- arenatargets = function(self, ...)
- Shared(self, ...)
- self.Health.value:ClearAllPoints()
- self.Power.value:ClearAllPoints()
- self.Health:SetHeight(cfg.heightPA)
- self.Health:SetWidth(cfg.widthS)
- self.Power:SetWidth(cfg.widthS)
- self.Name:SetPoint("CENTER", self.Health, 0, 0)
- self:Tag(self.Name, '[raidcolor][shortname]')
- -- Icons
- createRaidIcon(self)
- self.RaidIcon:SetPoint("CENTER", self.Health, "CENTER", 0, 0)
- self:SetSize(cfg.widthS, cfg.heightPA + cfg.NumbFS + cfg.PPyOffset)
- end,
- }
- -- raid, party
- do
- local range = {
- insideAlpha = 1,
- outsideAlpha = cfg.FadeOutAlpha,
- }
- UnitSpecific.party = function(self, ...)
- Shared(self, ...)
- self.unit = 'party'
- self.Health:SetHeight(cfg.heightPA)
- self.Health:SetWidth(cfg.widthPA)
- self.Power:SetWidth(cfg.widthPA)
- self.Health.value:SetFont(cfg.NumbFont, cfg.NumbFS, cfg.fontFNum)
- self.Health.value:SetPoint("TOPRIGHT", self.Power, "BOTTOMRIGHT", 0, -2)
- self.Power.value:SetPoint("RIGHT", self.Health.value, "LEFT", -2, 0)
- self.Status:SetPoint("TOPLEFT", self.Power, "BOTTOMLEFT", 0, -2)
- self.Name:SetPoint("TOPLEFT", self.Status, "TOPRIGHT", 0, 0)
- local Auras = CreateFrame("Frame", nil, self)
- Auras:SetHeight(cfg.heightPA)
- Auras:SetPoint("TOPLEFT", self, "TOPRIGHT", 6, 2)
- Auras.initialAnchor = "TOPLEFT"
- Auras.size = cfg.buSize
- Auras:SetWidth(Auras.size * 13)
- Auras.gap = true
- Auras.numBuffs = 8
- Auras.numDebuffs = 4
- Auras.spacing = 2
- Auras.PostCreateIcon = PostCreateIcon
- Auras.PostUpdateIcon = PostUpdateIcon
- self.Auras = Auras
- -- apply aura filter
- if cfg.FilterAuras then
- self.Auras.CustomFilter = CustomFilter
- end
- -- plugins
- HealComm4(self)
- CombatFeedback(self)
- self.Range = range
- -- Icons
- createRaidIcon(self)
- createPhaseIcon(self)
- self.RaidIcon:SetPoint("RIGHT", self.Health, "RIGHT", -4, 0)
- self.PhaseIcon:SetPoint("RIGHT", self.RaidIcon, "LEFT", -4, 0)
- LfDR = self.Health:CreateTexture(nil, 'OVERLAY')
- LfDR:SetSize(12, 12)
- LfDR:SetPoint("TOPLEFT", self.Health, 4, 6)
- self.LFDRole = LfDR
- LIc = self.Health:CreateTexture(nil, "OVERLAY")
- LIc:SetSize(12, 12)
- LIc:SetPoint("LEFT", LfDR, "RIGHT", 4, 0)
- self.Leader = LIc
- MLIc = self.Health:CreateTexture(nil, 'OVERLAY')
- MLIc:SetSize(12, 12)
- MLIc:SetPoint("LEFT", LIc, "RIGHT", 4, 0)
- self.MasterLooter = MLIc
- rChk = self.Health:CreateTexture(nil, 'OVERLAY')
- rChk:SetSize(18, 18)
- rChk:SetPoint("CENTER", self.Health, 0, 0)
- rChk.fadeTimer = 6
- rChk.finishedTimer = 6
- self.ReadyCheck = rChk
- -- update and debuff highlight
- --self:RegisterEvent("UNIT_AURA", Update)
- -- party pets
- if (self:GetAttribute("unitsuffix") == "pet") then
- -- clear up the inherited mess ...
- self.Auras:ClearAllPoints()
- self.Name:ClearAllPoints()
- self.Health.value:ClearAllPoints()
- self.Power.value:ClearAllPoints()
- self.Status:ClearAllPoints()
- self.PhaseIcon:ClearAllPoints()
- self.Health:SetWidth(cfg.widthS)
- self.Power:SetWidth(cfg.widthS)
- self.Name:SetPoint("TOP", self.Power, "BOTTOM", 0, -2)
- self:Tag(self.Name, '[raidcolor][shortname]')
- -- Icons
- self.RaidIcon:ClearAllPoints()
- self.RaidIcon:SetPoint("CENTER", self.Health, "CENTER", 0, 0)
- self:SetSize(cfg.widthS, cfg.heightPA + cfg.NumbFS + cfg.PPyOffset)
- end
- end
- UnitSpecific.raid = function(self, ...)
- Shared(self, ...)
- --createAuraWatch(self)
- createAuraWatch(self)
- --self.Name:SetPoint("TOPLEFT", self.Health, "BOTTOMLEFT", 1, -2)
- --self:Tag(self.Name, '[afkdnd][raidcolor][raidhpname]')
- self.Health:SetHeight(cfg.heightR)
- self.Health:SetWidth(cfg.widthR)
- self.Power:SetWidth(cfg.widthR*0.7)
- self.Power:SetPoint("TOPLEFT", self.Health, "BOTTOMLEFT", 13, 0)
- self.Power:SetFrameLevel(4)
- self.Power.PostUpdate = PostUpdatePowerRaid
- self.Power.classColor = true
- local name = fs(self.Health, 'OVERLAY', cfg.NameFont, cfg.NameFS, cfg.FontF, 1, 1, 1)
- name:SetPoint('LEFT', 2, 6)
- name:SetJustifyH'LEFT'
- self:Tag(name, '[color][veryshort:name]')
- local htext = fs(self.Health, 'OVERLAY', cfg.NameFont, cfg.NameFS, cfg.FontF, 1, 1, 1)
- htext:SetPoint('RIGHT', -2, -5)
- htext:SetJustifyH'RIGHT'
- htext.frequentUpdates = true
- self:Tag(htext, '[raid:hp]')
- local rDhF = CreateFrame("Frame", nil, self)
- rDhF:SetAllPoints(self.Health)
- rDhF:SetFrameLevel(10)
- --[[ local Debuffs = CreateFrame("Frame", nil, rDhF)
- Debuffs:SetSize(cfg.buSizeRaid*cfg.RaidDebuffNumb, cfg.buSizeRaid)
- Debuffs:SetPoint("CENTER", self.Health, "CENTER", -10, 0)
- Debuffs.initialAnchor = "TOPRIGHT"
- Debuffs.num = 1
- Debuffs.size = (20)
- Debuffs["growth-x"] = "LEFT"
- Debuffs.spacing = 7
- Debuffs.count = fs(Debuffs, 'OVERLAY', cfg.NumbFont, 8, cfg.FontF, 0.8, 0.8, 0.8)
- Debuffs.count:SetPoint('BOTTOMRIGHT', Debuffs, 'BOTTOMRIGHT', 2, 0)
- Debuffs.PostCreateIcon = PostCreateIcon
- Debuffs.PostUpdateIcon = PostUpdateIcon
- self.Debuffs = Debuffs
- if cfg.FilterAuras then
- self.Debuffs.CustomFilter = CustomFilter
- end ]]--
- local d = CreateFrame('Frame', nil, self)
- d:SetSize(20,20)
- d:SetPoint('CENTER', 0, 4)
- d:SetFrameStrata'HIGH'
- d:SetBackdrop(backdrop3)
- -- d:SetBackdrop(backdrop_1px)
- d.icon = d:CreateTexture(nil, 'OVERLAY')
- d.icon:SetTexCoord(.1,.9,.1,.9)
- d.icon:SetAllPoints(d)
- d.time = fs(d, 'OVERLAY', cfg.NumbFont, 8, cfg.FontF, 0.8, 0.8, 0.8)
- d.time:SetPoint('TOPLEFT', d, 'TOPLEFT', 0, 0)
- d.count = fs(d, 'OVERLAY', cfg.NumbFont, 8, cfg.FontF, 0.8, 0.8, 0.8)
- d.count:SetPoint('BOTTOMRIGHT', d, 'BOTTOMRIGHT', 2, 0)
- d.CustomFilter = CustomFilter
- self.RaidDebuffs = d
- -- class specific tags
- --classTags(self)
- -- plugins
- HealComm4(self)
- self.Range = range
- self.Health.Smooth = true
- self.Power.Smooth = true
- -- Icons
- createRaidIcon(self)
- self.RaidIcon:SetSize(14, 14)
- self.RaidIcon:SetPoint('TOP', self.Health, 10, 8)
- rChk = self.Health:CreateTexture(nil, 'OVERLAY')
- rChk:SetSize(18, 18)
- rChk:SetPoint("CENTER", self.Health, 0, 0)
- rChk.fadeTimer = 6
- rChk.finishedTimer = 6
- self.ReadyCheck = rChk
- --self.dHlight:SetPoint("TOPLEFT", self.Health, -3, 3)
- --self.dHlight2:SetPoint("TOPLEFT", self.Health, -3, 3)
- -- update and debuff highlight
- --self:RegisterEvent("UNIT_AURA", Update)
- end
- UnitSpecific.r40 = UnitSpecific.raid
- end
- ---------------------------------------
- -- register style(s) and spawn units --
- ---------------------------------------
- oUF:RegisterStyle("Slim", Shared)
- for unit,layout in next, UnitSpecific do
- oUF:RegisterStyle('Slim - ' .. unit:gsub("^%l", string.upper), layout)
- end
- local spawnHelper = function(self, unit, ...)
- if(UnitSpecific[unit]) then
- self:SetActiveStyle('Slim - ' .. unit:gsub("^%l", string.upper))
- local object = self:Spawn(unit)
- object:SetPoint(...)
- return object
- else
- self:SetActiveStyle'Slim'
- local object = self:Spawn(unit)
- object:SetPoint(...)
- return object
- end
- end
- if cfg.ArenaFrames then
- oUF:RegisterStyle('oUF_Slim_Arena', UnitSpecific.arenaframes)
- oUF:SetActiveStyle('oUF_Slim_Arena')
- local arena = {}
- local arenatarget = {}
- for i = 1, 5 do
- arena[i] = oUF:Spawn("arena"..i, "oUF_Arena"..i)
- if i == 1 then
- arena[i]:SetPoint('LEFT', UIParent, 'LEFT', 250, -200)
- else
- arena[i]:SetPoint("BOTTOMRIGHT", arena[i-1], "TOPRIGHT", 0, 50)
- end
- end
- oUF:RegisterStyle("oUF_Slim_ArenaTarget", UnitSpecific.arenatargets)
- oUF:SetActiveStyle("oUF_Slim_ArenaTarget")
- for i = 1, 5 do
- arenatarget[i] = oUF:Spawn("arena"..i.."target", "oUF_Arena"..i.."target"):SetPoint("TOPLEFT",arena[i], "TOPRIGHT", 8, 0)
- end
- end
- oUF:Factory(function(self)
- --local player = spawnHelper(self, 'player', "CENTER", -180, -230)
- --local player = spawnHelper(self, 'player', "CENTER", 0, -210)
- local player = spawnHelper(self, 'player', "BOTTOM", -338, 233)
- spawnHelper(self, 'pet', "RIGHT", player, "LEFT", -10, 0)
- --local target = spawnHelper(self, 'target', "CENTER", 180, -230)
- --local target = spawnHelper(self, 'target', "LEFT", player, "RIGHT", 100, 0)
- local target = spawnHelper(self, 'target', "BOTTOM", 338, 233)
- --spawnHelper(self, 'targettarget', "LEFT", target, "RIGHT", 10, 0)
- spawnHelper(self, 'targettarget', "BOTTOM", 436, 191)
- --local focus = spawnHelper(self, 'focus', "TOPLEFT", target, "BOTTOMLEFT", 0, -120)
- local focus = spawnHelper(self, 'focus', "CENTER", 360, -164)
- --spawnHelper(self, 'focustarget', "LEFT", focus, "RIGHT", 10, 0)
- spawnHelper(self, 'focustarget', "CENTER", 436, -209)
- local abiRealm=GetRealmName()
- function Frame1_OnLoad()
- print("OnLoad happening")
- print("Got realm", abiRealm)
- end
- function Button1_OnClick()
- FontString1:SetText(abiRealm)
- end
- local spec = GetSpecialization()
- --if cfg.PartyFrames then
- -- self:SetActiveStyle'Slim - Party'
- -- local party = self:SpawnHeader('oUF_Party', nil, 'custom [group:party,nogroup:raid][@raid6,noexists,group:raid] show;hide',
- -- 'showParty', true,
- -- --'showPlayer', true,
- -- 'yOffset', -10,
- -- 'template', 'oUF_SlimRaid', -- party pets
- -- 'oUF-initialConfigFunction', ([[
- -- self:SetWidth(%d)
- -- self:SetHeight(%d)
- -- ]]):format(cfg.widthPA, cfg.heightPA + cfg.NumbFS + cfg.PPyOffset))
- -- --party:SetPoint("BOTTOMLEFT", player, "TOPLEFT", 0, 60)
- -- party:SetPoint("TOPLEFT", player, "BOTTOMLEFT", 0, -40)
- --end
- if cfg.PartyFrames then
- if cfg.ShowAsRaid then
- self:SetActiveStyle'Slim - Raid'
- local party = self:SpawnHeader('oUF_Party', nil, 'custom [@raid6, exists] hide; show',--'custom [@raid6,exists] show; hide',
- 'showPlayer',
- true,'showSolo',false,'showParty',true ,'point','RIGHT','xOffset',-5,
- 'oUF-initialConfigFunction', ([[
- self:SetWidth(%d)
- self:SetHeight(%d)
- ]]):format(cfg.widthR, cfg.heightR + cfg.NumbFS))
- --party:SetPoint("LEFT", player, "RIGHT", 0, 60)
- --party:SetPoint("TOPLEFT", player, "BOTTOMLEFT", 0, -40)
- if UnitName("player") == "Miku" then
- party:SetPoint("CENTER", 0, -299)
- else if UnitName("Player") == "Zetzl" then
- if spec == 1 then
- party:SetPoint("CENTER", 0, -299)
- end
- else if abiRealm == "Kel'Thuzad" then
- if UnitName("player") == "Scrable" then
- party:SetPoint("CENTER", 0, -299)
- end
- else
- party:SetPoint("BOTTOMRIGHT", -216, 9)
- end
- end
- end
- else
- self:SetActiveStyle'Slim - Party'
- local party = self:SpawnHeader('oUF_Party',nil,'custom [@raid6,exists] hide; show',
- 'showPlayer',true,'showSolo',false,'showParty',true ,'yOffset', -23)
- -- party:SetPoint("BOTTOMLEFT", player, "TOPLEFT", 0, 60)
- --party:SetPoint("TOPLEFT", player, "BOTTOMLEFT", 0, -40)
- --if UnitName("player") == "Kaiki" or "Miku" then
- -- party:SetPoint("CENTER", 0, 100)
- --else
- -- party:SetPoint("TOPLEFT", player, "BOTTOMLEFT", 0, -40)
- --end
- --if cfg.uf.party_target then
- -- self:SetActiveStyle'Skaarj - Pet' --'custom [@raid6,exists] hide; show'
- -- local partytargets = self:SpawnHeader('oUF_PartyTargets', nil, 'custom [@raid6,exists] hide; show',
- -- 'showParty', true,'showSolo',false,'yOffset', -27,
- -- 'oUF-initialConfigFunction', ([[self:SetAttribute('unitsuffix', 'target')]]))
- -- partytargets:SetPoint('TOPLEFT', 'oUF_Party', 'TOPRIGHT', 5, 0)
- --end
- end
- end
- local arenaprep = {}
- for i = 1, 5 do
- arenaprep[i] = CreateFrame('Frame', 'oUF_ArenaPrep'..i, UIParent)
- arenaprep[i]:SetAllPoints(_G['oUF_Arena'..i])
- arenaprep[i]:SetFrameStrata('BACKGROUND')
- arenaprep[i].framebd = framebd(arenaprep[i], arenaprep[i])
- arenaprep[i].Health = CreateFrame('StatusBar', nil, arenaprep[i])
- arenaprep[i].Health:SetAllPoints()
- arenaprep[i].Health:SetStatusBarTexture(cfg.blanktexture)
- arenaprep[i].Spec = fs(arenaprep[i].Health, 'OVERLAY', cfg.NumbFont, 8, cfg.FontF, 1, 1, 1)
- arenaprep[i].Spec:SetPoint('CENTER')
- arenaprep[i].Spec:SetJustifyH'CENTER'
- arenaprep[i]:Hide()
- end
- local arenaprepupdate = CreateFrame('Frame')
- arenaprepupdate:RegisterEvent('PLAYER_LOGIN')
- arenaprepupdate:RegisterEvent('PLAYER_ENTERING_WORLD')
- arenaprepupdate:RegisterEvent('ARENA_OPPONENT_UPDATE')
- arenaprepupdate:RegisterEvent('ARENA_PREP_OPPONENT_SPECIALIZATIONS')
- arenaprepupdate:SetScript('OnEvent', function(self, event)
- if event == 'PLAYER_LOGIN' then
- for i = 1, 5 do
- arenaprep[i]:SetAllPoints(_G['oUF_Arena'..i])
- end
- elseif event == 'ARENA_OPPONENT_UPDATE' then
- for i = 1, 5 do
- arenaprep[i]:Hide()
- end
- else
- local numOpps = GetNumArenaOpponentSpecs()
- if numOpps > 0 then
- for i = 1, 5 do
- local f = arenaprep[i]
- if i <= numOpps then
- local s = GetArenaOpponentSpec(i)
- local _, spec, class = nil, 'UNKNOWN', 'UNKNOWN'
- if s and s > 0 then
- _, spec, _, _, _, _, class = GetSpecializationInfoByID(s)
- end
- if class and spec then
- local color = (CUSTOM_CLASS_COLORS or RAID_CLASS_COLORS)[class]
- if cfg.class_colorbars and color then
- f.Health:SetStatusBarColor(color.r, color.g, color.b)
- else
- f.Health:SetStatusBarColor(40/255, 40/255, 40/255)
- end
- f.Spec:SetText(spec..' - '..LOCALIZED_CLASS_NAMES_MALE[class])
- f:Show()
- end
- else
- f:Hide()
- end
- end
- else
- for i = 1, 5 do
- arenaprep[i]:Hide()
- end
- end
- end
- end)
- if cfg.RaidFrames then
- self:SetActiveStyle"Slim - Raid"
- local raid = self:SpawnHeader(nil, nil, 'custom [@raid6,exists] show; hide',
- 'showPlayer', true,
- 'showSolo', true,
- 'showParty', true,
- 'showRaid', true,
- 'xoffset', 4,
- 'yOffset', -10,
- 'point', 'LEFT',
- 'groupFilter', '1,2,3,4,5,6,7,8',
- 'groupingOrder', '1,2,3,4,5,6,7,8',
- 'groupBy', 'GROUP',
- 'maxColumns', 5,
- 'unitsPerColumn', 5,
- 'columnSpacing', -2,
- 'sortMethod', 'INDEX',
- 'columnAnchorPoint', 'TOP',
- 'oUF-initialConfigFunction', ([[
- self:SetWidth(%d)
- self:SetHeight(%d)
- ]]):format(cfg.widthR, cfg.heightR + cfg.NumbFS))
- --raid:SetPoint("BOTTOM", UIParent, "BOTTOM", 0, 150)
- --raid:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", 100, 100)
- if UnitName("player") == "Miku" then
- raid:SetPoint("CENTER", 0, -359)
- else if abiRealm == "Kel'Thuzad" then
- if UnitName("player") == "Scrable" then
- raid:SetPoint("CENTER", 0, -359)
- end
- else if UnitName("Player") == "Zetzl" then
- if spec == 1 then
- raid:SetPoint("CENTER", 0, -359)
- end
- else
- raid:SetPoint("BOTTOMRIGHT", -216, 9)
- end
- end
- end
- end
- if cfg.RaidFrames2 then
- self:SetActiveStyle"Slim - R40"
- local r40 = self:SpawnHeader('oUF_R40', nil, 'raid40',
- 'showPlayer', true,
- 'showSolo', true,
- 'showParty', true,
- 'showRaid', true,
- 'xoffset', 4,
- 'yOffset', -5,
- 'point', 'LEFT',
- 'groupFilter', '1,2,3,4,5,6,7,8',
- 'groupingOrder', '1,2,3,4,5,6,7,8',
- 'groupBy', 'GROUP',
- 'maxColumns', 5,
- 'unitsPerColumn', 5,
- 'columnSpacing', 4,
- 'sortMethod', 'INDEX',
- 'columnAnchorPoint', 'TOP',
- 'oUF-initialConfigFunction', ([[
- self:SetWidth(%d)
- self:SetHeight(%d)
- ]]):format(cfg.widthR, cfg.heightR + cfg.NumbFS))
- r40:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 30, -250)
- end
- if cfg.BossFrames then
- self:SetActiveStyle"Slim - Boss"
- local boss = {}
- for i = 1, MAX_BOSS_FRAMES do
- local unit = self:Spawn("boss"..i, "oUF_SlimBoss"..i)
- if i==1 then
- --unit:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", -80, -420)
- unit:SetPoint("LEFT", 25, -162)
- else
- unit:SetPoint("TOPLEFT", boss[i-1], "BOTTOMLEFT", 0, -10)
- end
- boss[i] = unit
- end
- end
- if cfg.MTFrames then
- self:SetActiveStyle"Slim - MainTank"
- local Main_Tank = self:SpawnHeader("oUF_MainTank", nil, 'raid, party, solo',
- 'showRaid', true,
- "groupFilter", "MAINTANK",
- 'yOffset', -10,
- "template", "oUF_SlimMTartemplate", -- MT Target
- 'oUF-initialConfigFunction', ([[
- self:SetWidth(%d)
- self:SetHeight(%d)
- ]]):format(cfg.widthM, cfg.heightM))
- --Main_Tank:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", -80, -250)
- Main_Tank:SetPoint("TOPLEFT", 22, -251)
- end
- if cfg.useClassPoints then
- oUF:RegisterStyle("oUF_Slim_pClassPoints", UnitSpecific.pClassPoints)
- oUF:SetActiveStyle("oUF_Slim_pClassPoints")
- oUF:Spawn('player', 'pClassPoints'):SetPoint("BOTTOMRIGHT", player, "TOPRIGHT", 0, 4)
- end
- if IsAddOnLoaded("oUF_WeaponEnchant") then
- oUF:RegisterStyle("oUF_Slim_WpnEnch", UnitSpecific.WpnEnch)
- oUF:SetActiveStyle("oUF_Slim_WpnEnch")
- oUF:Spawn('player', 'WpnEnch'):SetPoint("BOTTOMRIGHT", player, "BOTTOMLEFT", -8, -(cfg.WeapEnchantIconSize+8))
- end
- end)
- -- disable blizzard raidframe manager
- if cfg.disableRaidFrameManager then
- CompactRaidFrameManager:UnregisterAllEvents()
- CompactRaidFrameManager:HookScript('OnShow', function(s) s:Hide() end)
- CompactRaidFrameManager:Hide()
- CompactRaidFrameContainer:UnregisterAllEvents()
- CompactRaidFrameContainer:HookScript('OnShow', function(s) s:Hide() end)
- CompactRaidFrameContainer:Hide()
- end
- -- remove SET_FOCUS & CLEAR_FOCUS from menu, to prevent errors
- do
- for k,v in pairs(UnitPopupMenus) do
- for x,y in pairs(UnitPopupMenus[k]) do
- if y == "SET_FOCUS" then
- table.remove(UnitPopupMenus[k],x)
- elseif y == "CLEAR_FOCUS" then
- table.remove(UnitPopupMenus[k],x)
- end
- end
- end
- end
- -------------
- -- The End --
- -------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement