does not allow player to take non-existent resources

This commit is contained in:
Mikayla Dobson
2022-07-25 11:55:44 -05:00
parent fe58efdb5d
commit 7d78cdddca
2 changed files with 22 additions and 2 deletions

View File

@@ -32,6 +32,21 @@ export const validateChips = (state: AppState): boolean => {
const unique = new Set(selection);
if (selection.length === 3 && selection.length > unique.size) return false;
let globalResourceCopy = { ...state.gameboard.tradingResources }
for (let item of selection) {
for (let key of Object.keys(globalResourceCopy)) {
if (item === key) {
globalResourceCopy[key] -= 1;
}
}
}
for (let value of Object.values(globalResourceCopy)) {
if (value < 0) return false;
}
return true;
}

View File

@@ -1,8 +1,9 @@
import { ResourceCost, StateProps } from "../../util/types";
import { AppState, ResourceCost, StateProps } 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
@@ -19,7 +20,11 @@ export default function AvailableChips({ state, setState, liftSelection }: Resou
Object.keys(state.gameboard.tradingResources).map((key: string | keyof ResourceCost) => {
return (
<div key={v4()} className={`chips-${key}`}>
<button key={v4()} value={key} onClick={() => liftSelection(key as keyof ResourceCost)}>
<button
key={v4()}
value={key}
onClick={() => liftSelection(key as keyof ResourceCost)}
>
{key}: {state.gameboard.tradingResources[key as keyof ResourceCost]}
</button>
</div>