/// <summary>
        /// Shows the end game screen
        /// </summary>
        protected void OpenEndGameScreen(string endResultText)
        {
            LevelItem level = GameManager.instance.GetLevelForCurrentScene();

            endGameCanvas.enabled = true;

            int score = CalculateFinalScore();

            scorePanel.SetStars(score);
            if (level != null)
            {
                //endGameMessageText.text = string.Format (endResultText, level.name.ToUpper ());
                GameManager.instance.CompleteLevel(level.id, score);
            }
            else
            {
                // If the level is not in LevelList, we should just use the name of the scene. This will not store the level's score.
                //string levelName = SceneManager.GetActiveScene ().name;
                //endGameMessageText.text = string.Format (endResultText, levelName.ToUpper ());
            }

            if (!TowerDefense.UI.HUD.GameUI.instanceExists)
            {
                return;
            }
            if (TowerDefense.UI.HUD.GameUI.instance.state == TowerDefense.UI.HUD.GameUI.State.Building)
            {
                TowerDefense.UI.HUD.GameUI.instance.CancelGhostPlacement();
            }
            TowerDefense.UI.HUD.GameUI.instance.GameOver();
        }