Merge remote-tracking branch 'CuriousMagpie/quest-refactors' into develop

This commit is contained in:
SabreCat
2022-04-15 16:35:27 -05:00
10 changed files with 4067 additions and 3910 deletions

View File

@@ -33,3 +33,11 @@ export { default as ANIMAL_COLOR_ACHIEVEMENTS } from './animalColorAchievements'
export { default as ANIMAL_SET_ACHIEVEMENTS } from './animalSetAchievements'; export { default as ANIMAL_SET_ACHIEVEMENTS } from './animalSetAchievements';
export { default as QUEST_SERIES_ACHIEVEMENTS } from './questSeriesAchievements'; export { default as QUEST_SERIES_ACHIEVEMENTS } from './questSeriesAchievements';
export { default as ITEM_LIST } from './itemList'; export { default as ITEM_LIST } from './itemList';
export { default as QUEST_SERIES } from '../quests/series';
export { default as QUEST_MASTERCLASSER } from '../quests/masterclasser';
export { default as QUEST_GENERIC } from '../quests/generic';
export { default as QUEST_SEASONAL } from '../quests/seasonal';
export { default as QUEST_PETS } from '../quests/pets';
export { default as QUEST_POTIONS } from '../quests/potions';
export { default as QUEST_TIME_TRAVEL } from '../quests/timeTravel';
export { default as QUEST_WORLD } from '../quests/world';

File diff suppressed because it is too large Load Diff

View 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;

View 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;

File diff suppressed because it is too large Load Diff

View 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;

View File

@@ -0,0 +1,226 @@
import find from 'lodash/find';
import moment from 'moment';
import { EVENTS } from '../constants/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,
},
canBuy () {
return this.event && moment().isBetween(this.event.start, this.event.end);
},
},
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,
},
canBuy () {
return this.event && moment().isBetween(this.event.start, this.event.end);
},
},
// 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,
},
canBuy () {
return this.event && moment().isBetween(this.event.start, this.event.end);
},
},
virtualpet: {
text: t('questVirtualPetText'),
notes: t('questVirtualPetNotes'),
completion: t('questVirtualPetCompletion'),
value: 4,
category: 'hatchingPotion',
canBuy () {
return CURRENT_EVENT && CURRENT_EVENT.season === 'spring';
},
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
boss: {
name: t('questVirtualPetBoss'),
hp: 500,
str: 2,
rage: {
title: t('questVirtualPetRageTitle'),
description: t('questVirtualPetRageDescription'),
value: 50,
progressDrain: 0.5,
effect: t('questVirtualPetRageEffect'),
},
},
drop: {
items: [
{
type: 'hatchingPotions',
key: 'VirtualPet',
text: t('questVirtualPetDropVirtualPetPotion'),
}, {
type: 'hatchingPotions',
key: 'VirtualPet',
text: t('questVirtualPetDropVirtualPetPotion'),
}, {
type: 'hatchingPotions',
key: 'VirtualPet',
text: t('questVirtualPetDropVirtualPetPotion'),
},
],
gp: 40,
exp: 500,
unlock: t('questVirtualPetUnlockText'),
},
},
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'),
},
canBuy () {
return this.event && moment().isBetween(this.event.start, this.event.end);
},
},
};
export default QUEST_SEASONAL;

View File

