This commit is contained in:
2026-01-27 01:38:53 +03:00
parent 1c231fe28d
commit a4479916f9
4 changed files with 682 additions and 458 deletions

View File

@ -390,6 +390,7 @@ function broadcastGameState(room) {
...room.gameState,
yourIndex: i,
yourHand: [...p.hand],
yourDeck: [...p.deck], // Передаем колоду для кузницы
yourDeckCount: p.deck.length,
yourManualDrawUsed: !!p.manualDrawUsed,
yourHeroAbilityUsed: !!p.heroAbilityUsed,
@ -1879,6 +1880,34 @@ io.on('connection', (socket) => {
stealCardsFromDeck(room, socket.id, data.handIndex, data.targetPlayerIndex, data.cardIndices);
});
socket.on('chatMessage', (data) => {
const room = getRoomBySocket(socket.id);
if (!room) return;
const message = (data?.message || '').trim();
if (message.length === 0 || message.length > 200) return;
// Находим имя игрока
let playerName = 'Игрок';
if (room.gameState && room.gameState.players) {
const player = room.gameState.players.find(p => p.id === socket.id);
if (player) {
playerName = player.name || 'Игрок';
}
} else if (room.lobby) {
const lobbyPlayer = room.lobby.find(p => p.id === socket.id);
if (lobbyPlayer) {
playerName = lobbyPlayer.name || 'Игрок';
}
}
// Отправляем сообщение всем в комнате
io.to(room.code).emit('chatMessage', {
playerName: playerName,
message: message
});
});
socket.on('battlecryTarget', (data) => {
const room = getRoomBySocket(socket.id);
if (!room || !room.gameState || room.gameState.phase !== 'playing') return;