update(content): add 2024 Spring Fling (#15168)

* update(content): add spring fling images, items, and placeholder text

* update(dates) : set canonical dates

* update(dates/quests): set canonical dates for both, add egg quest availability

* update(date): update quest availability start date

* update(content): add magic hatching potions

* fix(dates): canonical dates

* fix(event): add correct event name to potions

* fix(dates): canonical dates

* fix(dates): fix UTC offset, remove package.json and package-lock.json

* fix(dates): canonical

* fix: re-added package.json and package-lock.json

* update(content): add gear strings

* update(content): add Rogue off-hand string, canonical dates
This commit is contained in:
Natalie
2024-03-13 17:34:41 -04:00
committed by GitHub
parent 8c7a0b4861
commit 3e5226de67
12 changed files with 317 additions and 36 deletions

View File

@@ -29607,6 +29607,26 @@
width: 117px; width: 117px;
height: 120px; 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 { .broad_armor_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_springHealer.png');
width: 90px; width: 90px;
@@ -29887,6 +29907,26 @@
width: 117px; width: 117px;
height: 120px; 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 { .head_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_springHealer.png');
width: 90px; width: 90px;
@@ -30042,6 +30082,21 @@
width: 117px; width: 117px;
height: 120px; 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 { .shield_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_springHealer.png');
width: 90px; width: 90px;
@@ -30237,6 +30292,26 @@
width: 68px; width: 68px;
height: 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 { .shop_armor_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_special_springHealer.png');
width: 68px; width: 68px;
@@ -30517,6 +30592,26 @@
width: 68px; width: 68px;
height: 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 { .shop_head_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_special_springHealer.png');
width: 68px; width: 68px;
@@ -30672,6 +30767,21 @@
width: 68px; width: 68px;
height: 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 { .shop_shield_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_special_springHealer.png');
width: 68px; width: 68px;
@@ -30867,6 +30977,26 @@
width: 68px; width: 68px;
height: 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 { .shop_weapon_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_special_springHealer.png');
width: 68px; width: 68px;
@@ -31067,6 +31197,26 @@
width: 117px; width: 117px;
height: 120px; 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 { .slim_armor_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_springHealer.png');
width: 90px; width: 90px;
@@ -31267,6 +31417,26 @@
width: 117px; width: 117px;
height: 120px; 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 { .weapon_special_springHealer {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_springHealer.png'); background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_springHealer.png');
width: 90px; width: 90px;

View File

@@ -504,6 +504,15 @@
"weaponSpecialWinter2024HealerText": "Torch", "weaponSpecialWinter2024HealerText": "Torch",
"weaponSpecialWinter2024HealerNotes": "Melt yourself out of this jam in no time! Increases Intelligence by <%= int %>. Limited Edition Winter 2023-2024 Gear.", "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", "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.", "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", "weaponMystery201502Text": "Shimmery Winged Staff of Love and Also Truth",
@@ -1228,6 +1237,15 @@
"armorSpecialWinter2024HealerText": "Frozen Armor", "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.", "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", "armorMystery201402Text": "Messenger Robes",
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.", "armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.",
"armorMystery201403Text": "Forest Walker Armor", "armorMystery201403Text": "Forest Walker Armor",
@@ -2040,6 +2058,15 @@
"headSpecialWinter2024HealerText": "Frozen Helm", "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.", "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", "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.", "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", "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.", "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", "shieldMystery201601Text": "Resolution Slayer",
"shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.", "shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.",
"shieldMystery201701Text": "Time-Freezer Shield", "shieldMystery201701Text": "Time-Freezer Shield",

View File

@@ -211,6 +211,10 @@
"winter2024FrozenHealerSet": "Frozen (Healer)", "winter2024FrozenHealerSet": "Frozen (Healer)",
"winter2024PeppermintBarkWarriorSet": "Peppermint Bark Set (Warrior)", "winter2024PeppermintBarkWarriorSet": "Peppermint Bark Set (Warrior)",
"winter2024NarwhalWizardMageSet": "Narwhal Wizard Set (Mage)", "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) %>.", "eventAvailability": "Available for purchase until <%= date(locale) %>.",
"dateEndJanuary": "January 31", "dateEndJanuary": "January 31",
"dateEndFebruary": "February 29", "dateEndFebruary": "February 29",

View File

@@ -12,18 +12,18 @@ export default prefill({
pastelHairColors: { setPrice: 5, availableUntil: '2016-01-01' }, pastelHairColors: { setPrice: 5, availableUntil: '2016-01-01' },
rainbowHairColors: { setPrice: 5, text: t('rainbowColors') }, rainbowHairColors: { setPrice: 5, text: t('rainbowColors') },
shimmerHairColors: { 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: { hauntedHairColors: {
setPrice: 5, availableFrom: '2023-10-03T08:00-04:00', availableUntil: EVENTS.fall2023.end, text: t('hauntedColors'), setPrice: 5, availableFrom: '2023-10-03T08:00-04:00', availableUntil: EVENTS.fall2023.end, text: t('hauntedColors'),
}, },
winteryHairColors: { 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') }, rainbowSkins: { setPrice: 5, text: t('rainbowSkins') },
animalSkins: { setPrice: 5, text: t('animalSkins') }, animalSkins: { setPrice: 5, text: t('animalSkins') },
pastelSkins: { 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') }, spookySkins: { setPrice: 5, availableUntil: '2016-01-01', text: t('spookySkins') },
supernaturalSkins: { supernaturalSkins: {
@@ -33,6 +33,6 @@ export default prefill({
setPrice: 5, availableFrom: '2023-07-11T08:00-05:00', availableUntil: EVENTS.summer2023.end, text: t('splashySkins'), setPrice: 5, availableFrom: '2023-07-11T08:00-05:00', availableUntil: EVENTS.summer2023.end, text: t('splashySkins'),
}, },
winterySkins: { 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'),
}, },
}); });

View File

@@ -10,11 +10,18 @@ const gemsPromo = {
export const EVENTS = { export const EVENTS = {
noEvent: { noEvent: {
start: '2024-03-01T00:00-05:00', start: '2024-05-01T00:00-05:00',
end: '2024-03-20T08:00-05:00', end: '2024-06-20T08:00-05:00',
season: 'normal', season: 'normal',
npcImageSuffix: '', npcImageSuffix: '',
}, },
spring2024: {
start: '2024-03-21T00:00-04:00',
end: '2024-04-30T23:59-04:00',
npcImageSuffix: '_spring',
season: 'spring',
gear: true,
},
bundle202403: { bundle202403: {
start: '2024-03-19T00:00-05:00', start: '2024-03-19T00:00-05:00',
end: '2024-03-31T08:00-05:00', end: '2024-03-31T08:00-05:00',

View File

@@ -111,6 +111,11 @@ const SEASONAL_SETS = {
'spring2023HummingbirdWarriorSet', 'spring2023HummingbirdWarriorSet',
'spring2023MoonstoneMageSet', 'spring2023MoonstoneMageSet',
'spring2023LilyHealerSet', 'spring2023LilyHealerSet',
'spring2024FluoriteWarriorSet',
'spring2024HibiscusMageSet',
'spring2024BluebirdHealerSet',
'spring2024MeltingSnowRogueSet',
], ],
summer: [ summer: [

View File

@@ -858,15 +858,19 @@ const armor = {
}, },
winter2024Warrior: { winter2024Warrior: {
set: 'winter2024PeppermintBarkWarriorSet', set: 'winter2024PeppermintBarkWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Mage: { winter2024Mage: {
set: 'winter2024NarwhalWizardMageSet', set: 'winter2024NarwhalWizardMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Healer: { winter2024Healer: {
set: 'winter2024FrozenHealerSet', set: 'winter2024FrozenHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Rogue: { winter2024Rogue: {
set: 'winter2024SnowyOwlRogueSet', set: 'winter2024SnowyOwlRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
birthday2024: { birthday2024: {
text: t('armorSpecialBirthday2024Text'), text: t('armorSpecialBirthday2024Text'),
@@ -874,6 +878,18 @@ const armor = {
value: 0, value: 0,
canOwn: ownsItem('armor_special_birthday2024'), canOwn: ownsItem('armor_special_birthday2024'),
}, },
spring2024Warrior: {
set: 'spring2024FluoriteWarriorSet',
},
spring2024Mage: {
set: 'spring2024HibiscusMageSet',
},
spring2024Healer: {
set: 'spring2024BluebirdHealerSet',
},
spring2024Rogue: {
set: 'spring2024MeltingSnowRogueSet',
},
}; };
const armorStats = { const armorStats = {
@@ -2087,15 +2103,19 @@ const head = {
}, },
winter2024Healer: { winter2024Healer: {
set: 'winter2024FrozenHealerSet', set: 'winter2024FrozenHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Rogue: { winter2024Rogue: {
set: 'winter2024SnowyOwlRogueSet', set: 'winter2024SnowyOwlRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Warrior: { winter2024Warrior: {
set: 'winter2024PeppermintBarkWarriorSet', set: 'winter2024PeppermintBarkWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Mage: { winter2024Mage: {
set: 'winter2024NarwhalWizardMageSet', set: 'winter2024NarwhalWizardMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
nye2023: { nye2023: {
text: t('headSpecialNye2023Text'), text: t('headSpecialNye2023Text'),
@@ -2103,6 +2123,18 @@ const head = {
value: 0, value: 0,
canOwn: ownsItem('head_special_nye2023'), canOwn: ownsItem('head_special_nye2023'),
}, },
spring2024Warrior: {
set: 'spring2024FluoriteWarriorSet',
},
spring2024Mage: {
set: 'spring2024HibiscusMageSet',
},
spring2024Healer: {
set: 'spring2024BluebirdHealerSet',
},
spring2024Rogue: {
set: 'spring2024MeltingSnowRogueSet',
},
}; };
const headStats = { const headStats = {
@@ -2961,12 +2993,26 @@ const shield = {
}, },
winter2024Warrior: { winter2024Warrior: {
set: 'winter2024PeppermintBarkWarriorSet', set: 'winter2024PeppermintBarkWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Rogue: { winter2024Rogue: {
set: 'winter2024SnowyOwlRogueSet', set: 'winter2024SnowyOwlRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Healer: { winter2024Healer: {
set: 'winter2024FrozenHealerSet', 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: { winter2024Rogue: {
set: 'winter2024SnowyOwlRogueSet', set: 'winter2024SnowyOwlRogueSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Healer: { winter2024Healer: {
set: 'winter2024FrozenHealerSet', set: 'winter2024FrozenHealerSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Warrior: { winter2024Warrior: {
set: 'winter2024PeppermintBarkWarriorSet', set: 'winter2024PeppermintBarkWarriorSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
}, },
winter2024Mage: { winter2024Mage: {
set: 'winter2024NarwhalWizardMageSet', set: 'winter2024NarwhalWizardMageSet',
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'winter',
},
spring2024Warrior: {
set: 'spring2024FluoriteWarriorSet',
},
spring2024Mage: {
set: 'spring2024HibiscusMageSet',
},
spring2024Healer: {
set: 'spring2024BluebirdHealerSet',
},
spring2024Rogue: {
set: 'spring2024MeltingSnowRogueSet',
}, },
}; };

View File

@@ -74,12 +74,12 @@ const premium = {
value: 2, value: 2,
text: t('hatchingPotionShimmer'), text: t('hatchingPotionShimmer'),
limited: true, limited: true,
event: EVENTS.birthday10, event: EVENTS.spring2024,
_addlNotes: t('eventAvailability', { _addlNotes: t('eventAvailability', {
date: t('dateEndJanuary'), date: t('dateEndApril'),
}), }),
canBuy () { canBuy () {
return moment().isBetween(EVENTS.birthday10.start, EVENTS.birthday10.end); return moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end);
}, },
}, },
Fairy: { Fairy: {
@@ -209,9 +209,9 @@ const premium = {
_addlNotes: t('eventAvailability', { _addlNotes: t('eventAvailability', {
date: t('dateEndApril'), date: t('dateEndApril'),
}), }),
event: EVENTS.spring2023, event: EVENTS.spring2024,
canBuy () { canBuy () {
return moment().isBefore(EVENTS.spring2023.end); return moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end);
}, },
}, },
Glass: { Glass: {
@@ -278,12 +278,12 @@ const premium = {
value: 2, value: 2,
text: t('hatchingPotionCelestial'), text: t('hatchingPotionCelestial'),
limited: true, limited: true,
event: EVENTS.birthday10, event: EVENTS.spring2024,
_addlNotes: t('eventAvailability', { _addlNotes: t('eventAvailability', {
date: t('dateStartFebruary'), date: t('dateEndApril'),
}), }),
canBuy () { canBuy () {
return moment().isBetween(EVENTS.birthday10.start, EVENTS.birthday10.end); return moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end);
}, },
}, },
Sunshine: { Sunshine: {

View File

@@ -73,7 +73,7 @@ const QUEST_SEASONAL = {
egg: { egg: {
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null, event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
canBuy () { 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'), text: t('questEggHuntText'),
notes: t('questEggHuntNotes'), notes: t('questEggHuntNotes'),

View File

@@ -7,7 +7,7 @@ import { EVENTS } from './constants';
// hatching potions and food names should be capitalized lest you break the market // hatching potions and food names should be capitalized lest you break the market
const featuredItems = { const featuredItems = {
market () { market () {
if (moment().isBetween(EVENTS.potions202402.start, EVENTS.potions202402.end)) { if (moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end)) {
return [ return [
{ {
type: 'armoire', type: 'armoire',
@@ -15,15 +15,15 @@ const featuredItems = {
}, },
{ {
type: 'premiumHatchingPotion', type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.RoseGold', path: 'premiumHatchingPotions.Celestial',
}, },
{ {
type: 'premiumHatchingPotion', type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Cupid', path: 'premiumHatchingPotions.Shimmer',
}, },
{ {
type: 'hatchingPotions', type: 'premiumHatchingPotion',
path: 'hatchingPotions.Red', path: 'premiumHatchingPotions.Rainbow',
}, },
]; ];
} }
@@ -34,15 +34,15 @@ const featuredItems = {
}, },
{ {
type: 'food', type: 'food',
path: 'food.Chocolate', path: 'food.Fish',
}, },
{ {
type: 'hatchingPotions', type: 'hatchingPotions',
path: 'hatchingPotions.Desert', path: 'hatchingPotions.Skeleton',
}, },
{ {
type: 'eggs', type: 'eggs',
path: 'eggs.Cactus', path: 'eggs.Fox',
}, },
]; ];
}, },
@@ -79,7 +79,7 @@ const featuredItems = {
}, },
]; ];
}, },
seasonal: 'winter2021WinterMoonMageSet', seasonal: 'spring2019CloudRogueSet',
timeTravelers: [ timeTravelers: [
// TODO // TODO
], ],

View File

@@ -352,9 +352,9 @@ spells.special = {
previousPurchase: true, previousPurchase: true,
target: 'user', target: 'user',
notes: t('spellSpecialShinySeedNotes'), notes: t('spellSpecialShinySeedNotes'),
event: EVENTS.spring2023, event: EVENTS.spring2024,
canOwn () { 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) { cast (user, target, req) {
if (!user.items.special.shinySeed) throw new NotAuthorized(t('spellNotOwned')(req.language)); if (!user.items.special.shinySeed) throw new NotAuthorized(t('spellNotOwned')(req.language));

View File

@@ -27,25 +27,24 @@ export default {
pinnedSets: CURRENT_EVENT pinnedSets: CURRENT_EVENT
? { ? {
rogue: 'winter2024SnowyOwlRogueSet', rogue: 'spring2024MeltingSnowRogueSet',
warrior: 'winter2024PeppermintBarkWarriorSet', warrior: 'spring2024FluoriteWarriorSet',
wizard: 'winter2024NarwhalWizardMageSet', wizard: 'spring2024HibiscusMageSet',
healer: 'winter2024FrozenHealerSet', 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', 'egg',
'evilsanta2',
] ]
: [], : [],
featuredSet: 'winter2019PoinsettiaSet', featuredSet: 'spring2020LapisLazuliRogueSet',
}; };