diff --git a/src/components/Card/Card.tsx b/src/components/Card/Card.tsx index 40cd713..0889fbf 100644 --- a/src/components/Card/Card.tsx +++ b/src/components/Card/Card.tsx @@ -12,7 +12,7 @@ export default function Card({ data, state, setState }: CardProps) { if (!data) return
; return ( -Counts as: {data.gemValue}
Point value: {data.points || 0}
diff --git a/src/components/Player/ActionMethods/buyCardActions.ts b/src/components/Player/ActionMethods/buyCardActions.ts index c8f8a57..4eca4d8 100644 --- a/src/components/Player/ActionMethods/buyCardActions.ts +++ b/src/components/Player/ActionMethods/buyCardActions.ts @@ -89,12 +89,24 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData) updatedPlayer.cards = { ...updatedPlayer.cards, [card.gemValue]: [...updatedPlayer.cards[card.gemValue as keyof PlayerCards], card] } + let reservedCardCheck = false; + // checks if current card was bought from reserved cards, removing it if so + if (updatedPlayer.reservedCards) { + let beforeLength = updatedPlayer.reservedCards.length; + updatedPlayer.reservedCards = updatedPlayer.reservedCards.filter((each: CardData) => each.resourceCost !== card.resourceCost); + let afterLength = updatedPlayer.reservedCards.length; + if (beforeLength !== afterLength) reservedCardCheck = true; + } + const typedCardTier = cardTierToKey(card.tier); let newFullDeckTargetTier = prev.gameboard.deck[typedCardTier]; - const replacementCard = newFullDeckTargetTier.shift(); let newTargetCardRow = prev.gameboard.cardRows[typedCardTier]; - newTargetCardRow = newTargetCardRow.filter((data: CardData) => data.resourceCost !== card.resourceCost); - if (replacementCard) newTargetCardRow.push(replacementCard); + + if (!reservedCardCheck) { + const replacementCard = newFullDeckTargetTier.shift(); + newTargetCardRow = newTargetCardRow.filter((data: CardData) => data.resourceCost !== card.resourceCost); + if (replacementCard) newTargetCardRow.push(replacementCard); + } return { ...prev, diff --git a/src/components/Player/Player.tsx b/src/components/Player/Player.tsx index 5e50c65..1c065fc 100644 --- a/src/components/Player/Player.tsx +++ b/src/components/Player/Player.tsx @@ -5,6 +5,7 @@ import { CardData, PlayerData } from "../../util/types" import { hasMaxReserved } from "./ActionMethods/reserveCardActions"; import { hasMaxChips } from "./ActionMethods/getChipsActions"; import { v4 } from "uuid"; +import Card from "../Card/Card"; export default function Player({ player, state, setState }: PlayerProps) { const [dynamic, setDynamic] = useStateReserved cards:
{ dynamic.reservedCards?.map((data: CardData) => { - return ( -{data.gemValue} cards
-{data.points + " points" || null}
- { - Object.entries(data.resourceCost).map(([key, value]) => { - return value > 0 &&{key}: {value}
- }) - } -