habitica/website/common/script/content/hatching-potions.js

615 lines
15 KiB
JavaScript
Raw Normal View History

import assign from 'lodash/assign';
import defaults from 'lodash/defaults';
import each from 'lodash/each';
import moment from 'moment';
import t from './translation';
import { EVENTS } from './constants';
function hasQuestAchievementFunction (key) {
return user => user.achievements.quests && user.achievements.quests[key] > 0;
}
2019-10-08 14:57:10 +00:00
const drops = {
Base: {
value: 2,
text: t('hatchingPotionBase'),
},
White: {
value: 2,
text: t('hatchingPotionWhite'),
},
Desert: {
value: 2,
text: t('hatchingPotionDesert'),
},
Red: {
value: 3,
text: t('hatchingPotionRed'),
},
Shade: {
value: 3,
text: t('hatchingPotionShade'),
},
Skeleton: {
value: 3,
text: t('hatchingPotionSkeleton'),
},
Zombie: {
value: 4,
text: t('hatchingPotionZombie'),
},
CottonCandyPink: {
value: 4,
text: t('hatchingPotionCottonCandyPink'),
},
CottonCandyBlue: {
value: 4,
text: t('hatchingPotionCottonCandyBlue'),
},
Golden: {
value: 5,
text: t('hatchingPotionGolden'),
},
};
2019-10-08 14:57:10 +00:00
const premium = {
RoyalPurple: {
value: 2,
text: t('hatchingPotionRoyalPurple'),
limited: true,
},
Cupid: {
value: 2,
text: t('hatchingPotionCupid'),
limited: true,
2020-02-07 20:16:25 +00:00
canBuy () {
return moment().isBefore('2022-02-28T20:00-05:00');
2020-02-07 20:16:25 +00:00
},
},
Shimmer: {
value: 2,
text: t('hatchingPotionShimmer'),
limited: true,
2022-03-29 17:15:01 +00:00
event: EVENTS.spring2022,
2020-03-17 20:35:38 +00:00
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndMarch'),
2022-03-29 17:15:01 +00:00
previousDate: t('marchYYYY', { year: 2020 }),
2020-03-17 20:35:38 +00:00
}),
canBuy () {
2022-03-29 17:15:01 +00:00
return moment().isBefore(EVENTS.spring2022.end);
2020-03-17 20:35:38 +00:00
},
},
Fairy: {
value: 2,
text: t('hatchingPotionFairy'),
limited: true,
2021-05-11 21:07:44 +00:00
event: EVENTS.potions202105,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndMay'),
2021-05-11 21:07:44 +00:00
previousDate: t('mayYYYY', { year: 2020 }),
}),
canBuy () {
2021-05-11 21:07:44 +00:00
return moment().isBefore(EVENTS.potions202105.end);
},
},
Floral: {
value: 2,
text: t('hatchingPotionFloral'),
limited: true,
2021-05-11 21:07:44 +00:00
event: EVENTS.potions202105,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndMay'),
previousDate: t('mayYYYY', { year: 2019 }),
2021-05-11 21:07:44 +00:00
}),
canBuy () {
return moment().isBefore(EVENTS.potions202105.end);
},
},
2017-06-29 21:21:20 +00:00
Aquatic: {
value: 2,
text: t('hatchingPotionAquatic'),
limited: true,
2020-06-19 19:55:49 +00:00
event: EVENTS.summer2020,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJuly'),
previousDate: t('juneYYYY', { year: 2017 }),
}),
canBuy () {
return moment().isBefore('2020-08-02');
},
2017-06-29 21:21:20 +00:00
},
2017-08-08 20:48:59 +00:00
Ember: {
value: 2,
text: t('hatchingPotionEmber'),
limited: true,
event: EVENTS.potions202111,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndNovember'),
previousDate: t('novemberYYYY', { year: 2019 }),
}),
canBuy () {
return moment().isBefore(EVENTS.potions202111.end);
},
2017-08-08 20:48:59 +00:00
},
Thunderstorm: {
value: 2,
text: t('hatchingPotionThunderstorm'),
limited: true,
event: EVENTS.potions202108,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndAugust'),
previousDate: t('novemberYYYY', { year: 2019 }),
}),
canBuy () {
return moment().isBetween(EVENTS.potions202108.start, EVENTS.potions202108.end);
},
},
Spooky: {
value: 2,
text: t('hatchingPotionSpooky'),
limited: true,
2021-09-21 21:16:52 +00:00
event: EVENTS.fall2021,
2019-09-26 19:47:26 +00:00
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndOctober'),
2021-09-21 21:16:52 +00:00
previousDate: t('septemberYYYY', { year: 2019 }),
2019-09-26 19:47:26 +00:00
}),
2021-09-21 21:16:52 +00:00
canBuy () {
return moment().isBefore(EVENTS.fall2021.end);
},
},
Ghost: {
Login Incentives (#8230) * feat(incentives): login bennies WIP * feat(content): incentive prize content WIP * fix(content): placeholders pass tests * WIP(content): Bard instrument placeholder * feat(content): Incentives build * chore(sprites): compile and fix some strings * WIP(incentives): quests and backgrounds * fix(quests): correct buy/launch handling * [WIP] Incentives rewarding (#8226) * Added login incentive rewards * Updated incentive rewards * Added incentive modal and updated notification structure * Added analytics to sleeping * Added login incentives to user analytics * Fixed unit tests and ensured that prizes are incremented and not replaced * Updated style of daily login incentive modal * Added rewards modal * Added translations * Added loigin incentive ui elements to profile * Updated login incentives structure and abstracted to common.content * Added dynamic display for login incentives on profile * Added purple potion image * Updated daily login modal * Fixed progress calculation * Added bard gear * Updated login incentive rewards * Fixed styles and text * Added multiple read for notifications * Fixed lint issues * Fixed styles and added 50 limit * Updated quest keys * Added login incentives reward page * Fixed tests * Fixed linting and tests * Read named notifications route. Add image for backgrounds * Fixed style issues and added tranlsations to login incentive notification * Hided abiltiy to purchase incentive backgrounds and added message to detail how to unlock * Updated awarded message * Fixed text and updated progress counter to display better * Fixed purple potion reward text * Fixed check in backgrouns reward text * fix(quest): pass tests * Added display of multiple rewards * Updated modal styles * Fixed neagtive 50 issue * Remvoed total count from daily login incentives modal * Fixed magic paw display * fix(awards): give bunnies again * WIP(incentives): more progress on BG shop * fix(incentives): actually award backgrounds * fix(incentives): more BG fixy * fix(backgrounds): don't gem-buy checkin bgs * Added dust bunny notification * fix(incentives): don't redisplay bunny award * chore(news): Bailey and different promo sprite
2016-11-24 01:34:09 +00:00
value: 2,
text: t('hatchingPotionGhost'),
Login Incentives (#8230) * feat(incentives): login bennies WIP * feat(content): incentive prize content WIP * fix(content): placeholders pass tests * WIP(content): Bard instrument placeholder * feat(content): Incentives build * chore(sprites): compile and fix some strings * WIP(incentives): quests and backgrounds * fix(quests): correct buy/launch handling * [WIP] Incentives rewarding (#8226) * Added login incentive rewards * Updated incentive rewards * Added incentive modal and updated notification structure * Added analytics to sleeping * Added login incentives to user analytics * Fixed unit tests and ensured that prizes are incremented and not replaced * Updated style of daily login incentive modal * Added rewards modal * Added translations * Added loigin incentive ui elements to profile * Updated login incentives structure and abstracted to common.content * Added dynamic display for login incentives on profile * Added purple potion image * Updated daily login modal * Fixed progress calculation * Added bard gear * Updated login incentive rewards * Fixed styles and text * Added multiple read for notifications * Fixed lint issues * Fixed styles and added 50 limit * Updated quest keys * Added login incentives reward page * Fixed tests * Fixed linting and tests * Read named notifications route. Add image for backgrounds * Fixed style issues and added tranlsations to login incentive notification * Hided abiltiy to purchase incentive backgrounds and added message to detail how to unlock * Updated awarded message * Fixed text and updated progress counter to display better * Fixed purple potion reward text * Fixed check in backgrouns reward text * fix(quest): pass tests * Added display of multiple rewards * Updated modal styles * Fixed neagtive 50 issue * Remvoed total count from daily login incentives modal * Fixed magic paw display * fix(awards): give bunnies again * WIP(incentives): more progress on BG shop * fix(incentives): actually award backgrounds * fix(incentives): more BG fixy * fix(backgrounds): don't gem-buy checkin bgs * Added dust bunny notification * fix(incentives): don't redisplay bunny award * chore(news): Bailey and different promo sprite
2016-11-24 01:34:09 +00:00
limited: true,
event: EVENTS.fall2020,
canBuy () {
return moment().isBefore('2020-11-02');
},
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndOctober'),
previousDate: t('septemberYYYY', { year: 2018 }),
}),
Login Incentives (#8230) * feat(incentives): login bennies WIP * feat(content): incentive prize content WIP * fix(content): placeholders pass tests * WIP(content): Bard instrument placeholder * feat(content): Incentives build * chore(sprites): compile and fix some strings * WIP(incentives): quests and backgrounds * fix(quests): correct buy/launch handling * [WIP] Incentives rewarding (#8226) * Added login incentive rewards * Updated incentive rewards * Added incentive modal and updated notification structure * Added analytics to sleeping * Added login incentives to user analytics * Fixed unit tests and ensured that prizes are incremented and not replaced * Updated style of daily login incentive modal * Added rewards modal * Added translations * Added loigin incentive ui elements to profile * Updated login incentives structure and abstracted to common.content * Added dynamic display for login incentives on profile * Added purple potion image * Updated daily login modal * Fixed progress calculation * Added bard gear * Updated login incentive rewards * Fixed styles and text * Added multiple read for notifications * Fixed lint issues * Fixed styles and added 50 limit * Updated quest keys * Added login incentives reward page * Fixed tests * Fixed linting and tests * Read named notifications route. Add image for backgrounds * Fixed style issues and added tranlsations to login incentive notification * Hided abiltiy to purchase incentive backgrounds and added message to detail how to unlock * Updated awarded message * Fixed text and updated progress counter to display better * Fixed purple potion reward text * Fixed check in backgrouns reward text * fix(quest): pass tests * Added display of multiple rewards * Updated modal styles * Fixed neagtive 50 issue * Remvoed total count from daily login incentives modal * Fixed magic paw display * fix(awards): give bunnies again * WIP(incentives): more progress on BG shop * fix(incentives): actually award backgrounds * fix(incentives): more BG fixy * fix(backgrounds): don't gem-buy checkin bgs * Added dust bunny notification * fix(incentives): don't redisplay bunny award * chore(news): Bailey and different promo sprite
2016-11-24 01:34:09 +00:00
},
Holly: {
value: 2,
text: t('hatchingPotionHolly'),
limited: true,
2019-12-19 22:54:27 +00:00
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('januaryYYYY', { year: 2020 }),
2019-12-19 22:54:27 +00:00
}),
event: EVENTS.winter2022,
canBuy () {
return moment().isBetween(EVENTS.winter2022.start, EVENTS.winter2022.end);
},
},
Peppermint: {
2017-02-02 17:29:33 +00:00
value: 2,
text: t('hatchingPotionPeppermint'),
2017-02-02 17:29:33 +00:00
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('januaryYYYY', { year: 2018 }),
}),
event: EVENTS.winter2022,
canBuy () {
return moment().isBetween(EVENTS.winter2022.start, EVENTS.winter2022.end);
},
2017-02-02 17:29:33 +00:00
},
StarryNight: {
value: 2,
text: t('hatchingPotionStarryNight'),
limited: true,
2019-12-19 22:54:27 +00:00
canBuy () {
return moment().isBetween('2019-12-19', '2020-02-02');
},
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('decemberYYYY', { year: 2017 }),
}),
},
2018-03-13 20:54:27 +00:00
Rainbow: {
value: 2,
text: t('hatchingPotionRainbow'),
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndMarch'),
previousDate: t('marchYYYY', { year: 2019 }),
}),
event: EVENTS.spring2021,
canBuy () {
return moment().isBefore(EVENTS.spring2021.end);
},
2018-03-13 20:54:27 +00:00
},
Glass: {
value: 2,
text: t('hatchingPotionGlass'),
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJuly'),
2021-06-22 23:49:32 +00:00
previousDate: t('juneYYYY', { year: 2019 }),
}),
2021-06-22 23:49:32 +00:00
event: EVENTS.summer2021,
canBuy () {
2021-06-23 00:18:21 +00:00
return moment().isBetween(EVENTS.summer2021.start, EVENTS.summer2021.end);
2021-06-22 23:49:32 +00:00
},
},
Glow: {
value: 2,
text: t('hatchingPotionGlow'),
limited: true,
2021-09-21 21:16:52 +00:00
event: EVENTS.fall2021,
2019-09-26 19:47:26 +00:00
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndOctober'),
2021-09-21 21:16:52 +00:00
previousDate: t('septemberYYYY', { year: 2019 }),
2019-09-26 19:47:26 +00:00
}),
2021-09-21 21:16:52 +00:00
canBuy () {
return moment().isBefore(EVENTS.fall2021.end);
},
},
2018-11-20 20:55:45 +00:00
Frost: {
value: 2,
text: t('hatchingPotionFrost'),
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndNovember'),
previousDate: t('novemberYYYY', { year: 2018 }),
}),
canBuy () {
return moment().isBefore('2020-12-02');
},
2018-11-20 20:55:45 +00:00
},
2018-12-20 15:40:54 +00:00
IcySnow: {
value: 2,
text: t('hatchingPotionIcySnow'),
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('decemberYYYY', { year: 2018 }),
}),
event: EVENTS.winter2021,
canBuy () {
return moment().isBetween('2020-12-22T08:00-04:00', '2021-01-31T20:00-04:00');
},
2018-12-20 15:40:54 +00:00
},
RoseQuartz: {
value: 2,
text: t('hatchingPotionRoseQuartz'),
limited: true,
2020-02-07 20:16:25 +00:00
canBuy () {
return moment().isBefore('2022-02-28T20:00-05:00');
2020-02-07 20:16:25 +00:00
},
},
Celestial: {
value: 2,
text: t('hatchingPotionCelestial'),
limited: true,
2022-03-29 17:15:01 +00:00
event: EVENTS.spring2022,
2020-03-17 20:35:38 +00:00
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndMarch'),
2022-03-29 17:15:01 +00:00
previousDate: t('marchYYYY', { year: 2020 }),
2020-03-17 20:35:38 +00:00
}),
canBuy () {
2022-03-29 17:15:01 +00:00
return moment().isBefore(EVENTS.spring2022.end);
2020-03-17 20:35:38 +00:00
},
2019-05-14 21:33:42 +00:00
},
Sunshine: {
value: 2,
text: t('hatchingPotionSunshine'),
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndMay'),
previousDate: t('mayYYYY', { year: 2019 }),
}),
canBuy () {
return moment().isBefore('2020-06-02');
},
},
Bronze: {
value: 2,
text: t('hatchingPotionBronze'),
limited: true,
canBuy: hasQuestAchievementFunction('bronze'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
Watery: {
value: 2,
text: t('hatchingPotionWatery'),
limited: true,
2020-06-19 19:55:49 +00:00
event: EVENTS.summer2020,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJuly'),
previousDate: t('juneYYYY', { year: 2019 }),
}),
canBuy () {
return moment().isBefore('2020-08-02');
},
},
Silver: {
value: 2,
text: t('hatchingPotionSilver'),
limited: true,
canBuy: hasQuestAchievementFunction('silver'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
2019-09-26 19:47:26 +00:00
Shadow: {
value: 2,
text: t('hatchingPotionShadow'),
limited: true,
event: EVENTS.fall2020,
canBuy () {
return moment().isBefore('2020-11-02');
},
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndOctober'),
previousDate: t('septemberYYYY', { year: 2019 }),
}),
2019-09-26 19:47:26 +00:00
},
Amber: {
value: 2,
text: t('hatchingPotionAmber'),
limited: true,
canBuy: hasQuestAchievementFunction('amber'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
2019-12-19 22:54:27 +00:00
Aurora: {
value: 2,
text: t('hatchingPotionAurora'),
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('decemberYYYY', { year: 2019 }),
}),
event: EVENTS.winter2021,
2019-12-19 22:54:27 +00:00
canBuy () {
return moment().isBetween('2020-12-22T08:00-04:00', '2021-01-31T20:00-04:00');
2019-12-19 22:54:27 +00:00
},
},
2020-02-13 00:30:54 +00:00
Ruby: {
value: 2,
text: t('hatchingPotionRuby'),
limited: true,
canBuy: hasQuestAchievementFunction('ruby'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
2020-03-17 20:35:38 +00:00
BirchBark: {
value: 2,
text: t('hatchingPotionBirchBark'),
limited: true,
event: EVENTS.spring2021,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndMarch'),
previousDate: t('marchYYYY', { year: 2020 }),
}),
2020-03-17 20:35:38 +00:00
canBuy () {
return moment().isBefore(EVENTS.spring2021.end);
2020-03-17 20:35:38 +00:00
},
},
Fluorite: {
value: 2,
text: t('hatchingPotionFluorite'),
limited: true,
canBuy: hasQuestAchievementFunction('fluorite'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
SandSculpture: {
value: 2,
text: t('hatchingPotionSandSculpture'),
limited: true,
2021-06-22 23:49:32 +00:00
event: EVENTS.summer2021,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJuly'),
previousDate: t('juneYYYY', { year: 2020 }),
}),
canBuy () {
2021-06-23 00:18:21 +00:00
return moment().isBetween(EVENTS.summer2021.start, EVENTS.summer2021.end);
},
},
2020-08-25 21:04:28 +00:00
Windup: {
value: 2,
text: t('hatchingPotionWindup'),
limited: true,
canBuy: hasQuestAchievementFunction('windup'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
2020-09-14 21:05:54 +00:00
Turquoise: {
value: 2,
text: t('hatchingPotionTurquoise'),
limited: true,
canBuy: hasQuestAchievementFunction('turquoise'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
Vampire: {
value: 2,
text: t('hatchingPotionVampire'),
limited: true,
2021-09-21 21:16:52 +00:00
event: EVENTS.fall2021,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndOctober'),
previousDate: t('septemberYYYY', { year: 2020 }),
}),
canBuy () {
2021-09-21 21:16:52 +00:00
return moment().isBefore(EVENTS.fall2021.end);
},
},
AutumnLeaf: {
value: 2,
text: t('hatchingPotionAutumnLeaf'),
limited: true,
event: EVENTS.potions202111,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndNovember'),
previousDate: t('novemberYYYY', { year: 2020 }),
}),
canBuy () {
return moment().isBefore(EVENTS.potions202111.end);
},
},
BlackPearl: {
value: 2,
text: t('hatchingPotionBlackPearl'),
limited: true,
canBuy: hasQuestAchievementFunction('blackPearl'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
StainedGlass: {
value: 2,
text: t('hatchingPotionStainedGlass'),
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('januaryYYYY', { year: 2021 }),
}),
event: EVENTS.winter2022,
canBuy () {
return moment().isBetween(EVENTS.winter2022.start, EVENTS.winter2022.end);
},
},
PolkaDot: {
value: 2,
text: t('hatchingPotionPolkaDot'),
limited: true,
2022-03-29 17:15:01 +00:00
event: EVENTS.spring2022,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndMarch'),
previousDate: t('marchYYYY', { year: 2021 }),
}),
canBuy () {
2022-03-29 17:15:01 +00:00
return moment().isBefore(EVENTS.spring2022.end);
},
},
MossyStone: {
value: 2,
text: t('hatchingPotionMossyStone'),
limited: true,
canBuy: hasQuestAchievementFunction('stone'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
2021-06-22 23:49:32 +00:00
Sunset: {
value: 2,
text: t('hatchingPotionSunset'),
limited: true,
event: EVENTS.summer2021,
_addlNotes: t('premiumPotionAddlNotes', {
date: t('dateEndJuly'),
}),
canBuy () {
2021-06-23 00:18:21 +00:00
return moment().isBetween(EVENTS.summer2021.start, EVENTS.summer2021.end);
2021-06-22 23:49:32 +00:00
},
},
Moonglow: {
value: 2,
text: t('hatchingPotionMoonglow'),
limited: true,
event: EVENTS.potions202108,
_addlNotes: t('premiumPotionAddlNotes', {
date: t('dateEndAugust'),
}),
canBuy () {
return moment().isBetween(EVENTS.potions202108.start, EVENTS.potions202108.end);
},
},
SolarSystem: {
value: 2,
text: t('hatchingPotionSolarSystem'),
limited: true,
canBuy: hasQuestAchievementFunction('solarSystem'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
Onyx: {
value: 2,
text: t('hatchingPotionOnyx'),
limited: true,
canBuy: hasQuestAchievementFunction('onyx'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
};
2019-03-25 22:26:38 +00:00
const wacky = {
Veggie: {
text: t('hatchingPotionVeggie'),
limited: true,
event: EVENTS.spring2021,
2020-04-06 18:08:29 +00:00
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndApril'),
previousDate: t('aprilYYYY', { year: 2021 }),
2020-04-06 18:08:29 +00:00
}),
canBuy () {
return moment().isBetween('2022-04-07T08:00-05:00', EVENTS.spring2022.end);
2020-04-06 18:08:29 +00:00
},
2019-03-25 22:26:38 +00:00
},
2020-04-04 00:25:43 +00:00
Dessert: {
text: t('hatchingPotionDessert'),
limited: true,
_addlNotes: t('premiumPotionUnlimitedNotes'),
2020-04-04 00:25:43 +00:00
canBuy: hasQuestAchievementFunction('waffle'),
},
VirtualPet: {
text: t('hatchingPotionVirtualPet'),
limited: true,
_addlNotes: t('premiumPotionUnlimitedNotes'),
canBuy: hasQuestAchievementFunction('virtualPet'),
},
2019-03-25 22:26:38 +00:00
};
each(drops, (pot, key) => {
defaults(pot, {
key,
value: 2,
notes: t('hatchingPotionNotes', {
potText: pot.text,
}),
premium: false,
limited: false,
canBuy () {
return true;
},
});
});
each(premium, (pot, key) => {
defaults(pot, {
key,
value: 2,
notes: t('hatchingPotionNotes', {
potText: pot.text,
}),
_addlNotes: t('eventAvailability', {
date: t('dateEndFebruary'),
}),
premium: true,
limited: false,
canBuy () {
2019-12-19 22:54:27 +00:00
return false;
},
});
});
2019-03-25 22:26:38 +00:00
each(wacky, (pot, key) => {
defaults(pot, {
key,
value: 2,
notes: t('hatchingPotionNotes', {
potText: pot.text,
}),
_addlNotes:
pot._season && pot._season !== '_PENDING_'
? t('eventAvailability', {
date: t(`dateEnd${pot._season}`),
})
: null,
2019-03-25 22:26:38 +00:00
premium: false,
limited: true,
2019-04-04 15:35:22 +00:00
wacky: true,
2019-03-25 22:26:38 +00:00
canBuy () {
2019-12-19 22:54:27 +00:00
return false;
2019-03-25 22:26:38 +00:00
},
});
});
2019-10-08 14:57:10 +00:00
const all = assign({}, drops, premium, wacky);
2019-10-01 15:53:48 +00:00
export {
drops, premium, wacky, all,
};