diff --git a/website/common/script/fns/randomDrop.js b/website/common/script/fns/randomDrop.js index 0719685e31..8067aea474 100644 --- a/website/common/script/fns/randomDrop.js +++ b/website/common/script/fns/randomDrop.js @@ -83,10 +83,7 @@ export default function randomDrop (user, options, req = {}, analytics) { ...user.items.food, [drop.key]: user.items.food[drop.key] || 0, }; - user.items.food = { - ...user.items.food, - [drop.key]: +1, - }; + user.items.food[drop.key] += 1; if (user.markModified) user.markModified('items.food'); drop.type = 'Food'; @@ -101,10 +98,7 @@ export default function randomDrop (user, options, req = {}, analytics) { ...user.items.eggs, [drop.key]: user.items.eggs[drop.key] || 0, }; - user.items.eggs = { - ...user.items.eggs, - [drop.key]: drop.key += 1, - }; + user.items.eggs[drop.key] += 1; if (user.markModified) user.markModified('items.eggs'); drop.type = 'Egg'; diff --git a/website/common/script/fns/resetGear.js b/website/common/script/fns/resetGear.js index 9ad23b727e..008b1a13b9 100644 --- a/website/common/script/fns/resetGear.js +++ b/website/common/script/fns/resetGear.js @@ -16,10 +16,7 @@ export default function resetGear (user) { // The content.gear.flat[k] check should prevent this causing an error each(gear.owned, (v, k) => { if (gear.owned[k] && content.gear.flat[k] && content.gear.flat[k].value) { - gear.owned = { - ...gear.owned, - [k]: false, - }; + gear.owned[k] = false; } }); diff --git a/website/common/script/ops/buy/buyArmoire.js b/website/common/script/ops/buy/buyArmoire.js index e370c0d1b5..fab02460d7 100644 --- a/website/common/script/ops/buy/buyArmoire.js +++ b/website/common/script/ops/buy/buyArmoire.js @@ -133,9 +133,7 @@ export class BuyArmoireOperation extends AbstractGoldItemOperation { // eslint-d ...user.items.food, [drop.key]: user.items.food[drop.key] || 0, }; - user.items.food = { - [drop.key]: drop.key + 1, - }; + user.items.food[drop.key] += 1; if (user.markModified) user.markModified('items.food'); if (this.analytics) { diff --git a/website/common/script/ops/buy/buyMysterySet.js b/website/common/script/ops/buy/buyMysterySet.js index 4e1765c013..06ef1f9275 100644 --- a/website/common/script/ops/buy/buyMysterySet.js +++ b/website/common/script/ops/buy/buyMysterySet.js @@ -25,10 +25,7 @@ export default function buyMysterySet (user, req = {}, analytics) { } each(mysterySet.items, item => { - user.items.gear.owned = { - ...user.items.gear.owned, - [item.key]: true, - }; + user.items.gear.owned[item.key] = true; if (analytics) { analytics.track('acquire item', { uuid: user._id, @@ -41,6 +38,11 @@ export default function buyMysterySet (user, req = {}, analytics) { } }); + // Here we need to trigger vue reactivity through reassign object + user.items.gear.owned = { + ...user.items.gear.owned, + }; + if (user.markModified) user.markModified('items.gear.owned'); user.purchased.plan.consecutive.trinkets -= 1; diff --git a/website/common/script/ops/feed.js b/website/common/script/ops/feed.js index 4f88b3c0d9..be859f72c6 100644 --- a/website/common/script/ops/feed.js +++ b/website/common/script/ops/feed.js @@ -13,10 +13,7 @@ import { import errorMessage from '../libs/errorMessage'; function evolve (user, pet, req) { - user.items.pets = { - ...user.items.pets, - [pet.key]: -1, - }; + user.items.pets[pet.key] = -1; user.items.mounts = { ...user.items.mounts, @@ -95,10 +92,7 @@ export default function feed (user, req = {}) { } } - user.items.food = { - ...user.items.food, - [food.key]: user.items.food[food.key] - 1, - }; + user.items.food[food.key] -= 1; if (user.markModified) user.markModified('items.food'); forEach(content.animalColorAchievements, achievement => { diff --git a/website/common/script/ops/hatch.js b/website/common/script/ops/hatch.js index 4ecb1f308d..b0c6d6ea40 100644 --- a/website/common/script/ops/hatch.js +++ b/website/common/script/ops/hatch.js @@ -44,15 +44,8 @@ export default function hatch (user, req = {}) { ...user.items.pets, [pet]: 5, }; - user.items.eggs = { - ...user.items.eggs, - [egg]: Number.isInteger(user.items.eggs) ? user.items.eggs - 1 : 0, - }; - user.items.hatchingPotions = { - ...user.items.hatchingPotions, - [hatchingPotion]: - Number.isInteger(user.items.hatchingPotion) ? user.items.hatchingPotion - 1 : 0, - }; + user.items.eggs[egg] -= 1; + user.items.hatchingPotions[hatchingPotion] -= 1; if (user.markModified) { user.markModified('items.pets'); user.markModified('items.eggs'); diff --git a/website/common/script/ops/releaseBoth.js b/website/common/script/ops/releaseBoth.js index c97d352e9e..80a7c81241 100644 --- a/website/common/script/ops/releaseBoth.js +++ b/website/common/script/ops/releaseBoth.js @@ -60,14 +60,8 @@ export default function releaseBoth (user, req = {}) { giveMountMasterAchievement = false; } - user.items.pets = { - ...user.items.pets, - [animal]: 0, - }; - user.items.mounts = { - ...user.items.mounts, - [animal]: null, - }; + user.items.pets[animal] = 0; + user.items.mounts[animal] = null; } if (user.markModified) { diff --git a/website/common/script/ops/releaseMounts.js b/website/common/script/ops/releaseMounts.js index e63a1ec4c5..b41e50d861 100644 --- a/website/common/script/ops/releaseMounts.js +++ b/website/common/script/ops/releaseMounts.js @@ -28,10 +28,7 @@ export default function releaseMounts (user, req = {}, analytics) { if (user.items.mounts[mount] === null || user.items.mounts[mount] === undefined) { giveMountMasterAchievement = false; } - user.items.mounts = { - ...user.items.mounts, - [mount]: null, - }; + user.items.mounts[mount] = null; } if (user.markModified) user.markModified('items.mounts'); diff --git a/website/common/script/ops/releasePets.js b/website/common/script/ops/releasePets.js index 6dc1fbd7e6..df7596a1a3 100644 --- a/website/common/script/ops/releasePets.js +++ b/website/common/script/ops/releasePets.js @@ -28,10 +28,7 @@ export default function releasePets (user, req = {}, analytics) { if (!user.items.pets[pet]) { giveBeastMasterAchievement = false; } - user.items.pets = { - ...user.items.pets, - [pet]: 0, - }; + user.items.pets[pet] = 0; } if (user.markModified) user.markModified('items.pets'); diff --git a/website/common/script/ops/revive.js b/website/common/script/ops/revive.js index b50c1ca7e5..8718030005 100644 --- a/website/common/script/ops/revive.js +++ b/website/common/script/ops/revive.js @@ -89,10 +89,8 @@ export default function revive (user, req = {}, analytics) { if (item) { removePinnedGearByClass(user); - user.items.gear.owned = { - ...user.items.gear.owned, - [lostItem]: false, - }; + user.items.gear.owned[lostItem] = false; + if (user.markModified) user.markModified('items.gear.owned'); addPinnedGearByClass(user);