diff --git a/xtrn/maze/game.js b/xtrn/maze/game.js index 15e8444f959c7cc8d5aaca6363a3fbe26ce8f1a8..b23ed02f5060167abdfedcd953996065d1fba43d 100644 --- a/xtrn/maze/game.js +++ b/xtrn/maze/game.js @@ -190,7 +190,12 @@ function lobby() { var channel = chat.channels[chat_tab.title.toUpperCase()]; while(channel && channel.messages.length > 0) { var msg = channel.messages.shift(); - var str = msg.nick.name + ": " + msg.str; + var str = ""; + if(msg.nick) + var str = getColor(chat.settings.NICK_COLOR) + msg.nick.name + "\1n: " + + getColor(chat.settings.TEXT_COLOR) + msg.str; + else + var str = getColor(chat.settings.NOTICE_COLOR) + msg.str; chat_tab.getcmd(str + "\r\n"); } } @@ -334,17 +339,23 @@ function lobby() { function joinMaze() { /* find the first open game number */ gnum=getOpenGame(); + if(isNaN(gnum)) { + log(LOG_WARNING,"Error finding game number"); + return false; + } client.lock("mazerace","games." + gnum,2); - + var game = client.read("mazerace","games." + gnum); var player = new Player(profile.name,profile.avatar,profile.color); + /* if the game doesnt exist, create it */ - if(!data.games[gnum]) { + if(!game) { data.games[gnum] = new Game(gnum); data.games[gnum].players[profile.name] = player; client.write("mazerace","games." + gnum,data.games[gnum]); } /* otherwise, store player info in game */ else { + data.games[gnum] = game; data.games[gnum].players[profile.name] = player; client.write("mazerace","games."+gnum+".players."+profile.name,player); } @@ -661,8 +672,10 @@ function race(gameNumber) { data.storePlayerPosition(gameNumber,player); } function takeDamage() { - if(settings.damage) + if(settings.damage) { player.health -= settings.damage_qty; + write(ascii(7)); + } data.storePlayerHealth(gameNumber,player); showPlayerInfo(); }