mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
fix(quests): bug fix to multi-drop
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user