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); }
public void FinishDataRecording(IngameScoreData data) { WriteGamePerformanceToFile(data); if (_experimentType == ExperimentType.detection) { WriteDetectionPerformanceToFile(); } else if (_experimentType == ExperimentType.effectiveness) { WriteEffectivenessDataToFile(); } }
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(); } } }