From 2da2d2f12c6b0275ace1831628864a05d9bdd5c8 Mon Sep 17 00:00:00 2001 From: Shaun Date: Tue, 15 Mar 2022 10:27:22 +0200 Subject: [PATCH] feat #1915: More work --- src/server/clientComponents/inventory.js | 2 +- src/server/components/gatherer.js | 13 +++++++++---- src/server/components/trade.js | 2 +- src/server/world/atlas.js | 2 ++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/server/clientComponents/inventory.js b/src/server/clientComponents/inventory.js index df681310..07adfade 100644 --- a/src/server/clientComponents/inventory.js +++ b/src/server/clientComponents/inventory.js @@ -56,7 +56,7 @@ define([ this.items.push.apply(this.items, blueprint.getItems || []); - events.emit('onGetItems', this.items, rerender); + events.emit('onGetItems', this.items, rerender, blueprint.getItems); } }, diff --git a/src/server/components/gatherer.js b/src/server/components/gatherer.js index 1a53c3a6..e26061be 100644 --- a/src/server/components/gatherer.js +++ b/src/server/components/gatherer.js @@ -81,9 +81,9 @@ module.exports = { if (this.gatheringTtl > 0) { if (this.gatheringTtl === this.gatheringTtlMax && gathering.width > 1) { - ['x', 'y', 'width', 'height'].forEach(function (p) { + ['x', 'y', 'width', 'height'].forEach(p => { this.obj.syncer.set(false, 'gatherer', p, gathering[p]); - }, this); + }); } this.gatheringTtl--; @@ -124,7 +124,7 @@ module.exports = { return; } - gatherResult.items.forEach(function (g) { + gatherResult.items.forEach(g => { if (g.slot) return; @@ -150,7 +150,12 @@ module.exports = { }; g.worth = ~~(weight * 10); - }, this); + }); + } else { + gatherResult.items.forEach(g => { + if (g.worth === undefined) + g.worth = 1; + }); } if (isFish) { diff --git a/src/server/components/trade.js b/src/server/components/trade.js index e95a51d0..4697e747 100644 --- a/src/server/components/trade.js +++ b/src/server/components/trade.js @@ -275,7 +275,7 @@ module.exports = { if (oldQuantity) item.quantity = oldQuantity; - let worth = ~~(item.worth * targetTrade.markup.buy); + let worth = ~~((item.quantity ?? 1) * item.worth * targetTrade.markup.buy); this.gold += worth; diff --git a/src/server/world/atlas.js b/src/server/world/atlas.js index 331fbb38..0b03f128 100644 --- a/src/server/world/atlas.js +++ b/src/server/world/atlas.js @@ -30,6 +30,8 @@ module.exports = { if (!thread) { if (map.instanced) { + delete obj.x; + delete obj.y; thread = this.spawnMap(map); await new Promise(res => setTimeout(res, 2000));