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",
|
"hatchingPotionSpooky": "Spooky",
|
||||||
"hatchingPotionPeppermint": "Peppermint",
|
"hatchingPotionPeppermint": "Peppermint",
|
||||||
"hatchingPotionFloral": "Floral",
|
"hatchingPotionFloral": "Floral",
|
||||||
|
"hatchingPotionThunderstorm": "Thunderstorm",
|
||||||
|
|
||||||
"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.",
|
||||||
|
|||||||
@@ -75,7 +75,8 @@
|
|||||||
"shipSoothsayerSet": "Ship Soothsayer (Mage)",
|
"shipSoothsayerSet": "Ship Soothsayer (Mage)",
|
||||||
"strappingSailorSet": "Strapping Sailor (Healer)",
|
"strappingSailorSet": "Strapping Sailor (Healer)",
|
||||||
"reefRenegadeSet": "Reef Renegade (Rogue)",
|
"reefRenegadeSet": "Reef Renegade (Rogue)",
|
||||||
"fallEventAvailability": "Available until October 31",
|
"fallEventAvailability": "Available for purchase until October 31.",
|
||||||
"winterEventAvailability": "Available until December 31",
|
"winterEventAvailability": "Available for purchase until December 31.",
|
||||||
"springEventAvailability": "Available until May 31"
|
"springEventAvailability": "Available for purchase until May 31.",
|
||||||
|
"summerEventAvailability": "Available for purchase until August 31."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"eggSingular": "egg",
|
"eggSingular": "egg",
|
||||||
"noEggs": "You don't have any eggs.",
|
"noEggs": "You don't have any eggs.",
|
||||||
"hatchingPotions": "Hatching Potions",
|
"hatchingPotions": "Hatching Potions",
|
||||||
"magicHatchingPotions": "<strong>Magic Hatching Potions</strong>",
|
"magicHatchingPotions": "Magic Hatching Potions",
|
||||||
"hatchingPotion": "hatching potion",
|
"hatchingPotion": "hatching potion",
|
||||||
"noHatchingPotions": "You don't have any hatching potions.",
|
"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.",
|
"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,
|
value: 2,
|
||||||
text: t('hatchingPotionSpooky'),
|
text: t('hatchingPotionSpooky'),
|
||||||
limited: true,
|
limited: true,
|
||||||
canBuy: (function() {
|
season: 'fall',
|
||||||
return false;
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
Peppermint: {
|
Peppermint: {
|
||||||
value: 2,
|
value: 2,
|
||||||
text: t('hatchingPotionPeppermint'),
|
text: t('hatchingPotionPeppermint'),
|
||||||
limited: true,
|
limited: true,
|
||||||
canBuy: (function() {
|
season: 'winter',
|
||||||
return false;
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
Floral: {
|
Floral: {
|
||||||
value: 2,
|
value: 2,
|
||||||
text: t('hatchingPotionFloral'),
|
text: t('hatchingPotionFloral'),
|
||||||
limited: true,
|
limited: true,
|
||||||
|
season: 'spring',
|
||||||
|
},
|
||||||
|
Thunderstorm: {
|
||||||
|
value: 2,
|
||||||
|
text: t('hatchingPotionThunderstorm'),
|
||||||
|
limited: true,
|
||||||
|
season: 'summer',
|
||||||
canBuy: (function() {
|
canBuy: (function() {
|
||||||
return false;
|
return true;
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -562,11 +565,11 @@ _.each(api.premiumHatchingPotions, function(pot, key) {
|
|||||||
notes: t('hatchingPotionNotes', {
|
notes: t('hatchingPotionNotes', {
|
||||||
potText: pot.text
|
potText: pot.text
|
||||||
}),
|
}),
|
||||||
addlNotes: t('premiumPotionAddlNotes'),
|
addlNotes: t(`${pot.season}EventAvailability`),
|
||||||
premium: true,
|
premium: true,
|
||||||
limited: false,
|
limited: false,
|
||||||
canBuy: (function() {
|
canBuy: (function() {
|
||||||
return true;
|
return false;
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -58,6 +58,29 @@ shops.getMarketCategories = function getMarket (user, language) {
|
|||||||
}).sortBy('key').value();
|
}).sortBy('key').value();
|
||||||
categories.push(hatchingPotionsCategory);
|
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 = {
|
let foodCategory = {
|
||||||
identifier: 'food',
|
identifier: 'food',
|
||||||
text: i18n.t('food', language),
|
text: i18n.t('food', language),
|
||||||
|
|||||||
@@ -22,7 +22,11 @@ describe('shops', () => {
|
|||||||
it('items contain required fields', () => {
|
it('items contain required fields', () => {
|
||||||
_.each(shopCategories, (category) => {
|
_.each(shopCategories, (category) => {
|
||||||
_.each(category.items, (item) => {
|
_.each(category.items, (item) => {
|
||||||
expect(item).to.have.all.keys(['key', 'text', 'notes', 'value', 'currency', 'locked', 'purchaseType', 'class']);
|
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')
|
div(ng-repeat='item in category.items')
|
||||||
button.customize-option(class='{{item.class}}',
|
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-title!='{{item.text}}',
|
||||||
popover-trigger='mouseenter', popover-placement='top',
|
popover-trigger='mouseenter', popover-placement='top',
|
||||||
ng-click='purchase(category.identifier, item)')
|
ng-click='purchase(category.identifier, item)')
|
||||||
|
|||||||
@@ -1,27 +1,50 @@
|
|||||||
h3 8/3/2016 - AUGUST BACKGROUNDS AND ARMOIRE ITEMS; NEW AUDIO THEME
|
h2 8/9/2016 - THUNDERSTORM HATCHING POTIONS, STAFF SPOTLIGHT, AND MOBILE APP UPDATES
|
||||||
.promo_backgrounds_armoire_201608.pull-right
|
|
||||||
hr
|
hr
|
||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
h3 August Backgrounds
|
span.Mount_Body_Dragon-Thunderstorm.pull-right
|
||||||
p We’ve added three new backgrounds: Stormy Ship, Idyllic Cabin, and Mountain Pyramid. Get them now from the <a href='/#/options/profile/backgrounds'>Background Shop</a> and show off your avatars in the Tavern!
|
span.Mount_Head_Dragon-Thunderstorm.pull-right(style='margin:0')
|
||||||
p.small.muted by JInjooHat, KusSv, and Beffymaroo
|
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
|
tr
|
||||||
td
|
td
|
||||||
h3 August Armoire Items: Falconer Set
|
.npc_vicky.pull-right
|
||||||
p There’s new Gold-purchasable equipment in the Enchanted Armoire, including the Falconer set. The Enchanted Armoire unlocks when you achieve Ultimate Gear. Better work hard on your real-life tasks to earn all the pieces!
|
h3 Staff Spotlight: Vicky
|
||||||
p.small.muted by Mako413
|
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
|
tr
|
||||||
td
|
td
|
||||||
h3 New Audio Theme
|
h3 Mobile App Updates
|
||||||
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 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!
|
||||||
p.small.muted by Dewin
|
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'
|
if menuItem !== 'oldNews'
|
||||||
hr
|
hr
|
||||||
a(href='/static/old-news', target='_blank') Read older news
|
a(href='/static/old-news', target='_blank') Read older news
|
||||||
|
|
||||||
mixin oldNews
|
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
|
||||||
|
p We’ve added three new backgrounds: Stormy Ship, Idyllic Cabin, and Mountain Pyramid. Get them now from the <a href='/#/options/profile/backgrounds'>Background Shop</a> and show off your avatars in the Tavern!
|
||||||
|
p.small.muted by JInjooHat, KusSv, and Beffymaroo
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
h3 August Armoire Items: Falconer Set
|
||||||
|
p There’s new Gold-purchasable equipment in the Enchanted Armoire, including the Falconer set. The Enchanted Armoire unlocks when you achieve Ultimate Gear. Better work hard on your real-life tasks to earn all the pieces!
|
||||||
|
p.small.muted by Mako413
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
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
|
||||||
h2 8/1/2016 - TAKE THIS CHALLENGE AND GUILD SPOTLIGHT
|
h2 8/1/2016 - TAKE THIS CHALLENGE AND GUILD SPOTLIGHT
|
||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
|
|||||||