@Override
    public void paintComponent(Graphics graphics) {
        graphics.setColor(new Color(48, 0, 48));
        graphics.fillRect(0, 0, 640, 480);
        graphics.setFont(descent.getFont());
        Graphics2D graphics2D = (Graphics2D) graphics;
        graphics2D.translate(-camera.getLocation().getX(), -camera.getLocation().getY());
        render(graphics);
        graphics2D.translate(camera.getLocation().getX(), camera.getLocation().getY());
        if (descent.getOptions().isLightingEnabled()) graphics.drawImage(lighting, 0, 0, null);
        descent.getNotificationManager().render(graphics);
        graphics.setColor(Color.RED);
        if (!descent.getPlayer().isDead()) graphics.drawString("SCORE: " + descent.getPlayer().getScore(), 416, 16);
        if (countDown > 0) {
            graphics.setColor(Color.BLACK);
            graphics.fillOval(288, 208, 64, 64);
            graphics.setColor(Color.RED);
            graphics.drawOval(288, 208, 64, 64);
            if (countDown > 120)
                graphics.drawString("3", 320 - ((int) graphics.getFontMetrics().getStringBounds("3", graphics).getWidth() / 2), 244);
            else if (countDown > 80)
                graphics.drawString("2", 320 - ((int) graphics.getFontMetrics().getStringBounds("2", graphics).getWidth() / 2), 244);
            else
                graphics.drawString("1", 320 - ((int) graphics.getFontMetrics().getStringBounds("1", graphics).getWidth() / 2), 244);
        }
    }