public void CorrectView()
        {
            if (moveCoroutine != null)
            {
                StopCoroutine(moveCoroutine);
            }
            IsInputEnabled = true;

            foreach (GameObject o in FruitonsGrid)
            {
                if (o != null)
                {
                    Destroy(o);
                }
            }
            FruitonsGrid = GridLayoutManager.MakeNewGrid();
            GridLayoutManager.ResetHighlights();
        }
        private void Start()
        {
            GameManager.Instance.CurrentBattleViewer = this;
#if UNITY_ANDROID
            InfoAndroidButton.gameObject.SetActive(true);
#endif
            GameResultsPanel.gameObject.SetActive(false);
            GridLayoutManager = GridLayoutManager.Instance;
            FruitonsGrid      = GridLayoutManager.MakeNewGrid();

            battleType = (BattleType)Enum.Parse(typeof(BattleType), Scenes.GetParam(Scenes.BATTLE_TYPE));
            GameMode   = (GameMode)Enum.Parse(typeof(GameMode), Scenes.GetParam(Scenes.GAME_MODE));

            Debug.Log("playing battle: " + battleType + " in mode: " + GameMode);

            // We come from draft
            object gameReady;
            bool   comeFromDraft = Scenes.TryGetObjParam(Scenes.GAME_READY_MSG, out gameReady);

            switch (battleType)
            {
            case BattleType.OnlineBattle:
                battle = new OnlineBattle(this, !comeFromDraft);
                PanelLoadingGame.SetActive(true);
                break;

            case BattleType.LocalDuel:
                battle = new OfflineBattle(this);
                InitializeOfflineGame();
                break;

            case BattleType.AIBattle:
                var aiType = (AIType)Enum.Parse(typeof(AIType), Scenes.GetParam(Scenes.AI_TYPE));
                Debug.Log("Battle vs AI: " + aiType);
                battle = new AIBattle(this, aiType);
                InitializeOfflineGame();
                break;

            case BattleType.ChallengeBattle:
                battle = new OnlineBattle(this, false);
                PanelLoadingGame.SetActive(true);
                break;

            case BattleType.TutorialBattle:
                battle = new AIBattle(this, AIType.Tutorial);
                TutorialPanel.SetActive(true);
                InitializeOfflineGame();
                tutorial = new Tutorial(this);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            battle.OnEnable();

            if (comeFromDraft)
            {
                Debug.Assert(battleType == BattleType.OnlineBattle);
                ((OnlineBattle)battle).ProcessMessage((GameReady)gameReady);
            }
        }