From f9fb4631280f6857a092975851b80b70e013815a Mon Sep 17 00:00:00 2001 From: Kalista Payne Date: Tue, 17 Sep 2024 16:13:51 -0500 Subject: [PATCH 01/58] October Prebuild (#15325) * Add october background * Add armoire * Add subscriber gear * add new pet * improve quest tests * Fixes from gear switchup * use new sprite system for quest images * fixes * fix quest image alignment * add missing string * fix(style): lint warnings and typo --------- Co-authored-by: Phillip Thelen Co-authored-by: Sabe Jones --- test/content/quests.test.js | 42 ++++ .../assets/css/sprites/spritesmith-main.css | 185 ++++++++++++++++++ .../achievements/questCompleted.vue | 8 +- .../achievements/questInvitation.vue | 13 +- .../components/groups/questSidebarSection.vue | 10 +- .../shops/quests/questDialogContent.vue | 10 +- website/common/locales/en/backgrounds.json | 4 + website/common/locales/en/content.json | 4 + website/common/locales/en/gear.json | 8 + website/common/locales/en/questsContent.json | 10 + website/common/locales/en/subscriber.json | 1 + .../script/content/appearance/backgrounds.js | 3 + .../script/content/constants/releaseDates.js | 2 + .../script/content/constants/schedule.js | 1 + website/common/script/content/eggs.js | 6 + .../script/content/gear/sets/armoire.js | 8 + .../script/content/gear/sets/mystery.js | 2 + website/common/script/content/quests/pets.js | 39 ++++ .../script/content/shop-featuredItems.js | 1 + 19 files changed, 343 insertions(+), 14 deletions(-) create mode 100644 test/content/quests.test.js diff --git a/test/content/quests.test.js b/test/content/quests.test.js new file mode 100644 index 00000000000..52cf70dbcf3 --- /dev/null +++ b/test/content/quests.test.js @@ -0,0 +1,42 @@ +import { + each, +} from 'lodash'; +import { + expectValidTranslationString, +} from '../helpers/content.helper'; + +import { quests } from '../../website/common/script/content/quests'; + +describe('quests', () => { + let clock; + + afterEach(() => { + if (clock) { + clock.restore(); + } + }); + + it('contains basic information about each quest', () => { + each(quests, (quest, key) => { + expectValidTranslationString(quest.text); + expectValidTranslationString(quest.notes); + expectValidTranslationString(quest.completion); + expect(quest.key, key).to.equal(key); + expect(quest.category, key).to.be.a('string'); + if (quest.boss) { + expectValidTranslationString(quest.boss.name); + expect(quest.boss.hp, key).to.be.a('number'); + expect(quest.boss.str, key).to.be.a('number'); + } + expect(quest.drop).to.be.an('object'); + expect(quest.drop.gp, key).to.be.a('number'); + expect(quest.drop.exp, key).to.be.a('number'); + if (quest.drop.items) { + quest.drop.items.forEach(drop => { + expectValidTranslationString(drop.text); + expect(drop.type, key).to.exist; + }); + } + }); + }); +}); diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index e1aedd6e83d..2590e8e8f67 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -2165,6 +2165,11 @@ width: 141px; height: 147px; } +.background_surrounded_by_ghosts { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_surrounded_by_ghosts.png'); + width: 141px; + height: 147px; +} .background_swan_boat { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_swan_boat.png'); width: 141px; @@ -30794,6 +30799,11 @@ width: 90px; height: 90px; } +.shield_armoire_safetyFlashlight { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_safetyFlashlight.png'); + width: 114px; + height: 90px; +} .shield_armoire_sandyBucket { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_sandyBucket.png'); width: 90px; @@ -31934,6 +31944,11 @@ width: 114px; height: 90px; } +.weapon_armoire_spookyCandyBucket { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_spookyCandyBucket.png'); + width: 114px; + height: 90px; +} .weapon_armoire_vermilionArcherBow { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_vermilionArcherBow.png'); width: 90px; @@ -35279,6 +35294,16 @@ width: 114px; height: 90px; } +.back_mystery_202410 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_mystery_202410.png'); + width: 114px; + height: 90px; +} +.headAccessory_mystery_202410 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_mystery_202410.png'); + width: 114px; + height: 90px; +} .broad_armor_mystery_301404 { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png'); width: 90px; @@ -40237,6 +40262,11 @@ width: 219px; height: 219px; } +.quest_dog { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_dog.png'); + width: 219px; + height: 219px; +} .quest_dolphin { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_dolphin.png'); width: 219px; @@ -40967,6 +40997,11 @@ width: 68px; height: 68px; } +.inventory_quest_scroll_dog { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/inventory_quest_scroll_dog.png'); + width: 68px; + height: 68px; +} .inventory_quest_scroll_dolphin { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/inventory_quest_scroll_dolphin.png'); width: 68px; @@ -42807,6 +42842,56 @@ width: 105px; height: 105px; } +.Mount_Body_Dog-Base { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Base.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-CottonCandyBlue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-CottonCandyBlue.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-CottonCandyPink { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-CottonCandyPink.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-Desert { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Desert.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-Golden { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Golden.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-Red { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Red.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-Shade { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Shade.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-Skeleton { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Skeleton.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-White { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-White.png'); + width: 105px; + height: 105px; +} +.Mount_Body_Dog-Zombie { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Zombie.png'); + width: 105px; + height: 105px; +} .Mount_Body_Dolphin-Base { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dolphin-Base.png'); width: 105px; @@ -48252,6 +48337,56 @@ width: 105px; height: 105px; } +.Mount_Head_Dog-Base { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Base.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-CottonCandyBlue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-CottonCandyBlue.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-CottonCandyPink { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-CottonCandyPink.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-Desert { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Desert.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-Golden { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Golden.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-Red { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Red.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-Shade { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Shade.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-Skeleton { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Skeleton.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-White { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-White.png'); + width: 105px; + height: 105px; +} +.Mount_Head_Dog-Zombie { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Zombie.png'); + width: 105px; + height: 105px; +} .Mount_Head_Dolphin-Base { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dolphin-Base.png'); width: 105px; @@ -53757,6 +53892,56 @@ width: 81px; height: 99px; } +.Pet-Dog-Base { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Base.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-CottonCandyBlue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-CottonCandyBlue.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-CottonCandyPink { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-CottonCandyPink.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-Desert { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Desert.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-Golden { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Golden.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-Red { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Red.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-Shade { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Shade.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-Skeleton { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Skeleton.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-White { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-White.png'); + width: 81px; + height: 99px; +} +.Pet-Dog-Zombie { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Zombie.png'); + width: 81px; + height: 99px; +} .Pet-Dolphin-Base { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dolphin-Base.png'); width: 81px; diff --git a/website/client/src/components/achievements/questCompleted.vue b/website/client/src/components/achievements/questCompleted.vue index bd220049f03..544cc09737a 100644 --- a/website/client/src/components/achievements/questCompleted.vue +++ b/website/client/src/components/achievements/questCompleted.vue @@ -10,10 +10,10 @@ @hide="hide" >