Merge branch 'release' into develop

This commit is contained in:
Sabe Jones 2019-02-12 07:35:56 -06:00
commit 2c1ca7629d
78 changed files with 11789 additions and 11549 deletions

11338
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,13 +1,14 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.83.2",
"version": "4.84.0",
"main": "./website/server/index.js",
"dependencies": {
"@slack/client": "^3.8.1",
"accepts": "^1.3.5",
"amazon-payments": "^0.2.7",
"amplitude": "^3.5.0",
"amplitude-js": "^4.6.0-beta.2",
"apidoc": "^0.17.5",
"apn": "^2.2.0",
"autoprefixer": "^8.5.0",

View file

@ -1,36 +1,42 @@
.promo_armoire_backgrounds_201902 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -422px;
background-position: 0px -277px;
width: 423px;
height: 147px;
}
.promo_bird_buddies_bundle {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -662px 0px;
background-position: 0px -425px;
width: 420px;
height: 147px;
}
.promo_birthday_2019 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -277px;
width: 498px;
height: 144px;
}
.promo_mystery_201901 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -662px -148px;
background-position: -662px -296px;
width: 282px;
height: 147px;
}
.promo_take_this {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -945px -148px;
background-position: -972px -148px;
width: 96px;
height: 69px;
}
.promo_valentines {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -662px -148px;
width: 309px;
height: 147px;
}
.promo_valentines_potions {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -662px 0px;
width: 420px;
height: 147px;
}
.scene_apollo {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -662px -296px;
background-position: 0px -573px;
width: 279px;
height: 147px;
}

View file

