tile checking

This commit is contained in:
Evert Prants 2017-04-04 00:18:45 +03:00
parent 73893b6cb6
commit 063fbd92be
Signed by: evert
GPG Key ID: 1688DA83D222D0B5

View File

@ -115,15 +115,15 @@ function joinGame (uid, gameId) {
let me = clients[uid] let me = clients[uid]
if (!games[gameId]) { if (!games[gameId]) {
return socket.emit('game_error', {message: 'That game has ended!'}) return me.socket.emit('game_error', {message: 'That game has ended!'})
} }
if (games[gameId].player2 != null) { if (games[gameId].player2 != null) {
return socket.emit('game_error', {message: 'That game has already started!'}) return me.socket.emit('game_error', {message: 'That game has already started!'})
} }
if (!clients[games[gameId].player1.uid]) { if (!clients[games[gameId].player1.uid]) {
return socket.emit('game_error', {message: 'That game has ended!'}) return me.socket.emit('game_error', {message: 'That game has ended!'})
} }
games[gameId].player2 = { games[gameId].player2 = {
@ -139,7 +139,7 @@ function joinGame (uid, gameId) {
let opponent = clients[games[gameId].player1.uid] let opponent = clients[games[gameId].player1.uid]
if (!opponent) { if (!opponent) {
return socket.emit('game_error', {message: 'Your opponent abruptly dissappeared, what?'}) return me.socket.emit('game_error', {message: 'Your opponent abruptly dissappeared, what?'})
} }
opponent.socket.emit('game_start', {gameId: gameId, opponentId: uid, opponentName: me.name}) opponent.socket.emit('game_start', {gameId: gameId, opponentId: uid, opponentName: me.name})
@ -199,10 +199,6 @@ function waitingGamesList (uid) {
} }
} }
function bombTile (playerIndex, gameId, xTile, yTile) {
}
function determinePlayerById (gameId, uid) { function determinePlayerById (gameId, uid) {
let game = games[gameId] let game = games[gameId]
@ -263,6 +259,17 @@ function markAllTilesDestroyed (ship, myStrikes) {
ship.sunken = true ship.sunken = true
} }
function checkForExistingStrike (myStrikes, x, y) {
let found = false
for (let i in myStrikes) {
let cell = myStrikes[i]
if (cell.x === x && cell.y === y) {
found = true
}
}
return found
}
function attemptToBombTile (playerIndex, opponent, game, x, y) { function attemptToBombTile (playerIndex, opponent, game, x, y) {
let me = game[playerIndex] let me = game[playerIndex]
let opponentObj = game[opponent] let opponentObj = game[opponent]
@ -282,8 +289,11 @@ function attemptToBombTile (playerIndex, opponent, game, x, y) {
} }
if (!tileMatch) { if (!tileMatch) {
if (checkForExistingStrike(me.strikes, x, y)) {
return {event: 5, ship: null}
}
me.strikes.push({x: x, y: y, destroy: false}) me.strikes.push({x: x, y: y, destroy: false})
//opponentObj.strikes.push({x: x, y: y, destroy: false})
return {event: 2, ship: null} return {event: 2, ship: null}
} }
@ -302,7 +312,6 @@ function attemptToBombTile (playerIndex, opponent, game, x, y) {
opponentObj.destructions += 1 opponentObj.destructions += 1
if (opponentObj.destructions === ships.length) { if (opponentObj.destructions === ships.length) {
console.log('winner: ' + me.uid)
return {event: 6, ship: shipMatch} return {event: 6, ship: shipMatch}
} }
@ -475,6 +484,8 @@ io.on('connection', (socket) => {
switch (result.event) { switch (result.event) {
case 5: case 5:
clients[me.uid].socket.emit('infmessage', 'You\'ve already bombed that tile!')
break
case 1: case 1:
clients[me.uid].socket.emit('infmessage', 'You sunk a ship!') clients[me.uid].socket.emit('infmessage', 'You sunk a ship!')
break break