moved moving from client to server
This commit is contained in:
parent
c8773ed546
commit
b56c343d83
@ -13,9 +13,10 @@ router.post('/move', function (req, res){
|
|||||||
if(doc){
|
if(doc){
|
||||||
// Updating position
|
// Updating position
|
||||||
const updatedPawn = doc.pawns.findIndex(pawn => pawn._id == req.body.pawnId);
|
const updatedPawn = doc.pawns.findIndex(pawn => pawn._id == req.body.pawnId);
|
||||||
doc.pawns[updatedPawn].position = req.body.position;
|
doc.pawns[updatedPawn].position = getPosition(req.session.rolledNumber, doc.pawns[updatedPawn]);
|
||||||
|
console.log(getPosition(req.session.rolledNumber, doc.pawns[updatedPawn]));
|
||||||
// Capturing a pawn
|
// Capturing a pawn
|
||||||
const pawnsOnPos = doc.pawns.filter( pawn => pawn.position == req.body.position);
|
const pawnsOnPos = doc.pawns.filter( pawn => pawn.position == doc.pawns[updatedPawn].position);
|
||||||
pawnsOnPos.forEach( pawn => {
|
pawnsOnPos.forEach( pawn => {
|
||||||
if(pawn.color !== req.session.color){
|
if(pawn.color !== req.session.color){
|
||||||
const index = doc.pawns.findIndex(i => i._id === pawn._id);
|
const index = doc.pawns.findIndex(i => i._id === pawn._id);
|
||||||
@ -33,6 +34,7 @@ router.post('/move', function (req, res){
|
|||||||
}
|
}
|
||||||
// Updating timer
|
// Updating timer
|
||||||
doc.nextMoveTime = Date.now()+15000;
|
doc.nextMoveTime = Date.now()+15000;
|
||||||
|
// Pushing above data to database
|
||||||
RoomModel.findOneAndUpdate({_id: req.session.roomId}, doc, function(err, doc){
|
RoomModel.findOneAndUpdate({_id: req.session.roomId}, doc, function(err, doc){
|
||||||
res.send("Correctly Moved!");
|
res.send("Correctly Moved!");
|
||||||
});
|
});
|
||||||
@ -40,5 +42,64 @@ router.post('/move', function (req, res){
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function getPosition(rolledNumber, pawn){
|
||||||
|
const { position, color } = pawn;
|
||||||
|
switch (color){
|
||||||
|
case 'red':
|
||||||
|
if(pawn.position + rolledNumber <= 73){
|
||||||
|
if(position >= 0 && position <= 3) {
|
||||||
|
return 16;
|
||||||
|
}else if(position <= 66 && position + rolledNumber >= 67){
|
||||||
|
return position + rolledNumber + 1;
|
||||||
|
}else{
|
||||||
|
return position + rolledNumber;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
case 'blue':
|
||||||
|
if(pawn.position + rolledNumber <= 79){
|
||||||
|
if(position >= 4 && position <= 7){
|
||||||
|
return 55;
|
||||||
|
}else if(position <= 67 && position + rolledNumber > 67){
|
||||||
|
return position + rolledNumber - 52;
|
||||||
|
}else if(position <= 53 && position + rolledNumber >= 54){
|
||||||
|
return position + rolledNumber + 20;
|
||||||
|
}else{
|
||||||
|
return position + rolledNumber;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
case 'green':
|
||||||
|
if(pawn.position + rolledNumber <= 85){
|
||||||
|
if(position >= 8 && position <= 11){
|
||||||
|
return 42;
|
||||||
|
}else if(position <= 67 && position + rolledNumber > 67){
|
||||||
|
return position + rolledNumber - 52;
|
||||||
|
}else if(position <= 40 && position + rolledNumber >= 41){
|
||||||
|
return position + rolledNumber + 39;
|
||||||
|
}else{
|
||||||
|
return position + rolledNumber;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
case 'yellow':
|
||||||
|
if(pawn.position + rolledNumber <= 85){
|
||||||
|
if(position >= 12 && position <= 15){
|
||||||
|
return 29;
|
||||||
|
}else if(position <= 67 && position + rolledNumber > 67){
|
||||||
|
return position + rolledNumber - 52;
|
||||||
|
}else if(position <= 27 && position + rolledNumber >= 28){
|
||||||
|
return position + rolledNumber + 58;
|
||||||
|
}else{
|
||||||
|
return position + rolledNumber;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
@ -18,7 +18,7 @@ var changeReadyState = (req, res, exit) =>{
|
|||||||
}
|
}
|
||||||
if(updatedPlayers.filter(player => player.ready).length >= 2){
|
if(updatedPlayers.filter(player => player.ready).length >= 2){
|
||||||
updatedDoc.started = true;
|
updatedDoc.started = true;
|
||||||
updatedDoc.players = updatedDoc.players.map(player => player.ready === true);
|
updatedDoc.players.forEach(player => player.ready = true);
|
||||||
updatedDoc.nextMoveTime = Date.now() + 15000;
|
updatedDoc.nextMoveTime = Date.now() + 15000;
|
||||||
updatedDoc.players[0].nowMoving = true;
|
updatedDoc.players[0].nowMoving = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -59,7 +59,7 @@ router.post('/add', function (req, res) {
|
|||||||
updateObj.full = true; // Room is full
|
updateObj.full = true; // Room is full
|
||||||
updateObj.started = true; // Game started
|
updateObj.started = true; // Game started
|
||||||
updateObj.nextMoveTime = Date.now() + 15000;
|
updateObj.nextMoveTime = Date.now() + 15000;
|
||||||
updateObj.players = updateObj.players.map(player => player.ready === true);
|
updateObj.players.forEach(player => player.ready = true);
|
||||||
updateObj.players[0].nowMoving = true; //First joined player moving
|
updateObj.players[0].nowMoving = true; //First joined player moving
|
||||||
updateObj.pawns = getStartPositions();
|
updateObj.pawns = getStartPositions();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const Dice = ({ rolledNumberCallback, nowMoving }) => {
|
|||||||
const [rolledNumber, setRolledNumber] = useState();
|
const [rolledNumber, setRolledNumber] = useState();
|
||||||
const [images] = useState([one, two, three, four, five, six]);
|
const [images] = useState([one, two, three, four, five, six]);
|
||||||
const handleRoll = () => {
|
const handleRoll = () => {
|
||||||
axios.get('http://localhost:3000/game/roll').then(response => {
|
axios.get('http://localhost:3000/game/roll', {withCredentials: true}).then(response => {
|
||||||
const utterance = new SpeechSynthesisUtterance(response.data.number);
|
const utterance = new SpeechSynthesisUtterance(response.data.number);
|
||||||
speechSynthesis.speak(utterance);
|
speechSynthesis.speak(utterance);
|
||||||
setRolledNumber(response.data.number);
|
setRolledNumber(response.data.number);
|
||||||
|
|||||||
@ -55,7 +55,7 @@ const Map = ({ pawns, nowMoving, rolledNumber }) => {
|
|||||||
y = event.clientY - rect.top;
|
y = event.clientY - rect.top;
|
||||||
for(const pawn of pawns){
|
for(const pawn of pawns){
|
||||||
if (ctx.isPointInPath(pawn.circle, x, y)) {
|
if (ctx.isPointInPath(pawn.circle, x, y)) {
|
||||||
axios.post('http://localhost:3000/game/move', {pawnId: pawn._id, position: hintPawn.position}, {withCredentials: true})
|
axios.post('http://localhost:3000/game/move', {pawnId: pawn._id}, {withCredentials: true, mode: 'cors'})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
setHintPawn(null);
|
setHintPawn(null);
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user