You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
2.9 KiB

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule('Skins')
local _G = _G
local format, pairs, strmatch = format, pairs, strmatch
local hooksecurefunc = hooksecurefunc
local GetBattlefieldScore = GetBattlefieldScore
local IsActiveBattlefieldArena = IsActiveBattlefieldArena
local FauxScrollFrame_GetOffset = FauxScrollFrame_GetOffset
function S:SkinWorldStateScore()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.bgscore) then return end
local WorldStateScoreFrame = _G.WorldStateScoreFrame
WorldStateScoreFrame:EnableMouse(true)
S:HandleFrame(WorldStateScoreFrame, true, nil, 0, -12, -78, 71)
S:HandleCloseButton(_G.WorldStateScoreFrameCloseButton, WorldStateScoreFrame.backdrop)
_G.WorldStateScoreScrollFrame:StripTextures()
S:HandleScrollBar(_G.WorldStateScoreScrollFrameScrollBar)
_G.WorldStateScoreScrollFrameScrollBar:Point('RIGHT', _G.WorldStateScoreFrame, 'RIGHT', -44, 38)
local buttons = {
_G.WorldStateScoreFrameKB,
_G.WorldStateScoreFrameDeaths,
_G.WorldStateScoreFrameHK,
_G.WorldStateScoreFrameDamageDone,
_G.WorldStateScoreFrameHealingDone,
_G.WorldStateScoreFrameHonorGained,
_G.WorldStateScoreFrameName,
_G.WorldStateScoreFrameClass,
_G.WorldStateScoreFrameTeam
}
for _, button in pairs(buttons) do
button:StyleButton()
end
S:HandleButton(_G.WorldStateScoreFrameLeaveButton)
for i = 1, 3 do
S:HandleTab(_G['WorldStateScoreFrameTab'..i])
_G['WorldStateScoreFrameTab'..i..'Text']:Point('CENTER', 0, 2)
end
_G.WorldStateScoreFrameTab2:Point('LEFT', _G.WorldStateScoreFrameTab1, 'RIGHT', -15, 0)
_G.WorldStateScoreFrameTab3:Point('LEFT', _G.WorldStateScoreFrameTab2, 'RIGHT', -15, 0)
for i = 1, 5 do
_G['WorldStateScoreColumn'..i]:StyleButton()
end
local myName = format('> %s <', E.myname)
hooksecurefunc('WorldStateScoreFrame_Update', function()
local inArena = IsActiveBattlefieldArena()
local offset = FauxScrollFrame_GetOffset(_G.WorldStateScoreScrollFrame)
for i = 1, 20 do
local fullName, _, _, _, _, faction, _, _, _, classToken = GetBattlefieldScore(offset + i)
if fullName then
local name, realm = strmatch(fullName, '([^%-]+)(.*)')
if name == E.myname then
name = myName
end
if realm and realm ~= '' then
local color
if inArena then
if faction == 1 then
color = '|cffffd100'
else
color = '|cff19ff19'
end
else
if faction == 1 then
color = '|cff00adf0'
else
color = '|cffff1919'
end
end
name = format('%s|cffffffff - |r%s%s|r', name, color, realm)
end
local classTextColor = E:ClassColor(classToken)
local nameText = _G['WorldStateScoreButton'..i..'NameText']
nameText:SetText(name)
nameText:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b)
end
end
end)
end
S:AddCallback('SkinWorldStateScore')