diff --git a/backend/routes/game.js b/backend/routes/game.js index 29e2b66..3eef770 100644 --- a/backend/routes/game.js +++ b/backend/routes/game.js @@ -1,14 +1,6 @@ var express = require('express'); var router = express.Router(); -//starts game -router.post('/start', function (req, res){ - /* set interval: - draw a number <1,6> - update positions - */ - -}); router.get('/roll', function (req, res){ res.send({number: Math.ceil(Math.random() * 6)}); }); diff --git a/backend/routes/player.js b/backend/routes/player.js index 317f519..b9092ed 100644 --- a/backend/routes/player.js +++ b/backend/routes/player.js @@ -12,12 +12,21 @@ var changeReadyState = (req, res, exit) =>{ let index = updatedPlayers.findIndex( player => (player._id).toString() == (req.session.playerId).toString() ); - if(!exit) - {updatedPlayers[index].ready = !updatedPlayers[index].ready;} - else {updatedPlayers[index].ready = false;} + console.log(doc, updatedPlayers, index); + if(!exit) updatedPlayers[index].ready = !updatedPlayers[index].ready; + else updatedPlayers[index].ready = false; + const updatedDoc = { + players: updatedPlayers + } + console.log(updatedPlayers.filter(player => player.ready).length); + if(updatedPlayers.filter(player => player.ready).length >= 2){ + updatedDoc.started = true; + updatedDoc.players[0].nowMoving = true; + } + RoomModel.findOneAndUpdate({ _id: req.session.roomId - }, {players: updatedPlayers}, function(err, doc){ + }, updatedDoc, function(err, doc){ if (err){ console.log(err) } diff --git a/backend/routes/room.js b/backend/routes/room.js index 7de9743..c0718ca 100644 --- a/backend/routes/room.js +++ b/backend/routes/room.js @@ -7,7 +7,6 @@ var colors = ['red','blue','green','yellow']; //creating new room in db router.post('/add', function (req, res) { - console.log(req.session); RoomModel.findOne( { full: false, started: false }, function (err, results) { if (err) { console.log(err); @@ -19,6 +18,7 @@ router.post('/add', function (req, res) { started: false, players: [{ name: req.body.name, + nowMoving: false, ready: false, color: colors[0] }], @@ -31,7 +31,6 @@ router.post('/add', function (req, res) { res.status(200).send('Joined!'); }) .catch(err => res.status(400).json('Error: ' + err)) - }else { let players = results.players; @@ -42,17 +41,22 @@ router.post('/add', function (req, res) { }); let updateObj = { players: players } - players.length === 4 ? updateObj.full = true : updateObj.full = false; - + // Checks if room is full => if true start game + if (players.length === 4) { + updateObj.full = true; // Room is full + updateObj.started = true; // Game started + updateObj.players[0].nowMoving = true; //First joined player moving + } RoomModel.findOneAndUpdate( { _id: results._id }, //find room by id updateObj) .then(()=>{ req.session.roomId = results._id; - req.session.playerId = updateObj.players[updateObj.players.lenght - 1]._id; + req.session.playerId = updateObj.players[updateObj.players.length-1]._id; req.session.name = req.body.name; res.status(200).send('Joined!'); - }); + }); + } }); @@ -67,7 +71,7 @@ router.get('/', function(req,res){ console.log(err) } else{ - res.send({ players: docs.players}); + res.send(docs); } } ) diff --git a/backend/schemas/room.js b/backend/schemas/room.js index c30c56f..c452363 100644 --- a/backend/schemas/room.js +++ b/backend/schemas/room.js @@ -10,11 +10,12 @@ var RoomSchema = new Schema({ name: String, color: String, ready: Boolean, + nowMoving: Boolean, + }], + pawns: [{ + color: String, + position: Number, }], - positions: { - type: Map, - of: Array, - } }); var RoomModel = mongoose.model('RoomModel', RoomSchema ); diff --git a/backend/server.js b/backend/server.js index 423775e..c57629b 100644 --- a/backend/server.js +++ b/backend/server.js @@ -23,6 +23,7 @@ const PORT = 3000|| process.env.PORT; //DATABASE CONFIG const mongoose = require("mongoose"); +mongoose.set('useFindAndModify', false); const CONNECTION_URI = require("./credentials.js").MONGODB_URL; mongoose.connect(CONNECTION_URI, { diff --git a/src/components/Navbar.jsx b/src/components/Navbar.jsx index 257772b..fcd6678 100644 --- a/src/components/Navbar.jsx +++ b/src/components/Navbar.jsx @@ -22,7 +22,7 @@ const Navbar = () => { } useEffect(()=>{ //sending ajax every 3 sec - setInterval(fetchData, 3000); + setInterval(fetchData, 1000); },[]); return(