Thunderstorm Hatching Potions (#7885)
* feat(premium): Thunderstorm Potions * chore(news): Thunderstorm Bailey * fix(test): allow addlNotes key
BIN
common/img/sprites/spritesmith/npcs/npc_vicky.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 991 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 959 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 902 B |
|
After Width: | Height: | Size: 885 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 827 B |
|
After Width: | Height: | Size: 925 B |
|
After Width: | Height: | Size: 918 B |
|
After Width: | Height: | Size: 848 B |
|
After Width: | Height: | Size: 752 B |
|
After Width: | Height: | Size: 794 B |
|
After Width: | Height: | Size: 839 B |
|
After Width: | Height: | Size: 933 B |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 957 B |
|
After Width: | Height: | Size: 915 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 915 B |
|
After Width: | Height: | Size: 930 B |
|
After Width: | Height: | Size: 946 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 667 B |
@@ -190,6 +190,7 @@
|
||||
"hatchingPotionSpooky": "Spooky",
|
||||
"hatchingPotionPeppermint": "Peppermint",
|
||||
"hatchingPotionFloral": "Floral",
|
||||
"hatchingPotionThunderstorm": "Thunderstorm",
|
||||
|
||||
"hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> pet.",
|
||||
"premiumPotionAddlNotes": "Not usable on quest pet eggs.",
|
||||
|
||||
@@ -75,7 +75,8 @@
|
||||
"shipSoothsayerSet": "Ship Soothsayer (Mage)",
|
||||
"strappingSailorSet": "Strapping Sailor (Healer)",
|
||||
"reefRenegadeSet": "Reef Renegade (Rogue)",
|
||||
"fallEventAvailability": "Available until October 31",
|
||||
"winterEventAvailability": "Available until December 31",
|
||||
"springEventAvailability": "Available until May 31"
|
||||
"fallEventAvailability": "Available for purchase until October 31.",
|
||||
"winterEventAvailability": "Available for purchase until December 31.",
|
||||
"springEventAvailability": "Available for purchase until May 31.",
|
||||
"summerEventAvailability": "Available for purchase until August 31."
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"eggSingular": "egg",
|
||||
"noEggs": "You don't have any eggs.",
|
||||
"hatchingPotions": "Hatching Potions",
|
||||
"magicHatchingPotions": "<strong>Magic Hatching Potions</strong>",
|
||||
"magicHatchingPotions": "Magic Hatching Potions",
|
||||
"hatchingPotion": "hatching potion",
|
||||
"noHatchingPotions": "You don't have any hatching potions.",
|
||||
"inventoryText": "Click an egg to see usable potions highlighted in green and then click one of the highlighted potions to hatch your pet. If no potions are highlighted, click that egg again to deselect it, and instead click a potion first to have the usable eggs highlighted. You can also sell unwanted drops to Alexander the Merchant.",
|
||||
|
||||
@@ -518,24 +518,27 @@ api.premiumHatchingPotions = {
|
||||
value: 2,
|
||||
text: t('hatchingPotionSpooky'),
|
||||
limited: true,
|
||||
canBuy: (function() {
|
||||
return false;
|
||||
})
|
||||
season: 'fall',
|
||||
},
|
||||
Peppermint: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionPeppermint'),
|
||||
limited: true,
|
||||
canBuy: (function() {
|
||||
return false;
|
||||
})
|
||||
season: 'winter',
|
||||
},
|
||||
Floral: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionFloral'),
|
||||
limited: true,
|
||||
season: 'spring',
|
||||
},
|
||||
Thunderstorm: {
|
||||
value: 2,
|
||||
text: t('hatchingPotionThunderstorm'),
|
||||
limited: true,
|
||||
season: 'summer',
|
||||
canBuy: (function() {
|
||||
return false;
|
||||
return true;
|
||||
}),
|
||||
},
|
||||
};
|
||||
@@ -562,11 +565,11 @@ _.each(api.premiumHatchingPotions, function(pot, key) {
|
||||
notes: t('hatchingPotionNotes', {
|
||||
potText: pot.text
|
||||
}),
|
||||
addlNotes: t('premiumPotionAddlNotes'),
|
||||
addlNotes: t(`${pot.season}EventAvailability`),
|
||||
premium: true,
|
||||
limited: false,
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
@@ -58,6 +58,29 @@ shops.getMarketCategories = function getMarket (user, language) {
|
||||
}).sortBy('key').value();
|
||||
categories.push(hatchingPotionsCategory);
|
||||
|
||||
let premiumHatchingPotionsCategory = {
|
||||
identifier: 'hatchingPotions',
|
||||
text: i18n.t('magicHatchingPotions', language),
|
||||
notes: i18n.t('premiumPotionNoDropExplanation', language),
|
||||
};
|
||||
premiumHatchingPotionsCategory.items = _(content.hatchingPotions)
|
||||
.values()
|
||||
.filter(hp => hp.limited && hp.canBuy())
|
||||
.map(premiumHatchingPotion => {
|
||||
return {
|
||||
key: premiumHatchingPotion.key,
|
||||
text: premiumHatchingPotion.text(language),
|
||||
notes: premiumHatchingPotion.notes(language),
|
||||
addlNotes: premiumHatchingPotion.addlNotes(language),
|
||||
class: `Pet_HatchingPotion_${premiumHatchingPotion.key}`,
|
||||
value: premiumHatchingPotion.value,
|
||||
locked: false,
|
||||
currency: 'gems',
|
||||
purchaseType: 'hatchingPotions',
|
||||
};
|
||||
}).sortBy('key').value();
|
||||
categories.push(premiumHatchingPotionsCategory);
|
||||
|
||||
let foodCategory = {
|
||||
identifier: 'food',
|
||||
text: i18n.t('food', language),
|
||||
|
||||
@@ -22,7 +22,11 @@ describe('shops', () => {
|
||||
it('items contain required fields', () => {
|
||||
_.each(shopCategories, (category) => {
|
||||
_.each(category.items, (item) => {
|
||||
if (item.addlNotes) {
|
||||
expect(item).to.have.all.keys(['key', 'text', 'notes', 'addlNotes', 'value', 'currency', 'locked', 'purchaseType', 'class']);
|
||||
} else {
|
||||
expect(item).to.have.all.keys(['key', 'text', 'notes', 'value', 'currency', 'locked', 'purchaseType', 'class']);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
div(ng-repeat='item in category.items')
|
||||
button.customize-option(class='{{item.class}}',
|
||||
popover='{{item.notes}}', popover-append-to-body='true',
|
||||
popover='{{item.notes}} {{item.addlNotes}}', popover-append-to-body='true',
|
||||
popover-title!='{{item.text}}',
|
||||
popover-trigger='mouseenter', popover-placement='top',
|
||||
ng-click='purchase(category.identifier, item)')
|
||||
|
||||
@@ -1,6 +1,35 @@
|
||||
h3 8/3/2016 - AUGUST BACKGROUNDS AND ARMOIRE ITEMS; NEW AUDIO THEME
|
||||
.promo_backgrounds_armoire_201608.pull-right
|
||||
h2 8/9/2016 - THUNDERSTORM HATCHING POTIONS, STAFF SPOTLIGHT, AND MOBILE APP UPDATES
|
||||
hr
|
||||
tr
|
||||
td
|
||||
span.Mount_Body_Dragon-Thunderstorm.pull-right
|
||||
span.Mount_Head_Dragon-Thunderstorm.pull-right(style='margin:0')
|
||||
h3 Thunderstorm Hatching Potions
|
||||
p Between now and August 31st, you can buy Thunderstorm Hatching Potions from <a href='/#/options/inventory/drops'>the Market</a> and use them to hatch any standard pet egg. (Magic Hatching Potions do not work on Quest Pet eggs.)
|
||||
br
|
||||
p After they're gone, it will be at least a year before the Thunderstorm Hatching Potions are available again, so be sure to get them now!
|
||||
p.small.muted by Balduranne
|
||||
tr
|
||||
td
|
||||
.npc_vicky.pull-right
|
||||
h3 Staff Spotlight: Vicky
|
||||
p There's a new <a href='https://habitica.wordpress.com/2016/08/05/staff-spotlight-vicky-aka-redphoenix/' target='_blank'>Staff Spotlight</a> on the blog, featuring an interview with Vicky (AKA Redphoenix)! Check it out to learn about her favorite Habitica pets, her best tips for productivity, and more.
|
||||
p.small.muted by Lemoness and Redphoenix
|
||||
tr
|
||||
td
|
||||
h3 Mobile App Updates
|
||||
p We've released <a href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica&hl=en' target='_blank'>a new Android update</a> featuring better notifications, and an <a href='https://itunes.apple.com/us/app/habitica/id994882113?ls=1&mt=8' target='_blank'>iOS Update</a> featuring lots of bug fixes!
|
||||
br
|
||||
p Be sure to download them now for a better Habitica experience. If you like the improvements that we’ve been making to our app, please consider reviewing these new versions. It really helps us out! We hope you enjoy the updates.
|
||||
p.small.muted by viirus and TheHollidayInn
|
||||
|
||||
if menuItem !== 'oldNews'
|
||||
hr
|
||||
a(href='/static/old-news', target='_blank') Read older news
|
||||
|
||||
mixin oldNews
|
||||
h2 8/3/2016 - AUGUST BACKGROUNDS AND ARMOIRE ITEMS; NEW AUDIO THEME
|
||||
.promo_backgrounds_armoire_201608.pull-right
|
||||
tr
|
||||
td
|
||||
h3 August Backgrounds
|
||||
@@ -16,12 +45,6 @@ h3 8/3/2016 - AUGUST BACKGROUNDS AND ARMOIRE ITEMS; NEW AUDIO THEME
|
||||
h3 New Audio Theme
|
||||
p There's a new audio theme available: Dewin's Theme! Select this theme from the 🔈 drop-down to level up to sounds with an 8-bit flavor.
|
||||
p.small.muted by Dewin
|
||||
|
||||
if menuItem !== 'oldNews'
|
||||
hr
|
||||
a(href='/static/old-news', target='_blank') Read older news
|
||||
|
||||
mixin oldNews
|
||||
h2 8/1/2016 - TAKE THIS CHALLENGE AND GUILD SPOTLIGHT
|
||||
tr
|
||||
td
|
||||
|
||||