From efc99555878f96e80c98924af576ba0dc06ed306 Mon Sep 17 00:00:00 2001 From: Mikayla Dobson <93477693+innocuous-symmetry@users.noreply.github.com> Date: Sun, 24 Jul 2022 13:58:43 -0500 Subject: [PATCH] global resource stockpile updates as well --- src/components/Player/ActionMethods.ts | 31 ++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/components/Player/ActionMethods.ts b/src/components/Player/ActionMethods.ts index 65d6477..f6e46d2 100644 --- a/src/components/Player/ActionMethods.ts +++ b/src/components/Player/ActionMethods.ts @@ -38,10 +38,8 @@ export const validateChips = (state: AppState): boolean => { export const getChips = (state: AppState, setState: setStateType): boolean => { /** * features: - * identify player to receive currently selected chips * update their inventory state * update the total available resources - * change turn order */ let targetPlayer: PlayerData; @@ -54,20 +52,45 @@ export const getChips = (state: AppState, setState: setStateType): boolean => { setState((prev) => { const { newPlayers, roundIncrement } = turnOrderUtil(state, targetPlayer); + const idx = newPlayers.indexOf(targetPlayer); + const resources = state.actions.getChips.selection; + let newResources = prev.gameboard.tradingResources; + + if (resources) { + for (let value of resources) { + + // update player inventory + for (let each in newPlayers[idx].inventory) { + if (value === each) { + newPlayers[idx].inventory[value] += 1; + } + } + + // update globally available resources + for (let each in newResources) { + if (value === each) { + newResources[value] -= 1; + } + } + } + + } - console.log(newPlayers[newPlayers.indexOf(targetPlayer)]); return { ...prev, round: (roundIncrement ? prev.round + 1 : prev.round), gameboard: { - ...prev.gameboard + ...prev.gameboard, + tradingResources: newResources }, players: newPlayers, actions: initialActions } }) + console.log(state.players); + return true; }