feat(content): Vampire Hatching Potions

This commit is contained in:
Sabe Jones
2020-09-23 14:09:38 -05:00
parent cfa4d03e45
commit ee70ed6146
42 changed files with 65 additions and 42 deletions

View File

@@ -304,6 +304,7 @@
"hatchingPotionSandSculpture": "Sand Sculpture",
"hatchingPotionWindup": "Wind-Up",
"hatchingPotionTurquoise": "Turquoise",
"hatchingPotionVampire": "Vampire",
"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

@@ -149,6 +149,13 @@ const premium = {
value: 2,
text: t('hatchingPotionGhost'),
limited: true,
event: EVENTS.fall2020,
canBuy () {
return moment().isBefore('2020-11-02');
},
_addlNotes: t('premiumPotionAddlNotes', {
date: t('dateEndOctober'),
}),
},
Holly: {
value: 2,
@@ -276,6 +283,13 @@ const premium = {
value: 2,
text: t('hatchingPotionShadow'),
limited: true,
event: EVENTS.fall2020,
canBuy () {
return moment().isBefore('2020-11-02');
},
_addlNotes: t('premiumPotionAddlNotes', {
date: t('dateEndOctober'),
}),
},
Amber: {
value: 2,
@@ -347,6 +361,18 @@ const premium = {
canBuy: hasQuestAchievementFunction('turquoise'),
_addlNotes: t('premiumPotionUnlimitedNotes'),
},
Vampire: {
value: 2,
text: t('hatchingPotionVampire'),
limited: true,
event: EVENTS.fall2020,
canBuy () {
return moment().isBefore('2020-11-02');
},
_addlNotes: t('premiumPotionAddlNotes', {
date: t('dateEndOctober'),
}),
},
};
const wacky = {

View File

@@ -1,8 +1,29 @@
import moment from 'moment';
// Magic Hatching Potions are configured like this:
// type: 'premiumHatchingPotion', // note no "s" at the end
// path: 'premiumHatchingPotions.Rainbow',
const featuredItems = {
market () {
if (moment().isBefore('2020-11-02')) {
return [
{
type: 'armoire',
path: 'armoire',
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Vampire',
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Ghost',
},
{
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Shadow',
},
];
}
return [
{
type: 'armoire',
@@ -10,15 +31,15 @@ const featuredItems = {
},
{
type: 'hatchingPotions',
path: 'hatchingPotions.Shade',
path: 'hatchingPotions.Red',
},
{
type: 'eggs',
path: 'eggs.TigerCub',
path: 'eggs.Fox',
},
{
type: 'food',
path: 'food.Saddle',
path: 'food.potatoe',
},
];
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 868 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1000 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -4,7 +4,7 @@ const api = {};
// @TODO export this const, cannot export it from here because only routes are exported from
// controllers
const LAST_ANNOUNCEMENT_TITLE = 'FALL FESTIVAL BEGINS! NOW WITH A SALE ON GEMS!';
const LAST_ANNOUNCEMENT_TITLE = 'NEW VAMPIRE MAGIC HATCHING POTIONS, PLUS THE RETURN OF GHOST AND SHADOW POTIONS!';
const worldDmg = { // @TODO
bailey: false,
};
@@ -31,53 +31,28 @@ api.getNews = {
<div class="mr-3 ${baileyClass}"></div>
<div class="media-body">
<h1 class="align-self-center">${res.t('newStuff')}</h1>
<h2>9/22/2020 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
<h2>9/24/2020 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
</div>
</div>
<hr/>
<div class="promo_fall_festival_2020 center-block"></div>
<h3>Limited Edition Class Outfits</h3>
<div class="promo_vampire_potions center-block"></div>
<p>
From now until October 31st, limited edition outfits are available in the Rewards column!
Depending on your class, you can be a Wraith Warrior, Death's Head Moth Healer, Third Eye
Mage, or Two-Headed Rogue. You'd better get productive to earn enough gold before your
time runs out...
There's a new pet breed in town! Between now and October 31st, you can buy Magic Hatching
Potions from <a href='/shops/market'>the Market</a> and use them to hatch any standard
pet egg. (Magic Hatching Potions do not work on Quest Pet eggs.) Magic Potion Pets aren't
picky, so they'll happily eat any kind of food that you feed them!
</p>
<div class="small mb-3">by Gawrone, Vikte, jjgame83, and SabreCat</div>
<div class="promo_fall_festival_2019 center-block"></div>
<h3>Seasonal Shop Opens</h3>
<p>
The <a href='/shops/seasonal'>Seasonal Shop</a> has opened! It's stocking autumnal
Seasonal Edition goodies at the moment, including past fall outfits. Everything there
will be available to purchase during the Fall Festival event each year, but it's only
open until October 31st, so be sure to stock up now, or you'll have to wait a year to
buy these items again!
For this Gala, we've brought back Ghost and Shadow Potions, and added a brand-new potion:
Vampire!
</p>
<p>
After they're gone, it will be at least a year before these Hatching Potions are
available again, so be sure to get them now!
</p>
<div class="small mb-3">
by Gawrone, jjgame83, AnnDeLune, ʂʈєƒąʃųƥągųʂ, Katy133, Lilith of Alfheim, Definitely not
a villain, ShoGirlGeek. cataclysms, maxpendragon, Vikte, QuartzFox, Lemoness, Beffymaroo
and SabreCat
by QuartzFox, Hermi, jjgame83, OuttaMyMind, loremi, and SabreCat
</div>
<div class="npc_justin center-block"></div>
<p>
Everyone has hastened down to the Flourishing Fields to celebrate this spooky harvest
festival. Be sure to check out all the outfits that people are sporting!
</p>
<h3>Fall Gem Sale! September 22-30</h3>
<p>
For the first time ever, Habitica is offering a Gem sale to kick off the fun of Fall
Festival! Receive bonus Gems with each Gem purchase on web or mobile - the more Gems you
buy, the bigger the bonus! Use them to grab past Fall Festival Gear from the Seasonal
Shop, Quests, Magic Hatching Potions, and more. Find more details via Menu > Gems on
mobile, or tapping the Gem on the top menu bar on web.
</p>
<p>
Be sure to update your mobile app to see details, although the promo will still work even
if you can't see the promotional information.
</p>
<p>
Thanks so much for your support. 💜 Gem purchases help keep us running ad-free!
</p>
</div>
`,
});