added painting pawns based on data from server

This commit is contained in:
Wenszel
2021-04-24 16:13:39 +02:00
parent 148fa85601
commit c1db9e4bb8
8 changed files with 82 additions and 37 deletions
+18
View File
@@ -1,6 +1,24 @@
var express = require('express');
var router = express.Router();
function setNextPlayer(req, res){
RoomModel.findOne({_id: req.session.roomId}, function (err, doc){
if (err) {
res.status(500).send(err)
} else {
const index = doc.players.findIndex( player => player.nowMoving === true);
const roomSize = doc.player.length;
doc.players[index].nowMoving = false;
if(index++ === roomSize){
doc.players[0].nowMoving = true;
}else{
doc.players[index].nowMoving = true;
}
RoomModel.findOneAndUpdate({_id: req.session.roomId}, doc);
}
});
}
router.get('/roll', function (req, res){
res.send({number: Math.ceil(Math.random() * 6)});
});
-3
View File
@@ -1,7 +1,6 @@
var express = require('express');
var router = express.Router();
var RoomModel = require('../schemas/room');
var changeReadyState = (req, res, exit) =>{
RoomModel.findOne({_id: req.session.roomId}, function (err, doc){
if (err) {
@@ -12,13 +11,11 @@ var changeReadyState = (req, res, exit) =>{
let index = updatedPlayers.findIndex(
player => (player._id).toString() == (req.session.playerId).toString()
);
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;
+21 -8
View File
@@ -1,16 +1,27 @@
var express = require('express');
var router = express.Router();
const express = require('express');
const router = express.Router();
const RoomModel = require('../schemas/room');
var RoomModel = require('../schemas/room');
const colors = ['red','blue','green','yellow'];
var colors = ['red','blue','green','yellow'];
function getStartPositions(){
const startPositions = [];
for( let i = 0; i < 16; i++){
let pawn = {};
pawn.position = i;
if(i < 4) pawn.color = colors[0];
else if(i < 8) pawn.color = colors[1];
else if(i < 12) pawn.color = colors[2];
else if (i < 16) pawn.color = colors[3]
startPositions.push(pawn);
}
return startPositions;
}
//creating new room in db
router.post('/add', function (req, res) {
RoomModel.findOne( { full: false, started: false }, function (err, results) {
if (err) {
console.log(err);
}
if (err) console.log(err);
if (!results) {
let newRoom = new RoomModel({
createDate: new Date,
@@ -22,6 +33,7 @@ router.post('/add', function (req, res) {
ready: false,
color: colors[0]
}],
pawns: getStartPositions(),
});
newRoom.save()
.then(function(){
@@ -46,6 +58,7 @@ router.post('/add', function (req, res) {
updateObj.full = true; // Room is full
updateObj.started = true; // Game started
updateObj.players[0].nowMoving = true; //First joined player moving
updateObj.pawns = startPositions
}
RoomModel.findOneAndUpdate(
{ _id: results._id }, //find room by id
@@ -77,4 +90,4 @@ router.get('/', function(req,res){
)
});
module.exports = router;
module.exports = router;