diff --git a/habitica-images b/habitica-images index 1a848ba4c4..5afe493854 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 1a848ba4c4d3369651de2e9fb5414c1e34fcc878 +Subproject commit 5afe493854d104d9105e627ac6f132885e55f6da diff --git a/package-lock.json b/package-lock.json index f59b62c164..43cb813da0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "habitica", - "version": "4.224.2", + "version": "4.225.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 47ebbfb3eb..e217176430 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "habitica", "description": "A habit tracker app which treats your goals like a Role Playing Game.", - "version": "4.224.2", + "version": "4.225.0", "main": "./website/server/index.js", "dependencies": { "@babel/core": "^7.17.5", @@ -106,7 +106,7 @@ "start": "gulp nodemon", "debug": "gulp nodemon --inspect", "mongo:dev": "run-rs -v 4.2.8 -l ubuntu1804 --keep --dbpath mongodb-data --number 1 --quiet", - "postinstall": "gulp build && cd website/client && npm install", + "postinstall": "git config --global url.\"https://\".insteadOf git:// && gulp build && cd website/client && npm install", "apidoc": "gulp apidoc" }, "devDependencies": { diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index 8b9515fb86..828d014cde 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -50,8 +50,8 @@ } .achievement-birdsOfAFeather2x { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-birdsOfAFeather2x.png'); - width: 68px; - height: 68px; + width: 60px; + height: 64px; } .achievement-birthday2x { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-birthday2x.png'); @@ -25543,6 +25543,26 @@ width: 114px; height: 90px; } +.broad_armor_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_spring2022Healer.png'); + width: 114px; + height: 90px; +} +.broad_armor_special_spring2022Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_spring2022Mage.png'); + width: 114px; + height: 90px; +} +.broad_armor_special_spring2022Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_spring2022Rogue.png'); + width: 114px; + height: 117px; +} +.broad_armor_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_spring2022Warrior.png'); + width: 114px; + height: 90px; +} .broad_armor_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_springHealer.png'); width: 90px; @@ -25783,6 +25803,26 @@ width: 114px; height: 90px; } +.head_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_spring2022Healer.png'); + width: 114px; + height: 90px; +} +.head_special_spring2022Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_spring2022Mage.png'); + width: 114px; + height: 90px; +} +.head_special_spring2022Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_spring2022Rogue.png'); + width: 114px; + height: 117px; +} +.head_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_spring2022Warrior.png'); + width: 114px; + height: 90px; +} .head_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_springHealer.png'); width: 90px; @@ -25908,6 +25948,21 @@ width: 114px; height: 90px; } +.shield_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_spring2022Healer.png'); + width: 114px; + height: 90px; +} +.shield_special_spring2022Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_spring2022Mage.png'); + width: 114px; + height: 117px; +} +.shield_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_spring2022Warrior.png'); + width: 114px; + height: 90px; +} .shield_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_springHealer.png'); width: 90px; @@ -26063,6 +26118,26 @@ width: 68px; height: 68px; } +.shop_armor_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_spring2022Healer.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_spring2022Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_spring2022Mage.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_spring2022Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_spring2022Rogue.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_spring2022Warrior.png'); + width: 68px; + height: 68px; +} .shop_armor_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_springHealer.png'); width: 68px; @@ -26303,6 +26378,26 @@ width: 68px; height: 68px; } +.shop_head_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_spring2022Healer.png'); + width: 68px; + height: 68px; +} +.shop_head_special_spring2022Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_spring2022Mage.png'); + width: 68px; + height: 68px; +} +.shop_head_special_spring2022Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_spring2022Rogue.png'); + width: 68px; + height: 68px; +} +.shop_head_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_spring2022Warrior.png'); + width: 68px; + height: 68px; +} .shop_head_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_springHealer.png'); width: 68px; @@ -26428,6 +26523,21 @@ width: 68px; height: 68px; } +.shop_shield_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_spring2022Healer.png'); + width: 68px; + height: 68px; +} +.shop_shield_special_spring2022Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_spring2022Rogue.png'); + width: 68px; + height: 68px; +} +.shop_shield_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_spring2022Warrior.png'); + width: 68px; + height: 68px; +} .shop_shield_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_springHealer.png'); width: 68px; @@ -26583,6 +26693,26 @@ width: 68px; height: 68px; } +.shop_weapon_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_spring2022Healer.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_spring2022Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_spring2022Mage.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_spring2022Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_spring2022Rogue.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_spring2022Warrior.png'); + width: 68px; + height: 68px; +} .shop_weapon_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_springHealer.png'); width: 68px; @@ -26743,6 +26873,26 @@ width: 114px; height: 90px; } +.slim_armor_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_spring2022Healer.png'); + width: 114px; + height: 90px; +} +.slim_armor_special_spring2022Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_spring2022Mage.png'); + width: 114px; + height: 90px; +} +.slim_armor_special_spring2022Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_spring2022Rogue.png'); + width: 114px; + height: 117px; +} +.slim_armor_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_spring2022Warrior.png'); + width: 114px; + height: 90px; +} .slim_armor_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_springHealer.png'); width: 90px; @@ -26903,6 +27053,26 @@ width: 114px; height: 90px; } +.weapon_special_spring2022Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_spring2022Healer.png'); + width: 114px; + height: 90px; +} +.weapon_special_spring2022Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_spring2022Mage.png'); + width: 114px; + height: 90px; +} +.weapon_special_spring2022Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_spring2022Rogue.png'); + width: 114px; + height: 117px; +} +.weapon_special_spring2022Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_spring2022Warrior.png'); + width: 114px; + height: 90px; +} .weapon_special_springHealer { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_springHealer.png'); width: 90px; diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 5c3b23323e..eb78d244fc 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -428,6 +428,15 @@ "headSpecialNye2021Text": "Preposterous Party Hat", "headSpecialNye2021Notes": "You've received a Preposterous Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.", + "weaponSpecialSpring2022RogueText": "Giant Earring Stud", + "weaponSpecialSpring2022RogueNotes": "A shiny! It’s so shiny and gleaming and pretty and nice and all yours! Increases Strength by <%= str %>. Limited Edition 2022 Spring Gear.", + "weaponSpecialSpring2022WarriorText": "Inside-Out Umbrella", + "weaponSpecialSpring2022WarriorNotes": "Yikes! Guess that wind was a little stronger than you thought, huh? Increases Strength by <%= str %>, Limited Edition 2022 Spring Gear.", + "weaponSpecialSpring2022MageText": "Forsythia Staff", + "weaponSpecialSpring2022MageNotes": "These bright yellow bells are ready to channel your powerful springtime magic. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2022 Spring Gear.", + "weaponSpecialSpring2022HealerText": "Peridot Wand", + "weaponSpecialSpring2022HealerNotes": "Use this wand to tap into peridot’s healing properties, whether it be to bring calm, positivity, or kindheartedness. Increases Intelligence by <%= int %>. Limited Edition 2022 Spring 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", @@ -1028,6 +1037,15 @@ "armorSpecialWinter2022HealerText": "Crystalline Ice Armor", "armorSpecialWinter2022HealerNotes": "Glide as if skating, just above the ground, a glittering ethereal figure come to bring cool and calm. Increases Constitution by <%= con %>. Limited Edition 2021-2022 Winter Gear.", + "armorSpecialSpring2022RogueText": "Magpie Costume", + "armorSpecialSpring2022RogueNotes": "With iridescent metallic blue-gray and lighter patches on your feathers, you will be the finest flying friend at the spring fling! Increases Perception by <%= per %>. Limited Edition 2022 Spring Gear.", + "armorSpecialSpring2022WarriorText": "Rain Slicker", + "armorSpecialSpring2022WarriorNotes": "This slicker and boots are so formidable you could sing in the rain or jump in every puddle but still be warm and dry! Increases Constitution by <%= con %>. Limited Edition 2022 Spring Gear.", + "armorSpecialSpring2022MageText": "Forsythia Robe", + "armorSpecialSpring2022MageNotes": "Show you’re ready to spring forward into the season with this robe adorned with forsythia flower petals. Intelligence by <%= int %>.Limited Edition 2022 Spring Gear.", + "armorSpecialSpring2022HealerText": "Peridot Armor", + "armorSpecialSpring2022HealerNotes": " Drive away fears and nightmares simply by wearing this green gem garment. Increases Constitution by <%= con %>. Limited Edition 2022 Spring 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", @@ -1712,6 +1730,15 @@ "headSpecialWinter2022HealerText": "Crystalline Ice Crown", "headSpecialWinter2022HealerNotes": "Minute imperfections and impurities send the arms of this headdress branching out in unpredictable directions. It's symbolic! And also very, very pretty. Increases Intelligence by <%= int %>. Limited Edition 2021-2022 Winter Gear.", + "headSpecialSpring2022RogueText": "Magpie Mask", + "headSpecialSpring2022RogueNotes": "Be as clever as a magpie when wearing this mask. Maybe you’ll even be able to whistle, trill, and mimic as well as one, too. Increases Perception by <%= per %>. Limited Edition 2022 Spring Gear.", + "headSpecialSpring2022WarriorText": "Rain Slicker Hood", + "headSpecialSpring2022WarriorNotes": "Tut tut, it looks like rain! Stand tall and pull up your hood to stay dry. Increases Strength by <%= str %>. Limited Edition 2022 Spring Gear.", + "headSpecialSpring2022MageText": "Forsythia Helmet", + "headSpecialSpring2022MageNotes": "Stay dry during a rainstorm with this protective helmet of downturned petals.Increases Perception by <%= per %>. Limited Edition 2022 Spring Gear.", + "headSpecialSpring2022HealerText": "Peridot Helmet", + "headSpecialSpring2022HealerNotes": "This mysterious helmet preserves your privacy as you tackle your tasks. Increases Intelligence by <%= int %>. Limited Edition 2022 Spring 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.", @@ -2243,6 +2270,11 @@ "shieldSpecialWinter2022HealerText": "Enduring Ice Crystal", "shieldSpecialWinter2022HealerNotes": "Though it melts in your hand, the power of elemental ice replenishes it from within. Increases Constitution by <%= con %>. Limited Edition 2021-2022 Winter Gear.", + "shieldSpecialSpring2022WarriorText": "Raincloud", + "shieldSpecialSpring2022WarriorNotes": "Ever had one of those days when it seems like a raincloud is following you around? Well, consider yourself lucky, because the prettiest flowers will soon be growing at your feet! Increases Constitution by <%= con %>. Limited Edition 2022 Spring Gear.", + "shieldSpecialSpring2022HealerText": "Peridot Shield", + "shieldSpecialSpring2022HealerNotes": "Formed by molten rock of the upper mantle, this shield can withstand any hit that comes its way. Increases Constitution by <%= con %>. Limited Edition 2022 Spring 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 addb64411f..2992083589 100644 --- a/website/common/locales/en/limited.json +++ b/website/common/locales/en/limited.json @@ -179,6 +179,10 @@ "winter2022StockingWarriorSet": "Stocking (Warrior)", "winter2022PomegranateMageSet": "Pomegranate (Mage)", "winter2022IceCrystalHealerSet": "Ice Crystal (Healer)", + "spring2022MagpieRogueSet": "Magpie (Rogue)", + "spring2022RainstormWarriorSet": "Rainstorm (Warrior)", + "spring2022ForsythiaMageSet": "Forsythia (Mage)", + "spring2022PeridotHealerSet": "Peridot (Healer)", "eventAvailability": "Available for purchase until <%= date(locale) %>.", "eventAvailabilityReturning": "Available for purchase until <%= availableDate(locale) %>. This potion was last available in <%= previousDate(locale) %>.", "dateEndMarch": "April 30", diff --git a/website/common/locales/en/questsContent.json b/website/common/locales/en/questsContent.json index 45e4249e7d..557be32b92 100644 --- a/website/common/locales/en/questsContent.json +++ b/website/common/locales/en/questsContent.json @@ -699,7 +699,7 @@ "questSquirrelUnlockText": "Unlocks Squirrel Eggs for purchase in the Market", "cuddleBuddiesText": "Cuddle Buddies Quest Bundle", - "cuddleBuddiesNotes": "Contains 'The Killer Bunny', 'The Nefarious Ferret', and 'The Guinea Pig Gang'. Available until May 31.", + "cuddleBuddiesNotes": "Contains 'The Killer Bunny', 'The Nefarious Ferret', and 'The Guinea Pig Gang'. Available until March 31.", "aquaticAmigosText": "Aquatic Amigos Quest Bundle", "aquaticAmigosNotes": "Contains 'The Magical Axolotl', 'The Kraken of Inkomplete', and 'The Call of Octothulu'. Available until August 31.", diff --git a/website/common/script/content/bundles.js b/website/common/script/content/bundles.js index 24239f3f51..bfb7429b5a 100644 --- a/website/common/script/content/bundles.js +++ b/website/common/script/content/bundles.js @@ -114,7 +114,7 @@ const bundles = { 'guineapig', ], canBuy () { - return moment().isBetween('2022-03-15T08:00-04:00', '2022-05-31T20:00-04:00'); + return moment().isBetween('2022-03-15T08:00-04:00', '2022-03-31T20:00-04:00'); }, type: 'quests', value: 7, diff --git a/website/common/script/content/constants/events.js b/website/common/script/content/constants/events.js index 2e5d776583..08caac74ad 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 = { noCurrentEvent: { - start: '2022-02-18T20:00-05:00', - end: '2022-03-31T20:00-05:00', + start: '2022-04-30T20:00-05:00', + end: '2022-06-30T20:00-05:00', season: 'normal', npcImageSuffix: '', }, + spring2022: { + start: '2022-03-22T08:00-05:00', + end: '2022-04-30T20:00-05:00', + npcImageSuffix: 'spring', + season: 'spring', + gear: true, + }, valentines2022: { start: '2022-02-14T08:00-05:00', end: '2022-02-18T20:00-05:00', diff --git a/website/common/script/content/constants/seasonalSets.js b/website/common/script/content/constants/seasonalSets.js index 383e555b7c..6a03fb5865 100644 --- a/website/common/script/content/constants/seasonalSets.js +++ b/website/common/script/content/constants/seasonalSets.js @@ -67,36 +67,37 @@ const SEASONAL_SETS = { 'cleverDogSet', 'braveMouseSet', - // spring 2017 'spring2017FelineWarriorSet', 'spring2017CanineConjurorSet', 'spring2017FloralMouseSet', 'spring2017SneakyBunnySet', - // spring 2018 'spring2018TulipMageSet', 'spring2018SunriseWarriorSet', 'spring2018DucklingRogueSet', 'spring2018GarnetHealerSet', - // spring 2019 'spring2019AmberMageSet', 'spring2019OrchidWarriorSet', 'spring2019CloudRogueSet', 'spring2019RobinHealerSet', - // spring 2020 'spring2020BeetleWarriorSet', 'spring2020IrisHealerSet', 'spring2020LapisLazuliRogueSet', 'spring2020PuddleMageSet', - // spring 2021 'spring2021SwanMageSet', 'spring2021WillowHealerSet', 'spring2021SunstoneWarriorSet', 'spring2021TwinFlowerRogueSet', + + 'spring2022ForsythiaMageSet', + 'spring2022PeridotHealerSet', + 'spring2022RainstormWarriorSet', + 'spring2022MagpieRogueSet', ], + summer: [ // summer 2014 'daringSwashbucklerSet', diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index 3427057675..9bb8c79654 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -670,15 +670,19 @@ const armor = { }, spring2021Rogue: { set: 'spring2021TwinFlowerRogueSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Warrior: { set: 'spring2021SunstoneWarriorSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Mage: { set: 'spring2021SwanMageSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Healer: { set: 'spring2021WillowHealerSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, summer2021Rogue: { set: 'summer2021ClownfishRogueSet', @@ -716,6 +720,19 @@ const armor = { winter2022Healer: { set: 'winter2022IceCrystalHealerSet', }, + spring2022Rogue: { + set: 'spring2022MagpieRogueSet', + }, + spring2022Warrior: { + set: 'spring2022RainstormWarriorSet', + }, + spring2022Mage: { + set: 'spring2022ForsythiaMageSet', + }, + spring2022Healer: { + set: 'spring2022PeridotHealerSet', + }, + birthday2022: { text: t('armorSpecialBirthday2022Text'), notes: t('armorSpecialBirthday2022Notes'), @@ -1728,15 +1745,19 @@ const head = { }, spring2021Rogue: { set: 'spring2021TwinFlowerRogueSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Warrior: { set: 'spring2021SunstoneWarriorSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Mage: { set: 'spring2021SwanMageSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Healer: { set: 'spring2021WillowHealerSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, summer2021Rogue: { set: 'summer2021ClownfishRogueSet', @@ -1780,6 +1801,18 @@ const head = { value: 0, canOwn: ownsItem('head_special_nye2021'), }, + spring2022Rogue: { + set: 'spring2022MagpieRogueSet', + }, + spring2022Warrior: { + set: 'spring2022RainstormWarriorSet', + }, + spring2022Mage: { + set: 'spring2022ForsythiaMageSet', + }, + spring2022Healer: { + set: 'spring2022PeridotHealerSet', + }, }; const headStats = { @@ -2504,12 +2537,15 @@ const shield = { }, spring2021Rogue: { set: 'spring2021TwinFlowerRogueSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Warrior: { set: 'spring2021SunstoneWarriorSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Healer: { set: 'spring2021WillowHealerSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, summer2021Rogue: { set: 'summer2021ClownfishRogueSet', @@ -2538,6 +2574,15 @@ const shield = { winter2022Healer: { set: 'winter2022IceCrystalHealerSet', }, + spring2022Rogue: { + set: 'spring2022MagpieRogueSet', + }, + spring2022Warrior: { + set: 'spring2022RainstormWarriorSet', + }, + spring2022Healer: { + set: 'spring2022PeridotHealerSet', + }, }; const shieldStats = { @@ -3168,15 +3213,19 @@ const weapon = { }, spring2021Rogue: { set: 'spring2021TwinFlowerRogueSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Warrior: { set: 'spring2021SunstoneWarriorSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Mage: { set: 'spring2021SwanMageSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, spring2021Healer: { set: 'spring2021WillowHealerSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'spring', }, summer2021Rogue: { set: 'summer2021ClownfishRogueSet', @@ -3214,6 +3263,18 @@ const weapon = { winter2022Healer: { set: 'winter2022IceCrystalHealerSet', }, + spring2022Rogue: { + set: 'spring2022MagpieRogueSet', + }, + spring2022Warrior: { + set: 'spring2022RainstormWarriorSet', + }, + spring2022Mage: { + set: 'spring2022ForsythiaMageSet', + }, + spring2022Healer: { + set: 'spring2022PeridotHealerSet', + }, }; const weaponStats = { diff --git a/website/common/script/content/shop-featuredItems.js b/website/common/script/content/shop-featuredItems.js index 6048266118..179264d3db 100644 --- a/website/common/script/content/shop-featuredItems.js +++ b/website/common/script/content/shop-featuredItems.js @@ -44,7 +44,7 @@ const featuredItems = { ]; }, quests () { - if (moment().isBefore('2022-05-31T20:00-04:00')) { + if (moment().isBefore('2022-03-31T20:00-04:00')) { return [ { type: 'bundles', @@ -52,7 +52,7 @@ const featuredItems = { }, { type: 'quests', - path: 'quests.turquoise', + path: 'quests.egg', }, { type: 'quests', @@ -75,7 +75,7 @@ const featuredItems = { }, ]; }, - seasonal: 'winter2021Warrior', + seasonal: 'spring2021Healer', timeTravelers: [ // TODO ], diff --git a/website/common/script/libs/shops-seasonal.config.js b/website/common/script/libs/shops-seasonal.config.js index d52410158e..b921e21250 100644 --- a/website/common/script/libs/shops-seasonal.config.js +++ b/website/common/script/libs/shops-seasonal.config.js @@ -30,20 +30,24 @@ export default { pinnedSets: SHOP_OPEN ? { - healer: 'winter2022IceCrystalHealerSet', - rogue: 'winter2022FireworksRogueSet', - warrior: 'winter2022StockingWarriorSet', - wizard: 'winter2022PomegranateMageSet', + healer: 'spring2022PeridotHealerSet', + rogue: 'spring2022MagpieRogueSet', + warrior: 'spring2022RainstormWarriorSet', + wizard: 'spring2022ForsythiaMageSet', } : {}, - availableSpells: SHOP_OPEN && moment().isBetween('2021-12-30T08:00-04:00', CURRENT_EVENT.end) + availableSpells: SHOP_OPEN && moment().isBetween('2022-04-12T08:00-05:00', CURRENT_EVENT.end) ? [ - 'snowball', + 'shinySeed', ] : [], - availableQuests: [], + availableQuests: SHOP_OPEN && CURRENT_EVENT.season === 'spring' + ? [ + 'egg', + ] + : [], - featuredSet: 'winter2021ArcticExplorerHealerSet', + featuredSet: 'spring2021TwinFlowerRogueSet', };