Squashed commit of the following:

commit 3c3787091a2e8a94857352c3655f60138a3b20b7
Merge: 76a00d6308 76d7f02fe8
Author: Sabe Jones <sabe@habitica.com>
Date:   Mon Apr 8 15:47:35 2024 -0500

    Merge branch 'release' into 2024-04-april-fool-items

commit 76a00d6308997c50ae5f5e9d6170a09a1a8cbac7
Author: Sabe Jones <sabe@habitica.com>
Date:   Thu Mar 28 16:08:39 2024 -0500

    fix(quest): revise rage text

commit c2e13f8af245993f61eb614d6be609c833c2e711
Author: Sabe Jones <sabe@habitica.com>
Date:   Thu Mar 28 12:57:17 2024 -0500

    fix(quest): correct rage and "guscompletion"

commit ecdeb82df998ab75eceae3e877c1758187b1d22c
Author: Sabe Jones <sabe@habitica.com>
Date:   Thu Mar 28 08:55:18 2024 -0500

    fix(events): correct dates and times

commit 232de436bbe7ba4c13f04ed66cc3b8a4a794d884
Author: Sabe Jones <sabe@habitica.com>
Date:   Wed Mar 27 09:03:06 2024 -0500

    fix(content): a few more unruly Fungus

commit 955e6e73387788797d1a83a037f73aa472515cec
Author: Sabe Jones <sabe@habitica.com>
Date:   Wed Mar 27 09:00:03 2024 -0500

    feat(content): wacky potions 2024 by @CuriousMagpie

commit 34b72be4f447f00c31169c4cd6e8ba79655adf8a
Author: Sabe Jones <sabe@habitica.com>
Date:   Wed Mar 27 08:56:27 2024 -0500

    feat(event): AF by @CuriousMagpie
This commit is contained in:
Sabe Jones 2024-04-08 15:48:32 -05:00
parent 76d7f02fe8
commit 0fd808727c
9 changed files with 99 additions and 17 deletions

View file

