1
0
mirror of https://github.com/exane/not-gwent-online synced 2024-10-31 10:36:53 +00:00
not-gwent-online/server/User.js

80 lines
1.4 KiB
JavaScript
Raw Normal View History

2015-06-10 16:12:52 +00:00
var Entity = require("./Entity");
var User = (function(){
var User = function(socket){
if(!(this instanceof User)){
return (new User(socket));
}
Entity.call(this);
/**
* constructor here
*/
this.socket = socket;
this._id = socket.id;
2015-06-13 07:58:55 +00:00
this.generateName();
2015-06-10 16:12:52 +00:00
};
User.prototype = Object.create(Entity.prototype);
var r = User.prototype;
/**
* methods && properties here
* r.property = null;
* r.getProperty = function() {...}
*/
r._id = null;
2015-06-13 07:58:55 +00:00
r._name = null;
r._room = null;
2015-06-10 16:12:52 +00:00
r.socket = null;
r.getID = function(){
return this._id;
}
2015-06-13 07:58:55 +00:00
r.joinRoom = function(roomid){
this.socket.join(roomid);
2015-06-10 16:12:52 +00:00
}
r.send = function(event, data, room){
room = room || null;
data = data || null;
if(!room){
this.socket.emit(event, data);
}
else {
this.socket.to(room).emit(event, data);
}
}
2015-06-13 07:58:55 +00:00
r.generateName = function(){
var name = "Player" + (((Math.random() * 8999) + 1000) | 0);
//if(lobby.hasUser(name)) return generateName();
this._name = name;
return name;
}
r.setName = function(name) {
console.log("user name changed from %s to %s", this._name, name);
this._name = name;
}
r.getName = function() {
return this._name;
}
r.getRoom = function() {
return this._room;
}
r.setRoom = function(room) {
this._room = room;
}
r.disconnect = function() {
}
2015-06-10 16:12:52 +00:00
return User;
})();
module.exports = User;