statki/public/assets/js/socket.js

122 lines
3.2 KiB
JavaScript
Raw Permalink Normal View History

const socket = io();
// Handling server-sent events
socket.on("joined", (nick) => {
lockUI(true);
$("#oppNameField").html(nick);
switchView("preparingGame");
lockUI(false);
2024-01-08 16:53:12 +01:00
});
socket.on("player left", () => {
lockUI(true);
switchView("mainMenuView");
lockUI(false);
});
socket.on("gameReady", (gameId) => {
setTimeout(() => {
window.location.replace("/game?id=" + gameId);
}, 2000);
});
var nickname;
socket.emit("whats my nick", (myNickname) => {
nickname = myNickname;
});
socket.on("game start", (gameInfo) => {
let opp;
if (gameInfo.players[0]!==nickname) {
opp = gameInfo.players[0];
} else {
opp = gameInfo.players[1];
}
alert(`Grasz przeciwko: ${opp}`);
});
2024-01-08 16:53:12 +01:00
$("#createGameButton").on("click", function () {
lockUI(true);
socket.emit("create lobby", (response) => {
switch (response.status) {
case "ok":
$("#createGameCode").val(response.gameCode);
switchView("pvpCreateView");
lockUI(false);
break;
case "alreadyInLobby":
$("#createGameCode").val(response.gameCode);
switchView("pvpCreateView");
lockUI(false);
break;
default:
alert(`Wystąpił nieznany problem\nStatus: ${response.status}`);
lockUI(false);
break;
}
});
});
$("#leaveGameButton").on("click", function () {
lockUI(true);
window.location.reload();
// socket.emit("leave lobby", (response) => {
// switch (response.status) {
// case "ok":
// switchView("mainMenuView");
// lockUI(false);
// break;
2024-01-08 16:53:12 +01:00
// case "youreNotInLobby":
// switchView("mainMenuView");
// lockUI(false);
// break;
2024-01-08 16:53:12 +01:00
// default:
// alert(`Wystąpił nieznany problem\nStatus: ${response.status}`);
// switchView("mainMenuView");
// lockUI(false);
// break;
// }
// });
2024-01-08 16:53:12 +01:00
});
$("#pvpMenuButton").on("click", function () {
switchView('pvpMenuView');
});
const form = document.getElementById('pvpJoinForm');
const input = document.getElementById('pvpJoinCode');
form.addEventListener('submit', (e) => {
e.preventDefault();
if (input.value && input.value.length === 6) {
lockUI(true);
socket.emit("join lobby", input.value, (response) => {
switch (response.status) {
case "ok":
$("#oppNameField").html(response.oppNickname);
switchView("preparingGame");
2024-01-08 16:53:12 +01:00
lockUI(false);
break;
//case "alreadyInLobby":
// $("#createGameCode").val(response.gameCode);
// switchView("pvpCreateView");
// lockUI(false);
// break;
default:
alert(`Wystąpił nieznany problem\nStatus: ${response.status}`);
lockUI(false);
switchView("mainMenuView");
break;
}
});
input.value = '';
}
});