From 3285b216e4959e73e67425bf8720475418ef922b Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Tue, 8 Feb 2022 13:41:05 -0800 Subject: [PATCH] Fix stone resources not being distributed Signed-off-by: James Ketrenos --- server/routes/games.js | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/server/routes/games.js b/server/routes/games.js index 5b682a7..85737d0 100755 --- a/server/routes/games.js +++ b/server/routes/games.js @@ -174,6 +174,15 @@ const playerNameFromColor = (game, color) => { return ''; }; +const playerFromColor = (game, color) => { + for (let id in game.sessions) { + if (game.sessions[id].color === color) { + return game.sessions[id].player; + } + } + return undefined; +}; + const processGameOrder = (game, player, dice) => { let message; @@ -296,10 +305,10 @@ const distributeResources = (game, roll) => { console.log(`Matched tiles: ${tiles.join(',')}.`); const receives = { - "O": { wood: 0, brick: 0, sheep: 0, wheat: 0 }, - "R": { wood: 0, brick: 0, sheep: 0, wheat: 0 }, - "W": { wood: 0, brick: 0, sheep: 0, wheat: 0 }, - "B": { wood: 0, brick: 0, sheep: 0, wheat: 0 }, + "O": { wood: 0, brick: 0, sheep: 0, wheat: 0, stone: 0 }, + "R": { wood: 0, brick: 0, sheep: 0, wheat: 0, stone: 0 }, + "W": { wood: 0, brick: 0, sheep: 0, wheat: 0, stone: 0 }, + "B": { wood: 0, brick: 0, sheep: 0, wheat: 0, stone: 0 }, }; /* Find which corners are on each tile */ @@ -317,11 +326,13 @@ const distributeResources = (game, roll) => { for (let color in receives) { const entry = receives[color]; - if (!entry.wood && !entry.brick && !entry.sheep && !entry.wheat) { + if (!entry.wood && !entry.brick && !entry.sheep && !entry.wheat && !entry.stone) { continue; } let message = []; for (let type in receives[color]) { + const player = playerFromColor(game, color); + player[type] += receives[color][type]; if (receives[color][type]) { message.push(`${receives[color][type]} ${type}`); } @@ -339,7 +350,12 @@ const getPlayer = (game, color) => { points: 0, status: "Not active", lastActive: 0, - order: 0 + order: 0, + stone: 0, + wheat: 0, + sheep: 0, + wood: 0, + brick: 0 }; } @@ -899,8 +915,11 @@ router.put("/:id/:action/:value?", async (req, res) => { /* Figure out which players received which resources */ for (let id in game.sessions) { - const session = game.sessions[id], + const session = game.sessions[id], player = session.player, receives = {}; + if (!player) { + continue; + } if (session.initialSettlement) { layout.tiles.forEach((tile, index) => { if (tile.corners.indexOf(session.initialSettlement) !== -1) { @@ -913,6 +932,7 @@ router.put("/:id/:action/:value?", async (req, res) => { }); let message = []; for (let type in receives) { + player[type] += receives[type]; message.push(`${receives[type]} ${type}`); } addChatMessage(game, null, `${session.name} receives ${message.join(', ')}.`);