diff --git a/src/components/Gameboard/Gameboard.tsx b/src/components/Gameboard/Gameboard.tsx index 8f68cba..5d519db 100644 --- a/src/components/Gameboard/Gameboard.tsx +++ b/src/components/Gameboard/Gameboard.tsx @@ -8,7 +8,7 @@ const { validateChips } = getChipsActions; // components import Nobles from './Nobles'; -import initializeBoard from '../../util/initializeBoard'; +import initializeBoard, { setCardRows } from '../../util/initializeBoard'; import AvailableChips from '../Resources/AvailableChips'; import AllPlayers from '../Player/AllPlayers'; import CardRow from '../Card/CardRow'; @@ -44,7 +44,7 @@ export default function Gameboard({ state, setState }: StateProps) { }) }, [state]); - const setActionState = useCallback((value: SetActionType, player: PlayerData) => { + const setActionState = useCallback((value: SetActionType, player?: PlayerData) => { if (!player?.turnActive) return; switch (value) { @@ -67,6 +67,10 @@ export default function Gameboard({ state, setState }: StateProps) { initializeBoard(state, setState); }, []) + useEffect(() => { + setCardRows(state); + }, [state]) + // displays state of board if data is populated useEffect(() => { if (!state.players.length) { @@ -86,7 +90,6 @@ export default function Gameboard({ state, setState }: StateProps) { - {/* @ts-ignore */} ) diff --git a/src/components/Player/ActionMethods/buyCardActions.ts b/src/components/Player/ActionMethods/buyCardActions.ts index 1f03837..9082960 100644 --- a/src/components/Player/ActionMethods/buyCardActions.ts +++ b/src/components/Player/ActionMethods/buyCardActions.ts @@ -1,5 +1,5 @@ import { turnOrderUtil } from "../../../util/turnOrderUtil"; -import { AppState, CardData, PlayerData, ResourceCost, setStateType } from "../../../util/types"; +import { AppState, CardData, FullDeck, PlayerData, ResourceCost, setStateType } from "../../../util/types"; import { useCurrentPlayer } from "../../../util/useCurrentPlayer"; export const tooExpensive = (card: CardData, state: AppState): boolean => { @@ -27,7 +27,7 @@ export const buyCard = (card: CardData, state: AppState, setState: setStateType) */ let currentPlayer = useCurrentPlayer(state); - console.log(currentPlayer); + console.log(card); setState((prev: AppState) => { if (!currentPlayer) return prev; @@ -75,14 +75,37 @@ export const buyCard = (card: CardData, state: AppState, setState: setStateType) const idx = newPlayers.findIndex((one: PlayerData) => one.id === currentPlayer?.id); newPlayers[idx] = updatedPlayer; + let updatedRows = { ...prev.gameboard.cardRows } + + if (card.tier) { + let tierKey; + switch (card.tier) { + case 1: + tierKey = "tierOne" + break; + case 2: + tierKey = "tierTwo" + break; + case 3: + tierKey = "tierThree" + break; + default: + break; + } + + updatedRows[tierKey as keyof FullDeck] = + prev.gameboard.cardRows[tierKey as keyof FullDeck].filter((found: CardData) => found.resourceCost !== card.resourceCost); + } + return { ...prev, + round: (roundIncrement ? prev.round + 1 : prev.round), + players: newPlayers, gameboard: { ...prev.gameboard, - tradingResources: prev.gameboard.tradingResources - }, - round: (roundIncrement ? prev.round + 1 : prev.round), - players: newPlayers + tradingResources: prev.gameboard.tradingResources, + cardRows: updatedRows + } } }) } \ No newline at end of file diff --git a/src/components/Player/Player.tsx b/src/components/Player/Player.tsx index 70b6928..3a4c3d4 100644 --- a/src/components/Player/Player.tsx +++ b/src/components/Player/Player.tsx @@ -58,7 +58,7 @@ export default function Player({ player, state, setState, setActionState }: Play

Cards:

