mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-04-14 19:56:23 +00:00
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:
parent
76d7f02fe8
commit
0fd808727c
9 changed files with 99 additions and 17 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) %>.",
|
||||
|
|
|
|||
|
|
@ -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": "It’s 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. There’s a fog hanging about, not quite letting the sun peek through, and it’s 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>”I’d 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, it’s 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. You’re 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. Let’s 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. I’m glad we could improve his mood, and ours too! I feel my energy coming back. Come with me and we’ll 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."
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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) => {
|
||||
|
|
|
|||
|
|
@ -702,7 +702,7 @@ const QUEST_MASTERCLASSER = {
|
|||
title: t('questLostMasterclasser4RageTitle'),
|
||||
description: t('questLostMasterclasser4RageDescription'),
|
||||
value: 15,
|
||||
mpDrain: true,
|
||||
mpDrain: 1,
|
||||
effect: t('questLostMasterclasser4RageEffect'),
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 };
|
||||
|
|
|
|||
Loading…
Reference in a new issue