From fd9d738cc6cb6725d73914c1ae8c4bae6794d8ff Mon Sep 17 00:00:00 2001 From: Natalie L <78037386+CuriousMagpie@users.noreply.github.com> Date: Mon, 19 Dec 2022 16:53:52 -0500 Subject: [PATCH] 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 83e29d028866e1d2ab2c1c181e4c82eeb161b647. * 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 Co-authored-by: SabreCat --- .../assets/css/sprites/spritesmith-main.css | 170 ++++++++++++++++++ website/common/locales/en/gear.json | 32 ++++ website/common/locales/en/limited.json | 4 + .../common/script/content/appearance/sets.js | 4 +- website/common/script/content/bundles.js | 3 +- .../common/script/content/constants/events.js | 11 +- .../script/content/constants/seasonalSets.js | 5 + .../script/content/gear/sets/special/index.js | 106 ++++++++++- .../common/script/content/hatching-potions.js | 17 +- .../script/content/shop-featuredItems.js | 30 ++-- .../script/libs/shops-seasonal.config.js | 19 +- 11 files changed, 363 insertions(+), 38 deletions(-) diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index c57eb7c1f6..1f4657bda7 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -31280,6 +31280,26 @@ width: 117px; height: 120px; } +.broad_armor_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_winter2023Healer.png'); + width: 117px; + height: 120px; +} +.broad_armor_special_winter2023Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_winter2023Mage.png'); + width: 114px; + height: 90px; +} +.broad_armor_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_winter2023Rogue.png'); + width: 116px; + height: 119px; +} +.broad_armor_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_winter2023Warrior.png'); + width: 114px; + height: 117px; +} .broad_armor_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_yeti.png'); width: 90px; @@ -31505,6 +31525,26 @@ width: 117px; height: 120px; } +.head_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_winter2023Healer.png'); + width: 117px; + height: 120px; +} +.head_special_winter2023Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_winter2023Mage.png'); + width: 114px; + height: 90px; +} +.head_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_winter2023Rogue.png'); + width: 116px; + height: 119px; +} +.head_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_winter2023Warrior.png'); + width: 114px; + height: 117px; +} .head_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_yeti.png'); width: 90px; @@ -31640,6 +31680,21 @@ width: 117px; height: 120px; } +.shield_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_winter2023Healer.png'); + width: 117px; + height: 120px; +} +.shield_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_winter2023Rogue.png'); + width: 116px; + height: 119px; +} +.shield_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_winter2023Warrior.png'); + width: 114px; + height: 117px; +} .shield_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_yeti.png'); width: 90px; @@ -31820,6 +31875,26 @@ width: 68px; height: 68px; } +.shop_armor_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_winter2023Healer.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_winter2023Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_winter2023Mage.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_winter2023Rogue.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_winter2023Warrior.png'); + width: 68px; + height: 68px; +} .shop_armor_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_yeti.png'); width: 68px; @@ -32045,6 +32120,26 @@ width: 68px; height: 68px; } +.shop_head_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_winter2023Healer.png'); + width: 68px; + height: 68px; +} +.shop_head_special_winter2023Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_winter2023Mage.png'); + width: 68px; + height: 68px; +} +.shop_head_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_winter2023Rogue.png'); + width: 68px; + height: 68px; +} +.shop_head_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_winter2023Warrior.png'); + width: 68px; + height: 68px; +} .shop_head_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_yeti.png'); width: 68px; @@ -32180,6 +32275,21 @@ width: 68px; height: 68px; } +.shop_shield_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_winter2023Healer.png'); + width: 68px; + height: 68px; +} +.shop_shield_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_winter2023Rogue.png'); + width: 68px; + height: 68px; +} +.shop_shield_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_winter2023Warrior.png'); + width: 68px; + height: 68px; +} .shop_shield_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_yeti.png'); width: 68px; @@ -32360,6 +32470,26 @@ width: 68px; height: 68px; } +.shop_weapon_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_winter2023Healer.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_winter2023Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_winter2023Mage.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_winter2023Rogue.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_winter2023Warrior.png'); + width: 68px; + height: 68px; +} .shop_weapon_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_yeti.png'); width: 68px; @@ -32540,6 +32670,26 @@ width: 117px; height: 120px; } +.slim_armor_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_winter2023Healer.png'); + width: 117px; + height: 120px; +} +.slim_armor_special_winter2023Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_winter2023Mage.png'); + width: 114px; + height: 90px; +} +.slim_armor_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_winter2023Rogue.png'); + width: 116px; + height: 119px; +} +.slim_armor_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_winter2023Warrior.png'); + width: 114px; + height: 117px; +} .slim_armor_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_yeti.png'); width: 90px; @@ -32720,6 +32870,26 @@ width: 117px; height: 120px; } +.weapon_special_winter2023Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_winter2023Healer.png'); + width: 117px; + height: 120px; +} +.weapon_special_winter2023Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_winter2023Mage.png'); + width: 114px; + height: 90px; +} +.weapon_special_winter2023Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_winter2023Rogue.png'); + width: 116px; + height: 119px; +} +.weapon_special_winter2023Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_winter2023Warrior.png'); + width: 114px; + height: 117px; +} .weapon_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_yeti.png'); width: 90px; diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 766e6754ef..d78ac5111c 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -456,6 +456,15 @@ "weaponSpecialFall2022HealerText": "Right Peeker Eye", "weaponSpecialFall2022HealerNotes": "To claim victory, hold it forth and utter the words of command: 'Eye One!' Increases Intelligence by <%= int %>. Limited Edition 2022 Fall Gear.", + "weaponSpecialWinter2023RogueText": "Green Satin Sash", + "weaponSpecialWinter2023RogueNotes": "Legends tell of Rogues who snare their opponents' weapons, disarm them, then gift the item back just to be cute. Incrases Strength by <%= str %>. Limited Edition 2022-2023 Winter Gear.", + "weaponSpecialWinter2023WarriorText": "Tusk Spear", + "weaponSpecialWinter2023WarriorNotes": "The two prongs of this spear are shaped like walrus tusks but are twice as powerful. Jab at doubts and at silly poems until they back off! Increases Strength by <%= str %>. Limited Edition 2022-2023 Winter Gear.", + "weaponSpecialWinter2023MageText": "Foxfire", + "weaponSpecialWinter2023MageNotes": "Neither fox nor fire, but plenty festive! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2022-2023 Winter Gear.", + "weaponSpecialWinter2023HealerText": "Throwing Wreath", + "weaponSpecialWinter2023HealerNotes": "Watch this festive, prickly wreath spin through the air toward your enemy or obstacles and return to you like a boomerang for another throw. Increases Intelligence by <%= int %>. Limited Edition 2022-2023 Winter Gear.", + "weaponMystery201411Text": "Pitchfork of Feasting", "weaponMystery201411Notes": "Stab your enemies or dig in to your favorite foods - this versatile pitchfork does it all! Confers no benefit. November 2014 Subscriber Item.", "weaponMystery201502Text": "Shimmery Winged Staff of Love and Also Truth", @@ -1109,6 +1118,15 @@ "armorSpecialFall2022HealerText": "Profusion of Peeker Pods", "armorSpecialFall2022HealerNotes": "How many peeps could a Peeker peep, if a Peeker could peep peeps? Increases Constitution by <%= con %>. Limited Edition 2022 Fall Gear.", + "armorSpecialWinter2023RogueText": "Ribbon Wrap", + "armorSpecialWinter2023RogueNotes": "Obtain items. Bundle them up in pretty paper. And give them to your local Rogue! The season demands it. Increases Perception by <%= per %>. Limited Edition 2022-2023 Winter Gear.", + "armorSpecialWinter2023WarriorText": "Walrus Suit", + "armorSpecialWinter2023WarriorNotes": "This tough walrus suit is perfect for a walk along a beach in the middle of the night. Increases Constitution by <%= con %>. Limited Edition 2022-2023 Winter Gear.", + "armorSpecialWinter2023MageText": "Fairy Light Gown", + "armorSpecialWinter2023MageNotes": "Just because you have lights on, that doesn't make you a tree! ...maybe some other year. Increases Intelligence by <%= int %>. Limited Edition 2022-2023 Winter Gear.", + "armorSpecialWinter2023HealerText": "Cardinal Suit", + "armorSpecialWinter2023HealerNotes": "This bright cardinal suit is perfect for flying high above your problems. Increases Constitution by <%= con %>. Limited Edition 2022-2023 Winter Gear.", + "armorMystery201402Text": "Messenger Robes", "armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.", "armorMystery201403Text": "Forest Walker Armor", @@ -1835,6 +1853,15 @@ "headSpecialFall2022MageNotes": "Entrance and lure others close with this magical maiden mask. Increases Perception by <%= per %>. Limited Edition 2022 Fall Gear.", "headSpecialFall2022HealerText": "Peeker Mask", "headSpecialFall2022HealerNotes": "Beauty is in there. Somewhere! Increases Intelligence by <%= int %>. Limited Edition 2022 Fall Gear.", + + "headSpecialWinter2023RogueText": "Gift Bow", + "headSpecialWinter2023RogueNotes": "People's temptations to “unwrap” your hair will give you opportunities to practice your ducks and dodges. Increases Perception by <%= per %>. Limited Edition 2022-2023 Winter Gear.", + "headSpecialWinter2023WarriorText": "Walrus Helm", + "headSpecialWinter2023WarriorNotes": "This walrus helm is perfect for chatting with a friend or partaking in a clever meal. Increases Strength by <%= str %>. Limited Edition 2022-2023 Winter Gear.", + "headSpecialWinter2023MageText": "Fairy-Lit Tiara", + "headSpecialWinter2023MageNotes": "Were you hatched with a Starry Night potion? Because I've got stars in my eyes for you. Increases Perception by <%= per %>. Limited Edition 2022-2023 Winter Gear.", + "headSpecialWinter2023HealerText": "Cardinal Helm", + "headSpecialWinter2023HealerNotes": "This cardinal helm is perfect for whistling and singing to herald the winter season. Increases Intelligence by <%= int %>. Limited Edition 2022-2023 Winter Gear.", "headSpecialGaymerxText": "Rainbow Warrior Helm", "headSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.", @@ -2396,6 +2423,11 @@ "shieldSpecialFall2022HealerText": "Left Peeker Eye", "shieldSpecialFall2022HealerNotes": "Eye Two, look upon this costume and tremble. Increases Constitution by <%= con %>. Limited Edition 2022 Fall Gear.", + "shieldSpecialWinter2023WarriorText": "Oyster Shield", + "shieldSpecialWinter2023WarriorNotes": "The time has come, the Walrus said, to talk of many things: of oyster shells—and winter bells—of songs that someone sings—and where this shield’s pearl has gone—or what the new year brings! Increases Constitution by <%= con %>. Limited Edition 2022-2023 Winter Gear.", + "shieldSpecialWinter2023HealerText": "Cool Jams", + "shieldSpecialWinter2023HealerNotes": "Your song of frost and snow will soothe the spirits of all who hear. Increases Constitution by <%= con %>. Limited Edition 2022-2023 Winter Gear.", + "shieldMystery201601Text": "Resolution Slayer", "shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.", "shieldMystery201701Text": "Time-Freezer Shield", diff --git a/website/common/locales/en/limited.json b/website/common/locales/en/limited.json index 1c9dbebdb8..5e7e96b345 100644 --- a/website/common/locales/en/limited.json +++ b/website/common/locales/en/limited.json @@ -191,6 +191,10 @@ "fall2022OrcWarriorSet": "Orc (Warrior)", "fall2022HarpyMageSet": "Harpy (Mage)", "fall2022WatcherHealerSet": "Peeker (Healer)", + "winter2023WalrusWarriorSet": "Walrus (Warrior)", + "winter2023FairyLightsMageSet": "Fairy Lights (Mage)", + "winter2023CardinalHealerSet": "Cardinal (Healer)", + "spring2023RibbonRogueSet": "Ribbon (Rogue)", "eventAvailability": "Available for purchase until <%= date(locale) %>.", "eventAvailabilityReturning": "Available for purchase until <%= availableDate(locale) %>. This potion was last available in <%= previousDate(locale) %>.", "dateEndJanuary": "January 31", diff --git a/website/common/script/content/appearance/sets.js b/website/common/script/content/appearance/sets.js index 65152186c0..942b70f2ad 100644 --- a/website/common/script/content/appearance/sets.js +++ b/website/common/script/content/appearance/sets.js @@ -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'), }, }); diff --git a/website/common/script/content/bundles.js b/website/common/script/content/bundles.js index cb4e982fee..8214d474a6 100644 --- a/website/common/script/content/bundles.js +++ b/website/common/script/content/bundles.js @@ -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, diff --git a/website/common/script/content/constants/events.js b/website/common/script/content/constants/events.js index 2a8ff2cfc6..c3e8522062 100644 --- a/website/common/script/content/constants/events.js +++ b/website/common/script/content/constants/events.js @@ -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', diff --git a/website/common/script/content/constants/seasonalSets.js b/website/common/script/content/constants/seasonalSets.js index 009ee62321..9af7043ce5 100644 --- a/website/common/script/content/constants/seasonalSets.js +++ b/website/common/script/content/constants/seasonalSets.js @@ -47,6 +47,11 @@ const SEASONAL_SETS = { 'winter2022StockingWarriorSet', 'winter2022PomegranateMageSet', 'winter2022IceCrystalHealerSet', + + 'winter2023RibbonRogueSet', + 'winter2023WalrusWarriorSet', + 'winter2023FairyLightsMageSet', + 'winter2023CardinalHealerSet', ], spring: [ // spring 2014 diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index 55f9c2d7a6..485e54ec83 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -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', }, }; diff --git a/website/common/script/content/hatching-potions.js b/website/common/script/content/hatching-potions.js index a2e40396c2..9ba437243d 100644 --- a/website/common/script/content/hatching-potions.js +++ b/website/common/script/content/hatching-potions.js @@ -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: { diff --git a/website/common/script/content/shop-featuredItems.js b/website/common/script/content/shop-featuredItems.js index 031d7d3a9c..44ae32f7f7 100644 --- a/website/common/script/content/shop-featuredItems.js +++ b/website/common/script/content/shop-featuredItems.js @@ -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 ], diff --git a/website/common/script/libs/shops-seasonal.config.js b/website/common/script/libs/shops-seasonal.config.js index 077a011288..fc6c64fde3 100644 --- a/website/common/script/libs/shops-seasonal.config.js +++ b/website/common/script/libs/shops-seasonal.config.js @@ -30,23 +30,24 @@ export default { pinnedSets: SHOP_OPEN ? { - healer: 'fall2022WatcherHealerSet', - rogue: 'fall2022KappaRogueSet', - warrior: 'fall2022OrcWarriorSet', - wizard: 'fall2022HarpyMageSet', + rogue: 'winter2023RibbonRogueSet', + warrior: 'winter2023WalrusWarriorSet', + wizard: 'winter2023FairyLightsMageSet', + healer: 'winter2023CardinalHealerSet', } : {}, - availableSpells: SHOP_OPEN && moment().isBetween('2022-10-04T08:00-05:00', CURRENT_EVENT.end) + availableSpells: SHOP_OPEN && moment().isBetween('2022-12-27T08:00-05:00', CURRENT_EVENT.end) ? [ - 'spookySparkles', + 'snowball', ] : [], - availableQuests: SHOP_OPEN && CURRENT_EVENT.season === 'spring' + availableQuests: SHOP_OPEN && CURRENT_EVENT.season === 'winter' ? [ - 'egg', + 'evilsanta', + 'evilsanta2', ] : [], - featuredSet: 'fall2021BrainEaterMageSet', + featuredSet: 'winter2022PomegranateMageSet', };