diff --git a/habitica-images b/habitica-images index 428d395f36..4ec7469f72 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 428d395f36c7c6424df55c8d94190ed5f849f1cd +Subproject commit 4ec7469f72f59f0fdac74710d32add59958a540e diff --git a/package-lock.json b/package-lock.json index 2903d537ed..f60a5804e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "habitica", - "version": "4.265.0", + "version": "4.267.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6c9b0eddcb..9692d64c6e 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.265.0", + "version": "4.267.0", "main": "./website/server/index.js", "dependencies": { "@babel/core": "^7.20.12", diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index c408b90a23..c2c9f08756 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -1389,6 +1389,11 @@ width: 141px; height: 147px; } +.background_leafy_tree_tunnel { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_leafy_tree_tunnel.png'); + width: 141px; + height: 147px; +} .background_lighthouse_shore { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_lighthouse_shore.png'); width: 141px; @@ -1839,6 +1844,11 @@ width: 141px; height: 147px; } +.background_springtime_shower { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_springtime_shower.png'); + width: 141px; + height: 147px; +} .background_stable { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_stable.png'); width: 141px; @@ -2024,6 +2034,11 @@ width: 141px; height: 147px; } +.background_under_wisteria { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_under_wisteria.png'); + width: 141px; + height: 147px; +} .background_underwater_among_koi { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_underwater_among_koi.png'); width: 141px; @@ -3060,6 +3075,11 @@ width: 68px; height: 68px; } +.icon_background_leafy_tree_tunnel { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_leafy_tree_tunnel.png'); + width: 68px; + height: 68px; +} .icon_background_lighthouse_shore { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_lighthouse_shore.png'); width: 68px; @@ -3510,6 +3530,11 @@ width: 68px; height: 68px; } +.icon_background_springtime_shower { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_springtime_shower.png'); + width: 68px; + height: 68px; +} .icon_background_stable { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_stable.png'); width: 68px; @@ -3700,6 +3725,11 @@ width: 68px; height: 68px; } +.icon_background_under_wisteria { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_under_wisteria.png'); + width: 68px; + height: 68px; +} .icon_background_underwater_among_koi { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_underwater_among_koi.png'); width: 68px; @@ -18835,6 +18865,11 @@ width: 90px; height: 90px; } +.head_armoire_beaniePropellerHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_beaniePropellerHat.png'); + width: 114px; + height: 90px; +} .head_armoire_bigWig { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_bigWig.png'); width: 90px; @@ -20115,6 +20150,11 @@ width: 68px; height: 68px; } +.shop_head_armoire_beaniePropellerHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_beaniePropellerHat.png'); + width: 68px; + height: 68px; +} .shop_head_armoire_bigWig { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_bigWig.png'); width: 68px; @@ -58403,11 +58443,6 @@ width: 81px; height: 99px; } -.Pet-HatchingPotion-TeaShop { - background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-HatchingPotion-TeaShop.png'); - width: 68px; - height: 68px; -} .Pet_HatchingPotion_Amber { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Amber.png'); width: 68px; @@ -58653,6 +58688,11 @@ width: 68px; height: 68px; } +.Pet_HatchingPotion_TeaShop { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_TeaShop.png'); + width: 68px; + height: 68px; +} .Pet_HatchingPotion_Thunderstorm { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Thunderstorm.png'); width: 68px; diff --git a/website/common/locales/en/backgrounds.json b/website/common/locales/en/backgrounds.json index 32e9e1e8e1..e0f8c4b297 100644 --- a/website/common/locales/en/backgrounds.json +++ b/website/common/locales/en/backgrounds.json @@ -867,6 +867,14 @@ "backgroundMangroveForestText": "Mangrove Forest", "backgroundMangroveForestNotes": "Explore the edge of the Mangrove Forest.", + "backgrounds042023": "SET 107: Released April 2023", + "backgroundLeafyTreeTunnelText": "Leafy Tree Tunnel", + "backgroundLeafyTreeTunnelNotes": "Wander through a Leafy Tree Tunnel.", + "backgroundSpringtimeShowerText": "Springtime Shower", + "backgroundSpringtimeShowerNotes": "See a Flowery Springtime Shower.", + "backgroundUnderWisteriaText": "Under Wisteria", + "backgroundUnderWisteriaNotes": "Relax Under Wisteria.", + "timeTravelBackgrounds": "Steampunk Backgrounds", "backgroundAirshipText": "Airship", "backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.", diff --git a/website/common/locales/en/content.json b/website/common/locales/en/content.json index 21af836eba..d7be693d2f 100644 --- a/website/common/locales/en/content.json +++ b/website/common/locales/en/content.json @@ -311,6 +311,7 @@ "hatchingPotionVirtualPet": "Virtual Pet", "hatchingPotionPorcelain": "Porcelain", "hatchingPotionPinkMarble": "Pink Marble", + "hatchingPotionTeaShop": "Tea Shop", "hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> pet.", "premiumPotionAddlNotes": "Not usable on quest pet eggs. Available for purchase until <%= date(locale) %>.", diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 52cbd45c0f..6c7ba8a703 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -2230,6 +2230,8 @@ "headArmoireFancyPirateHatNotes": "Be protected from the sun and any seagulls flying overhead as you drink tea on the deck of your ship. Increases Perception by <%= per %>. Enchanted Armoire: Fancy Pirate Set (Item 2 of 3).", "headArmoireTeaHatText": "Tea Party Hat", "headArmoireTeaHatNotes": "This elegant hat is both fancy and functional. Increases Perception by <%= per %>. Enchanted Armoire: Tea Party Set (Item 2 of 3).", + "headArmoireBeaniePropellerHatText": "Beanie Propeller Hat", + "headArmoireBeaniePropellerHatNotes": "This isn’t the time to keep your feet on the ground! Spin this little propeller and rise as high as your ambitions will take you. Increases all stats by <%= attrs %>. Enchanted Armoire: Independent Item.", "offhand": "off-hand item", "offHandCapitalized": "Off-Hand Item", diff --git a/website/common/script/content/appearance/backgrounds.js b/website/common/script/content/appearance/backgrounds.js index b5736c802f..1a1ddd05a8 100644 --- a/website/common/script/content/appearance/backgrounds.js +++ b/website/common/script/content/appearance/backgrounds.js @@ -550,6 +550,11 @@ const backgrounds = { mangrove_forest: { }, old_timey_basketball_court: { }, }, + backgrounds042023: { + leafy_tree_tunnel: { }, + springtime_shower: { }, + under_wisteria: { }, + }, eventBackgrounds: { birthday_bash: { price: 0, diff --git a/website/common/script/content/constants/events.js b/website/common/script/content/constants/events.js index ffab2e9e46..84896195bc 100644 --- a/website/common/script/content/constants/events.js +++ b/website/common/script/content/constants/events.js @@ -16,8 +16,8 @@ export const EVENTS = { npcImageSuffix: '', }, aprilFools2023: { - start: '2023-04-01T08:00-05:00', - end: '2023-04-02T08:00-05:00', + start: '2023-04-01T08:00-04:00', + end: '2023-04-02T08:00-04:00', aprilFools: 'teaShop', }, spring2023: { diff --git a/website/common/script/content/gear/sets/armoire.js b/website/common/script/content/gear/sets/armoire.js index 05efe54b1e..df27c95e7a 100644 --- a/website/common/script/content/gear/sets/armoire.js +++ b/website/common/script/content/gear/sets/armoire.js @@ -845,6 +845,12 @@ const head = { per: 10, set: 'teaParty', }, + beaniePropellerHat: { + con: 3, + per: 3, + str: 3, + int: 3, + }, }; const shield = { diff --git a/website/common/script/content/hatching-potions.js b/website/common/script/content/hatching-potions.js index f30535d985..60d1cf21eb 100644 --- a/website/common/script/content/hatching-potions.js +++ b/website/common/script/content/hatching-potions.js @@ -564,13 +564,13 @@ const wacky = { Veggie: { text: t('hatchingPotionVeggie'), limited: true, - event: EVENTS.spring2022, + event: EVENTS.spring2023, _addlNotes: t('eventAvailabilityReturning', { availableDate: t('dateEndApril'), - previousDate: t('aprilYYYY', { year: 2021 }), + previousDate: t('aprilYYYY', { year: 2022 }), }), canBuy () { - return moment().isBetween('2022-04-07T08:00-05:00', EVENTS.spring2022.end); + return moment().isBetween('2023-04-06T08:00-04:00', EVENTS.spring2023.end); }, }, Dessert: { @@ -585,6 +585,17 @@ const wacky = { _addlNotes: t('premiumPotionUnlimitedNotes'), canBuy: hasQuestAchievementFunction('virtualpet'), }, + TeaShop: { + text: t('hatchingPotionTeaShop'), + limited: true, + event: EVENTS.spring2023, + _addlNotes: t('premiumPotionAddlNotes', { + date: t('dateEndApril'), + }), + canBuy () { + return moment().isBetween('2023-04-06T08:00-04:00', EVENTS.spring2023.end); + }, + }, }; each(drops, (pot, key) => {