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
+
{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