diff --git a/package-lock.json b/package-lock.json
index d391950..d45d849 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.3.0",
+ "scss": "^0.2.4",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -1195,6 +1196,14 @@
"integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
"dev": true
},
+ "node_modules/ometa": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/ometa/-/ometa-0.2.2.tgz",
+ "integrity": "sha512-LZuoK/yjU3FvrxPjUXUlZ1bavCfBPqauA7fsNdwi+AVhRdyk2IzgP3JRnevvjzQ6fKHdUw8YISshf53FmpHrng==",
+ "engines": {
+ "node": ">= 0.2.0"
+ }
+ },
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -1338,6 +1347,17 @@
"loose-envify": "^1.1.0"
}
},
+ "node_modules/scss": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/scss/-/scss-0.2.4.tgz",
+ "integrity": "sha512-4u8V87F+Q/upVhUmhPnB4C1R11xojkRkWjExL2v0CX2EXTg18VrKd+9JWoeyCp2VEMdSpJsyAvVU+rVjogh51A==",
+ "dependencies": {
+ "ometa": "0.2.2"
+ },
+ "engines": {
+ "node": ">= 0.2.0"
+ }
+ },
"node_modules/semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -2251,6 +2271,11 @@
"integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
"dev": true
},
+ "ometa": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/ometa/-/ometa-0.2.2.tgz",
+ "integrity": "sha512-LZuoK/yjU3FvrxPjUXUlZ1bavCfBPqauA7fsNdwi+AVhRdyk2IzgP3JRnevvjzQ6fKHdUw8YISshf53FmpHrng=="
+ },
"path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -2353,6 +2378,14 @@
"loose-envify": "^1.1.0"
}
},
+ "scss": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/scss/-/scss-0.2.4.tgz",
+ "integrity": "sha512-4u8V87F+Q/upVhUmhPnB4C1R11xojkRkWjExL2v0CX2EXTg18VrKd+9JWoeyCp2VEMdSpJsyAvVU+rVjogh51A==",
+ "requires": {
+ "ometa": "0.2.2"
+ }
+ },
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
diff --git a/package.json b/package.json
index c8dd376..67a14dc 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.3.0",
+ "scss": "^0.2.4",
"uuid": "^8.3.2"
},
"devDependencies": {
diff --git a/src/App.tsx b/src/App.tsx
index 3afb7c7..da48960 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -13,13 +13,15 @@ function App() {
return (
-
SPLENDOR
-
-
- } />
- } />
-
-
+
+ SPLENDOR
+
+
+ } />
+ } />
+
+
+
);
}
diff --git a/src/components/Gameboard/Gameboard.tsx b/src/components/Gameboard/Gameboard.tsx
index d8db50e..e1af511 100644
--- a/src/components/Gameboard/Gameboard.tsx
+++ b/src/components/Gameboard/Gameboard.tsx
@@ -1,6 +1,5 @@
import { useContext, useEffect, useState } from 'react';
-import { Context } from '../../context/Context';
-import GameConstructor from '../../util/GameConstructor';
+import { appState, Context } from '../../context/Context';
import { NobleData } from '../../util/types';
import AllPlayers from '../Player/AllPlayers';
import AvailableChips from '../Resources/AvailableChips';
@@ -28,16 +27,16 @@ export default function Gameboard() {
} else {
setView(
)
}
- }, [players]);
+ }, [AppContext]);
const shuffleDeck = () => {
if (!gameboard.deck) return;
diff --git a/src/components/Gameboard/Nobles.tsx b/src/components/Gameboard/Nobles.tsx
index a184cb3..c289556 100644
--- a/src/components/Gameboard/Nobles.tsx
+++ b/src/components/Gameboard/Nobles.tsx
@@ -1,17 +1,16 @@
-import { useContext, useEffect } from "react";
import { v4 } from "uuid";
-import { Context } from "../../context/Context";
+import { NobleData, ResourceCost } from "../../util/types";
import "./Nobles.css"
-export default function Nobles() {
- const { gameboard } = useContext(Context);
+export default function Nobles({ AppContext }: any) {
+ const { gameboard } = AppContext;
return (
NOBLES
{
- gameboard.nobles.map((noble) => {
+ gameboard.nobles && gameboard.nobles.map((noble: NobleData) => {
return (
Points: {noble.points}
@@ -19,7 +18,7 @@ export default function Nobles() {
{
Object.keys(noble.resourceCost).map((each) => {
// @ts-ignore
- return (noble.resourceCost[each] > 0) &&
{each}: {noble.resourceCost[each]}
+ return (noble.resourceCost[each as keyof ResourceCost] > 0) &&
{each}: {noble.resourceCost[each as keyof ResourceCost]}
})
}
diff --git a/src/components/Player/AllPlayers.tsx b/src/components/Player/AllPlayers.tsx
index 2573bd9..e493435 100644
--- a/src/components/Player/AllPlayers.tsx
+++ b/src/components/Player/AllPlayers.tsx
@@ -3,14 +3,15 @@ import { Context } from "../../context/Context"
import Player from "./Player";
import { v4 } from "uuid";
import "./AllPlayers.css"
+import { PlayerData } from "../../util/types";
-export default function AllPlayers() {
- const { players } = useContext(Context);
+export default function AllPlayers({ AppContext }: any) {
+ const { players } = AppContext;
return (
{
- players.map((player) =>
)
+ players.map((player: PlayerData) =>
)
}
)
diff --git a/src/components/Player/Player.tsx b/src/components/Player/Player.tsx
index 7161028..5e1a53c 100644
--- a/src/components/Player/Player.tsx
+++ b/src/components/Player/Player.tsx
@@ -1,39 +1,36 @@
+import { useContext } from "react";
import { v4 } from "uuid";
-import { useState } from "react";
-import { CardData, GemValue, PlayerData } from "../../util/types";
+import { Context } from "../../context/Context";
+import { GemValue, PlayerData, ResourceCost } from "../../util/types"
interface PlayerProps {
data: PlayerData
}
export default function Player({ data }: PlayerProps) {
- const [state, setState] = useState({
- name: data.name,
- starter: data.starter,
- points: data.points,
- nobles: data.nobles,
- cards: data.cards,
- inventory: data.inventory
- })
+ const AppContext = useContext(Context);
- const buyCard = (cardData: CardData) => {
- let newCards = state.cards;
- newCards.push(cardData);
- setState({ ...state, cards: newCards })
- }
+ let state: any;
+ let setState: any;
- const getChips = (payload: (string | GemValue)[]) => {
- let newInventory = state.inventory;
- for (let value of payload) {
- for (let key in newInventory) {
- if (value === key) {
- // @ts-ignore
- newInventory[value] += 1;
- }
- }
- }
+ // const [state, setState] = useState({
+ // name: data.name,
+ // starter: data.starter,
+ // points: data.points,
+ // nobles: data.nobles,
+ // cards: data.cards,
+ // inventory: data.inventory
+ // })
- setState({ ...state, inventory: newInventory });
+ // const buyCard = (cardData: CardData) => {
+ // let newCards = state.cards;
+ // newCards.push(cardData);
+ // setState({ ...state, cards: newCards })
+ // }
+
+ const getChips = (resource: string) => {
+ AppContext.gameboard.tradingResources[resource as keyof ResourceCost] -= 1;
+ console.log(AppContext);
}
return (
@@ -41,6 +38,7 @@ export default function Player({ data }: PlayerProps) {
Name: {data.name}
Score: {data.points}
Is {data.starter || "not"} round starter
+
diff --git a/src/components/Resources/AvailableChips.tsx b/src/components/Resources/AvailableChips.tsx
index 1ec569b..61ba953 100644
--- a/src/components/Resources/AvailableChips.tsx
+++ b/src/components/Resources/AvailableChips.tsx
@@ -1,23 +1,23 @@
-import { useContext } from "react"
-import { Context } from "../../context/Context"
+import { useContext, useEffect, useState } from "react"
import { v4 } from "uuid";
+import { appState, Context } from "../../context/Context";
+import { ResourceCost } from "../../util/types";
import "./AvailableChips.css"
export default function AvailableChips() {
- const { gameboard } = useContext(Context);
+ const AppContext = useContext(Context);
return (
- {
- Object.keys(gameboard.tradingResources).map((key: string) => {
- return (
-
- {/* @ts-ignore */}
-
{key}: {gameboard.tradingResources[key]}
-
- )
- })
- }
+ {
+ Object.keys(AppContext.gameboard.tradingResources).map((key: string) => {
+ return (
+
+
{key}: {AppContext.gameboard.tradingResources[key as keyof ResourceCost]}
+
+ )
+ })
+ }
)
}
\ No newline at end of file
diff --git a/src/util/types.d.ts b/src/util/types.d.ts
index 3f1fc69..edddb40 100644
--- a/src/util/types.d.ts
+++ b/src/util/types.d.ts
@@ -44,10 +44,10 @@ export interface NobleData {
}
export enum GemValue {
- Ruby,
- Sapphire,
- Emerald,
- Diamond,
- Onyx,
- Gold,
+ ruby,
+ sapphire,
+ emerald,
+ diamond,
+ onyx,
+ gold,
}
\ No newline at end of file