diff --git a/src/components/Card/Card.tsx b/src/components/Card/Card.tsx index 5fffe46..9365ad1 100644 --- a/src/components/Card/Card.tsx +++ b/src/components/Card/Card.tsx @@ -2,6 +2,7 @@ import { v4 } from 'uuid'; import { CardProps } from '../../util/propTypes'; import { ResourceCost } from '../../util/types'; import { buyCardActions } from '../Player/ActionMethods'; +import { reserveCard } from '../Player/ActionMethods/reserveCardActions'; const { buyCard, tooExpensive } = buyCardActions; export default function Card({ data, state, setState }: CardProps) { @@ -25,6 +26,12 @@ export default function Card({ data, state, setState }: CardProps) { Buy This Card } + { state.actions.reserveCard.active && + + } ) diff --git a/src/components/Player/ActionMethods/buyCardActions.ts b/src/components/Player/ActionMethods/buyCardActions.ts index edfad9d..2e69e1e 100644 --- a/src/components/Player/ActionMethods/buyCardActions.ts +++ b/src/components/Player/ActionMethods/buyCardActions.ts @@ -5,7 +5,6 @@ import { useCurrentPlayer } from "../../../util/useCurrentPlayer"; 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)) { let totalBuyingPower = { ruby: 0, @@ -44,13 +43,11 @@ export const buyCard = (card: CardData, state: AppState, setState: setStateType) */ let currentPlayer = useCurrentPlayer(state); - console.log(card); setState((prev: AppState) => { if (!currentPlayer) return prev; const { newPlayers, roundIncrement } = turnOrderUtil(prev, currentPlayer); - let newPlayerInventory = currentPlayer.inventory; let newResourcePool = prev.gameboard.tradingResources; @@ -68,7 +65,6 @@ export const buyCard = (card: CardData, state: AppState, setState: setStateType) } resourceToReplenish += cost; - newPlayerInventory[gem as keyof ResourceCost] = newInventoryValue; newResourcePool[gem as keyof ResourceCost] = resourceToReplenish; } @@ -88,10 +84,8 @@ export const buyCard = (card: CardData, state: AppState, setState: setStateType) } updatedPlayer.points = newScore; - const idx = newPlayers.findIndex((one: PlayerData) => one.id === currentPlayer?.id); newPlayers[idx] = updatedPlayer; - let updatedRows = { ...prev.gameboard.cardRows } if (card.tier) { diff --git a/src/components/Player/ActionMethods/getChipsActions.ts b/src/components/Player/ActionMethods/getChipsActions.ts index 3f60ba5..4b70a5e 100644 --- a/src/components/Player/ActionMethods/getChipsActions.ts +++ b/src/components/Player/ActionMethods/getChipsActions.ts @@ -1,6 +1,5 @@ import { AppState, setStateType } from '../../../util/types'; import { useCurrentPlayer } from '../../../util/useCurrentPlayer'; -// @ts-ignore import { turnOrderUtil } from '../../../util/turnOrderUtil'; import { initialActions } from "../../../util/stateSetters"; diff --git a/src/components/Player/ActionMethods/reserveCardActions.ts b/src/components/Player/ActionMethods/reserveCardActions.ts index cd01c2f..ed8c9b3 100644 --- a/src/components/Player/ActionMethods/reserveCardActions.ts +++ b/src/components/Player/ActionMethods/reserveCardActions.ts @@ -1,3 +1,7 @@ -export const reserveCard = () => { - return; +import { AppState } from "../../../util/types"; +import { useCurrentPlayer } from "../../../util/useCurrentPlayer"; + +export const reserveCard = (state: AppState) => { + const currentPlayer = useCurrentPlayer(state); + console.log(currentPlayer); } \ No newline at end of file diff --git a/src/components/Player/Player.tsx b/src/components/Player/Player.tsx index 6384bd4..35a095c 100644 --- a/src/components/Player/Player.tsx +++ b/src/components/Player/Player.tsx @@ -2,7 +2,6 @@ import { PlayerProps } from "../../util/propTypes"; import { CardData, PlayerData } from "../../util/types" import { useEffect, useState } from "react"; import { v4 } from "uuid"; -import { MiniCard } from "../Card/MiniCard"; export default function Player({ player, state, setState, setActionState }: PlayerProps) { const [dynamic, setDynamic] = useState(); @@ -65,6 +64,18 @@ export default function Player({ player, state, setState, setActionState }: Play )}) } + +
+

Reserved cards:

+ { dynamic?.reservedCards && dynamic.reservedCards?.map((data: CardData) => { + return ( +
+

{data.gemValue} cards

+

{data.points + " points" || null}

+
+ ) + })} +
) diff --git a/src/util/types.ts b/src/util/types.ts index b1cab57..b538cd4 100644 --- a/src/util/types.ts +++ b/src/util/types.ts @@ -63,6 +63,7 @@ export interface PlayerData { points: number, nobles: NobleData[], cards: CardData[], + reservedCards?: CardData[], inventory: { [Property in keyof ResourceCost]: number }