Exemple #1
0
    bool ChangeState(GameState newState)
    {
        if (state == newState)
        {
            return(false);
        }

        switch (state)   //by exiting this state
        {
        case GameState.Desktop:
            break;

        case GameState.Tutorial:
            if (tutorial)
            {
                tutorial.AbortTutorial();
            }
            //else
            //tutorialFlag += tutorial.AbortTutorial;//TODO: flag setzten
            break;

        case GameState.Playing:
            LogSystem.LogOnFile("===== ===== Game has Ended ===== =====");
            NewsSource.StopGeneration();
            GameManager.MessengerHandler.DeleteAllMessages();
            if (timer)
            {
                timer.ChangeStateToTimeShort();
            }
            //else
            //timerFlag += timer.ChangeStateToTimeShort;//TODO: flag setzten
            break;

        case GameState.EndScreen:
            if (end)
            {
                end.Close();
            }
            correctMarkedArticles        = 0;
            wronglyMarkedArticlesAsFalse = 0;
            wronglyMarkedArticlesAsTrue  = 0;
            break;

        default:
            break;
        }

        state = newState;

        switch (state)   //by entering this state
        {
        case GameState.Desktop:
            break;

        case GameState.Tutorial:
            PlayerID = Random.Range(0, 9999999);
            LogSystem.LogOnNewFile("===== ===== Started Tutorial ===== =====");
            LogSystem.LogOnFile("PlayerID = " + PlayerID);
            if (tutorial)
            {
                tutorial.StartTutorial();
            }
            //else
            //tutorialFlag += tutorial.StartTutorial;//TODO: flag setzten
            break;

        case GameState.Playing:
            timeLeft = timeToPlayInSeconds;
            LogSystem.LogOnFile("===== ===== New Game Started ===== =====");
            NewsSource.StartGeneration();
            if (timer)
            {
                timer.ChangeStateToCountdown();
            }
            //else
            //timerFlag += timer.ChangeStateToCountdown;//TODO: flag setzten
            ProgressionManager.RestartCounter();
            break;

        case GameState.EndScreen:
            LogSystem.LogOnFile("Correct: " + correctMarkedArticles + ". False positive: " + wronglyMarkedArticlesAsTrue + ". False negative: " + wronglyMarkedArticlesAsFalse);
            if (end)
            {
                end.Show();
            }
            break;

        default:
            break;
        }
        return(true);
    }