includes held cards in total available resources

This commit is contained in:
Mikayla Dobson
2022-07-30 08:24:41 -05:00
parent 3ba8dedcfa
commit 3e8d3b5e03
5 changed files with 22 additions and 9 deletions

View File

@@ -7,7 +7,24 @@ export const tooExpensive = (card: CardData, state: AppState): boolean => {
if (!currentPlayer) return true; if (!currentPlayer) return true;
for (let [gemType, cost] of Object.entries(card.resourceCost)) { for (let [gemType, cost] of Object.entries(card.resourceCost)) {
for (let [heldResource, quantity] of Object.entries(currentPlayer.inventory)) { let totalBuyingPower = {
ruby: 0,
sapphire: 0,
emerald: 0,
diamond: 0,
onyx: 0,
gold: 0,
}
for (let [key,quantity] of Object.entries(currentPlayer.inventory)) {
totalBuyingPower[key as keyof ResourceCost] += quantity;
}
for (let each of currentPlayer.cards) {
totalBuyingPower[each.gemValue as keyof ResourceCost] += 1;
}
for (let [heldResource, quantity] of Object.entries(totalBuyingPower)) {
if (gemType === heldResource && quantity < cost) { if (gemType === heldResource && quantity < cost) {
return true; return true;
} }

View File

@@ -32,12 +32,12 @@ export default function Player({ player, state, setState, setActionState }: Play
{/* Static Data */} {/* Static Data */}
<section className="player-constants"> <section className="player-constants">
<p>Name: {player.name}</p> <p>Name: {player.name}</p>
<p>Score: {player.points}</p>
<p>Is {player.starter || "not"} round starter</p> <p>Is {player.starter || "not"} round starter</p>
</section> </section>
{/* Dynamic data from state */} {/* Dynamic data from state */}
<section className="turn-and-action-based"> <section className="turn-and-action-based">
<p>Score: {dynamic?.points}</p>
<p>{dynamic?.turnActive ? prompt : '...'}</p> <p>{dynamic?.turnActive ? prompt : '...'}</p>
<button onClick={() => setActionSelection(0)}>Get Chips</button> <button onClick={() => setActionSelection(0)}>Get Chips</button>
<button onClick={() => setActionSelection(1)}>Buy Card</button> <button onClick={() => setActionSelection(1)}>Buy Card</button>
@@ -49,7 +49,7 @@ export default function Player({ player, state, setState, setActionState }: Play
<div className="player-chips"> <div className="player-chips">
<p>Chips:</p> <p>Chips:</p>
{ dynamic && Object.entries(dynamic?.inventory).map(([key,value]) => { { dynamic && Object.entries(dynamic.inventory).map(([key,value]) => {
return value > 0 && <p key={v4()}>{key}: {value}</p> return value > 0 && <p key={v4()}>{key}: {value}</p>
})} })}
</div> </div>
@@ -60,7 +60,7 @@ export default function Player({ player, state, setState, setActionState }: Play
return ( return (
<div key={v4()} className="mini-card" style={{backgroundColor: 'white'}}> <div key={v4()} className="mini-card" style={{backgroundColor: 'white'}}>
<p>{data.gemValue} card</p> <p>{data.gemValue} card</p>
<p>{data.points || null}</p> <p>{data.points + " points" || null}</p>
</div> </div>
)}) )})
} }

View File

@@ -3,7 +3,6 @@ import { ResourceCost } from "../../util/types";
import { useEffect } from "react"; import { useEffect } from "react";
import { v4 } from "uuid"; import { v4 } from "uuid";
import "./AvailableChips.css" import "./AvailableChips.css"
import { setStateGetChips } from "../../util/stateSetters";
export default function AvailableChips({ state, setState, liftSelection }: ResourceProps) { export default function AvailableChips({ state, setState, liftSelection }: ResourceProps) {
useEffect(() => { useEffect(() => {

View File

@@ -1,7 +1,5 @@
import { v4 } from "uuid";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { ResourceCost, StateProps } from "../../util/types"; import { StateProps } from "../../util/propTypes";
import { setStateGetChips } from "../../util/stateSetters";
import { GetChipsHTML } from "./ViewHTML"; import { GetChipsHTML } from "./ViewHTML";
export default function SelectionView({ state, setState }: StateProps) { export default function SelectionView({ state, setState }: StateProps) {

View File

@@ -31,7 +31,6 @@ const setNobles = (state: AppState, setState: setStateType) => {
} }
export const setCardRows = (state: AppState) => { export const setCardRows = (state: AppState) => {
console.log('set cards');
let newDeck = state.gameboard.cardRows; let newDeck = state.gameboard.cardRows;
for (const [key, value] of Object.entries(state.gameboard.deck)) { for (const [key, value] of Object.entries(state.gameboard.deck)) {
while (newDeck[key as keyof FullDeck].length < 4) { while (newDeck[key as keyof FullDeck].length < 4) {