Files
habitica/common/script/ops/equip.js
2016-03-07 23:02:42 +01:00

53 lines
1.7 KiB
JavaScript

import content from '../content/index';
import i18n from '../i18n';
module.exports = function (user, req, cb) {
var item, key, message, ref, type;
ref = [req.params.type || 'equipped', req.params.key], type = ref[0], key = ref[1];
switch (type) {
case 'mount':
if (!user.items.mounts[key]) {
return typeof cb === 'function' ? cb({
code: 404,
message: ':You do not own this mount.'
}) : void 0;
}
user.items.currentMount = user.items.currentMount === key ? '' : key;
break;
case 'pet':
if (!user.items.pets[key]) {
return typeof cb === 'function' ? cb({
code: 404,
message: ':You do not own this pet.'
}) : void 0;
}
user.items.currentPet = user.items.currentPet === key ? '' : key;
break;
case 'costume':
case 'equipped':
item = content.gear.flat[key];
if (!user.items.gear.owned[key]) {
return typeof cb === 'function' ? cb({
code: 404,
message: ':You do not own this gear.'
}) : void 0;
}
if (user.items.gear[type][item.type] === key) {
user.items.gear[type][item.type] = item.type + '_base_0';
message = i18n.t('messageUnEquipped', {
itemText: item.text(req.language)
}, req.language);
} else {
user.items.gear[type][item.type] = item.key;
message = user.fns.handleTwoHanded(item, type, req);
}
if (typeof user.markModified === 'function') {
user.markModified('items.gear.' + type);
}
}
return typeof cb === 'function' ? cb((message ? {
code: 200,
message: message
} : null), user.items) : void 0;
};