mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
first pass on refactoring
This commit is contained in:
@@ -34,3 +34,10 @@ export { default as ANIMAL_SET_ACHIEVEMENTS } from './animalSetAchievements';
|
||||
export { default as QUEST_SERIES_ACHIEVEMENTS } from './questSeriesAchievements';
|
||||
export { default as ITEM_LIST } from './itemList';
|
||||
export { default as QUEST_SERIES } from './questSeries';
|
||||
export { default as QUEST_MASTERCLASSER } from './questMasterclasser';
|
||||
export { default as QUEST_GENERIC } from './questGeneric';
|
||||
export { default as QUEST_SEASONAL } from './questSeasonal';
|
||||
export { default as QUEST_PETS } from './questPets';
|
||||
export { default as QUEST_POTIONS } from './questPotions';
|
||||
export { default as QUEST_TIME_TRAVEL } from './questTimeTravel';
|
||||
export { default as QUEST_WORLD } from './questWorld';
|
||||
|
||||
44
website/common/script/content/constants/questGeneric.js
Normal file
44
website/common/script/content/constants/questGeneric.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import t from '../translation';
|
||||
|
||||
const QUEST_GENERIC = {
|
||||
basilist: {
|
||||
text: t('questBasilistText'),
|
||||
notes: t('questBasilistNotes'),
|
||||
group: 'questGroupEarnable',
|
||||
completion: t('questBasilistCompletion'),
|
||||
goldValue: 100,
|
||||
category: 'unlockable',
|
||||
unlockCondition: {
|
||||
condition: 'party invite',
|
||||
text: t('inviteFriends'),
|
||||
},
|
||||
boss: {
|
||||
name: t('questBasilistBoss'),
|
||||
hp: 100,
|
||||
str: 0.5,
|
||||
},
|
||||
drop: {
|
||||
gp: 8,
|
||||
exp: 42,
|
||||
},
|
||||
},
|
||||
dustbunnies: {
|
||||
text: t('questDustBunniesText'),
|
||||
notes: t('questDustBunniesNotes'),
|
||||
group: 'questGroupEarnable',
|
||||
completion: t('questDustBunniesCompletion'),
|
||||
value: 1,
|
||||
category: 'unlockable',
|
||||
boss: {
|
||||
name: t('questDustBunniesBoss'),
|
||||
hp: 100,
|
||||
str: 0.5,
|
||||
},
|
||||
drop: {
|
||||
gp: 8,
|
||||
exp: 42,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default QUEST_GENERIC;
|
||||
731
website/common/script/content/constants/questMasterclasser.js
Normal file
731
website/common/script/content/constants/questMasterclasser.js
Normal file
@@ -0,0 +1,731 @@
|
||||
import t from '../translation';
|
||||
|
||||
const QUEST_MASTERCLASSER = {
|
||||
dilatoryDistress1: {
|
||||
text: t('questDilatoryDistress1Text'),
|
||||
notes: t('questDilatoryDistress1Notes'),
|
||||
group: 'questGroupDilatoryDistress',
|
||||
completion: t('questDilatoryDistress1Completion'),
|
||||
value: 4,
|
||||
goldValue: 200,
|
||||
category: 'gold',
|
||||
collect: {
|
||||
fireCoral: {
|
||||
text: t('questDilatoryDistress1CollectFireCoral'),
|
||||
count: 20,
|
||||
},
|
||||
blueFins: {
|
||||
text: t('questDilatoryDistress1CollectBlueFins'),
|
||||
count: 20,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'gear',
|
||||
key: 'armor_special_finnedOceanicArmor',
|
||||
text: t('questDilatoryDistress1DropArmor'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 75,
|
||||
},
|
||||
},
|
||||
dilatoryDistress2: {
|
||||
text: t('questDilatoryDistress2Text'),
|
||||
notes: t('questDilatoryDistress2Notes'),
|
||||
group: 'questGroupDilatoryDistress',
|
||||
completion: t('questDilatoryDistress2Completion'),
|
||||
previous: 'dilatoryDistress1',
|
||||
prereqQuests: [
|
||||
'dilatoryDistress1',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 300,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questDilatoryDistress2Boss'),
|
||||
hp: 500,
|
||||
rage: {
|
||||
title: t('questDilatoryDistress2RageTitle'),
|
||||
description: t('questDilatoryDistress2RageDescription'),
|
||||
value: 50,
|
||||
healing: 0.3,
|
||||
effect: t('questDilatoryDistress2RageEffect'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Skeleton',
|
||||
text: t('questDilatoryDistress2DropSkeletonPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'CottonCandyBlue',
|
||||
text: t('questDilatoryDistress2DropCottonCandyBluePotion'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'head_special_fireCoralCirclet',
|
||||
text: t('questDilatoryDistress2DropHeadgear'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 500,
|
||||
},
|
||||
},
|
||||
dilatoryDistress3: {
|
||||
text: t('questDilatoryDistress3Text'),
|
||||
notes: t('questDilatoryDistress3Notes'),
|
||||
group: 'questGroupDilatoryDistress',
|
||||
completion: t('questDilatoryDistress3Completion'),
|
||||
previous: 'dilatoryDistress2',
|
||||
prereqQuests: [
|
||||
'dilatoryDistress1',
|
||||
'dilatoryDistress2',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 400,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questDilatoryDistress3Boss'),
|
||||
hp: 1000,
|
||||
str: 2,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'food',
|
||||
key: 'Fish',
|
||||
text: t('questDilatoryDistress3DropFish'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Fish',
|
||||
text: t('questDilatoryDistress3DropFish'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Fish',
|
||||
text: t('questDilatoryDistress3DropFish'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'weapon_special_tridentOfCrashingTides',
|
||||
text: t('questDilatoryDistress3DropWeapon'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'shield_special_moonpearlShield',
|
||||
text: t('questDilatoryDistress3DropShield'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 650,
|
||||
},
|
||||
},
|
||||
mayhemMistiflying1: {
|
||||
text: t('questMayhemMistiflying1Text'),
|
||||
notes: t('questMayhemMistiflying1Notes'),
|
||||
group: 'questGroupMayhemMistiflying',
|
||||
completion: t('questMayhemMistiflying1Completion'),
|
||||
value: 4,
|
||||
goldValue: 200,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questMayhemMistiflying1Boss'),
|
||||
hp: 500,
|
||||
rage: {
|
||||
title: t('questMayhemMistiflying1RageTitle'),
|
||||
description: t('questMayhemMistiflying1RageDescription'),
|
||||
value: 50,
|
||||
healing: 0.3,
|
||||
effect: t('questMayhemMistiflying1RageEffect'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Skeleton',
|
||||
text: t('questMayhemMistiflying1DropSkeletonPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'White',
|
||||
text: t('questMayhemMistiflying1DropWhitePotion'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'armor_special_roguishRainbowMessengerRobes',
|
||||
text: t('questMayhemMistiflying1DropArmor'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 500,
|
||||
},
|
||||
},
|
||||
mayhemMistiflying2: {
|
||||
text: t('questMayhemMistiflying2Text'),
|
||||
notes: t('questMayhemMistiflying2Notes'),
|
||||
group: 'questGroupMayhemMistiflying',
|
||||
completion: t('questMayhemMistiflying2Completion'),
|
||||
previous: 'mayhemMistiflying1',
|
||||
prereqQuests: [
|
||||
'mayhemMistiflying1',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 300,
|
||||
category: 'gold',
|
||||
collect: {
|
||||
mistifly1: {
|
||||
text: t('questMayhemMistiflying2CollectRedMistiflies'),
|
||||
count: 25,
|
||||
},
|
||||
mistifly2: {
|
||||
text: t('questMayhemMistiflying2CollectBlueMistiflies'),
|
||||
count: 15,
|
||||
},
|
||||
mistifly3: {
|
||||
text: t('questMayhemMistiflying2CollectGreenMistiflies'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'gear',
|
||||
key: 'head_special_roguishRainbowMessengerHood',
|
||||
text: t('questMayhemMistiflying2DropHeadgear'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 75,
|
||||
},
|
||||
},
|
||||
mayhemMistiflying3: {
|
||||
text: t('questMayhemMistiflying3Text'),
|
||||
notes: t('questMayhemMistiflying3Notes'),
|
||||
group: 'questGroupMayhemMistiflying',
|
||||
completion: t('questMayhemMistiflying3Completion'),
|
||||
previous: 'mayhemMistiflying2',
|
||||
prereqQuests: [
|
||||
'mayhemMistiflying1',
|
||||
'mayhemMistiflying2',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 400,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questMayhemMistiflying3Boss'),
|
||||
hp: 1000,
|
||||
str: 2,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'food',
|
||||
key: 'CottonCandyPink',
|
||||
text: t('questMayhemMistiflying3DropPinkCottonCandy'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyPink',
|
||||
text: t('questMayhemMistiflying3DropPinkCottonCandy'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyPink',
|
||||
text: t('questMayhemMistiflying3DropPinkCottonCandy'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'weapon_special_roguishRainbowMessage',
|
||||
text: t('questMayhemMistiflying3DropWeapon'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'shield_special_roguishRainbowMessage',
|
||||
text: t('questMayhemMistiflying3DropShield'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 650,
|
||||
},
|
||||
},
|
||||
stoikalmCalamity1: {
|
||||
text: t('questStoikalmCalamity1Text'),
|
||||
notes: t('questStoikalmCalamity1Notes'),
|
||||
group: 'questGroupStoikalmCalamity',
|
||||
completion: t('questStoikalmCalamity1Completion'),
|
||||
value: 4,
|
||||
goldValue: 200,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questStoikalmCalamity1Boss'),
|
||||
hp: 500,
|
||||
rage: {
|
||||
title: t('questStoikalmCalamity1RageTitle'),
|
||||
description: t('questStoikalmCalamity1RageDescription'),
|
||||
value: 50,
|
||||
healing: 0.3,
|
||||
effect: t('questStoikalmCalamity1RageEffect'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Skeleton',
|
||||
text: t('questStoikalmCalamity1DropSkeletonPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Desert',
|
||||
text: t('questStoikalmCalamity1DropDesertPotion'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'armor_special_mammothRiderArmor',
|
||||
text: t('questStoikalmCalamity1DropArmor'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 500,
|
||||
},
|
||||
},
|
||||
stoikalmCalamity2: {
|
||||
text: t('questStoikalmCalamity2Text'),
|
||||
notes: t('questStoikalmCalamity2Notes'),
|
||||
group: 'questGroupStoikalmCalamity',
|
||||
completion: t('questStoikalmCalamity2Completion'),
|
||||
previous: 'stoikalmCalamity1',
|
||||
prereqQuests: [
|
||||
'stoikalmCalamity1',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 300,
|
||||
category: 'gold',
|
||||
collect: {
|
||||
icicleCoin: {
|
||||
text: t('questStoikalmCalamity2CollectIcicleCoins'),
|
||||
count: 40,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'gear',
|
||||
key: 'head_special_mammothRiderHelm',
|
||||
text: t('questStoikalmCalamity2DropHeadgear'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 75,
|
||||
},
|
||||
},
|
||||
stoikalmCalamity3: {
|
||||
text: t('questStoikalmCalamity3Text'),
|
||||
notes: t('questStoikalmCalamity3Notes'),
|
||||
group: 'questGroupStoikalmCalamity',
|
||||
completion: t('questStoikalmCalamity3Completion'),
|
||||
previous: 'stoikalmCalamity2',
|
||||
prereqQuests: [
|
||||
'stoikalmCalamity1',
|
||||
'stoikalmCalamity2',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 400,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questStoikalmCalamity3Boss'),
|
||||
hp: 1000,
|
||||
str: 2,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'food',
|
||||
key: 'CottonCandyBlue',
|
||||
text: t('questStoikalmCalamity3DropBlueCottonCandy'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyBlue',
|
||||
text: t('questStoikalmCalamity3DropBlueCottonCandy'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyBlue',
|
||||
text: t('questStoikalmCalamity3DropBlueCottonCandy'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'weapon_special_mammothRiderSpear',
|
||||
text: t('questStoikalmCalamity3DropWeapon'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'shield_special_mammothRiderHorn',
|
||||
text: t('questStoikalmCalamity3DropShield'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 650,
|
||||
},
|
||||
},
|
||||
taskwoodsTerror1: {
|
||||
text: t('questTaskwoodsTerror1Text'),
|
||||
notes: t('questTaskwoodsTerror1Notes'),
|
||||
group: 'questGroupTaskwoodsTerror',
|
||||
completion: t('questTaskwoodsTerror1Completion'),
|
||||
value: 4,
|
||||
goldValue: 200,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questTaskwoodsTerror1Boss'),
|
||||
hp: 500,
|
||||
rage: {
|
||||
title: t('questTaskwoodsTerror1RageTitle'),
|
||||
description: t('questTaskwoodsTerror1RageDescription'),
|
||||
value: 50,
|
||||
healing: 0.3,
|
||||
effect: t('questTaskwoodsTerror1RageEffect'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Skeleton',
|
||||
text: t('questTaskwoodsTerror1DropSkeletonPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Red',
|
||||
text: t('questTaskwoodsTerror1DropRedPotion'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'head_special_pyromancersTurban',
|
||||
text: t('questTaskwoodsTerror1DropHeadgear'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 500,
|
||||
},
|
||||
},
|
||||
taskwoodsTerror2: {
|
||||
text: t('questTaskwoodsTerror2Text'),
|
||||
notes: t('questTaskwoodsTerror2Notes'),
|
||||
group: 'questGroupTaskwoodsTerror',
|
||||
completion: t('questTaskwoodsTerror2Completion'),
|
||||
previous: 'taskwoodsTerror1',
|
||||
prereqQuests: [
|
||||
'taskwoodsTerror1',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 300,
|
||||
category: 'gold',
|
||||
collect: {
|
||||
pixie: {
|
||||
text: t('questTaskwoodsTerror2CollectPixies'),
|
||||
count: 25,
|
||||
},
|
||||
brownie: {
|
||||
text: t('questTaskwoodsTerror2CollectBrownies'),
|
||||
count: 15,
|
||||
},
|
||||
dryad: {
|
||||
text: t('questTaskwoodsTerror2CollectDryads'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'gear',
|
||||
key: 'armor_special_pyromancersRobes',
|
||||
text: t('questTaskwoodsTerror2DropArmor'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 75,
|
||||
},
|
||||
},
|
||||
taskwoodsTerror3: {
|
||||
text: t('questTaskwoodsTerror3Text'),
|
||||
notes: t('questTaskwoodsTerror3Notes'),
|
||||
group: 'questGroupTaskwoodsTerror',
|
||||
completion: t('questTaskwoodsTerror3Completion'),
|
||||
previous: 'taskwoodsTerror2',
|
||||
prereqQuests: [
|
||||
'taskwoodsTerror1',
|
||||
'taskwoodsTerror2',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 400,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questTaskwoodsTerror3Boss'),
|
||||
hp: 1000,
|
||||
str: 2,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'food',
|
||||
key: 'Strawberry',
|
||||
text: t('questTaskwoodsTerror3DropStrawberry'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Strawberry',
|
||||
text: t('questTaskwoodsTerror3DropStrawberry'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Strawberry',
|
||||
text: t('questTaskwoodsTerror3DropStrawberry'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'weapon_special_taskwoodsLantern',
|
||||
text: t('questTaskwoodsTerror3DropWeapon'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 650,
|
||||
},
|
||||
},
|
||||
// final quest series in Masterclasser
|
||||
lostMasterclasser1: {
|
||||
text: t('questLostMasterclasser1Text'),
|
||||
notes: t('questLostMasterclasser1Notes'),
|
||||
group: 'questGroupLostMasterclasser',
|
||||
completion: t('questLostMasterclasser1Completion'),
|
||||
value: 4,
|
||||
prereqQuests: [
|
||||
'dilatoryDistress1',
|
||||
'dilatoryDistress2',
|
||||
'dilatoryDistress3',
|
||||
'mayhemMistiflying1',
|
||||
'mayhemMistiflying2',
|
||||
'mayhemMistiflying3',
|
||||
'stoikalmCalamity1',
|
||||
'stoikalmCalamity2',
|
||||
'stoikalmCalamity3',
|
||||
'taskwoodsTerror1',
|
||||
'taskwoodsTerror2',
|
||||
'taskwoodsTerror3',
|
||||
],
|
||||
goldValue: 400,
|
||||
category: 'gold',
|
||||
collect: {
|
||||
ancientTome: {
|
||||
text: t('questLostMasterclasser1CollectAncientTomes'),
|
||||
count: 40,
|
||||
},
|
||||
forbiddenTome: {
|
||||
text: t('questLostMasterclasser1CollectForbiddenTomes'),
|
||||
count: 40,
|
||||
},
|
||||
hiddenTome: {
|
||||
text: t('questLostMasterclasser1CollectHiddenTomes'),
|
||||
count: 40,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'food',
|
||||
key: 'Potatoe',
|
||||
text: t('foodPotatoe'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Potatoe',
|
||||
text: t('foodPotatoe'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Potatoe',
|
||||
text: t('foodPotatoe'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Meat',
|
||||
text: t('foodMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Meat',
|
||||
text: t('foodMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Meat',
|
||||
text: t('foodMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Milk',
|
||||
text: t('foodMilk'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Milk',
|
||||
text: t('foodMilk'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Milk',
|
||||
text: t('foodMilk'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 200,
|
||||
},
|
||||
},
|
||||
lostMasterclasser2: {
|
||||
text: t('questLostMasterclasser2Text'),
|
||||
notes: t('questLostMasterclasser2Notes'),
|
||||
group: 'questGroupLostMasterclasser',
|
||||
previous1: 'lostMasterclasser1',
|
||||
completion: t('questLostMasterclasser2Completion'),
|
||||
prereqQuests: [
|
||||
'lostMasterclasser1',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 500,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questLostMasterclasser2Boss'),
|
||||
hp: 1500,
|
||||
str: 2.5,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'food',
|
||||
key: 'Chocolate',
|
||||
text: t('foodChocolate'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Chocolate',
|
||||
text: t('foodChocolate'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Chocolate',
|
||||
text: t('foodChocolate'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Honey',
|
||||
text: t('foodHoney'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Honey',
|
||||
text: t('foodHoney'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Honey',
|
||||
text: t('foodHoney'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'RottenMeat',
|
||||
text: t('foodRottenMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'RottenMeat',
|
||||
text: t('foodRottenMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'RottenMeat',
|
||||
text: t('foodRottenMeat'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'eyewear_special_aetherMask',
|
||||
text: t('questLostMasterclasser2DropEyewear'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 1500,
|
||||
},
|
||||
},
|
||||
lostMasterclasser3: {
|
||||
text: t('questLostMasterclasser3Text'),
|
||||
notes: t('questLostMasterclasser3Notes'),
|
||||
group: 'questGroupLostMasterclasser',
|
||||
completion: t('questLostMasterclasser3Completion'),
|
||||
previous: 'lostMasterclasser2',
|
||||
prereqQuests: [
|
||||
'lostMasterclasser1',
|
||||
'lostMasterclasser2',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 600,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questLostMasterclasser3Boss'),
|
||||
hp: 2000,
|
||||
str: 3,
|
||||
rage: {
|
||||
title: t('questLostMasterclasser3RageTitle'),
|
||||
description: t('questLostMasterclasser3RageDescription'),
|
||||
value: 25,
|
||||
healing: 0.3,
|
||||
effect: t('questLostMasterclasser3RageEffect'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Base',
|
||||
text: t('questLostMasterclasser3DropBasePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'CottonCandyPink',
|
||||
text: t('questLostMasterclasser3DropPinkPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Golden',
|
||||
text: t('questLostMasterclasser3DropGoldenPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Shade',
|
||||
text: t('questLostMasterclasser3DropShadePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Zombie',
|
||||
text: t('questLostMasterclasser3DropZombiePotion'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'body_special_aetherAmulet',
|
||||
text: t('questLostMasterclasser3DropBodyAccessory'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 2000,
|
||||
},
|
||||
},
|
||||
lostMasterclasser4: {
|
||||
text: t('questLostMasterclasser4Text'),
|
||||
notes: t('questLostMasterclasser4Notes'),
|
||||
group: 'questGroupLostMasterclasser',
|
||||
completion: t('questLostMasterclasser4Completion'),
|
||||
previous: 'lostMasterclasser3',
|
||||
prereqQuests: [
|
||||
'lostMasterclasser1',
|
||||
'lostMasterclasser2',
|
||||
'lostMasterclasser3',
|
||||
],
|
||||
value: 4,
|
||||
goldValue: 700,
|
||||
category: 'gold',
|
||||
boss: {
|
||||
name: t('questLostMasterclasser4Boss'),
|
||||
hp: 3000,
|
||||
str: 4,
|
||||
rage: {
|
||||
title: t('questLostMasterclasser4RageTitle'),
|
||||
description: t('questLostMasterclasser4RageDescription'),
|
||||
value: 15,
|
||||
mpDrain: true,
|
||||
effect: t('questLostMasterclasser4RageEffect'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'mounts',
|
||||
key: 'Aether-Invisible',
|
||||
text: t('questLostMasterclasser4DropMount'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'back_special_aetherCloak',
|
||||
text: t('questLostMasterclasser4DropBackAccessory'),
|
||||
}, {
|
||||
type: 'gear',
|
||||
key: 'weapon_special_aetherCrystals',
|
||||
text: t('questLostMasterclasser4DropWeapon'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 3500,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default QUEST_MASTERCLASSER;
|
||||
1652
website/common/script/content/constants/questPets.js
Normal file
1652
website/common/script/content/constants/questPets.js
Normal file
File diff suppressed because it is too large
Load Diff
339
website/common/script/content/constants/questPotions.js
Normal file
339
website/common/script/content/constants/questPotions.js
Normal file
@@ -0,0 +1,339 @@
|
||||
import t from '../translation';
|
||||
|
||||
const QUEST_POTIONS = {
|
||||
amber: {
|
||||
text: t('questAmberText'),
|
||||
notes: t('questAmberNotes'),
|
||||
completion: t('questAmberCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
boss: {
|
||||
name: t('questAmberBoss'),
|
||||
hp: 300,
|
||||
str: 1.25,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Amber',
|
||||
text: t('questAmberDropAmberPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Amber',
|
||||
text: t('questAmberDropAmberPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Amber',
|
||||
text: t('questAmberDropAmberPotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 100,
|
||||
unlock: t('questAmberUnlockText'),
|
||||
},
|
||||
},
|
||||
blackPearl: {
|
||||
text: t('questBlackPearlText'),
|
||||
notes: t('questBlackPearlNotes'),
|
||||
completion: t('questBlackPearlCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
boss: {
|
||||
name: t('questBlackPearlBoss'),
|
||||
hp: 725,
|
||||
str: 1.75,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'BlackPearl',
|
||||
text: t('questBlackPearlDropBlackPearlPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'BlackPearl',
|
||||
text: t('questBlackPearlDropBlackPearlPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'BlackPearl',
|
||||
text: t('questBlackPearlDropBlackPearlPotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 450,
|
||||
unlock: t('questBlackPearlUnlockText'),
|
||||
},
|
||||
},
|
||||
bronze: {
|
||||
text: t('questBronzeText'),
|
||||
notes: t('questBronzeNotes'),
|
||||
completion: t('questBronzeCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
boss: {
|
||||
name: t('questBronzeBoss'),
|
||||
hp: 800,
|
||||
str: 2,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Bronze',
|
||||
text: t('questBronzeDropBronzePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Bronze',
|
||||
text: t('questBronzeDropBronzePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Bronze',
|
||||
text: t('questBronzeDropBronzePotion'),
|
||||
},
|
||||
],
|
||||
gp: 63,
|
||||
exp: 575,
|
||||
unlock: t('questBronzeUnlockText'),
|
||||
},
|
||||
},
|
||||
fluorite: {
|
||||
text: t('questFluoriteText'),
|
||||
notes: t('questFluoriteNotes'),
|
||||
completion: t('questFluoriteCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
boss: {
|
||||
name: t('questFluoriteBoss'),
|
||||
hp: 1200,
|
||||
str: 2,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Fluorite',
|
||||
text: t('questFluoriteDropFluoritePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Fluorite',
|
||||
text: t('questFluoriteDropFluoritePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Fluorite',
|
||||
text: t('questFluoriteDropFluoritePotion'),
|
||||
},
|
||||
],
|
||||
gp: 70,
|
||||
exp: 750,
|
||||
unlock: t('questFluoriteUnlockText'),
|
||||
},
|
||||
},
|
||||
onyx: {
|
||||
text: t('questOnyxText'),
|
||||
notes: t('questOnyxNotes'),
|
||||
completion: t('questOnyxCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
collect: {
|
||||
onyxStone: {
|
||||
text: t('questOnyxCollectOnyxStones'),
|
||||
count: 25,
|
||||
},
|
||||
plutoRune: {
|
||||
text: t('questOnyxCollectPlutoRunes'),
|
||||
count: 10,
|
||||
},
|
||||
leoRune: {
|
||||
text: t('questOnyxCollectLeoRunes'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Onyx',
|
||||
text: t('questOnyxDropOnyxPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Onyx',
|
||||
text: t('questOnyxDropOnyxPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Onyx',
|
||||
text: t('questOnyxDropOnyxPotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 100,
|
||||
unlock: t('questOnyxUnlockText'),
|
||||
},
|
||||
},
|
||||
ruby: {
|
||||
text: t('questRubyText'),
|
||||
notes: t('questRubyNotes'),
|
||||
completion: t('questRubyCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
collect: {
|
||||
rubyGem: {
|
||||
text: t('questRubyCollectRubyGems'),
|
||||
count: 25,
|
||||
},
|
||||
venusRune: {
|
||||
text: t('questRubyCollectVenusRunes'),
|
||||
count: 10,
|
||||
},
|
||||
aquariusRune: {
|
||||
text: t('questRubyCollectAquariusRunes'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Ruby',
|
||||
text: t('questRubyDropRubyPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Ruby',
|
||||
text: t('questRubyDropRubyPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Ruby',
|
||||
text: t('questRubyDropRubyPotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 100,
|
||||
unlock: t('questRubyUnlockText'),
|
||||
},
|
||||
},
|
||||
silver: {
|
||||
text: t('questSilverText'),
|
||||
notes: t('questSilverNotes'),
|
||||
completion: t('questSilverCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
collect: {
|
||||
silverIngot: {
|
||||
text: t('questSilverCollectSilverIngots'),
|
||||
count: 20,
|
||||
},
|
||||
moonRune: {
|
||||
text: t('questSilverCollectMoonRunes'),
|
||||
count: 15,
|
||||
},
|
||||
cancerRune: {
|
||||
text: t('questSilverCollectCancerRunes'),
|
||||
count: 15,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Silver',
|
||||
text: t('questSilverDropSilverPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Silver',
|
||||
text: t('questSilverDropSilverPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Silver',
|
||||
text: t('questSilverDropSilverPotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 100,
|
||||
unlock: t('questSilverUnlockText'),
|
||||
},
|
||||
},
|
||||
stone: {
|
||||
text: t('questStoneText'),
|
||||
notes: t('questStoneNotes'),
|
||||
completion: t('questStoneCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
collect: {
|
||||
mossyStone: {
|
||||
text: t('questStoneCollectMossyStones'),
|
||||
count: 25,
|
||||
},
|
||||
marsRune: {
|
||||
text: t('questStoneCollectMarsRunes'),
|
||||
count: 10,
|
||||
},
|
||||
capricornRune: {
|
||||
text: t('questStoneCollectCapricornRunes'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'MossyStone',
|
||||
text: t('questStoneDropMossyStonePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'MossyStone',
|
||||
text: t('questStoneDropMossyStonePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'MossyStone',
|
||||
text: t('questStoneDropMossyStonePotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 100,
|
||||
unlock: t('questStoneUnlockText'),
|
||||
},
|
||||
},
|
||||
turquoise: {
|
||||
text: t('questTurquoiseText'),
|
||||
notes: t('questTurquoiseNotes'),
|
||||
completion: t('questTurquoiseCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
collect: {
|
||||
turquoiseGem: {
|
||||
text: t('questTurquoiseCollectTurquoiseGems'),
|
||||
count: 25,
|
||||
},
|
||||
sagittariusRune: {
|
||||
text: t('questTurquoiseCollectSagittariusRunes'),
|
||||
count: 10,
|
||||
},
|
||||
neptuneRune: {
|
||||
text: t('questTurquoiseCollectNeptuneRunes'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Turquoise',
|
||||
text: t('questTurquoiseDropTurquoisePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Turquoise',
|
||||
text: t('questTurquoiseDropTurquoisePotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Turquoise',
|
||||
text: t('questTurquoiseDropTurquoisePotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 100,
|
||||
unlock: t('questTurquoiseUnlockText'),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default QUEST_POTIONS;
|
||||
171
website/common/script/content/constants/questSeasonal.js
Normal file
171
website/common/script/content/constants/questSeasonal.js
Normal file
@@ -0,0 +1,171 @@
|
||||
import find from 'lodash/find';
|
||||
import moment from 'moment';
|
||||
import EVENTS from 'events';
|
||||
import t from '../translation';
|
||||
|
||||
const CURRENT_EVENT = find(
|
||||
EVENTS, event => moment().isBetween(event.start, event.end) && Boolean(event.season),
|
||||
);
|
||||
|
||||
const QUEST_SEASONAL = {
|
||||
// winter
|
||||
evilsanta: {
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'winter' ? CURRENT_EVENT : null,
|
||||
text: t('questEvilSantaText'),
|
||||
notes: t('questEvilSantaNotes'),
|
||||
addlNotes: t('evilSantaAddlNotes'),
|
||||
completion: t('questEvilSantaCompletion'),
|
||||
value: 4,
|
||||
category: 'pet',
|
||||
boss: {
|
||||
name: t('questEvilSantaBoss'),
|
||||
hp: 300,
|
||||
str: 1,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'mounts',
|
||||
key: 'BearCub-Polar',
|
||||
text: t('questEvilSantaDropBearCubPolarMount'),
|
||||
},
|
||||
],
|
||||
gp: 20,
|
||||
exp: 100,
|
||||
},
|
||||
},
|
||||
evilsanta2: {
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'winter' ? CURRENT_EVENT : null,
|
||||
text: t('questEvilSanta2Text'),
|
||||
notes: t('questEvilSanta2Notes'),
|
||||
addlNotes: t('evilSantaAddlNotes'),
|
||||
completion: t('questEvilSanta2Completion'),
|
||||
value: 4,
|
||||
category: 'pet',
|
||||
collect: {
|
||||
tracks: {
|
||||
text: t('questEvilSanta2CollectTracks'),
|
||||
count: 20,
|
||||
},
|
||||
branches: {
|
||||
text: t('questEvilSanta2CollectBranches'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'pets',
|
||||
key: 'BearCub-Polar',
|
||||
text: t('questEvilSanta2DropBearCubPolarPet'),
|
||||
},
|
||||
],
|
||||
gp: 20,
|
||||
exp: 100,
|
||||
},
|
||||
},
|
||||
// spring
|
||||
egg: {
|
||||
text: t('questEggHuntText'),
|
||||
notes: t('questEggHuntNotes'),
|
||||
completion: t('questEggHuntCompletion'),
|
||||
value: 1,
|
||||
category: 'pet',
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
|
||||
collect: {
|
||||
plainEgg: {
|
||||
text: t('questEggHuntCollectPlainEgg'),
|
||||
count: 40,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Egg',
|
||||
text: t('questEggHuntDropPlainEgg'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 0,
|
||||
},
|
||||
},
|
||||
waffle: {
|
||||
text: t('questWaffleText'),
|
||||
notes: t('questWaffleNotes'),
|
||||
completion: t('questWaffleCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
|
||||
boss: {
|
||||
name: t('questWaffleBoss'),
|
||||
hp: 500,
|
||||
str: 2,
|
||||
rage: {
|
||||
title: t('questWaffleRageTitle'),
|
||||
description: t('questWaffleRageDescription'),
|
||||
value: 50,
|
||||
progressDrain: 0.5,
|
||||
effect: t('questWaffleRageEffect'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Dessert',
|
||||
text: t('questWaffleDropDessertPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Dessert',
|
||||
text: t('questWaffleDropDessertPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Dessert',
|
||||
text: t('questWaffleDropDessertPotion'),
|
||||
},
|
||||
],
|
||||
gp: 40,
|
||||
exp: 500,
|
||||
unlock: t('questWaffleUnlockText'),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default QUEST_SEASONAL;
|
||||
120
website/common/script/content/constants/questTimeTravel.js
Normal file
120
website/common/script/content/constants/questTimeTravel.js
Normal file
@@ -0,0 +1,120 @@
|
||||
import t from '../translation';
|
||||
|
||||
const QUEST_TIME_TRAVEL = {
|
||||
robot: {
|
||||
text: t('questRobotText'),
|
||||
notes: t('questRobotNotes'),
|
||||
completion: t('questRobotCompletion'),
|
||||
value: 1,
|
||||
category: 'timeTravelers',
|
||||
canBuy () {
|
||||
return false;
|
||||
},
|
||||
collect: {
|
||||
bolt: {
|
||||
text: t('questRobotCollectBolts'),
|
||||
count: 15,
|
||||
},
|
||||
gear: {
|
||||
text: t('questRobotCollectGears'),
|
||||
count: 10,
|
||||
},
|
||||
spring: {
|
||||
text: t('questRobotCollectSprings'),
|
||||
count: 10,
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'eggs',
|
||||
key: 'Robot',
|
||||
text: t('questRobotDropRobotEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Robot',
|
||||
text: t('questRobotDropRobotEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Robot',
|
||||
text: t('questRobotDropRobotEgg'),
|
||||
},
|
||||
],
|
||||
gp: 40,
|
||||
exp: 75,
|
||||
unlock: t('questRobotUnlockText'),
|
||||
},
|
||||
},
|
||||
solarSystem: {
|
||||
text: t('questSolarSystemText'),
|
||||
notes: t('questSolarSystemNotes'),
|
||||
completion: t('questSolarSystemCompletion'),
|
||||
value: 1,
|
||||
category: 'timeTravelers',
|
||||
canBuy () {
|
||||
return false;
|
||||
},
|
||||
boss: {
|
||||
name: t('questSolarSystemBoss'),
|
||||
hp: 1500,
|
||||
str: 2.5,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'SolarSystem',
|
||||
text: t('questSolarSystemDropSolarSystemPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'SolarSystem',
|
||||
text: t('questSolarSystemDropSolarSystemPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'SolarSystem',
|
||||
text: t('questSolarSystemDropSolarSystemPotion'),
|
||||
},
|
||||
],
|
||||
gp: 90,
|
||||
exp: 900,
|
||||
unlock: t('questSolarSystemUnlockText'),
|
||||
},
|
||||
},
|
||||
windup: {
|
||||
text: t('questWindupText'),
|
||||
notes: t('questWindupNotes'),
|
||||
completion: t('questWindupCompletion'),
|
||||
value: 1,
|
||||
category: 'timeTravelers',
|
||||
canBuy () {
|
||||
return false;
|
||||
},
|
||||
boss: {
|
||||
name: t('questWindupBoss'),
|
||||
hp: 1000,
|
||||
str: 1,
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'hatchingPotions',
|
||||
key: 'Windup',
|
||||
text: t('questWindupDropWindupPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Windup',
|
||||
text: t('questWindupDropWindupPotion'),
|
||||
}, {
|
||||
type: 'hatchingPotions',
|
||||
key: 'Windup',
|
||||
text: t('questWindupDropWindupPotion'),
|
||||
},
|
||||
],
|
||||
gp: 50,
|
||||
exp: 425,
|
||||
unlock: t('questWindupUnlockText'),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default QUEST_TIME_TRAVEL;
|
||||
418
website/common/script/content/constants/questWorld.js
Normal file
418
website/common/script/content/constants/questWorld.js
Normal file
@@ -0,0 +1,418 @@
|
||||
import t from '../translation';
|
||||
|
||||
const QUEST_WORLD = {
|
||||
bewilder: {
|
||||
text: t('questBewilderText'),
|
||||
notes: t('questBewilderNotes'),
|
||||
completion: t('questBewilderCompletion'),
|
||||
completionChat: t('questBewilderCompletionChat'),
|
||||
value: 0,
|
||||
canBuy () {
|
||||
return false;
|
||||
},
|
||||
category: 'world',
|
||||
boss: {
|
||||
name: t('questBewilderText'),
|
||||
hp: 20000000,
|
||||
str: 1,
|
||||
def: 1,
|
||||
rage: {
|
||||
title: t('questBewilderBossRageTitle'),
|
||||
description: t('questBewilderBossRageDescription'),
|
||||
value: 800000,
|
||||
bailey: t('questBewilderBossRageBailey'),
|
||||
stables: t('questBewilderBossRageStables'),
|
||||
market: t('questBewilderBossRageMarket'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'pets',
|
||||
key: 'MagicalBee-Base',
|
||||
text: t('questBewilderDropBumblebeePet'),
|
||||
}, {
|
||||
type: 'mounts',
|
||||
key: 'MagicalBee-Base',
|
||||
text: t('questBewilderDropBumblebeeMount'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Meat',
|
||||
text: t('foodMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Milk',
|
||||
text: t('foodMilk'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Potatoe',
|
||||
text: t('foodPotatoe'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Strawberry',
|
||||
text: t('foodStrawberry'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Chocolate',
|
||||
text: t('foodChocolate'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Fish',
|
||||
text: t('foodFish'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'RottenMeat',
|
||||
text: t('foodRottenMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyPink',
|
||||
text: t('foodCottonCandyPink'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyBlue',
|
||||
text: t('foodCottonCandyBlue'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Honey',
|
||||
text: t('foodHoney'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 0,
|
||||
},
|
||||
},
|
||||
burnout: {
|
||||
text: t('questBurnoutText'),
|
||||
notes: t('questBurnoutNotes'),
|
||||
completion: t('questBurnoutCompletion'),
|
||||
completionChat: t('questBurnoutCompletionChat'),
|
||||
value: 0,
|
||||
canBuy () {
|
||||
return false;
|
||||
},
|
||||
category: 'world',
|
||||
boss: {
|
||||
name: t('questBurnoutBoss'),
|
||||
hp: 11000000,
|
||||
str: 2.5,
|
||||
def: 1,
|
||||
rage: {
|
||||
title: t('questBurnoutBossRageTitle'),
|
||||
description: t('questBurnoutBossRageDescription'),
|
||||
value: 1000000,
|
||||
quests: t('questBurnoutBossRageQuests'),
|
||||
seasonalShop: t('questBurnoutBossRageSeasonalShop'),
|
||||
tavern: t('questBurnoutBossRageTavern'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'pets',
|
||||
key: 'Phoenix-Base',
|
||||
text: t('questBurnoutDropPhoenixPet'),
|
||||
}, {
|
||||
type: 'mounts',
|
||||
key: 'Phoenix-Base',
|
||||
text: t('questBurnoutDropPhoenixMount'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Base',
|
||||
text: t('foodCandyBase'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_White',
|
||||
text: t('foodCandyWhite'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Desert',
|
||||
text: t('foodCandyDesert'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Red',
|
||||
text: t('foodCandyRed'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Shade',
|
||||
text: t('foodCandyShade'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Skeleton',
|
||||
text: t('foodCandySkeleton'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Zombie',
|
||||
text: t('foodCandyZombie'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_CottonCandyPink',
|
||||
text: t('foodCandyCottonCandyPink'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_CottonCandyBlue',
|
||||
text: t('foodCandyCottonCandyBlue'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Golden',
|
||||
text: t('foodCandyGolden'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 0,
|
||||
},
|
||||
},
|
||||
dilatory: {
|
||||
text: t('questDilatoryText'),
|
||||
notes: t('questDilatoryNotes'),
|
||||
completion: t('questDilatoryCompletion'),
|
||||
value: 0,
|
||||
canBuy () {
|
||||
return false;
|
||||
},
|
||||
category: 'world',
|
||||
boss: {
|
||||
name: t('questDilatoryBoss'),
|
||||
hp: 5000000,
|
||||
str: 1,
|
||||
def: 1,
|
||||
rage: {
|
||||
title: t('questDilatoryBossRageTitle'),
|
||||
description: t('questDilatoryBossRageDescription'),
|
||||
value: 4000000,
|
||||
tavern: t('questDilatoryBossRageTavern'),
|
||||
stables: t('questDilatoryBossRageStables'),
|
||||
market: t('questDilatoryBossRageMarket'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'pets',
|
||||
key: 'MantisShrimp-Base',
|
||||
text: t('questDilatoryDropMantisShrimpPet'),
|
||||
}, {
|
||||
type: 'mounts',
|
||||
key: 'MantisShrimp-Base',
|
||||
text: t('questDilatoryDropMantisShrimpMount'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Meat',
|
||||
text: t('foodMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Milk',
|
||||
text: t('foodMilk'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Potatoe',
|
||||
text: t('foodPotatoe'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Strawberry',
|
||||
text: t('foodStrawberry'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Chocolate',
|
||||
text: t('foodChocolate'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Fish',
|
||||
text: t('foodFish'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'RottenMeat',
|
||||
text: t('foodRottenMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyPink',
|
||||
text: t('foodCottonCandyPink'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyBlue',
|
||||
text: t('foodCottonCandyBlue'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Honey',
|
||||
text: t('foodHoney'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 0,
|
||||
},
|
||||
},
|
||||
dysheartener: {
|
||||
text: t('questDysheartenerText'),
|
||||
notes: t('questDysheartenerNotes'),
|
||||
completion: t('questDysheartenerCompletion'),
|
||||
completionChat: t('questDysheartenerCompletionChat'),
|
||||
value: 0,
|
||||
canBuy () {
|
||||
return false;
|
||||
},
|
||||
category: 'world',
|
||||
boss: {
|
||||
name: t('questDysheartenerText'),
|
||||
hp: 17000000,
|
||||
str: 1.25,
|
||||
def: 1,
|
||||
rage: {
|
||||
title: t('questDysheartenerBossRageTitle'),
|
||||
description: t('questDysheartenerBossRageDescription'),
|
||||
value: 500000,
|
||||
seasonalShop: t('questDysheartenerBossRageSeasonal'),
|
||||
market: t('questDysheartenerBossRageMarket'),
|
||||
quests: t('questDysheartenerBossRageQuests'),
|
||||
},
|
||||
},
|
||||
colors: {
|
||||
dark: '#410F2A',
|
||||
medium: '#5C1130',
|
||||
light: '#931F4D',
|
||||
extralight: '#DC4069',
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'pets',
|
||||
key: 'Hippogriff-Hopeful',
|
||||
text: t('questDysheartenerDropHippogriffPet'),
|
||||
}, {
|
||||
type: 'mounts',
|
||||
key: 'Hippogriff-Hopeful',
|
||||
text: t('questDysheartenerDropHippogriffMount'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Cake_Base',
|
||||
text: t('foodCakeBase'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_White',
|
||||
text: t('foodCandyWhite'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Cake_Desert',
|
||||
text: t('foodCakeDesert'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Red',
|
||||
text: t('foodCandyRed'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Cake_Shade',
|
||||
text: t('foodCakeShade'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_Skeleton',
|
||||
text: t('foodCandySkeleton'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Cake_Zombie',
|
||||
text: t('foodCakeZombie'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_CottonCandyPink',
|
||||
text: t('foodCandyCottonCandyPink'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Candy_CottonCandyBlue',
|
||||
text: t('foodCandyCottonCandyBlue'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Cake_Golden',
|
||||
text: t('foodCakeGolden'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 0,
|
||||
},
|
||||
},
|
||||
stressbeast: {
|
||||
text: t('questStressbeastText'),
|
||||
notes: t('questStressbeastNotes'),
|
||||
completion: t('questStressbeastCompletion'),
|
||||
completionChat: t('questStressbeastCompletionChat'),
|
||||
value: 0,
|
||||
canBuy () {
|
||||
return false;
|
||||
},
|
||||
category: 'world',
|
||||
boss: {
|
||||
name: t('questStressbeastBoss'),
|
||||
hp: 2750000,
|
||||
str: 1,
|
||||
def: 1,
|
||||
rage: {
|
||||
title: t('questStressbeastBossRageTitle'),
|
||||
description: t('questStressbeastBossRageDescription'),
|
||||
value: 1450000,
|
||||
healing: 0.3,
|
||||
stables: t('questStressbeastBossRageStables'),
|
||||
bailey: t('questStressbeastBossRageBailey'),
|
||||
guide: t('questStressbeastBossRageGuide'),
|
||||
},
|
||||
desperation: {
|
||||
threshold: 500000,
|
||||
str: 3.5,
|
||||
def: 2,
|
||||
text: t('questStressbeastDesperation'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'pets',
|
||||
key: 'Mammoth-Base',
|
||||
text: t('questStressbeastDropMammothPet'),
|
||||
}, {
|
||||
type: 'mounts',
|
||||
key: 'Mammoth-Base',
|
||||
text: t('questStressbeastDropMammothMount'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Meat',
|
||||
text: t('foodMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Milk',
|
||||
text: t('foodMilk'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Potatoe',
|
||||
text: t('foodPotatoe'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Strawberry',
|
||||
text: t('foodStrawberry'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Chocolate',
|
||||
text: t('foodChocolate'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Fish',
|
||||
text: t('foodFish'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'RottenMeat',
|
||||
text: t('foodRottenMeat'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyPink',
|
||||
text: t('foodCottonCandyPink'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'CottonCandyBlue',
|
||||
text: t('foodCottonCandyBlue'),
|
||||
}, {
|
||||
type: 'food',
|
||||
key: 'Honey',
|
||||
text: t('foodHoney'),
|
||||
},
|
||||
],
|
||||
gp: 0,
|
||||
exp: 0,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default QUEST_WORLD;
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user