diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index 410e236446..e481747229 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -29607,6 +29607,26 @@ width: 117px; height: 120px; } +.broad_armor_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_spring2024Healer.png'); + width: 114px; + height: 90px; +} +.broad_armor_special_spring2024Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_spring2024Mage.png'); + width: 114px; + height: 90px; +} +.broad_armor_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_spring2024Rogue.png'); + width: 114px; + height: 90px; +} +.broad_armor_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_spring2024Warrior.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; @@ -29887,6 +29907,26 @@ width: 117px; height: 120px; } +.head_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_spring2024Healer.png'); + width: 114px; + height: 90px; +} +.head_special_spring2024Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_spring2024Mage.png'); + width: 114px; + height: 90px; +} +.head_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_spring2024Rogue.png'); + width: 114px; + height: 90px; +} +.head_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_spring2024Warrior.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; @@ -30042,6 +30082,21 @@ width: 117px; height: 120px; } +.shield_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_spring2024Healer.png'); + width: 114px; + height: 90px; +} +.shield_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_spring2024Rogue.png'); + width: 114px; + height: 90px; +} +.shield_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_spring2024Warrior.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; @@ -30237,6 +30292,26 @@ width: 68px; height: 68px; } +.shop_armor_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_spring2024Healer.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_spring2024Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_spring2024Mage.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_spring2024Rogue.png'); + width: 68px; + height: 68px; +} +.shop_armor_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_spring2024Warrior.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; @@ -30517,6 +30592,26 @@ width: 68px; height: 68px; } +.shop_head_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_spring2024Healer.png'); + width: 68px; + height: 68px; +} +.shop_head_special_spring2024Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_spring2024Mage.png'); + width: 68px; + height: 68px; +} +.shop_head_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_spring2024Rogue.png'); + width: 68px; + height: 68px; +} +.shop_head_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_spring2024Warrior.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; @@ -30672,6 +30767,21 @@ width: 68px; height: 68px; } +.shop_shield_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_spring2024Healer.png'); + width: 68px; + height: 68px; +} +.shop_shield_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_spring2024Rogue.png'); + width: 68px; + height: 68px; +} +.shop_shield_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_spring2024Warrior.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; @@ -30867,6 +30977,26 @@ width: 68px; height: 68px; } +.shop_weapon_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_spring2024Healer.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_spring2024Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_spring2024Mage.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_spring2024Rogue.png'); + width: 68px; + height: 68px; +} +.shop_weapon_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_spring2024Warrior.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; @@ -31067,6 +31197,26 @@ width: 117px; height: 120px; } +.slim_armor_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_spring2024Healer.png'); + width: 114px; + height: 90px; +} +.slim_armor_special_spring2024Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_spring2024Mage.png'); + width: 114px; + height: 90px; +} +.slim_armor_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_spring2024Rogue.png'); + width: 114px; + height: 90px; +} +.slim_armor_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_spring2024Warrior.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; @@ -31267,6 +31417,26 @@ width: 117px; height: 120px; } +.weapon_special_spring2024Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_spring2024Healer.png'); + width: 114px; + height: 90px; +} +.weapon_special_spring2024Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_spring2024Mage.png'); + width: 114px; + height: 90px; +} +.weapon_special_spring2024Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_spring2024Rogue.png'); + width: 114px; + height: 90px; +} +.weapon_special_spring2024Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_spring2024Warrior.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 0036294dbd..3fdc438af5 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -504,6 +504,15 @@ "weaponSpecialWinter2024HealerText": "Torch", "weaponSpecialWinter2024HealerNotes": "Melt yourself out of this jam in no time! Increases Intelligence by <%= int %>. Limited Edition Winter 2023-2024 Gear.", + "weaponSpecialSpring2024RogueText": "Silver Blade", + "weaponSpecialSpring2024RogueNotes": "Challenges that are as hard as ice can be sliced into smaller pieces. Increases Strength by <%= str %>. Limited Edition Spring 2024 Gear.", + "weaponSpecialSpring2024WarriorText": "Fluorite Spear", + "weaponSpecialSpring2024WarriorNotes": "This colorful crystal will help concentrate all your energy into an attack. Increases Strength by <%= str %>. Limited Edition Spring 2024 Gear.", + "weaponSpecialSpring2024MageText": "Hibiscus Staff", + "weaponSpecialSpring2024MageNotes": "This swirling staff is full of floral flourishes. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition Spring 2024 Gear.", + "weaponSpecialSpring2024HealerText": "Bluebird Feather Wand", + "weaponSpecialSpring2024HealerNotes": "A wisp of happiness emerges at will to improve any mood. Increases Intelligence by <%= int %>. Limited Edition Spring 2024 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", @@ -1228,6 +1237,15 @@ "armorSpecialWinter2024HealerText": "Frozen Armor", "armorSpecialWinter2024HealerNotes": "This sparkling block of magic ice is at least protective while you figure out your escape. Increases Constitution by <%= con %>. Limited Edition 2023-2024 Winter Gear.", + "armorSpecialSpring2024RogueText": "Melting Snow Robe", + "armorSpecialSpring2024RogueNotes": "This rustic robe conceals you even as the seasons change around you. Increases Perception by <%= per %>. Limited Edition Spring 2024 Gear.", + "armorSpecialSpring2024WarriorText": "Fluorite Armor", + "armorSpecialSpring2024WarriorNotes": "This stabilizing stone armor will help ground you while dazzling all you face. Increases Constitution by <%= con %>. Limited Edition Spring 2024 Gear.", + "armorSpecialSpring2024MageText": "Hibiscus Robes", + "armorSpecialSpring2024MageNotes": "These pretty petals will help you show off your power in style. Increases Intelligence by <%= int %>. Limited Edition Spring 2024 Gear.", + "armorSpecialSpring2024HealerText": "Bluebird Suit", + "armorSpecialSpring2024HealerNotes": "These fabulous feathers will help your happiest dreams take flight. Increases Constitution by <%= con %>. Limited Edition Spring 2024 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", @@ -2040,6 +2058,15 @@ "headSpecialWinter2024HealerText": "Frozen Helm", "headSpecialWinter2024HealerNotes": "Uh oh, a spell gone wrong has trapped you in ice! Increases Intelligence by <%= int %>. Limited Edition Winter 2023-2024 Gear.", + "headSpecialSpring2024RogueText": "Melting Snow Hood", + "headSpecialSpring2024RogueNotes": "What wishes and hopes will emerge as ice and snow give way to rich soil? Increases Perception by <%= per %>. Limited Edition Spring 2024 Gear.", + "headSpecialSpring2024WarriorText": "Fluorite Headdress", + "headSpecialSpring2024WarriorNotes": "What could be more stunning than wearing this crystal crown into battle? Increases Strength by <%= str %>. Limited Edition Spring 2024 Gear.", + "headSpecialSpring2024MageText": "Hibiscus Hat", + "headSpecialSpring2024MageNotes": "What could be more intimidating to enemies than showing off this pollen-covered hat? Increases Perception by <%= per %>. Limited Edition Spring 2024 Gear.", + "headSpecialSpring2024HealerText": "Bluebird Helmet", + "headSpecialSpring2024HealerNotes": "What happy songs will you sing when you wear this helmet? Increases Intelligence by <%= int %>. Limited Edition Spring 2024 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.", @@ -2664,6 +2691,13 @@ "shieldSpecialWinter2024HealerText": "Salt Shaker", "shieldSpecialWinter2024HealerNotes": "How convenient that you had ice-melting materials handy when you froze! Increases Constitution by <%= con %>. Limited Edition Winter 2023-2024 Gear.", + "shieldSpecialSpring2024RogueText": "Golden Blade", + "shieldSpecialSpring2024RogueNotes": "Challenges that spring up around you can be cut right down. Increases Strength by <%= str %>. Limited Edition Spring 2024 Gear.", + "shieldSpecialSpring2024WarriorText": "Fluorite Shield", + "shieldSpecialSpring2024WarriorNotes": "This popular, protective stone is the perfect choice for a strong shield. Increases Constitution by <%= con %>. Limited Edition Spring 2024 Gear.", + "shieldSpecialSpring2024HealerText": "Shining Shield", + "shieldSpecialSpring2024HealerNotes": "Focus rays of the spring sun outward to warm and heal. Increases Constitution by <%= con %>. Limited Edition Spring 2024 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 87d0ba847a..9ea0c8455a 100644 --- a/website/common/locales/en/limited.json +++ b/website/common/locales/en/limited.json @@ -211,6 +211,10 @@ "winter2024FrozenHealerSet": "Frozen (Healer)", "winter2024PeppermintBarkWarriorSet": "Peppermint Bark Set (Warrior)", "winter2024NarwhalWizardMageSet": "Narwhal Wizard Set (Mage)", + "spring2024FluoriteWarriorSet": "Fluorite Set (Warrior)", + "spring2024HibiscusMageSet": "Hibiscus Set (Mage)", + "spring2024BluebirdHealerSet": "Bluebird Set (Healer)", + "spring2024MeltingSnowRogueSet": "Melting Snow Set (Rogue)", "eventAvailability": "Available for purchase until <%= date(locale) %>.", "dateEndJanuary": "January 31", "dateEndFebruary": "February 29", diff --git a/website/common/script/content/appearance/sets.js b/website/common/script/content/appearance/sets.js index 678c705c79..05505bf35a 100644 --- a/website/common/script/content/appearance/sets.js +++ b/website/common/script/content/appearance/sets.js @@ -12,18 +12,18 @@ export default prefill({ pastelHairColors: { setPrice: 5, availableUntil: '2016-01-01' }, rainbowHairColors: { setPrice: 5, text: t('rainbowColors') }, shimmerHairColors: { - setPrice: 5, availableFrom: '2023-04-11T08:00-05:00', availableUntil: EVENTS.spring2023.end, text: t('shimmerColors'), + setPrice: 5, availableFrom: '2024-04-16T08:00-05:00', availableUntil: EVENTS.spring2024.end, text: t('shimmerColors'), }, hauntedHairColors: { setPrice: 5, availableFrom: '2023-10-03T08:00-04:00', availableUntil: EVENTS.fall2023.end, text: t('hauntedColors'), }, winteryHairColors: { - setPrice: 5, availableFrom: '2023-01-16T08:00-05:00', availableUntil: EVENTS.winter2024.end, text: t('winteryColors'), // 2024-01-16 + setPrice: 5, availableFrom: '2023-01-16T08:00-05:00', availableUntil: EVENTS.winter2024.end, text: t('winteryColors'), }, rainbowSkins: { setPrice: 5, text: t('rainbowSkins') }, animalSkins: { setPrice: 5, text: t('animalSkins') }, pastelSkins: { - setPrice: 5, availableFrom: '2022-04-11T08:00-05:00', availableUntil: EVENTS.spring2023.end, text: t('pastelSkins'), + setPrice: 5, availableFrom: '2024-04-16T08:00-05:00', availableUntil: EVENTS.spring2024.end, text: t('pastelSkins'), }, spookySkins: { setPrice: 5, availableUntil: '2016-01-01', text: t('spookySkins') }, supernaturalSkins: { @@ -33,6 +33,6 @@ export default prefill({ setPrice: 5, availableFrom: '2023-07-11T08:00-05:00', availableUntil: EVENTS.summer2023.end, text: t('splashySkins'), }, winterySkins: { - setPrice: 5, availableFrom: '2023-01-16T08:00-05:00', availableUntil: EVENTS.winter2024.end, text: t('winterySkins'), // 2024-01-16 + setPrice: 5, availableFrom: '2023-01-16T08:00-05:00', availableUntil: EVENTS.winter2024.end, text: t('winterySkins'), }, }); diff --git a/website/common/script/content/constants/events.js b/website/common/script/content/constants/events.js index 7b4a09eb25..73fa138e21 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: '2024-03-01T00:00-05:00', - end: '2024-03-20T08:00-05:00', + start: '2024-05-01T00:00-05:00', + end: '2024-06-20T08:00-05:00', season: 'normal', npcImageSuffix: '', }, + spring2024: { + start: '2024-03-21T00:00-04:00', + end: '2024-04-30T23:59-04:00', + npcImageSuffix: '_spring', + season: 'spring', + gear: true, + }, bundle202403: { start: '2024-03-19T00:00-05:00', end: '2024-03-31T08:00-05:00', diff --git a/website/common/script/content/constants/seasonalSets.js b/website/common/script/content/constants/seasonalSets.js index e5d4efef31..97fb43a795 100644 --- a/website/common/script/content/constants/seasonalSets.js +++ b/website/common/script/content/constants/seasonalSets.js @@ -111,6 +111,11 @@ const SEASONAL_SETS = { 'spring2023HummingbirdWarriorSet', 'spring2023MoonstoneMageSet', 'spring2023LilyHealerSet', + + 'spring2024FluoriteWarriorSet', + 'spring2024HibiscusMageSet', + 'spring2024BluebirdHealerSet', + 'spring2024MeltingSnowRogueSet', ], summer: [ diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index e39ee6f992..611a495328 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -858,15 +858,19 @@ const armor = { }, winter2024Warrior: { set: 'winter2024PeppermintBarkWarriorSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Mage: { set: 'winter2024NarwhalWizardMageSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Healer: { set: 'winter2024FrozenHealerSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Rogue: { set: 'winter2024SnowyOwlRogueSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, birthday2024: { text: t('armorSpecialBirthday2024Text'), @@ -874,6 +878,18 @@ const armor = { value: 0, canOwn: ownsItem('armor_special_birthday2024'), }, + spring2024Warrior: { + set: 'spring2024FluoriteWarriorSet', + }, + spring2024Mage: { + set: 'spring2024HibiscusMageSet', + }, + spring2024Healer: { + set: 'spring2024BluebirdHealerSet', + }, + spring2024Rogue: { + set: 'spring2024MeltingSnowRogueSet', + }, }; const armorStats = { @@ -2087,15 +2103,19 @@ const head = { }, winter2024Healer: { set: 'winter2024FrozenHealerSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Rogue: { set: 'winter2024SnowyOwlRogueSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Warrior: { set: 'winter2024PeppermintBarkWarriorSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Mage: { set: 'winter2024NarwhalWizardMageSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, nye2023: { text: t('headSpecialNye2023Text'), @@ -2103,6 +2123,18 @@ const head = { value: 0, canOwn: ownsItem('head_special_nye2023'), }, + spring2024Warrior: { + set: 'spring2024FluoriteWarriorSet', + }, + spring2024Mage: { + set: 'spring2024HibiscusMageSet', + }, + spring2024Healer: { + set: 'spring2024BluebirdHealerSet', + }, + spring2024Rogue: { + set: 'spring2024MeltingSnowRogueSet', + }, }; const headStats = { @@ -2961,12 +2993,26 @@ const shield = { }, winter2024Warrior: { set: 'winter2024PeppermintBarkWarriorSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Rogue: { set: 'winter2024SnowyOwlRogueSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Healer: { set: 'winter2024FrozenHealerSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', + }, + spring2024Warrior: { + set: 'spring2024FluoriteWarriorSet', + }, + spring2024Healer: { + set: 'spring2024BluebirdHealerSet', + }, + spring2024Rogue: { + set: 'spring2024MeltingSnowRogueSet', + text: t('shieldSpecialSpring2024RogueText'), + notes: t('shieldSpecialSpring2024RogueNotes', { str: 8 }), }, }; @@ -3774,15 +3820,31 @@ const weapon = { }, winter2024Rogue: { set: 'winter2024SnowyOwlRogueSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Healer: { set: 'winter2024FrozenHealerSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Warrior: { set: 'winter2024PeppermintBarkWarriorSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', }, winter2024Mage: { set: 'winter2024NarwhalWizardMageSet', + canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter', + }, + spring2024Warrior: { + set: 'spring2024FluoriteWarriorSet', + }, + spring2024Mage: { + set: 'spring2024HibiscusMageSet', + }, + spring2024Healer: { + set: 'spring2024BluebirdHealerSet', + }, + spring2024Rogue: { + set: 'spring2024MeltingSnowRogueSet', }, }; diff --git a/website/common/script/content/hatching-potions.js b/website/common/script/content/hatching-potions.js index d8dcb6ddd0..10fb2957fc 100644 --- a/website/common/script/content/hatching-potions.js +++ b/website/common/script/content/hatching-potions.js @@ -74,12 +74,12 @@ const premium = { value: 2, text: t('hatchingPotionShimmer'), limited: true, - event: EVENTS.birthday10, + event: EVENTS.spring2024, _addlNotes: t('eventAvailability', { - date: t('dateEndJanuary'), + date: t('dateEndApril'), }), canBuy () { - return moment().isBetween(EVENTS.birthday10.start, EVENTS.birthday10.end); + return moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end); }, }, Fairy: { @@ -209,9 +209,9 @@ const premium = { _addlNotes: t('eventAvailability', { date: t('dateEndApril'), }), - event: EVENTS.spring2023, + event: EVENTS.spring2024, canBuy () { - return moment().isBefore(EVENTS.spring2023.end); + return moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end); }, }, Glass: { @@ -278,12 +278,12 @@ const premium = { value: 2, text: t('hatchingPotionCelestial'), limited: true, - event: EVENTS.birthday10, + event: EVENTS.spring2024, _addlNotes: t('eventAvailability', { - date: t('dateStartFebruary'), + date: t('dateEndApril'), }), canBuy () { - return moment().isBetween(EVENTS.birthday10.start, EVENTS.birthday10.end); + return moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end); }, }, Sunshine: { diff --git a/website/common/script/content/quests/seasonal.js b/website/common/script/content/quests/seasonal.js index 062115d094..bce64a7704 100644 --- a/website/common/script/content/quests/seasonal.js +++ b/website/common/script/content/quests/seasonal.js @@ -73,7 +73,7 @@ const QUEST_SEASONAL = { egg: { event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null, canBuy () { - return this.event && moment().isBetween('2023-03-28T08:00-05:00', this.event.end); + return this.event && moment().isBetween('2024-04-18T08:00-05:00', this.event.end); }, text: t('questEggHuntText'), notes: t('questEggHuntNotes'), diff --git a/website/common/script/content/shop-featuredItems.js b/website/common/script/content/shop-featuredItems.js index 08067ba5f7..cd2d655548 100644 --- a/website/common/script/content/shop-featuredItems.js +++ b/website/common/script/content/shop-featuredItems.js @@ -7,7 +7,7 @@ import { EVENTS } from './constants'; // hatching potions and food names should be capitalized lest you break the market const featuredItems = { market () { - if (moment().isBetween(EVENTS.potions202402.start, EVENTS.potions202402.end)) { + if (moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end)) { return [ { type: 'armoire', @@ -15,15 +15,15 @@ const featuredItems = { }, { type: 'premiumHatchingPotion', - path: 'premiumHatchingPotions.RoseGold', + path: 'premiumHatchingPotions.Celestial', }, { type: 'premiumHatchingPotion', - path: 'premiumHatchingPotions.Cupid', + path: 'premiumHatchingPotions.Shimmer', }, { - type: 'hatchingPotions', - path: 'hatchingPotions.Red', + type: 'premiumHatchingPotion', + path: 'premiumHatchingPotions.Rainbow', }, ]; } @@ -34,15 +34,15 @@ const featuredItems = { }, { type: 'food', - path: 'food.Chocolate', + path: 'food.Fish', }, { type: 'hatchingPotions', - path: 'hatchingPotions.Desert', + path: 'hatchingPotions.Skeleton', }, { type: 'eggs', - path: 'eggs.Cactus', + path: 'eggs.Fox', }, ]; }, @@ -79,7 +79,7 @@ const featuredItems = { }, ]; }, - seasonal: 'winter2021WinterMoonMageSet', + seasonal: 'spring2019CloudRogueSet', timeTravelers: [ // TODO ], diff --git a/website/common/script/content/spells.js b/website/common/script/content/spells.js index d94d314e0a..7a4f7a6451 100644 --- a/website/common/script/content/spells.js +++ b/website/common/script/content/spells.js @@ -352,9 +352,9 @@ spells.special = { previousPurchase: true, target: 'user', notes: t('spellSpecialShinySeedNotes'), - event: EVENTS.spring2023, + event: EVENTS.spring2024, canOwn () { - return moment().isBetween('2023-04-18T08:00-05:00', EVENTS.spring2023.end); + return moment().isBetween('2024-04-18T08:00-05:00', EVENTS.spring2024.end); }, cast (user, target, req) { if (!user.items.special.shinySeed) throw new NotAuthorized(t('spellNotOwned')(req.language)); diff --git a/website/common/script/libs/shops-seasonal.config.js b/website/common/script/libs/shops-seasonal.config.js index 46cb1b57b7..69f7bd79d8 100644 --- a/website/common/script/libs/shops-seasonal.config.js +++ b/website/common/script/libs/shops-seasonal.config.js @@ -27,25 +27,24 @@ export default { pinnedSets: CURRENT_EVENT ? { - rogue: 'winter2024SnowyOwlRogueSet', - warrior: 'winter2024PeppermintBarkWarriorSet', - wizard: 'winter2024NarwhalWizardMageSet', - healer: 'winter2024FrozenHealerSet', + rogue: 'spring2024MeltingSnowRogueSet', + warrior: 'spring2024FluoriteWarriorSet', + wizard: 'spring2024HibiscusMageSet', + healer: 'spring2024BluebirdHealerSet', } : {}, - availableSpells: CURRENT_EVENT && moment().isBetween('2024-01-09T08:00-04:00', CURRENT_EVENT.end) + availableSpells: CURRENT_EVENT && moment().isBetween('2024-04-18T08:00-05:00', CURRENT_EVENT.end) ? [ - 'snowball', + 'shinySeed', ] : [], - availableQuests: CURRENT_EVENT && moment().isBetween(CURRENT_EVENT.start, CURRENT_EVENT.end) + availableQuests: CURRENT_EVENT && moment().isBetween('2024-04-18T08:00-05:00', CURRENT_EVENT.end) ? [ - 'evilsanta', - 'evilsanta2', + 'egg', ] : [], - featuredSet: 'winter2019PoinsettiaSet', + featuredSet: 'spring2020LapisLazuliRogueSet', };