found bug: incorrect conditional, global resource was skipped if value was 0, falsy
This commit is contained in:
@@ -43,14 +43,14 @@ export default function Nobles({ state, setState }: StateProps) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
const currentPlayer = useCurrentPlayer(state);
|
// const currentPlayer = useCurrentPlayer(state);
|
||||||
if (!currentPlayer) return;
|
// if (!currentPlayer) return;
|
||||||
|
|
||||||
for (let each of state.gameboard.nobles) {
|
// 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"}`)
|
// console.log(`${currentPlayer.name} can pick up noble ${state.gameboard.nobles.indexOf(each) + 1}? ${canPickUpNoble(currentPlayer, each) ? "yes" : "no"}`)
|
||||||
}
|
// }
|
||||||
}, [state])
|
// }, [state])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="nobles-panel">
|
<div className="nobles-panel">
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import { initialActions } from "../../../util/stateSetters";
|
|||||||
export const tooExpensive = (card: CardData, state: AppState): boolean => {
|
export const tooExpensive = (card: CardData, state: AppState): boolean => {
|
||||||
const currentPlayer = useCurrentPlayer(state);
|
const currentPlayer = useCurrentPlayer(state);
|
||||||
if (!currentPlayer) return true;
|
if (!currentPlayer) return true;
|
||||||
for (let [gemType, cost] of Object.entries(card.resourceCost)) {
|
for (let [cardGemType, cardCost] of Object.entries(card.resourceCost)) {
|
||||||
let totalBuyingPower = getTotalBuyingPower(currentPlayer);
|
let totalBuyingPower = getTotalBuyingPower(currentPlayer);
|
||||||
for (let [heldResource, quantity] of Object.entries(totalBuyingPower)) {
|
for (let [heldResource, quantity] of Object.entries(totalBuyingPower)) {
|
||||||
if (gemType === heldResource && quantity < cost) {
|
if (cardGemType === heldResource && quantity < cardCost) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,8 +39,8 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData)
|
|||||||
const typedKey = key as keyof ResourceCost;
|
const typedKey = key as keyof ResourceCost;
|
||||||
let adjustedCost = cardCost[typedKey];
|
let adjustedCost = cardCost[typedKey];
|
||||||
let adjustedInventoryValue = newPlayerInventory[typedKey];
|
let adjustedInventoryValue = newPlayerInventory[typedKey];
|
||||||
let adjustedResourcePoolValue = newResourcePool[typedKey];
|
let adjustedResourcePoolValue = newResourcePool[typedKey] || 0;
|
||||||
if (!adjustedCost || !adjustedInventoryValue || !adjustedResourcePoolValue) continue;
|
if (!adjustedCost || !adjustedInventoryValue) continue;
|
||||||
|
|
||||||
// before decrementing player inventory values, account for total buying power
|
// before decrementing player inventory values, account for total buying power
|
||||||
const buyingPowerDifference = playerBuyingPower[typedKey] - adjustedInventoryValue;
|
const buyingPowerDifference = playerBuyingPower[typedKey] - adjustedInventoryValue;
|
||||||
@@ -48,8 +48,8 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData)
|
|||||||
|
|
||||||
while (adjustedCost > 0) {
|
while (adjustedCost > 0) {
|
||||||
adjustedInventoryValue--;
|
adjustedInventoryValue--;
|
||||||
adjustedResourcePoolValue++;
|
|
||||||
adjustedCost--;
|
adjustedCost--;
|
||||||
|
adjustedResourcePoolValue++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// assign modified values to player inventory and resource pool
|
// assign modified values to player inventory and resource pool
|
||||||
@@ -57,13 +57,16 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData)
|
|||||||
newResourcePool[typedKey] = adjustedResourcePoolValue;
|
newResourcePool[typedKey] = adjustedResourcePoolValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(newResourcePool);
|
||||||
|
console.log(newPlayerInventory);
|
||||||
|
|
||||||
// connect modified player state to updated list of all players
|
// connect modified player state to updated list of all players
|
||||||
updatedPlayer.inventory = newPlayerInventory;
|
updatedPlayer.inventory = newPlayerInventory;
|
||||||
updatedPlayer.cards = [...updatedPlayer.cards, card];
|
updatedPlayer.cards = [...updatedPlayer.cards, card];
|
||||||
newPlayers[idx] = updatedPlayer;
|
newPlayers[idx] = updatedPlayer;
|
||||||
|
|
||||||
// attempt to queue replacement card from full deck
|
// attempt to queue replacement card from full deck
|
||||||
const typedCardTier = ["tierThree", "tierTwo", "tierOne"][card.tier + 1] as keyof FullDeck;
|
const typedCardTier = ["tierThree", "tierTwo", "tierOne"][2 - (card.tier-1)] as keyof FullDeck;
|
||||||
let newFullDeckTargetTier = prev.gameboard.deck[typedCardTier];
|
let newFullDeckTargetTier = prev.gameboard.deck[typedCardTier];
|
||||||
const replacementCard = newFullDeckTargetTier.shift();
|
const replacementCard = newFullDeckTargetTier.shift();
|
||||||
|
|
||||||
@@ -73,9 +76,6 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData)
|
|||||||
// push replacement card to face up card, if exists
|
// push replacement card to face up card, if exists
|
||||||
if (replacementCard) newTargetCardRow.push(replacementCard);
|
if (replacementCard) newTargetCardRow.push(replacementCard);
|
||||||
|
|
||||||
console.log(newTargetCardRow);
|
|
||||||
console.log(newFullDeckTargetTier);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...prev,
|
...prev,
|
||||||
players: newPlayers,
|
players: newPlayers,
|
||||||
|
|||||||
Reference in New Issue
Block a user