added conditions when pawn can move
This commit is contained in:
@@ -11,8 +11,18 @@ router.get('/roll', function (req, res){
|
||||
router.post('/move', function (req, res){
|
||||
RoomModel.findOne({_id: req.session.roomId}, function (err, doc){
|
||||
if(doc){
|
||||
// Updating position
|
||||
const updatedPawn = doc.pawns.findIndex(pawn => pawn._id == req.body.pawnId);
|
||||
doc.pawns[updatedPawn].position = req.body.position;
|
||||
// Capturing a pawn
|
||||
const pawnsOnPos = doc.pawns.filter( pawn => pawn.position == req.body.position);
|
||||
pawnsOnPos.forEach( pawn => {
|
||||
if(pawn.color !== req.session.color){
|
||||
const index = doc.pawns.findIndex(i => i._id === pawn._id);
|
||||
doc.pawns[index].position = doc.pawns[index].basePos;
|
||||
}
|
||||
});
|
||||
// Updating moving player
|
||||
const index = doc.players.findIndex( player => player.nowMoving === true);
|
||||
const roomSize = doc.players.length;
|
||||
doc.players[index].nowMoving = false;
|
||||
@@ -21,6 +31,7 @@ router.post('/move', function (req, res){
|
||||
}else{
|
||||
doc.players[index+1].nowMoving = true;
|
||||
}
|
||||
// Updating timer
|
||||
doc.nextMoveTime = Date.now()+30000;
|
||||
RoomModel.findOneAndUpdate({_id: req.session.roomId}, doc, function(err, doc){
|
||||
res.send("Correctly Moved!");
|
||||
|
||||
@@ -18,7 +18,7 @@ var changeReadyState = (req, res, exit) =>{
|
||||
}
|
||||
if(updatedPlayers.filter(player => player.ready).length >= 2){
|
||||
updatedDoc.started = true;
|
||||
updatedDoc.nextMoveTime = Date.now()+15;
|
||||
updatedDoc.nextMoveTime = Date.now()+30000;
|
||||
updatedDoc.players[0].nowMoving = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ function getStartPositions(){
|
||||
const startPositions = [];
|
||||
for( let i = 0; i < 16; i++){
|
||||
let pawn = {};
|
||||
pawn.basePos = i;
|
||||
pawn.position = i;
|
||||
if(i < 4) pawn.color = colors[0];
|
||||
else if(i < 8) pawn.color = colors[1];
|
||||
@@ -104,7 +105,6 @@ router.get('/', function(req,res){
|
||||
if(err){
|
||||
res.status(500).send(err)
|
||||
}else{
|
||||
console.log(docs.nextMoveTime);
|
||||
res.send(docs);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -15,6 +15,7 @@ var RoomSchema = new Schema({
|
||||
}],
|
||||
pawns: [{
|
||||
color: String,
|
||||
basePos: Number,
|
||||
position: Number,
|
||||
}],
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user