{ dynamic && dynamic.cards.length > 0 && dynamic.cards.map((data: CardData) => { return ( -
+

{data.gemValue} card

{data.points || null}

diff --git a/src/data/cards.json b/src/data/cards.json index e6df941..1f0a25b 100644 --- a/src/data/cards.json +++ b/src/data/cards.json @@ -1,998 +1,1089 @@ { "tierOne": [ - { - "resourceCost": { - "ruby": 1, - "sapphire": 1, - "emerald": 1, - "onyx": 1, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 0 + { + "resourceCost": { + "ruby": 1, + "sapphire": 1, + "emerald": 1, + "onyx": 1, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 1, - "emerald": 0, - "onyx": 1, - "diamond": 1 - }, - "gemValue": "emerald", - "points": 0 + "gemValue": "diamond", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 1, + "emerald": 0, + "onyx": 1, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 1, - "emerald": 1, - "onyx": 0, - "diamond": 1 - }, - "gemValue": "onyx", - "points": 0 + "gemValue": "emerald", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 1, + "emerald": 1, + "onyx": 0, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 0, - "emerald": 1, - "onyx": 1, - "diamond": 1 - }, - "gemValue": "sapphire", - "points": 0 + "gemValue": "onyx", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 0, + "emerald": 1, + "onyx": 1, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 1, - "emerald": 1, - "onyx": 1, - "diamond": 1 - }, - "gemValue": "ruby", - "points": 0 + "gemValue": "sapphire", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 1, + "emerald": 1, + "onyx": 1, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 2, - "emerald": 0, - "onyx": 0, - "diamond": 2 - }, - "gemValue": "onyx", - "points": 0 + "gemValue": "ruby", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 2, + "emerald": 0, + "onyx": 0, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 0, - "emerald": 2, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 0 + "gemValue": "onyx", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 0, + "emerald": 2, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 3, - "emerald": 1, - "onyx": 0, - "diamond": 1 - }, - "gemValue": "emerald", - "points": 0 + "gemValue": "onyx", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 3, + "emerald": 1, + "onyx": 0, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 1, - "emerald": 3, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "sapphire", - "points": 0 + "gemValue": "emerald", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 1, + "emerald": 3, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 2, - "diamond": 1 - }, - "gemValue": "sapphire", - "points": 0 + "gemValue": "sapphire", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 2, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 1, - "emerald": 2, - "onyx": 1, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 0 + "gemValue": "sapphire", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 1, + "emerald": 2, + "onyx": 1, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 1, - "emerald": 1, - "onyx": 1, - "diamond": 2 - }, - "gemValue": "ruby", - "points": 0 + "gemValue": "diamond", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 1, + "emerald": 1, + "onyx": 1, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 1, - "onyx": 1, - "diamond": 2 - }, - "gemValue": "ruby", - "points": 0 + "gemValue": "ruby", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 1, + "onyx": 1, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 0, - "emerald": 1, - "onyx": 1, - "diamond": 1 - }, - "gemValue": "sapphire", - "points": 0 + "gemValue": "ruby", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 0, + "emerald": 1, + "onyx": 1, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 2, - "emerald": 2, - "onyx": 1, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 0 + "gemValue": "sapphire", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 2, + "emerald": 2, + "onyx": 1, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 2, - "emerald": 1, - "onyx": 0, - "diamond": 1 - }, - "gemValue": "onyx", - "points": 0 + "gemValue": "diamond", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 2, + "emerald": 1, + "onyx": 0, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 2, - "emerald": 1, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "ruby", - "points": 0 + "gemValue": "onyx", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 2, + "emerald": 1, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 0, - "emerald": 0, - "onyx": 3, - "diamond": 1 - }, - "gemValue": "ruby", - "points": 0 + "gemValue": "ruby", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 0, + "emerald": 0, + "onyx": 3, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 1, - "emerald": 0, - "onyx": 1, - "diamond": 3 - }, - "gemValue": "diamond", - "points": 0 + "gemValue": "ruby", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 1, + "emerald": 0, + "onyx": 1, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 0, - "emerald": 0, - "onyx": 1, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 0 + "gemValue": "diamond", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 0, + "emerald": 0, + "onyx": 1, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 1, - "emerald": 0, - "onyx": 0, - "diamond": 2 - }, - "gemValue": "emerald", - "points": 0 + "gemValue": "diamond", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 1, + "emerald": 0, + "onyx": 0, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 1, - "emerald": 0, - "onyx": 2, - "diamond": 1 - }, - "gemValue": "emerald", - "points": 0 + "gemValue": "emerald", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 1, + "emerald": 0, + "onyx": 2, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 1, - "emerald": 0, - "onyx": 1, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 0 + "gemValue": "emerald", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 1, + "emerald": 0, + "onyx": 1, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 0, - "emerald": 1, - "onyx": 1, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 0 + "gemValue": "emerald", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 0, + "emerald": 1, + "onyx": 1, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 0, - "emerald": 2, - "onyx": 0, - "diamond": 1 - }, - "gemValue": "sapphire", - "points": 0 + "gemValue": "onyx", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 0, + "emerald": 2, + "onyx": 0, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 2, - "onyx": 0, - "diamond": 2 - }, - "gemValue": "onyx", - "points": 0 + "gemValue": "sapphire", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 2, + "onyx": 0, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 2, - "emerald": 0, - "onyx": 2, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 0 + "gemValue": "onyx", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 2, + "emerald": 0, + "onyx": 2, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 2, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 0 + "gemValue": "diamond", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 2, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 2 - }, - "gemValue": "ruby", - "points": 0 + "gemValue": "emerald", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 2, - "onyx": 2, - "diamond": 0 - }, - "gemValue": "sapphire", - "points": 0 + "gemValue": "ruby", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 2, + "onyx": 2, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 3, - "diamond": 0 - }, - "gemValue": "sapphire", - "points": 0 + "gemValue": "sapphire", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 3, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 3 - }, - "gemValue": "ruby", - "points": 0 + "gemValue": "sapphire", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 3, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 0 + "gemValue": "ruby", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 3, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 0 + "gemValue": "onyx", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 3, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 0 + "gemValue": "emerald", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 3, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 4, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "sapphire", - "points": 1 + "gemValue": "diamond", + "points": 0, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 4, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 4 - }, - "gemValue": "ruby", - "points": 1 + "gemValue": "sapphire", + "points": 1, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 4 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 4, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 1 + "gemValue": "ruby", + "points": 1, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 4, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 4, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 1 + "gemValue": "onyx", + "points": 1, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 4, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 4, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 1 - } + "gemValue": "diamond", + "points": 1, + "tier": 1 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 4, + "diamond": 0 + }, + "gemValue": "emerald", + "points": 1, + "tier": 1 + } ], "tierTwo": [ - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 5, - "diamond": 3 - }, - "gemValue": "ruby", - "points": 2 + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 5, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 0, - "emerald": 5, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 2 + "gemValue": "ruby", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 0, + "emerald": 5, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 3, - "emerald": 0, - "onyx": 2, - "diamond": 2 - }, - "gemValue": "emerald", - "points": 1 + "gemValue": "onyx", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 3, + "emerald": 0, + "onyx": 2, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 5 - }, - "gemValue": "onyx", - "points": 2 + "gemValue": "emerald", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 5 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 5, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 2 + "gemValue": "onyx", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 5, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 5, - "diamond": 0 - }, - "gemValue": "ruby", - "points": 2 + "gemValue": "emerald", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 5, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 5, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 2 + "gemValue": "ruby", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 5, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 5, - "emerald": 3, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 2 + "gemValue": "diamond", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 5, + "emerald": 3, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 5, - "sapphire": 0, - "emerald": 0, - "onyx": 3, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 2 + "gemValue": "emerald", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 5, + "sapphire": 0, + "emerald": 0, + "onyx": 3, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 5, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "sapphire", - "points": 2 + "gemValue": "diamond", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 5, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 3, - "emerald": 0, - "onyx": 0, - "diamond": 2 - }, - "gemValue": "diamond", - "points": 1 + "gemValue": "sapphire", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 3, + "emerald": 0, + "onyx": 0, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 1, - "emerald": 4, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 2 + "gemValue": "diamond", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 1, + "emerald": 4, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 1, - "sapphire": 0, - "emerald": 0, - "onyx": 4, - "diamond": 2 - }, - "gemValue": "sapphire", - "points": 2 + "gemValue": "onyx", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 1, + "sapphire": 0, + "emerald": 0, + "onyx": 4, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 6, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 3 + "gemValue": "sapphire", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 6, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 2, - "emerald": 0, - "onyx": 1, - "diamond": 4 - }, - "gemValue": "emerald", - "points": 2 + "gemValue": "emerald", + "points": 3, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 2, + "emerald": 0, + "onyx": 1, + "diamond": 4 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 6 - }, - "gemValue": "diamond", - "points": 3 + "gemValue": "emerald", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 6 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 4, - "emerald": 2, - "onyx": 0, - "diamond": 1 - }, - "gemValue": "ruby", - "points": 2 + "gemValue": "diamond", + "points": 3, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 4, + "emerald": 2, + "onyx": 0, + "diamond": 1 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 2, - "emerald": 2, - "onyx": 0, - "diamond": 3 - }, - "gemValue": "onyx", - "points": 1 + "gemValue": "ruby", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 2, + "emerald": 2, + "onyx": 0, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 3, - "onyx": 2, - "diamond": 3 - }, - "gemValue": "onyx", - "points": 1 + "gemValue": "onyx", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 3, + "onyx": 2, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 6, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 3 + "gemValue": "onyx", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 6, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 0, - "emerald": 0, - "onyx": 3, - "diamond": 2 - }, - "gemValue": "ruby", - "points": 1 + "gemValue": "onyx", + "points": 3, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 0, + "emerald": 0, + "onyx": 3, + "diamond": 2 }, - { - "resourceCost": { - "ruby": 4, - "sapphire": 0, - "emerald": 1, - "onyx": 2, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 2 + "gemValue": "ruby", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 4, + "sapphire": 0, + "emerald": 1, + "onyx": 2, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 0, - "emerald": 2, - "onyx": 0, - "diamond": 3 - }, - "gemValue": "emerald", - "points": 1 + "gemValue": "diamond", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 0, + "emerald": 2, + "onyx": 0, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 0, - "emerald": 3, - "onyx": 2, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 1 + "gemValue": "emerald", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 0, + "emerald": 3, + "onyx": 2, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 2, - "sapphire": 3, - "emerald": 0, - "onyx": 3, - "diamond": 0 - }, - "gemValue": "ruby", - "points": 1 + "gemValue": "diamond", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 2, + "sapphire": 3, + "emerald": 0, + "onyx": 3, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 2, - "emerald": 2, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "sapphire", - "points": 1 + "gemValue": "ruby", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 2, + "emerald": 2, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 6, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "ruby", - "points": 3 + "gemValue": "sapphire", + "points": 1, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 6, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 6, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "sapphire", - "points": 3 + "gemValue": "ruby", + "points": 3, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 6, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 3, - "emerald": 0, - "onyx": 0, - "diamond": 5 - }, - "gemValue": "sapphire", - "points": 2 + "gemValue": "sapphire", + "points": 3, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 3, + "emerald": 0, + "onyx": 0, + "diamond": 5 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 2, - "emerald": 3, - "onyx": 3, - "diamond": 0 - }, - "gemValue": "sapphire", - "points": 1 - } + "gemValue": "sapphire", + "points": 2, + "tier": 2 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 2, + "emerald": 3, + "onyx": 3, + "diamond": 0 + }, + "gemValue": "sapphire", + "points": 1, + "tier": 2 + } ], "tierThree": [ - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 7, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "ruby", - "points": 4 + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 7, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 7, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 4 + "gemValue": "ruby", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 7, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 0, - "emerald": 0, - "onyx": 6, - "diamond": 3 - }, - "gemValue": "diamond", - "points": 4 + "gemValue": "diamond", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 0, + "emerald": 0, + "onyx": 6, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 3, - "emerald": 6, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 4 + "gemValue": "diamond", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 3, + "emerald": 6, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 7, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 4 + "gemValue": "emerald", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 7, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 3, - "emerald": 0, - "onyx": 3, - "diamond": 6 - }, - "gemValue": "sapphire", - "points": 4 + "gemValue": "onyx", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 3, + "emerald": 0, + "onyx": 3, + "diamond": 6 }, - { - "resourceCost": { - "ruby": 6, - "sapphire": 0, - "emerald": 3, - "onyx": 3, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 4 + "gemValue": "sapphire", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 6, + "sapphire": 0, + "emerald": 3, + "onyx": 3, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 0, - "diamond": 7 - }, - "gemValue": "sapphire", - "points": 4 + "gemValue": "onyx", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 0, + "diamond": 7 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 7, - "emerald": 0, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 4 + "gemValue": "sapphire", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 7, + "emerald": 0, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 6, - "emerald": 3, - "onyx": 0, - "diamond": 3 - }, - "gemValue": "emerald", - "points": 4 + "gemValue": "emerald", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 6, + "emerald": 3, + "onyx": 0, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 5, - "emerald": 3, - "onyx": 3, - "diamond": 3 - }, - "gemValue": "ruby", - "points": 3 + "gemValue": "emerald", + "points": 4, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 5, + "emerald": 3, + "onyx": 3, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 3, - "emerald": 0, - "onyx": 3, - "diamond": 5 - }, - "gemValue": "emerald", - "points": 3 + "gemValue": "ruby", + "points": 3, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 3, + "emerald": 0, + "onyx": 3, + "diamond": 5 }, - { - "resourceCost": { - "ruby": 5, - "sapphire": 3, - "emerald": 3, - "onyx": 3, - "diamond": 0 - }, - "gemValue": "diamond", - "points": 3 + "gemValue": "emerald", + "points": 3, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 5, + "sapphire": 3, + "emerald": 3, + "onyx": 3, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 3, - "emerald": 5, - "onyx": 0, - "diamond": 3 - }, - "gemValue": "onyx", - "points": 3 + "gemValue": "diamond", + "points": 3, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 3, + "emerald": 5, + "onyx": 0, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 0, - "emerald": 3, - "onyx": 5, - "diamond": 3 - }, - "gemValue": "sapphire", - "points": 3 + "gemValue": "onyx", + "points": 3, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 0, + "emerald": 3, + "onyx": 5, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 3, - "emerald": 0, - "onyx": 0, - "diamond": 7 - }, - "gemValue": "sapphire", - "points": 5 + "gemValue": "sapphire", + "points": 3, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 3, + "emerald": 0, + "onyx": 0, + "diamond": 7 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 0, - "emerald": 0, - "onyx": 7, - "diamond": 3 - }, - "gemValue": "diamond", - "points": 5 + "gemValue": "sapphire", + "points": 5, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 0, + "emerald": 0, + "onyx": 7, + "diamond": 3 }, - { - "resourceCost": { - "ruby": 3, - "sapphire": 0, - "emerald": 7, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "ruby", - "points": 5 + "gemValue": "diamond", + "points": 5, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 3, + "sapphire": 0, + "emerald": 7, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 0, - "sapphire": 7, - "emerald": 3, - "onyx": 0, - "diamond": 0 - }, - "gemValue": "emerald", - "points": 5 + "gemValue": "ruby", + "points": 5, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 0, + "sapphire": 7, + "emerald": 3, + "onyx": 0, + "diamond": 0 }, - { - "resourceCost": { - "ruby": 7, - "sapphire": 0, - "emerald": 0, - "onyx": 3, - "diamond": 0 - }, - "gemValue": "onyx", - "points": 5 - } + "gemValue": "emerald", + "points": 5, + "tier": 3 + }, + { + "resourceCost": { + "ruby": 7, + "sapphire": 0, + "emerald": 0, + "onyx": 3, + "diamond": 0 + }, + "gemValue": "onyx", + "points": 5, + "tier": 3 + } ] -} \ No newline at end of file + } + \ No newline at end of file diff --git a/src/util/initializeBoard.ts b/src/util/initializeBoard.ts index 21699c9..09cb1ac 100644 --- a/src/util/initializeBoard.ts +++ b/src/util/initializeBoard.ts @@ -30,18 +30,21 @@ const setNobles = (state: AppState, setState: setStateType) => { setState({ ...state, gameboard: { ...state.gameboard, nobles: shuffledNobles }}) } -export default function initializeBoard(state: AppState, setState: setStateType) { - shuffleDeck(state, setState); - +export const setCardRows = (state: AppState) => { + console.log('set cards'); let newDeck = state.gameboard.cardRows; for (const [key, value] of Object.entries(state.gameboard.deck)) { while (newDeck[key as keyof FullDeck].length < 4) { - // @ts-ignore const nextCard = value.shift(); newDeck[key as keyof FullDeck].push(nextCard); } } + return newDeck; +} +export default function initializeBoard(state: AppState, setState: setStateType) { + shuffleDeck(state, setState); + const newDeck = setCardRows(state); setState({ ...state, gameboard: { ...state.gameboard, cardRows: newDeck } }) setNobles(state, setState); } \ No newline at end of file