49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { playerData } from "../Classes/playerData";
|
|
import { levelState } from "./levelState";
|
|
import { userData } from "./userData";
|
|
|
|
export class lobbyState{
|
|
users : userData[] = [];
|
|
players : playerData[] = [];
|
|
rooms : levelState[] = []
|
|
|
|
copyLight(){
|
|
let lobby = Object.assign({}, this);
|
|
lobby.players = []
|
|
lobby.users = []
|
|
for (let i = 0; i < this.players.length; i++) {
|
|
lobby.players.push(this.players[i].copyLight());
|
|
}
|
|
lobby.rooms = this.rooms
|
|
return lobby
|
|
}
|
|
|
|
addUser(userData, playerData){
|
|
let uIdx = this.users.findIndex(u=>u.id == userData.id)
|
|
let pIdx = this.players.findIndex(u=>u.id == playerData.id)
|
|
if(uIdx != -1 || pIdx != -1){
|
|
console.log("User " + userData.login + " is already in the game!")
|
|
return false;
|
|
}
|
|
|
|
this.users.push(userData)
|
|
this.players.push(playerData)
|
|
return true
|
|
}
|
|
|
|
removeUser(id){
|
|
let idx = this.users.findIndex(u=>u.id == id)
|
|
if(idx != -1){
|
|
this.users.splice(idx, 1)
|
|
}
|
|
|
|
idx = this.players.findIndex(u=>u.id == id)
|
|
if(idx != -1){
|
|
this.players.splice(idx, 1)
|
|
}
|
|
}
|
|
|
|
findPlayer(id: number){
|
|
return this.players.find(p=>p.id == id)
|
|
}
|
|
} |