void GameOver()
    {
        bHasGameStarted = false;
        pauseMenuUI.SetActive(false);
        mainGameUI.SetActive(false);
        gameOverUI.SetActive(true);
        bShouldPauseGame = true;

        SaveStuff savedData = LoadData();

        savedData.AddDoCats(flyHits * doCatsPerFlyHit);

        switch (currentGameMode)
        {
        case GameModes.TIME30:
            if (goals > savedData.GetBest30sScore())
            {
                savedData.SetBest30sScore(goals);
            }
            highScoreText.text = savedData.GetBest30sScore().ToString();
            break;

        case GameModes.TIME60:
            if (goals > savedData.GetBest60sScore())
            {
                savedData.SetBest60sScore(goals);
            }
            highScoreText.text = savedData.GetBest60sScore().ToString();
            break;

        case GameModes.TIME90:
            if (goals > savedData.GetBest90sScore())
            {
                savedData.SetBest90sScore(goals);
            }
            highScoreText.text = savedData.GetBest90sScore().ToString();
            break;
        }
        Save(savedData);

        currentScoreText.text = goals.ToString();
        doCatsScore.text      = "$" + savedData.GetDoCats().ToString();
    }