wip
This commit is contained in:
parent
61b49ab370
commit
94d263993d
5 changed files with 32 additions and 3 deletions
|
|
@ -1,6 +1,8 @@
|
||||||
<div class="displaybox">
|
<div class="displaybox">
|
||||||
<div id="mainbox" class="mainboxDisplay">
|
<div id="mainbox" class="mainboxDisplay">
|
||||||
<button id="QueueBtn" class="btn-style absolute top-4 left-6">Queue Up</button>
|
<button id="QueueBtn" class="btn-style absolute top-4 left-6">Queue Up</button>
|
||||||
|
<button id="LocalBtn" class="btn-style absolute top-14 left-6">Local Game</button>
|
||||||
|
<span id="queue-info" class="flex rounded-3xl border-10 border-gray-500 bg-gray-500 absolute top-4 right-6">?👤 ?⏳ ?▮•▮</span> <!-- total | in queue | playing-->
|
||||||
<br>
|
<br>
|
||||||
<h1 class="text-3xl font-bold text-gray-800">
|
<h1 class="text-3xl font-bold text-gray-800">
|
||||||
Pong Box<span id="t-username"></span>
|
Pong Box<span id="t-username"></span>
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ enum QueueState {
|
||||||
InQueu = "In Queue",
|
InQueu = "In Queue",
|
||||||
InGame = "In Game",
|
InGame = "In Game",
|
||||||
Iddle = "Queue Up",
|
Iddle = "Queue Up",
|
||||||
|
In_local = "In Local",
|
||||||
};
|
};
|
||||||
|
|
||||||
document.addEventListener("ft:pageChange", (newUrl) => {
|
document.addEventListener("ft:pageChange", (newUrl) => {
|
||||||
|
|
@ -54,7 +55,9 @@ function pongClient(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
|
||||||
const playerL = document.querySelector<HTMLDivElement>('#player-left');
|
const playerL = document.querySelector<HTMLDivElement>('#player-left');
|
||||||
const playerR = document.querySelector<HTMLDivElement>('#player-right');
|
const playerR = document.querySelector<HTMLDivElement>('#player-right');
|
||||||
const queueBtn = document.querySelector<HTMLButtonElement>("#QueueBtn");
|
const queueBtn = document.querySelector<HTMLButtonElement>("#QueueBtn");
|
||||||
|
const LocalGameBtn = document.querySelector<HTMLButtonElement>("#LocalBtn");
|
||||||
const gameBoard = document.querySelector<HTMLDivElement>("#pongbox");
|
const gameBoard = document.querySelector<HTMLDivElement>("#pongbox");
|
||||||
|
const queue_infos = document.querySelector<HTMLSpanElement>("#queue-info");
|
||||||
|
|
||||||
let socket = getSocket();
|
let socket = getSocket();
|
||||||
|
|
||||||
|
|
@ -62,7 +65,7 @@ function pongClient(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
|
||||||
navigateTo("/app");
|
navigateTo("/app");
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
if (!batLeft || !batRight || !ball || !score || !queueBtn || !playerL || !playerR || !gameBoard) // sanity check
|
if (!batLeft || !batRight || !ball || !score || !queueBtn || !playerL || !playerR || !gameBoard || !queue_infos || !LocalGameBtn) // sanity check
|
||||||
return showError('fatal error');
|
return showError('fatal error');
|
||||||
|
|
||||||
// ---
|
// ---
|
||||||
|
|
@ -151,6 +154,18 @@ function pongClient(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
|
||||||
queueBtn.innerText = QueueState.InQueu;
|
queueBtn.innerText = QueueState.InQueu;
|
||||||
socket.emit('enqueue');
|
socket.emit('enqueue');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
LocalGameBtn.addEventListener("click", () => {
|
||||||
|
if (queueBtn.innerText !== QueueState.Iddle || currentGame !== null) {
|
||||||
|
showError("cant launch a local game while in queue/in game");
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
socket.emit("localGame");
|
||||||
|
queueBtn.innerText = QueueState.In_local;
|
||||||
|
LocalGameBtn.innerText = "playing";
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
async function get_opponent(opponent_id : string) {
|
async function get_opponent(opponent_id : string) {
|
||||||
let t = await client.getUser({user:opponent_id});
|
let t = await client.getUser({user:opponent_id});
|
||||||
|
|
||||||
|
|
@ -194,10 +209,13 @@ function pongClient(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
|
||||||
new_div.innerText = 'you ' + end_txt;
|
new_div.innerText = 'you ' + end_txt;
|
||||||
new_div.className = "pong-end-screen";
|
new_div.className = "pong-end-screen";
|
||||||
gameBoard.appendChild(new_div);
|
gameBoard.appendChild(new_div);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
new_div.remove();
|
new_div.remove();
|
||||||
}, 3 * 1000);
|
}, 3 * 1000);
|
||||||
|
|
||||||
|
if (currentGame.local) {
|
||||||
|
LocalGameBtn.innerText = "Local Game"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
render(DEFAULT_POSITIONS);
|
render(DEFAULT_POSITIONS);
|
||||||
batLeft.style.backgroundColor = DEFAULT_COLOR;
|
batLeft.style.backgroundColor = DEFAULT_COLOR;
|
||||||
|
|
@ -212,11 +230,17 @@ function pongClient(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
|
||||||
// ---
|
// ---
|
||||||
// queue evt end
|
// queue evt end
|
||||||
// ---
|
// ---
|
||||||
|
|
||||||
|
queueBtn.innerText = QueueState.Iddle;
|
||||||
|
currentGame = null;
|
||||||
render(DEFAULT_POSITIONS);
|
render(DEFAULT_POSITIONS);
|
||||||
batLeft.style.backgroundColor = DEFAULT_COLOR;
|
batLeft.style.backgroundColor = DEFAULT_COLOR;
|
||||||
batRight.style.backgroundColor = DEFAULT_COLOR;
|
batRight.style.backgroundColor = DEFAULT_COLOR;
|
||||||
|
|
||||||
socket.on('updateInformation', (e) => showInfo(`UpdateInformation: t=${e.totalUser};q=${e.inQueue}`));
|
socket.on('updateInformation', (e) => {
|
||||||
|
showInfo(`UpdateInformation: t=${e.totalUser};q=${e.inQueue};g=${e.totalGames}`);
|
||||||
|
queue_infos.innerText = `${e.totalUser}👤 ${e.inQueue}⏳ ${e.totalGames}▮•▮`;
|
||||||
|
});
|
||||||
socket.on('queueEvent', (e) => showInfo(`QueueEvent: ${e}`));
|
socket.on('queueEvent', (e) => showInfo(`QueueEvent: ${e}`));
|
||||||
showInfo("butter");
|
showInfo("butter");
|
||||||
showInfo("butter-toast");
|
showInfo("butter-toast");
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import { Socket } from 'socket.io-client';
|
||||||
export type UpdateInfo = {
|
export type UpdateInfo = {
|
||||||
inQueue: number,
|
inQueue: number,
|
||||||
totalUser: number,
|
totalUser: number,
|
||||||
|
totalGames : number
|
||||||
}
|
}
|
||||||
|
|
||||||
export type PaddleData = {
|
export type PaddleData = {
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import { Socket } from 'socket.io';
|
||||||
export type UpdateInfo = {
|
export type UpdateInfo = {
|
||||||
inQueue: number,
|
inQueue: number,
|
||||||
totalUser: number,
|
totalUser: number,
|
||||||
|
totalGames : number
|
||||||
}
|
}
|
||||||
|
|
||||||
export type PaddleData = {
|
export type PaddleData = {
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,7 @@ class StateI {
|
||||||
socket.emit('updateInformation', {
|
socket.emit('updateInformation', {
|
||||||
inQueue: this.queue.size,
|
inQueue: this.queue.size,
|
||||||
totalUser: this.users.size,
|
totalUser: this.users.size,
|
||||||
|
totalGames: this.games.size,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue