From e343fd57a3babd4518076c435f09c7ecc9c67021 Mon Sep 17 00:00:00 2001
From: Kum1ta
Date: Tue, 8 Oct 2024 20:10:08 +0200
Subject: [PATCH] Game - fix english - add pfp on scoreboard
---
.../djangoserver/file/server/server/Game.py | 6 +-
.../server/templates/multiOnlineGamePage.html | 2 +-
.../djangoserver/file/server/server/urls.py | 4 +-
.../nginx/static/javascript/lobbyPage/main.js | 24 +++----
.../static/javascript/multiOnlineGame/Map.js | 65 ++++++++++++++-----
.../javascript/multiOnlineGame/Player.js | 3 +-
.../multiOnlineGame/multiOnlineGamePage.js | 7 +-
.../tournamentPage/TournamentPage.js | 20 +++++-
.../javascript/typeResponse/typeTournament.js | 10 ++-
.../static/javascript/waitingGame/main.js | 4 +-
.../nginx/static/style/game/games.css | 9 ++-
11 files changed, 105 insertions(+), 49 deletions(-)
diff --git a/docker-compose/requirements/djangoserver/file/server/server/Game.py b/docker-compose/requirements/djangoserver/file/server/server/Game.py
index 4d2bcbc..0e403bc 100644
--- a/docker-compose/requirements/djangoserver/file/server/server/Game.py
+++ b/docker-compose/requirements/djangoserver/file/server/server/Game.py
@@ -6,7 +6,7 @@
# By: edbernar 0 ms
-
You lose...
+
You lost...
0 - 0
You will be redirected to the lobby in 5 seconds
diff --git a/docker-compose/requirements/djangoserver/file/server/server/urls.py b/docker-compose/requirements/djangoserver/file/server/server/urls.py
index e2b0430..e0037f0 100644
--- a/docker-compose/requirements/djangoserver/file/server/server/urls.py
+++ b/docker-compose/requirements/djangoserver/file/server/server/urls.py
@@ -25,9 +25,9 @@ urlpatterns = [
path("multiOnlineGamePage", views.multiOnlineGamePage, name='multiOnlineGamePage'),
path("waitingGamePage", views.waitingGamePage, name='waitingGamePage'),
path("profilPage", views.profilPage, name='profilPage'),
- path("game", views.game, name='game'),
+ # path("game", views.game, name='game'),
path("wait_game", views.game, name='wait_game'),
- #path("tournament", views.tournament, name='tournament'),
+ path("tournament", views.tournament, name='tournament'),
path("login42", views.login42, name='login42'),
path("logout", views.logout, name='logout'),
path("verify", views.verify, name='verify'),
diff --git a/docker-compose/requirements/nginx/static/javascript/lobbyPage/main.js b/docker-compose/requirements/nginx/static/javascript/lobbyPage/main.js
index 2e0d124..c2c6f69 100644
--- a/docker-compose/requirements/nginx/static/javascript/lobbyPage/main.js
+++ b/docker-compose/requirements/nginx/static/javascript/lobbyPage/main.js
@@ -6,7 +6,7 @@
/* By: edbernar {
+ if (event.key == 'Enter')
+ startTournmament();
+ });
listSelectCard = document.getElementsByClassName('select-card');
listSelectCard[0].addEventListener('click', selectGameModeOne);
listSelectCard[1].addEventListener('click', selectGameModeTwo);
@@ -177,11 +182,6 @@ function startTournmament()
sendRequest("tournament", {action: 0, code: code});
}
-function showGameMode()
-{
- document.getElementById('loginPopup').style.display = 'flex';
-}
-
function closePopUpWhenClickOutsite (event)
{
if (event.target == document.getElementById('loginPopup'))
diff --git a/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Map.js b/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Map.js
index 6454796..04ae3b9 100644
--- a/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Map.js
+++ b/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Map.js
@@ -6,7 +6,7 @@
/* By: edbernar {
- contextImageLeft.drawImage(imageLeft, 0, 0, canvasImageLeft.width, canvasImageLeft.height);
- textureImageLeft.needsUpdate = true;
- };
+ canvasImageLeft.classList.add('imgScoreBoard');
+ imageLeft.onload = () => this.#putPlayerPfp(canvasImageLeft, contextImageLeft, textureImageLeft, imageLeft);
canvasImageRight = document.createElement('canvas');
contextImageRight = canvasImageRight.getContext('2d');
@@ -505,11 +507,9 @@ class Map
contextImageLeft.clearRect(0, 0, canvasImageLeft.width, canvasImageLeft.height);
const imageRight = new Image();
+ imageRight.setAttribute('class', 'imgScoreBoard');
imageRight.src = sourceImageRight;
- imageRight.onload = () => {
- contextImageRight.drawImage(imageRight, 0, 0, canvasImageRight.width, canvasImageRight.height);
- textureImageRight.needsUpdate = true;
- };
+ imageRight.onload = () => this.#putPlayerPfp(canvasImageRight, contextImageRight, textureImageRight, imageRight);
let materialProfileLeft = null;
let materialProfileRight = null;
@@ -537,8 +537,10 @@ class Map
geometryProfileRightBack = new THREE.PlaneGeometry(width - 0.15, height - 0.15);
meshProfileRightBack = new THREE.Mesh(geometryProfileRightBack, materialProfileRight);
- meshProfileLeftFront.position.set(-spacing - width / 2 - 0.325, 1.6, - 8.5 + depth / 2 + 0.001);
- meshProfileRightFront.position.set(spacing + width / 2 + 0.325, 1.6, - 8.5 + depth / 2 + 0.01);
+ meshProfileLeftFront.position.set(-spacing - width / 2 - 0.275, 1.6, - 8.15);
+ meshProfileLeftFront.rotation.y = 0.4;
+ meshProfileRightFront.position.set(spacing + width / 2 + 0.275, 1.6, - 8.15);
+ meshProfileRightFront.rotation.y = -0.4;
meshProfileLeftBack.rotation.y = Math.PI;
meshProfileLeftBack.position.set(-spacing - width / 2 - 0.325, 1.6, 8.5 - depth / 2 - 0.001);
@@ -554,6 +556,33 @@ class Map
this.arrObject.push({mesh: meshProfileLeftBack, name: "", type: "profileBoard"});
this.arrObject.push({mesh: meshProfileRightBack, name: "", type: "profileBoard"});
};
+
+ #putPlayerPfp(canvasImage, contextImage, textureImage, img)
+ {
+ const canvasWidth = canvasImage.width;
+ const canvasHeight = canvasImage.height;
+ const imageWidth = img.width;
+ const imageHeight = img.height;
+ const canvasRatio = canvasWidth / canvasHeight;
+ const imageRatio = imageWidth / imageHeight;
+ let drawWidth, drawHeight;
+
+ if (imageRatio > canvasRatio)
+ {
+ drawWidth = canvasWidth;
+ drawHeight = canvasWidth / imageRatio;
+ }
+ else
+ {
+ drawWidth = canvasHeight * imageRatio;
+ drawHeight = canvasHeight;
+ }
+ const offsetX = (canvasWidth - drawWidth) / 2;
+ const offsetY = (canvasHeight - drawHeight) / 2;
+ contextImage.clearRect(0, 0, canvasWidth, canvasHeight);
+ contextImage.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);
+ textureImage.needsUpdate = true;
+ }
putVideoOnCanvas(nbImage, vNameNb)
{
diff --git a/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Player.js b/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Player.js
index f07ff12..5b44527 100644
--- a/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Player.js
+++ b/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Player.js
@@ -6,7 +6,7 @@
/* By: edbernar {
if (content.opponentLeft)
diff --git a/docker-compose/requirements/nginx/static/javascript/tournamentPage/TournamentPage.js b/docker-compose/requirements/nginx/static/javascript/tournamentPage/TournamentPage.js
index 8e39769..2985a41 100644
--- a/docker-compose/requirements/nginx/static/javascript/tournamentPage/TournamentPage.js
+++ b/docker-compose/requirements/nginx/static/javascript/tournamentPage/TournamentPage.js
@@ -6,7 +6,7 @@
/* By: edbernar {
+ for (let i = 0; i < document.body.children.length; i++)
+ {
+ document.body.children[i].style.animation = 'none';
+ }
+ }, 500);
divTopInfo = document.getElementById('actuality-tournament');
divInfo = document.getElementsByClassName('infoo')[0];
divChat = document.getElementsByClassName('chat')[0];
@@ -48,6 +57,11 @@ class TournamentPage
divTopInfo = null;
divInfo = null;
divChat = null;
+ Object.values(playerList).forEach((info) => {
+ info.id = 0;
+ info.username = null;
+ info.pfp = null;
+ });
}
static newOpponent(content)
diff --git a/docker-compose/requirements/nginx/static/javascript/typeResponse/typeTournament.js b/docker-compose/requirements/nginx/static/javascript/typeResponse/typeTournament.js
index 52d6391..cff9b67 100644
--- a/docker-compose/requirements/nginx/static/javascript/typeResponse/typeTournament.js
+++ b/docker-compose/requirements/nginx/static/javascript/typeResponse/typeTournament.js
@@ -6,7 +6,7 @@
/* By: edbernar {
+ pageRenderer.changePage('tournamentPage', false, content.code);
+ }, 400);
+ }
}
export { typeTournament };
\ No newline at end of file
diff --git a/docker-compose/requirements/nginx/static/javascript/waitingGame/main.js b/docker-compose/requirements/nginx/static/javascript/waitingGame/main.js
index 0cedd66..8b01d2b 100644
--- a/docker-compose/requirements/nginx/static/javascript/waitingGame/main.js
+++ b/docker-compose/requirements/nginx/static/javascript/waitingGame/main.js
@@ -6,7 +6,7 @@
/* By: edbernar {
document.body.style.animation = 'anim3 0.5s';
document.body.style.opacity = 0;
- pageRenderer.changePage("multiOnlineGamePage", false, {player: lastSelected ? lastSelected.id : 0, opponent: content.skin, opponentGoaldId: content.goalId});
+ pageRenderer.changePage("multiOnlineGamePage", false, {player: lastSelected ? lastSelected.id : 0, opponent: content.skin, opponentGoaldId: content.goalId, pfp: content.pfpSelf, pfpOpponent: content.pfpOpponent});
}, 1000);
}, 500);
document.body.removeChild(returnButton);
diff --git a/docker-compose/requirements/nginx/static/style/game/games.css b/docker-compose/requirements/nginx/static/style/game/games.css
index e9008ff..9431138 100644
--- a/docker-compose/requirements/nginx/static/style/game/games.css
+++ b/docker-compose/requirements/nginx/static/style/game/games.css
@@ -6,7 +6,7 @@
/* By: edbernar