diff --git a/common/script/src/content/helpers.js b/common/script/src/content/helpers.js index 72e92657a7..bf6ffae010 100644 --- a/common/script/src/content/helpers.js +++ b/common/script/src/content/helpers.js @@ -123,6 +123,20 @@ export function setQuestDefaults(quests) { }); }; +export function setQuestSetDefaults(quests, mainDefaultsFunction, dropDefaultsFunction) { + each(quests, (quest, name) => { + let formattedName = formatForTranslator(name); + let mainDefaults = mainDefaultsFunction(formattedName); + + defaults(quest, mainDefaults); + + if (quest.drop && dropDefaultsFunction) { + let dropDefaults = dropDefaultsFunction(formattedName); + defaults(quest.drop, dropDefaults); + } + }); +}; + //---------------------------------------- // Generators //---------------------------------------- diff --git a/common/script/src/content/quests/gold-purchasable.js b/common/script/src/content/quests/gold-purchasable.js index bc330dee0a..f7bc925688 100644 --- a/common/script/src/content/quests/gold-purchasable.js +++ b/common/script/src/content/quests/gold-purchasable.js @@ -1,8 +1,7 @@ -import {each, defaults} from 'lodash'; import { translator as t, merge, - formatForTranslator + setQuestSetDefaults, } from '../helpers'; let dilatoryDistressSeries = { @@ -99,21 +98,19 @@ let dilatoryDistressSeries = { let goldPurchasableQuests = merge([dilatoryDistressSeries]); -each(goldPurchasableQuests, (quest, name) => { - let formattedName = formatForTranslator(name); - - let questDefaults = { - completion: t(`quest${formattedName}Completion`), +let questDefaults = (name) => { + return { + completion: t(`quest${name}Completion`), category: 'gold', - }; + } +}; - let dropDefaults = { - gold: 0 - }; +let dropDefaults = () => { + return { + gold: 0, + } +}; - defaults(quest, questDefaults); - - if (quest.drop) defaults(quest.drop, dropDefaults); -}); +setQuestSetDefaults(goldPurchasableQuests, questDefaults, dropDefaults); export default goldPurchasableQuests; diff --git a/common/script/src/content/quests/holiday.js b/common/script/src/content/quests/holiday.js index ecfacccba1..632167ace9 100644 --- a/common/script/src/content/quests/holiday.js +++ b/common/script/src/content/quests/holiday.js @@ -1,6 +1,8 @@ import {each, defaults} from 'lodash'; -import capitalize from 'lodash.capitalize'; -import {translator as t} from '../helpers'; +import { + translator as t, + setQuestSetDefaults, +} from '../helpers'; let holidayQuests = { evilsanta: { @@ -106,16 +108,14 @@ let holidayQuests = { }, }; -each(holidayQuests, (quest, name) => { - let capitalizedName = capitalize(name); - let questDefaults = { - completion: t(`quest${capitalizedName}Completion`), +let questDefaults = (name) => { + return { + completion: t(`quest${name}Completion`), canBuy: false, category: 'pet', - }; - - defaults(quest, questDefaults); -}); + } +}; +setQuestSetDefaults(holidayQuests, questDefaults); export default holidayQuests; diff --git a/common/script/src/content/quests/pet.js b/common/script/src/content/quests/pet.js index b038571987..865c6ab1c4 100644 --- a/common/script/src/content/quests/pet.js +++ b/common/script/src/content/quests/pet.js @@ -1,7 +1,7 @@ -import {each, defaults} from 'lodash'; -import capitalize from 'lodash.capitalize'; -import camelCase from 'lodash.camelcase'; -import {translator as t} from '../helpers'; +import { + translator as t, + setQuestSetDefaults, +} from '../helpers'; let petQuests = { gryphon: { @@ -328,38 +328,30 @@ let petQuests = { } }; -each(petQuests, (quest, name) => { - let camelName = camelCase(name); - let capitalizedName = capitalize(camelName); - - let questDefaults = { - completion: t(`quest${capitalizedName}Completion`), +let questDefaults = (name) => { + return { + completion: t(`quest${name}Completion`), category: 'pet', + } +}; + +let dropDefaults = (name) => { + let eggReward = { + type: 'eggs', + key: name, + text: t(`quest${name}Drop${name}Egg`) }; - 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`), + return { + items: [ + eggReward, + eggReward, + eggReward + ], + unlock: t(`quest${name}UnlockText`), }; +}; - defaults(quest, questDefaults); - - if (quest.drop) defaults(quest.drop, dropDefaults); -}); - +setQuestSetDefaults(petQuests, questDefaults, dropDefaults); export default petQuests; diff --git a/common/script/src/content/quests/unlockable.js b/common/script/src/content/quests/unlockable.js index b6d6cfdf42..cc4e106f15 100644 --- a/common/script/src/content/quests/unlockable.js +++ b/common/script/src/content/quests/unlockable.js @@ -1,8 +1,7 @@ -import {each, defaults} from 'lodash'; import { translator as t, merge, - formatForTranslator + setQuestSetDefaults, } from '../helpers'; let inviteFriends = { @@ -354,12 +353,10 @@ let unlockableQuests = merge([ goldenKnightSeries, ]); -each(unlockableQuests, (quest, name) => { - let questDefaults = { - category: 'unlockable', - }; +let questDefaults = () => { + return { category: 'unlockable' } +}; - defaults(quest, questDefaults); -}); +setQuestSetDefaults(unlockableQuests, questDefaults); export default unlockableQuests; diff --git a/common/script/src/content/quests/world.js b/common/script/src/content/quests/world.js index 075c6a3bc5..9dbcb39d6f 100644 --- a/common/script/src/content/quests/world.js +++ b/common/script/src/content/quests/world.js @@ -1,6 +1,7 @@ -import {each, defaults} from 'lodash'; -import capitalize from 'lodash.capitalize'; -import {translator as t} from '../helpers'; +import { + translator as t, + setQuestSetDefaults, +} from '../helpers'; let worldQuests = { dilatory: { @@ -155,16 +156,15 @@ let worldQuests = { }, }; -each(worldQuests, (quest, name) => { - let capitalizedName = capitalize(name); - let questDefaults = { - completion: t(`quest${capitalizedName}Completion`), +let questDefaults = (name) => { + return { + completion: t(`quest${name}Completion`), value: 0, canBuy: false, category: 'world', - }; + } +}; - defaults(quest, questDefaults); -}); +setQuestSetDefaults(worldQuests, questDefaults); export default worldQuests;