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

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

local function Apply()
    -- Core Engine Overhaul (Retail & Modern)
    STANDARD_TEXT_FONT, UNIT_NAME_FONT, DAMAGE_TEXT_FONT, NAMEPLATE_FONT, CHATTING_FONT = fontPath, fontPath, fontPath, fontPath, fontPath

    -- Classic-Specific Compatibility (Era/SoD/Cata)
    if WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE then
        UIDROPDOWNMENU_DEFAULT_TEXT_FONT = fontPath
        NAMEPLATE_SPELL_CAST_FONT = fontPath
        FRIENDS_FONT = fontPath 
        MORPHEUS_FONT = fontPath 
    end

    -- 100% Coverage Scan (Reload Friendly)
    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
if IsLoggedIn() then Apply() end