@ -289,8 +289,8 @@
.npc_bailey {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -272px;
width: 60px;
height: 72px;
width: 63px;
height: 66px;
}
.npc_justin {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,18 +1,348 @@
.Pet_HatchingPotion_Thunderstorm {
.Pet-Wolf-Glow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Holly {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-IcySnow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Peppermint {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Rainbow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoseQuartz {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoyalPurple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shimmer {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Spooky {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-StarryNight {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Thunderstorm {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Veteran {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -300px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -300px;
width: 81px;
height: 99px;
}
.Pet-Yarn-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -300px;
width: 81px;
height: 99px;
}
.Pet-Yarn-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -300px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px 0px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -100px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -200px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -300px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px 0px;
width: 81px;
height: 99px;
}
.Pet-Yarn-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -100px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -200px;
width: 81px;
height: 99px;
}
.Pet_HatchingPotion_Aquatic {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -400px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -414px -538px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -138px -400px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -207px -400px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Cupid {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -276px -400px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -345px -400px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Ember {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -414px -400px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Fairy {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -483px -400px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Floral {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -469px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Frost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -69px -469px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Ghost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -138px -469px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Glass {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -207px -469px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Glow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -276px -469px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -345px -469px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Holly {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -414px -469px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_IcySnow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -483px -469px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Peppermint {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px 0px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Purple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -69px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Rainbow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -138px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -207px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_RoseQuartz {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -276px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_RoyalPurple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -345px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -414px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Shimmer {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -538px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -69px -538px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Spooky {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -138px -538px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_StarryNight {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -207px -538px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Thunderstorm {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -276px -538px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -69px 0px;
background-position: -345px -538px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -69px;
background-position: -69px -400px;
width: 68px;
height: 68px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 KiB

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -2,8 +2,8 @@
// possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines, spring, summer
// more to be added on future seasons
$npc_market_flavor: 'normal';
$npc_market_flavor: 'valentines';
$npc_quests_flavor: 'normal';
$npc_seasonal_flavor: 'normal';
$npc_timetravelers_flavor: 'normal';
$npc_tavern_flavor: 'normal';
$npc_tavern_flavor: 'valentines';

View file

@ -246,8 +246,8 @@ export default {
categories.push({
identifier: 'cards',
text: this.$t('cards'),
items: _map(_filter(this.content.cardTypes, (value) => {
return value.yearRound;
items: _map(_filter(this.content.cardTypes, (value, key) => {
return value.yearRound || key === 'valentine';
}), (value) => {
return {
...getItemInfo(this.user, 'card', value),

View file

@ -1,8 +1,10 @@
import forEach from 'lodash/forEach';
import isEqual from 'lodash/isEqual';
import keys from 'lodash/keys';
import pick from 'lodash/pick';
import includes from 'lodash/includes';
import getStore from 'client/store';
import amplitude from 'amplitude-js';
import Vue from 'vue';
const IS_PRODUCTION = process.env.NODE_ENV === 'production'; // eslint-disable-line no-process-env
@ -70,7 +72,7 @@ function _gatherUserStats (properties) {
export function setUser () {
const store = getStore();
const user = store.state.user.data;
window.amplitude.setUserId(user._id);
amplitude.getInstance().setUserId(user._id);
window.ga('set', {userId: user._id});
}
@ -80,7 +82,7 @@ export function track (properties) {
if (_doesNotHaveRequiredFields(properties)) return false;
if (_doesNotHaveAllowedHitType(properties)) return false;
window.amplitude.logEvent(properties.eventAction, properties);
amplitude.getInstance().logEvent(properties.eventAction, properties);
window.ga('send', properties);
});
}
@ -92,7 +94,11 @@ export function updateUser (properties) {
_gatherUserStats(properties);
window.amplitude.setUserProperties(properties);
forEach(properties, (value, key) => {
const identify = new amplitude.Identify().set(key, value);
amplitude.getInstance().identify(identify);
});
window.ga('set', properties);
});
}
@ -103,13 +109,7 @@ export function setup () {
/* eslint-disable */
// Amplitude
var r = window.amplitude || {};
r._q = [];
function a(window) {r[window] = function() {r._q.push([window].concat(Array.prototype.slice.call(arguments, 0)));}}
var i = ["init", "logEvent", "logRevenue", "setUserId", "setUserProperties", "setOptOut", "setVersionName", "setDomain", "setDeviceId", "setGlobalUserProperties"];
for (var o = 0; o < i.length; o++) {a(i[o])}
window.amplitude = r;
amplitude.init(AMPLITUDE_KEY);
amplitude.getInstance().init(AMPLITUDE_KEY);
// Google Analytics (aka Universal Analytics)
window['GoogleAnalyticsObject'] = 'ga';
@ -124,14 +124,7 @@ export function load () {
// Load real scripts
if (!IS_PRODUCTION) return;
// Amplitude
const amplitudeScript = document.createElement('script');
let firstScript = document.getElementsByTagName('script')[0];
amplitudeScript.type = 'text/javascript';
amplitudeScript.async = true;
amplitudeScript.src = 'https://d24n15hnbwhuhn.cloudfront.net/libs/amplitude-2.2.0-min.gz.js';
firstScript.parentNode.insertBefore(amplitudeScript, firstScript);
// Google Analytics
const gaScript = document.createElement('script');
firstScript = document.getElementsByTagName('script')[0];

View file

@ -279,6 +279,7 @@
"hatchingPotionGlow": "Glow-in-the-Dark",
"hatchingPotionFrost": "Frost",
"hatchingPotionIcySnow": "Icy Snow",
"hatchingPotionRoseQuartz": "Rose Quartz",
"hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> pet.",
"premiumPotionAddlNotes": "Not usable on quest pet eggs.",

View file

@ -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 = 'February';
let drops = {
Base: {
@ -156,6 +156,12 @@ let premium = {
limited: true,
_season: 'January',
},
RoseQuartz: {
value: 2,
text: t('hatchingPotionRoseQuartz'),
limited: true,
_season: 'February',
},
};
each(drops, (pot, key) => {

View file

@ -8,16 +8,16 @@ const featuredItems = {
path: 'armoire',
},
{
type: 'hatchingPotions',
path: 'hatchingPotions.CottonCandyPink',
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.Cupid',
},
{
type: 'eggs',
path: 'eggs.TigerCub',
type: 'premiumHatchingPotion',
path: 'premiumHatchingPotions.RoseQuartz',
},
{
type: 'card',
path: 'cardTypes.birthday',
path: 'cardTypes.valentine',
},
],
quests: [

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 969 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,008 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -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 = 'FEBRUARY BACKGROUNDS AND ARMOIRE ITEMS!';
const LAST_ANNOUNCEMENT_TITLE = "VALENTINE'S DAY CELEBRATION! INCLUDING CUPID AND ROSE QUARTZ HATCHING POTIONS";
const worldDmg = { // @TODO
bailey: false,
};
@ -30,14 +30,23 @@ api.getNews = {
<div class="mr-3 ${baileyClass}"></div>
<div class="media-body">
<h1 class="align-self-center">${res.t('newStuff')}</h1>
<h2>2/5/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
<h2>2/12/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
</div>
</div>
<hr/>
<div class="promo_armoire_backgrounds_201902 center-block"></div>
<p>Weve added three new backgrounds to the Background Shop! Now your avatar can cook up a storm in a Medieval Kitchen, enjoy delicious smells outside an Old-Fashioned Bakery, and feel the love in a Valentines' Day Feasting Hall. Check them out under User Icon > Backgrounds!</p>
<p>Plus, theres new Gold-purchasable equipment in the Enchanted Armoire, including the Chef Set. Better work hard on your real-life tasks to earn all the pieces! Enjoy :)</p>
<div class="small mb-3">by Vampitch, GeraldThePixel, Aspiring Advocate, Marmarru, NekoAtsumeLARPer, and Giu09</div>
<div class="promo_valentines center-block"></div>
<h3>Habitica Celebrates Valentine's Day!</h3>
<p>In honor of Habitica's holiday celebrating all forms of love, whether it's friendship, familial, or romantic, some of the shopkeepers are dressed up! Take a look around to enjoy their new festive decorations.</p>
<div class="small mb-3">by Beffymaroo and Lemoness</div>
<h3>Send a Valentine</h3>
<p>Help motivate all of the lovely people in your life by sending them a caring Valentine. For the next week only, Valentines can be purchased for 10 Gold from the <a href='/shops/market'>Market</a>. For spreading love and joy throughout the community, both the giver AND the receiver get a coveted "Adoring Friends" badge. Hooray!</p>
<p>While you're there, why not check out the other cards that are available to send to your party? Each one gives a special achievement of its own...</p>
<div class="small mb-3">By Lemoness and SabreCat</div>
<div class="promo_valentines_potions center-block"></div>
<h3>Cupid and Rose Quartz Hatching Potions</h3>
<p>There's a new pet breed in town! We're excited to introduce the new Rose Quartz Magic Hatching Potions, and to announce the return of Cupid Potions! Between now and February 28, you can buy these 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>After they're gone, it will be at least a year before the Cupid or Rose Quartz Hatching Potions are available again, so be sure to get them now!</p>
<div class="small mb-3">by Vampitch,Willow the Witty, and SabreCat</div>
</div>
`,
});