mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
Revert "feature: adding hp notification for boss damage" (#8340)
This commit is contained in:
@@ -219,37 +219,6 @@ describe('Group Model', () => {
|
||||
expect(updatedUndecidedMember.stats.hp).to.eql(50);
|
||||
});
|
||||
|
||||
it('doesn\'t notify the user when the boss damage is 0', async () => {
|
||||
progress.down = 0;
|
||||
await Group.processQuestProgress(participatingMember, progress);
|
||||
|
||||
let updatedLeader = await User.findById(questLeader._id);
|
||||
|
||||
expect(updatedLeader.stats.hp).to.eql(50);
|
||||
expect(updatedLeader.notifications.length).to.eql(0);
|
||||
});
|
||||
|
||||
it('notifies user of boss damage', async () => {
|
||||
await Group.processQuestProgress(participatingMember, progress);
|
||||
|
||||
let updatedLeader = await User.findById(questLeader._id);
|
||||
|
||||
expect(updatedLeader.stats.hp).to.eql(42.5);
|
||||
expect(updatedLeader.notifications[0].type).to.eql('BOSS_DAMAGE');
|
||||
expect(updatedLeader.notifications[0].data).to.eql({damageTaken: -7.5});
|
||||
});
|
||||
|
||||
it('combines boss damage notifications across multiple updates', async () => {
|
||||
await Group.processQuestProgress(participatingMember, progress);
|
||||
await Group.processQuestProgress(participatingMember, progress);
|
||||
|
||||
let updatedLeader = await User.findById(participatingMember._id);
|
||||
|
||||
expect(updatedLeader.stats.hp).to.eql(35);
|
||||
expect(updatedLeader.notifications[0].type).to.eql('BOSS_DAMAGE');
|
||||
expect(updatedLeader.notifications[0].data).to.eql({damageTaken: -15});
|
||||
});
|
||||
|
||||
it('applies damage only to participating members of party even under buggy conditions', async () => {
|
||||
// stops unfair damage from mbugs like https://github.com/HabitRPG/habitrpg/issues/7653
|
||||
party.quest.members = {
|
||||
|
||||
@@ -149,9 +149,6 @@ habitrpg.controller('NotificationCtrl',
|
||||
case 'LOGIN_INCENTIVE':
|
||||
Notification.showLoginIncentive(User.user, notification.data, Social.loadWidgets);
|
||||
break;
|
||||
case 'BOSS_DAMAGE':
|
||||
Notification.bossDamage(notification.data.damageTaken);
|
||||
break;
|
||||
default:
|
||||
if (notification.data.headerText && notification.data.bodyText) {
|
||||
var modalScope = $rootScope.$new();
|
||||
|
||||
@@ -78,13 +78,6 @@ angular.module("habitrpg").factory("Notification",
|
||||
_notify(_sign(val) + " " + _round(val) + " " + window.env.t('health'), 'hp', 'glyphicon glyphicon-heart');
|
||||
}
|
||||
|
||||
function bossDamage(val) {
|
||||
var data = {
|
||||
val: _round(val),
|
||||
};
|
||||
_notify(window.env.t('bossDamageDone', data), 'hp', 'glyphicon glyphicon-heart');
|
||||
}
|
||||
|
||||
function lvl(){
|
||||
_notify(window.env.t('levelUp'), 'lvl', 'glyphicon glyphicon-chevron-up');
|
||||
}
|
||||
@@ -183,6 +176,5 @@ angular.module("habitrpg").factory("Notification",
|
||||
text: text,
|
||||
quest: quest,
|
||||
showLoginIncentive: showLoginIncentive,
|
||||
bossDamage: bossDamage,
|
||||
};
|
||||
}]);
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
"collected": "Collected",
|
||||
"collectionItems": "<%= number %> <%= items %>",
|
||||
"itemsToCollect": "Items to Collect",
|
||||
"bossDamageDone": "Damage from Boss: - <%= val %> Health",
|
||||
"bossDmg1": "Each completed Daily and To-Do and each positive Habit hurts the boss. Hurt it more with redder tasks or Brutal Smash and Burst of Flames. The boss will deal damage to every quest participant for every Daily you've missed (multiplied by the boss's Strength) in addition to your regular damage, so keep your party healthy by completing your Dailies! <strong>All damage to and from a boss is tallied on cron (your day roll-over).</strong>",
|
||||
"bossDmg2": "Only participants will fight the boss and share in the quest loot.",
|
||||
"bossDmg1Broken": "Each completed Daily and To-Do and each positive Habit hurts the boss... Hurt it more with redder tasks or Brutal Smash and Burst of Flames... The boss will deal damage to every quest participant for every Daily you've missed (multiplied by the boss's Strength) in addition to your regular damage, so keep your party healthy by completing your Dailies... <strong>All damage to and from a boss is tallied on cron (your day roll-over)...</strong>",
|
||||
|
||||
@@ -709,26 +709,12 @@ schema.methods._processBossQuest = async function processBossQuest (options) {
|
||||
}
|
||||
}
|
||||
|
||||
let promises = [];
|
||||
|
||||
// Everyone takes damage
|
||||
if (down !== 0) {
|
||||
let members = await User.find({
|
||||
await User.update({
|
||||
_id: {$in: this.getParticipatingQuestMembers()},
|
||||
}).select('notifications stats.hp');
|
||||
|
||||
_.each(members, (member) => {
|
||||
member.stats.hp += down;
|
||||
let bossNotification = _.find(member.notifications, {type: 'BOSS_DAMAGE'});
|
||||
if (bossNotification) {
|
||||
bossNotification.data.damageTaken += down;
|
||||
bossNotification.markModified('data.damageTaken');
|
||||
} else {
|
||||
member.addNotification('BOSS_DAMAGE', {damageTaken: down});
|
||||
}
|
||||
promises.push(member.save());
|
||||
});
|
||||
}
|
||||
}, {
|
||||
$inc: {'stats.hp': down},
|
||||
}, {multi: true}).exec();
|
||||
// Apply changes the currently cronning user locally so we don't have to reload it to get the updated state
|
||||
// TODO how to mark not modified? https://github.com/Automattic/mongoose/pull/1167
|
||||
// must be notModified or otherwise could overwrite future changes: if the user is saved it'll save
|
||||
@@ -740,11 +726,10 @@ schema.methods._processBossQuest = async function processBossQuest (options) {
|
||||
group.sendChat(`\`You defeated ${quest.boss.name('en')}! Questing party members receive the rewards of victory.\``);
|
||||
|
||||
// Participants: Grant rewards & achievements, finish quest
|
||||
promises.push(group.finishQuest(shared.content.quests[group.quest.key]));
|
||||
await group.finishQuest(shared.content.quests[group.quest.key]);
|
||||
}
|
||||
|
||||
promises.push(group.save());
|
||||
return await Bluebird.all(promises);
|
||||
return await group.save();
|
||||
};
|
||||
|
||||
schema.methods._processCollectionQuest = async function processCollectionQuest (options) {
|
||||
|
||||
@@ -16,7 +16,6 @@ const NOTIFICATION_TYPES = [
|
||||
'GROUP_TASK_APPROVED',
|
||||
'LOGIN_INCENTIVE',
|
||||
'GROUP_INVITE_ACCEPTED',
|
||||
'BOSS_DAMAGE',
|
||||
'SCORED_TASK',
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user