mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
366 lines
6.8 KiB
JavaScript
366 lines
6.8 KiB
JavaScript
import {each, defaults} from 'lodash';
|
|
import {
|
|
translator as t,
|
|
merge,
|
|
formatForTranslator
|
|
} from '../helpers';
|
|
|
|
let inviteFriends = {
|
|
basilist: {
|
|
unlockCondition: {
|
|
condition: 'party invite',
|
|
text: t('inviteFriends')
|
|
},
|
|
boss: {
|
|
hp: 100,
|
|
str: 0.5
|
|
},
|
|
drop: {
|
|
gp: 8,
|
|
exp: 42
|
|
}
|
|
},
|
|
};
|
|
|
|
let viceSeries = {
|
|
vice1: {
|
|
lvl: 30,
|
|
boss: {
|
|
hp: 750,
|
|
str: 1.5
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'quests',
|
|
key: 'vice2',
|
|
text: t('questVice1DropVice2Quest')
|
|
}
|
|
],
|
|
gp: 20,
|
|
exp: 100
|
|
}
|
|
},
|
|
vice2: {
|
|
lvl: 30,
|
|
previous: 'vice1',
|
|
collect: {
|
|
lightCrystal: {
|
|
text: t('questVice2CollectLightCrystal'),
|
|
count: 45
|
|
}
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'quests',
|
|
key: 'vice3',
|
|
text: t('questVice2DropVice3Quest')
|
|
}
|
|
],
|
|
gp: 20,
|
|
exp: 75
|
|
}
|
|
},
|
|
vice3: {
|
|
completion: t('questVice3Completion'),
|
|
previous: 'vice2',
|
|
lvl: 30,
|
|
boss: {
|
|
hp: 1500,
|
|
str: 3
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'gear',
|
|
key: 'weapon_special_2',
|
|
text: t('questVice3DropWeaponSpecial2')
|
|
}, {
|
|
type: 'eggs',
|
|
key: 'Dragon',
|
|
text: t('questVice3DropDragonEgg')
|
|
}, {
|
|
type: 'eggs',
|
|
key: 'Dragon',
|
|
text: t('questVice3DropDragonEgg')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Shade',
|
|
text: t('questVice3DropShadeHatchingPotion')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Shade',
|
|
text: t('questVice3DropShadeHatchingPotion')
|
|
}
|
|
],
|
|
gp: 100,
|
|
exp: 1000
|
|
}
|
|
},
|
|
};
|
|
|
|
let atomSeries = {
|
|
atom1: {
|
|
lvl: 15,
|
|
collect: {
|
|
soapBars: {
|
|
text: t('questAtom1CollectSoapBars'),
|
|
count: 20
|
|
}
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'quests',
|
|
key: 'atom2',
|
|
text: t('questAtom1Drop')
|
|
}
|
|
],
|
|
gp: 7,
|
|
exp: 50
|
|
}
|
|
},
|
|
atom2: {
|
|
previous: 'atom1',
|
|
lvl: 15,
|
|
boss: {
|
|
hp: 300,
|
|
str: 1
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'quests',
|
|
key: 'atom3',
|
|
text: t('questAtom2Drop')
|
|
}
|
|
],
|
|
gp: 20,
|
|
exp: 100
|
|
}
|
|
},
|
|
atom3: {
|
|
previous: 'atom2',
|
|
completion: t('questAtom3Completion'),
|
|
lvl: 15,
|
|
boss: {
|
|
hp: 800,
|
|
str: 1.5
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'gear',
|
|
key: 'head_special_2',
|
|
text: t('headSpecial2Text')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Base',
|
|
text: t('questAtom3DropPotion')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Base',
|
|
text: t('questAtom3DropPotion')
|
|
}
|
|
],
|
|
gp: 25,
|
|
exp: 125
|
|
}
|
|
},
|
|
};
|
|
|
|
let moonstoneSeries = {
|
|
moonstone1: {
|
|
lvl: 60,
|
|
collect: {
|
|
moonstone: {
|
|
text: t('questMoonstone1CollectMoonstone'),
|
|
count: 500
|
|
}
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'quests',
|
|
key: 'moonstone2',
|
|
text: t('questMoonstone1DropMoonstone2Quest')
|
|
}
|
|
],
|
|
gp: 50,
|
|
exp: 100
|
|
}
|
|
},
|
|
moonstone2: {
|
|
lvl: 60,
|
|
previous: 'moonstone1',
|
|
boss: {
|
|
hp: 1500,
|
|
str: 3
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'quests',
|
|
key: 'moonstone3',
|
|
text: t('questMoonstone2DropMoonstone3Quest')
|
|
}
|
|
],
|
|
gp: 500,
|
|
exp: 1000
|
|
}
|
|
},
|
|
moonstone3: {
|
|
completion: t('questMoonstone3Completion'),
|
|
previous: 'moonstone2',
|
|
lvl: 60,
|
|
boss: {
|
|
hp: 2000,
|
|
str: 3.5
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'gear',
|
|
key: 'armor_special_2',
|
|
text: t('armorSpecial2Text')
|
|
}, {
|
|
type: 'food',
|
|
key: 'RottenMeat',
|
|
text: t('questMoonstone3DropRottenMeat')
|
|
}, {
|
|
type: 'food',
|
|
key: 'RottenMeat',
|
|
text: t('questMoonstone3DropRottenMeat')
|
|
}, {
|
|
type: 'food',
|
|
key: 'RottenMeat',
|
|
text: t('questMoonstone3DropRottenMeat')
|
|
}, {
|
|
type: 'food',
|
|
key: 'RottenMeat',
|
|
text: t('questMoonstone3DropRottenMeat')
|
|
}, {
|
|
type: 'food',
|
|
key: 'RottenMeat',
|
|
text: t('questMoonstone3DropRottenMeat')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Zombie',
|
|
text: t('questMoonstone3DropZombiePotion')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Zombie',
|
|
text: t('questMoonstone3DropZombiePotion')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Zombie',
|
|
text: t('questMoonstone3DropZombiePotion')
|
|
}
|
|
],
|
|
gp: 900,
|
|
exp: 1500
|
|
}
|
|
},
|
|
};
|
|
|
|
let goldenKnightSeries = {
|
|
goldenknight1: {
|
|
lvl: 40,
|
|
collect: {
|
|
testimony: {
|
|
text: t('questGoldenknight1CollectTestimony'),
|
|
count: 300
|
|
}
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'quests',
|
|
key: 'goldenknight2',
|
|
text: t('questGoldenknight1DropGoldenknight2Quest')
|
|
}
|
|
],
|
|
gp: 15,
|
|
exp: 120
|
|
}
|
|
},
|
|
goldenknight2: {
|
|
previous: 'goldenknight1',
|
|
lvl: 40,
|
|
boss: {
|
|
hp: 1000,
|
|
str: 3
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'quests',
|
|
key: 'goldenknight3',
|
|
text: t('questGoldenknight2DropGoldenknight3Quest')
|
|
}
|
|
],
|
|
gp: 75,
|
|
exp: 750
|
|
}
|
|
},
|
|
goldenknight3: {
|
|
completion: t('questGoldenknight3Completion'),
|
|
previous: 'goldenknight2',
|
|
lvl: 40,
|
|
boss: {
|
|
hp: 1700,
|
|
str: 3.5
|
|
},
|
|
drop: {
|
|
items: [
|
|
{
|
|
type: 'food',
|
|
key: 'Honey',
|
|
text: t('questGoldenknight3DropHoney')
|
|
}, {
|
|
type: 'food',
|
|
key: 'Honey',
|
|
text: t('questGoldenknight3DropHoney')
|
|
}, {
|
|
type: 'food',
|
|
key: 'Honey',
|
|
text: t('questGoldenknight3DropHoney')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Golden',
|
|
text: t('questGoldenknight3DropGoldenPotion')
|
|
}, {
|
|
type: 'hatchingPotions',
|
|
key: 'Golden',
|
|
text: t('questGoldenknight3DropGoldenPotion')
|
|
}, {
|
|
type: 'gear',
|
|
key: 'shield_special_goldenknight',
|
|
text: t('questGoldenknight3DropWeapon')
|
|
}
|
|
],
|
|
gp: 900,
|
|
exp: 1500
|
|
}
|
|
},
|
|
};
|
|
|
|
let unlockableQuests = merge([
|
|
inviteFriends,
|
|
atomSeries,
|
|
viceSeries,
|
|
moonstoneSeries,
|
|
goldenKnightSeries,
|
|
]);
|
|
|
|
each(unlockableQuests, (quest, name) => {
|
|
let questDefaults = {
|
|
category: 'unlockable',
|
|
};
|
|
|
|
defaults(quest, questDefaults);
|
|
});
|
|
|
|
export default unlockableQuests;
|