@@ -0,0 +1,504 @@
import t from '../translation';
const QUEST_SERIES = {
atom1: {
text: t('questAtom1Text'),
notes: t('questAtom1Notes'),
completion: t('questAtom1Completion'),
group: 'questGroupAtom',
prerequisite: {
lvl: 15,
},
value: 4,
lvl: 15,
category: 'unlockable',
collect: {
soapBars: {
text: t('questAtom1CollectSoapBars'),
count: 20,
},
},
drop: {
items: [
{
type: 'quests',
key: 'atom2',
text: t('questAtom1Drop'),
onlyOwner: true,
},
],
gp: 7,
exp: 50,
},
},
atom2: {
text: t('questAtom2Text'),
notes: t('questAtom2Notes'),
completion: t('questAtom2Completion'),
group: 'questGroupAtom',
prerequisite: {
lvl: 15,
atom1: true,
},
previous: 'atom1',
value: 4,
lvl: 15,
category: 'unlockable',
boss: {
name: t('questAtom2Boss'),
hp: 300,
str: 1,
},
drop: {
items: [
{
type: 'quests',
key: 'atom3',
text: t('questAtom2Drop'),
onlyOwner: true,
},
],
gp: 20,
exp: 100,
},
},
atom3: {
text: t('questAtom3Text'),
notes: t('questAtom3Notes'),
group: 'questGroupAtom',
previous: 'atom2',
completion: t('questAtom3Completion'),
prerequisite: {
lvl: 15,
atom1: true,
atom2: true,
},
value: 4,
lvl: 15,
category: 'unlockable',
boss: {
name: t('questAtom3Boss'),
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,
},
},
goldenknight1: {
text: t('questGoldenknight1Text'),
notes: t('questGoldenknight1Notes'),
completion: t('questGoldenknight1Completion'),
group: 'questGroupGoldenknight',
value: 4,
lvl: 40,
category: 'unlockable',
collect: {
testimony: {
text: t('questGoldenknight1CollectTestimony'),
count: 60,
},
},
drop: {
items: [
{
type: 'quests',
key: 'goldenknight2',
text: t('questGoldenknight1DropGoldenknight2Quest'),
onlyOwner: true,
},
],
gp: 15,
exp: 120,
},
},
goldenknight2: {
text: t('questGoldenknight2Text'),
notes: t('questGoldenknight2Notes'),
completion: t('questGoldenknight2Completion'),
group: 'questGroupGoldenknight',
value: 4,
previous: 'goldenknight1',
lvl: 40,
category: 'unlockable',
boss: {
name: t('questGoldenknight2Boss'),
hp: 1000,
str: 3,
},
drop: {
items: [
{
type: 'quests',
key: 'goldenknight3',
text: t('questGoldenknight2DropGoldenknight3Quest'),
onlyOwner: true,
},
],
gp: 75,
exp: 750,
},
},
goldenknight3: {
text: t('questGoldenknight3Text'),
notes: t('questGoldenknight3Notes'),
group: 'questGroupGoldenknight',
completion: t('questGoldenknight3Completion'),
previous: 'goldenknight2',
value: 4,
lvl: 40,
category: 'unlockable',
boss: {
name: t('questGoldenknight3Boss'),
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,
},
},
moon1: {
text: t('questMoon1Text'),
notes: t('questMoon1Notes'),
group: 'questGroupMoon',
completion: t('questMoon1Completion'),
value: 4,
category: 'unlockable',
unlockCondition: {
condition: 'login reward',
incentiveThreshold: 7,
text: t('loginReward', { count: 7 }),
},
collect: {
shard: {
text: t('questMoon1CollectShards'),
count: 20,
},
},
drop: {
items: [
{
type: 'gear',
key: 'head_special_lunarWarriorHelm',
text: t('questMoon1DropHeadgear'),
},
],
gp: 7,
exp: 50,
},
},
moon2: {
text: t('questMoon2Text'),
notes: t('questMoon2Notes'),
group: 'questGroupMoon',
completion: t('questMoon2Completion'),
previous: 'moon1',
value: 4,
category: 'unlockable',
unlockCondition: {
condition: 'login reward',
incentiveThreshold: 22,
text: t('loginReward', { count: 22 }),
},
boss: {
name: t('questMoon2Boss'),
hp: 100,
str: 1.5,
},
drop: {
items: [
{
type: 'gear',
key: 'armor_special_lunarWarriorArmor',
text: t('questMoon2DropArmor'),
},
],
gp: 37,
exp: 275,
},
},
moon3: {
text: t('questMoon3Text'),
notes: t('questMoon3Notes'),
group: 'questGroupMoon',
completion: t('questMoon3Completion'),
previous: 'moon2',
value: 4,
category: 'unlockable',
unlockCondition: {
condition: 'login reward',
incentiveThreshold: 40,
text: t('loginReward', { count: 40 }),
},
boss: {
name: t('questMoon3Boss'),
hp: 1000,
str: 2,
},
drop: {
items: [
{
type: 'gear',
key: 'weapon_special_lunarScythe',
text: t('questMoon3DropWeapon'),
},
],
gp: 67,
exp: 650,
},
},
moonstone1: {
text: t('questMoonstone1Text'),
notes: t('questMoonstone1Notes'),
completion: t('questMoonstone1Completion'),
group: 'questGroupMoonstone',
value: 4,
lvl: 60,
category: 'unlockable',
collect: {
moonstone: {
text: t('questMoonstone1CollectMoonstone'),
count: 100,
},
},
drop: {
items: [
{
type: 'quests',
key: 'moonstone2',
text: t('questMoonstone1DropMoonstone2Quest'),
onlyOwner: true,
},
],
gp: 50,
exp: 100,
},
},
moonstone2: {
text: t('questMoonstone2Text'),
notes: t('questMoonstone2Notes'),
completion: t('questMoonstone2Completion'),
group: 'questGroupMoonstone',
value: 4,
lvl: 60,
previous: 'moonstone1',
category: 'unlockable',
boss: {
name: t('questMoonstone2Boss'),
hp: 1500,
str: 3,
},
drop: {
items: [
{
type: 'quests',
key: 'moonstone3',
text: t('questMoonstone2DropMoonstone3Quest'),
onlyOwner: true,
},
],
gp: 500,
exp: 1000,
},
},
moonstone3: {
text: t('questMoonstone3Text'),
notes: t('questMoonstone3Notes'),
group: 'questGroupMoonstone',
completion: t('questMoonstone3Completion'),
previous: 'moonstone2',
value: 4,
lvl: 60,
category: 'unlockable',
boss: {
name: t('questMoonstone3Boss'),
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,
},
},
vice1: {
text: t('questVice1Text'),
notes: t('questVice1Notes'),
completion: t('questVice1Completion'),
group: 'questGroupVice',
value: 4,
lvl: 30,
category: 'unlockable',
boss: {
name: t('questVice1Boss'),
hp: 750,
str: 1.5,
},
drop: {
items: [
{
type: 'quests',
key: 'vice2',
text: t('questVice1DropVice2Quest'),
onlyOwner: true,
},
],
gp: 20,
exp: 100,
},
},
vice2: {
text: t('questVice2Text'),
notes: t('questVice2Notes'),
completion: t('questVice2Completion'),
group: 'questGroupVice',
value: 4,
lvl: 30,
category: 'unlockable',
previous: 'vice1',
collect: {
lightCrystal: {
text: t('questVice2CollectLightCrystal'),
count: 30,
},
},
drop: {
items: [
{
type: 'quests',
key: 'vice3',
text: t('questVice2DropVice3Quest'),
onlyOwner: true,
},
],
gp: 20,
exp: 75,
},
},
vice3: {
text: t('questVice3Text'),
notes: t('questVice3Notes'),
group: 'questGroupVice',
completion: t('questVice3Completion'),
previous: 'vice2',
value: 4,
lvl: 30,
category: 'unlockable',
boss: {
name: t('questVice3Boss'),
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,
},
},
};
export default QUEST_SERIES;

View 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;

View 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;