-- [[ FonZii by Tillï-Draenor ]]

local fontPath = [[Interface\AddOns\FonZii\BarlowCondensed-Bold.ttf]]

local function Apply()
    -- Core Engine Overrides
    STANDARD_TEXT_FONT, UNIT_NAME_FONT, DAMAGE_TEXT_FONT, NAMEPLATE_FONT, CHATTING_FONT = fontPath, fontPath, fontPath, fontPath, fontPath

    -- 100% Coverage Scan
    for _, fontObj in pairs(_G) do
        if type(fontObj) == "table" and fontObj.GetFont and fontObj.SetFont then
            pcall(function()
                local _, size, flags = fontObj:GetFont()
                fontObj:SetFont(fontPath, size, flags)
            end)
        end
    end
end

-- Event handler for cold login
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_LOGIN")
f:SetScript("OnEvent", function()
    Apply()
    f:UnregisterAllEvents()
end)

-- Instant apply for /reload (Reload Friendly)
if IsLoggedIn() then Apply() end