mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
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:
@@ -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();
|
||||||
|
|||||||
@@ -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");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user