Merge branch 'release' into develop

This commit is contained in:
Sabe Jones
2019-03-14 07:05:35 -05:00
62 changed files with 8536 additions and 8236 deletions
+73
View File
@@ -0,0 +1,73 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20190314_pi_day';
import { v4 as uuid } from 'uuid';
import { model as User } from '../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const inc = {
'items.food.Pie_Skeleton': 1,
'items.food.Pie_Base': 1,
'items.food.Pie_CottonCandyBlue': 1,
'items.food.Pie_CottonCandyPink': 1,
'items.food.Pie_Shade': 1,
'items.food.Pie_White': 1,
'items.food.Pie_Golden': 1,
'items.food.Pie_Zombie': 1,
'items.food.Pie_Desert': 1,
'items.food.Pie_Red': 1,
};
const set = {};
set.migration = MIGRATION_NAME;
set['items.gear.owned.head_special_piDay'] = false;
set['items.gear.owned.shield_special_piDay'] = false;
const push = [
{type: 'marketGear', path: 'gear.flat.head_special_piDay', _id: uuid()},
{type: 'marketGear', path: 'gear.flat.shield_special_piDay', _id: uuid()},
];
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$inc: inc, $set: set, $push: {pinnedItems: {$each: push}}}).exec();
}
module.exports = async function processUsers () {
let query = {
migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2019-02-15')},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "habitica",
"version": "4.86.2",
"version": "4.87.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.86.2",
"version": "4.87.0",
"main": "./website/server/index.js",
"dependencies": {
"@google-cloud/trace-agent": "^3.5.2",
@@ -6,7 +6,7 @@
}
.promo_mystery_201902 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -424px -327px;
background-position: -424px -475px;
width: 240px;
height: 147px;
}
@@ -16,9 +16,15 @@
width: 423px;
height: 147px;
}
.promo_pi_day {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -424px -327px;
width: 273px;
height: 147px;
}
.promo_take_this {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -665px -327px;
background-position: -665px -475px;
width: 96px;
height: 69px;
}
File diff suppressed because it is too large Load Diff
@@ -1,54 +1,66 @@
.weapon_warrior_6 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -737px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_0 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -646px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -828px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -919px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_3 {
.weapon_warrior_4 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -100px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_4 {
.weapon_warrior_5 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -737px -1529px;
width: 90px;
height: 90px;
}
.weapon_warrior_6 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -191px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_0 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -282px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_5 {
.weapon_wizard_1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -464px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -646px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_3 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -919px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_4 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1010px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_5 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1101px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_6 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -555px -1529px;
background-position: -1192px -1529px;
width: 90px;
height: 90px;
}
.Pet_Currency_Gem {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -276px -1629px;
background-position: -220px -203px;
width: 68px;
height: 68px;
}
@@ -66,19 +78,19 @@
}
.PixelPaw-Gold {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1791px -1529px;
background-position: -617px -1629px;
width: 51px;
height: 51px;
}
.PixelPaw {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -479px -1629px;
background-position: -669px -1629px;
width: 51px;
height: 51px;
}
.PixelPaw002 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -531px -1629px;
background-position: -721px -1629px;
width: 51px;
height: 51px;
}
@@ -108,19 +120,19 @@
}
.empty_bottles {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -414px -1629px;
background-position: -552px -1629px;
width: 64px;
height: 54px;
}
.ghost {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -373px -1529px;
background-position: -828px -1529px;
width: 90px;
height: 90px;
}
.inventory_present {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1100px -944px;
background-position: -1100px -875px;
width: 68px;
height: 68px;
}
@@ -150,139 +162,139 @@
}
.inventory_present_05 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -138px -1629px;
background-position: -880px -724px;
width: 68px;
height: 68px;
}
.inventory_present_06 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -207px -1629px;
background-position: -1283px -1529px;
width: 68px;
height: 68px;
}
.inventory_present_07 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -345px -1629px;
background-position: -1352px -1529px;
width: 68px;
height: 68px;
}
.inventory_present_08 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -272px;
background-position: -1421px -1529px;
width: 68px;
height: 68px;
}
.inventory_present_09 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -660px -573px;
background-position: -483px -1629px;
width: 68px;
height: 68px;
}
.inventory_present_10 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -880px -724px;
background-position: -220px -272px;
width: 68px;
height: 68px;
}
.inventory_present_11 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -880px -793px;
background-position: -660px -573px;
width: 68px;
height: 68px;
}
.inventory_present_12 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1100px -875px;
background-position: -880px -793px;
width: 68px;
height: 68px;
}
.inventory_special_birthday {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1100px -1013px;
background-position: -1320px -1095px;
width: 68px;
height: 68px;
}
.inventory_special_congrats {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1320px -1095px;
background-position: -1320px -1164px;
width: 68px;
height: 68px;
}
.inventory_special_fortify {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1320px -1164px;
background-position: -1320px -1233px;
width: 68px;
height: 68px;
}
.inventory_special_getwell {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1320px -1233px;
background-position: -1490px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_goodluck {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1549px -1315px;
background-position: -414px -1629px;
width: 68px;
height: 68px;
}
.inventory_special_greeting {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1101px -1529px;
background-position: -345px -1629px;
width: 68px;
height: 68px;
}
.inventory_special_nye {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1170px -1529px;
background-position: -276px -1629px;
width: 68px;
height: 68px;
}
.inventory_special_opaquePotion {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1239px -1529px;
background-position: -207px -1629px;
width: 68px;
height: 68px;
}
.inventory_special_seafoam {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1308px -1529px;
background-position: -138px -1629px;
width: 68px;
height: 68px;
}
.inventory_special_shinySeed {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1377px -1529px;
background-position: -69px -1629px;
width: 68px;
height: 68px;
}
.inventory_special_snowball {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1584px -1529px;
background-position: 0px -1629px;
width: 68px;
height: 68px;
}
.inventory_special_spookySparkles {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1653px -1529px;
background-position: -1766px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_thankyou {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1722px -1529px;
background-position: -1697px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_trinket {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: 0px -1629px;
background-position: -1628px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_valentine {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -69px -1629px;
background-position: -1559px -1529px;
width: 68px;
height: 68px;
}
@@ -294,31 +306,31 @@
}
.pet_key {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -203px;
background-position: -1549px -1315px;
width: 68px;
height: 68px;
}
.rebirth_orb {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1515px -1529px;
background-position: -1100px -1013px;
width: 68px;
height: 68px;
}
.seafoam_star {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1010px -1529px;
background-position: -373px -1529px;
width: 90px;
height: 90px;
}
.shop_armoire {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1446px -1529px;
background-position: -1100px -944px;
width: 68px;
height: 68px;
}
.snowman {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -191px -1529px;
background-position: -555px -1529px;
width: 90px;
height: 90px;
}
@@ -336,79 +348,79 @@
}
.notif_inventory_present_01 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1793px -925px;
background-position: -1802px -706px;
width: 28px;
height: 28px;
}
.notif_inventory_present_02 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1549px -1384px;
background-position: -1802px -677px;
width: 28px;
height: 28px;
}
.notif_inventory_present_03 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1802px -619px;
background-position: -1802px -648px;
width: 28px;
height: 28px;
}
.notif_inventory_present_04 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1802px -648px;
background-position: -1802px -619px;
width: 28px;
height: 28px;
}
.notif_inventory_present_05 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1802px -677px;
background-position: -1549px -1384px;
width: 28px;
height: 28px;
}
.notif_inventory_present_06 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1802px -706px;
background-position: -1793px -925px;
width: 28px;
height: 28px;
}
.notif_inventory_present_07 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1793px -751px;
background-position: -1793px -896px;
width: 28px;
height: 28px;
}
.notif_inventory_present_08 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1793px -780px;
background-position: -1793px -867px;
width: 28px;
height: 28px;
}
.notif_inventory_present_09 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1793px -809px;
background-position: -1793px -838px;
width: 28px;
height: 28px;
}
.notif_inventory_present_10 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1793px -838px;
background-position: -1793px -809px;
width: 28px;
height: 28px;
}
.notif_inventory_present_11 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1793px -867px;
background-position: -1793px -780px;
width: 28px;
height: 28px;
}
.notif_inventory_present_12 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1793px -896px;
background-position: -1793px -751px;
width: 28px;
height: 28px;
}
.notif_inventory_special_birthday {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1822px -838px;
background-position: -1822px -809px;
width: 20px;
height: 24px;
}
@@ -450,7 +462,7 @@
}
.notif_inventory_special_valentine {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1822px -809px;
background-position: -1822px -838px;
width: 20px;
height: 24px;
}
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
File diff suppressed because it is too large Load Diff
@@ -1,510 +1,546 @@
.Pet-Velociraptor-Red {
.Pet-Unicorn-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px 0px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -500px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px 0px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -100px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -100px;
width: 81px;
height: 99px;
}
.Pet-Whale-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -100px;
width: 81px;
height: 99px;
}
.Pet-Whale-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px 0px;
width: 81px;
height: 99px;
}
.Pet-Whale-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -100px;
width: 81px;
height: 99px;
}
.Pet-Whale-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px 0px;
width: 81px;
height: 99px;
}
.Pet-Whale-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -100px;
width: 81px;
height: 99px;
}
.Pet-Whale-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Aquatic {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Cupid {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Ember {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Fairy {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Floral {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Frost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Ghost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Glass {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Glow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Holly {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-IcySnow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Peppermint {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Rainbow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoseQuartz {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoyalPurple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shimmer {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Spooky {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-StarryNight {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Thunderstorm {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -500px;
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: -246px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Base {
.Pet-Velociraptor-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-CottonCandyBlue {
.Pet-Velociraptor-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px 0px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -100px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -100px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -100px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px 0px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -100px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -200px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -200px;
width: 81px;
height: 99px;
}
.Pet-Velociraptor-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px 0px;
width: 81px;
height: 99px;
}
.Pet-Whale-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -100px;
width: 81px;
height: 99px;
}
.Pet-Whale-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -300px;
width: 81px;
height: 99px;
}
.Pet-Whale-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -300px;
width: 81px;
height: 99px;
}
.Pet-Whale-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -300px;
width: 81px;
height: 99px;
}
.Pet-Whale-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -300px;
width: 81px;
height: 99px;
}
.Pet-Whale-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -300px;
width: 81px;
height: 99px;
}
.Pet-Whale-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Aquatic {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Cupid {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Ember {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Fairy {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Floral {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Frost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Ghost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Glass {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Glow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Holly {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-IcySnow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Peppermint {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Rainbow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoseQuartz {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoyalPurple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shimmer {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Spooky {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-StarryNight {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-CottonCandyPink {
.Pet-Wolf-Thunderstorm {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Desert {
.Pet-Wolf-Veteran {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -656px 0px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Golden {
.Pet-Wolf-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -656px -100px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Red {
.Pet-Wolf-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -656px -200px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Shade {
.Pet-Yarn-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -656px -300px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Skeleton {
.Pet-Yarn-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -656px -400px;
width: 81px;
height: 99px;
}
.Pet-Yarn-White {
.Pet-Yarn-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -656px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Zombie {
.Pet-Yarn-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -600px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -600px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -600px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -600px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -600px;
width: 81px;
height: 99px;
}
.Pet-Yarn-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -600px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -600px;
width: 81px;
height: 99px;
}
.Pet_HatchingPotion_Aquatic {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -151px -600px;
background-position: -643px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -414px;
background-position: -207px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -220px -600px;
background-position: -738px 0px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -289px -600px;
background-position: -738px -69px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Cupid {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -358px -600px;
background-position: -738px -138px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -427px -600px;
background-position: -738px -207px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Ember {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -496px -600px;
background-position: -738px -276px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Fairy {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -565px -600px;
background-position: -738px -345px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Floral {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -634px -600px;
background-position: -738px -414px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Frost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px 0px;
background-position: -738px -483px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Ghost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -69px;
background-position: -738px -552px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Glass {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -138px;
background-position: -738px -621px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Glow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -207px;
background-position: 0px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -276px;
background-position: -69px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Holly {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -345px;
background-position: -138px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_IcySnow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -600px;
background-position: -574px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Peppermint {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -483px;
background-position: -276px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Purple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -552px;
background-position: -345px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Rainbow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -738px -621px;
background-position: -414px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -700px;
background-position: -483px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_RoseQuartz {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -69px -700px;
background-position: -552px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_RoyalPurple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -138px -700px;
background-position: -621px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -207px -700px;
background-position: -690px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Shimmer {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -276px -700px;
background-position: -807px 0px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -345px -700px;
background-position: -807px -69px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Spooky {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -414px -700px;
background-position: -807px -138px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_StarryNight {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -483px -700px;
background-position: -807px -207px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Thunderstorm {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -552px -700px;
background-position: -807px -276px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -621px -700px;
background-position: -807px -345px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -690px -700px;
background-position: -807px -414px;
width: 68px;
height: 68px;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 KiB

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 KiB

After

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 115 KiB

+31
View File
@@ -377,6 +377,37 @@
"foodCandyRedThe": "the Cinnamon Candy",
"foodCandyRedA": "Cinnamon Candy",
"foodPieSkeleton": "Bone Marrow Pot Pie",
"foodPieSkeletonThe": "the Bone Marrow Pot Pie",
"foodPieSkeletonA": "a slice of Bone Marrow Pot Pie",
"foodPieBase": "Basic Apple Pie",
"foodPieBaseThe": "the Basic Apple Pie",
"foodPieBaseA": "a slice of Basic Apple Pie",
"foodPieCottonCandyBlue": "Blueberry Pie",
"foodPieCottonCandyBlueThe": "the Blueberry Pie",
"foodPieCottonCandyBlueA": "a slice of Blueberry Pie",
"foodPieCottonCandyPink": "Pink Rhubarb Pie",
"foodPieCottonCandyPinkThe": "the Pink Rhubarb Pie",
"foodPieCottonCandyPinkA": "a slice of Pink Rhubarb Pie",
"foodPieShade": "Dark Chocolate Pie",
"foodPieShadeThe": "the Dark Chocolate Pie",
"foodPieShadeA": "a slice of Dark Chocolate Pie",
"foodPieWhite": "Vanilla Pudding Pie",
"foodPieWhiteThe": "the Vanilla Pudding Pie",
"foodPieWhiteA": "a slice of Vanilla Pudding Pie",
"foodPieGolden": "Golden Banana Cream Pie",
"foodPieGoldenThe": "the Golden Banana Cream Pie",
"foodPieGoldenA": "a slice of Golden Banana Cream Pie",
"foodPieZombie": "Rotten Pie",
"foodPieZombieThe": "the Rotten Pie",
"foodPieZombieA": "a Rotten slice of Pie",
"foodPieDesert": "Desert Dessert Pie",
"foodPieDesertThe": "the Desert Dessert Pie",
"foodPieDesertA": "a slice of Desert Dessert Pie",
"foodPieRed": "Red Cherry Pie",
"foodPieRedThe": "the Red Cherry Pie",
"foodPieRedA": "a slice of Red Cherry Pie",
"foodSaddleText": "Saddle",
"foodSaddleNotes": "Instantly raises one of your pets into a mount.",
"foodSaddleSellWarningNote": "Hey! This is a pretty useful item! Are you familiar with how to use a Saddle with your Pets?",
+4
View File
@@ -975,6 +975,8 @@
"headSpecialTurkeyHelmBaseNotes": "Your Turkey Day look will be complete when you don this beaked helm! Confers no benefit.",
"headSpecialTurkeyHelmGildedText": "Gilded Turkey Helm",
"headSpecialTurkeyHelmGildedNotes": "Gobble gobble! Bling bling! Confers no benefit.",
"headSpecialPiDayText": "Pi Hat",
"headSpecialPiDayNotes": "Try to balance this slice of delicious pie on your head while walking in a circle. Or throw it at a red Daily! Or you could just eat it. Your choice! Confers no benefit.",
"headSpecialNyeText": "Absurd Party Hat",
"headSpecialNyeNotes": "You've received an Absurd Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.",
@@ -1424,6 +1426,8 @@
"shieldSpecialWintryMirrorNotes": "How else to best admire your wintry look? Increases Intelligence by <%= int %>.",
"shieldSpecialWakizashiText": "Wakizashi",
"shieldSpecialWakizashiNotes": "This short sword is perfect for close-quarters battles with your Dailies! Increases Constitution by <%= con %>.",
"shieldSpecialPiDayText": "Pi Shield",
"shieldSpecialPiDayNotes": "We dare you to calculate the ratio of this shield's circumference to its deliciousness! Confers no benefit.",
"shieldSpecialYetiText": "Yeti-Tamer Shield",
"shieldSpecialYetiNotes": "This shield reflects light from the snow. Increases Constitution by <%= con %>. Limited Edition 2013-2014 Winter Gear.",
@@ -2506,6 +2506,12 @@ let head = {
value: 0,
canOwn: ownsItem('head_special_nye2018'),
},
piDay: {
text: t('headSpecialPiDayText'),
notes: t('headSpecialPiDayNotes'),
value: 0,
canOwn: ownsItem('head_special_piDay'),
},
};
let headAccessory = {
@@ -3597,6 +3603,12 @@ let shield = {
value: 70,
con: 9,
},
piDay: {
text: t('shieldSpecialPiDayText'),
notes: t('shieldSpecialPiDayNotes'),
value: 0,
canOwn: ownsItem('shield_special_piDay'),
},
};
let weapon = {
+163 -67
View File
@@ -370,13 +370,9 @@ api.premiumMounts = stable.premiumMounts;
api.specialMounts = stable.specialMounts;
api.mountInfo = stable.mountInfo;
// For seasonal events, change these booleans:
let canBuyNormalFood = true;
let canDropNormalFood = true;
let canBuyCandyFood = false;
let canDropCandyFood = false;
let canBuyCakeFood = false;
let canDropCakeFood = false;
// For seasonal events, change this constant:
const FOOD_SEASON = 'Pie';
api.food = {
Meat: {
@@ -385,9 +381,9 @@ api.food = {
textThe: t('foodMeatThe'),
target: 'Base',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
Milk: {
text: t('foodMilk'),
@@ -395,9 +391,9 @@ api.food = {
textThe: t('foodMilkThe'),
target: 'White',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
Potatoe: {
text: t('foodPotatoe'),
@@ -405,9 +401,9 @@ api.food = {
textThe: t('foodPotatoeThe'),
target: 'Desert',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
Strawberry: {
text: t('foodStrawberry'),
@@ -415,9 +411,9 @@ api.food = {
textThe: t('foodStrawberryThe'),
target: 'Red',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
Chocolate: {
text: t('foodChocolate'),
@@ -425,9 +421,9 @@ api.food = {
textThe: t('foodChocolateThe'),
target: 'Shade',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
Fish: {
text: t('foodFish'),
@@ -435,9 +431,9 @@ api.food = {
textThe: t('foodFishThe'),
target: 'Skeleton',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
RottenMeat: {
text: t('foodRottenMeat'),
@@ -445,9 +441,9 @@ api.food = {
textThe: t('foodRottenMeatThe'),
target: 'Zombie',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
CottonCandyPink: {
text: t('foodCottonCandyPink'),
@@ -455,9 +451,9 @@ api.food = {
textThe: t('foodCottonCandyPinkThe'),
target: 'CottonCandyPink',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
CottonCandyBlue: {
text: t('foodCottonCandyBlue'),
@@ -465,9 +461,9 @@ api.food = {
textThe: t('foodCottonCandyBlueThe'),
target: 'CottonCandyBlue',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
Honey: {
text: t('foodHoney'),
@@ -475,9 +471,9 @@ api.food = {
textThe: t('foodHoneyThe'),
target: 'Golden',
canBuy () {
return canBuyNormalFood;
return FOOD_SEASON === 'Normal';
},
canDrop: canDropNormalFood,
canDrop: FOOD_SEASON === 'Normal',
},
Saddle: {
canBuy () {
@@ -495,9 +491,9 @@ api.food = {
textThe: t('foodCakeSkeletonThe'),
target: 'Skeleton',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_Base: {
text: t('foodCakeBase'),
@@ -505,9 +501,9 @@ api.food = {
textThe: t('foodCakeBaseThe'),
target: 'Base',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_CottonCandyBlue: {
text: t('foodCakeCottonCandyBlue'),
@@ -515,9 +511,9 @@ api.food = {
textThe: t('foodCakeCottonCandyBlueThe'),
target: 'CottonCandyBlue',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_CottonCandyPink: {
text: t('foodCakeCottonCandyPink'),
@@ -525,9 +521,9 @@ api.food = {
textThe: t('foodCakeCottonCandyPinkThe'),
target: 'CottonCandyPink',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_Shade: {
text: t('foodCakeShade'),
@@ -535,9 +531,9 @@ api.food = {
textThe: t('foodCakeShadeThe'),
target: 'Shade',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_White: {
text: t('foodCakeWhite'),
@@ -545,9 +541,9 @@ api.food = {
textThe: t('foodCakeWhiteThe'),
target: 'White',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_Golden: {
text: t('foodCakeGolden'),
@@ -555,9 +551,9 @@ api.food = {
textThe: t('foodCakeGoldenThe'),
target: 'Golden',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_Zombie: {
text: t('foodCakeZombie'),
@@ -565,9 +561,9 @@ api.food = {
textThe: t('foodCakeZombieThe'),
target: 'Zombie',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_Desert: {
text: t('foodCakeDesert'),
@@ -575,9 +571,9 @@ api.food = {
textThe: t('foodCakeDesertThe'),
target: 'Desert',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Cake_Red: {
text: t('foodCakeRed'),
@@ -585,9 +581,9 @@ api.food = {
textThe: t('foodCakeRedThe'),
target: 'Red',
canBuy () {
return canBuyCakeFood;
return FOOD_SEASON === 'Cake';
},
canDrop: canDropCakeFood,
canDrop: FOOD_SEASON === 'Cake',
},
Candy_Skeleton: {
text: t('foodCandySkeleton'),
@@ -595,9 +591,9 @@ api.food = {
textThe: t('foodCandySkeletonThe'),
target: 'Skeleton',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_Base: {
text: t('foodCandyBase'),
@@ -605,9 +601,9 @@ api.food = {
textThe: t('foodCandyBaseThe'),
target: 'Base',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_CottonCandyBlue: {
text: t('foodCandyCottonCandyBlue'),
@@ -615,9 +611,9 @@ api.food = {
textThe: t('foodCandyCottonCandyBlueThe'),
target: 'CottonCandyBlue',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_CottonCandyPink: {
text: t('foodCandyCottonCandyPink'),
@@ -625,9 +621,9 @@ api.food = {
textThe: t('foodCandyCottonCandyPinkThe'),
target: 'CottonCandyPink',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_Shade: {
text: t('foodCandyShade'),
@@ -635,9 +631,9 @@ api.food = {
textThe: t('foodCandyShadeThe'),
target: 'Shade',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_White: {
text: t('foodCandyWhite'),
@@ -645,9 +641,9 @@ api.food = {
textThe: t('foodCandyWhiteThe'),
target: 'White',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_Golden: {
text: t('foodCandyGolden'),
@@ -655,9 +651,9 @@ api.food = {
textThe: t('foodCandyGoldenThe'),
target: 'Golden',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_Zombie: {
text: t('foodCandyZombie'),
@@ -665,9 +661,9 @@ api.food = {
textThe: t('foodCandyZombieThe'),
target: 'Zombie',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_Desert: {
text: t('foodCandyDesert'),
@@ -675,9 +671,9 @@ api.food = {
textThe: t('foodCandyDesertThe'),
target: 'Desert',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Candy_Red: {
text: t('foodCandyRed'),
@@ -685,9 +681,109 @@ api.food = {
textThe: t('foodCandyRedThe'),
target: 'Red',
canBuy () {
return canBuyCandyFood;
return FOOD_SEASON === 'Candy';
},
canDrop: canDropCandyFood,
canDrop: FOOD_SEASON === 'Candy',
},
Pie_Skeleton: {
text: t('foodPieSkeleton'),
textA: t('foodPieSkeletonA'),
textThe: t('foodPieSkeletonThe'),
target: 'Skeleton',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_Base: {
text: t('foodPieBase'),
textA: t('foodPieBaseA'),
textThe: t('foodPieBaseThe'),
target: 'Base',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_CottonCandyBlue: {
text: t('foodPieCottonCandyBlue'),
textA: t('foodPieCottonCandyBlueA'),
textThe: t('foodPieCottonCandyBlueThe'),
target: 'CottonCandyBlue',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_CottonCandyPink: {
text: t('foodPieCottonCandyPink'),
textA: t('foodPieCottonCandyPinkA'),
textThe: t('foodPieCottonCandyPinkThe'),
target: 'CottonCandyPink',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_Shade: {
text: t('foodPieShade'),
textA: t('foodPieShadeA'),
textThe: t('foodPieShadeThe'),
target: 'Shade',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_White: {
text: t('foodPieWhite'),
textA: t('foodPieWhiteA'),
textThe: t('foodPieWhiteThe'),
target: 'White',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_Golden: {
text: t('foodPieGolden'),
textA: t('foodPieGoldenA'),
textThe: t('foodPieGoldenThe'),
target: 'Golden',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_Zombie: {
text: t('foodPieZombie'),
textA: t('foodPieZombieA'),
textThe: t('foodPieZombieThe'),
target: 'Zombie',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_Desert: {
text: t('foodPieDesert'),
textA: t('foodPieDesertA'),
textThe: t('foodPieDesertThe'),
target: 'Desert',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
Pie_Red: {
text: t('foodPieRed'),
textA: t('foodPieRedA'),
textThe: t('foodPieRedThe'),
target: 'Red',
canBuy () {
return FOOD_SEASON === 'Pie';
},
canDrop: FOOD_SEASON === 'Pie',
},
/* eslint-enable camelcase */
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

+6 -10
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 = 'HABITICA BLOG: NEW GUILDS AND WIKI SPOTLIGHT ON DAILIES';
const LAST_ANNOUNCEMENT_TITLE = 'CELEBRATE PI DAY WITH HABITICA!';
const worldDmg = { // @TODO
bailey: false,
};
@@ -30,18 +30,14 @@ api.getNews = {
<div class="mr-3 ${baileyClass}"></div>
<div class="media-body">
<h1 class="align-self-center">${res.t('newStuff')}</h1>
<h2>3/12/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
<h2>3/14/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
</div>
</div>
<hr/>
<div class="scene_tavern center-block"></div>
<h3>Guild Spotlight: Yet More New and Notable Guilds!</h3>
<p>There's a new <a href='https://habitica.wordpress.com/2019/03/12/new-and-notable-guild-spotlight-3/' target='_blank'>Guild Spotlight</a> on the blog that highlights some of the new movers and shakers in our community! Check it out now to find some cool new places to hang out in Habitica with folks who share your interests and goals.</p>
<div class="small mb-3">by shanaqui</div>
<div class="scene_dailies center-block"></div>
<h3>Blog Post: Dailies</h3>
<p>This month's <a href='https://habitica.wordpress.com/2019/03/12/dailies/' target='_blank'>featured Wiki article</a> is about Dailies! We hope that it will help you as you work on completing routine 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>
<div class="small mb-3">by shanaqui and the Wiki Wizards</div>
<div class="promo_pi_day center-block"></div>
<p>Hello Habiticans! In celebration of Pi Day on March 14, we've gifted everyone delicious slices of pie for you all to feed to your pets.</p>
<p>We've also given everyone a festive Pi Hat and Shield so you can celebrate in style. Enjoy them, and thanks for being a part of our community!</p>
<div class="small mb-3">by Beffymaroo and SabreCat</div>
</div>
`,
});
+1 -5
View File
@@ -184,11 +184,7 @@ async function registerLocal (req, res, { isV3 = false }) {
.remove({email: savedUser.auth.local.email})
.then(() => {
if (existingUser) return;
if (savedUser._ABtests && savedUser._ABtests.welcomeEmailSplit) {
sendTxnEmail(savedUser, savedUser._ABtests.welcomeEmailSplit);
} else {
sendTxnEmail(savedUser, 'welcome');
}
sendTxnEmail(savedUser, 'welcome-v2d');
});
if (!existingUser) {
+1 -5
View File
@@ -89,11 +89,7 @@ async function loginSocial (req, res) {
.exec()
.then(() => {
if (!existingUser) {
if (savedUser._ABtests && savedUser._ABtests.welcomeEmailSplit) {
sendTxnEmail(savedUser, savedUser._ABtests.welcomeEmailSplit);
} else {
sendTxnEmail(savedUser, 'welcome');
}
sendTxnEmail(savedUser, 'welcome-v2d');
}
}); // eslint-disable-line max-nested-callbacks
}
+19 -13
View File
@@ -124,22 +124,28 @@ function _setUpNewUser (user) {
let taskTypes;
let iterableFlags = user.flags.toObject();
/* eslint-disable camelcase */
user.items.quests.dustbunnies = 1;
user.purchased.background.violet = true;
user.preferences.background = 'violet';
const testGroup = Math.random();
if (testGroup < 0.2) {
user._ABtests.welcomeEmailSplit = 'welcome-v2';
} else if (testGroup < 0.4) {
user._ABtests.welcomeEmailSplit = 'welcome-v2b';
} else if (testGroup < 0.6) {
user._ABtests.welcomeEmailSplit = 'welcome-v2c';
} else if (testGroup < 0.8) {
user._ABtests.welcomeEmailSplit = 'welcome-v2d';
} else {
user._ABtests.welcomeEmailSplit = 'welcome';
}
user.items.gear.owned.shield_special_piDay = true;
user.items.gear.equipped.shield = 'shield_special_piDay';
user.items.gear.costume.shield = 'shield_special_piDay';
user.items.gear.owned.head_special_piDay = true;
user.items.gear.equipped.head = 'head_special_piDay';
user.items.gear.costume.head = 'head_special_piDay';
user.items.food.Pie_Skeleton = 1;
user.items.food.Pie_Base = 1;
user.items.food.Pie_CottonCandyBlue = 1;
user.items.food.Pie_CottonCandyPink = 1;
user.items.food.Pie_Shade = 1;
user.items.food.Pie_White = 1;
user.items.food.Pie_Golden = 1;
user.items.food.Pie_Zombie = 1;
user.items.food.Pie_Desert = 1;
user.items.food.Pie_Red = 1;
user.migration = '20190314_pi_day';
/* eslint-enable camelcase */
if (user.registeredThrough === 'habitica-web') {
taskTypes = ['habit', 'daily', 'todo', 'reward', 'tag'];