Files
habitica/common/script/src/content/quests/unlockable.js
2015-09-22 13:00:46 -05:00

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;