Files
habitica/website/common/script/fns/ultimateGear.js
Blade Barringer 81b7eeeb71 Common reorg (#8025)
* Re-organize common folder

* fix: Correct paths in tests

* fix: move new content to proper folder

* chore: Move audio folder to assets

* Move sprites to sprites assets directory

* Move css sprites to assets directory

* Split out readmes for common code and sprites

* Move images to assets directory

* Move destinatin of shared browserified file

* remove unused file

* move compiled js to client-old

* Fix karma tests

* fix: Correct paths for sprites
2016-09-16 17:18:07 +02:00

37 lines
1.2 KiB
JavaScript

import content from '../content/index';
import _ from 'lodash';
module.exports = function ultimateGear (user) {
let owned = typeof window !== 'undefined' ? user.items.gear.owned : user.items.gear.owned.toObject();
content.classes.forEach((klass) => {
if (user.achievements.ultimateGearSets[klass] !== true) {
user.achievements.ultimateGearSets[klass] = _.reduce(['armor', 'shield', 'head', 'weapon'], (soFarGood, type) => {
let found = _.find(content.gear.tree[type][klass], {
last: true,
});
return soFarGood && (!found || owned[found.key] === true);
}, true);
if (user.achievements.ultimateGearSets[klass] === true) {
user.addNotification('ULTIMATE_GEAR_ACHIEVEMENT');
}
}
});
let ultimateGearSetValues;
if (user.achievements.ultimateGearSets.toObject) {
ultimateGearSetValues = Object.values(user.achievements.ultimateGearSets.toObject());
} else {
ultimateGearSetValues = Object.values(user.achievements.ultimateGearSets);
}
let hasFullSet = _.includes(ultimateGearSetValues, true);
if (hasFullSet && user.flags.armoireEnabled !== true) {
user.flags.armoireEnabled = true;
}
return;
};