global resource stockpile updates as well
This commit is contained in:
@@ -38,10 +38,8 @@ export const validateChips = (state: AppState): boolean => {
|
|||||||
export const getChips = (state: AppState, setState: setStateType): boolean => {
|
export const getChips = (state: AppState, setState: setStateType): boolean => {
|
||||||
/**
|
/**
|
||||||
* features:
|
* features:
|
||||||
* identify player to receive currently selected chips
|
|
||||||
* update their inventory state
|
* update their inventory state
|
||||||
* update the total available resources
|
* update the total available resources
|
||||||
* change turn order
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
let targetPlayer: PlayerData;
|
let targetPlayer: PlayerData;
|
||||||
@@ -54,20 +52,45 @@ export const getChips = (state: AppState, setState: setStateType): boolean => {
|
|||||||
|
|
||||||
setState((prev) => {
|
setState((prev) => {
|
||||||
const { newPlayers, roundIncrement } = turnOrderUtil(state, targetPlayer);
|
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 {
|
return {
|
||||||
...prev,
|
...prev,
|
||||||
round: (roundIncrement ? prev.round + 1 : prev.round),
|
round: (roundIncrement ? prev.round + 1 : prev.round),
|
||||||
gameboard: {
|
gameboard: {
|
||||||
...prev.gameboard
|
...prev.gameboard,
|
||||||
|
tradingResources: newResources
|
||||||
},
|
},
|
||||||
players: newPlayers,
|
players: newPlayers,
|
||||||
actions: initialActions
|
actions: initialActions
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
console.log(state.players);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user