diff --git a/src/models/group.js b/src/models/group.js index 19d6372636..3d2aced087 100644 --- a/src/models/group.js +++ b/src/models/group.js @@ -237,10 +237,6 @@ process.nextTick(function(){ GroupSchema.statics.tavernBoss = function(user,progress) { if (!progress) return; - // hack: prevent crazy damage to world boss - progress.up = Math.min(300, Math.abs(progress.up||0)); - progress.down = -Math.min(300, Math.abs(progress.down||0)); - async.waterfall([ function(cb){ mongoose.model('Group').findOne(tavernQ,cb); diff --git a/src/models/user.js b/src/models/user.js index 4dd29c35ec..6afc339f51 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -403,6 +403,13 @@ UserSchema.pre('save', function(next) { this.achievements.beastMaster = petCount >= 90; + var progress = this.party && this.party.quest && this.party.quest.progress; + if (progress) { + // hack: prevent crazy damage to bosses (see https://github.com/HabitRPG/habitrpg/issues/3712) + progress.up = Math.min(300, Math.abs(progress.up||0)); + progress.down = -Math.min(300, Math.abs(progress.down||0)); + } + //our own version incrementer this._v++; next();