import { Game } from "./net/game.js"; import { InitialState, onLogic } from "./logic/logic.js"; import { startGraphicsUpdater } from "./renderer.js"; import { GameKeyMap, Frame, Key } from "./types.js"; const join = document.getElementById("join") const lobby = document.getElementById("lobby") lobby.style.display = "none" join.onsubmit = async function(event) { event.preventDefault() const room_code = (document.getElementById("room_code")).value const player_name = (document.getElementById("player_name")).value if (room_code == '') { alert('Please enter a room code') return } if (player_name == '') { alert('Please enter a player name') return } join.style.display = "none" startGame(room_code, player_name) } const updateGraphics = startGraphicsUpdater() const onLoad = (startData: Frame) => { if (startData.data.started) { alert('Room has already started') return false } let players = Object.values(startData.data.players).filter(p => { return p !== null && p.name !== undefined }) if (players.length >= 4) { alert('Room is full') return false } lobby.style.display = "" return true } const onFrame = (data: Frame, frame: number) => { updateGraphics(data ? data.data : InitialState, frame); } const startGame = (code: string, name: string) => { const game = new Game(3000) game.start( code, GameKeyMap, onLoad, onFrame, onLogic, { start: false, key: Key.NOTHING, name } ) }