Split quests into separate files

This commit is contained in:
Blade Barringer
2015-09-20 20:46:35 -05:00
parent fc00821206
commit 66b575ce20
7 changed files with 1191 additions and 1461 deletions

View File

@@ -654,7 +654,7 @@ quests = require('../../dist/scripts/content/quests/index')
api.userCanOwnQuestCategories = quests.canOwnCategories api.userCanOwnQuestCategories = quests.canOwnCategories
api.quests = quests.scrolls api.quests = quests.allQuests
api.questsByLevel = quests.byLevel api.questsByLevel = quests.byLevel

View File

@@ -0,0 +1,128 @@
import {each, defaults, assign} from 'lodash';
import capitalize from 'lodash.capitalize';
import camelCase from 'lodash.camelCase';
import t from '../helpers/translator';
let dilatoryDistressSeries = {
dilatoryDistress1: {
goldValue: 200,
collect: {
fireCoral: {
text: t('questDilatoryDistress1CollectFireCoral'),
count: 25
},
blueFins: {
text: t('questDilatoryDistress1CollectBlueFins'),
count: 25
}
},
drop: {
items: [
{
type: 'gear',
key: 'armor_special_finnedOceanicArmor',
text: t('questDilatoryDistress1DropArmor')
}
],
exp: 75
}
},
dilatoryDistress2: {
previous: 'dilatoryDistress1',
goldValue: 300,
boss: {
hp: 500,
rage: {
title: t('questDilatoryDistress2RageTitle'),
description: t('questDilatoryDistress2RageDescription'),
value: 50,
healing: .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')
}
],
exp: 500
}
},
dilatoryDistress3: {
previous: 'dilatoryDistress2',
goldValue: 400,
boss: {
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')
}
],
exp: 650
},
},
};
let goldPurchasableQuests = { };
assign(goldPurchasableQuests, dilatoryDistressSeries);
each(goldPurchasableQuests, (quest, name) => {
let camelName = camelCase(name);
let capitalizedName = capitalize(camelName);
let questDefaults = {
text: t(`quest${capitalizedName}Text`),
notes: t(`quest${capitalizedName}Notes`),
completion: t(`quest${capitalizedName}Completion`),
category: 'gold',
value: 4,
};
let bossDefaults = {
name: t(`quest${capitalizedName}Boss`),
};
let dropDefaults = {
gold: 0
};
defaults(quest, questDefaults);
if (quest.boss) defaults(quest.boss, bossDefaults);
if (quest.drop) defaults(quest.drop, dropDefaults);
});
export default goldPurchasableQuests;

View File

