mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
feat(content): Delightful Dinos Bundle
This commit is contained in:
@@ -775,5 +775,8 @@
|
|||||||
"questRobotUnlockText": "Unlocks purchasable Robot Eggs in the Market",
|
"questRobotUnlockText": "Unlocks purchasable Robot Eggs in the Market",
|
||||||
|
|
||||||
"rockingReptilesText": "Rocking Reptiles Quest Bundle",
|
"rockingReptilesText": "Rocking Reptiles Quest Bundle",
|
||||||
"rockingReptilesNotes": "Contains 'The Insta-Gator,' 'The Serpent of Distraction,' and 'The Veloci-Rapper.' Available until September 30."
|
"rockingReptilesNotes": "Contains 'The Insta-Gator,' 'The Serpent of Distraction,' and 'The Veloci-Rapper.' Available until September 30.",
|
||||||
|
|
||||||
|
"delightfulDinosText": "Delightful Dinos Quest Bundle",
|
||||||
|
"delightfulDinosNotes": "Contains 'The Pterror-dactyl,' 'The Trampling Triceratops,' and 'The Dinosaur Unearthed.' Available until November 30."
|
||||||
}
|
}
|
||||||
|
|||||||
225
website/common/script/content/bundles.js
Normal file
225
website/common/script/content/bundles.js
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
import moment from 'moment';
|
||||||
|
import t from './translation';
|
||||||
|
|
||||||
|
/*
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Discounted Item Bundles
|
||||||
|
---------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const bundles = {
|
||||||
|
featheredFriends: {
|
||||||
|
key: 'featheredFriends',
|
||||||
|
text: t('featheredFriendsText'),
|
||||||
|
notes: t('featheredFriendsNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'falcon',
|
||||||
|
'harpy',
|
||||||
|
'owl',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2019-05-09', '2019-06-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
class: 'quest_bundle_featheredFriends',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
splashyPals: {
|
||||||
|
key: 'splashyPals',
|
||||||
|
text: t('splashyPalsText'),
|
||||||
|
notes: t('splashyPalsNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'dilatory_derby',
|
||||||
|
'turtle',
|
||||||
|
'whale',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2019-07-17', '2019-08-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
class: 'quest_bundle_splashyPals',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
farmFriends: {
|
||||||
|
key: 'farmFriends',
|
||||||
|
text: t('farmFriendsText'),
|
||||||
|
notes: t('farmFriendsNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'cow',
|
||||||
|
'horse',
|
||||||
|
'sheep',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2019-08-08', '2019-09-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
witchyFamiliars: {
|
||||||
|
key: 'witchyFamiliars',
|
||||||
|
text: t('witchyFamiliarsText'),
|
||||||
|
notes: t('witchyFamiliarsNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'rat',
|
||||||
|
'spider',
|
||||||
|
'frog',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2019-10-15', '2019-11-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
winterQuests: {
|
||||||
|
key: 'winterQuests',
|
||||||
|
text: t('winterQuestsText'),
|
||||||
|
notes: t('winterQuestsNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'evilsanta',
|
||||||
|
'evilsanta2',
|
||||||
|
'penguin',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2017-12-14', '2018-01-01');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
hugabug: {
|
||||||
|
key: 'hugabug',
|
||||||
|
text: t('hugabugText'),
|
||||||
|
notes: t('hugabugNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'snail',
|
||||||
|
'beetle',
|
||||||
|
'butterfly',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2018-02-06', '2018-04-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
cuddleBuddies: {
|
||||||
|
key: 'cuddleBuddies',
|
||||||
|
text: t('cuddleBuddiesText'),
|
||||||
|
notes: t('cuddleBuddiesNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'bunny',
|
||||||
|
'ferret',
|
||||||
|
'guineapig',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2018-05-08', '2018-06-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
aquaticAmigos: {
|
||||||
|
key: 'aquaticAmigos',
|
||||||
|
text: t('aquaticAmigosText'),
|
||||||
|
notes: t('aquaticAmigosNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'axolotl',
|
||||||
|
'kraken',
|
||||||
|
'octopus',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2018-06-12', '2018-07-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
forestFriends: {
|
||||||
|
key: 'forestFriends',
|
||||||
|
text: t('forestFriendsText'),
|
||||||
|
notes: t('forestFriendsNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'ghost_stag',
|
||||||
|
'hedgehog',
|
||||||
|
'treeling',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2018-09-11', '2018-10-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
oddballs: {
|
||||||
|
key: 'oddballs',
|
||||||
|
text: t('oddballsText'),
|
||||||
|
notes: t('oddballsNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'slime',
|
||||||
|
'rock',
|
||||||
|
'yarn',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2019-06-10', '2019-07-03');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
birdBuddies: {
|
||||||
|
key: 'birdBuddies',
|
||||||
|
text: t('birdBuddiesText'),
|
||||||
|
notes: t('birdBuddiesNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'peacock',
|
||||||
|
'penguin',
|
||||||
|
'rooster',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2018-12-11', '2019-01-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
mythicalMarvels: {
|
||||||
|
key: 'mythicalMarvels',
|
||||||
|
text: t('mythicalMarvelsText'),
|
||||||
|
notes: t('mythicalMarvelsNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'unicorn',
|
||||||
|
'seaserpent',
|
||||||
|
'gryphon',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2019-02-19', '2019-03-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
rockingReptiles: {
|
||||||
|
key: 'rockingReptiles',
|
||||||
|
text: t('rockingReptilesText'),
|
||||||
|
notes: t('rockingReptilesNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'alligator',
|
||||||
|
'snake',
|
||||||
|
'velociraptor',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2019-09-10', '2019-10-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
delightfulDinos: {
|
||||||
|
key: 'delightfulDinos',
|
||||||
|
text: t('delightfulDinosText'),
|
||||||
|
notes: t('delightfulDinosNotes'),
|
||||||
|
bundleKeys: [
|
||||||
|
'pterodactyl',
|
||||||
|
'triceratops',
|
||||||
|
'trex_undead',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2019-11-14', '2019-12-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default bundles;
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
import defaults from 'lodash/defaults';
|
import defaults from 'lodash/defaults';
|
||||||
import each from 'lodash/each';
|
import each from 'lodash/each';
|
||||||
import moment from 'moment';
|
|
||||||
import t from './translation';
|
import t from './translation';
|
||||||
import { tasksByCategory } from './tasks';
|
import { tasksByCategory } from './tasks';
|
||||||
|
|
||||||
@@ -26,6 +25,7 @@ import {
|
|||||||
|
|
||||||
import appearances from './appearance';
|
import appearances from './appearance';
|
||||||
import { backgroundsTree, backgroundsFlat } from './appearance/backgrounds';
|
import { backgroundsTree, backgroundsFlat } from './appearance/backgrounds';
|
||||||
|
import bundles from './bundles';
|
||||||
import spells from './spells'; // eslint-disable-line import/no-cycle
|
import spells from './spells'; // eslint-disable-line import/no-cycle
|
||||||
import subscriptionBlocks from './subscriptionBlocks';
|
import subscriptionBlocks from './subscriptionBlocks';
|
||||||
import faq from './faq';
|
import faq from './faq';
|
||||||
@@ -58,211 +58,7 @@ api.timeTravelerStore = timeTravelers.timeTravelerStore;
|
|||||||
|
|
||||||
api.officialPinnedItems = officialPinnedItems;
|
api.officialPinnedItems = officialPinnedItems;
|
||||||
|
|
||||||
/*
|
api.bundles = bundles;
|
||||||
---------------------------------------------------------------
|
|
||||||
Discounted Item Bundles
|
|
||||||
---------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
api.bundles = {
|
|
||||||
featheredFriends: {
|
|
||||||
key: 'featheredFriends',
|
|
||||||
text: t('featheredFriendsText'),
|
|
||||||
notes: t('featheredFriendsNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'falcon',
|
|
||||||
'harpy',
|
|
||||||
'owl',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2019-05-09', '2019-06-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
class: 'quest_bundle_featheredFriends',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
splashyPals: {
|
|
||||||
key: 'splashyPals',
|
|
||||||
text: t('splashyPalsText'),
|
|
||||||
notes: t('splashyPalsNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'dilatory_derby',
|
|
||||||
'turtle',
|
|
||||||
'whale',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2019-07-17', '2019-08-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
class: 'quest_bundle_splashyPals',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
farmFriends: {
|
|
||||||
key: 'farmFriends',
|
|
||||||
text: t('farmFriendsText'),
|
|
||||||
notes: t('farmFriendsNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'cow',
|
|
||||||
'horse',
|
|
||||||
'sheep',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2019-08-08', '2019-09-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
witchyFamiliars: {
|
|
||||||
key: 'witchyFamiliars',
|
|
||||||
text: t('witchyFamiliarsText'),
|
|
||||||
notes: t('witchyFamiliarsNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'rat',
|
|
||||||
'spider',
|
|
||||||
'frog',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2019-10-15', '2019-11-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
winterQuests: {
|
|
||||||
key: 'winterQuests',
|
|
||||||
text: t('winterQuestsText'),
|
|
||||||
notes: t('winterQuestsNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'evilsanta',
|
|
||||||
'evilsanta2',
|
|
||||||
'penguin',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2017-12-14', '2018-01-01');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
hugabug: {
|
|
||||||
key: 'hugabug',
|
|
||||||
text: t('hugabugText'),
|
|
||||||
notes: t('hugabugNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'snail',
|
|
||||||
'beetle',
|
|
||||||
'butterfly',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2018-02-06', '2018-04-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
cuddleBuddies: {
|
|
||||||
key: 'cuddleBuddies',
|
|
||||||
text: t('cuddleBuddiesText'),
|
|
||||||
notes: t('cuddleBuddiesNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'bunny',
|
|
||||||
'ferret',
|
|
||||||
'guineapig',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2018-05-08', '2018-06-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
aquaticAmigos: {
|
|
||||||
key: 'aquaticAmigos',
|
|
||||||
text: t('aquaticAmigosText'),
|
|
||||||
notes: t('aquaticAmigosNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'axolotl',
|
|
||||||
'kraken',
|
|
||||||
'octopus',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2018-06-12', '2018-07-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
forestFriends: {
|
|
||||||
key: 'forestFriends',
|
|
||||||
text: t('forestFriendsText'),
|
|
||||||
notes: t('forestFriendsNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'ghost_stag',
|
|
||||||
'hedgehog',
|
|
||||||
'treeling',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2018-09-11', '2018-10-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
oddballs: {
|
|
||||||
key: 'oddballs',
|
|
||||||
text: t('oddballsText'),
|
|
||||||
notes: t('oddballsNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'slime',
|
|
||||||
'rock',
|
|
||||||
'yarn',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2019-06-10', '2019-07-03');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
birdBuddies: {
|
|
||||||
key: 'birdBuddies',
|
|
||||||
text: t('birdBuddiesText'),
|
|
||||||
notes: t('birdBuddiesNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'peacock',
|
|
||||||
'penguin',
|
|
||||||
'rooster',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2018-12-11', '2019-01-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
mythicalMarvels: {
|
|
||||||
key: 'mythicalMarvels',
|
|
||||||
text: t('mythicalMarvelsText'),
|
|
||||||
notes: t('mythicalMarvelsNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'unicorn',
|
|
||||||
'seaserpent',
|
|
||||||
'gryphon',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2019-02-19', '2019-03-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
rockingReptiles: {
|
|
||||||
key: 'rockingReptiles',
|
|
||||||
text: t('rockingReptilesText'),
|
|
||||||
notes: t('rockingReptilesNotes'),
|
|
||||||
bundleKeys: [
|
|
||||||
'alligator',
|
|
||||||
'snake',
|
|
||||||
'velociraptor',
|
|
||||||
],
|
|
||||||
canBuy () {
|
|
||||||
return moment().isBetween('2019-09-10', '2019-10-02');
|
|
||||||
},
|
|
||||||
type: 'quests',
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
|
|||||||
@@ -1,29 +1,53 @@
|
|||||||
|
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().isBetween('2019-11-01', '2019-12-02')) {
|
||||||
type: 'armoire',
|
return [
|
||||||
path: 'armoire',
|
{
|
||||||
},
|
type: 'armoire',
|
||||||
{
|
path: 'armoire',
|
||||||
type: 'premiumHatchingPotion',
|
},
|
||||||
path: 'premiumHatchingPotions.Ember',
|
{
|
||||||
},
|
type: 'premiumHatchingPotion',
|
||||||
{
|
path: 'premiumHatchingPotions.Ember',
|
||||||
type: 'premiumHatchingPotion',
|
},
|
||||||
path: 'premiumHatchingPotions.Thunderstorm',
|
{
|
||||||
},
|
type: 'premiumHatchingPotion',
|
||||||
{
|
path: 'premiumHatchingPotions.Thunderstorm',
|
||||||
type: 'food',
|
},
|
||||||
path: 'food.Saddle',
|
{
|
||||||
},
|
type: 'food',
|
||||||
],
|
path: 'food.Saddle',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
type: 'armoire',
|
||||||
|
path: 'armoire',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'hatchingPotions',
|
||||||
|
path: 'hatchingPotions.Skeleton',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'eggs',
|
||||||
|
path: 'eggs.Fox',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'food',
|
||||||
|
path: 'food.Saddle',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
},
|
||||||
quests: [
|
quests: [
|
||||||
{
|
{
|
||||||
type: 'quests',
|
type: 'bundles',
|
||||||
path: 'quests.sloth',
|
path: 'bundles.delightfulDinos',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'quests',
|
type: 'quests',
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ shops.getMarketShop = function getMarketShop (user, language) {
|
|||||||
categories: shops.getMarketCategories(user, language),
|
categories: shops.getMarketCategories(user, language),
|
||||||
featured: {
|
featured: {
|
||||||
text: i18n.t('featuredItems'),
|
text: i18n.t('featuredItems'),
|
||||||
items: featuredItems.market.map(i => getItemInfo(user, i.type, get(content, i.path))),
|
items: featuredItems.market().map(i => getItemInfo(user, i.type, get(content, i.path))),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
BIN
website/raw_sprites/spritesmith_large/promo_delightful_dinos.png
Normal file
BIN
website/raw_sprites/spritesmith_large/promo_delightful_dinos.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
website/raw_sprites/spritesmith_large/scene_habitica_map.png
Normal file
BIN
website/raw_sprites/spritesmith_large/scene_habitica_map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 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 = 'THUNDERSTORM AND EMBER HATCHING POTIONS';
|
const LAST_ANNOUNCEMENT_TITLE = 'NEW DINOSAUR PET QUEST BUNDLE AND WIKI SPOTLIGHT';
|
||||||
const worldDmg = { // @TODO
|
const worldDmg = { // @TODO
|
||||||
bailey: false,
|
bailey: false,
|
||||||
};
|
};
|
||||||
@@ -31,23 +31,38 @@ 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>11/12/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
<h2>11/14/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="promo_ember_thunderstorm_potions center-block"></div>
|
<div class="promo_delightful_dinos center-block"></div>
|
||||||
|
<h3>New Pet Quest Bundle: Delightful Dinos</h3>
|
||||||
<p>
|
<p>
|
||||||
Two of your favorite Magic Hatching Potions are back! Between now and November 30, you
|
If you are looking to add some dinosaur pets to your Habitica stable, life, uh, finds a
|
||||||
can buy Thunderstorm and Ember Hatching Potions from
|
way! From now until November 30, you can purchase the Delightful Dinos Pet Quest Bundle
|
||||||
<a href='/shops/market'>the Market</a> and use them to hatch any standard pet egg.
|
and receive the Pterodactyl, Triceratops, and T-Rex (The Dinosaur Unearthed) quests, all
|
||||||
(Magic Hatching Potions do not work on Quest Pet eggs.) Magic Hatching Potion Pets
|
for only 7 Gems! That's a discount of 5 Gems from the price of purchasing them
|
||||||
aren't picky, so they'll happily eat any kind of food that you feed them!
|
separately. Check it out in the <a href='/shops/quests'>Quest Shop</a> today!
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<div class="small">by SabreCat and Beffymaroo</div>
|
||||||
After they're gone, it will be at least a year before the Ember or Thunderstorm Hatching
|
<div class="small">Art by Baconsaur, Eevachu, UncommonCriminal, Kiwibot, McCoyly,
|
||||||
Potions are available again, so be sure to get them now!
|
plumilla, Seraphina, PainterProphet, Stefalupagus, Katy133, Edge, Willow The Witty,
|
||||||
|
Lilith of Alfheim, Procyon, GeraldThePixel, and Archeia
|
||||||
|
</div>
|
||||||
|
<div class="small mb-3">Writing by Lemoness, Daniel the Bard, Lilith of Alfheim, and Ali
|
||||||
|
Stewart
|
||||||
|
</div>
|
||||||
|
<div class="scene_habitica_map center-block"></div>
|
||||||
|
<h3>Blog Post: Places in Habitica</h3>
|
||||||
|
<p>This month's <a href='https://habitica.wordpress.com/2019/11/14/places-in-habitica/'
|
||||||
|
target='_blank'>featured Wiki article</a> is about Places in Habitica! We hope that it
|
||||||
|
will help you as you gamify your tasks. 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>
|
</p>
|
||||||
<div class="small mb-3">by Balduranne and SabreCat</div>
|
<div class="small mb-3">by shanaqui and the Wiki Wizards</div>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user