Commit 0d59c5be authored by 18신대성's avatar 18신대성 Committed by 18류지석

Merge branch 'server'

# Conflicts:
#	js/WordSpace.js
parents 80a36517 e0a8ee56
...@@ -118,7 +118,7 @@ GameServer.announceToTarget = function(roomIdx, targetNum, _message, _data = nul ...@@ -118,7 +118,7 @@ GameServer.announceToTarget = function(roomIdx, targetNum, _message, _data = nul
{ {
return element.id === targetNum; return element.id === targetNum;
}).socketId; }).socketId;
targetSocket.emit(_message, _data); if (targetSocket != 'undefined') targetSocket.emit(_message, _data);
} }
// 데이터 동기화 함수 만들기 // 데이터 동기화 함수 만들기
// 동기화할것: 유저리스트(id - nickname 쌍) // 동기화할것: 유저리스트(id - nickname 쌍)
......
...@@ -36,11 +36,17 @@ socket.on('attacked', function(msg) // object attackData ...@@ -36,11 +36,17 @@ socket.on('attacked', function(msg) // object attackData
{ {
WordSpace.generateWord.Attack(WordSpace.gameSceneForTest, msg.text, msg.grade, msg.attacker, msg.isStrong); WordSpace.generateWord.Attack(WordSpace.gameSceneForTest, msg.text, msg.grade, msg.attacker, msg.isStrong);
}); });
socket.on('defeat', function(msg) // object player
{
RoomData.players[msg.index] = msg;
RoomData.aliveCount--;
console.log(RoomData.players[msg.index].nickname + ' defeated');
});
// out game // out game
socket.on('userDisconnect', function(msg) // {num index , num id, str nickname} socket.on('userDisconnect', function(msg) // {num index , num id, str nickname}
{ {
console.log(msg.index + ' / ' + msg.id + ' / ' + msg.nickname + ' disconnected'); console.log(msg.index + ' / ' + msg.id + ' / ' + msg.nickname + ' disconnected');
RoomData.players[msg.index].isAlive = false; RoomData.players[msg.index] = msg;
RoomData.aliveCount--; RoomData.aliveCount--;
}); });
\ No newline at end of file
...@@ -56,6 +56,10 @@ var gameScene = new Phaser.Class( ...@@ -56,6 +56,10 @@ var gameScene = new Phaser.Class(
WordSpace.wordCycle.resetCycle(this, 3000, 0, true); WordSpace.wordCycle.resetCycle(this, 3000, 0, true);
WordSpace.nameCycle.resetCycle(this, 3000, 0, true); WordSpace.nameCycle.resetCycle(this, 3000, 0, true);
WordSpace.varAdjustCycle.resetCycle(this, 100, 0, true); WordSpace.varAdjustCycle.resetCycle(this, 100, 0, true);
WordSpace.playerTypingCycle = setInterval(function()
{
socket.emit('setPlayerTyping', WordSpace.playerTyping);
}, 500);
WordSpace.setPlayerTyping.initiate(this); WordSpace.setPlayerTyping.initiate(this);
......
...@@ -5,8 +5,6 @@ WordSpace.gameSceneForTest = null; ...@@ -5,8 +5,6 @@ WordSpace.gameSceneForTest = null;
WordSpace.weightTextObjForTest = null; WordSpace.weightTextObjForTest = null;
WordSpace.nameWordTextForTest = null; WordSpace.nameWordTextForTest = null;
WordSpace.isImageLoaded = false;
WordSpace.nextWordCode = 0; WordSpace.nextWordCode = 0;
WordSpace.totalWeight = 0; //현재 단어 무게 총합 WordSpace.totalWeight = 0; //현재 단어 무게 총합
WordSpace.totalWordNum = 0; WordSpace.totalWordNum = 0;
...@@ -32,6 +30,7 @@ WordSpace.delay = ...@@ -32,6 +30,7 @@ WordSpace.delay =
GameOver: 5000, GameOver: 5000,
} }
WordSpace.playerTypingCycle = null;
WordSpace.NameSpawnReduce = 1000; WordSpace.NameSpawnReduce = 1000;
WordSpace.gravityPoint = {x: 640, y: 300}; WordSpace.gravityPoint = {x: 640, y: 300};
...@@ -277,8 +276,11 @@ function gameOver() ...@@ -277,8 +276,11 @@ function gameOver()
WordSpace.wordCycle.currentCycle.remove(); WordSpace.wordCycle.currentCycle.remove();
WordSpace.nameCycle.currentCycle.remove(); WordSpace.nameCycle.currentCycle.remove();
WordSpace.varAdjustCycle.currentCycle.remove(); WordSpace.varAdjustCycle.currentCycle.remove();
clearInterval(WordSpace.playerTypingCycle);
//To Do //To Do
socket.emit('defeated');
console.log('defeat'); console.log('defeat');
alert('defeat');
} }
//게임 오버 판정을 위한 타이머 //게임 오버 판정을 위한 타이머
...@@ -365,7 +367,6 @@ WordSpace.setPlayerTyping = ...@@ -365,7 +367,6 @@ WordSpace.setPlayerTyping =
{ {
this.totalTyping += wordText != null ? WordReader.getWordTyping(wordText) : 0; this.totalTyping += wordText != null ? WordReader.getWordTyping(wordText) : 0;
WordSpace.playerTyping = this.totalTyping / WordSpace.gameTimer.now * 60 * 1000; WordSpace.playerTyping = this.totalTyping / WordSpace.gameTimer.now * 60 * 1000;
socket.emit('setPlayerTyping', WordSpace.playerTyping);
this.text.setText('현재 타수 : ' + WordSpace.playerTyping.toFixed(1)); this.text.setText('현재 타수 : ' + WordSpace.playerTyping.toFixed(1));
}, },
initiate: function(scene) initiate: function(scene)
...@@ -398,6 +399,7 @@ WordSpace.attack = function(wordText, grade) ...@@ -398,6 +399,7 @@ WordSpace.attack = function(wordText, grade)
//테스트용, 자기 자신에게 공격함 //테스트용, 자기 자신에게 공격함
//WordSpace.generateWord.Attack(WordSpace.gameSceneForTest, wordText, grade, PlayerData, false); //WordSpace.generateWord.Attack(WordSpace.gameSceneForTest, wordText, grade, PlayerData, false);
WordSpace.nameGroup = []; WordSpace.nameGroup = [];
WordSpace.attackGauge.resetValue(); WordSpace.attackGauge.resetValue();
WordSpace.setPlayerTyping.add(wordText); WordSpace.setPlayerTyping.add(wordText);
} }
......
...@@ -27,12 +27,13 @@ io.on('connection', function(socket) ...@@ -27,12 +27,13 @@ io.on('connection', function(socket)
nickname: '게스트', nickname: '게스트',
socketId: socket, socketId: socket,
currentRoom: null, currentRoom: null,
playingData: null,
playerTyping: 0 playerTyping: 0
}; };
GameServer.currentPlayer.push(socket.playerData); GameServer.currentPlayer.push(socket.playerData);
console.log('['+socket.playerData.id+'] client request'); console.log('['+socket.playerData.id+'] client request');
socket.emit('idSet', socket.emit('setId',
{ {
str: 'your number is ' + socket.playerData.id, str: 'your number is ' + socket.playerData.id,
num: socket.playerData.id num: socket.playerData.id
...@@ -67,6 +68,15 @@ io.on('connection', function(socket) ...@@ -67,6 +68,15 @@ io.on('connection', function(socket)
GameServer.announceToTarget(GameServer.findRoomIndex(msg.roomNum), msg.target, 'attacked', msg); GameServer.announceToTarget(GameServer.findRoomIndex(msg.roomNum), msg.target, 'attacked', msg);
}); });
socket.on('defeated', function()
{
socket.playerData.playingData.isAlive = false;
socket.playerData.playingData.rank = socket.playerData.currentRoom.nextRank--;
// 패배단어 체크
GameServer.announceToRoom(socket.playerData.currentRoom.roomNum, 'defeat', socket.playerData.playingData);
console.log('['+socket.playerData.id+']'+ ' defeated');
});
socket.on('disconnect', function(reason) socket.on('disconnect', function(reason)
{ {
let idxToDel = GameServer.currentPlayer.findIndex(function(element) let idxToDel = GameServer.currentPlayer.findIndex(function(element)
...@@ -81,7 +91,7 @@ io.on('connection', function(socket) ...@@ -81,7 +91,7 @@ io.on('connection', function(socket)
if (socket.playerData.currentRoom != null) if (socket.playerData.currentRoom != null)
{ {
socket.playerData.playingData.isAlive = false; socket.playerData.playingData.isAlive = false;
socket.playerData.playingData.rank = socket.playerData.currentRoom.nextRank--; if (socket.playerData.playingData.rank === -1) socket.playerData.playingData.rank = socket.playerData.currentRoom.nextRank--;
socket.playerData.currentRoom.currentSocket.splice(socket.playerData.playingData.index, 1); socket.playerData.currentRoom.currentSocket.splice(socket.playerData.playingData.index, 1);
GameServer.announceToRoom(GameServer.findRoomIndex(socket.playerData.currentRoom.roomNum), 'userDisconnect', socket.playerData.playingData); GameServer.announceToRoom(GameServer.findRoomIndex(socket.playerData.currentRoom.roomNum), 'userDisconnect', socket.playerData.playingData);
} }
......
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