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