feat(content): Subscriber Items and Magic Potions
@@ -8,7 +8,7 @@ const authorUuid = '7f14ed62-5408-4e1b-be83-ada62d504931'; // ... own data is do
|
||||
/*
|
||||
* Award this month's mystery items to subscribers
|
||||
*/
|
||||
const MYSTERY_ITEMS = ['armor_mystery_201808', 'head_mystery_201808'];
|
||||
const MYSTERY_ITEMS = ['armor_mystery_201809', 'head_mystery_201809'];
|
||||
const CONNECTION_STRING = nconf.get('MIGRATION_CONNECT_STRING');
|
||||
|
||||
let dbUsers = monk(CONNECTION_STRING).get('users', { castIds: false });
|
||||
|
||||
@@ -270,6 +270,7 @@
|
||||
"hatchingPotionStarryNight": "Starry Night",
|
||||
"hatchingPotionRainbow": "Rainbow",
|
||||
"hatchingPotionGlass": "Glass",
|
||||
"hatchingPotionGlow": "Glow-in-the-Dark",
|
||||
|
||||
"hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> pet.",
|
||||
"premiumPotionAddlNotes": "Not usable on quest pet eggs.",
|
||||
|
||||
@@ -270,9 +270,16 @@
|
||||
"notAnEmail": "Invalid email address.",
|
||||
"emailTaken": "Email address is already used in an account.",
|
||||
"newEmailRequired": "Missing new email address.",
|
||||
"usernameTaken": "Login Name already taken.",
|
||||
"usernameWrongLength": "Login Name must be between 1 and 20 characters long.",
|
||||
"usernameBadCharacters": "Login Name must contain only letters a to z, numbers 0 to 9, hyphens, or underscores.",
|
||||
"usernameTime": "It's time to set your username!",
|
||||
"usernameInfo": "Your display name hasn't changed, but your old login name will now become your public username. This username will be used for invitations, @mentions in chat, and messaging.<br><br>If you'd like to learn more about this change, <a href='http://habitica.wikia.com/wiki/Habitica_Wiki' target='_blank'>visit our wiki</a>.",
|
||||
"usernameTOSRequirements": "Usernames must conform to our Terms of Service and Community Guidelines. If you didn’t previously set a login name, your username was auto-generated.",
|
||||
"usernameTaken": "Username already taken.",
|
||||
"usernameWrongLength": "Username must be between 1 and 20 characters long.",
|
||||
"displayNameWrongLength": "Display names must be between 1 and 30 characters long.",
|
||||
"usernameBadCharacters": "Usernames can only contain letters a to z, numbers 0 to 9, hyphens, or underscores.",
|
||||
"nameBadWords": "Names cannot include any inappropriate words.",
|
||||
"confirmUsername": "Confirm Username",
|
||||
"usernameConfirmed": "Username Confirmed",
|
||||
"passwordConfirmationMatch": "Password confirmation doesn't match password.",
|
||||
"invalidLoginCredentials": "Incorrect username and/or email and/or password.",
|
||||
"passwordResetPage": "Reset Password",
|
||||
@@ -295,7 +302,7 @@
|
||||
"signUpWithSocial": "Sign up with <%= social %>",
|
||||
"loginWithSocial": "Log in with <%= social %>",
|
||||
"confirmPassword": "Confirm Password",
|
||||
"usernameLimitations": "Login Name must be 1 to 20 characters long, containing only letters a to z, or numbers 0 to 9, or hyphens, or underscores.",
|
||||
"usernameLimitations": "Username must be 1 to 20 characters, containing only letters a to z, numbers 0 to 9, hyphens, or underscores, and cannot include any inappropriate terms.",
|
||||
"usernamePlaceholder": "e.g., HabitRabbit",
|
||||
"emailPlaceholder": "e.g., rabbit@example.com",
|
||||
"passwordPlaceholder": "e.g., ******************",
|
||||
|
||||
@@ -739,6 +739,8 @@
|
||||
"armorMystery201807Notes": "This powerful tail will propel you through the sea at incredible speeds! Confers no benefit. July 2018 Subscriber Item.",
|
||||
"armorMystery201808Text": "Lava Dragon Armor",
|
||||
"armorMystery201808Notes": "This armor is made from the shed scales of the elusive (and extremely warm) Lava Dragon. Confers no benefit. August 2018 Subscriber Item.",
|
||||
"armorMystery201809Text": "Armor of Autumn Leaves",
|
||||
"armorMystery201809Notes": "You are not only a small and fearsome leaf puff, you are sporting the most beautiful colors of the season! Confers no benefit. September 2018 Subscriber Item.",
|
||||
"armorMystery301404Text": "Steampunk Suit",
|
||||
"armorMystery301404Notes": "Dapper and dashing, wot! Confers no benefit. February 3015 Subscriber Item.",
|
||||
"armorMystery301703Text": "Steampunk Peacock Gown",
|
||||
@@ -1191,6 +1193,8 @@
|
||||
"headMystery201807Notes": "The strong scales on this helm will protect you from any manner of oceanic foe. Confers no benefit. July 2018 Subscriber Item.",
|
||||
"headMystery201808Text": "Lava Dragon Cowl",
|
||||
"headMystery201808Notes": "The glowing horns on this cowl will light your way through underground caverns. Confers no benefit. August 2018 Subscriber Item.",
|
||||
"headMystery201809Text": "Crown of Autumn Flowers",
|
||||
"headMystery201809Notes": "The last flowers of autumn's warm days are a reminder of the beauty of the season. Confers no benefit. September 2018 Subscriber Item.",
|
||||
"headMystery301404Text": "Fancy Top Hat",
|
||||
"headMystery301404Notes": "A fancy top hat for the finest of gentlefolk! January 3015 Subscriber Item. Confers no benefit.",
|
||||
"headMystery301405Text": "Basic Top Hat",
|
||||
|
||||
@@ -148,6 +148,7 @@
|
||||
"mysterySet201806": "Alluring Anglerfish Set",
|
||||
"mysterySet201807": "Sea Serpent Set",
|
||||
"mysterySet201808": "Lava Dragon Set",
|
||||
"mysterySet201809": "Autumnal Armor Set",
|
||||
"mysterySet301404": "Steampunk Standard Set",
|
||||
"mysterySet301405": "Steampunk Accessories Set",
|
||||
"mysterySet301703": "Peacock Steampunk Set",
|
||||
|
||||
@@ -211,6 +211,12 @@ let armor = {
|
||||
mystery: '201808',
|
||||
value: 0,
|
||||
},
|
||||
201809: {
|
||||
text: t('armorMystery201809Text'),
|
||||
notes: t('armorMystery201809Notes'),
|
||||
mystery: '201809',
|
||||
value: 0,
|
||||
},
|
||||
301404: {
|
||||
text: t('armorMystery301404Text'),
|
||||
notes: t('armorMystery301404Notes'),
|
||||
@@ -619,6 +625,12 @@ let head = {
|
||||
mystery: '201808',
|
||||
value: 0,
|
||||
},
|
||||
201809: {
|
||||
text: t('headMystery201809Text'),
|
||||
notes: t('headMystery201809Notes'),
|
||||
mystery: '201809',
|
||||
value: 0,
|
||||
},
|
||||
301404: {
|
||||
text: t('headMystery301404Text'),
|
||||
notes: t('headMystery301404Notes'),
|
||||
|
||||
@@ -3,7 +3,7 @@ import defaults from 'lodash/defaults';
|
||||
import each from 'lodash/each';
|
||||
import t from './translation';
|
||||
|
||||
const CURRENT_SEASON = '_NONE_';
|
||||
const CURRENT_SEASON = 'October';
|
||||
|
||||
let drops = {
|
||||
Base: {
|
||||
@@ -100,7 +100,7 @@ let premium = {
|
||||
value: 2,
|
||||
text: t('hatchingPotionSpooky'),
|
||||
limited: true,
|
||||
_season: 'October',
|
||||
_season: '_PENDING_',
|
||||
},
|
||||
Ghost: {
|
||||
value: 2,
|
||||
@@ -138,6 +138,12 @@ let premium = {
|
||||
limited: true,
|
||||
_season: 'July',
|
||||
},
|
||||
Glow: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionGlow'),
|
||||
limited: true,
|
||||
_season: 'October',
|
||||
},
|
||||
};
|
||||
|
||||
each(drops, (pot, key) => {
|
||||
|
||||
@@ -222,6 +222,10 @@ let mysterySets = {
|
||||
start: '2018-08-23',
|
||||
end: '2018-09-02',
|
||||
},
|
||||
201809: {
|
||||
start: '2018-09-25',
|
||||
end: '2018-10-02',
|
||||
},
|
||||
301404: {
|
||||
start: '3014-03-24',
|
||||
end: '3014-04-02',
|
||||
|
||||
@@ -9,15 +9,15 @@ const featuredItems = {
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Ember',
|
||||
path: 'premiumHatchingPotions.Ghost',
|
||||
},
|
||||
{
|
||||
type: 'eggs',
|
||||
path: 'eggs.Dragon',
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Glow',
|
||||
},
|
||||
{
|
||||
type: 'card',
|
||||
path: 'cardTypes.congrats',
|
||||
path: 'cardTypes.getwell',
|
||||
},
|
||||
],
|
||||
quests: [
|
||||
|
||||
|
After Width: | Height: | Size: 582 B |
|
After Width: | Height: | Size: 580 B |
|
After Width: | Height: | Size: 530 B |
|
After Width: | Height: | Size: 547 B |
|
After Width: | Height: | Size: 870 B |
|
After Width: | Height: | Size: 570 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 984 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 969 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 981 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 837 B |
|
After Width: | Height: | Size: 936 B |
|
After Width: | Height: | Size: 999 B |
|
After Width: | Height: | Size: 936 B |
|
After Width: | Height: | Size: 948 B |
|
After Width: | Height: | Size: 882 B |
|
After Width: | Height: | Size: 846 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1014 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-BearCub-Glow.png
Normal file
|
After Width: | Height: | Size: 690 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Cactus-Glow.png
Normal file
|
After Width: | Height: | Size: 652 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Dragon-Glow.png
Normal file
|
After Width: | Height: | Size: 821 B |
|
After Width: | Height: | Size: 851 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Fox-Glow.png
Normal file
|
After Width: | Height: | Size: 763 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-LionCub-Glow.png
Normal file
|
After Width: | Height: | Size: 677 B |
|
After Width: | Height: | Size: 646 B |
|
After Width: | Height: | Size: 753 B |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Wolf-Glow.png
Normal file
|
After Width: | Height: | Size: 715 B |
|
After Width: | Height: | Size: 6.6 KiB |
BIN
website/raw_sprites/spritesmith_large/promo_ghost_potions.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
BIN
website/raw_sprites/spritesmith_large/promo_mystery_201809.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
website/raw_sprites/spritesmith_large/scene_painting.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
@@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth';
|
||||
let api = {};
|
||||
|
||||
// @TODO export this const, cannot export it from here because only routes are exported from controllers
|
||||
const LAST_ANNOUNCEMENT_TITLE = 'FALL FESTIVAL BEGINS! LIMITED EDITION FALL EQUIPMENT, SEASONAL SHOP OPENS, AND NPC OUTFITS!';
|
||||
const LAST_ANNOUNCEMENT_TITLE = 'SEPTEMBER SUBSCRIBER ITEMS, GHOST AND GLOW-IN-THE-DARK HATCHING POTIONS, AND BLOG POST ON CONTRIBUTING TO HABITICA';
|
||||
const worldDmg = { // @TODO
|
||||
bailey: false,
|
||||
};
|
||||
@@ -30,21 +30,24 @@ api.getNews = {
|
||||
<div class="mr-3 ${baileyClass}"></div>
|
||||
<div class="media-body">
|
||||
<h1 class="align-self-center">${res.t('newStuff')}</h1>
|
||||
<h2>9/20/2018 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
||||
<h2>9/25/2018 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="promo_fall_festival_2018 center-block"></div>
|
||||
<h3>Limited Edition Class Outfits!</h3>
|
||||
<p>From now until October 31st, limited edition outfits are available in the Rewards column! Depending on your class, you can be a Minotaur Warrior, an Alter Ego Rogue, a Carnivorous Plant Healer, or a Candymancer Mage. You'd better get productive to earn enough gold before your time runs out...</p>
|
||||
<div class="small mb-3">by AnnDeLune, Vikte, QuartzFox, Beffymaroo, and SabreCat</div>
|
||||
<div class="promo_fall_festival_2017 center-block"></div>
|
||||
<h3>Seasonal Shop Opens</h3>
|
||||
<p>The <a href='/shops/seasonal' target='_blank'>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, Lemoness, Beffymaroo, and SabreCat</div>
|
||||
<h3>NPC Outfits</h3>
|
||||
<p>Everyone has hastened down to the Flourishing Fields to celebrate this spooky harvest festival. Be sure to check out all the new outfits that people are sporting!</p>
|
||||
<div class="promo_seasonal_shop center-block"></div>
|
||||
<div class="promo_mystery_201809 center-block"></div>
|
||||
<h3>September Subscriber Items Revealed!</h3>
|
||||
<p>The September Subscriber Items have been revealed: the Autumnal Armor Item Set! You only have until September 30 to receive the item set <a href='/user/settings/subscription' target='_blank'>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>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>
|
||||
<div class="small mb-3">by Beffymaroo</div>
|
||||
<div class="promo_ghost_potions center-block"></div>
|
||||
<h3>Ghost and Glow-in-the-Dark Hatching Potions</h3>
|
||||
<p>We've brought back Ghost Potions, and added a brand-new Magic Hatching Potion: Glow-in-the-Dark! Between now and October 31st, you can buy these Hatching Potions from <a href='/shops/market' target='_blank'>the Market</a> and use them to hatch any standard pet egg. (Magic Hatching Potions do not work on Quest Pet eggs.) Magic Hatching Potion Pets aren't picky, so they'll happily eat any kind of food that you feed them!</p>
|
||||
<p>After they're gone, it will be at least a year before the Ghost or Glow-in-the-Dark Hatching Potions are available again, so be sure to get them now!</p>
|
||||
<div class="small mb-3">by Hermi, AaronTheTwin, tricksy.fox, and SabreCat</div>
|
||||
<div class="scene_painting center-block"></div>
|
||||
<h3>Blog Post: Contributing to Habitica</h3>
|
||||
<p>This month's <a href='https://habitica.wordpress.com/2018/09/19/contributing-to-habitica/' target='_blank'>featured Wiki article</a> is about Contributing to Habitica. We hope that it will help you get involved with our open-source project and our great community! 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="small mb-3">by shanaqui and the Wiki Wizards</div>
|
||||
</div>
|
||||
`,
|
||||
});
|
||||
|
||||