Files
habitica/website/common/script/ops/reset.js
Keith Holliday 857aa5827b Ensured group tasks are removed from places that challegnes tasks are (#8359)
* Ensured group tasks are removed from places that challegnes tasks are

* Added tests for user reset and class cast
2017-01-07 12:01:12 +01:00

31 lines
810 B
JavaScript

import resetGear from '../fns/resetGear';
import i18n from '../i18n';
module.exports = function reset (user, tasks = []) {
user.stats.hp = 50;
user.stats.lvl = 1;
user.stats.gp = 0;
user.stats.exp = 0;
let tasksToRemove = [];
tasks.forEach(task => {
let isNotChallengeTask = !task.challenge || !task.challenge.id || task.challenge.broken;
let isNotGroupTask = !task.group || !task.group.id || task.group.broken;
if (isNotChallengeTask && isNotGroupTask) {
tasksToRemove.push(task._id);
let i = user.tasksOrder[`${task.type}s`].indexOf(task._id);
if (i !== -1) user.tasksOrder[`${task.type}s`].splice(i, 1);
}
});
resetGear(user);
user.preferences.automaticAllocation = false;
return [
{user, tasksToRemove},
i18n.t('resetComplete'),
];
};