From d932312f5f66a625eb16eb990ec90537160eed3b Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Sun, 6 Feb 2022 14:30:18 -0800 Subject: [PATCH] Distribute initial resources Signed-off-by: James Ketrenos --- client/src/Table.js | 2 +- server/routes/games.js | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/client/src/Table.js b/client/src/Table.js index c3b3f5f..aad8aab 100755 --- a/client/src/Table.js +++ b/client/src/Table.js @@ -314,7 +314,7 @@ const GameOrder = ({table}) => { players = players.map(item =>
-
{item.order+1}. {item.name}
+
{item.name}
{ item.orderRoll !== 0 && <>rolled . } { item.orderRoll === 0 && <>has not rolled yet. {item.orderStatus}}
diff --git a/server/routes/games.js b/server/routes/games.js index e7272fc..5a81488 100755 --- a/server/routes/games.js +++ b/server/routes/games.js @@ -765,6 +765,9 @@ router.put("/:id/:action/:value?", async (req, res) => { corner.color = session.color; corner.type = 'settlement'; if (game.state === 'initial-placement') { + if (game.direction && game.direction === 'backward') { + session.initialSettlement = index; + } game.turn.actions = ['place-road']; game.turn.limits = { roads: layout.corners[index].roads }; /* road placement is limited to be near this corner */ addChatMessage(game, session, `Placed a settlement. Next, they need to place a road.`); @@ -831,7 +834,28 @@ router.put("/:id/:action/:value?", async (req, res) => { }; addChatMessage(game, null, `Everyone has placed their two settlements!`); - addChatMessage(game, null, `TODO: Give players resources from their second placement.`); + + /* Figure out which players received which resources */ + for (let id in game.sessions) { + const session = game.sessions[id], + receives = {}; + if (session.initialSettlement) { + layout.tiles.forEach((tile, index) => { + if (tile.corners.indexOf(session.initialSettlement) !== -1) { + const resource = assetData.tiles[game.tileOrder[index]].type; + if (!(resource in receives)) { + receives[resource] = 0; + } + receives[resource]++; + } + }); + let message = []; + for (let type in receives) { + message.push(`${receives[type]} ${type}`); + } + addChatMessage(game, null, `${session.name} receives ${message.join(', ')}.`); + } + } addChatMessage(game, null, `It is ${name}'s turn.`); game.state = 'normal'; }