38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { lobbyMessage } from "./Classes/lobbyMessage.js";
|
|
import { lobbyState } from "./Classes/lobbyState.js";
|
|
import { persistentItemData } from "./Classes/itemData.js";
|
|
import { Socket } from 'socket.io';
|
|
import { Endpoints } from "./endpoints.js";
|
|
|
|
export class game{
|
|
static socketIO : any
|
|
static itemCount : number = 0
|
|
static itemsDB : persistentItemData[] = []
|
|
|
|
static lobbyState : lobbyState = new lobbyState()
|
|
|
|
/** Max items: 28 */
|
|
static messages : lobbyMessage[] = [];
|
|
|
|
static addMessage(message:lobbyMessage) {
|
|
while(game.messages.length >= 20){
|
|
game.messages.pop();
|
|
}
|
|
|
|
game.messages.unshift(message)
|
|
game.socketIO.emit(Endpoints.Messages, JSON.stringify(game.messages))
|
|
}
|
|
|
|
static getItemTemplate(templateId){
|
|
let item = this.itemsDB.find(i=>i.id == templateId)
|
|
if (item == null){
|
|
console.log("Error, item " + templateId + " not found")
|
|
return null
|
|
}
|
|
return item
|
|
}
|
|
|
|
static removeUser(socket : Socket) : void {
|
|
this.lobbyState.activeUsers = this.lobbyState.activeUsers.filter(u => u !== socket)
|
|
}
|
|
} |