mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
56 lines
1.2 KiB
JavaScript
56 lines
1.2 KiB
JavaScript
import {each, assign, defaults, sortBy} from 'lodash';
|
|
import t from '../helpers/translator';
|
|
|
|
import worldQuests from './world';
|
|
import holidayQuests from './holiday';
|
|
import petQuests from './pet';
|
|
import unlockableQuests from './unlockable';
|
|
import goldPurchasableQuests from './gold-purchasable';
|
|
|
|
const QUEST_BOSS_DEFAULTS = { str: 1, def: 1 };
|
|
const QUEST_BOSS_RAGE_DEFAULTS = {
|
|
title: t('bossRageTitle'),
|
|
description: t('bossRageDescription'),
|
|
};
|
|
|
|
let allQuests = { };
|
|
|
|
assign(allQuests, worldQuests);
|
|
assign(allQuests, holidayQuests);
|
|
assign(allQuests, petQuests);
|
|
assign(allQuests, unlockableQuests);
|
|
assign(allQuests, goldPurchasableQuests);
|
|
|
|
each(allQuests, function(quest, key) {
|
|
defaults(quest, {
|
|
key: key,
|
|
canBuy: true
|
|
});
|
|
|
|
let boss = quest.boss;
|
|
|
|
if (boss) {
|
|
defaults(boss, QUEST_BOSS_DEFAULTS);
|
|
|
|
if (boss.rage) {
|
|
defaults(boss.rage, QUEST_BOSS_RAGE_DEFAULTS);
|
|
}
|
|
}
|
|
});
|
|
|
|
let questsByLevel = sortBy(allQuests, (quest) => {
|
|
return quest.lvl || 0;
|
|
});
|
|
|
|
let canOwnCategories = [
|
|
'unlockable',
|
|
'gold',
|
|
'pet',
|
|
];
|
|
|
|
export default {
|
|
allQuests: allQuests,
|
|
byLevel: questsByLevel,
|
|
canOwnCategories: canOwnCategories,
|
|
};
|