diff --git a/src/components/Card/Card.tsx b/src/components/Card/Card.tsx index 339475a..5fffe46 100644 --- a/src/components/Card/Card.tsx +++ b/src/components/Card/Card.tsx @@ -1,12 +1,9 @@ import { v4 } from 'uuid'; -import { CardData, StateProps } from '../../util/types'; +import { CardProps } from '../../util/propTypes'; +import { ResourceCost } from '../../util/types'; import { buyCardActions } from '../Player/ActionMethods'; const { buyCard, tooExpensive } = buyCardActions; -interface CardProps extends StateProps { - data: CardData -} - export default function Card({ data, state, setState }: CardProps) { return (
@@ -15,9 +12,9 @@ export default function Card({ data, state, setState }: CardProps) {

Point value: {data.points || 0}

Cost:

{ - Object.keys(data.resourceCost).map((key) => { + Object.keys(data.resourceCost).map((key: keyof ResourceCost | string) => { // @ts-ignore - return (data.resourceCost[key] > 0) &&

{key}: {data.resourceCost[key]}

+ return (data.resourceCost[key as keyof ResourceCost] > 0) &&

{key}: {data.resourceCost[key as keyof ResourceCost]}

}) } { state.actions.buyCard.active && diff --git a/src/components/Card/CardRow.tsx b/src/components/Card/CardRow.tsx index 8906727..2b89a07 100644 --- a/src/components/Card/CardRow.tsx +++ b/src/components/Card/CardRow.tsx @@ -1,10 +1,7 @@ -import { v4 } from 'uuid'; -import { CardData, StateProps } from "../../util/types" +import { CardRowProps } from '../../util/propTypes'; +import { CardData } from "../../util/types" import Card from "../Card/Card" - -interface CardRowProps extends StateProps { - tier: number -} +import { v4 } from 'uuid'; export default function CardRow({tier, state, setState}: CardRowProps) { let cards: Array diff --git a/src/components/Card/MiniCard.tsx b/src/components/Card/MiniCard.tsx new file mode 100644 index 0000000..8aeae09 --- /dev/null +++ b/src/components/Card/MiniCard.tsx @@ -0,0 +1,3 @@ +export const MiniCard = () => { + +} \ No newline at end of file diff --git a/src/components/GameConstructor.tsx b/src/components/GameConstructor.tsx index 1b4a3eb..8fe7f7f 100644 --- a/src/components/GameConstructor.tsx +++ b/src/components/GameConstructor.tsx @@ -1,6 +1,7 @@ import { useEffect, useState } from "react" import { useNavigate } from "react-router-dom" -import { CardData, NobleData, PlayerData, StateProps } from "../util/types"; +import { CardData, NobleData, PlayerData } from "../util/types"; +import { StateProps } from '../util/propTypes'; interface InputState { playerOne: PlayerInput diff --git a/src/components/Gameboard/Gameboard.tsx b/src/components/Gameboard/Gameboard.tsx index 7e8a4e6..8f68cba 100644 --- a/src/components/Gameboard/Gameboard.tsx +++ b/src/components/Gameboard/Gameboard.tsx @@ -1,8 +1,9 @@ // types, data, utils -import { AppState, PlayerData, ResourceCost, SetActionType, StateProps } from '../../util/types'; +import { AppState, PlayerData, ResourceCost, SetActionType } from '../../util/types'; import { setStateBuyCard, setStateGetChips, setStateReserveCard } from '../../util/stateSetters'; import { useCallback, useEffect, useState } from 'react'; import { getChipsActions } from '../Player/ActionMethods'; +import { StateProps } from '../../util/propTypes'; const { validateChips } = getChipsActions; // components diff --git a/src/components/Gameboard/Nobles.tsx b/src/components/Gameboard/Nobles.tsx index e34bd74..02945df 100644 --- a/src/components/Gameboard/Nobles.tsx +++ b/src/components/Gameboard/Nobles.tsx @@ -1,6 +1,7 @@ import { useEffect } from "react"; import { v4 } from "uuid"; -import { NobleData, ResourceCost, StateProps } from "../../util/types"; +import { NobleData, ResourceCost } from "../../util/types"; +import { StateProps } from "../../util/propTypes"; import "./Nobles.css" export default function Nobles({ state, setState }: StateProps) { diff --git a/src/components/Player/AllPlayers.tsx b/src/components/Player/AllPlayers.tsx index 4e90b62..1ff5520 100644 --- a/src/components/Player/AllPlayers.tsx +++ b/src/components/Player/AllPlayers.tsx @@ -1,17 +1,18 @@ import Player from "./Player"; import { v4 } from "uuid"; import "./AllPlayers.css" -import { PlayerData, SetActionType, StateProps } from "../../util/types"; - -interface AllPlayersProps extends StateProps { - setActionState: (value: SetActionType, player?: PlayerData) => void -} +import { PlayerData } from "../../util/types"; +import { useState } from "react"; +import { AllPlayersProps } from "../../util/propTypes"; export default function AllPlayers({ state, setState, setActionState }: AllPlayersProps) { + const [activePlayer, setActivePlayer] = useState(); + const playerPool = state.players?.map((player: PlayerData) => ); + return (
{ - state.players?.map((player: PlayerData) => ) + playerPool }
) diff --git a/src/components/Player/Player.tsx b/src/components/Player/Player.tsx index b9e4f12..6f667fb 100644 --- a/src/components/Player/Player.tsx +++ b/src/components/Player/Player.tsx @@ -1,12 +1,8 @@ -import { PlayerData, SetActionType, StateProps } from "../../util/types" +import { PlayerProps } from "../../util/propTypes"; +import { PlayerData } from "../../util/types" import { useEffect, useState } from "react"; import { v4 } from "uuid"; -interface PlayerProps extends StateProps { - player: PlayerData, - setActionState: (value: SetActionType, player?: PlayerData) => void -} - export default function Player({ player, state, setState, setActionState }: PlayerProps) { const [dynamic, setDynamic] = useState(); const [prompt, setPrompt] = useState("Your turn! Select an action type below."); @@ -33,22 +29,37 @@ export default function Player({ player, state, setState, setActionState }: Play return (
{/* Static Data */} -

Name: {player.name}

-

Score: {player.points}

-

Is {player.starter || "not"} round starter

+
+

Name: {player.name}

+

Score: {player.points}

+

Is {player.starter || "not"} round starter

+
{/* Dynamic data from state */} -

{dynamic?.turnActive ? prompt : '...'}

- - - -
+
+

{dynamic?.turnActive ? prompt : '...'}

+ + + +
+ +
{dynamic?.name}'s Resources - { dynamic && Object.entries(dynamic?.inventory).map(([key,value]) => { - return value > 0 &&

{key}: {value}

- })} -
-
+ +
+ { dynamic && Object.entries(dynamic?.inventory).map(([key,value]) => { + return value > 0 &&

{key}: {value}

+ })} +
+ +
+ { dynamic && dynamic.cards.length > 0 && Object.entries(dynamic.cards).map(([key, value]) => { + return ( +

+ ) + })} +
+
) } \ No newline at end of file diff --git a/src/components/Resources/AvailableChips.tsx b/src/components/Resources/AvailableChips.tsx index 3106d8a..e3bf6d3 100644 --- a/src/components/Resources/AvailableChips.tsx +++ b/src/components/Resources/AvailableChips.tsx @@ -1,13 +1,9 @@ -import { AppState, ResourceCost, StateProps } from "../../util/types"; +import { ResourceProps } from "../../util/propTypes"; +import { ResourceCost } from "../../util/types"; import { useEffect } from "react"; import { v4 } from "uuid"; import "./AvailableChips.css" import { setStateGetChips } from "../../util/stateSetters"; -// import { validateChips } from "../Player/ActionMethods"; - -interface ResourceProps extends StateProps { - liftSelection: (value: keyof ResourceCost) => void -} export default function AvailableChips({ state, setState, liftSelection }: ResourceProps) { useEffect(() => { diff --git a/src/components/Resources/ViewHTML.tsx b/src/components/Resources/ViewHTML.tsx index f424c9d..12514e1 100644 --- a/src/components/Resources/ViewHTML.tsx +++ b/src/components/Resources/ViewHTML.tsx @@ -1,7 +1,8 @@ import { v4 } from "uuid"; import { useEffect, useState } from "react"; import { setStateGetChips } from "../../util/stateSetters"; -import { ResourceCost, StateProps } from "../../util/types"; +import { StateProps } from "../../util/propTypes"; +import { ResourceCost } from "../../util/types"; import { getChipsActions } from "../Player/ActionMethods"; const { getChips } = getChipsActions; diff --git a/src/util/propTypes.ts b/src/util/propTypes.ts new file mode 100644 index 0000000..41ded0a --- /dev/null +++ b/src/util/propTypes.ts @@ -0,0 +1,27 @@ +import { AppState, CardData, PlayerData, ResourceCost, SetActionType, setStateType } from "./types"; + +export interface StateProps { + state: AppState, + setState: setStateType +} + +export interface CardProps extends StateProps { + data: CardData +} + +export interface CardRowProps extends StateProps { + tier: number +} + +export interface AllPlayersProps extends StateProps { + setActionState: (value: SetActionType, player?: PlayerData) => void +} + +export interface PlayerProps extends AllPlayersProps { + player: PlayerData +} + +export interface ResourceProps extends StateProps { + liftSelection: (value: keyof ResourceCost) => void +} + diff --git a/src/util/types.ts b/src/util/types.ts index 0237090..b1cab57 100644 --- a/src/util/types.ts +++ b/src/util/types.ts @@ -48,11 +48,6 @@ export enum SetActionType { export type setStateType = Dispatch> -export interface StateProps { - state: AppState, - setState: setStateType -} - export interface GameInformation { players: PlayerData[], nobles: NobleData[],