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

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

parent 20579be3
...@@ -380,6 +380,7 @@ class Player ...@@ -380,6 +380,7 @@ class Player
this.isAlive = false; this.isAlive = false;
this.rank = room.nextRank--; this.rank = room.nextRank--;
if (this.tabCheckTime != undefined) clearTimeout(this.tabCheckTime);
socket.playerData.isReceivable = false; socket.playerData.isReceivable = false;
room.aliveCount--; room.aliveCount--;
...@@ -407,13 +408,14 @@ class Player ...@@ -407,13 +408,14 @@ class Player
room.announceToRoom('defeat', this); room.announceToRoom('defeat', this);
console.log('[' + this.id + '] defeated, rank: ' + this.rank + ', ' + room.aliveCount + ' player left'); 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) let winner = room.currentPlayer.find(function(element)
{ {
return element.isAlive; 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.announceToTarget(winner.id, 'alert', 'gameWin');
room.currentPhase = GameServer.Phase.GAMEEND; room.currentPhase = GameServer.Phase.GAMEEND;
console.log('['+winner.id+']' + ' winner! ' + winner.nickname); console.log('['+winner.id+']' + ' winner! ' + winner.nickname);
......
...@@ -245,10 +245,11 @@ socket.on('defeat', function(msg) // object player ...@@ -245,10 +245,11 @@ socket.on('defeat', function(msg) // object player
backToMenu(false); backToMenu(false);
} }
}); });
socket.on('gameEnd', function(msg) // object player socket.on('gameEnd', function(msg) // number winnerId
{ {
console.log(msg.nickname + ' Win!!!!!!'); const winner = RoomData.findPlayer(msg);
if(msg.id == RoomData.myself.id) console.log(winner.nickname + ' Win!!!!!!');
if(msg == RoomData.myself.id)
{ {
RoomData.myself.rank = 1; RoomData.myself.rank = 1;
backToMenu(true); backToMenu(true);
......
...@@ -62,30 +62,45 @@ io.on('connection', function(socket) ...@@ -62,30 +62,45 @@ io.on('connection', function(socket)
{ {
try try
{ {
socket.playerData.playingData.playerTyping = msg.playerTyping; let player = socket.playerData.playingData;
if (socket.playerData.currentRoom.maxTypingPlayer.playerTyping < msg.playerTyping) 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)) / let playerTypingRate = (msg.playerTyping - (room.minTypingPlayer.playerTyping - room.rateArrangePoint)) /
(socket.playerData.currentRoom.maxTypingPlayer.playerTyping - socket.playerData.currentRoom.minTypingPlayer.playerTyping + socket.playerData.currentRoom.rateArrangePoint * 2); (room.maxTypingPlayer.playerTyping - room.minTypingPlayer.playerTyping + room.rateArrangePoint * 2);
socket.emit('setPlayerTypingRate', playerTypingRate); socket.emit('setPlayerTypingRate', playerTypingRate);
if (msg.isWord) if (msg.isWord)
{ {
socket.playerData.currentRoom.announceToRoom('writeWord', socket.playerData.id); room.announceToRoom('writeWord', player.id);
} }
if (msg.isAttackMode) 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) { catch (e) {
console.error('[ERR] error catched on setPlayerTyping'); console.error('[ERR] error catched on setPlayerTyping (' + e + ')');
socket.disconnect(); 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