fix(quests): bug fix to multi-drop

This commit is contained in:
Tyler Renelle
2014-01-21 15:08:11 -08:00
parent f16654d235
commit f478d10c20
2 changed files with 10 additions and 10 deletions

View File

@@ -148,7 +148,7 @@ GroupSchema.methods.finishQuest = function(quest, cb) {
case 'eggs': case 'eggs':
case 'food': case 'food':
case 'hatchingPotions': 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; break;
case 'pets': case 'pets':
updates['$set']['items.pets.'+dropK] = 5; updates['$set']['items.pets.'+dropK] = 5;

View File

@@ -343,21 +343,21 @@ describe('API', function () {
// Start the quest // Start the quest
async.waterfall([ async.waterfall([
function (cb) { function (cb) {
request.post(baseURL + "/groups/" + group._id + "/questAccept?key=evilsanta") request.post(baseURL + "/groups/" + group._id + "/questAccept?key=gryphon")
.end(function (res) { .end(function (res) {
expectCode(res, 401); expectCode(res, 401);
User.findByIdAndUpdate(_id, {$set: {'items.quests.evilsanta':1}}, cb); User.findByIdAndUpdate(_id, {$set: {'items.quests.gryphon':1}}, cb);
}); });
}, },
function (_user,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) { .end(function (res) {
expectCode(res, 200); expectCode(res, 200);
Group.findById(group._id, cb); Group.findById(group._id, cb);
}); });
}, },
function (_group,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); expect(_group.quest.active).to.be(false);
request.post(baseURL + "/groups/" + group._id + "/questAccept") request.post(baseURL + "/groups/" + group._id + "/questAccept")
@@ -405,7 +405,7 @@ describe('API', function () {
request.post(baseURL+'/user/batch-update') request.post(baseURL+'/user/batch-update')
.end(function(){ .end(function(){
request.get(baseURL+'/groups/party').end(function(res){ 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; var _party = res.body.members;
expect(_.find(_party,{_id:party[0]._id}).stats.hp).to.be.below(50); 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); expect(_.find(_party,{_id:party[1]._id}).stats.hp).to.be.below(50);
@@ -415,7 +415,7 @@ describe('API', function () {
// Kill the boss // Kill the boss
function(cb){ 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); Group.findByIdAndUpdate(group._id,{$set:{'quest.progress.hp':0}},cb);
}, },
function(_group,cb){ function(_group,cb){
@@ -435,9 +435,9 @@ describe('API', function () {
}, },
function(_group,cb){ function(_group,cb){
expect(_group.quest.key).to.not.be.ok(); expect(_group.quest.key).to.not.be.ok();
expect(user.items.mounts['BearCub-Polar']).to.be(true); expect(user.items.eggs['Gryphon']).to.be(2);
expect(user.stats.exp).to.be.above(shared.content.quests.evilsanta.drop.exp); expect(user.stats.exp).to.be.above(shared.content.quests.gryphon.drop.exp);
expect(user.stats.gp).to.be.above(shared.content.quests.evilsanta.drop.gp); expect(user.stats.gp).to.be.above(shared.content.quests.gryphon.drop.gp);
cb(); cb();
} }
],done); ],done);