Commit e41809ef authored by 18신대성's avatar 18신대성

단어입력, 공격모드, 남의 공격 등을 다른 플레이어가 알게 구현

parent dcbdc78c
......@@ -201,7 +201,6 @@ class GameRoom
this.announceToRoom('syncRoomData', toSync);
console.log('[ROOM#'+this.roomId+'] Game Start with ' + this.currentPlayer.length + ' players');
this.announceToRoom('changePhase', GameServer.Phase.START);
this.announceToRoom('startGame');
this.startTime = Date.now();
}
......@@ -323,7 +322,7 @@ class Player
}
room.announceToRoom('defeat', this);
console.log('[' + this.id + '] defeated, rank: ' + this.rank + ', ' + room.currentPlayer.length + 'player left');
console.log('[' + this.id + '] defeated, rank: ' + this.rank + ', ' + room.aliveCount + ' player left');
if (socket.playerData.currentRoom.aliveCount === 1)
{
......
......@@ -22,6 +22,8 @@ socket.on('setId', function(msg) // {str, num playerNum}
console.log(msg.str);
PlayerData.id = msg.num;
});
// init game
socket.on('enterRoom', function()
{
Audio.killSound(ScenesData.menuScene, 'login');
......@@ -82,8 +84,6 @@ socket.on('setRoomCount', function(msg)
}
}, 200);
});
// init game
socket.on('syncRoomData', function(msg) // {num roomNum, [] players}
{
//console.log(msg);
......@@ -110,12 +110,29 @@ socket.on('changePhase', function(msg) // number Phase
{
console.log('phase changed from ' + WordSpace.CurrentPhase + ' to ' + msg);
WordSpace.CurrentPhase = msg;
// 이때 시간 3초 지연시키기
});
socket.on('setPlayerTypingRate', function(msg) // number playerTypingRate
{
WordSpace.PlayerTypingRate = msg;
//console.log('rate: ' + msg);
});
socket.on('writeWord', function(msg) // number playerId
{
console.log(msg + ' write word');
// msg의 id를 가진 사람이 writeWord한다.
});
socket.on('attackMode', function(msg) // number playerId
{
// if (msg's attackMode is false)
console.log(msg + ' is on attack Mode');
// msg의 id를 가진 사람이 attack Mode이다.
});
socket.on('attack', function(msg) // {number attackerId, number targetId}
{
// 이때 위의 attack Mode인 사람(msg.attackerId)을 해제해주자.
console.log(msg.attackerId + ' attack to ' + msg.targetId);
});
socket.on('attacked', function(msg) // object attackData
{
//console.log('attacked by ' + msg.attacker.nickname);
......@@ -123,7 +140,7 @@ socket.on('attacked', function(msg) // object attackData
{
WordSpace.generateWord.Attack(ScenesData.gameScene, msg.text, msg.grade, msg.attacker, msg.isStrong, msg.isCountable);
}, 4000);
console.log(timeout);
//console.log(timeout);
});
socket.on('defeat', function(msg) // object player
{
......@@ -144,10 +161,9 @@ socket.on('gameEnd', function(msg) // object player
{
console.log(msg.nickname + ' Win!!!!!!');
});
socket.on('attackSucceed', function(msg)
{
console.log('client');
//console.log('client');
let tempWord = WordSpace.generateWord.Name(ScenesData.gameScene, true, msg.victim);
tempWord.destroy();
});
......@@ -155,7 +171,7 @@ socket.on('attackSucceed', function(msg)
// out game
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] = msg;
RoomData.aliveCount--;
});
\ No newline at end of file
......@@ -3,10 +3,7 @@ WordSpace.startCycle = function(scene)
WordSpace.wordCycle.resetCycle(scene, 3000, 0, true);
WordSpace.nameCycle.resetCycle(scene, 3000, 0, true);
WordSpace.varAdjustCycle.resetCycle(scene, 100, 0, true);
WordSpace.playerTypingCycle = setInterval(function()
{
socket.emit('setPlayerTyping', WordSpace.playerTyping);
}, 500);
WordSpace.playerTypingCycle.resetCycle(scene, 500, 500, true);
}
WordSpace.pauseCycle = function(isPause)
......@@ -15,11 +12,7 @@ WordSpace.pauseCycle = function(isPause)
WordSpace.nameCycle.currentCycle.paused = isPause;
WordSpace.varAdjustCycle.currentCycle.paused = isPause;
WordSpace.attackGauge.pauseCycle(isPause);
if (isPause) clearInterval(WordSpace.playerTypingCycle);
else WordSpace.playerTypingCycle = setInterval(function()
{
socket.emit('setPlayerTyping', WordSpace.playerTyping);
}, 500);
WordSpace.playerTypingCycle.currentCycle.paused = isPause;
}
class Cycle //앞으로 cycle은 이 클래스를 사용해서 구현할 것
......@@ -65,4 +58,10 @@ WordSpace.varAdjustCycle = new Cycle(function()
//WordSpace.GetPhase();
//WordSpace.GetPlayerTypingRate();
WordSpace.AdjustVarByPhase(WordSpace.playerTypingRate, WordSpace.CurrentPhase);
});
// playerTypingRate 갱신용 사이클
WordSpace.playerTypingCycle = new Cycle(function()
{
socket.emit('setPlayerTyping', {playerTyping: WordSpace.playerTyping, isWord: WordSpace.setPlayerTyping.writeWord, isAttackMode: Input.attackMode} );
WordSpace.setPlayerTyping.writeWord = false;
});
\ No newline at end of file
......@@ -21,7 +21,7 @@ WordSpace.wordPhysicsGroup = null;
WordSpace.GradeProb = [0.35, 0.6, 0.8];
WordSpace.Phase = {READY: 0, START: 1, MAIN: 2, MUSIC: 3};
WordSpace.CurrentPhase = WordSpace.Phase.READY;
WordSpace.CurrentPhase = WordSpace.Phase.START;
WordSpace.playerTyping = 0;
WordSpace.playerTypingRate = 0;
......@@ -372,11 +372,13 @@ WordSpace.findWord = function(wordText)
WordSpace.setPlayerTyping =
{
totalTyping: 0,
writeWord: false,
add: function(wordText)
{
this.totalTyping += wordText != null ? WordReader.getWordTyping(wordText) : 0;
WordSpace.playerTyping = this.totalTyping / WordSpace.gameTimer.now * 60 * 1000;
this.text.setText('현재 타수 : ' + WordSpace.playerTyping.toFixed(1));
this.writeWord = wordText != '' ? true : false;
},
initiate: function(scene)
{
......
......@@ -58,22 +58,29 @@ io.on('connection', function(socket)
{
try
{
socket.playerData.playingData.playerTyping = msg;
if (socket.playerData.currentRoom.maxTypingPlayer.playerTyping < msg)
socket.playerData.playingData.playerTyping = msg.playerTyping;
if (socket.playerData.currentRoom.maxTypingPlayer.playerTyping < msg.playerTyping)
{
socket.playerData.currentRoom.maxTypingPlayer = socket.playerData.playingData;
}
if (socket.playerData.currentRoom.minTypingPlayer.playerTyping > msg)
if (socket.playerData.currentRoom.minTypingPlayer.playerTyping > msg.playerTyping)
{
socket.playerData.currentRoom.minTypingPlayer = socket.playerData.playingData;
}
let playerTypingRate = (msg - (socket.playerData.currentRoom.minTypingPlayer.playerTyping - socket.playerData.currentRoom.rateArrangePoint)) /
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);
socket.emit('setPlayerTypingRate', playerTypingRate);
if (msg.isWord)
{
socket.playerData.currentRoom.announceToRoom('writeWord', socket.playerData.id);
}
if (msg.isAttackMode)
{
socket.playerData.currentRoom.announceToRoom('attackMode', socket.playerData.id);
}
}
catch (e)
{
}
catch (e) {console.log('[ERR] error catched on setPlayerTyping')}
});
socket.on('endCount', function()
......@@ -88,6 +95,7 @@ io.on('connection', function(socket)
socket.on('attack', function(msg)
{
socket.playerData.currentRoom.announceToTarget(msg.target, 'attacked', msg);
socket.playerData.currentRoom.announceToRoom('attack', {attackerId: msg.attacker.id, targetId: msg.target});
//console.log('attack ' + msg.target + ' by ' + msg.attacker.id + ' with ' + msg.text);
setTimeout(function()
{
......
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