diff --git a/server/levels/sessions/level_session_schema.coffee b/server/levels/sessions/level_session_schema.coffee index 290422c10..ca8df4c05 100644 --- a/server/levels/sessions/level_session_schema.coffee +++ b/server/levels/sessions/level_session_schema.coffee @@ -146,6 +146,18 @@ _.extend LevelSessionSchema.properties, numberOfLosses: type: 'number' default: 0 + + scoreHistory: + type: 'array' + title: 'Score History' + description: 'A list of objects representing the score history of a session' + items: + title: 'Score History Point' + description: 'An array with the format [unix timestamp, totalScore]' + type: 'array' + items: + type: 'number' + matches: type: 'array' diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee index 1e2cd3f29..0462cd503 100644 --- a/server/queues/scoring.coffee +++ b/server/queues/scoring.coffee @@ -443,10 +443,15 @@ updateScoreInSession = (scoreObject,callback) -> if err? then return callback err, null session = session.toObject() + newTotalScore = scoreObject.meanStrength - 1.8 * scoreObject.standardDeviation + scoreHistoryAddition = [Date.now(), newTotalScore] updateObject = meanStrength: scoreObject.meanStrength standardDeviation: scoreObject.standardDeviation - totalScore: scoreObject.meanStrength - 1.8 * scoreObject.standardDeviation + totalScore: newTotalScore + $push: + scoreHistory: scoreHistoryAddition + LevelSession.update {"_id": scoreObject.id}, updateObject, callback log.info "New total score for session #{scoreObject.id} is #{updateObject.totalScore}"