@@ -0,0 +1,124 @@
import {each, defaults} from 'lodash';
import capitalize from 'lodash.capitalize';
import t from '../helpers/translator';
let holidayQuests = {
evilsanta: {
boss: {
name: t('questEvilSantaBoss'),
hp: 300,
str: 1
},
drop: {
items: [
{
type: 'mounts',
key: 'BearCub-Polar',
text: t('questEvilSantaDropBearCubPolarMount')
}
],
gp: 20,
exp: 100
}
},
evilsanta2: {
previous: 'evilsanta',
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
}
},
egg: {
text: t('questEggHuntText'),
notes: t('questEggHuntNotes'),
completion: t('questEggHuntCompletion'),
value: 1,
collect: {
plainEgg: {
text: t('questEggHuntCollectPlainEgg'),
count: 100
}
},
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
}
},
};
each(holidayQuests, (quest, name) => {
let capitalizedName = capitalize(name);
let questDefaults = {
text: t(`quest${capitalizedName}Text`),
notes: t(`quest${capitalizedName}Notes`),
completion: t(`quest${capitalizedName}Completion`),
canBuy: false,
value: 4,
category: 'pet',
};
defaults(quest, questDefaults);
});
export default holidayQuests;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,373 @@
import {each, defaults} from 'lodash';
import capitalize from 'lodash.capitalize';
import camelCase from 'lodash.camelCase';
import t from '../helpers/translator';
let petQuests = {
gryphon: {
boss: {
hp: 300,
str: 1.5,
},
drop: {
gp: 25,
exp: 125,
}
},
hedgehog: {
boss: {
hp: 400,
str: 1.25
},
drop: {
gp: 30,
exp: 125,
}
},
ghost_stag: {
boss: {
hp: 1200,
str: 2.5
},
drop: {
items: [
{
type: 'eggs',
key: 'Deer',
text: t('questGhostStagDropDeerEgg')
}, {
type: 'eggs',
key: 'Deer',
text: t('questGhostStagDropDeerEgg')
}, {
type: 'eggs',
key: 'Deer',
text: t('questGhostStagDropDeerEgg')
}
],
gp: 80,
exp: 800,
}
},
rat: {
boss: {
hp: 1200,
str: 2.5
},
drop: {
gp: 80,
exp: 800,
}
},
octopus: {
boss: {
hp: 1200,
str: 2.5
},
drop: {
gp: 80,
exp: 800,
}
},
dilatory_derby: {
text: t('questSeahorseText'),
notes: t('questSeahorseNotes'),
completion: t('questSeahorseCompletion'),
boss: {
name: t('questSeahorseBoss'),
hp: 300,
str: 1.5
},
drop: {
items: [
{
type: 'eggs',
key: 'Seahorse',
text: t('questSeahorseDropSeahorseEgg')
}, {
type: 'eggs',
key: 'Seahorse',
text: t('questSeahorseDropSeahorseEgg')
}, {
type: 'eggs',
key: 'Seahorse',
text: t('questSeahorseDropSeahorseEgg')
}
],
gp: 25,
exp: 125,
unlock: t('questSeahorseUnlockText')
}
},
harpy: {
boss: {
hp: 600,
str: 1.5
},
drop: {
items: [
{
type: 'eggs',
key: 'Parrot',
text: t('questHarpyDropParrotEgg')
}, {
type: 'eggs',
key: 'Parrot',
text: t('questHarpyDropParrotEgg')
}, {
type: 'eggs',
key: 'Parrot',
text: t('questHarpyDropParrotEgg')
}
],
gp: 43,
exp: 350,
}
},
rooster: {
boss: {
hp: 300,
str: 1.5
},
drop: {
gp: 25,
exp: 125,
}
},
spider: {
boss: {
hp: 400,
str: 1.5
},
drop: {
gp: 31,
exp: 200,
}
},
owl: {
boss: {
hp: 500,
str: 1.5
},
drop: {
gp: 37,
exp: 275,
}
},
penguin: {
boss: {
hp: 400,
str: 1.5
},
drop: {
gp: 31,
exp: 200,
}
},
trex: {
text: t('questTRexText'),
notes: t('questTRexNotes'),
completion: t('questTRexCompletion'),
boss: {
name: t('questTRexBoss'),
hp: 800,
str: 2
},
drop: {
items: [
{
type: 'eggs',
key: 'TRex',
text: t('questTRexDropTRexEgg')
}, {
type: 'eggs',
key: 'TRex',
text: t('questTRexDropTRexEgg')
}, {
type: 'eggs',
key: 'TRex',
text: t('questTRexDropTRexEgg')
}
],
gp: 55,
exp: 500,
unlock: t('questTRexUnlockText')
}
},
trex_undead: {
text: t('questTRexUndeadText'),
notes: t('questTRexUndeadNotes'),
completion: t('questTRexUndeadCompletion'),
boss: {
name: t('questTRexUndeadBoss'),
hp: 500,
str: 2,
rage: {
title: t('questTRexUndeadRageTitle'),
description: t('questTRexUndeadRageDescription'),
value: 50,
healing: .3,
effect: t('questTRexUndeadRageEffect')
}
},
drop: {
items: [
{
type: 'eggs',
key: 'TRex',
text: t('questTRexDropTRexEgg')
}, {
type: 'eggs',
key: 'TRex',
text: t('questTRexDropTRexEgg')
}, {
type: 'eggs',
key: 'TRex',
text: t('questTRexDropTRexEgg')
}
],
gp: 55,
exp: 500,
unlock: t('questTRexUnlockText')
}
},
rock: {
boss: {
hp: 400,
str: 1.5
},
drop: {
gp: 31,
exp: 200,
}
},
bunny: {
boss: {
hp: 300,
str: 1.5
},
drop: {
gp: 25,
exp: 125,
}
},
slime: {
boss: {
hp: 400,
str: 1.5
},
drop: {
gp: 31,
exp: 200,
}
},
sheep: {
boss: {
hp: 300,
str: 1.5
},
drop: {
gp: 25,
exp: 125,
}
},
kraken: {
boss: {
hp: 800,
str: 2
},
drop: {
items: [
{
type: 'eggs',
key: 'Cuttlefish',
text: t('questKrakenDropCuttlefishEgg')
}, {
type: 'eggs',
key: 'Cuttlefish',
text: t('questKrakenDropCuttlefishEgg')
}, {
type: 'eggs',
key: 'Cuttlefish',
text: t('questKrakenDropCuttlefishEgg')
}
],
gp: 55,
exp: 500,
}
},
whale: {
boss: {
hp: 500,
str: 1.5
},
drop: {
gp: 37,
exp: 275,
}
},
cheetah: {
boss: {
hp: 600,
str: 1.5
},
drop: {
gp: 43,
exp: 350,
}
},
horse: {
boss: {
hp: 500,
str: 1.5
},
drop: {
gp: 37,
exp: 275,
}
}
};
each(petQuests, (quest, name) => {
let camelName = camelCase(name);
let capitalizedName = capitalize(camelName);
let questDefaults = {
text: t(`quest${capitalizedName}Text`),
notes: t(`quest${capitalizedName}Notes`),
completion: t(`quest${capitalizedName}Completion`),
category: 'pet',
value: 4,
};
let bossDefaults = {
name: t(`quest${capitalizedName}Boss`),
};
let dropDefaults = {
items: [
{
type: 'eggs',
key: capitalizedName,
text: t(`quest${capitalizedName}Drop${capitalizedName}Egg`)
}, {
type: 'eggs',
key: capitalizedName,
text: t(`quest${capitalizedName}Drop${capitalizedName}Egg`)
}, {
type: 'eggs',
key: capitalizedName,
text: t(`quest${capitalizedName}Drop${capitalizedName}Egg`)
},
],
unlock: t(`quest${capitalizedName}UnlockText`),
};
defaults(quest, questDefaults);
if (quest.boss) defaults(quest.boss, bossDefaults);
if (quest.drop) defaults(quest.drop, dropDefaults);
});
export default petQuests;

