private void drawLevelProgress(Graphics2D graphics) {
        Color color;
        String message;
        if (lives == 0) {
            color = Color.RED;
            message = "GAME OVER";
        }
        else if (level.isLastWave() && spawnTicks >= 30 && spawnTicks <= 270) {
            color = Color.YELLOW;
            message = String.format("LEVEL %d COMPLETE", levelNo);
        }
        else if (spawnTicks >= 30 && spawnTicks <= 90) {
            color = Color.WHITE;
            message = String.format("WAVE %d OF %d COMPLETE", waveNo, level.numWaves());
        }
        else
            return;
        int xOffset = screen.getXOffset(graphics, bigFont, message);
        graphics.setFont(bigFont);
        graphics.setColor(color);
        graphics.drawString(message, xOffset, screen.getHeight() / 2 - 10);
        if (lives == 0)
            drawAccuracyMessage(graphics);
        else if (upgrade != null)
            drawUpgradeMessage(graphics);
    }