chore(content): add winter wonderland items (#14407)

* chore(content): add winter wonderland items

* chore(typos): dates are hard

* fix(tz): how far back we have fallen

* fix(event): four extra hours for stragglers

* fix(typo): singular snowball spell

* fix(gear): remove stray incorrect event prop

* merge release

* Revert "merge release"

This reverts commit 83e29d0288.

* feat(content): add EN text

* fix(dates): 2022-2023 Winter

* chore(content): add featured quest bundle

* fix(event): delay Snowballs, add quests to Seasonal Shop

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: SabreCat <sabe@habitica.com>
This commit is contained in:
Natalie L
2022-12-19 16:53:52 -05:00
committed by GitHub
parent 1f59d95465
commit fd9d738cc6
11 changed files with 363 additions and 38 deletions
@@ -18,7 +18,7 @@ export default prefill({
setPrice: 5, availableFrom: '2022-10-04T08:00-04:00', availableUntil: EVENTS.fall2022.end, text: t('hauntedColors'),
},
winteryHairColors: {
setPrice: 5, availableFrom: '2021-12-23T08:00-05:00', availableUntil: '2022-01-31T20:00-05:00', text: t('winteryColors'),
setPrice: 5, availableFrom: '2021-12-23T08:00-05:00', availableUntil: EVENTS.winter2023.end, text: t('winteryColors'),
},
rainbowSkins: { setPrice: 5, text: t('rainbowSkins') },
animalSkins: { setPrice: 5, text: t('animalSkins') },
@@ -33,6 +33,6 @@ export default prefill({
setPrice: 5, availableFrom: '2022-07-05T08:00-05:00', availableUntil: EVENTS.summer2022.end, text: t('splashySkins'),
},
winterySkins: {
setPrice: 5, availableFrom: '2021-12-23T08:00-05:00', availableUntil: '2022-01-31T20:00-05:00', text: t('winterySkins'),
setPrice: 5, availableFrom: '2023-01-17T08:00-05:00', availableUntil: EVENTS.winter2023.end, text: t('winterySkins'),
},
});
+2 -1
View File
@@ -85,8 +85,9 @@ const bundles = {
'evilsanta2',
'penguin',
],
event: EVENTS.winter2023,
canBuy () {
return moment().isBetween('2022-01-11T08:00-05:00', '2022-01-31T20:00-05:00');
return moment().isBetween(EVENTS.winter2023.start, EVENTS.winter2023.end);
},
type: 'quests',
value: 7,
@@ -10,11 +10,18 @@ const gemsPromo = {
export const EVENTS = {
noEvent: {
start: '2022-11-27T20:00-05:00',
end: '2022-12-20T08:00-05:00',
start: '2023-01-31T20:00-05:00',
end: '2023-02-14T08:00-05:00',
season: 'normal',
npcImageSuffix: '',
},
winter2023: {
start: '2022-12-20T08:00-05:00',
end: '2023-01-31T23:59-05:00',
npcImageSuffix: '_winter',
season: 'winter',
gear: true,
},
g1g12022: {
start: '2022-12-15T08:00-05:00',
end: '2023-01-08T23:59-05:00',
@@ -47,6 +47,11 @@ const SEASONAL_SETS = {
'winter2022StockingWarriorSet',
'winter2022PomegranateMageSet',
'winter2022IceCrystalHealerSet',
'winter2023RibbonRogueSet',
'winter2023WalrusWarriorSet',
'winter2023FairyLightsMageSet',
'winter2023CardinalHealerSet',
],
spring: [
// spring 2014
@@ -718,27 +718,35 @@ const armor = {
},
winter2022Rogue: {
set: 'winter2022FireworksRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Warrior: {
set: 'winter2022StockingWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Mage: {
set: 'winter2022PomegranateMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Healer: {
set: 'winter2022IceCrystalHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
spring2022Rogue: {
set: 'spring2022MagpieRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Warrior: {
set: 'spring2022RainstormWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Mage: {
set: 'spring2022ForsythiaMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Healer: {
set: 'spring2022PeridotHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
birthday2022: {
text: t('armorSpecialBirthday2022Text'),
@@ -748,27 +756,47 @@ const armor = {
},
summer2022Rogue: {
set: 'summer2022CrabRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Warrior: {
set: 'summer2022WaterspoutWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Mage: {
set: 'summer2022MantaRayMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Healer: {
set: 'summer2022AngelfishHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
fall2022Rogue: {
set: 'fall2022KappaRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Warrior: {
set: 'fall2022OrcWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Mage: {
set: 'fall2022HarpyMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Healer: {
set: 'fall2022WatcherHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
winter2023Rogue: {
set: 'winter2023RibbonRogueSet',
},
winter2023Warrior: {
set: 'winter2023WalrusWarriorSet',
},
winter2023Mage: {
set: 'winter2023FairyLightsMageSet',
},
winter2023Healer: {
set: 'winter2023CardinalHealerSet',
},
};
@@ -1824,15 +1852,19 @@ const head = {
},
winter2022Rogue: {
set: 'winter2022FireworksRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Warrior: {
set: 'winter2022StockingWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Mage: {
set: 'winter2022PomegranateMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Healer: {
set: 'winter2022IceCrystalHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
nye2021: {
text: t('headSpecialNye2021Text'),
@@ -1842,39 +1874,63 @@ const head = {
},
spring2022Rogue: {
set: 'spring2022MagpieRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Warrior: {
set: 'spring2022RainstormWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Mage: {
set: 'spring2022ForsythiaMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Healer: {
set: 'spring2022PeridotHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
summer2022Rogue: {
set: 'summer2022CrabRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Warrior: {
set: 'summer2022WaterspoutWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Mage: {
set: 'summer2022MantaRayMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Healer: {
set: 'summer2022AngelfishHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
fall2022Rogue: {
set: 'fall2022KappaRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Warrior: {
set: 'fall2022OrcWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Mage: {
set: 'fall2022HarpyMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Healer: {
set: 'fall2022WatcherHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
winter2023Rogue: {
set: 'winter2023RibbonRogueSet',
},
winter2023Warrior: {
set: 'winter2023WalrusWarriorSet',
},
winter2023Mage: {
set: 'winter2023FairyLightsMageSet',
},
winter2023Healer: {
set: 'winter2023CardinalHealerSet',
},
};
@@ -2285,7 +2341,6 @@ const shield = {
},
spring2015Rogue: {
set: 'sneakySqueakerSet',
event: EVENTS.spring2021,
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2015Warrior: {
@@ -2636,39 +2691,60 @@ const shield = {
},
winter2022Rogue: {
set: 'winter2022FireworksRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Warrior: {
set: 'winter2022StockingWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Healer: {
set: 'winter2022IceCrystalHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
spring2022Rogue: {
set: 'spring2022MagpieRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Warrior: {
set: 'spring2022RainstormWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Healer: {
set: 'spring2022PeridotHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Rogue: {
set: 'summer2022CrabRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Warrior: {
set: 'summer2022WaterspoutWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Healer: {
set: 'summer2022AngelfishHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
fall2022Rogue: {
set: 'fall2022KappaRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Warrior: {
set: 'fall2022OrcWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Healer: {
set: 'fall2022WatcherHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
winter2023Rogue: {
set: 'winter2023RibbonRogueSet',
},
winter2023Warrior: {
set: 'winter2023WalrusWarriorSet',
},
winter2023Healer: {
set: 'winter2023CardinalHealerSet',
},
};
@@ -3348,51 +3424,79 @@ const weapon = {
},
winter2022Rogue: {
set: 'winter2022FireworksRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Warrior: {
set: 'winter2022StockingWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Mage: {
set: 'winter2022PomegranateMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
winter2022Healer: {
set: 'winter2022IceCrystalHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
spring2022Rogue: {
set: 'spring2022MagpieRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Warrior: {
set: 'spring2022RainstormWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Mage: {
set: 'spring2022ForsythiaMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
spring2022Healer: {
set: 'spring2022PeridotHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring',
},
summer2022Rogue: {
set: 'summer2022CrabRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Warrior: {
set: 'summer2022WaterspoutWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Mage: {
set: 'summer2022MantaRayMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
summer2022Healer: {
set: 'summer2022AngelfishHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'summer',
},
fall2022Rogue: {
set: 'fall2022KappaRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Warrior: {
set: 'fall2022OrcWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Mage: {
set: 'fall2022HarpyMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
fall2022Healer: {
set: 'fall2022WatcherHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
},
winter2023Rogue: {
set: 'winter2023RibbonRogueSet',
},
winter2023Warrior: {
set: 'winter2023WalrusWarriorSet',
},
winter2023Mage: {
set: 'winter2023FairyLightsMageSet',
},
winter2023Healer: {
set: 'winter2023CardinalHealerSet',
},
};
@@ -176,11 +176,11 @@ const premium = {
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('januaryYYYY', { year: 2020 }),
previousDate: t('januaryYYYY', { year: 2022 }),
}),
event: EVENTS.winter2022,
event: EVENTS.winter2023,
canBuy () {
return moment().isBetween(EVENTS.winter2022.start, EVENTS.winter2022.end);
return moment().isBetween(EVENTS.winter2023.start, EVENTS.winter2023.end);
},
},
Peppermint: {
@@ -200,12 +200,13 @@ const premium = {
value: 2,
text: t('hatchingPotionStarryNight'),
limited: true,
event: EVENTS.winter2023,
canBuy () {
return moment().isBetween('2019-12-19', '2020-02-02');
return moment().isBetween(EVENTS.winter2023.start, EVENTS.winter2023.end);
},
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('decemberYYYY', { year: 2017 }),
previousDate: t('decemberYYYY', { year: 2019 }),
}),
},
Rainbow: {
@@ -360,11 +361,11 @@ const premium = {
limited: true,
_addlNotes: t('eventAvailabilityReturning', {
availableDate: t('dateEndJanuary'),
previousDate: t('decemberYYYY', { year: 2019 }),
previousDate: t('decemberYYYY', { year: 2020 }),
}),
event: EVENTS.winter2021,
event: EVENTS.winter2023,
canBuy () {
return moment().isBetween('2020-12-22T08:00-04:00', '2021-01-31T20:00-04:00');
return moment().isBetween(EVENTS.winter2023.start, EVENTS.winter2023.end);
},
},
Ruby: {
@@ -5,7 +5,7 @@ import { EVENTS } from './constants';
// path: 'premiumHatchingPotions.Rainbow',
const featuredItems = {
market () {
if (moment().isBetween(EVENTS.bundle202211.start, EVENTS.bundle202211.end)) {
if (moment().isBetween(EVENTS.winter2023.start, EVENTS.winter2023.end)) {
return [
{
type: 'armoire',
@@ -13,15 +13,15 @@ const featuredItems = {
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Frost',
path: 'premiumHatchingPotions.StarryNight',
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Ember',
path: 'premiumHatchingPotions.Holly',
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Thunderstorm',
path: 'premiumHatchingPotions.Aurora',
},
];
}
@@ -32,51 +32,51 @@ const featuredItems = {
},
{
type: 'food',
path: 'food.Milk',
path: 'food.RottenMeat',
},
{
type: 'hatchingPotions',
path: 'hatchingPotions.White',
path: 'hatchingPotions.CottonCandyBlue',
},
{
type: 'eggs',
path: 'eggs.Fox',
path: 'eggs.FlyingPig',
},
];
},
quests () {
if (moment().isBetween(EVENTS.bundle202211.start, EVENTS.bundle202211.end)) {
if (moment().isBetween(EVENTS.winter2023.start, EVENTS.winter2023.end)) {
return [
{
type: 'bundles',
path: 'bundles.rockingReptiles',
path: 'bundles.winterQuests',
},
{
type: 'quests',
path: 'quests.peacock',
path: 'quests.whale',
},
{
type: 'quests',
path: 'quests.harpy',
path: 'quests.turtle',
},
];
}
return [
{
type: 'quests',
path: 'quests.axolotl',
path: 'quests.slime',
},
{
type: 'quests',
path: 'quests.stone',
path: 'quests.seaserpent',
},
{
type: 'quests',
path: 'quests.whale',
path: 'quests.unicorn',
},
];
},
seasonal: 'spring2021Healer',
seasonal: 'winter2022Healer',
timeTravelers: [
// TODO
],