Commit 67495311 authored by 18신대성's avatar 18신대성 Committed by 18손재민

이제 1초정도 탭돌리고있으면 패배처리

parent 20579be3
......@@ -380,6 +380,7 @@ class Player
this.isAlive = false;
this.rank = room.nextRank--;
if (this.tabCheckTime != undefined) clearTimeout(this.tabCheckTime);
socket.playerData.isReceivable = false;
room.aliveCount--;
......@@ -407,13 +408,14 @@ class Player
room.announceToRoom('defeat', this);
console.log('[' + this.id + '] defeated, rank: ' + this.rank + ', ' + room.aliveCount + ' player left');
if (socket.playerData.currentRoom.aliveCount === 1)
if (room.aliveCount === 1)
{
let winner = room.currentPlayer.find(function(element)
{
return element.isAlive;
});
room.announceToRoom('gameEnd', winner);
if (winner.tabCheckTime != undefined) clearTimeout(winner.tabCheckTime);
room.announceToRoom('gameEnd', winner.id);
room.announceToTarget(winner.id, 'alert', 'gameWin');
room.currentPhase = GameServer.Phase.GAMEEND;
console.log('['+winner.id+']' + ' winner! ' + winner.nickname);
......
......@@ -245,10 +245,11 @@ socket.on('defeat', function(msg) // object player
backToMenu(false);
}
});
socket.on('gameEnd', function(msg) // object player
socket.on('gameEnd', function(msg) // number winnerId
{
console.log(msg.nickname + ' Win!!!!!!');
if(msg.id == RoomData.myself.id)
const winner = RoomData.findPlayer(msg);
console.log(winner.nickname + ' Win!!!!!!');
if(msg == RoomData.myself.id)
{
RoomData.myself.rank = 1;
backToMenu(true);
......
......@@ -62,30 +62,45 @@ io.on('connection', function(socket)
{
try
{
socket.playerData.playingData.playerTyping = msg.playerTyping;
if (socket.playerData.currentRoom.maxTypingPlayer.playerTyping < msg.playerTyping)
let player = socket.playerData.playingData;
let room = socket.playerData.currentRoom;
player.playerTyping = msg.playerTyping;
if (room.maxTypingPlayer.playerTyping < msg.playerTyping)
{
socket.playerData.currentRoom.maxTypingPlayer = socket.playerData.playingData;
room.maxTypingPlayer = player;
}
if (socket.playerData.currentRoom.minTypingPlayer.playerTyping > msg.playerTyping)
if (room.minTypingPlayer.playerTyping > msg.playerTyping)
{
socket.playerData.currentRoom.minTypingPlayer = socket.playerData.playingData;
room.minTypingPlayer = player;
}
let playerTypingRate = (msg.playerTyping - (socket.playerData.currentRoom.minTypingPlayer.playerTyping - socket.playerData.currentRoom.rateArrangePoint)) /
(socket.playerData.currentRoom.maxTypingPlayer.playerTyping - socket.playerData.currentRoom.minTypingPlayer.playerTyping + socket.playerData.currentRoom.rateArrangePoint * 2);
let playerTypingRate = (msg.playerTyping - (room.minTypingPlayer.playerTyping - room.rateArrangePoint)) /
(room.maxTypingPlayer.playerTyping - room.minTypingPlayer.playerTyping + room.rateArrangePoint * 2);
socket.emit('setPlayerTypingRate', playerTypingRate);
if (msg.isWord)
{
socket.playerData.currentRoom.announceToRoom('writeWord', socket.playerData.id);
room.announceToRoom('writeWord', player.id);
}
if (msg.isAttackMode)
{
socket.playerData.currentRoom.announceToRoom('attackMode', socket.playerData.id);
room.announceToRoom('attackMode', player.id);
}
if (player.tabCheckTime != undefined)
{
clearTimeout(player.tabCheckTime);
player.tabCheckTime = setTimeout(function()
{
if (room.currentPhase != GameServer.Phase.GAMEEND) player.defeat();
}, 1000);
}
else player.tabCheckTime = setTimeout(function()
{
if (room.currentPhase != GameServer.Phase.GAMEEND) player.defeat();
}, 1000);
}
catch (e) {
console.error('[ERR] error catched on setPlayerTyping');
console.error('[ERR] error catched on setPlayerTyping (' + e + ')');
socket.disconnect();
}
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment