feat(content): Magic Hatching Potions
@@ -294,9 +294,10 @@
|
|||||||
"hatchingPotionBronze": "Bronze",
|
"hatchingPotionBronze": "Bronze",
|
||||||
"hatchingPotionWatery": "Watery",
|
"hatchingPotionWatery": "Watery",
|
||||||
"hatchingPotionSilver": "Silver",
|
"hatchingPotionSilver": "Silver",
|
||||||
|
"hatchingPotionShadow": "Shadow",
|
||||||
|
|
||||||
"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.",
|
"premiumPotionAddlNotes": "Not usable on quest pet eggs. Available for purchase until <%= date(locale) %>.",
|
||||||
|
|
||||||
"foodMeat": "Meat",
|
"foodMeat": "Meat",
|
||||||
"foodMeatThe": "the Meat",
|
"foodMeatThe": "the Meat",
|
||||||
|
|||||||
@@ -147,7 +147,7 @@
|
|||||||
"fall2019LichSet": "Lich (Healer)",
|
"fall2019LichSet": "Lich (Healer)",
|
||||||
"fall2019RavenSet": "Raven (Warrior)",
|
"fall2019RavenSet": "Raven (Warrior)",
|
||||||
"eventAvailability": "Available for purchase until <%= date(locale) %>.",
|
"eventAvailability": "Available for purchase until <%= date(locale) %>.",
|
||||||
"eventAvailabilityReturning": "Available for purchase until <%= availableDate(locale) %>. This potion was previously released in <%= previousDate(locale) %>.",
|
"eventAvailabilityReturning": "Available for purchase until <%= availableDate(locale) %>. This potion was last available in <%= previousDate(locale) %>.",
|
||||||
"dateEndMarch": "April 30",
|
"dateEndMarch": "April 30",
|
||||||
"dateEndApril": "April 19",
|
"dateEndApril": "April 19",
|
||||||
"dateEndMay": "May 31",
|
"dateEndMay": "May 31",
|
||||||
@@ -156,6 +156,8 @@
|
|||||||
"dateEndJuly": "July 31",
|
"dateEndJuly": "July 31",
|
||||||
"dateEndAugust": "August 31",
|
"dateEndAugust": "August 31",
|
||||||
"dateEndSeptember": "September 21",
|
"dateEndSeptember": "September 21",
|
||||||
|
"september2017": "September 2017",
|
||||||
|
"september2018": "September 2018",
|
||||||
"dateEndOctober": "October 31",
|
"dateEndOctober": "October 31",
|
||||||
"dateEndNovember": "December 3",
|
"dateEndNovember": "December 3",
|
||||||
"dateEndJanuary": "January 31",
|
"dateEndJanuary": "January 31",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import defaults from 'lodash/defaults';
|
|||||||
import each from 'lodash/each';
|
import each from 'lodash/each';
|
||||||
import t from './translation';
|
import t from './translation';
|
||||||
|
|
||||||
const CURRENT_SEASON = '_NONE_';
|
const CURRENT_SEASON = 'October';
|
||||||
|
|
||||||
function hasQuestAchievementFunction (key) {
|
function hasQuestAchievementFunction (key) {
|
||||||
return (user) => {
|
return (user) => {
|
||||||
@@ -107,7 +107,11 @@ let premium = {
|
|||||||
value: 2,
|
value: 2,
|
||||||
text: t('hatchingPotionSpooky'),
|
text: t('hatchingPotionSpooky'),
|
||||||
limited: true,
|
limited: true,
|
||||||
_season: '_PENDING_',
|
_season: 'October',
|
||||||
|
_addlNotes: t('eventAvailabilityReturning', {
|
||||||
|
availableDate: t('dateEndOctober'),
|
||||||
|
previousDate: t('september2017'),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
Ghost: {
|
Ghost: {
|
||||||
value: 2,
|
value: 2,
|
||||||
@@ -153,7 +157,11 @@ let premium = {
|
|||||||
value: 2,
|
value: 2,
|
||||||
text: t('hatchingPotionGlow'),
|
text: t('hatchingPotionGlow'),
|
||||||
limited: true,
|
limited: true,
|
||||||
_season: '_PENDING_',
|
_season: 'October',
|
||||||
|
_addlNotes: t('eventAvailabilityReturning', {
|
||||||
|
availableDate: t('dateEndOctober'),
|
||||||
|
previousDate: t('september2018'),
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
Frost: {
|
Frost: {
|
||||||
value: 2,
|
value: 2,
|
||||||
@@ -203,6 +211,12 @@ let premium = {
|
|||||||
limited: true,
|
limited: true,
|
||||||
canBuy: hasQuestAchievementFunction('silver'),
|
canBuy: hasQuestAchievementFunction('silver'),
|
||||||
},
|
},
|
||||||
|
Shadow: {
|
||||||
|
value: 2,
|
||||||
|
text: t('hatchingPotionShadow'),
|
||||||
|
limited: true,
|
||||||
|
_season: 'October',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const wacky = {
|
const wacky = {
|
||||||
@@ -235,7 +249,9 @@ each(premium, (pot, key) => {
|
|||||||
notes: t('hatchingPotionNotes', {
|
notes: t('hatchingPotionNotes', {
|
||||||
potText: pot.text,
|
potText: pot.text,
|
||||||
}),
|
}),
|
||||||
_addlNotes: t('premiumPotionAddlNotes'),
|
_addlNotes: t('premiumPotionAddlNotes', {
|
||||||
|
date: t(`dateEnd${pot._season}`),
|
||||||
|
}),
|
||||||
premium: true,
|
premium: true,
|
||||||
limited: false,
|
limited: false,
|
||||||
canBuy () {
|
canBuy () {
|
||||||
|
|||||||
@@ -8,16 +8,16 @@ const featuredItems = {
|
|||||||
path: 'armoire',
|
path: 'armoire',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'eggs',
|
type: 'premiumHatchingPotion',
|
||||||
path: 'eggs.LionCub',
|
path: 'premiumHatchingPotions.Glow',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'hatchingPotions',
|
type: 'premiumHatchingPotion',
|
||||||
path: 'hatchingPotions.Desert',
|
path: 'premiumHatchingPotions.Spooky',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'food',
|
type: 'premiumHatchingPotion',
|
||||||
path: 'food.Potatoe',
|
path: 'premiumHatchingPotions.Shadow',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
quests: [
|
quests: [
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 586 B |
|
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 521 B |
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 586 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 770 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 871 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 743 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 916 B |
|
After Width: | Height: | Size: 929 B |
|
After Width: | Height: | Size: 989 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 540 B |
|
After Width: | Height: | Size: 757 B |
|
After Width: | Height: | Size: 759 B |
|
After Width: | Height: | Size: 668 B |
|
After Width: | Height: | Size: 684 B |
|
After Width: | Height: | Size: 643 B |
|
After Width: | Height: | Size: 573 B |
|
After Width: | Height: | Size: 814 B |
|
After Width: | Height: | Size: 809 B |
|
After Width: | Height: | Size: 894 B |
|
After Width: | Height: | Size: 837 B |
|
After Width: | Height: | Size: 1010 B |
|
After Width: | Height: | Size: 1.0 KiB |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Fox-Shadow.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 864 B |
|
After Width: | Height: | Size: 831 B |
|
After Width: | Height: | Size: 995 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Wolf-Shadow.png
Normal file
|
After Width: | Height: | Size: 953 B |
|
After Width: | Height: | Size: 664 B |
|
After Width: | Height: | Size: 19 KiB |
@@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth';
|
|||||||
let api = {};
|
let api = {};
|
||||||
|
|
||||||
// @TODO export this const, cannot export it from here because only routes are exported from controllers
|
// @TODO export this const, cannot export it from here because only routes are exported from controllers
|
||||||
const LAST_ANNOUNCEMENT_TITLE = 'FALL FESTIVAL BEGINS! SEPTEMBER SUBSCRIBER ITEMS!';
|
const LAST_ANNOUNCEMENT_TITLE = 'NEW AND RERELEASED HATCHING POTIONS! PLUS BLOG UPDATES';
|
||||||
const worldDmg = { // @TODO
|
const worldDmg = { // @TODO
|
||||||
bailey: false,
|
bailey: false,
|
||||||
};
|
};
|
||||||
@@ -30,26 +30,20 @@ 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/24/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
<h2>9/26/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="promo_mystery_201909 center-block"></div>
|
<div class="promo_shadow_spooky_potions center-block"></div>
|
||||||
<h3>September Subscriber Items Revealed!</h3>
|
<h3>New Shadow Magic Hatching Potions, Plus the Return of Spooky and Glow-in-the-Dark Potions!</h3>
|
||||||
<p>The September Subscriber Item Set has been revealed: the Affable Acorn Item Set! You only have until September 30 to <a href='/user/settings/subscription'>receive the item set when you subscribe</a>. If you're already an active subscriber, reload the site and then head to Inventory > Items to claim your gear!</p>
|
<p>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>
|
||||||
<p>Subscribers also receive the ability to buy Gems for Gold -- the longer you subscribe, the more Gems you can buy per month! There are other perks as well, such as longer access to uncompressed data and a cute Jackalope pet. Best of all, subscriptions let us keep Habitica running. Thank you very much for your support -- it means a lot to us.</p>
|
<p>For this Gala, we've brought back Glow-in-the-Dark Potions and Spooky Potions, and added a brand-new potion: Shadow!</p>
|
||||||
<div class="small mb-3">by Beffymaroo</div>
|
<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="promo_fall_festival_2019 center-block"></div>
|
<div class="small mb-3">by Lemoness, QuartzFox, AaronTheTwin, tricksy.fox, and SabreCat</div>
|
||||||
<h3>Limited Edition Class Outfits</h3>
|
<div class="scene_casting_spells 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 Raven Warrior, a Lich Healer, a Phantom Rogue, or a Cyclops Mage. You'd better get productive to earn enough gold before your time runs out...</p>
|
<h3>Blog Post: Mage</h3>
|
||||||
<div class="small mb-3">by gawrone, jjgame83, AnnDeLune, Beffymaroo, and SabreCat</div>
|
<p>This month's <a href='https://habitica.wordpress.com/2019/09/25/mage/' target='_blank'>featured Wiki article</a> is about the Mage Class! We hope that it will help you as you choose the best class for your Habitica play style. Be sure to check it out, and let us know what you think by reaching out on <a href='https://twitter.com/habitica' target='_blank'>Twitter</a>, <a href='http://blog.habitrpg.com' target='_blank'>Tumblr</a>, and <a href='https://facebook.com/habitica' target='_blank'>Facebook</a>.</p>
|
||||||
<div class="promo_fall_festival_2018 center-block"></div>
|
<div class="small mb-3">by shanaqui and the Wiki Wizards</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!</p>
|
|
||||||
<div class="small mb-3">by AnnDeLune, ʂʈєƒąʃųƥągųʂ, Katy133, Lilith of Alfheim, Definitely not a villain, ShoGirlGeek. cataclysms, maxpendragon, Vikte, QuartzFox, Lemoness, Beffymaroo and SabreCat</div>
|
|
||||||
<div class="promo_seasonal_shop_fall center-block"></div>
|
|
||||||
<h3>NPC Outfits</h3>
|
|
||||||
<p>Everyone has hastened down to the Flourishing Fields to celebrate this spooky autumn festival. Be sure to check out all the outfits that people are sporting!</p>
|
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
|
|||||||