added starting game

This commit is contained in:
Wenszel 2021-04-24 13:37:34 +02:00
parent 2ed1894b6d
commit 3f07e71ce0
6 changed files with 31 additions and 24 deletions

View File

@ -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)});
});

View File

@ -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)
}

View File

@ -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);
}
}
)

View File

@ -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 );

View File

@ -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, {

View File

@ -22,7 +22,7 @@ const Navbar = () => {
}
useEffect(()=>{
//sending ajax every 3 sec
setInterval(fetchData, 3000);
setInterval(fetchData, 1000);
},[]);
return(