@ -37687,6 +37687,11 @@
width: 221px;
height: 213px;
}
.quest_fungi {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_fungi.png');
width: 219px;
height: 219px;
}
.quest_ghost_stag {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_ghost_stag.png');
width: 219px;
@ -38392,6 +38397,11 @@
width: 68px;
height: 68px;
}
.inventory_quest_scroll_fungi {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/inventory_quest_scroll_fungi.png');
width: 68px;
height: 68px;
}
.inventory_quest_scroll_ghost_stag {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/inventory_quest_scroll_ghost_stag.png');
width: 68px;
@ -60807,6 +60817,11 @@
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Fungi {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Fungi.png');
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Ghost {
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Ghost.png');
width: 68px;

View file

@ -313,6 +313,7 @@
"hatchingPotionPinkMarble": "Pink Marble",
"hatchingPotionTeaShop": "Tea Shop",
"hatchingPotionRoseGold": "Rose Gold",
"hatchingPotionFungi": "Fungi",
"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) %>.",

View file

@ -887,5 +887,15 @@
"questPinkMarbleRageDescription": "This bar fills when you don't complete your Dailies. When it is full, Cupido will take away some of your party's pending damage!",
"questPinkMarbleRageEffect": "`Cupido uses Pink Punch!` That wasn't affectionate at all! Your partymates are taken aback. Pending damage reduced.",
"questPinkMarbleDropPinkMarblePotion": "Pink Marble Hatching Potion",
"QuestPinkMarbleUnlockText": "Unlocks Pink Marble Hatching Potions for purchase in the Market."
"questPinkMarbleUnlockText": "Unlocks Pink Marble Hatching Potions for purchase in the Market.",
"questFungiText": "The Moody Mushroom",
"questFungiNotes": "Its been a rainy spring in Habitica and the ground around the stables is spongy and damp. You notice quite a few mushrooms have appeared along the wooden stable walls and fences. Theres a fog hanging about, not quite letting the sun peek through, and its a bit dispiriting.<br><br>Out of the mist you see the outline of the April Fool, not at all his usual bouncy self.<br><br>”Id hoped to bring you all some delightful Fungi Magic Hatching Potions so that you can keep your mushroom friends from my special day forever,” he says, his expression alarmingly unsmiling. “But this cold fog is really getting to me, its making me feel too tired and dismal to work my usual magic.”<br><br>“Oh no, sorry to hear that,” you say, noticing your own increasingly somber mood. “This fog is really making the day gloomy. I wonder where it came from…”<br><br>A low rumble sounds across the fields, and you see an outline emerging from the mist. Youre alarmed to see a gigantic and unhappy looking mushroom creature, and the mist appears to be emanating from it.<br><br>“Aha,” says the Fool, “I think this fungal fellow may be the source of our blues. Lets see if we can summon a little cheer for our friend here and ourselves.”",
"questFungiCompletion": "You and the April Fool look at each other with a sign of relief as the mushroom retreats to the forest.<br><br>“Ah,” the Fool exclaims, “that was quite a mycelial melancholy. Im glad we could improve his mood, and ours too! I feel my energy coming back. Come with me and well get those Fungi potions going together.”",
"questFungiBoss": "Moody Mushroom",
"questFungiRageTitle": "Moody Mushroom Mist",
"questFungiRageDescription": "This bar fills when you don't complete your Dailies. When it's full, the Moody Mushroom will take away some of your party's pending damage",
"questFungiRageEffect": "A Mist emanates from the Moody Mushroom and surrounds your party, dampening the mood and subduing your magic. The party's MP is reduced!",
"questFungiDropFungiPotion": "Fungi Hatching Potion",
"questFungiUnlockText": "Unlocks Fungi Hatching Potions for purchase in the Market."
}

View file

@ -15,6 +15,10 @@ export const EVENTS = {
season: 'normal',
npcImageSuffix: '',
},
aprilFoolsQuest2024: {
start: '2024-04-09T08:00-04:00',
end: '2024-04-30T23:59-04:00',
},
aprilFools2024: {
start: '2024-04-01T00:00-04:00',
end: '2024-04-02T08:00-04:00',

View file

@ -544,12 +544,12 @@ const wacky = {
Veggie: {
text: t('hatchingPotionVeggie'),
limited: true,
event: EVENTS.spring2023,
event: EVENTS.aprilFoolsQuest2024,
_addlNotes: t('eventAvailability', {
date: t('dateEndApril'),
}),
canBuy () {
return moment().isBetween('2023-04-06T08:00-04:00', EVENTS.spring2023.end);
return moment().isBetween(EVENTS.aprilFoolsQuest2024.start, EVENTS.aprilFoolsQuest2024.end);
},
},
Dessert: {
@ -567,14 +567,23 @@ const wacky = {
TeaShop: {
text: t('hatchingPotionTeaShop'),
limited: true,
event: EVENTS.spring2023,
event: EVENTS.aprilFoolsQuest2024,
_addlNotes: t('premiumPotionAddlNotes', {
date: t('dateEndApril'),
}),
canBuy () {
return moment().isBetween('2023-04-06T08:00-04:00', EVENTS.spring2023.end);
return moment().isBetween(EVENTS.aprilFoolsQuest2024.start, EVENTS.aprilFoolsQuest2024.end);
},
},
Fungi: {
text: t('hatchingPotionFungi'),
limited: true,
event: EVENTS.aprilFoolsQuest2024,
_addlNotes: t('premiumPotionAddlNotes', {
date: t('dateEndApril'),
}),
canBuy: hasQuestAchievementFunction('fungi'),
},
};
each(drops, (pot, key) => {

View file

@ -702,7 +702,7 @@ const QUEST_MASTERCLASSER = {
title: t('questLostMasterclasser4RageTitle'),
description: t('questLostMasterclasser4RageDescription'),
value: 15,
mpDrain: true,
mpDrain: 1,
effect: t('questLostMasterclasser4RageEffect'),
},
},

View file

@ -135,9 +135,9 @@ const QUEST_SEASONAL = {
},
},
waffle: {
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
event: EVENTS.aprilFoolsQuest2024,
canBuy () {
return this.event && moment().isBetween(this.event.start, this.event.end);
return moment().isBetween(EVENTS.aprilFoolsQuest2024.start, EVENTS.aprilFoolsQuest2024.end);
},
text: t('questWaffleText'),
notes: t('questWaffleNotes'),
@ -178,9 +178,9 @@ const QUEST_SEASONAL = {
},
},
virtualpet: {
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
event: EVENTS.aprilFoolsQuest2024,
canBuy () {
return this.event && moment().isBetween(this.event.start, this.event.end);
return moment().isBetween(EVENTS.aprilFoolsQuest2024.start, EVENTS.aprilFoolsQuest2024.end);
},
text: t('questVirtualPetText'),
notes: t('questVirtualPetNotes'),
@ -220,6 +220,49 @@ const QUEST_SEASONAL = {
unlock: t('questVirtualPetUnlockText'),
},
},
fungi: {
event: EVENTS.aprilFoolsQuest2024,
canBuy () {
return moment().isBetween(EVENTS.aprilFoolsQuest2024.start, EVENTS.aprilFoolsQuest2024.end);
},
text: t('questFungiText'),
notes: t('questFungiNotes'),
completion: t('questFungiCompletion'),
value: 4,
category: 'hatchingPotion',
boss: {
name: t('questFungiBoss'),
hp: 500,
str: 2,
rage: {
title: t('questFungiRageTitle'),
description: t('questFungiRageDescription'),
value: 50,
mpDrain: .33,
effect: t('questFungiRageEffect'),
},
},
drop: {
items: [
{
type: 'hatchingPotions',
key: 'Fungi',
text: t('questFungiDropFungiPotion'),
}, {
type: 'hatchingPotions',
key: 'Fungi',
text: t('questFungiDropFungiPotion'),
}, {
type: 'hatchingPotions',
key: 'Fungi',
text: t('questFungiDropFungiPotion'),
},
],
gp: 40,
exp: 500,
unlock: t('questFungiUnlockText'),
},
},
};
export default QUEST_SEASONAL;

View file

@ -42,24 +42,24 @@ const featuredItems = {
},
{
type: 'eggs',
path: 'eggs.Fox',
path: 'eggs.Dragon',
},
];
},
quests () {
if (moment().isBetween(EVENTS.bundle202403.start, EVENTS.bundle202403.end)) {
if (moment().isBetween(EVENTS.aprilFoolsQuest2024.start, EVENTS.aprilFoolsQuest2024.end)) {
return [
{
type: 'bundles',
path: 'bundles.cuddleBuddies',
type: 'quests',
path: 'quests.fungi',
},
{
type: 'quests',
path: 'quests.hedgehog',
path: 'quests.badger',
},
{
type: 'quests',
path: 'quests.sheep',
path: 'quests.snake',
},
];
}

View file

@ -1068,7 +1068,7 @@ schema.methods._processBossQuest = async function processBossQuest (options) {
}
if (group.quest.progress.hp > quest.boss.hp) group.quest.progress.hp = quest.boss.hp;
if (quest.boss.rage.mpDrain) {
updates.$set = { 'stats.mp': 0 };
updates.$mul = { 'stats.mp': 1 - quest.boss.rage.mpDrain };
}
if (quest.boss.rage.progressDrain) {
updates.$mul = { 'party.quest.progress.up': quest.boss.rage.progressDrain };