diff --git a/src/components/Player/ActionMethods/buyCardActions.ts b/src/components/Player/ActionMethods/buyCardActions.ts index f0dca32..89eb4f7 100644 --- a/src/components/Player/ActionMethods/buyCardActions.ts +++ b/src/components/Player/ActionMethods/buyCardActions.ts @@ -76,6 +76,8 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData) availableGold--; cardCostPointer--; goldToReturn++; + } else { + break; } } diff --git a/src/components/Player/ActionMethods/reserveCardActions.ts b/src/components/Player/ActionMethods/reserveCardActions.ts index b64249b..24b6ab8 100644 --- a/src/components/Player/ActionMethods/reserveCardActions.ts +++ b/src/components/Player/ActionMethods/reserveCardActions.ts @@ -29,13 +29,25 @@ export const reserveCard = (state: AppState, setState: setStateType, card: CardD setState((prev: AppState) => { const { newPlayers, roundIncrement } = turnOrderUtil(prev, currentPlayer); - const updatedPlayer = { - ...currentPlayer, - reservedCards: currentPlayer.reservedCards ? [...currentPlayer.reservedCards, card] : [card], - inventory: goldAllowable(currentPlayer) ? { + // const updatedPlayer = { + // ...currentPlayer, + // reservedCards: currentPlayer.reservedCards ? [...currentPlayer.reservedCards, card] : [card], + // inventory: goldAllowable(currentPlayer) ? { + // ...currentPlayer.inventory, + // gold: currentPlayer.inventory.gold && currentPlayer.inventory.gold + 1 + // } : currentPlayer.inventory + // } + + const updatedPlayer = currentPlayer; + updatedPlayer.reservedCards = currentPlayer.reservedCards ? [ + ...currentPlayer.reservedCards, card + ] : [card]; + + if (prev.actions.reserveCard.includeGold) { + updatedPlayer.inventory = { ...currentPlayer.inventory, - gold: currentPlayer.inventory.gold && currentPlayer.inventory.gold + 1 - } : currentPlayer.inventory + gold: currentPlayer.inventory.gold ? currentPlayer.inventory.gold + 1 : 1 + } } const idx = newPlayers.indexOf(currentPlayer); diff --git a/src/components/Resources/SelectionView.tsx b/src/components/Resources/SelectionView.tsx index d6ad369..935a474 100644 --- a/src/components/Resources/SelectionView.tsx +++ b/src/components/Resources/SelectionView.tsx @@ -5,12 +5,12 @@ import { GetChipsHTML, ReserveCardHTML } from "./ViewHTML"; export default function SelectionView({ state, setState }: StateProps) { const [currentPlayer, setCurrentPlayer] = useState(useCurrentPlayer(state)); - const actionTypes = [ state.actions.getChips, state.actions.buyCard, state.actions.reserveCard ] + const [view, setView] = useState(<>>); useEffect(() => { diff --git a/src/components/Resources/ViewHTML.tsx b/src/components/Resources/ViewHTML.tsx index 4c85f84..17a90d9 100644 --- a/src/components/Resources/ViewHTML.tsx +++ b/src/components/Resources/ViewHTML.tsx @@ -1,10 +1,10 @@ -import { v4 } from "uuid"; import { useEffect, useState } from "react"; -import { setStateGetChips } from "../../hooks/stateSetters"; +import { v4 } from "uuid"; +import { setStateGetChips, setStateReserveCard, setStateReservePlusGold } from "../../hooks/stateSetters"; +import { useCurrentPlayer } from "../../hooks/useCurrentPlayer"; import { StateProps } from "../../util/propTypes"; import { ResourceCost } from "../../util/types"; import { getChipsActions } from "../Player/ActionMethods"; -import { useCurrentPlayer } from "../../hooks/useCurrentPlayer"; import { hasMaxChips } from "../Player/ActionMethods/getChipsActions"; const { getChips } = getChipsActions; @@ -42,12 +42,21 @@ export const GetChipsHTML = ({ state, setState }: StateProps) => { } export const ReserveCardHTML = ({ state, setState }: StateProps) => { - const [takeGold, setTakeGold] = useState(""); + const [takeGold, setTakeGold] = useState(false); const currentPlayer = useCurrentPlayer(state); useEffect(() => { - - }) + switch (takeGold) { + case true: + setState((prev) => setStateReservePlusGold(prev)); + break; + case false: + setState((prev) => setStateReserveCard(prev)); + break; + default: + break; + } + }, [takeGold]); return (