update(content): March 2024 content (#15161)
* feat(content): add February subscriber item, backgrounds, and enchanted armoire gear * feat(content): add spritesheet * feat(content): bug smashing * fix(file): revert package.json to release * feat(content): add quest bundles * feat(content): add new achievement * feat(content): add achievement script * fix(curlies): remove stray curly boi * fix(date): add canonical date * fix(dates): updated background & armoire to canonical dates * feat(content): add armoire strings & stats * fix(migration): Golden Squirrel * fix(backgrounds): trim extra whitespace * fix(test): cuddle timing --------- Co-authored-by: Sabe Jones <sabe@habitica.com> Co-authored-by: Sabe Jones <sabrecat@gmail.com>
This commit is contained in:
@@ -214,6 +214,12 @@ const animalSetAchievs = {
|
||||
titleKey: 'achievementReptacularRumble',
|
||||
textKey: 'achievementReptacularRumbleText',
|
||||
},
|
||||
rodentRuler: {
|
||||
icon: 'achievement-rodentRuler',
|
||||
titleKey: 'achievementRodentRuler',
|
||||
textKey: 'achievementRodentRulerText',
|
||||
release: '2024-03-19T08:00-05:00',
|
||||
},
|
||||
roughRider: {
|
||||
icon: 'achievement-roughRider',
|
||||
titleKey: 'achievementRoughRider',
|
||||
|
||||
@@ -607,6 +607,11 @@ const plannedBackgrounds = {
|
||||
swan_boat: { },
|
||||
heart_tree_tunnel: { },
|
||||
},
|
||||
backgrounds032024: {
|
||||
flowering_forest: { },
|
||||
dog_park: { },
|
||||
rainy_rainforest: { },
|
||||
},
|
||||
eventBackgrounds: {
|
||||
birthday_bash: {
|
||||
price: 0,
|
||||
@@ -655,6 +660,7 @@ const releaseDates = {
|
||||
backgrounds122023: '2023-12-05T08:00-05:00',
|
||||
backgrounds012024: '2024-01-04T08:00-05:00',
|
||||
backgrounds022024: '2024-02-06T08:00-05:00',
|
||||
backgrounds032024: '2024-03-05T08:00-05:00',
|
||||
};
|
||||
|
||||
const flat = {};
|
||||
|
||||
@@ -110,14 +110,15 @@ const bundles = {
|
||||
cuddleBuddies: {
|
||||
key: 'cuddleBuddies',
|
||||
text: t('cuddleBuddiesText'),
|
||||
notes: t('cuddleBuddiesNotes', { date: moment('2022-03-31').format('LL') }), // needs update next time we run this
|
||||
notes: t('cuddleBuddiesNotes', { date: moment(EVENTS.bundle202403.end).format('LL') }),
|
||||
bundleKeys: [
|
||||
'bunny',
|
||||
'ferret',
|
||||
'guineapig',
|
||||
],
|
||||
event: EVENTS.bundle202403,
|
||||
canBuy () {
|
||||
return moment().isBetween('2022-03-15T08:00-04:00', '2022-03-31T20:00-04:00');
|
||||
return moment().isBetween(EVENTS.bundle202403.start, EVENTS.bundle202403.end);
|
||||
},
|
||||
type: 'quests',
|
||||
value: 7,
|
||||
|
||||
@@ -120,6 +120,16 @@ const ANIMAL_SET_ACHIEVEMENTS = {
|
||||
achievementKey: 'reptacularRumble',
|
||||
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
||||
},
|
||||
rodentRuler: {
|
||||
type: 'pet',
|
||||
species: [
|
||||
'Rat',
|
||||
'GuineaPig',
|
||||
'Squirrel',
|
||||
],
|
||||
achievementKey: 'rodentRuler',
|
||||
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
||||
},
|
||||
roughRider: {
|
||||
type: 'petMount',
|
||||
species: [
|
||||
|
||||
@@ -15,6 +15,10 @@ export const EVENTS = {
|
||||
season: 'normal',
|
||||
npcImageSuffix: '',
|
||||
},
|
||||
bundle202403: {
|
||||
start: '2024-03-19T00:00-05:00',
|
||||
end: '2024-03-31T08:00-05:00',
|
||||
},
|
||||
bundle202402: {
|
||||
start: '2024-02-20T00:00-05:00',
|
||||
end: '2024-02-29T08:00-05:00',
|
||||
|
||||
@@ -462,6 +462,10 @@ const armor = {
|
||||
per: 10,
|
||||
set: 'whiteLoungeWear',
|
||||
},
|
||||
hattersSuit: {
|
||||
con: 9,
|
||||
set: 'hatterSet',
|
||||
},
|
||||
};
|
||||
|
||||
const body = {
|
||||
@@ -959,6 +963,10 @@ const head = {
|
||||
con: 5,
|
||||
set: 'whiteLoungeWear',
|
||||
},
|
||||
hattersTopHat: {
|
||||
per: 10,
|
||||
set: 'hatterSet',
|
||||
},
|
||||
};
|
||||
|
||||
const shield = {
|
||||
@@ -1291,6 +1299,10 @@ const shield = {
|
||||
per: 6,
|
||||
set: 'whiteLoungeWear',
|
||||
},
|
||||
hattersPocketWatch: {
|
||||
int: 9,
|
||||
set: 'hatterSet',
|
||||
},
|
||||
};
|
||||
|
||||
const headAccessory = {
|
||||
@@ -1760,6 +1772,10 @@ const weapon = {
|
||||
int: 10,
|
||||
set: 'schoolUniform',
|
||||
},
|
||||
hattersShears: {
|
||||
str: 10,
|
||||
set: 'hatterSet',
|
||||
},
|
||||
};
|
||||
|
||||
const releaseDates = {
|
||||
@@ -1768,6 +1784,7 @@ const releaseDates = {
|
||||
greenTrapper: '2023-12-05T08:00-05:00',
|
||||
schoolUniform: '2024-01-04T08:00-05:00',
|
||||
whiteLoungeWear: '2024-02-06T08:00-05:00',
|
||||
hatterSet: '2024-03-05T08:00-05:00',
|
||||
};
|
||||
|
||||
forEach({
|
||||
|
||||
@@ -220,6 +220,7 @@ const head = {
|
||||
202311: { },
|
||||
202312: { },
|
||||
202402: { },
|
||||
202403: { },
|
||||
301404: { },
|
||||
301405: { },
|
||||
301703: { },
|
||||
@@ -286,6 +287,7 @@ const weapon = {
|
||||
202209: { },
|
||||
202306: { },
|
||||
202311: { },
|
||||
202403: { },
|
||||
301404: { },
|
||||
};
|
||||
|
||||
|
||||
@@ -47,19 +47,19 @@ const featuredItems = {
|
||||
];
|
||||
},
|
||||
quests () {
|
||||
if (moment().isBetween(EVENTS.bundle202402.start, EVENTS.bundle202402.end)) {
|
||||
if (moment().isBetween(EVENTS.bundle202403.start, EVENTS.bundle202403.end)) {
|
||||
return [
|
||||
{
|
||||
type: 'bundles',
|
||||
path: 'bundles.mythicalMarvels',
|
||||
path: 'bundles.cuddleBuddies',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.nudibranch',
|
||||
path: 'quests.hedgehog',
|
||||
},
|
||||
{
|
||||
type: 'quests',
|
||||
path: 'quests.axolotl',
|
||||
path: 'quests.sheep',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -229,6 +229,7 @@ function _getBasicAchievements (user, language) {
|
||||
_addSimple(result, user, { path: 'bonelessBoss', language });
|
||||
_addSimple(result, user, { path: 'duneBuddy', language });
|
||||
_addSimple(result, user, { path: 'roughRider', language });
|
||||
_addSimple(result, user, { path: 'rodentRuler', language });
|
||||
|
||||
_addSimpleWithMasterCount(result, user, { path: 'beastMaster', language });
|
||||
_addSimpleWithMasterCount(result, user, { path: 'mountMaster', language });
|
||||
|
||||
Reference in New Issue
Block a user