From c4f84c512c8cebe4183452baf69e1d27bb7d532e Mon Sep 17 00:00:00 2001 From: Alec Maier Date: Tue, 14 Jul 2020 21:11:23 -0400 Subject: [PATCH] fix bug with card quantities resetting when a new card is added --- javascript/modules/heroku-client.js | 0 javascript/setup.js | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 javascript/modules/heroku-client.js diff --git a/javascript/modules/heroku-client.js b/javascript/modules/heroku-client.js new file mode 100644 index 0000000..e69de29 diff --git a/javascript/setup.js b/javascript/setup.js index 79d9a5f..2e564fa 100644 --- a/javascript/setup.js +++ b/javascript/setup.js @@ -18,7 +18,6 @@ class Game { } } -const fullDeck = []; let gameSize = 0; let atLeastOnePlayer = false; @@ -56,6 +55,7 @@ function renderAvailableCards(isCondensed) { document.getElementById("custom-roles").innerHTML = ""; for (let i = 0; i < cards.length; i ++) { + if (!cards[i].quantity) cards[i].quantity = 0; cards[i].team === "good" ? renderGoodRole(cards[i], i, isCondensed) : renderEvilRole(cards[i], i, isCondensed); @@ -82,7 +82,6 @@ function renderGoodRole(cardInfo, i, isCondensed) { if (card.custom) { renderCustomRoleInModal(card, i); } - fullDeck.push(card); document.getElementById("roles").appendChild(CardManager.constructModalRoleElement(card)); if (isCondensed) { @@ -116,7 +115,6 @@ function renderEvilRole(cardInfo, i, isCondensed) { if (card.custom) { renderCustomRoleInModal(card, i); } - fullDeck.push(card); document.getElementById("roles").appendChild(CardManager.constructModalRoleElement(card)); if (isCondensed) { @@ -350,6 +348,7 @@ function removeOrAddSavedRoleIfNeeded(card) { function incrementCardQuantity(e) { if(e.card.quantity < 25) { e.card.quantity += 1; + cards.find((card) => card.role === e.card.role).quantity += 1; } e.quantityEl.innerHTML = e.card.quantity; updateGameSize(); @@ -358,6 +357,7 @@ function incrementCardQuantity(e) { function decrementCardQuantity(e) { if(e.card.quantity > 0) { e.card.quantity -= 1; + cards.find((card) => card.role === e.card.role).quantity -= 1; } e.quantityEl.innerHTML = e.card.quantity; updateGameSize(); @@ -365,7 +365,7 @@ function decrementCardQuantity(e) { function updateGameSize() { gameSize = 0; - for (let card of fullDeck) { + for (let card of cards) { gameSize += card.quantity; } document.getElementById("game-size").innerText = gameSize + " Players"; @@ -374,7 +374,7 @@ function updateGameSize() { } function resetCardQuantities() { - for (let card of fullDeck) { + for (let card of cards) { card.quantity = 0; } updateGameSize(); @@ -405,7 +405,7 @@ function closeModal() { function buildDeckFromQuantities() { let playerDeck = []; - for (const card of fullDeck) { + for (const card of cards) { for (let i = 0; i < card.quantity; i++) { card.id = utility.generateID(); playerDeck.push(card);