affichage du tour
This commit is contained in:
parent
f2674b0874
commit
619c584572
2 changed files with 29 additions and 3 deletions
|
|
@ -7,6 +7,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h2>ChessNut — Partie</h2>
|
<h2>ChessNut — Partie</h2>
|
||||||
|
<div id="turnBanner" style="margin-bottom:8px"></div>
|
||||||
<div>Room: <strong id="roomId">-</strong> • Vous jouez: <strong id="myColor">-</strong>
|
<div>Room: <strong id="roomId">-</strong> • Vous jouez: <strong id="myColor">-</strong>
|
||||||
<div class="layout-row">
|
<div class="layout-row">
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -87,10 +88,13 @@
|
||||||
boardEl.style.width = side + 'px';
|
boardEl.style.width = side + 'px';
|
||||||
boardEl.style.height = side + 'px';
|
boardEl.style.height = side + 'px';
|
||||||
}
|
}
|
||||||
if(data.boardState) renderBoardFromState(data.boardState);
|
if(data.boardState) {
|
||||||
|
renderBoardFromState(data.boardState);
|
||||||
|
updateTurnBanner(data.boardState);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
socket.on('game:over', (data)=>{ log('game:over', data); if(data.boardState) renderBoardFromState(data.boardState); });
|
socket.on('game:over', (data)=>{ log('game:over', data); if(data.boardState){ renderBoardFromState(data.boardState); updateTurnBanner(data.boardState); } });
|
||||||
socket.on('game:started', (data)=>{ log('game:started', data); if(data.boardState) renderBoardFromState(data.boardState); });
|
socket.on('game:started', (data)=>{ log('game:started', data); if(data.boardState){ renderBoardFromState(data.boardState); updateTurnBanner(data.boardState); } });
|
||||||
// selection events (include moves) broadcasted by server
|
// selection events (include moves) broadcasted by server
|
||||||
socket.on('game:select', (data) => {
|
socket.on('game:select', (data) => {
|
||||||
try{
|
try{
|
||||||
|
|
@ -152,6 +156,24 @@
|
||||||
|
|
||||||
connectAndJoin();
|
connectAndJoin();
|
||||||
|
|
||||||
|
function updateTurnBanner(boardState){
|
||||||
|
const banner = document.getElementById('turnBanner');
|
||||||
|
if(!banner) return;
|
||||||
|
if(!boardState || !boardState.turn || !myColor){
|
||||||
|
banner.classList.remove('show');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// myColor is 'white' or 'black', boardState.turn is 'w' or 'b'
|
||||||
|
const myShort = (myColor && myColor[0]) || '';
|
||||||
|
if(myShort === boardState.turn){
|
||||||
|
banner.textContent = "C'est à vous de jouer";
|
||||||
|
banner.classList.add('show');
|
||||||
|
} else {
|
||||||
|
banner.textContent = "En attente du coup de l'adversaire";
|
||||||
|
banner.classList.add('show');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// movement UI removed: legalMoves and move markers are disabled
|
// movement UI removed: legalMoves and move markers are disabled
|
||||||
|
|
||||||
// selection helpers (client-side)
|
// selection helpers (client-side)
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,10 @@ a:hover{text-decoration:underline}
|
||||||
/* layout helpers used from game.html */
|
/* layout helpers used from game.html */
|
||||||
.layout-row{display:flex;gap:20px;align-items:flex-start}
|
.layout-row{display:flex;gap:20px;align-items:flex-start}
|
||||||
|
|
||||||
|
/* turn banner */
|
||||||
|
#turnBanner{color:#0b1220;background:#f6ad55;padding:8px 12px;border-radius:8px;font-weight:700;display:none}
|
||||||
|
#turnBanner.show{display:inline-block}
|
||||||
|
|
||||||
/* board tweaks */
|
/* board tweaks */
|
||||||
#board{border:1px solid #333;position:relative;background-image: url('/assets/chess-pieces/boards/8x8_wood.svg');background-size:cover}
|
#board{border:1px solid #333;position:relative;background-image: url('/assets/chess-pieces/boards/8x8_wood.svg');background-size:cover}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue