diff --git a/habitica-images b/habitica-images index 7203f4633c..7051701604 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 7203f4633cc90ede5b2f6745393d54493c487ff6 +Subproject commit 7051701604ff6ea246bf96995f4869ca95696d88 diff --git a/test/api/unit/libs/payments/skuItem.test.js b/test/api/unit/libs/payments/skuItem.test.js index bc4bbb5c94..41aa180faf 100644 --- a/test/api/unit/libs/payments/skuItem.test.js +++ b/test/api/unit/libs/payments/skuItem.test.js @@ -23,7 +23,7 @@ describe('payments/skuItems', () => { describe('#gryphatrice', () => { const sku = 'Pet-Gryphatrice-Jubilant'; it('returns true during birthday week', () => { - clock = sinon.useFakeTimers(new Date('2023-01-29')); + clock = sinon.useFakeTimers(new Date('2023-01-31')); expect(canBuySkuItem(sku, user)).to.be.true; }); it('returns false outside of birthday week', () => { diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index 7f3f7c653d..e20700e5c5 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -945,6 +945,11 @@ width: 141px; height: 147px; } +.background_fancy_bedroom { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_fancy_bedroom.png'); + width: 141px; + height: 147px; +} .background_fantastical_shoe_store { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_fantastical_shoe_store.png'); width: 141px; @@ -1164,6 +1169,11 @@ width: 141px; height: 147px; } +.background_golden_birdcage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_golden_birdcage.png'); + width: 141px; + height: 147px; +} .background_gorgeous_greenhouse { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_gorgeous_greenhouse.png'); width: 141px; @@ -1319,6 +1329,11 @@ width: 141px; height: 147px; } +.background_in_front_of_fountain { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_in_front_of_fountain.png'); + width: 141px; + height: 147px; +} .background_in_the_armory { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_in_the_armory.png'); width: 141px; @@ -2586,6 +2601,11 @@ width: 68px; height: 68px; } +.icon_background_fancy_bedroom { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_fancy_bedroom.png'); + width: 68px; + height: 68px; +} .icon_background_fantastical_shoe_store { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_fantastical_shoe_store.png'); width: 68px; @@ -2805,6 +2825,11 @@ width: 68px; height: 68px; } +.icon_background_golden_birdcage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_golden_birdcage.png'); + width: 68px; + height: 68px; +} .icon_background_gorgeous_greenhouse { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_gorgeous_greenhouse.png'); width: 68px; @@ -2960,6 +2985,11 @@ width: 68px; height: 68px; } +.icon_background_in_front_of_fountain { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_in_front_of_fountain.png'); + width: 68px; + height: 68px; +} .icon_background_in_the_armory { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_in_the_armory.png'); width: 68px; @@ -18660,6 +18690,11 @@ width: 114px; height: 90px; } +.broad_armor_armoire_teaGown { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_teaGown.png'); + width: 114px; + height: 90px; +} .broad_armor_armoire_vermilionArcherArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_vermilionArcherArmor.png'); width: 90px; @@ -19100,6 +19135,11 @@ width: 90px; height: 90px; } +.head_armoire_teaHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_teaHat.png'); + width: 114px; + height: 90px; +} .head_armoire_toqueBlanche { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_toqueBlanche.png'); width: 114px; @@ -19465,6 +19505,11 @@ width: 114px; height: 87px; } +.shield_armoire_teaKettle { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_teaKettle.png'); + width: 114px; + height: 90px; +} .shield_armoire_treasureMap { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_treasureMap.png'); width: 114px; @@ -19900,6 +19945,11 @@ width: 68px; height: 68px; } +.shop_armor_armoire_teaGown { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_teaGown.png'); + width: 68px; + height: 68px; +} .shop_armor_armoire_vermilionArcherArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_vermilionArcherArmor.png'); width: 68px; @@ -20355,6 +20405,11 @@ width: 68px; height: 68px; } +.shop_head_armoire_teaHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_teaHat.png'); + width: 68px; + height: 68px; +} .shop_head_armoire_toqueBlanche { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_toqueBlanche.png'); width: 68px; @@ -20720,6 +20775,11 @@ width: 68px; height: 68px; } +.shop_shield_armoire_teaKettle { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_armoire_teaKettle.png'); + width: 68px; + height: 68px; +} .shop_shield_armoire_treasureMap { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_armoire_treasureMap.png'); width: 68px; @@ -21615,6 +21675,11 @@ width: 114px; height: 90px; } +.slim_armor_armoire_teaGown { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_teaGown.png'); + width: 114px; + height: 90px; +} .slim_armor_armoire_vermilionArcherArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_vermilionArcherArmor.png'); width: 90px; diff --git a/website/common/locales/en/backgrounds.json b/website/common/locales/en/backgrounds.json index 5abbb901a2..7825d8edb2 100644 --- a/website/common/locales/en/backgrounds.json +++ b/website/common/locales/en/backgrounds.json @@ -851,6 +851,14 @@ "backgroundWinterLakeWithSwansText": "Winter Lake With Swans", "backgroundWinterLakeWithSwansNotes": "Enjoy Nature at a Winter Lake With Swans.", + "backgrounds022023": " SET 105: Released February 2022", + "backgroundInFrontOfFountainText": "In Front of a Fountain", + "backgroundInFrontOfFountainNotes": "Stroll In Front of a Fountain.", + "backgroundGoldenBirdcageText": "Golden Birdcage", + "backgroundGoldenBirdcageNotes": "Hide out in a Golden Birdcage.", + "backgroundFancyBedroomText": "Fancy Bedroom", + "backgroundFancyBedroomNotes": "Luxuriate in a Fancy Bedroom.", + "timeTravelBackgrounds": "Steampunk Backgrounds", "backgroundAirshipText": "Airship", "backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.", diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index c9ee405725..c02f62d6c3 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -1428,7 +1428,9 @@ "armorArmoireJewelersApronNotes": "This heavy-duty apron is just the thing to wear when you feel creative. Best of all, there are dozens of small pockets to hold everything you need. Increases Intelligence by <%= int %>. Enchanted Armoire: Jeweler Set (Item 1 of 4).", "armorArmoireShawlCollarCoatText": "Shawl-Collar Coat", "armorArmoireShawlCollarCoatNotes": "A wise wizard once said there’s nothing better than being both cozy and productive! Wear this warm and stylish coat as you conquer the year’s challenges. Increases Constitution by <%= con %>. Enchanted Armoire: Independent Item.", - + "armorArmoireTeaGownText": "Tea Party Gown", + "armorArmoireTeaGownNotes": "You’re resilient, creative, brilliant, and so fashionable! Increases Strength and Intelligence by <%= attrs %> each. Enchanted Armoire: Tea Party Set (Item 1 of 3).", + "headgear": "helm", "headgearCapitalized": "Headgear", @@ -2189,6 +2191,8 @@ "headArmoireStrawRainHatNotes": "You’ll be able to spot every obstacle in your path when you wear this water-resistant, conical hat. Increases Perception by <%= per %>. Enchanted Armoire: Straw Raincoat Set (Item 2 of 2).", "headArmoireFancyPirateHatText": "Fancy Pirate Hat", "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).", "offhand": "off-hand item", "offHandCapitalized": "Off-Hand Item", @@ -2595,7 +2599,8 @@ "shieldArmoireBubblingCauldronNotes": "The perfect cauldron for brewing up a productivity potion or cooking a savory soup. In fact, there is little difference between the two! Increases Constitution by <%= con %>. Enchanted Armoire: Cooking Implements Set (Item 2 of 2).", "shieldArmoireJewelersPliersText": "Jeweler's Pliers", "shieldArmoireJewelersPliersNotes": "They cut, twist, pinch, and more. This tool can help you create whatever you can imagine. Increases Strength by <%= str %>. Enchanted Armoire: Jeweler Set (Item 3 of 4).", - + "shieldArmoireTeaKettleText": "Tea Kettle", + "shieldArmoireTeaKettleNotes": "All your favorite, flavorful teas can be brewed in this kettle. Are you in the mood for black tea, green tea, oolong, or perhaps an herbal infusion? Increases Constitution by <%= con %>. Enchanted Armoire: Tea Party Set (Item 3 of 3).", "back": "Back Accessory", "backBase0Text": "No Back Accessory", diff --git a/website/common/script/content/appearance/backgrounds.js b/website/common/script/content/appearance/backgrounds.js index 49e8daabc9..452855ea81 100644 --- a/website/common/script/content/appearance/backgrounds.js +++ b/website/common/script/content/appearance/backgrounds.js @@ -540,6 +540,11 @@ const backgrounds = { snowy_temple: { }, winter_lake_with_swans: { }, }, + backgrounds022023: { + in_front_of_fountain: { }, + golden_birdcage: { }, + fancy_bedroom: { }, + }, eventBackgrounds: { birthday_bash: { price: 0, diff --git a/website/common/script/content/gear/sets/armoire.js b/website/common/script/content/gear/sets/armoire.js index 58170d6a9c..c79e433e7b 100644 --- a/website/common/script/content/gear/sets/armoire.js +++ b/website/common/script/content/gear/sets/armoire.js @@ -411,6 +411,11 @@ const armor = { shawlCollarCoat: { con: 8, }, + teaGown: { + str: 5, + int: 5, + set: 'teaParty', + }, }; const body = { @@ -832,6 +837,10 @@ const head = { per: 8, set: 'fancyPirate', }, + teaHat: { + per: 10, + set: 'teaParty', + }, }; const shield = { @@ -1133,6 +1142,10 @@ const shield = { str: 10, set: 'jewelers', }, + teaKettle: { + con: 10, + set: 'teaParty', + }, }; const headAccessory = {