diff --git a/xtrn/bublbogl/game.js b/xtrn/bublbogl/game.js index ce3a2ab1ceac4453cdf48fb3679aa72b0d54c88a..e6c19528bd2c8753133aaf046eece27e5deb98d7 100644 --- a/xtrn/bublbogl/game.js +++ b/xtrn/bublbogl/game.js @@ -20,16 +20,14 @@ load("funclib.js"); load("calendar.js"); load(root + "timer.js"); -client.subscribe(game_id,"players"); -splashStart(); - -var wordvalues=[]; -wordvalues[4]=1; -wordvalues[5]=2; -wordvalues[6]=3; -wordvalues[7]=5; -wordvalues[8]=11; - +var word_value={ + 4:1, + 5:2, + 6:3, + 7:5, + 8:11, + 9:15 +}; var max_future=2; var current; var today; @@ -47,7 +45,6 @@ var data = new GameData(); function boggle() { function init() { - client.write(game_id,"players." + user.alias + ".laston",time(),2); player=findUser(user.alias); current=calendar.selected; today=calendar.selected; @@ -347,8 +344,8 @@ function boggle() { function AddPoints(word) { var length=word.length; - if(length>8) length=8; - info.score.points+=wordvalues[length]; + if(length>9) length=9; + info.score.points+=word_value[length]; } function AddWord(word) { @@ -370,7 +367,8 @@ function boggle() { } function endGame() { - if(!playing_game) return; + if(!playing_game) + return; var p=data.players[user.alias]; var points=info.score.points; p.points+=points; @@ -422,7 +420,7 @@ function boggle() { } } - if(data.winner.name) { + if(data.winner) { console.gotoxy(48,18); console.putmsg("\1c\1h" + data.winner.name); console.gotoxy(75,18); @@ -505,7 +503,11 @@ function processUpdates(update) { obj[p.shift()] = update.data; data.updated=true; } -function splashStart() { +function open() { + client.callback=processUpdates; + client.subscribe(game_id,"players"); + data.players[user.alias].laston = time(); + data.storePlayer(); console.ctrlkey_passthru="+ACGKLOPQRTUVWXYZ"; bbs.sys_status|=SS_MOFF; bbs.sys_status |= SS_PAUSEOFF; @@ -520,8 +522,9 @@ function splashStart() { } console.clear(); } -function splashExit() { +function close() { + client.unsubscribe(game_id,"players"); console.ctrlkey_passthru=oldpass; bbs.sys_status&=~SS_MOFF; bbs.sys_status&=~SS_PAUSEOFF; @@ -540,8 +543,6 @@ function splashExit() { console.clear(); } -client.callback=processUpdates; - //GAME OBJECTS function GameData() { this.updated=false; @@ -554,10 +555,9 @@ function GameData() { this.init=function() { client.lock(game_id,"month",2); var month = client.read(game_id,"month"); - if(month != this.month) + if(month !== this.month) this.newMonth(); - else - this.loadMonth(); + this.loadMonth(); client.unlock(game_id,"month"); if(!this.players) @@ -581,13 +581,11 @@ function GameData() { /* save this round's winner to the database */ this.storeRoundWinner=function() { this.players = client.read(game_id,"players",1); - for(p in this.players) { - if(!this.winner) - this.winner=this.players[p]; - else { - if(this.players[p].points>this.winner.points) - this.winner=this.players[p]; - } + for each(var p in this.players) { + if(this.winner.points == undefined) + this.winner=p; + else if(p.points>this.winner.points) + this.winner=p; } client.write(game_id,"winner",this.winner,2); } @@ -913,9 +911,9 @@ function Score() { this.words=0; } +open(); boggle(); -client.unsubscribe(game_id,"players"); -splashExit(); +close();