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.
102 lines
2.9 KiB
102 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')
|
|
|