From 3498b9ccdfb410fe4d36f799f80dfd751bbb2dc0 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Mon, 4 Apr 2022 17:29:51 -0400 Subject: [PATCH] Virtual Pet Hatching Potion Quest Content --- website/common/locales/en/content.json | 1 + website/common/locales/en/questsContent.json | 15 ++++--- .../common/script/content/hatching-potions.js | 12 ++++-- website/common/script/content/quests.js | 43 +++++++++++++++++++ 4 files changed, 62 insertions(+), 9 deletions(-) diff --git a/website/common/locales/en/content.json b/website/common/locales/en/content.json index 748b341c0a..50c1e0dd8a 100644 --- a/website/common/locales/en/content.json +++ b/website/common/locales/en/content.json @@ -308,6 +308,7 @@ "hatchingPotionMoonglow": "Moonglow", "hatchingPotionSolarSystem": "Solar System", "hatchingPotionOnyx": "Onyx", + "hatchingPotionVirtualPet": "Virtual Pet", "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/questsContent.json b/website/common/locales/en/questsContent.json index cd3a5174f5..409e007288 100644 --- a/website/common/locales/en/questsContent.json +++ b/website/common/locales/en/questsContent.json @@ -869,10 +869,13 @@ "questOnyxDropOnyxPotion": "Onyx Hatching Potion", "questOnyxUnlockText": "Unlocks Onyx Hatching Potions for purchase in the Market", - "questVirtualPetsText": "", - "questVirtualPetsNotes": "", - "questVirtualPetsCompletion": "", - "questVirtualPetsBoss": "", - "questVirtualPetsDropVirtualPetPotion": "", - "questVirtualPetsUnlockText": "", + "questVirtualPetText": "Virtual Mayhem with the April Fool: The Beepening", + "questVirtualPetNotes": "It’s a quiet and pleasant spring morning in Habitica, a week past a memorable April Fool’s Day. You and @Beffymaroo are at the stables tending to your pets (who are still a bit confused from their time spent virtually!).

In the distance you hear a rumble and a beeping noise, soft at first but increasing in volume as if it’s getting closer. An egg-shape appears on the horizon and as it nears, beeping ever louder, you see that it is a gigantic virtual pet!

“Oh no,” @Beffymaroo exclaims, “I think the April Fool left some unfinished business with this big fella here, he seems to want attention!”

The virtual pet beeps angrily, throwing a virtual tantrum and whomping ever closer.", + "questVirtualPetCompletion": "Some careful button pushing seems to have fulfilled the virtual pet’s mysterious needs, and finally it has quieted down and appears content.

Suddenly in a burst of confetti, the April Fool appears with a basket full of strange potions emitting soft beeps.

“What timing, April Fool,” @Beffymaroo says with a wry smile. “I suspect this large beeping fellow is an acquaintance of yours.”

“Uh, yes,” the Fool says, sheepishly. “So sorry about that, and thank you both for taking care of Wotchimon! Take these potions in the way of thanks, they can bring your Virtual pets back anytime you like!”

You’re not 100% sure you’re on board with all the beeping, but they’re sure cute so it’s worth a shot!", + "questVirtualPetBoss": "Wotchimon", + "questVirtualPetRageTitle": "The Beepening", + "questVirtualPetRageDescription": "This bar fills when you don't complete your Dailies. When it is full, the Wotchiman will heal 30% of its remaining health!", + "questVirtualPetRageEffect": "Wotchimon uses Bothersome Beep!\n\nWotchiman sounds a bothersome beep, and its happiness bar suddenly disappears!", + "questVirtualPetDropVirtualPetPotion": "Virtual Pet Hatching Potion", + "questVirtualPetUnlockText": "Unlocks Virtual Pet Hatching Potion for purchase in the Market", } diff --git a/website/common/script/content/hatching-potions.js b/website/common/script/content/hatching-potions.js index 9f490e0c50..4ef590ea2d 100644 --- a/website/common/script/content/hatching-potions.js +++ b/website/common/script/content/hatching-potions.js @@ -531,11 +531,11 @@ const wacky = { limited: true, event: EVENTS.spring2021, _addlNotes: t('eventAvailabilityReturning', { - availableDate: t('dateEndMarch'), - previousDate: t('marchYYYY', { year: 2019 }), + availableDate: t('dateEndApril'), + previousDate: t('aprilYYYY', { year: 2021 }), }), canBuy () { - return moment().isBetween('2021-04-01T08:00-05:00', EVENTS.spring2021.end); + return moment().isBetween('2022-04-07T08:00-05:00', EVENTS.spring2022.end); }, }, Dessert: { @@ -544,6 +544,12 @@ const wacky = { _addlNotes: t('premiumPotionUnlimitedNotes'), canBuy: hasQuestAchievementFunction('waffle'), }, + VirtualPet: { + text: t('hatchingPotionVirtualPet'), + limited: true, + _addlNotes: t('premiumPotionUnlimitedNotes'), + canBuy: hasQuestAchievementFunction('virtualPet'), + }, }; each(drops, (pot, key) => { diff --git a/website/common/script/content/quests.js b/website/common/script/content/quests.js index f8a14f36e0..ce73b3d663 100644 --- a/website/common/script/content/quests.js +++ b/website/common/script/content/quests.js @@ -3876,6 +3876,49 @@ const quests = { unlock: t('questOnyxUnlockText'), }, }, + virtualPet: { + text: t('questVirtualPetText'), + notes: t('questVirtualPetNotes'), + completion: t('questVirtualPetCompletion'), + value: 4, + category: 'hatchingPotion', + canBuy () { + return CURRENT_EVENT && CURRENT_EVENT.season === 'spring'; + }, + event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null, + boss: { + name: t('questVirtualPetBoss'), + hp: 500, + str: 2, + rage: { + title: t('questWaffleVirtualPetTitle'), + description: t('questVirtualPetRageDescription'), + value: 50, + progressDrain: 0.5, + effect: t('questWaffleRageEffect'), + }, + }, + drop: { + items: [ + { + type: 'hatchingPotions', + key: 'VirtualPet', + text: t('questVirtualPetDropDessertPotion'), + }, { + type: 'hatchingPotions', + key: 'VirtualPet', + text: t('questVirtualPetDropDessertPotion'), + }, { + type: 'hatchingPotions', + key: 'VirtualPet', + text: t('questVirtualPetDropDessertPotion'), + }, + ], + gp: 40, + exp: 500, + unlock: t('questVirtualPetUnlockText'), + }, + }, }; each(quests, (v, key) => {