Commit 555b6d21 authored by 18신대성's avatar 18신대성 Committed by 18류지석

공격단어 잘 공격됨, 호패만 다른사람꺼 있으면 될듯

parent 150bcf6c
var GameServer = GameServer || {}; var GameServer = GameServer || {};
GameServer.Phase = {READY: 0, START: 1, MAIN: 2, MUSIC: 3}; GameServer.Phase = {READY: 0, START: 1, MAIN: 2, MUSIC: 3};
GameServer.startCount = 1; GameServer.startCount = 2;
GameServer.currentPlayer = []; GameServer.currentPlayer = [];
GameServer.playingRoom = []; GameServer.playingRoom = [];
...@@ -112,6 +112,14 @@ GameServer.announceToRoom = function(roomIdx, _message, _data = null) ...@@ -112,6 +112,14 @@ GameServer.announceToRoom = function(roomIdx, _message, _data = null)
element.socketId.emit(_message, _data); element.socketId.emit(_message, _data);
}); });
} }
GameServer.announceToTarget = function(roomIdx, targetNum, _message, _data = null)
{
let targetSocket = this.playingRoom[roomIdx].currentSocket.find(function(element)
{
return element.id === targetNum;
}).socketId;
targetSocket.emit(_message, _data);
}
// 데이터 동기화 함수 만들기 // 데이터 동기화 함수 만들기
// 동기화할것: 유저리스트(id - nickname 쌍) // 동기화할것: 유저리스트(id - nickname 쌍)
......
var socket = io.connect(); var socket = io.connect();
// init account
socket.emit('idRequest'); socket.emit('idRequest');
socket.on('setId', function(msg) // {str, num playerNum} socket.on('setId', function(msg) // {str, num playerNum}
{ {
console.log(msg.str); console.log(msg.str);
PlayerData.idNum = msg.num; PlayerData.idNum = msg.num;
}); });
socket.on('setPlayerTypingRate', function(msg) // number playerTypingRate
{
WordSpace.PlayerTypingRate = msg;
console.log('rate: ' + msg);
});
// init game
socket.on('syncRoomData', function(msg) // {num roomNum, [] players} socket.on('syncRoomData', function(msg) // {num roomNum, [] players}
{ {
console.log(msg); console.log(msg);
RoomData.roomNum = msg.roomNum; RoomData.roomNum = msg.roomNum;
RoomData.players = msg.players; RoomData.players = msg.players;
}); });
socket.on('startGame', function() socket.on('startGame', function()
{ {
game.scene.start('gameScene'); game.scene.start('gameScene');
}); });
// in game
socket.on('changePhase', function(msg) // number Phase socket.on('changePhase', function(msg) // number Phase
{ {
console.log('phase changed from ' + WordSpace.CurrentPhase + ' to ' + msg); console.log('phase changed from ' + WordSpace.CurrentPhase + ' to ' + msg);
WordSpace.CurrentPhase = msg; WordSpace.CurrentPhase = msg;
}); });
socket.on('setPlayerTypingRate', function(msg) // number playerTypingRate
{
WordSpace.PlayerTypingRate = msg;
console.log('rate: ' + msg);
});
socket.on('attacked', function(msg) // object attackData
{
WordSpace.generateWord.Attack(WordSpace.gameSceneForTest, msg.text, msg.grade, msg.attacker, msg.isStrong);
});
// 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');
......
...@@ -146,12 +146,16 @@ class AttackWord extends WordObject ...@@ -146,12 +146,16 @@ class AttackWord extends WordObject
class NameWord extends WordObject class NameWord extends WordObject
{ {
constructor(text, _isStrong = false) constructor(name, _isStrong = false)
{ {
super(text); super(name);
this.ownerId = RoomData.players.find(function(element)
{
return element.nickname === name;
}).id;
this.wordWeight = 2; this.wordWeight = 2;
this.isStrong = _isStrong; this.isStrong = _isStrong;
console.log('Name : ' + text + ', Strong : ' + this.isStrong + ', Weight : ' + this.wordWeight); console.log('Name : ' + name + ', Strong : ' + this.isStrong + ', Weight : ' + this.wordWeight);
} }
destroy() destroy()
{ {
......
...@@ -367,14 +367,20 @@ WordSpace.attack = function(wordText, grade) ...@@ -367,14 +367,20 @@ WordSpace.attack = function(wordText, grade)
//호패에 따른 isStrong 구분 필요함 //호패에 따른 isStrong 구분 필요함
WordSpace.nameGroup.forEach(function(element) WordSpace.nameGroup.forEach(function(element)
{ {
WordSpace.generateWord.Attack(WordSpace.gameSceneForTest, wordText, grade, PlayerData.nickname, element.isStrong); let attackData =
{
roomNum: RoomData.roomNum,
attacker: PlayerData.nickname,
target: element.ownerId,
text: wordText,
grade: grade,
isStrong: element.isStrong
}
socket.emit('attack', attackData);
//WordSpace.generateWord.Attack(WordSpace.gameSceneForTest, wordText, grade, PlayerData.nickname, element.isStrong);
}); });
WordSpace.nameGroup = []; WordSpace.nameGroup = [];
//WordSpace.generateWord(WordSpace.gameSceneForTest, wordText, grade, undefined, true); // for test
// 이부분에서 게이지에 따라 급수 결정
// 이걸 서버로 공격을 보내야 함
// 이부분은 서버 잘써야함
WordSpace.attackGauge.resetValue(); WordSpace.attackGauge.resetValue();
WordSpace.setPlayerTyping.add(wordText); WordSpace.setPlayerTyping.add(wordText);
} }
......
...@@ -48,12 +48,23 @@ io.on('connection', function(socket) ...@@ -48,12 +48,23 @@ io.on('connection', function(socket)
socket.on('setPlayerTyping', function(msg) // number playerTyping socket.on('setPlayerTyping', function(msg) // number playerTyping
{ {
socket.playerData.playerTyping = msg; socket.playerData.playingData.playerTyping = msg;
//console.log(socket.playerData.currentRoom); if (socket.playerData.currentRoom.maxTypingPlayer.playerTyping < msg)
//console.log(socket.playerData.currentRoom.currentPlayer.length); {
//let playerTypingRate = (msg - (socket.playerData.currentRoom.minTypingPlayer.playerTyping - socket.playerData.currentRoom.rateArrangePoint)) / socket.playerData.currentRoom.maxTypingPlayer = socket.playerData.playingData;
//(socket.playerData.currentRoom.maxTypingPlayer.playerTyping - socket.playerData.currentRoom.minTypingPlayer.playerTyping + socket.playerData.currentRoom.rateArrangePoint * 2); }
//socket.emit('setPlayerTypingRate', playerTypingRate); if (socket.playerData.currentRoom.minTypingPlayer.playerTyping > msg)
{
socket.playerData.currentRoom.minTypingPlayer = socket.playerData.playingData;
}
let playerTypingRate = (msg - (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);
});
socket.on('attack', function(msg)
{
GameServer.announceToTarget(GameServer.findRoomIndex(msg.roomNum), msg.target, 'attacked', msg);
}); });
socket.on('disconnect', function(reason) socket.on('disconnect', function(reason)
......
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