diff --git a/src/App.tsx b/src/App.tsx
index d72e35d..0ab9afe 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -10,10 +10,6 @@ import ResumeGame from './components/ResumeGame';
function App() {
const [state, setState] = useState(initialState);
- useEffect(() => {
- return;
- }, [state]);
-
return (
SPLENDOR
diff --git a/src/components/Gameboard/Gameboard.tsx b/src/components/Gameboard/Gameboard.tsx
index 8038a1b..d58fb3f 100644
--- a/src/components/Gameboard/Gameboard.tsx
+++ b/src/components/Gameboard/Gameboard.tsx
@@ -49,6 +49,12 @@ export default function Gameboard({ state, setState }: StateProps) {
useEffect(() => {
setCardRows(state);
+
+ for (let player of state.players) {
+ if (player.points >= 15) {
+ console.log('trigger endgame');
+ }
+ }
}, [state])
// displays state of board if data is populated, otherwise points to game constructor
diff --git a/src/components/Gameboard/Nobles.tsx b/src/components/Gameboard/Nobles.tsx
index 49d1341..488b743 100644
--- a/src/components/Gameboard/Nobles.tsx
+++ b/src/components/Gameboard/Nobles.tsx
@@ -1,57 +1,18 @@
import { v4 } from "uuid";
-import { NobleData, PlayerData, ResourceCost } from "../../util/types";
+import { NobleData, ResourceCost } from "../../util/types";
import { StateProps } from "../../util/propTypes";
import "./Nobles.css"
-import getTotalBuyingPower from "../../util/getTotalBuyingPower";
-import { useCurrentPlayer } from "../../util/useCurrentPlayer";
-import { useEffect } from "react";
-export default function Nobles({ state, setState }: StateProps) {
- const removeNoble = (noble: NobleData) => {
- console.log(noble);
- setState((prev) => {
- return {
- ...prev,
- gameboard: {
- ...prev.gameboard,
- nobles: prev.gameboard.nobles.filter((each) => each.nobleid !== noble.nobleid)
- }
- }
- })
+export default function Nobles({ state }: StateProps) {
+ if (!state.gameboard.nobles.length) {
+ return (
+
+
NOBLES
+
All nobles have been acquired!
+
+ )
}
- const canPickUpNoble = (player: PlayerData, noble: NobleData): boolean => {
- const nobleCost = noble.resourceCost;
-
- const totalBuyingPower = getTotalBuyingPower(player);
- const playerInventory = player.inventory;
-
-
- for (let key of Object.keys(totalBuyingPower)) {
- const typedKey = key as keyof ResourceCost;
- let coinValue = playerInventory[typedKey] || 0;
-
- if (!noble.resourceCost[typedKey]) continue;
- // @ts-ignore
- if ((totalBuyingPower[typedKey] - coinValue) >= noble.resourceCost[typedKey]) {
- continue;
- } else {
- return false;
- }
- }
-
- return true;
- }
-
- // useEffect(() => {
- // const currentPlayer = useCurrentPlayer(state);
- // if (!currentPlayer) return;
-
- // for (let each of state.gameboard.nobles) {
- // console.log(`${currentPlayer.name} can pick up noble ${state.gameboard.nobles.indexOf(each) + 1}? ${canPickUpNoble(currentPlayer, each) ? "yes" : "no"}`)
- // }
- // }, [state])
-
return (
NOBLES
diff --git a/src/components/Player/ActionMethods/buyCardActions.ts b/src/components/Player/ActionMethods/buyCardActions.ts
index 14a55b2..4b4c480 100644
--- a/src/components/Player/ActionMethods/buyCardActions.ts
+++ b/src/components/Player/ActionMethods/buyCardActions.ts
@@ -2,7 +2,8 @@ import { turnOrderUtil } from "../../../util/turnOrderUtil";
import { AppState, CardData, FullDeck, ResourceCost, setStateType } from "../../../util/types";
import { useCurrentPlayer } from "../../../util/useCurrentPlayer";
import getTotalBuyingPower from "../../../util/getTotalBuyingPower";
-import { initialActions } from "../../../util/stateSetters";
+import { initialActions, setStateGetNoble } from "../../../util/stateSetters";
+import { canPickUpNoble } from "../../../util/canPickUpNoble";
export const tooExpensive = (card: CardData, state: AppState): boolean => {
const currentPlayer = useCurrentPlayer(state);
@@ -92,5 +93,12 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData)
}
}
}
- })
+ });
+
+ for (let each of state.gameboard.nobles) {
+ if (canPickUpNoble(currentPlayer, each)) {
+ console.log(`${currentPlayer.name} can pick up noble ${state.gameboard.nobles.indexOf(each)}`);
+ setState((prev) => setStateGetNoble(prev, each));
+ }
+ }
}