From 55308bd7329067a617841a18223bf2d7084543f8 Mon Sep 17 00:00:00 2001 From: Mikayla Dobson Date: Sat, 6 Aug 2022 17:46:18 -0500 Subject: [PATCH] found bug: incorrect conditional, global resource was skipped if value was 0, falsy --- src/components/Gameboard/Nobles.tsx | 14 +++++++------- .../Player/ActionMethods/buyCardActions.ts | 18 +++++++++--------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/components/Gameboard/Nobles.tsx b/src/components/Gameboard/Nobles.tsx index 589a855..49d1341 100644 --- a/src/components/Gameboard/Nobles.tsx +++ b/src/components/Gameboard/Nobles.tsx @@ -43,14 +43,14 @@ export default function Nobles({ state, setState }: StateProps) { return true; } - useEffect(() => { - const currentPlayer = useCurrentPlayer(state); - if (!currentPlayer) return; + // useEffect(() => { + // const currentPlayer = useCurrentPlayer(state); + // if (!currentPlayer) return; - for (let each of state.gameboard.nobles) { - console.log(`${currentPlayer.name} can pick up noble ${state.gameboard.nobles.indexOf(each) + 1}? ${canPickUpNoble(currentPlayer, each) ? "yes" : "no"}`) - } - }, [state]) + // for (let each of state.gameboard.nobles) { + // console.log(`${currentPlayer.name} can pick up noble ${state.gameboard.nobles.indexOf(each) + 1}? ${canPickUpNoble(currentPlayer, each) ? "yes" : "no"}`) + // } + // }, [state]) return (
diff --git a/src/components/Player/ActionMethods/buyCardActions.ts b/src/components/Player/ActionMethods/buyCardActions.ts index 5c4060a..59546e1 100644 --- a/src/components/Player/ActionMethods/buyCardActions.ts +++ b/src/components/Player/ActionMethods/buyCardActions.ts @@ -7,10 +7,10 @@ import { initialActions } from "../../../util/stateSetters"; export const tooExpensive = (card: CardData, state: AppState): boolean => { const currentPlayer = useCurrentPlayer(state); if (!currentPlayer) return true; - for (let [gemType, cost] of Object.entries(card.resourceCost)) { + for (let [cardGemType, cardCost] of Object.entries(card.resourceCost)) { let totalBuyingPower = getTotalBuyingPower(currentPlayer); for (let [heldResource, quantity] of Object.entries(totalBuyingPower)) { - if (gemType === heldResource && quantity < cost) { + if (cardGemType === heldResource && quantity < cardCost) { return true; } } @@ -39,8 +39,8 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData) const typedKey = key as keyof ResourceCost; let adjustedCost = cardCost[typedKey]; let adjustedInventoryValue = newPlayerInventory[typedKey]; - let adjustedResourcePoolValue = newResourcePool[typedKey]; - if (!adjustedCost || !adjustedInventoryValue || !adjustedResourcePoolValue) continue; + let adjustedResourcePoolValue = newResourcePool[typedKey] || 0; + if (!adjustedCost || !adjustedInventoryValue) continue; // before decrementing player inventory values, account for total buying power const buyingPowerDifference = playerBuyingPower[typedKey] - adjustedInventoryValue; @@ -48,8 +48,8 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData) while (adjustedCost > 0) { adjustedInventoryValue--; - adjustedResourcePoolValue++; adjustedCost--; + adjustedResourcePoolValue++; } // assign modified values to player inventory and resource pool @@ -57,13 +57,16 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData) newResourcePool[typedKey] = adjustedResourcePoolValue; } + console.log(newResourcePool); + console.log(newPlayerInventory); + // connect modified player state to updated list of all players updatedPlayer.inventory = newPlayerInventory; updatedPlayer.cards = [...updatedPlayer.cards, card]; newPlayers[idx] = updatedPlayer; // attempt to queue replacement card from full deck - const typedCardTier = ["tierThree", "tierTwo", "tierOne"][card.tier + 1] as keyof FullDeck; + const typedCardTier = ["tierThree", "tierTwo", "tierOne"][2 - (card.tier-1)] as keyof FullDeck; let newFullDeckTargetTier = prev.gameboard.deck[typedCardTier]; const replacementCard = newFullDeckTargetTier.shift(); @@ -73,9 +76,6 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData) // push replacement card to face up card, if exists if (replacementCard) newTargetCardRow.push(replacementCard); - console.log(newTargetCardRow); - console.log(newFullDeckTargetTier); - return { ...prev, players: newPlayers,