I'm not sure if I can ask this question but I have a logic error that I cannot pin point. After the player has landed on a square they should be offered to buy the square. What's currently happening is player 1 is being offered to buy player 2's square. player 2 is working fine. The console.log in movePiece is outputting the correct player. Wondering if anyone can see the problem?
/**
* Moves players pieces around the board.
*/
function movePiece() {
let diceRoll = rollDice();
if (currentPlayer === players[0]) {
currentPosition1 += diceRoll;
if (currentPosition1 >= board.length) {
currentPosition1 -= board.length;
}
let currentSquare = squares[currentPosition1];
currentSquare.appendChild(pieceOne);
message.innerHTML = `${players[0]} you are on ${pieceOne.parentElement.getAttribute('data-type')} `;
currentPlayer = players[0];
console.log(currentPlayer);
checkIfOwned();
updatePeople();
currentPlayer = players[1];
} else {
currentPosition2 += diceRoll;
if (currentPosition2 >= board.length) {
currentPosition2 -= board.length;
}
let currentSquare = squares[currentPosition2];
currentSquare.appendChild(pieceTwo);
message.innerHTML = `${players[1]} you are on ${pieceTwo.parentElement.getAttribute('data-type')}`;
currentPlayer = players[1];
checkIfOwned();
updatePeople();
currentPlayer = players[0];
}
}
async function buySquare(currentPlayer) {
await sleep(4000);
if (currentPlayer === players[0]) {
message.innerHTML = `<p>Would you like to buy ${pieceOne.parentElement.getAttribute('data-type')} for 5 people?`;
let input = await getUserInput();
if (input === 'y') {
player1Owned.push(pieceOne.parentElement.getAttribute('data-type'));
} else {
console.log('you have not bought this square');
}
} else {
message.innerHTML = `<p>Would you like to buy ${pieceTwo.parentElement.getAttribute('data-type')} for 5 people?`;
let input = await getUserInput();
if (input === 'y') {
player2Owned.push(pieceTwo.parentElement.getAttribute('data-type'));
} else {
console.log('you have not bought this square');
}
}
}
function checkIfOwned() {
if (player1Owned.includes(pieceOne.parentElement.getAttribute('data-type'))) {
squareOwned = true;
} else {
buySquare();
}
}