- Trading negotiations {isTurn ? '' : `with ${table.game.turn.name}`}
+ Trading negotiations {isTurn ? '' : `with ${turn.name}`}
{ transfers }
@@ -478,4 +532,4 @@ const Trade = () => {
);
};
-export default Trade;
+export { Trade };
diff --git a/server/routes/games.js b/server/routes/games.js
index d470f82..1aa0294 100755
--- a/server/routes/games.js
+++ b/server/routes/games.js
@@ -1657,7 +1657,8 @@ router.put("/:id/:action/:value?", async (req, res) => {
});
const trade = (game, session, action, offer) => {
- const name = session.name;
+ const name = session.name, player = session.player;
+ let warning;
if (game.state !== "normal") {
return `Game not in correct state to begin trading.`;
@@ -1693,9 +1694,9 @@ const trade = (game, session, action, offer) => {
/* Any player can make an offer */
if (action === 'offer') {
- error = checkPlayerOffer(game, session.player, offer);
- if (error) {
- return error;
+ warning = checkPlayerOffer(game, session.player, offer);
+ if (warning) {
+ return warning;
}
if (isSameOffer(session.player, offer)) {
@@ -1752,14 +1753,13 @@ const trade = (game, session, action, offer) => {
return `Only the active player can accept an offer.`;
}
- const offer = req.body;
let target;
console.log({ offer, description: offerToString(offer) });
- error = checkPlayerOffer(game, session.player, offer);
- if (error) {
- return error;
+ warning = checkPlayerOffer(game, session.player, offer);
+ if (warning) {
+ return warning;
}
/* Verify that the offer sent by the active player matches what
@@ -1773,9 +1773,9 @@ const trade = (game, session, action, offer) => {
return `Unfortunately, trades were re-negotiated in transit and the deal is invalid!`;
}
- error = checkPlayerOffer(game, target, { gives: offer.gets, gets: offer.gives });
- if (error) {
- return error;
+ warning = checkPlayerOffer(game, target, { gives: offer.gets, gets: offer.gives });
+ if (warning) {
+ return warning;
}
if (!isSameOffer(target, { gives: offer.gets, gets: offer.gives })) {
@@ -3494,7 +3494,7 @@ router.ws("/ws/:id", async (ws, req) => {
}
break;
case 'trade':
- console.log(`${short}: <- trade:${getName(session)}`);
+ console.log(`${short}: <- trade:${getName(session)} - ${data.action} - `, data.offer);
warning = trade(game, session, data.action, data.offer);
if (warning) {
sendWarning(session, warning);