Scoresheet: Save results to localstorage

This commit is contained in:
LoveEevee
2020-03-06 03:02:07 +03:00
parent 41afc2a905
commit 21259abdda
6 changed files with 165 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
class Scoresheet{
constructor(controller, results, multiplayer, touchEnabled){
this.controller = controller
this.resultsObj = results
this.results = {}
for(var i in results){
this.results[i] = results[i].toString()
@@ -54,6 +55,7 @@ class Scoresheet{
"ura": 4
}
this.scoreSaved = false
this.redrawRunning = true
this.redrawBind = this.redraw.bind(this)
this.redraw()
@@ -248,6 +250,9 @@ class Scoresheet{
if(this.state.screen === "fadeIn" && elapsed < 1000){
bgOffset = Math.min(1, this.draw.easeIn(1 - elapsed / 1000)) * (winH / 2)
}
if((this.state.screen !== "fadeIn" || elapsed >= 1000) && !this.scoreSaved){
this.saveScore()
}
if(bgOffset){
ctx.save()
@@ -854,6 +859,25 @@ class Scoresheet{
return Date.now()
}
saveScore(){
if(!this.controller.autoPlayEnabled && this.resultsObj.points > 0){
var title = this.controller.selectedSong.originalTitle
var difficulty = this.resultsObj.difficulty
var oldScore = scoreStorage.get(title, difficulty)
if(!oldScore || oldScore.points <= this.resultsObj.points){
this.resultsObj.crown = ""
if(this.controller.game.rules.clearReached(this.resultsObj.gauge)){
this.resultsObj.crown = this.resultsObj.bad === 0 ? "gold" : "silver"
}
delete this.resultsObj.title
delete this.resultsObj.difficulty
delete this.resultsObj.gauge
scoreStorage.add(title, difficulty, this.resultsObj)
}
}
this.scoreSaved = true
}
clean(){
this.keyboard.clean()
this.gamepad.clean()