From f478d10c20f816cd104b3f0da814c189957f45f5 Mon Sep 17 00:00:00 2001 From: Tyler Renelle Date: Tue, 21 Jan 2014 15:08:11 -0800 Subject: [PATCH] fix(quests): bug fix to multi-drop --- src/models/group.js | 2 +- test/api.mocha.js | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/models/group.js b/src/models/group.js index 385e78cb78..4d1e8b3ed4 100644 --- a/src/models/group.js +++ b/src/models/group.js @@ -148,7 +148,7 @@ GroupSchema.methods.finishQuest = function(quest, cb) { case 'eggs': case 'food': case 'hatchingPotions': - updates['$inc']['items.'+quest.drop.type+'.'+dropK] = 1; + updates['$inc']['items.'+item.type+'.'+dropK] = _.where(quest.drop.items,{type:item.type,key:item.key}).length; break; case 'pets': updates['$set']['items.pets.'+dropK] = 5; diff --git a/test/api.mocha.js b/test/api.mocha.js index ffc1757a3a..85ffcddf8f 100644 --- a/test/api.mocha.js +++ b/test/api.mocha.js @@ -343,21 +343,21 @@ describe('API', function () { // Start the quest async.waterfall([ function (cb) { - request.post(baseURL + "/groups/" + group._id + "/questAccept?key=evilsanta") + request.post(baseURL + "/groups/" + group._id + "/questAccept?key=gryphon") .end(function (res) { expectCode(res, 401); - User.findByIdAndUpdate(_id, {$set: {'items.quests.evilsanta':1}}, cb); + User.findByIdAndUpdate(_id, {$set: {'items.quests.gryphon':1}}, cb); }); }, function (_user,cb) { - request.post(baseURL + "/groups/" + group._id + "/questAccept?key=evilsanta") + request.post(baseURL + "/groups/" + group._id + "/questAccept?key=gryphon") .end(function (res) { expectCode(res, 200); Group.findById(group._id, cb); }); }, function (_group,cb) { - expect(_group.quest.key).to.be('evilsanta'); + expect(_group.quest.key).to.be('gryphon'); expect(_group.quest.active).to.be(false); request.post(baseURL + "/groups/" + group._id + "/questAccept") @@ -405,7 +405,7 @@ describe('API', function () { request.post(baseURL+'/user/batch-update') .end(function(){ request.get(baseURL+'/groups/party').end(function(res){ - expect(res.body.quest.progress.hp).to.be.below(shared.content.quests.evilsanta.boss.hp); + expect(res.body.quest.progress.hp).to.be.below(shared.content.quests.gryphon.boss.hp); var _party = res.body.members; expect(_.find(_party,{_id:party[0]._id}).stats.hp).to.be.below(50); expect(_.find(_party,{_id:party[1]._id}).stats.hp).to.be.below(50); @@ -415,7 +415,7 @@ describe('API', function () { // Kill the boss function(cb){ - expect(user.items.mounts['BearCub-Polar']).to.not.be.ok(); + expect(user.items.eggs['Gryphon']).to.not.be.ok(); Group.findByIdAndUpdate(group._id,{$set:{'quest.progress.hp':0}},cb); }, function(_group,cb){ @@ -435,9 +435,9 @@ describe('API', function () { }, function(_group,cb){ expect(_group.quest.key).to.not.be.ok(); - expect(user.items.mounts['BearCub-Polar']).to.be(true); - expect(user.stats.exp).to.be.above(shared.content.quests.evilsanta.drop.exp); - expect(user.stats.gp).to.be.above(shared.content.quests.evilsanta.drop.gp); + expect(user.items.eggs['Gryphon']).to.be(2); + expect(user.stats.exp).to.be.above(shared.content.quests.gryphon.drop.exp); + expect(user.stats.gp).to.be.above(shared.content.quests.gryphon.drop.gp); cb(); } ],done);