Revert "feature: adding hp notification for boss damage" (#8340)

This commit is contained in:
Alys
2016-12-31 17:31:25 +10:00
committed by GitHub
parent fe7850d10f
commit 91f5c47d9d
6 changed files with 7 additions and 66 deletions

View File

@@ -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 = {

View File

@@ -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();

View File

@@ -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,
};
}]);

View File

@@ -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>",

View File

@@ -709,26 +709,12 @@ schema.methods._processBossQuest = async function processBossQuest (options) {
}
}
let promises = [];
// Everyone takes damage
if (down !== 0) {
let members = await User.find({
_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());
});
}
await User.update({
_id: {$in: this.getParticipatingQuestMembers()},
}, {
$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) {

View File

@@ -16,7 +16,6 @@ const NOTIFICATION_TYPES = [
'GROUP_TASK_APPROVED',
'LOGIN_INCENTIVE',
'GROUP_INVITE_ACCEPTED',
'BOSS_DAMAGE',
'SCORED_TASK',
];