mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 22:27:26 +01:00
Merge remote-tracking branch 'CuriousMagpie/quest-refactors' into develop
This commit is contained in:
@@ -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
44
website/common/script/content/quests/generic.js
Normal file
44
website/common/script/content/quests/generic.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/quests/masterclasser.js
Normal file
731
website/common/script/content/quests/masterclasser.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/quests/pets.js
Normal file
1652
website/common/script/content/quests/pets.js
Normal file
File diff suppressed because it is too large
Load Diff
339
website/common/script/content/quests/potions.js
Normal file
339
website/common/script/content/quests/potions.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;
|
||||||
226
website/common/script/content/quests/seasonal.js
Normal file
226
website/common/script/content/quests/seasonal.js
Normal 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;
|
||||||
504
website/common/script/content/quests/series.js
Normal file
504
website/common/script/content/quests/series.js
Normal 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;
|
||||||
120
website/common/script/content/quests/timeTravel.js
Normal file
120
website/common/script/content/quests/timeTravel.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/quests/world.js
Normal file
418
website/common/script/content/quests/world.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;
|
||||||
Reference in New Issue
Block a user