+ $(document).keydown(function(e) {
+ if (typeof self.player == 'undefined') return;
+ switch (e.which) {
+ case 37:
+ self.player.move('left');
+ break;
+ case 38:
+ self.player.move('up');
+ break;
+ case 39:
+ self.player.move('right');
+ break;
+ case 40:
+ self.player.move('down');
+ break;
+ default:
+ return;
+ }
+ e.preventDefault();
+ });
+
+ $.getJSON(endpoint, { 'cmd' : 'start' }, function(json) {
+ self.build(json)
+ });
+
+ this.populate = function(players) {
+ for (var i in this.players)
+ if (this.players[i].id != this.player.id)
+ mud.rooms[this.players[i].x][this.players[i].y].clear();
+ this.players = players;
+ for (var i in this.players)
+ if (this.players[i].id != this.player.id)
+ mud.rooms[this.players[i].x][this.players[i].y].join(1, this.players[i]);
+ }
+
+ this.poll = function() {
+ $.getJSON(endpoint, { 'cmd' : 'poll' }, function(json) {
+ for (var i in json.messages) {
+ var msg = json.messages[i];
+ if (msg.id == self.player.id) continue;
+ self.writeToLog(msg.name + ':', msg.type, msg.message);
+ $("#log").animate({ scrollTop: $('#log')[0].scrollHeight }, 1000);
+ }
+ self.populate(json.players);
+ });
+ }