Send animation triggers on win/loss/draw
This commit is contained in:
parent
e7221390f3
commit
f6b64fc569
|
@ -1,6 +1,6 @@
|
|||
const animations = {};
|
||||
// animations['victory'] = TODO: implement victory animation
|
||||
// animations['defeat'] = TODO: implement defeat animation
|
||||
// animations['black-victory'] = TODO: implement black victory animation
|
||||
// animations['white-victory'] = TODO: implement white victory animation
|
||||
// animations['draw'] = TODO: implement draw animation
|
||||
|
||||
document.addEventListener('htmx:wsAfterMessage', function (e) {
|
||||
|
|
|
@ -2,6 +2,7 @@ import { PlayerConnection } from '../player-connection';
|
|||
import { broadcastBoard } from '../view/board-renderer';
|
||||
import { broadcastButtons } from '../view/button-renderer';
|
||||
import { broadcastSound } from '../view/sound-renderer';
|
||||
import { broadcastAnimation } from '../view/animation-renderer';
|
||||
import { broadcastTitle } from '../view/title-renderer';
|
||||
import { GameServer } from '../game-server';
|
||||
import { ActionType, Message } from './messages';
|
||||
|
@ -67,6 +68,7 @@ function handleAcceptDraw(server: GameServer): void {
|
|||
broadcastButtons(server);
|
||||
broadcastTitle(server);
|
||||
broadcastSound(server, 'draw');
|
||||
broadcastAnimation(server, 'draw');
|
||||
}
|
||||
|
||||
function handleDeclineDraw(server: GameServer): void {
|
||||
|
|
|
@ -2,6 +2,7 @@ import { PlayerConnection } from '../player-connection';
|
|||
import { broadcastBoard } from '../view/board-renderer';
|
||||
import { broadcastButtons } from '../view/button-renderer';
|
||||
import { broadcastSound, broadcastSoundToPlayer } from '../view/sound-renderer';
|
||||
import { broadcastAnimation } from '../view/animation-renderer';
|
||||
import { broadcastTitle } from '../view/title-renderer';
|
||||
import { GameServer } from '../game-server';
|
||||
import { Message } from './messages';
|
||||
|
@ -72,6 +73,8 @@ export function handleMakeMove(
|
|||
switch (server.gomoku.winnerColor) {
|
||||
case 'draw':
|
||||
broadcastSound(server, 'draw');
|
||||
broadcastAnimation(server, 'draw');
|
||||
break;
|
||||
case 'white':
|
||||
if (whiteConn) {
|
||||
broadcastSoundToPlayer(whiteConn, 'victory');
|
||||
|
@ -79,6 +82,7 @@ export function handleMakeMove(
|
|||
if (blackConn) {
|
||||
broadcastSoundToPlayer(blackConn, 'defeat');
|
||||
}
|
||||
broadcastAnimation(server, 'white-victory');
|
||||
break;
|
||||
case 'black':
|
||||
if (whiteConn) {
|
||||
|
@ -87,6 +91,7 @@ export function handleMakeMove(
|
|||
if (blackConn) {
|
||||
broadcastSoundToPlayer(blackConn, 'victory');
|
||||
}
|
||||
broadcastAnimation(server, 'black-victory');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ import { PlayerConnection } from '../player-connection';
|
|||
import { broadcastBoard } from '../view/board-renderer';
|
||||
import { broadcastButtons } from '../view/button-renderer';
|
||||
import { broadcastSoundToPlayer } from '../view/sound-renderer';
|
||||
import { broadcastAnimation } from '../view/animation-renderer';
|
||||
import { broadcastTitle } from '../view/title-renderer';
|
||||
import { GameServer } from '../game-server';
|
||||
import { Message } from './messages';
|
||||
|
@ -41,6 +42,12 @@ export function handleResignation(
|
|||
const otherPlayer = server.connections.get(otherPlayerId);
|
||||
if (otherPlayer) {
|
||||
broadcastSoundToPlayer(otherPlayer, 'victory');
|
||||
// Broadcast animation for the winning player's color
|
||||
if (resigningPlayerColor === 'white') {
|
||||
broadcastAnimation(server, 'black-victory');
|
||||
} else {
|
||||
broadcastAnimation(server, 'white-victory');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue