Exemplo n.º 1
0
    public void CancelExperiment()
    {
        _recordingActive = false;
        var incompleteData = new IngameScoreData();

        incompleteData._id          = _currentParticipantId;
        incompleteData._quizScore   = -1;
        incompleteData._damageScore = -1;
        incompleteData._timeScore   = -1;
        incompleteData._totalScore  = -1;

        WriteGamePerformanceToFile(incompleteData);

        if (_experimentType == ExperimentType.detection)
        {
            WriteDetectionPerformanceToFile();
        }
        else if (_experimentType == ExperimentType.effectiveness)
        {
            WriteEffectivenessDataToFile();
        }

        _gainIncrementer.enabled             = false;
        _redirectionManager.MAX_ROT_GAIN     = 0;
        _redirectionManager.MIN_ROT_GAIN     = 0;
        _redirectionManager.CURVATURE_RADIUS = 1000;

        Debug.Log("Experiment Cancellation is finished!");
    }
    private void FetchScores()
    {
        var currentTime = Time.realtimeSinceStartup;

        _scoreDamageTaken = Mathf.Clamp(_scorePotentialDamageTaken - (_redirectionManager._playerManager._numberOfHitsTaken * _scoreLossPerDamageTaken), 0, _scorePotentialDamageTaken);
        _scoreQuizAnswers = Mathf.Clamp(_quizManager._numberOfCorrectAnswers * (_scorePotentialQuizAnswers / _quizManager._correctnessDisplays.Count), 0, _scorePotentialQuizAnswers);
        _scoreTime        = Mathf.Clamp(_scorePotentialTime - (int)UtilitiesER.Remap(0, _maximumTimeInMinutes * 60f, 0, _scorePotentialTime, currentTime - _startTime), 0, _scorePotentialTime);
        var finalScore = _scoreDamageTaken + _scoreTime + _scoreQuizAnswers;

        _scoreText.text = "Score(<color=#00ff00ff>Time Taken</color>):\n" + _scoreTime + "\n" +
                          "Score(<color=#ff0000ff>Damage Taken</color>):\n" + _scoreDamageTaken + "\n" +
                          "Score(<color=#a52a2aff>Quiz Answers</color>):\n" + _scoreQuizAnswers + "\n" +
                          "Score(<color=#ffa500ff>Total</color>):\n" + finalScore;

        _leaderboardText.text = "Participant ID:\n" + _experimentDataManager._currentParticipantId +
                                "\nScore Placement:\n" + FindScorePlacement(finalScore) + "/" + (_experimentDataManager._previousGameScores.Count + 1);

        var newGameData = new IngameScoreData();

        newGameData._id          = _experimentDataManager._currentParticipantId;
        newGameData._damageScore = _scoreDamageTaken;
        newGameData._quizScore   = _scoreQuizAnswers;
        newGameData._timeScore   = _scoreTime;
        newGameData._totalScore  = finalScore;

        _experimentDataManager.FinishDataRecording(newGameData);
    }
Exemplo n.º 3
0
    public void FinishDataRecording(IngameScoreData data)
    {
        WriteGamePerformanceToFile(data);

        if (_experimentType == ExperimentType.detection)
        {
            WriteDetectionPerformanceToFile();
        }
        else if (_experimentType == ExperimentType.effectiveness)
        {
            WriteEffectivenessDataToFile();
        }
    }
Exemplo n.º 4
0
    private void WriteGamePerformanceToFile(IngameScoreData data)
    {
        if (File.Exists(Application.dataPath + "/" + _gameScoreFileName))
        {
            // Append
            using (var appender = File.AppendText(Application.dataPath + "/" + _gameScoreFileName))
            {
                var column1 = _currentParticipantId.ToString();
                var column2 = data._timeScore.ToString();
                var column3 = data._damageScore.ToString();
                var column4 = data._quizScore.ToString();
                var column5 = data._totalScore.ToString();
                var line    = string.Format("{0},{1},{2},{3},{4}", column1, column2, column3, column4, column5);
                appender.WriteLine(line);
                appender.Flush();
            }
        }
        else
        {
            // Write
            using (var writer = new StreamWriter(Application.dataPath + "/" + _gameScoreFileName))
            {
                var column1 = "ParticipantID";
                var column2 = "TimeScore";
                var column3 = "DamageScore";
                var column4 = "QuizScore";
                var column5 = "TotalScore";
                var line    = string.Format("{0},{1},{2},{3},{4}", column1, column2, column3, column4, column5);
                writer.WriteLine(line);
                writer.Flush();

                column1 = _currentParticipantId.ToString();
                column2 = data._timeScore.ToString();
                column3 = data._damageScore.ToString();
                column4 = data._quizScore.ToString();
                column5 = data._totalScore.ToString();
                line    = string.Format("{0},{1},{2},{3},{4}", column1, column2, column3, column4, column5);
                writer.WriteLine(line);
                writer.Flush();
            }
        }
    }