diff --git a/index.html b/index.html index 57be3be..203c8a1 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@
Round
-

-
0
Round Streak +
Round Streak
diff --git a/js/game.js b/js/game.js index cb5cc64..294b45b 100644 --- a/js/game.js +++ b/js/game.js @@ -10,7 +10,7 @@ function Game(Manipulator, dobads) this.setup(); this.lastTick = Date.now(); window.requestAnimationFrame(this.tick.bind(this)); -} +}; removeFromArray = function(array, element) { @@ -49,9 +49,9 @@ Game.prototype.tick = function() Game.prototype.calculatePlayerStats = function() { - var bestscore = this.playerstats.getRawStat("best-score") || -1; - var bestlevel = this.playerstats.getRawStat("best-level-level") || -1; - var bestroom = this.playerstats.getRawStat("best-level-room") || -1; + var bestscore = this.playerstats.getRawStat("best-score"); + var bestlevel = this.playerstats.getRawStat("best-level-level"); + var bestroom = this.playerstats.getRawStat("best-level-room"); if (this.score > bestscore) { this.setPlayerStat("best-score", this.score); @@ -101,7 +101,7 @@ Game.prototype.onRoomEnd = function(scorebonus, newpos, newside) this.setStat("total", this.made + this.missed); this.setStat("correct", this.made); this.setStat("streak", this.streak); - var beststreak = this.playerstats.getRawStat("best-streak") || 0; + var beststreak = this.playerstats.getRawStat("best-streak"); if (this.streak > beststreak) { this.setPlayerStat("best-streak", this.streak); @@ -113,6 +113,7 @@ Game.prototype.onRoomEnd = function(scorebonus, newpos, newside) { this.onLevelEnd(); } + this.savePlayerData() this.onRoomStart(newpos, newside); }; @@ -240,7 +241,7 @@ Game.prototype.onGameEnd = function() Game.prototype.restart = function() { this.gameStart(); -} +}; Game.prototype.gameStart = function() { @@ -288,6 +289,48 @@ Game.prototype.setup = function() { this.playerstats = new GameStats(); this.setPlayerStat("best-streak", 0); + this.setPlayerStat("best-score", 0); + this.setPlayerStat("best-level-level", 0); + this.setPlayerStat("best-level-room", 0); + var newdata = this.getSavedPlayerData(); + if (newdata) + { + this.playerstats.setStatsData(newdata); + } this.playerstats.setGameStatMorpher("best-score", function(val) { return Math.floor(val); }); this.gameStart(); + this.manip.applyStats(this.playerstats); +}; + +Game.prototype.getSavedPlayerData = function() +{ + try + { + var savedData = window.localStorage.getItem("playerStats"); + if (savedData) + { + var data = JSON.parse(savedData); + if (data) + { + return data; + } + } + } + catch (error) + { + } +}; + +Game.prototype.savePlayerData = function() +{ + var data = JSON.stringify(this.playerstats.gamestats); + try + { + window.localStorage.setItem("playerStats", data); + return true; + } + catch (error) + { + return false; + } }; \ No newline at end of file diff --git a/js/game_data.js b/js/game_data.js deleted file mode 100644 index e69de29..0000000 diff --git a/js/game_stats.js b/js/game_stats.js index f6cd39d..d636a6c 100644 --- a/js/game_stats.js +++ b/js/game_stats.js @@ -4,6 +4,12 @@ function GameStats() this.gamestatmorphers = new Object(); }; +GameStats.prototype.setStatsData = function(data) +{ + delete this.gamestats; + this.gamestats = data; +}; + GameStats.prototype.setGameStat = function(stat, value) { this.gamestats[stat] = value; diff --git a/js/player_stats.js b/js/player_stats.js deleted file mode 100644 index e69de29..0000000