feat(content): Vampire Hatching Potions
@@ -304,6 +304,7 @@
|
|||||||
"hatchingPotionSandSculpture": "Sand Sculpture",
|
"hatchingPotionSandSculpture": "Sand Sculpture",
|
||||||
"hatchingPotionWindup": "Wind-Up",
|
"hatchingPotionWindup": "Wind-Up",
|
||||||
"hatchingPotionTurquoise": "Turquoise",
|
"hatchingPotionTurquoise": "Turquoise",
|
||||||
|
"hatchingPotionVampire": "Vampire",
|
||||||
|
|
||||||
"hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> 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) %>.",
|
"premiumPotionAddlNotes": "Not usable on quest pet eggs. Available for purchase until <%= date(locale) %>.",
|
||||||
|
|||||||
@@ -149,6 +149,13 @@ const premium = {
|
|||||||
value: 2,
|
value: 2,
|
||||||
text: t('hatchingPotionGhost'),
|
text: t('hatchingPotionGhost'),
|
||||||
limited: true,
|
limited: true,
|
||||||
|
event: EVENTS.fall2020,
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBefore('2020-11-02');
|
||||||
|
},
|
||||||
|
_addlNotes: t('premiumPotionAddlNotes', {
|
||||||
|
date: t('dateEndOctober'),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
Holly: {
|
Holly: {
|
||||||
value: 2,
|
value: 2,
|
||||||
@@ -276,6 +283,13 @@ const premium = {
|
|||||||
value: 2,
|
value: 2,
|
||||||
text: t('hatchingPotionShadow'),
|
text: t('hatchingPotionShadow'),
|
||||||
limited: true,
|
limited: true,
|
||||||
|
event: EVENTS.fall2020,
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBefore('2020-11-02');
|
||||||
|
},
|
||||||
|
_addlNotes: t('premiumPotionAddlNotes', {
|
||||||
|
date: t('dateEndOctober'),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
Amber: {
|
Amber: {
|
||||||
value: 2,
|
value: 2,
|
||||||
@@ -347,6 +361,18 @@ const premium = {
|
|||||||
canBuy: hasQuestAchievementFunction('turquoise'),
|
canBuy: hasQuestAchievementFunction('turquoise'),
|
||||||
_addlNotes: t('premiumPotionUnlimitedNotes'),
|
_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 = {
|
const wacky = {
|
||||||
|
|||||||
@@ -1,8 +1,29 @@
|
|||||||
|
import moment from 'moment';
|
||||||
// Magic Hatching Potions are configured like this:
|
// Magic Hatching Potions are configured like this:
|
||||||
// type: 'premiumHatchingPotion', // note no "s" at the end
|
// type: 'premiumHatchingPotion', // note no "s" at the end
|
||||||
// path: 'premiumHatchingPotions.Rainbow',
|
// path: 'premiumHatchingPotions.Rainbow',
|
||||||
const featuredItems = {
|
const featuredItems = {
|
||||||
market () {
|
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 [
|
return [
|
||||||
{
|
{
|
||||||
type: 'armoire',
|
type: 'armoire',
|
||||||
@@ -10,15 +31,15 @@ const featuredItems = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'hatchingPotions',
|
type: 'hatchingPotions',
|
||||||
path: 'hatchingPotions.Shade',
|
path: 'hatchingPotions.Red',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'eggs',
|
type: 'eggs',
|
||||||
path: 'eggs.TigerCub',
|
path: 'eggs.Fox',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'food',
|
type: 'food',
|
||||||
path: 'food.Saddle',
|
path: 'food.potatoe',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
|||||||
|
After Width: | Height: | Size: 842 B |
|
After Width: | Height: | Size: 587 B |
|
After Width: | Height: | Size: 449 B |
|
After Width: | Height: | Size: 733 B |
|
After Width: | Height: | Size: 828 B |
|
After Width: | Height: | Size: 868 B |
|
After Width: | Height: | Size: 620 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 828 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 876 B |
|
After Width: | Height: | Size: 913 B |
|
After Width: | Height: | Size: 951 B |
|
After Width: | Height: | Size: 842 B |
|
After Width: | Height: | Size: 821 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 869 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 952 B |
|
After Width: | Height: | Size: 1000 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 958 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Fox-Vampire.png
Normal file
|
After Width: | Height: | Size: 909 B |
|
After Width: | Height: | Size: 956 B |
|
After Width: | Height: | Size: 941 B |
|
After Width: | Height: | Size: 1.1 KiB |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Wolf-Vampire.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 844 B |
BIN
website/raw_sprites/spritesmith_large/promo_vampire_potions.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
@@ -4,7 +4,7 @@ const api = {};
|
|||||||
|
|
||||||
// @TODO export this const, cannot export it from here because only routes are exported from
|
// @TODO export this const, cannot export it from here because only routes are exported from
|
||||||
// controllers
|
// 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
|
const worldDmg = { // @TODO
|
||||||
bailey: false,
|
bailey: false,
|
||||||
};
|
};
|
||||||
@@ -31,53 +31,28 @@ api.getNews = {
|
|||||||
<div class="mr-3 ${baileyClass}"></div>
|
<div class="mr-3 ${baileyClass}"></div>
|
||||||
<div class="media-body">
|
<div class="media-body">
|
||||||
<h1 class="align-self-center">${res.t('newStuff')}</h1>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="promo_fall_festival_2020 center-block"></div>
|
<div class="promo_vampire_potions center-block"></div>
|
||||||
<h3>Limited Edition Class Outfits</h3>
|
|
||||||
<p>
|
<p>
|
||||||
From now until October 31st, limited edition outfits are available in the Rewards column!
|
There's a new pet breed in town! Between now and October 31st, you can buy Magic Hatching
|
||||||
Depending on your class, you can be a Wraith Warrior, Death's Head Moth Healer, Third Eye
|
Potions from <a href='/shops/market'>the Market</a> and use them to hatch any standard
|
||||||
Mage, or Two-Headed Rogue. You'd better get productive to earn enough gold before your
|
pet egg. (Magic Hatching Potions do not work on Quest Pet eggs.) Magic Potion Pets aren't
|
||||||
time runs out...
|
picky, so they'll happily eat any kind of food that you feed them!
|
||||||
</p>
|
</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>
|
<p>
|
||||||
The <a href='/shops/seasonal'>Seasonal Shop</a> has opened! It's stocking autumnal
|
For this Gala, we've brought back Ghost and Shadow Potions, and added a brand-new potion:
|
||||||
Seasonal Edition goodies at the moment, including past fall outfits. Everything there
|
Vampire!
|
||||||
will be available to purchase during the Fall Festival event each year, but it's only
|
</p>
|
||||||
open until October 31st, so be sure to stock up now, or you'll have to wait a year to
|
<p>
|
||||||
buy these items again!
|
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>
|
</p>
|
||||||
<div class="small mb-3">
|
<div class="small mb-3">
|
||||||
by Gawrone, jjgame83, AnnDeLune, ʂʈєƒąʃųƥągųʂ, Katy133, Lilith of Alfheim, Definitely not
|
by QuartzFox, Hermi, jjgame83, OuttaMyMind, loremi, and SabreCat
|
||||||
a villain, ShoGirlGeek. cataclysms, maxpendragon, Vikte, QuartzFox, Lemoness, Beffymaroo
|
|
||||||
and SabreCat
|
|
||||||
</div>
|
</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>
|
</div>
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
|
|||||||