Projektmanagement-Game/public/js/index.js

85 lines
2.9 KiB
JavaScript
Raw Normal View History

2021-06-08 13:38:43 +00:00
let username;
let room_name;
2021-05-26 17:34:31 +00:00
window.addEventListener('beforeunload', function (e) {
2021-07-14 09:34:36 +00:00
e.preventDefault(); // Prevent user from exiting page
});
window.addEventListener('keydown', function (event) {
if (event.code === 'Enter' && app == null) document.getElementById('ok').click();
2021-05-26 14:26:05 +00:00
});
2021-06-08 13:38:43 +00:00
document.getElementById('ok').addEventListener('click', function () {
username = document.getElementById('username').value;
room_name = document.getElementById('room').value;
if (username !== "" && room_name !== "") {
socket = io("/", {
closeOnBeforeunload: false
});
// Login
socket.emit('add user', {'username': username, 'room_name': room_name});
2021-06-18 11:18:25 +00:00
2021-07-11 16:28:23 +00:00
socket.on('login', function (data) {
connected = true;
2021-06-18 11:18:25 +00:00
document.getElementById('login').style.display = 'none';
document.getElementById('game').style.display = 'flex';
document.getElementById('chat').style.display = 'flex';
start_game();
resize();
2021-06-18 11:18:25 +00:00
addLogMessage("Welcome " + username + "!");
2021-07-11 16:28:23 +00:00
switch (parseInt(data)) {
case 0:
document.getElementsByTagName('header')[0].classList.add('yellow');
break;
case 1:
document.getElementsByTagName('header')[0].classList.add('blue');
break;
case 2:
document.getElementsByTagName('header')[0].classList.add('green');
break;
case 3:
document.getElementsByTagName('header')[0].classList.add('red');
break;
}
});
2021-06-18 11:18:25 +00:00
socket.on('error', function (data) {
if (data === 'Game started already or room has too many members' || data === 'Username already exists') {
2021-07-12 08:37:14 +00:00
document.getElementById('login').style.display = 'flex';
document.getElementById('game').style.display = 'none';
document.getElementById('chat').style.display = 'none';
document.getElementById('error').innerText = data;
}
});
2021-06-18 11:18:25 +00:00
socket.on('new message', function (data) {
addChatMessage(data);
});
2021-06-18 11:18:25 +00:00
socket.on('user joined', function (data) {
addLogMessage(data + ' joined');
});
2021-06-18 11:18:25 +00:00
socket.on('user left', function (data) {
addLogMessage(data + ' left');
});
} else {
document.getElementById('error').innerText = 'Username and/or room name cannot be empty!';
}
2021-06-24 09:12:34 +00:00
});
function open_manual() {
let frame = document.createElement('iframe');
frame.src = 'data/Spielanleitung.pdf';
frame.id = 'spielanleitung';
2021-07-01 07:23:50 +00:00
document.getElementById('manual').innerHTML = '';
document.getElementById('manual').appendChild(frame);
2021-06-24 09:12:34 +00:00
document.getElementById('modal').style.display = 'block';
}