From 8db8a8267be351decd3681de32ccb24b0eb884f0 Mon Sep 17 00:00:00 2001 From: Natalie <78037386+CuriousMagpie@users.noreply.github.com> Date: Tue, 28 Nov 2023 16:01:27 -0500 Subject: [PATCH] feat(content): December 2023 Content (#15023) * feat(content): add December subscriber items, backgrounds, and enchanted armoire * feat(content): correct item slot for armoire, change release dates for testing * fix(backgrounds): correct start date * fix(armoire): Add canonical start date * fix(test): only count released items --------- Co-authored-by: Sabe Jones Co-authored-by: SabreCat --- habitica-images | 2 +- test/common/ops/buy/buyArmoire.js | 6 +- .../assets/css/sprites/spritesmith-main.css | 80 +++++++++++++++++++ website/common/locales/en/backgrounds.json | 9 +++ website/common/locales/en/gear.json | 13 ++- website/common/locales/en/subscriber.json | 1 + .../script/content/appearance/backgrounds.js | 6 ++ .../script/content/gear/sets/armoire.js | 11 +++ .../script/content/gear/sets/mystery.js | 2 + 9 files changed, 124 insertions(+), 6 deletions(-) diff --git a/habitica-images b/habitica-images index f74a3b4e97..60b9a912a2 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit f74a3b4e974b76ac804ceb8cf48aad9993090a21 +Subproject commit 60b9a912a2b2b5b5ed3ee7ebf768be0487da21cb diff --git a/test/common/ops/buy/buyArmoire.js b/test/common/ops/buy/buyArmoire.js index d9309086fc..b1e1545f91 100644 --- a/test/common/ops/buy/buyArmoire.js +++ b/test/common/ops/buy/buyArmoire.js @@ -17,9 +17,9 @@ function getFullArmoire () { _.each(content.gearTypes, type => { _.each(content.gear.tree[type].armoire, gearObject => { - const armoireKey = gearObject.key; - - fullArmoire[armoireKey] = true; + if (gearObject.released) { + fullArmoire[gearObject.key] = true; + } }); }); diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index 3031bd727c..0614a1dfed 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -1364,6 +1364,11 @@ width: 141px; height: 147px; } +.background_holiday_tree_forest { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_holiday_tree_forest.png'); + width: 141px; + height: 147px; +} .background_holiday_wreath { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_holiday_wreath.png'); width: 141px; @@ -1389,6 +1394,11 @@ width: 141px; height: 147px; } +.background_ice_sculpture_festival { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_ice_sculpture_festival.png'); + width: 141px; + height: 147px; +} .background_iceberg { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_iceberg.png'); width: 141px; @@ -2249,6 +2259,11 @@ width: 141px; height: 147px; } +.background_winter_full_moon { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_winter_full_moon.png'); + width: 141px; + height: 147px; +} .background_winter_lake_with_swans { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_winter_lake_with_swans.png'); width: 141px; @@ -3155,6 +3170,11 @@ width: 68px; height: 68px; } +.icon_background_holiday_tree_forest { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_holiday_tree_forest.png'); + width: 68px; + height: 68px; +} .icon_background_holiday_wreath { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_holiday_wreath.png'); width: 68px; @@ -3180,6 +3200,11 @@ width: 68px; height: 68px; } +.icon_background_ice_sculpture_festival { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_ice_sculpture_festival.png'); + width: 68px; + height: 68px; +} .icon_background_iceberg { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_iceberg.png'); width: 68px; @@ -4045,6 +4070,11 @@ width: 68px; height: 68px; } +.icon_background_winter_full_moon { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_winter_full_moon.png'); + width: 68px; + height: 68px; +} .icon_background_winter_lake_with_swans { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_winter_lake_with_swans.png'); width: 68px; @@ -18825,6 +18855,11 @@ width: 114px; height: 90px; } +.broad_armor_armoire_greenFluffTrimmedCoat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_greenFluffTrimmedCoat.png'); + width: 114px; + height: 90px; +} .broad_armor_armoire_guardiansGown { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_guardiansGown.png'); width: 114px; @@ -19340,6 +19375,11 @@ width: 90px; height: 90px; } +.head_armoire_greenTrapperHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_greenTrapperHat.png'); + width: 114px; + height: 90px; +} .head_armoire_guardiansBonnet { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_guardiansBonnet.png'); width: 114px; @@ -20155,6 +20195,11 @@ width: 68px; height: 68px; } +.shop_armor_armoire_greenFluffTrimmedCoat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_greenFluffTrimmedCoat.png'); + width: 68px; + height: 68px; +} .shop_armor_armoire_guardiansGown { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_guardiansGown.png'); width: 68px; @@ -20730,6 +20775,11 @@ width: 68px; height: 68px; } +.shop_head_armoire_greenTrapperHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_greenTrapperHat.png'); + width: 68px; + height: 68px; +} .shop_head_armoire_guardiansBonnet { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_guardiansBonnet.png'); width: 68px; @@ -22030,6 +22080,11 @@ width: 114px; height: 90px; } +.slim_armor_armoire_greenFluffTrimmedCoat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_greenFluffTrimmedCoat.png'); + width: 114px; + height: 90px; +} .slim_armor_armoire_guardiansGown { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_guardiansGown.png'); width: 114px; @@ -28815,6 +28870,31 @@ width: 114px; height: 90px; } +.eyewear_mystery_202312 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/eyewear_mystery_202312.png'); + width: 114px; + height: 90px; +} +.head_mystery_202312 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_mystery_202312.png'); + width: 114px; + height: 90px; +} +.shop_eyewear_mystery_202312 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_eyewear_mystery_202312.png'); + width: 68px; + height: 68px; +} +.shop_head_mystery_202312 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_mystery_202312.png'); + width: 68px; + height: 68px; +} +.shop_set_mystery_202312 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_set_mystery_202312.png'); + width: 68px; + height: 68px; +} .broad_armor_mystery_301404 { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png'); width: 90px; diff --git a/website/common/locales/en/backgrounds.json b/website/common/locales/en/backgrounds.json index f5c7cd801c..adcb26b03e 100644 --- a/website/common/locales/en/backgrounds.json +++ b/website/common/locales/en/backgrounds.json @@ -931,6 +931,15 @@ "backgroundAutumnTreeTunnelText": "Autumn Tree Tunnel", "backgroundAutumnTreeTunnelNotes": "Take in the beauty of an Autumn Tree Tunnel.", + "backgrounds122023": "SET 115: Released December 2023", + "backgroundHolidayTreeForestText": "Holiday Tree Forest", + "backgroundHolidayTreeForestNotes": "Decorate a Holiday Tree in a Forest.", + "backgroundIceSculptureFestivalText": "Ice Sculpture Festival", + "backgroundIceSculptureFestivalNotes": "Tour an Ice Sculpture Festival.", + "backgroundWinterFullMoonText": "WinterFullMoon", + "backgroundWinterFullMoonNotes": "Gaze at the Winter Full Moon.", + + "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 4bc8a7ad3c..47cf6657f2 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -1522,6 +1522,8 @@ "armorArmoireAdmiralsUniformNotes": "We salute you! This naval uniform signals that you’re ready to take command of your tasks as well as a ship. Increases Constitution and Strength by <%= attrs %> each. Enchanted Armoire: Admiral’s Set (Item 2 of 2).", "armorArmoireKarateGiText": "Karate Gi", "armorArmoireKarateGiNotes": "This lightweight karate uniform is perfect for practice or competition. Increases Strength by <%= str %>. Enchanted Armoire: Karate Set (Item 1 of 10).", + "armorArmoireGreenFluffTrimmedCoatText": "Green Fluff Trimmed Coat", + "armorArmoireGreenFluffTrimmedCoatNotes": "Tales tell that once in a generation, a coat comes along that is the warmest and coziest. Its fluff is extraordinary and its buttons are manageable even by mitten-clad hands. This is that coat. Increases Strength and Intelligence by <%= attrs %> each. Enchanted Armoire: Trapper Hat Set (Item 2 of 2).", "headgear": "helm", "headgearCapitalized": "Headgear", @@ -2136,7 +2138,7 @@ "headMystery202301Text": "Valiant Vulpine Ears", "headMystery202301Notes": "Your hearing will be so sharp you'll hear the dawn breaking and the dew sparkling. Confers no benefit. January 2023 Subscriber Item.", "headMystery202303Text": "Mane Character Hair", - "headMystery202303Notes": "What better way to let everyone know you’re the star of this tale than to have blue and improbably spiky hair? Confers no benefit. March 2023 Subscriber Item.", + "headMystery202303Notes": "What better way to let everyone know you’re the star of this tale than to have blue and improbably spiky hair? Confers no benefit. March 2023 Subscriber Item.", "headMystery202304Text": "Tiptop Teapot Lid", "headMystery202304Notes": "Wear this helm for your own safe-tea. Confers no benefit. April 2023 Subscriber Item.", "headMystery202308Text": "Purple Protagonist Hair", @@ -2145,6 +2147,8 @@ "headMystery202310Notes": "It hides your face, and yet lends your eyes an unsettling and spectral glow. Confers no benefit. October 2023 Subscriber Item.", "headMystery202311Text": "Spellbinder’s Hat", "headMystery202311Notes": "Bind even space and time to your will. Confers no benefit. November 2023 Subscriber Item.", + "headMystery202312Text": "Wintry Blue Hair", + "headMystery202312Notes": "This fancy hairdo evokes the snowy colors of the season. Confers no benefit. December 2023 Subscriber Item.", "headMystery301404Text": "Fancy Top Hat", "headMystery301404Notes": "A fancy top hat for the finest of gentlefolk! January 3015 Subscriber Item. Confers no benefit.", @@ -2333,6 +2337,8 @@ "headArmoirePurpleSpookySorceryHatNotes": "Purple as dusk and full of mysteries, this hat is suited to all your sorcerous needs. Increases Perception by <%= per %> and Constitution by <%= con %>. Enchanted Armoire: Spooky Sorcery Set (Item 2 of 3).", "headArmoireBlackSpookySorceryHatText": "Black Spooky Sorcery Hat", "headArmoireBlackSpookySorceryHatNotes": "Black as night and full of secrets, this hat is suited to all your sorcerous needs. Increases Intelligence by <%= int %> and Constitution by <%= con %>. Enchanted Armoire: Spooky Sorcery Set (Item 3 of 3).", + "headArmoireGreenTrapperHatText": "Green Trapper Hat", + "headArmoireGreenTrapperHatNotes": "Everyone says your hat looks so warm! And it really is. Just be sure to lift the flaps off your ears when they’re talking to you, or everyone will sound more like “yrrr hah ooks ss wrrm!” Increases Constitution and Perception by <%= attrs %> each. Enchanted Armoire: Trapper Hat Set (Item 1 of 2).", "offhand": "off-hand item", "offHandCapitalized": "Off-Hand Item", @@ -3173,7 +3179,10 @@ "eyewearMystery202303Text": "Dreamy Eyes", "eyewearMystery202303Notes": "Let your nonchalant expression lure your enemies into a false sense of security. Confers no benefit. March 2023 Subscriber Item.", "eyewearMystery202308Text": "Sleepy Eyes", - "eyewearMystery202308Notes": "Are you sleepy, or just resting your eyes in anticipation of your next amazing battle? Confers no benefit. August 2023 Subscriber Item.", + "eyewearMystery202308Notes": "Are you sleepy, or just resting your eyes in anticipation of your next amazing battle? Confers no benefit. August 2023 Subscriber Item.", + "eyewearMystery202312Text": "Wintry Blue Eyes", + "eyewearMystery202312Notes": "No need to worry, these icy blues will help you see through the cold and dark season to the warmth of months ahead. Confers no benefit. December 2023 Subscriber Item.", + "eyewearMystery301404Text": "Eyewear Goggles", "eyewearMystery301404Notes": "No eyewear could be fancier than a pair of goggles - except, perhaps, for a monocle. Confers no benefit. April 3015 Subscriber Item.", "eyewearMystery301405Text": "Monocle", diff --git a/website/common/locales/en/subscriber.json b/website/common/locales/en/subscriber.json index 0f7922e6bb..e8029d7c07 100644 --- a/website/common/locales/en/subscriber.json +++ b/website/common/locales/en/subscriber.json @@ -157,6 +157,7 @@ "mysterySet202309": "All-Seeing Spellbinder Set", "mysterySet202310": "Ghostlight Wraith Set", "mysterySet202311": "All-Seeing Spellbinder Set", + "mysterySet202312": "Wintry Blue Set", "mysterySet301404": "Steampunk Standard Set", "mysterySet301405": "Steampunk Accessories Set", "mysterySet301703": "Peacock Steampunk Set", diff --git a/website/common/script/content/appearance/backgrounds.js b/website/common/script/content/appearance/backgrounds.js index 12a5e0080f..2ea7e25f36 100644 --- a/website/common/script/content/appearance/backgrounds.js +++ b/website/common/script/content/appearance/backgrounds.js @@ -592,6 +592,11 @@ const plannedBackgrounds = { barrel_cellar: { }, autumn_tree_tunnel: { }, }, + backgrounds122023: { + holiday_tree_forest: { }, + ice_sculpture_festival: { }, + winter_full_moon: { }, + }, eventBackgrounds: { birthday_bash: { price: 0, @@ -637,6 +642,7 @@ const plannedBackgrounds = { const releaseDates = { backgrounds102023: '2023-10-10T08:00-04:00', backgrounds112023: '2023-11-07T08:00-05:00', + backgrounds122023: '2023-12-05T08:00-05:00', }; const flat = {}; diff --git a/website/common/script/content/gear/sets/armoire.js b/website/common/script/content/gear/sets/armoire.js index c3e4eafb5e..d51d5819f3 100644 --- a/website/common/script/content/gear/sets/armoire.js +++ b/website/common/script/content/gear/sets/armoire.js @@ -444,6 +444,11 @@ const armor = { str: 10, set: 'karateSet', }, + greenFluffTrimmedCoat: { + str: 8, + int: 8, + set: 'greenTrapper', + }, }; const body = { @@ -930,6 +935,11 @@ const head = { con: 3, set: 'somethingSpooky', }, + greenTrapperHat: { + con: 6, + per: 6, + set: 'greenTrapper', + }, }; const shield = { @@ -1723,6 +1733,7 @@ const weapon = { const releaseDates = { somethingSpooky: '2023-10-10T08:00-04:00', cookingImplementsTwo: '2023-11-07T08:00-05:00', + greenTrapper: '2023-12-05T08:00-05:00', }; forEach({ diff --git a/website/common/script/content/gear/sets/mystery.js b/website/common/script/content/gear/sets/mystery.js index ae8aabff90..2d4630981d 100644 --- a/website/common/script/content/gear/sets/mystery.js +++ b/website/common/script/content/gear/sets/mystery.js @@ -132,6 +132,7 @@ const eyewear = { 202208: { }, 202303: { }, 202308: { }, + 202312: { }, 301404: { }, 301405: { }, 301703: { }, @@ -214,6 +215,7 @@ const head = { 202308: { }, 202310: { }, 202311: { }, + 202312: { }, 301404: { }, 301405: { }, 301703: { },