View File

@@ -0,0 +1,375 @@
import {each, defaults, assign} from 'lodash';
import capitalize from 'lodash.capitalize';
import camelCase from 'lodash.camelCase';
import t from '../helpers/translator';
let inviteFriends = {
basilist: {
unlockCondition: {
condition: 'party invite',
text: t('inviteFriends')
},
boss: {
hp: 100,
str: 0.5
},
drop: {
gp: 8,
exp: 42
}
},
};
let viceSeries = {
vice1: {
lvl: 30,
boss: {
hp: 750,
str: 1.5
},
drop: {
items: [
{
type: 'quests',
key: 'vice2',
text: t('questVice1DropVice2Quest')
}
],
gp: 20,
exp: 100
}
},
vice2: {
lvl: 30,
previous: 'vice1',
collect: {
lightCrystal: {
text: t('questVice2CollectLightCrystal'),
count: 45
}
},
drop: {
items: [
{
type: 'quests',
key: 'vice3',
text: t('questVice2DropVice3Quest')
}
],
gp: 20,
exp: 75
}
},
vice3: {
completion: t('questVice3Completion'),
previous: 'vice2',
lvl: 30,
boss: {
hp: 1500,
str: 3
},
drop: {
items: [
{
type: 'gear',
key: 'weapon_special_2',
text: t('questVice3DropWeaponSpecial2')
}, {
type: 'eggs',
key: 'Dragon',
text: t('questVice3DropDragonEgg')
}, {
type: 'eggs',
key: 'Dragon',
text: t('questVice3DropDragonEgg')
}, {
type: 'hatchingPotions',
key: 'Shade',
text: t('questVice3DropShadeHatchingPotion')
}, {
type: 'hatchingPotions',
key: 'Shade',
text: t('questVice3DropShadeHatchingPotion')
}
],
gp: 100,
exp: 1000
}
},
};
let atomSeries = {
atom1: {
lvl: 15,
collect: {
soapBars: {
text: t('questAtom1CollectSoapBars'),
count: 20
}
},
drop: {
items: [
{
type: 'quests',
key: 'atom2',
text: t('questAtom1Drop')
}
],
gp: 7,
exp: 50
}
},
atom2: {
previous: 'atom1',
lvl: 15,
boss: {
hp: 300,
str: 1
},
drop: {
items: [
{
type: 'quests',
key: 'atom3',
text: t('questAtom2Drop')
}
],
gp: 20,
exp: 100
}
},
atom3: {
previous: 'atom2',
completion: t('questAtom3Completion'),
lvl: 15,
boss: {
hp: 800,
str: 1.5
},
drop: {
items: [
{
type: 'gear',
key: 'head_special_2',
text: t('headSpecial2Text')
}, {
type: 'hatchingPotions',
key: 'Base',
text: t('questAtom3DropPotion')
}, {
type: 'hatchingPotions',
key: 'Base',
text: t('questAtom3DropPotion')
}
],
gp: 25,
exp: 125
}
},
};
let moonstoneSeries = {
moonstone1: {
lvl: 60,
collect: {
moonstone: {
text: t('questMoonstone1CollectMoonstone'),
count: 500
}
},
drop: {
items: [
{
type: 'quests',
key: 'moonstone2',
text: t('questMoonstone1DropMoonstone2Quest')
}
],
gp: 50,
exp: 100
}
},
moonstone2: {
lvl: 60,
previous: 'moonstone1',
boss: {
hp: 1500,
str: 3
},
drop: {
items: [
{
type: 'quests',
key: 'moonstone3',
text: t('questMoonstone2DropMoonstone3Quest')
}
],
gp: 500,
exp: 1000
}
},
moonstone3: {
completion: t('questMoonstone3Completion'),
previous: 'moonstone2',
lvl: 60,
boss: {
hp: 2000,
str: 3.5
},
drop: {
items: [
{
type: 'gear',
key: 'armor_special_2',
text: t('armorSpecial2Text')
}, {
type: 'food',
key: 'RottenMeat',
text: t('questMoonstone3DropRottenMeat')
}, {
type: 'food',
key: 'RottenMeat',
text: t('questMoonstone3DropRottenMeat')
}, {
type: 'food',
key: 'RottenMeat',
text: t('questMoonstone3DropRottenMeat')
}, {
type: 'food',
key: 'RottenMeat',
text: t('questMoonstone3DropRottenMeat')
}, {
type: 'food',
key: 'RottenMeat',
text: t('questMoonstone3DropRottenMeat')
}, {
type: 'hatchingPotions',
key: 'Zombie',
text: t('questMoonstone3DropZombiePotion')
}, {
type: 'hatchingPotions',
key: 'Zombie',
text: t('questMoonstone3DropZombiePotion')
}, {
type: 'hatchingPotions',
key: 'Zombie',
text: t('questMoonstone3DropZombiePotion')
}
],
gp: 900,
exp: 1500
}
},
};
let goldenKnightSeries = {
goldenknight1: {
lvl: 40,
collect: {
testimony: {
text: t('questGoldenknight1CollectTestimony'),
count: 300
}
},
drop: {
items: [
{
type: 'quests',
key: 'goldenknight2',
text: t('questGoldenknight1DropGoldenknight2Quest')
}
],
gp: 15,
exp: 120
}
},
goldenknight2: {
previous: 'goldenknight1',
lvl: 40,
boss: {
hp: 1000,
str: 3
},
drop: {
items: [
{
type: 'quests',
key: 'goldenknight3',
text: t('questGoldenknight2DropGoldenknight3Quest')
}
],
gp: 75,
exp: 750
}
},
goldenknight3: {
completion: t('questGoldenknight3Completion'),
previous: 'goldenknight2',
lvl: 40,
boss: {
hp: 1700,
str: 3.5
},
drop: {
items: [
{
type: 'food',
key: 'Honey',
text: t('questGoldenknight3DropHoney')
}, {
type: 'food',
key: 'Honey',
text: t('questGoldenknight3DropHoney')
}, {
type: 'food',
key: 'Honey',
text: t('questGoldenknight3DropHoney')
}, {
type: 'hatchingPotions',
key: 'Golden',
text: t('questGoldenknight3DropGoldenPotion')
}, {
type: 'hatchingPotions',
key: 'Golden',
text: t('questGoldenknight3DropGoldenPotion')
}, {
type: 'gear',
key: 'shield_special_goldenknight',
text: t('questGoldenknight3DropWeapon')
}
],
gp: 900,
exp: 1500
}
},
};
let unlockableQuests = { };
assign(unlockableQuests, inviteFriends);
assign(unlockableQuests, atomSeries);
assign(unlockableQuests, viceSeries);
assign(unlockableQuests, moonstoneSeries);
assign(unlockableQuests, goldenKnightSeries);
each(unlockableQuests, (quest, name) => {
let camelName = camelCase(name);
let capitalizedName = capitalize(camelName);
let questDefaults = {
text: t(`quest${capitalizedName}Text`),
notes: t(`quest${capitalizedName}Notes`),
category: 'unlockable',
value: 4,
};
let bossDefaults = {
name: t(`quest${capitalizedName}Boss`),
};
defaults(quest, questDefaults);
if (quest.boss) defaults(quest.boss, bossDefaults);
});
export default unlockableQuests;

View File

@@ -0,0 +1,172 @@
import {each, defaults} from 'lodash';
import capitalize from 'lodash.capitalize';
import t from '../helpers/translator';
let worldQuests = {
dilatory: {
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
}
},
stressbeast: {
completionChat: t('questStressbeastCompletionChat'),
boss: {
name: t('questStressbeastBoss'),
hp: 2750000,
str: 1,
def: 1,
rage: {
title: t('questStressbeastBossRageTitle'),
description: t('questStressbeastBossRageDescription'),
value: 1450000,
healing: .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
}
},
};
each(worldQuests, (quest, name) => {
let capitalizedName = capitalize(name);
let questDefaults = {
text: t(`quest${capitalizedName}Text`),
notes: t(`quest${capitalizedName}Notes`),
completion: t(`quest${capitalizedName}Completion`),
value: 0,
canBuy: false,
category: 'world',
};
defaults(quest, questDefaults);
});
export default worldQuests;