Merge branch 'release' into develop

This commit is contained in:
Sabe Jones
2021-02-01 14:54:16 -06:00
66 changed files with 8434 additions and 8255 deletions
@@ -0,0 +1,94 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20210129_habit_birthday';
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.Cake_Skeleton': 1,
'items.food.Cake_Base': 1,
'items.food.Cake_CottonCandyBlue': 1,
'items.food.Cake_CottonCandyPink': 1,
'items.food.Cake_Shade': 1,
'items.food.Cake_White': 1,
'items.food.Cake_Golden': 1,
'items.food.Cake_Zombie': 1,
'items.food.Cake_Desert': 1,
'items.food.Cake_Red': 1,
'achievements.habitBirthdays': 1,
};
const set = {};
let push;
set.migration = MIGRATION_NAME;
if (typeof user.items.gear.owned.armor_special_birthday2020 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2021'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2021', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2019 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2020'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2020', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2018 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2019'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2019', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2017 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2018'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2018', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2016 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2017'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2017', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2015 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2016'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2016', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday !== 'undefined') {
set['items.gear.owned.armor_special_birthday2015'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2015', _id: uuid()}};
} else {
set['items.gear.owned.armor_special_birthday'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday', _id: uuid()}};
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$inc: inc, $set: set, $push: push}).exec();
}
export default async function processUsers () {
let query = {
// migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2021-01-01')},
};
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
@@ -18,7 +18,7 @@ function setUpServer () {
setUpServer();
// Replace this with your migration
const processUsers = require().default;
const processUsers = require('./archive/2021/20210129_habit_birthday').default;
processUsers()
.then(() => {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "habitica",
"version": "4.178.3",
"version": "4.180.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.178.3",
"version": "4.180.0",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.12.10",
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,9 +1,21 @@
.quest_TEMPLATE_FOR_MISSING_IMAGE {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -502px -1519px;
background-position: -502px -1543px;
width: 221px;
height: 39px;
}
.quest_dilatoryDistress1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: 0px -1332px;
width: 210px;
height: 210px;
}
.quest_dilatoryDistress2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1762px -567px;
width: 150px;
height: 150px;
}
.quest_dilatoryDistress3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -220px 0px;
@@ -24,13 +36,13 @@
}
.quest_egg {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1762px -362px;
background-position: -1762px -359px;
width: 165px;
height: 207px;
}
.quest_evilsanta {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1762px -1023px;
background-position: -1762px -1171px;
width: 118px;
height: 131px;
}
@@ -78,7 +90,7 @@
}
.quest_goldenknight2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: 0px -1519px;
background-position: 0px -1543px;
width: 250px;
height: 150px;
}
@@ -90,7 +102,7 @@
}
.quest_gryphon {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -443px -1332px;
background-position: -654px -1332px;
width: 216px;
height: 177px;
}
@@ -108,7 +120,7 @@
}
.quest_hedgehog {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: 0px -1332px;
background-position: -211px -1332px;
width: 219px;
height: 186px;
}
@@ -132,7 +144,7 @@
}
.quest_kraken {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -660px -1332px;
background-position: -871px -1332px;
width: 216px;
height: 177px;
}
@@ -156,7 +168,7 @@
}
.quest_mayhemMistiflying1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1762px -570px;
background-position: -1762px -718px;
width: 150px;
height: 150px;
}
@@ -222,7 +234,7 @@
}
.quest_octopus {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -220px -1332px;
background-position: -431px -1332px;
width: 222px;
height: 177px;
}
@@ -240,7 +252,7 @@
}
.quest_penguin {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1762px -178px;
background-position: -1762px -175px;
width: 190px;
height: 183px;
}
@@ -270,7 +282,7 @@
}
.quest_rooster {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1528px -1332px;
background-position: -1762px 0px;
width: 213px;
height: 174px;
}
@@ -324,13 +336,13 @@
}
.quest_snake {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -877px -1332px;
background-position: -1088px -1332px;
width: 216px;
height: 177px;
}
.quest_spider {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -251px -1519px;
background-position: -251px -1543px;
width: 250px;
height: 150px;
}
@@ -342,7 +354,7 @@
}
.quest_stoikalmCalamity1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1762px -721px;
background-position: -1762px -869px;
width: 150px;
height: 150px;
}
@@ -360,7 +372,7 @@
}
.quest_taskwoodsTerror1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1762px -872px;
background-position: -1762px -1020px;
width: 150px;
height: 150px;
}
@@ -378,19 +390,13 @@
}
.quest_treeling {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1094px -1332px;
background-position: -1305px -1332px;
width: 216px;
height: 177px;
}
.quest_trex {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1762px 0px;
width: 204px;
height: 177px;
}
.quest_trex_undead {
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
background-position: -1311px -1332px;
background-position: -1522px -1332px;
width: 216px;
height: 177px;
}
@@ -1,3 +1,9 @@
.quest_trex {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -651px -446px;
width: 204px;
height: 177px;
}
.quest_triceratops {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -223px 0px;
@@ -108,19 +114,19 @@
}
.quest_lostMasterclasser1_ancientTome {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1270px -424px;
background-position: -1270px -212px;
width: 33px;
height: 42px;
}
.quest_lostMasterclasser1_forbiddenTome {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1270px -493px;
background-position: -1270px -281px;
width: 33px;
height: 42px;
}
.quest_lostMasterclasser1_hiddenTome {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1270px -562px;
background-position: -1270px -350px;
width: 33px;
height: 42px;
}
@@ -150,7 +156,7 @@
}
.quest_moonstone1_moonstone {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1270px -631px;
background-position: -1270px -419px;
width: 30px;
height: 30px;
}
@@ -258,85 +264,85 @@
}
.inventory_quest_scroll_alligator {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -424px;
background-position: -1201px -212px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_amber {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -493px;
background-position: -1201px -281px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_armadillo {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -562px;
background-position: -1201px -350px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_atom1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -700px;
background-position: -1201px -488px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_atom1_locked {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -631px;
background-position: -1201px -419px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_atom2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -838px;
background-position: -1201px -626px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_atom2_locked {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -769px;
background-position: -1201px -557px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_atom3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -976px;
background-position: -1201px -764px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_atom3_locked {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -907px;
background-position: -1201px -695px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_axolotl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -1045px;
background-position: -1201px -833px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_badger {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -1114px;
background-position: -1201px -902px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_basilist {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -651px -552px;
background-position: -1201px -971px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_beetle {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -720px -552px;
background-position: -1201px -1040px;
width: 68px;
height: 68px;
}
.inventory_quest_scroll_blackPearl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -789px -552px;
background-position: -1201px -1109px;
width: 68px;
height: 68px;
}
@@ -1932,475 +1938,451 @@
}
.Mount_Body_Alligator-Base {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -651px -446px;
background-position: 0px -663px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-CottonCandyBlue {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -757px -446px;
background-position: -106px -663px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-CottonCandyPink {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -663px;
background-position: -212px -663px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-Desert {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -106px -663px;
background-position: -318px -663px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-Golden {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -212px -663px;
background-position: -424px -663px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-Red {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -318px -663px;
background-position: -530px -663px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-Shade {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -424px -663px;
background-position: -636px -663px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-Skeleton {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -530px -663px;
background-position: -742px -663px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-White {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -636px -663px;
background-position: 0px -769px;
width: 105px;
height: 105px;
}
.Mount_Body_Alligator-Zombie {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -742px -663px;
background-position: -106px -769px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-Base {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -769px;
background-position: -212px -769px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-CottonCandyBlue {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -106px -769px;
background-position: -318px -769px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-CottonCandyPink {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -212px -769px;
background-position: -424px -769px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-Desert {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -318px -769px;
background-position: -530px -769px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-Golden {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -424px -769px;
background-position: -636px -769px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-Red {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -530px -769px;
background-position: -742px -769px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-Shade {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -636px -769px;
background-position: -883px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-Skeleton {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -742px -769px;
background-position: -883px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-White {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -883px 0px;
background-position: -883px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Armadillo-Zombie {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -883px -106px;
background-position: -883px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Base {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -883px -212px;
background-position: -883px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-CottonCandyBlue {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -883px -318px;
background-position: -883px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-CottonCandyPink {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -883px -424px;
background-position: -883px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Desert {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -883px -530px;
background-position: -883px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Golden {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -883px -636px;
background-position: 0px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Red {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -883px -742px;
background-position: -106px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Shade {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -875px;
background-position: -212px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Skeleton {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -106px -875px;
background-position: -318px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-White {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -212px -875px;
background-position: -424px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Axolotl-Zombie {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -318px -875px;
background-position: -530px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-Base {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -424px -875px;
background-position: -636px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-CottonCandyBlue {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -530px -875px;
background-position: -742px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-CottonCandyPink {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -636px -875px;
background-position: -848px -875px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-Desert {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -742px -875px;
background-position: -989px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-Golden {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -848px -875px;
background-position: -989px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-Red {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px 0px;
background-position: -989px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-Shade {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px -106px;
background-position: -989px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-Skeleton {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px -212px;
background-position: -989px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-White {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px -318px;
background-position: -989px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_Badger-Zombie {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px -424px;
background-position: -989px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Amber {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px -530px;
background-position: -989px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Aquatic {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px -636px;
background-position: -989px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Aurora {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px -742px;
background-position: 0px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-AutumnLeaf {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -989px -848px;
background-position: -106px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Base {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -981px;
background-position: -212px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-BirchBark {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -106px -981px;
background-position: -318px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-BlackPearl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -212px -981px;
background-position: -424px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Bronze {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -318px -981px;
background-position: -530px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Celestial {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -424px -981px;
background-position: -636px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-CottonCandyBlue {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -530px -981px;
background-position: -742px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-CottonCandyPink {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -636px -981px;
background-position: -848px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Cupid {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -742px -981px;
background-position: -954px -981px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Desert {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -848px -981px;
background-position: -1095px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Ember {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -954px -981px;
background-position: -1095px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Fairy {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px 0px;
background-position: -1095px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Floral {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -106px;
background-position: -1095px -318px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Fluorite {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -212px;
background-position: -1095px -424px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Frost {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -318px;
background-position: -1095px -530px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Ghost {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -424px;
background-position: -1095px -636px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Glass {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -530px;
background-position: -1095px -742px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Glow {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -636px;
background-position: -1095px -848px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Golden {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -742px;
background-position: -1095px -954px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Holly {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -848px;
background-position: 0px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-IcySnow {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1095px -954px;
background-position: -106px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Peppermint {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1087px;
background-position: -212px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Polar {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -106px -1087px;
background-position: -318px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Rainbow {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -212px -1087px;
background-position: -424px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Red {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -318px -1087px;
background-position: -530px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-RoseQuartz {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -424px -1087px;
background-position: -636px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-RoyalPurple {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -530px -1087px;
background-position: -742px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Ruby {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -636px -1087px;
background-position: -848px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-SandSculpture {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -742px -1087px;
background-position: -954px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Shade {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -848px -1087px;
background-position: -1060px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Shadow {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -954px -1087px;
background-position: -1201px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Shimmer {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1060px -1087px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Silver {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px 0px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Skeleton {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -106px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-Spooky {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -212px;
width: 105px;
height: 105px;
}
.Mount_Body_BearCub-StainedGlass {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1201px -318px;
width: 105px;
height: 105px;
}
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
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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 KiB

After

Width:  |  Height:  |  Size: 435 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 149 KiB

+8
View File
@@ -405,6 +405,8 @@
"weaponMystery201911Notes": "The crystal ball atop this staff can show you the future, but beware! Using such dangerous knowledge can change a person in unexpected ways. Confers no benefit. November 2019 Subscriber Item.",
"weaponMystery202002Text": "Stylish Sweetheart Parasol",
"weaponMystery202002Notes": "An accessory that lends you an air of mystery and romance. Sun protection is a bonus! Confers no benefit. February 2020 Subscriber Item.",
"weaponMystery202102Text": "Charming Wand",
"weaponMystery202102Notes": "The glowing pink gem in this wand holds the power to spread joy and friendship far and wide! Confers no benefit. February 2021 Subscriber Item.",
"weaponMystery301404Text": "Steampunk Cane",
"weaponMystery301404Notes": "Excellent for taking a turn about town. March 3015 Subscriber Item. Confers no benefit.",
@@ -646,6 +648,8 @@
"armorSpecialBirthday2019Notes": "Happy Birthday, Habitica! Wear these Outlandish Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialBirthday2020Text": "Outrageous Party Robes",
"armorSpecialBirthday2020Notes": "Happy Birthday, Habitica! Wear these Outrageous Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialBirthday2021Text": "Extravagant Party Robes",
"armorSpecialBirthday2021Notes": "Happy Birthday, Habitica! Wear these Extravagant Party Robes to celebrate this wonderful day. Confers no benefit.",
"armorSpecialGaymerxText": "Rainbow Warrior Armor",
"armorSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special armor is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
@@ -996,6 +1000,8 @@
"armorMystery202007Notes": "Swim, flip, dive, and race with this handsome and powerful tail! Confers no benefit. July 2020 Subscriber Item.",
"armorMystery202101Text": "Snazzy Snow Leopard Suit",
"armorMystery202101Notes": "Wrap yourself in warm fur and nearly endless tail floof! Confers no benefit. January 2021 Subscriber Item.",
"armorMystery202102Text": "Charming Dress",
"armorMystery202102Notes": "Sail across the universe in fine style in this buoyantly bright dress. Confers no benefit. February 2021 Subscriber Item.",
"armorMystery301404Text": "Steampunk Suit",
"armorMystery301404Notes": "Dapper and dashing, wot! Confers no benefit. February 3015 Subscriber Item.",
"armorMystery301703Text": "Steampunk Peacock Gown",
@@ -2339,6 +2345,8 @@
"headAccessoryMystery202005Notes": "With such mighty horns, what creature dares challenge you? Confers no benefit. May 2020 Subscriber Item.",
"headAccessoryMystery202009Text": "Marvelous Moth Antennae",
"headAccessoryMystery202009Notes": "These feathery appendages will help you find your way even in the dark of night. Confers no benefit. September 2020 Subscriber Item.",
"headAccessoryMystery202102Text": "Charming Tiara",
"headAccessoryMystery202102Notes": "Magnify your empathy and caring to new heights with this ornate golden tiara. Confers no benefit. February 2021 Subscriber Item.",
"headAccessoryMystery301405Text": "Headwear Goggles",
"headAccessoryMystery301405Notes": "\"Goggles are for your eyes,\" they said. \"Nobody wants goggles that you can only wear on your head,\" they said. Hah! You sure showed them! Confers no benefit. August 3015 Subscriber Item.",
@@ -118,6 +118,7 @@
"mysterySet202011": "Foliated Magus Set",
"mysterySet202012": "Frostfire Phoenix Set",
"mysterySet202101": "Snazzy Snow Leopard Set",
"mysterySet202102": "Charming Champion Set",
"mysterySet301404": "Steampunk Standard Set",
"mysterySet301405": "Steampunk Accessories Set",
"mysterySet301703": "Peacock Steampunk Set",
@@ -17,7 +17,7 @@ export default prefill({
setPrice: 5, availableFrom: '2020-09-25', availableUntil: '2020-11-02', text: t('hauntedColors'),
},
winteryHairColors: {
setPrice: 5, availableFrom: '2021-01-05', availableUntil: '2021-02-02', text: t('winteryColors'),
setPrice: 5, availableFrom: '2021-01-05', availableUntil: '2021-02-01', text: t('winteryColors'),
},
rainbowSkins: { setPrice: 5, text: t('rainbowSkins') },
animalSkins: { setPrice: 5, text: t('animalSkins') },
@@ -32,6 +32,6 @@ export default prefill({
setPrice: 5, availableFrom: '2020-06-23', availableUntil: '2020-08-02', text: t('splashySkins'),
},
winterySkins: {
setPrice: 5, availableFrom: '2021-01-05', availableUntil: '2021-02-02', text: t('winterySkins'),
setPrice: 5, availableFrom: '2021-01-05', availableUntil: '2021-02-01', text: t('winterySkins'),
},
});
@@ -50,6 +50,7 @@ const armor = {
202006: { },
202007: { },
202101: { },
202102: { },
301404: { },
301703: { },
301704: { },
@@ -184,6 +185,7 @@ const headAccessory = {
202004: { },
202005: { },
202009: { },
202102: { },
301405: { },
};
@@ -208,6 +210,7 @@ const weapon = {
201811: { },
201911: { },
202002: { },
202102: { },
301404: { },
};
@@ -658,6 +658,12 @@ const armor = {
winter2021Healer: {
set: 'winter2021ArcticExplorerHealerSet',
},
birthday2021: {
text: t('armorSpecialBirthday2021Text'),
notes: t('armorSpecialBirthday2021Notes'),
value: 0,
canOwn: ownsItem('armor_special_birthday2021'),
},
};
const armorStats = {
+1 -1
View File
@@ -185,7 +185,7 @@ api.specialMounts = stable.specialMounts;
api.mountInfo = stable.mountInfo;
// For seasonal events, change this constant:
const FOOD_SEASON = 'Normal';
const FOOD_SEASON = moment().isBefore('2021-02-02') ? 'Cake' : 'Normal';
api.food = {
Meat: {
Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

+4 -3
View File
@@ -144,9 +144,10 @@ function _setUpNewUser (user) {
user.items.quests.dustbunnies = 1;
user.purchased.background.violet = true;
user.preferences.background = 'violet';
if (moment().isBefore('2021-01-02')) {
user.items.gear.owned.head_special_nye = true;
user.items.gear.equipped.head = 'head_special_nye';
if (moment().isBefore('2021-02-02')) {
user.items.gear.owned.armor_special_birthday2021 = true;
user.items.gear.equipped.armor = 'armor_special_birthday2021';
user.achievements.habitBirthdays = 1;
}
user.markModified('items achievements');