From 6e183c3927a0dc18d0fb53b3d19a657cfd0a8eac Mon Sep 17 00:00:00 2001 From: Xaz16 Date: Sun, 15 Dec 2019 22:14:40 +0300 Subject: [PATCH] Fix: reassign object for user.items.food to trigger change in vue view --- .../common/script/content/loginIncentives.js | 225 ++++++++++++++---- website/common/script/fns/randomDrop.js | 10 +- website/common/script/ops/buy/buyArmoire.js | 9 +- website/common/script/ops/feed.js | 5 +- 4 files changed, 199 insertions(+), 50 deletions(-) diff --git a/website/common/script/content/loginIncentives.js b/website/common/script/content/loginIncentives.js index 569d8265b3..88cd142ed6 100644 --- a/website/common/script/content/loginIncentives.js +++ b/website/common/script/content/loginIncentives.js @@ -57,11 +57,20 @@ export default function getLoginIncentives (api) { reward: [api.food.Chocolate, api.food.Meat, api.food.CottonCandyPink], assignReward: function assignReward (user) { if (!user.items.food.Chocolate) user.items.food.Chocolate = 0; - user.items.food.Chocolate += 1; + user.items.food = { + ...user.items.food, + Chocolate: user.items.food.Chocolate + 1, + }; if (!user.items.food.Meat) user.items.food.Meat = 0; - user.items.food.Meat += 1; + user.items.food = { + ...user.items.food, + Meat: user.items.food.Meat + 1, + }; if (!user.items.food.CottonCandyPink) user.items.food.CottonCandyPink = 0; - user.items.food.CottonCandyPink += 1; + user.items.food = { + ...user.items.food, + CottonCandyPink: user.items.food.CottonCandyPink + 1, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -91,11 +100,20 @@ export default function getLoginIncentives (api) { reward: [api.food.Strawberry, api.food.Potatoe, api.food.CottonCandyBlue], assignReward: function assignReward (user) { if (!user.items.food.Strawberry) user.items.food.Strawberry = 0; - user.items.food.Strawberry += 1; + user.items.food = { + ...user.items.food, + Strawberry: user.items.food.Strawberry + 1, + }; if (!user.items.food.Potatoe) user.items.food.Potatoe = 0; - user.items.food.Potatoe += 1; + user.items.food = { + ...user.items.food, + Potatoe: user.items.food.Potatoe + 1, + }; if (!user.items.food.CottonCandyBlue) user.items.food.CottonCandyBlue = 0; - user.items.food.CottonCandyBlue += 1; + user.items.food = { + ...user.items.food, + CottonCandyBlue: user.items.food.CottonCandyBlue + 1, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -136,13 +154,25 @@ export default function getLoginIncentives (api) { reward: [api.food.Fish, api.food.Milk, api.food.RottenMeat, api.food.Honey], assignReward: function assignReward (user) { if (!user.items.food.Fish) user.items.food.Fish = 0; - user.items.food.Fish += 1; + user.items.food = { + ...user.items.food, + Fish: user.items.food.Fish + 1, + }; if (!user.items.food.Milk) user.items.food.Milk = 0; - user.items.food.Milk += 1; + user.items.food = { + ...user.items.food, + Milk: user.items.food.Milk + 1, + }; if (!user.items.food.RottenMeat) user.items.food.RottenMeat = 0; - user.items.food.RottenMeat += 1; + user.items.food = { + ...user.items.food, + RottenMeat: user.items.food.RottenMeat + 1, + }; if (!user.items.food.Honey) user.items.food.Honey = 0; - user.items.food.Honey += 1; + user.items.food = { + ...user.items.food, + Honey: user.items.food.Honey + 1, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -184,7 +214,10 @@ export default function getLoginIncentives (api) { reward: [api.food.Saddle], assignReward: function assignReward (user) { if (!user.items.food.Saddle) user.items.food.Saddle = 0; - user.items.food.Saddle += 1; + user.items.food = { + ...user.items.food, + Saddle: user.items.food.Saddle + 1, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -297,7 +330,10 @@ export default function getLoginIncentives (api) { reward: [api.food.Saddle], assignReward: function assignReward (user) { if (!user.items.food.Saddle) user.items.food.Saddle = 0; - user.items.food.Saddle += 1; + user.items.food = { + ...user.items.food, + Saddle: user.items.food.Saddle + 1, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -471,25 +507,55 @@ export default function getLoginIncentives (api) { rewardName: 'threeOfEachFood', assignReward: function assignReward (user) { if (!user.items.food.Meat) user.items.food.Meat = 0; - user.items.food.Meat += 3; + user.items.food = { + ...user.items.food, + Meat: user.items.food.Meat + 3, + }; if (!user.items.food.CottonCandyBlue) user.items.food.CottonCandyBlue = 0; - user.items.food.CottonCandyBlue += 3; + user.items.food = { + ...user.items.food, + CottonCandyBlue: user.items.food.CottonCandyBlue + 3, + }; if (!user.items.food.CottonCandyPink) user.items.food.CottonCandyPink = 0; - user.items.food.CottonCandyPink += 3; + user.items.food = { + ...user.items.food, + CottonCandyPink: user.items.food.CottonCandyPink + 3, + }; if (!user.items.food.Potatoe) user.items.food.Potatoe = 0; - user.items.food.Potatoe += 3; + user.items.food = { + ...user.items.food, + Potatoe: user.items.food.Potatoe + 3, + }; if (!user.items.food.Honey) user.items.food.Honey = 0; - user.items.food.Honey += 3; + user.items.food = { + ...user.items.food, + Honey: user.items.food.Honey + 3, + }; if (!user.items.food.Strawberry) user.items.food.Strawberry = 0; - user.items.food.Strawberry += 3; + user.items.food = { + ...user.items.food, + Strawberry: user.items.food.Strawberry + 3, + }; if (!user.items.food.Chocolate) user.items.food.Chocolate = 0; - user.items.food.Chocolate += 3; + user.items.food = { + ...user.items.food, + Chocolate: user.items.food.Chocolate + 3, + }; if (!user.items.food.Fish) user.items.food.Fish = 0; - user.items.food.Fish += 3; + user.items.food = { + ...user.items.food, + Fish: user.items.food.Fish + 3, + }; if (!user.items.food.Milk) user.items.food.Milk = 0; - user.items.food.Milk += 3; + user.items.food = { + ...user.items.food, + Milk: user.items.food.Milk + 3, + }; if (!user.items.food.RottenMeat) user.items.food.RottenMeat = 0; - user.items.food.RottenMeat += 3; + user.items.food = { + ...user.items.food, + RottenMeat: user.items.food.RottenMeat + 3, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -624,7 +690,10 @@ export default function getLoginIncentives (api) { reward: [api.food.Saddle], assignReward: function assignReward (user) { if (!user.items.food.Saddle) user.items.food.Saddle = 0; - user.items.food.Saddle += 1; + user.items.food = { + ...user.items.food, + Saddle: user.items.food.Saddle + 1, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -667,25 +736,55 @@ export default function getLoginIncentives (api) { rewardName: 'threeOfEachFood', assignReward: function assignReward (user) { if (!user.items.food.Meat) user.items.food.Meat = 0; - user.items.food.Meat += 3; + user.items.food = { + ...user.items.food, + Meat: user.items.food.Meat + 3, + }; if (!user.items.food.CottonCandyBlue) user.items.food.CottonCandyBlue = 0; - user.items.food.CottonCandyBlue += 3; + user.items.food = { + ...user.items.food, + CottonCandyBlue: user.items.food.CottonCandyBlue + 3, + }; if (!user.items.food.CottonCandyPink) user.items.food.CottonCandyPink = 0; - user.items.food.CottonCandyPink += 3; + user.items.food = { + ...user.items.food, + CottonCandyPink: user.items.food.CottonCandyPink + 3, + }; if (!user.items.food.Potatoe) user.items.food.Potatoe = 0; - user.items.food.Potatoe += 3; + user.items.food = { + ...user.items.food, + Potatoe: user.items.food.Potatoe + 3, + }; if (!user.items.food.Honey) user.items.food.Honey = 0; - user.items.food.Honey += 3; + user.items.food = { + ...user.items.food, + Honey: user.items.food.Honey + 3, + }; if (!user.items.food.Strawberry) user.items.food.Strawberry = 0; - user.items.food.Strawberry += 3; + user.items.food = { + ...user.items.food, + Strawberry: user.items.food.Strawberry + 3, + }; if (!user.items.food.Chocolate) user.items.food.Chocolate = 0; - user.items.food.Chocolate += 3; + user.items.food = { + ...user.items.food, + Chocolate: user.items.food.Chocolate + 3, + }; if (!user.items.food.Fish) user.items.food.Fish = 0; - user.items.food.Fish += 3; + user.items.food = { + ...user.items.food, + Fish: user.items.food.Fish + 3, + }; if (!user.items.food.Milk) user.items.food.Milk = 0; - user.items.food.Milk += 3; + user.items.food = { + ...user.items.food, + Milk: user.items.food.Milk + 3, + }; if (!user.items.food.RottenMeat) user.items.food.RottenMeat = 0; - user.items.food.RottenMeat += 3; + user.items.food = { + ...user.items.food, + RottenMeat: user.items.food.RottenMeat + 3, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -777,7 +876,10 @@ export default function getLoginIncentives (api) { rewardName: 'twoSaddles', assignReward: function assignReward (user) { if (!user.items.food.Saddle) user.items.food.Saddle = 0; - user.items.food.Saddle += 2; + user.items.food = { + ...user.items.food, + Saddle: user.items.food.Saddle + 2, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -847,25 +949,55 @@ export default function getLoginIncentives (api) { rewardName: 'fourOfEachFood', assignReward: function assignReward (user) { if (!user.items.food.Meat) user.items.food.Meat = 0; - user.items.food.Meat += 4; + user.items.food = { + ...user.items.food, + Meat: user.items.food.Meat + 4, + }; if (!user.items.food.CottonCandyBlue) user.items.food.CottonCandyBlue = 0; - user.items.food.CottonCandyBlue += 4; + user.items.food = { + ...user.items.food, + CottonCandyBlue: user.items.food.CottonCandyBlue + 4, + }; if (!user.items.food.CottonCandyPink) user.items.food.CottonCandyPink = 0; - user.items.food.CottonCandyPink += 4; + user.items.food = { + ...user.items.food, + CottonCandyPink: user.items.food.CottonCandyPink + 4, + }; if (!user.items.food.Potatoe) user.items.food.Potatoe = 0; - user.items.food.Potatoe += 4; + user.items.food = { + ...user.items.food, + Potatoe: user.items.food.Potatoe + 4, + }; if (!user.items.food.Honey) user.items.food.Honey = 0; - user.items.food.Honey += 4; + user.items.food = { + ...user.items.food, + Honey: user.items.food.Honey + 4, + }; if (!user.items.food.Strawberry) user.items.food.Strawberry = 0; - user.items.food.Strawberry += 4; + user.items.food = { + ...user.items.food, + Strawberry: user.items.food.Strawberry + 4, + }; if (!user.items.food.Chocolate) user.items.food.Chocolate = 0; - user.items.food.Chocolate += 4; + user.items.food = { + ...user.items.food, + Chocolate: user.items.food.Chocolate + 4, + }; if (!user.items.food.Fish) user.items.food.Fish = 0; - user.items.food.Fish += 4; + user.items.food = { + ...user.items.food, + Fish: user.items.food.Fish + 4, + }; if (!user.items.food.Milk) user.items.food.Milk = 0; - user.items.food.Milk += 4; + user.items.food = { + ...user.items.food, + Milk: user.items.food.Milk + 4, + }; if (!user.items.food.RottenMeat) user.items.food.RottenMeat = 0; - user.items.food.RottenMeat += 4; + user.items.food = { + ...user.items.food, + RottenMeat: user.items.food.RottenMeat + 4, + }; if (user.markModified) user.markModified('items.food'); }, }, @@ -875,7 +1007,10 @@ export default function getLoginIncentives (api) { rewardName: 'threeSaddles', assignReward: function assignReward (user) { if (!user.items.food.Saddle) user.items.food.Saddle = 0; - user.items.food.Saddle += 3; + user.items.food = { + ...user.items.food, + Saddle: user.items.food.Saddle + 3, + }; if (user.markModified) user.markModified('items.food'); }, }, diff --git a/website/common/script/fns/randomDrop.js b/website/common/script/fns/randomDrop.js index 5c95bf4505..0719685e31 100644 --- a/website/common/script/fns/randomDrop.js +++ b/website/common/script/fns/randomDrop.js @@ -79,8 +79,14 @@ export default function randomDrop (user, options, req = {}, analytics) { canDrop: true, }))); - user.items.food[drop.key] = user.items.food[drop.key] || 0; - user.items.food[drop.key] += 1; + user.items.food = { + ...user.items.food, + [drop.key]: user.items.food[drop.key] || 0, + }; + user.items.food = { + ...user.items.food, + [drop.key]: +1, + }; if (user.markModified) user.markModified('items.food'); drop.type = 'Food'; diff --git a/website/common/script/ops/buy/buyArmoire.js b/website/common/script/ops/buy/buyArmoire.js index ce7a978512..e370c0d1b5 100644 --- a/website/common/script/ops/buy/buyArmoire.js +++ b/website/common/script/ops/buy/buyArmoire.js @@ -129,8 +129,13 @@ export class BuyArmoireOperation extends AbstractGoldItemOperation { // eslint-d canDrop: true, })); - user.items.food[drop.key] = user.items.food[drop.key] || 0; - user.items.food[drop.key] += 1; + user.items.food = { + ...user.items.food, + [drop.key]: user.items.food[drop.key] || 0, + }; + user.items.food = { + [drop.key]: drop.key + 1, + }; if (user.markModified) user.markModified('items.food'); if (this.analytics) { diff --git a/website/common/script/ops/feed.js b/website/common/script/ops/feed.js index 58a204fe22..4f88b3c0d9 100644 --- a/website/common/script/ops/feed.js +++ b/website/common/script/ops/feed.js @@ -95,7 +95,10 @@ export default function feed (user, req = {}) { } } - user.items.food[food.key] -= 1; + user.items.food = { + ...user.items.food, + [food.key]: user.items.food[food.key] - 1, + }; if (user.markModified) user.markModified('items.food'); forEach(content.animalColorAchievements, achievement => {