From e0ad965ac2b1883815a6b7200ab25f788838bce1 Mon Sep 17 00:00:00 2001 From: Mikayla Dobson Date: Fri, 5 Aug 2022 19:50:28 -0500 Subject: [PATCH] cleanup --- src/App.tsx | 6 +- src/components/Card/Card.tsx | 2 +- .../Player/ActionMethods/buyCardActions.ts | 71 ++++--------------- src/components/Player/Player.tsx | 57 ++++++++++----- 4 files changed, 58 insertions(+), 78 deletions(-) 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}