2023-06-17 00:38:55 +00:00
|
|
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
|
|
});
|
|
|
|
};
|
|
|
|
import { Game } from "./net/game.js";
|
|
|
|
import { InitialState, onLogic } from "./logic/logic.js";
|
|
|
|
import { startGraphicsUpdater } from "./renderer.js";
|
|
|
|
import { GameKeyMap, Key } from "./types.js";
|
|
|
|
const join = document.getElementById("join");
|
|
|
|
const lobby = document.getElementById("lobby");
|
|
|
|
lobby.style.display = "none";
|
|
|
|
join.onsubmit = function (event) {
|
|
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
|
|
event.preventDefault();
|
|
|
|
const room_code = this.elements.room_code.value.trim();
|
|
|
|
const player_name = this.elements.name.value.trim();
|
|
|
|
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) => {
|
|
|
|
if (startData.data.started) {
|
|
|
|
alert('Room has already started');
|
|
|
|
return false;
|
2023-06-14 01:18:01 +00:00
|
|
|
}
|
2023-06-17 00:38:55 +00:00
|
|
|
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;
|
2023-06-14 01:18:01 +00:00
|
|
|
}
|
2023-06-17 00:38:55 +00:00
|
|
|
lobby.style.display = "";
|
|
|
|
return true;
|
|
|
|
};
|
|
|
|
const onFrame = (data, frame) => {
|
|
|
|
updateGraphics(data ? data.data : InitialState, frame);
|
|
|
|
};
|
|
|
|
const startGame = (code, name) => {
|
|
|
|
const game = new Game(3000);
|
|
|
|
game.start(code, GameKeyMap, onLoad, onFrame, onLogic, {
|
|
|
|
start: false,
|
|
|
|
key: Key.NOTHING,
|
|
|
|
name
|
|
|
|
});
|
|
|
|
};
|
|
|
|
//# sourceMappingURL=main.js.map
|