fix(bosses): don't reset progress.up when starting a new quest. We want

to be able to carry over damage from the same day a boss battle begins,
even if the dailies were completed before battle-start. Fixes #2168
This commit is contained in:
Tyler Renelle
2014-01-20 16:40:21 -08:00
parent 19dba81603
commit 4efd0f5ed8
2 changed files with 38 additions and 1 deletions

View File

@@ -500,7 +500,12 @@ questStart = function(req, res) {
if (m == group.quest.leader) if (m == group.quest.leader)
updates['$inc']['items.quests.'+key] = -1; updates['$inc']['items.quests.'+key] = -1;
if (group.quest.members[m] == true) { if (group.quest.members[m] == true) {
updates['$set']['party.quest'] = Group.cleanQuestProgress({key:key,progress:{collect:collected}}); // See https://github.com/HabitRPG/habitrpg/issues/2168#issuecomment-31556322 , we need to *not* reset party.quest.progress.up
//updates['$set']['party.quest'] = Group.cleanQuestProgress({key:key,progress:{collect:collected}});
updates['$set']['party.quest.key'] = key
updates['$set']['party.quest.progress.down'] = 0;
updates['$set']['party.quest.progress.collect'] = collected;
updates['$set']['party.quest.completed'] = null;
questMembers[m] = true; questMembers[m] = true;
} else { } else {
updates['$set']['party.quest'] = Group.cleanQuestProgress(); updates['$set']['party.quest'] = Group.cleanQuestProgress();

View File

@@ -280,6 +280,19 @@ describe('API', function () {
participating = [], participating = [],
notParticipating = []; notParticipating = [];
it("Tallies progress",function(done){
request.post(baseURL+'/user/batch-update')
.send([
{op:'score',params:{direction:'up',id:user.dailys[0].id}},
{op:'score',params:{direction:'up',id:user.dailys[1].id}}
])
.end(function(res){
user = res.body;
expect(user.party.quest.progress.up).to.be.above(0);
done();
})
});
it('Invites some members', function (done) { it('Invites some members', function (done) {
async.waterfall([ async.waterfall([
@@ -363,6 +376,25 @@ describe('API', function () {
}], done); }], done);
}); });
it('Hurts the boss',function(done){
request.post(baseURL+'/user/batch-update')
.end(function(res){
user = res.body;
var up = user.party.quest.progress.up;
expect(up).to.be.above(0);
request.post(baseURL+'/user/batch-update')
.send([
{op:'score',params:{direction:'up',id:user.dailys[2].id}},
{op:'score',params:{direction:'up',id:user.dailys[3].id}}
])
.end(function(res){
expect(res.body.party.quest.progress.up).to.be.above(up)
user
})
})
})
it("Doesn't include people who aren't participating"); it("Doesn't include people who aren't participating");
}); });