From ce57a70e64badbecf785e967870f96d82edc20cb Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Tue, 8 Mar 2022 12:37:49 -0500 Subject: [PATCH 1/9] habitica images update --- habitica-images | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/habitica-images b/habitica-images index 09672b551b..b543b26c22 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 09672b551b40af29c89f293577fa969bd13e0a5a +Subproject commit b543b26c22f13983eba9a48dc492107bd6256e70 From aa1b9a5e947989bf3c84eaabe171c5544de12620 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Tue, 8 Mar 2022 12:43:38 -0500 Subject: [PATCH 2/9] added achievement Birds of a Feather --- website/client/src/components/notifications.vue | 10 ++++++++++ website/common/locales/en/achievements.json | 5 ++++- website/common/script/content/achievements.js | 5 +++++ .../content/constants/animalSetAchievements.js | 13 +++++++++++++ website/server/models/userNotification.js | 1 + 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/website/client/src/components/notifications.vue b/website/client/src/components/notifications.vue index 2960b0889e..77de66ef28 100644 --- a/website/client/src/components/notifications.vue +++ b/website/client/src/components/notifications.vue @@ -450,6 +450,14 @@ const NOTIFICATIONS = { achievement: 'zodiacZookeeper', }, }, + ACHIEVEMENT_BIRDS_OF_A_FEATHER: { + achievement: true, + label: $t => `${$t('achievement')}: ${$t('achievementBirdsOfAFeather')}`, + modalId: 'generic-achievement', + data: { + achievement: 'birdsOfAFeather', + }, + }, }; export default { @@ -514,6 +522,7 @@ export default { 'ACHIEVEMENT_RED_LETTER_DAY', 'ACHIEVEMENT_LEGENDARY_BESTIARY', 'ACHIEVEMENT_SEASONAL_SPECIALIST', 'ACHIEVEMENT_VIOLETS_ARE_BLUE', 'ACHIEVEMENT_WILD_BLUE_YONDER', 'ACHIEVEMENT_DOMESTICATED', 'ACHIEVEMENT_SHADY_CUSTOMER', 'ACHIEVEMENT_SHADE_OF_IT_ALL', 'ACHIEVEMENT_ZODIAC_ZOOKEEPER', + 'ACHIEVEMENT_BIRDS_OF_A_FEATHER', ].forEach(type => { handledNotifications[type] = true; }); @@ -948,6 +957,7 @@ export default { case 'ACHIEVEMENT_SHADY_CUSTOMER': case 'ACHIEVEMENT_SHADE_OF_IT_ALL': case 'ACHIEVEMENT_ZODIAC_ZOOKEEPER': + case 'ACHIEVEMENT_BIRDS_OF_A_FEATHER': case 'GENERIC_ACHIEVEMENT': this.showNotificationWithModal(notification); break; diff --git a/website/common/locales/en/achievements.json b/website/common/locales/en/achievements.json index a5ab0beb81..8e86fdf717 100644 --- a/website/common/locales/en/achievements.json +++ b/website/common/locales/en/achievements.json @@ -126,5 +126,8 @@ "achievementShadeOfItAllModalText": "You tamed all the Shade Mounts!", "achievementZodiacZookeeper": "Zodiac Zookeeper", "achievementZodiacZookeeperText": "Has hatched all the zodiac pets: Rat, Cow, Bunny, Snake, Horse, Sheep, Monkey, Rooster, Wolf, Tiger, Flying Pig, and Dragon!", - "achievementZodiacZookeeperModalText": "You collected all the zodiac pets!" + "achievementZodiacZookeeperModalText": "You collected all the zodiac pets!", + "achievementBirdsOfAFeather": "Birds of a Feather", + "achievementBirdsOfAFeatherText": "Has hatched all the flying pets: Flying Pig, Owl, Parrot, Pterodactyl, Gryphon, and Falcon.", + "achievementBirdsOfAFeatherModalText":"You collected all the flying pets!" } diff --git a/website/common/script/content/achievements.js b/website/common/script/content/achievements.js index 7d798eb638..b8f7ba8aab 100644 --- a/website/common/script/content/achievements.js +++ b/website/common/script/content/achievements.js @@ -272,6 +272,11 @@ const basicAchievs = { titleKey: 'achievementZodiacZookeeper', textKey: 'achievementZodiacZookeeperText', }, + birdsOfAFeather: { + icon: 'achievement-birdsOfAFeather', + titleKey: 'achievementBirdsOfAFeather', + textKey: 'achievementBirdsOfAFeatherText', + }, }; Object.assign(achievementsData, basicAchievs); diff --git a/website/common/script/content/constants/animalSetAchievements.js b/website/common/script/content/constants/animalSetAchievements.js index 5bdd8e039d..004ef1100a 100644 --- a/website/common/script/content/constants/animalSetAchievements.js +++ b/website/common/script/content/constants/animalSetAchievements.js @@ -11,6 +11,19 @@ const ANIMAL_SET_ACHIEVEMENTS = { achievementKey: 'legendaryBestiary', notificationType: 'ACHIEVEMENT_LEGENDARY_BESTIARY', }, + birdsOfAFeather: { + type: 'pet', + species: [ + 'FlyingPig', + 'Owl', + 'Parrot', + 'Pterodactyl', + 'Gryphon', + 'Falcon', + ], + achievementKey: 'birdsOfAFeather', + notificationType: 'ACHIEVEMENT_BIRDS_OF_A_FEATHER', + }, domesticated: { type: 'pet', species: [ diff --git a/website/server/models/userNotification.js b/website/server/models/userNotification.js index 4171b14cbe..c6b12351e7 100644 --- a/website/server/models/userNotification.js +++ b/website/server/models/userNotification.js @@ -71,6 +71,7 @@ const NOTIFICATION_TYPES = [ 'ACHIEVEMENT_SHADY_CUSTOMER', 'ACHIEVEMENT_SHADE_OF_IT_ALL', 'ACHIEVEMENT_ZODIAC_ZOOKEEPER', + 'ACHIEVEMENT_BIRDS_OF_A_FEATHER', 'ACHIEVEMENT', // generic achievement notification, details inside `notification.data` 'DROP_CAP_REACHED', ]; From fc4145700cc4184ab344cc389dffb8f138c4eefe Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Tue, 8 Mar 2022 13:06:33 -0500 Subject: [PATCH 3/9] image update! --- habitica-images | 2 +- website/common/script/libs/achievements.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/habitica-images b/habitica-images index b543b26c22..30c7e4a39d 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit b543b26c22f13983eba9a48dc492107bd6256e70 +Subproject commit 30c7e4a39dee61ac8e9eb127dcc1f8d4af6b2313 diff --git a/website/common/script/libs/achievements.js b/website/common/script/libs/achievements.js index 0718d63d40..cbd0071cbb 100644 --- a/website/common/script/libs/achievements.js +++ b/website/common/script/libs/achievements.js @@ -216,6 +216,7 @@ function _getBasicAchievements (user, language) { _addSimple(result, user, { path: 'shadyCustomer', language }); _addSimple(result, user, { path: 'shadeOfItAll', language }); _addSimple(result, user, { path: 'zodiacZookeeper', language }); + _addSimple(result, user, { path: 'birdsOfAFeather', language }); _addSimpleWithMasterCount(result, user, { path: 'beastMaster', language }); _addSimpleWithMasterCount(result, user, { path: 'mountMaster', language }); From 43be5f049011ee0dabb4beed67fe06ccc1ca5ca3 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Tue, 8 Mar 2022 16:52:43 -0500 Subject: [PATCH 4/9] Add Rooster and Peacock --- .../common/script/content/constants/animalSetAchievements.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/common/script/content/constants/animalSetAchievements.js b/website/common/script/content/constants/animalSetAchievements.js index 004ef1100a..55e89301c4 100644 --- a/website/common/script/content/constants/animalSetAchievements.js +++ b/website/common/script/content/constants/animalSetAchievements.js @@ -20,6 +20,8 @@ const ANIMAL_SET_ACHIEVEMENTS = { 'Pterodactyl', 'Gryphon', 'Falcon', + 'Rooster', + 'Peacock', ], achievementKey: 'birdsOfAFeather', notificationType: 'ACHIEVEMENT_BIRDS_OF_A_FEATHER', From 7cc17d03699426ccbca11d88653f9ad73dc33491 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Wed, 9 Mar 2022 15:50:31 -0600 Subject: [PATCH 5/9] feat(content): Armoire and Backgrounds --- website/common/locales/en/backgrounds.json | 8 ++++++++ website/common/locales/en/gear.json | 8 ++++++++ .../script/content/appearance/backgrounds.js | 5 +++++ .../common/script/content/gear/sets/armoire.js | 16 ++++++++++++++++ 4 files changed, 37 insertions(+) diff --git a/website/common/locales/en/backgrounds.json b/website/common/locales/en/backgrounds.json index 18e47ea909..93c7c349c8 100644 --- a/website/common/locales/en/backgrounds.json +++ b/website/common/locales/en/backgrounds.json @@ -762,6 +762,14 @@ "backgroundIridescentCloudsText": "Iridescent Clouds", "backgroundIridescentCloudsNotes": "Float in Iridescent Clouds.", + "backgrounds032022": "SET 94: Released March 2022", + "backgroundAnimalsDenText": "Woodland Critter's Den", + "backgroundAnimalsDenNotes": "Cozy up in a Woodland Critter's Den.", + "backgroundBrickWallWithIvyText": "Brick Wall with Ivy", + "backgroundBrickWallWithIvyNotes": "Admire a Brick Wall with Ivy.", + "backgroundFloweringPrairieText": "Flowering Prairie", + "backgroundFloweringPrairieNotes": "Frolic through a Flowering Prairie.", + "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 a736cd6b83..5c3b23323e 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -617,6 +617,8 @@ "weaponArmoireShootingStarSpellNotes": "Surround yourself in a spell of stardust magic to help you make all your wishes come true. Increases Strength and Intelligence by <%= attrs %> each. Enchanted Armoire: Stardust Set (Item 3 of 3).", "weaponArmoirePinkLongbowText": "Pink Longbow", "weaponArmoirePinkLongbowNotes": "Be a cupid-in-training, mastering both archery and matters of the heart with this beautiful bow. Increases Perception by <%= per %> and Strength by <%= str %>. Enchanted Armoire: Independent Item.", + "weaponArmoireGardenersWateringCanText": "Watering Can", + "weaponArmoireGardenersWateringCanNotes": "You can’t get far without water! Have an infinite supply on hand with this magic, refilling watering can. Increases Intelligence by <%= int %>. Enchanted Armoire: Gardener Set (Item 4 of 4).", "armor": "armor", "armorCapitalized": "Armor", @@ -1303,6 +1305,8 @@ "armorArmoireShootingStarCostumeNotes": "Rumored to have been spun out of the night sky itself, this flowy gown lets you rise above all obstacles in your path. Increases Constitution by <%= con %>. Enchanted Armoire: Stardust Set (Item 2 of 3).", "armorArmoireSoftVioletSuitText": "Soft Violet Suit", "armorArmoireSoftVioletSuitNotes": "Purple is a luxurious color. Relax in style after you’ve accomplished all your daily tasks. Increases Constitution and Strength by <%= attrs %> each. Enchanted Armoire: Violet Loungewear Set (Item 2 of 3).", + "armorArmoireGardenersOverallsText": "Gardener's Overalls", + "armorArmoireGardenersOverallsNotes": "Don’t be afraid to work down in the dirt when you’re wearing these durable overalls. Increases Constitution by <%= con %>. Enchanted Armoire: Gardener Set (Item 1 of 4).", "headgear": "helm", "headgearCapitalized": "Headgear", @@ -2010,6 +2014,8 @@ "headArmoireRegalCrownNotes": "Any monarch would be lucky to have such a majestic, smart-looking crown. Increases Intelligence by <%= int %>. Enchanted Armoire: Regal Set (Item 1 of 2).", "headArmoireShootingStarCrownText": "Star Crown", "headArmoireShootingStarCrownNotes": "With this brightly shining headpiece, you will literally be the star of your own adventure! Increases Perception by <%= per %>. Enchanted Armoire: Stardust Set (Item 1 of 3).", + "headArmoireGardenersSunHatText": "Gardener's Sun Hat", + "headArmoireGardenersSunHatNotes": "The bright light of the day star won’t shine in your eyes when you wear this wide-brimmed hat. Increases Perception by <%= per %>. Enchanted Armoire: Gardener Set (Item 2 of 4).", "offhand": "off-hand item", "offHandCapitalized": "Off-Hand Item", @@ -2380,6 +2386,8 @@ "shieldArmoireSoftBlackPillowNotes": "The brave warrior packs a pillow for any expedition. Guard yourself from tiresome tasks... even while you nap. Increases Intelligence and Perception by <%= attrs %> each. Enchanted Armoire: Black Loungewear Set (Item 3 of 3).", "shieldArmoireSoftVioletPillowText": "Soft Violet Pillow", "shieldArmoireSoftVioletPillowNotes": "The clever warrior packs a pillow for any expedition. Protect yourself from procrastination-induced panic... even while you nap. Increases Intelligence by <%= int %>. Enchanted Armoire: Violet Loungewear Set (Item 3 of 3).", + "shieldArmoireGardenersSpadeText": "Gardener's Spade", + "shieldArmoireGardenersSpadeNotes": "Whether you’re digging in the garden, searching for buried treasure, or creating a secret tunnel, this trusty spade is at your side. Increases Strength by <%= str %>. Enchanted Armoire: Gardener Set (Item 3 of 4).", "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 ceae8bd7e7..85e7228013 100644 --- a/website/common/script/content/appearance/backgrounds.js +++ b/website/common/script/content/appearance/backgrounds.js @@ -485,6 +485,11 @@ const backgrounds = { orange_grove: { }, iridescent_clouds: { }, }, + backgrounds032022: { + animals_den: { }, + brick_wall_with_ivy: { }, + flowering_prairie: { }, + }, timeTravelBackgrounds: { airship: { price: 1, diff --git a/website/common/script/content/gear/sets/armoire.js b/website/common/script/content/gear/sets/armoire.js index 58752c8ec6..544d4f2c90 100644 --- a/website/common/script/content/gear/sets/armoire.js +++ b/website/common/script/content/gear/sets/armoire.js @@ -388,6 +388,10 @@ const armor = { str: 7, set: 'violetLoungewear', }, + gardenersOveralls: { + con: 7, + set: 'gardenerSet', + }, }; const body = { @@ -787,6 +791,10 @@ const head = { per: 10, set: 'shootingStar', }, + gardenersSunHat: { + per: 7, + set: 'gardenerSet', + }, }; const shield = { @@ -1056,6 +1064,10 @@ const shield = { int: 10, set: 'violetLoungewear', }, + gardenersSpade: { + str: 8, + set: 'gardenerSet', + }, }; const headAccessory = { @@ -1436,6 +1448,10 @@ const weapon = { str: 5, twoHanded: true, }, + gardenersWateringCan: { + int: 8, + set: 'gardenerSet', + }, }; forEach({ From d9f593d53afa4912555f7671b7c81033104839be Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Wed, 9 Mar 2022 11:21:00 -0500 Subject: [PATCH 6/9] added migration script --- .../2022/20220309_pet_group_achievements.js | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 migrations/archive/2022/20220309_pet_group_achievements.js diff --git a/migrations/archive/2022/20220309_pet_group_achievements.js b/migrations/archive/2022/20220309_pet_group_achievements.js new file mode 100644 index 0000000000..3097e63dea --- /dev/null +++ b/migrations/archive/2022/20220309_pet_group_achievements.js @@ -0,0 +1,138 @@ +/* eslint-disable no-console */ +const MIGRATION_NAME = '20220309_pet_group_achievements'; +import { model as User } from '../../../website/server/models/user'; + +const progressCount = 1000; +let count = 0; + +async function updateUser (user) { + count++; + + const set = { + migration: MIGRATION_NAME, + }; + + if (user && user.items && user.items.pets) { + const pets = user.items.pets; + if (pets['FlyingPig-Base'] + && pets['FlyingPig-CottonCandyBlue'] + && pets['FlyingPig-CottonCandyPink'] + && pets['FlyingPig-Desert'] + && pets['FlyingPig-Golden'] + && pets['FlyingPig-Red'] + && pets['FlyingPig-Shade'] + && pets['FlyingPig-Skeleton'] + && pets['FlyingPig-White'] + && pets['FlyingPig-Zombie'] + && pets['Owl-Base'] + && pets['Owl-CottonCandyBlue'] + && pets['Owl-CottonCandyPink'] + && pets['Owl-Desert'] + && pets['Owl-Golden'] + && pets['Owl-Red'] + && pets['Owl-Shade'] + && pets['Owl-Skeleton'] + && pets['Owl-White'] + && pets['Owl-Zombie'] + && pets['Parrot-Base'] + && pets['Parrot-CottonCandyBlue'] + && pets['Parrot-CottonCandyPink'] + && pets['Parrot-Desert'] + && pets['Parrot-Golden'] + && pets['Parrot-Red'] + && pets['Parrot-Shade'] + && pets['Parrot-Skeleton'] + && pets['Parrot-White'] + && pets['Parrot-Zombie'] + && pets['Rooster-Base'] + && pets['Rooster-CottonCandyBlue'] + && pets['Rooster-CottonCandyPink'] + && pets['Rooster-Desert'] + && pets['Rooster-Golden'] + && pets['Rooster-Red'] + && pets['Rooster-Shade'] + && pets['Rooster-Skeleton'] + && pets['Rooster-White'] + && pets['Rooster-Zombie'] + && pets['Pterodactyl-Base'] + && pets['Pterodactyl-CottonCandyBlue'] + && pets['Pterodactyl-CottonCandyPink'] + && pets['Pterodactyl-Desert'] + && pets['Pterodactyl-Golden'] + && pets['Pterodactyl-Red'] + && pets['Pterodactyl-Shade'] + && pets['Pterodactyl-Skeleton'] + && pets['Pterodactyl-White'] + && pets['Pterodactyl-Zombie'] + && pets['Gryphon-Base'] + && pets['Gryphon-CottonCandyBlue'] + && pets['Gryphon-CottonCandyPink'] + && pets['Gryphon-Desert'] + && pets['Gryphon-Golden'] + && pets['Gryphon-Red'] + && pets['Gryphon-Shade'] + && pets['Gryphon-Skeleton'] + && pets['Gryphon-White'] + && pets['Gryphon-Zombie'] + && pets['Falcon-Base'] + && pets['Falcon-CottonCandyBlue'] + && pets['Falcon-CottonCandyPink'] + && pets['Falcon-Desert'] + && pets['Falcon-Golden'] + && pets['Falcon-Red'] + && pets['Falcon-Shade'] + && pets['Falcon-Skeleton'] + && pets['Falcon-White'] + && pets['Falcon-Zombie'] + && pets['Peacock-Base'] + && pets['Peacock-CottonCandyBlue'] + && pets['Peacock-CottonCandyPink'] + && pets['Peacock-Desert'] + && pets['Peacock-Golden'] + && pets['Peacock-Red'] + && pets['Peacock-Shade'] + && pets['Peacock-Skeleton'] + && pets['Peacock-White'] + && pets['Peacock-Zombie']) { + set['achievements.birdsOfAFeather'] = true; + } + } + + if (count % progressCount === 0) console.warn(`${count} ${user._id}`); + + return await User.update({ _id: user._id }, { $set: set }).exec(); +} + +export default async function processUsers () { + let query = { + // migration: { $ne: MIGRATION_NAME }, + 'auth.timestamps.loggedin': { $gt: new Date('2021-08-01') }, + }; + + const fields = { + _id: 1, + items: 1, + }; + + while (true) { // eslint-disable-line no-constant-condition + const users = await User // eslint-disable-line no-await-in-loop + .find(query) + .limit(250) + .sort({_id: 1}) + .select(fields) + .lean() + .exec(); + + if (users.length === 0) { + console.warn('All appropriate users found and modified.'); + console.warn(`\n${count} users processed\n`); + break; + } else { + query._id = { + $gt: users[users.length - 1]._id, + }; + } + + await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop + } +}; From 52d148084414d4c57db58d32a7a138aedf67713f Mon Sep 17 00:00:00 2001 From: SabreCat Date: Wed, 9 Mar 2022 16:16:44 -0600 Subject: [PATCH 7/9] chore(sprites): build CSS --- .../assets/css/sprites/spritesmith-main.css | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index 65703b0f7e..8b9515fb86 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -48,6 +48,11 @@ width: 48px; height: 52px; } +.achievement-birdsOfAFeather2x { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-birdsOfAFeather2x.png'); + width: 68px; + height: 68px; +} .achievement-birthday2x { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-birthday2x.png'); width: 48px; @@ -493,6 +498,11 @@ width: 141px; height: 147px; } +.background_animals_den { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_animals_den.png'); + width: 141px; + height: 147px; +} .background_apple_picking { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_apple_picking.png'); width: 141px; @@ -628,6 +638,11 @@ width: 141px; height: 147px; } +.background_brick_wall_with_ivy { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_brick_wall_with_ivy.png'); + width: 141px; + height: 147px; +} .background_bridge { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_bridge.png'); width: 141px; @@ -888,6 +903,16 @@ width: 60px; height: 60px; } +.background_flowering_prairie { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_flowering_prairie.png'); + width: 141px; + height: 147px; +} +.customize-option.background_flowering_prairie { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_flowering_prairie.png'); + width: 60px; + height: 60px; +} .background_flying_in_a_thunderstorm { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_flying_in_a_thunderstorm.png'); width: 141px; @@ -1943,6 +1968,11 @@ width: 68px; height: 68px; } +.icon_background_animals_den { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_animals_den.png'); + width: 68px; + height: 68px; +} .icon_background_apple_picking { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_apple_picking.png'); width: 68px; @@ -2078,6 +2108,11 @@ width: 68px; height: 68px; } +.icon_background_brick_wall_with_ivy { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_brick_wall_with_ivy.png'); + width: 68px; + height: 68px; +} .icon_background_bridge { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_bridge.png'); width: 68px; @@ -2343,6 +2378,16 @@ width: 60px; height: 60px; } +.icon_background_flowering_prairie { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_flowering_prairie.png'); + width: 60px; + height: 60px; +} +.customize-option.icon_background_flowering_prairie { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_flowering_prairie.png'); + width: 60px; + height: 60px; +} .icon_background_flying_in_a_thunderstorm { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_flying_in_a_thunderstorm.png'); width: 68px; @@ -16688,6 +16733,11 @@ width: 114px; height: 90px; } +.broad_armor_armoire_gardenersOveralls { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_gardenersOveralls.png'); + width: 114px; + height: 90px; +} .broad_armor_armoire_gladiatorArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_gladiatorArmor.png'); width: 90px; @@ -17123,6 +17173,11 @@ width: 114px; height: 90px; } +.head_armoire_gardenersSunHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_gardenersSunHat.png'); + width: 114px; + height: 90px; +} .head_armoire_gladiatorHelm { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_gladiatorHelm.png'); width: 90px; @@ -17473,6 +17528,11 @@ width: 114px; height: 90px; } +.shield_armoire_gardenersSpade { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_gardenersSpade.png'); + width: 114px; + height: 90px; +} .shield_armoire_gladiatorShield { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_gladiatorShield.png'); width: 90px; @@ -17833,6 +17893,11 @@ width: 68px; height: 68px; } +.shop_armor_armoire_gardenersOveralls { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_gardenersOveralls.png'); + width: 68px; + height: 68px; +} .shop_armor_armoire_gladiatorArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_gladiatorArmor.png'); width: 68px; @@ -18283,6 +18348,11 @@ width: 68px; height: 68px; } +.shop_head_armoire_gardenersSunHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_gardenersSunHat.png'); + width: 68px; + height: 68px; +} .shop_head_armoire_gladiatorHelm { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_gladiatorHelm.png'); width: 68px; @@ -18633,6 +18703,11 @@ width: 68px; height: 68px; } +.shop_shield_armoire_gardenersSpade { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_armoire_gardenersSpade.png'); + width: 68px; + height: 68px; +} .shop_shield_armoire_gladiatorShield { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_armoire_gladiatorShield.png'); width: 68px; @@ -18983,6 +19058,11 @@ width: 68px; height: 68px; } +.shop_weapon_armoire_gardenersWateringCan { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_armoire_gardenersWateringCan.png'); + width: 68px; + height: 68px; +} .shop_weapon_armoire_glassblowersBlowpipe { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_armoire_glassblowersBlowpipe.png'); width: 68px; @@ -19398,6 +19478,11 @@ width: 114px; height: 90px; } +.slim_armor_armoire_gardenersOveralls { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_gardenersOveralls.png'); + width: 114px; + height: 90px; +} .slim_armor_armoire_gladiatorArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_gladiatorArmor.png'); width: 90px; @@ -19798,6 +19883,11 @@ width: 90px; height: 90px; } +.weapon_armoire_gardenersWateringCan { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_gardenersWateringCan.png'); + width: 114px; + height: 90px; +} .weapon_armoire_glassblowersBlowpipe { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_glassblowersBlowpipe.png'); width: 114px; From 3c7df419b7e9db67fd342fa84dc4a496b6a41a26 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Wed, 9 Mar 2022 16:17:23 -0600 Subject: [PATCH 8/9] chore(submodule): update habitica-images --- habitica-images | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/habitica-images b/habitica-images index 30c7e4a39d..8d7fa3c3da 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 30c7e4a39dee61ac8e9eb127dcc1f8d4af6b2313 +Subproject commit 8d7fa3c3dae2d3718886fff5e8026b8ba8aeb7fb From c38781e154cc02439fb79e80e6c777b516a22fda Mon Sep 17 00:00:00 2001 From: SabreCat Date: Wed, 9 Mar 2022 16:17:28 -0600 Subject: [PATCH 9/9] 4.224.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 132276c34e..c704b00951 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "habitica", - "version": "4.223.0", + "version": "4.224.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f16b84646d..b6a2503ad2 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.223.0", + "version": "4.224.0", "main": "./website/server/index.js", "dependencies": { "@babel/core": "^7.16.12",