diff --git a/src/App.tsx b/src/App.tsx
index a3c6355..9e78fa7 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,6 +1,6 @@
import { BrowserRouter, Routes, Route } from 'react-router-dom'
import { initialState } from './util/stateSetters';
-import { useState } from 'react'
+import { useEffect, useState } from 'react'
import Gameboard from './components/Gameboard/Gameboard'
import GameConstructor from './components/GameConstructor';
@@ -9,6 +9,10 @@ import './App.css'
function App() {
const [state, setState] = useState(initialState);
+ useEffect(() => {
+ return;
+ }, [state]);
+
return (
SPLENDOR
diff --git a/src/components/Card/Card.tsx b/src/components/Card/Card.tsx
index e6a37c4..a5f38d7 100644
--- a/src/components/Card/Card.tsx
+++ b/src/components/Card/Card.tsx
@@ -1,4 +1,4 @@
-import { useEffect } from 'react';
+
import { v4 } from 'uuid';
import { CardProps } from '../../util/propTypes';
import { ResourceCost } from '../../util/types';
diff --git a/src/components/Player/ActionMethods/buyCardActions.ts b/src/components/Player/ActionMethods/buyCardActions.ts
index 42b4d77..ac4a920 100644
--- a/src/components/Player/ActionMethods/buyCardActions.ts
+++ b/src/components/Player/ActionMethods/buyCardActions.ts
@@ -1,4 +1,3 @@
-import { initialActions } from "../../../util/stateSetters";
import { turnOrderUtil } from "../../../util/turnOrderUtil";
import { AppState, CardData, ResourceCost, setStateType } from "../../../util/types";
import { useCurrentPlayer } from "../../../util/useCurrentPlayer";
@@ -23,14 +22,14 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData)
const currentPlayer = useCurrentPlayer(state);
if (!currentPlayer) return;
- setState(() => {
- const { newPlayers, roundIncrement } = turnOrderUtil(state, currentPlayer);
+ setState((prev) => {
+ const { newPlayers, roundIncrement } = turnOrderUtil(prev, currentPlayer);
const idx = newPlayers.indexOf(currentPlayer);
const updatedPlayer = newPlayers[idx];
const cardCost = card.resourceCost;
const newPlayerInventory = updatedPlayer.inventory;
- const newResourcePool = state.gameboard.tradingResources;
+ const newResourcePool = prev.gameboard.tradingResources;
for (let key of Object.keys(cardCost)) {
const typedKey = key as keyof ResourceCost;
@@ -52,61 +51,17 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData)
}
updatedPlayer.inventory = newPlayerInventory;
+ updatedPlayer.cards = [...updatedPlayer.cards, card];
newPlayers[idx] = updatedPlayer;
- state.gameboard.tradingResources = newResourcePool;
- roundIncrement && (state.round = state.round + 1);
- state.players = newPlayers;
-
- return state;
+ return {
+ ...prev,
+ players: newPlayers,
+ round: (roundIncrement ? prev.round + 1 : prev.round),
+ gameboard: {
+ ...prev.gameboard,
+ tradingResources: newResourcePool
+ }
+ }
})
}
-
-// export const updateResources = (state: AppState, card: CardData) => {
-// console.log('updateResources called');
-// let currentPlayer = useCurrentPlayer(state);
-// let newTradingResources = state.gameboard.tradingResources;
-// let updatedPlayer = currentPlayer;
-// const totalBuyingPower = getTotalBuyingPower(state);
-
-// let difference = 0;
-// for (let [key, value] of Object.entries(card.resourceCost)) {
-// if (value < 1) continue;
-// if (value !== totalBuyingPower[key as keyof ResourceCost]) {
-// difference += Math.abs(totalBuyingPower[key as keyof ResourceCost] - value);
-// }
-// }
-
-// return { newTradingResources, updatedPlayer }
-// }
-
-// export const buyCard = (state: AppState, setState: setStateType, card: CardData) => {
-// let currentPlayer = useCurrentPlayer(state);
-// if (!currentPlayer) return;
-// const { newPlayers, roundIncrement } = turnOrderUtil(state, currentPlayer);
-
-// console.log('cleared to setstate');
-
-// setState((prev: AppState) => {
-// if (!currentPlayer) return prev;
-
-// const { newTradingResources, updatedPlayer } = updateResources(state, card);
-// const idx = newPlayers.indexOf(currentPlayer);
-// updatedPlayer && (newPlayers[idx] = updatedPlayer);
-
-// return {
-// ...prev,
-// gameboard: {
-// ...prev.gameboard,
-// cardRows: prev.gameboard.cardRows,
-// tradingResources: newTradingResources
-// },
-// round: (roundIncrement ? prev.round + 1 : prev.round),
-// players: newPlayers,
-// actions: initialActions
-// }
-// })
-
-// // for testing?
-// return state;
-// }
\ No newline at end of file
diff --git a/src/components/Player/Player.tsx b/src/components/Player/Player.tsx
index bb38d3a..84ec0d6 100644
--- a/src/components/Player/Player.tsx
+++ b/src/components/Player/Player.tsx
@@ -10,10 +10,47 @@ export default function Player({ player, state, setState }: PlayerProps) {
const [dynamic, setDynamic] = useState
();
const [prompt, setPrompt] = useState("Your turn! Select an action type below.");
+ const [cardView, setCardView] = useState(Cards:
);
+ const [reservedView, setReservedView] = useState(Reserved cards:
);
+
useEffect(() => {
setDynamic(state.players.find((element: PlayerData) => element.id === player.id))
}, [state]);
+ useEffect(() => {
+ dynamic && setCardView(
+ <>
+ Cards:
+ {
+ dynamic.cards.map((data: CardData) => {
+ return (
+
+
{data.gemValue} card
+
{data.points + " points" || null}
+
+ )
+ })
+ }
+ >
+ )
+
+ dynamic && setReservedView(
+ <>
+ Reserved cards:
+ {
+ dynamic.reservedCards?.map((data: CardData) => {
+ return (
+
+
{data.gemValue} cards
+
{data.points + " points" || null}
+
+ )
+ })
+ }
+ >
+ )
+ }, [dynamic, setState])
+
const handleClick = (actionSelection: number) => {
switch (actionSelection) {
case 0:
@@ -63,27 +100,11 @@ export default function Player({ player, state, setState }: PlayerProps) {
-
Cards:
- { dynamic && dynamic.cards.length > 0 && dynamic.cards.map((data: CardData) => {
- return (
-
-
{data.gemValue} card
-
{data.points + " points" || null}
-
- )})
- }
+ {dynamic && cardView}
-
Reserved cards:
- { dynamic?.reservedCards && dynamic.reservedCards?.map((data: CardData) => {
- return (
-
-
{data.gemValue} cards
-
{data.points + " points" || null}
-
- )
- })}
+ {dynamic && reservedView}