Compare commits
271 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8b4074015f | |||
| 94d666e8b9 | |||
| 1e8222af15 | |||
| de89032491 | |||
| 7a67d87ce1 | |||
| 90a1fabcdf | |||
| caac438858 | |||
| a193bd4b7a | |||
| d995a7484b | |||
| 445f0cc117 | |||
| 5f3336f3d5 | |||
| 1a58e3f8a1 | |||
| 4c657f43de | |||
| ea53382030 | |||
| 0c3b41727c | |||
| 5279f45804 | |||
| f752f7a80d | |||
| 07c906c557 | |||
| b2f7d994f0 | |||
| a814fe8581 | |||
| 2e41576fa2 | |||
| f7db8fc721 | |||
| 75b6d6e11a | |||
| a294b404ac | |||
| e22eef993b | |||
| 529bc97c9a | |||
| 1f3bde5caf | |||
| df83887df6 | |||
| 986071628e | |||
| 54f6845fcd | |||
| 8784d6eee1 | |||
| 966ecd8ee5 | |||
| 77a38b399d | |||
| 28197837cc | |||
| 8e76c42260 | |||
| 466aa38999 | |||
| 293f573c3a | |||
| 0541505797 | |||
| 480f510062 | |||
| d20271e91f | |||
| 1d2782c74e | |||
| cd5044e780 | |||
| cd0dc44a83 | |||
| a009f9ca5e | |||
| 1356e14b40 | |||
| 2704694214 | |||
| e1fe58ee77 | |||
| ebdfc797f5 | |||
| 89ef025795 | |||
| f2b9098917 | |||
| 9d23d4d215 | |||
| 85556d314e | |||
| a44085c067 | |||
| 5661f64f1c | |||
| b1d2d9c3cc | |||
| d59fadd559 | |||
| 43945f5187 | |||
| 02f279e78b | |||
| 3132050dad | |||
| 517e128228 | |||
| 51184e13d2 | |||
| 3dbfb20869 | |||
| b6b8a73360 | |||
| 0a8082cb35 | |||
| 5fc26e9497 | |||
| aefe4a6ee3 | |||
| c6d1954153 | |||
| 31469a2d70 | |||
| 6475eb4f5c | |||
| c7c17dbb55 | |||
| 30a5c3f91b | |||
| 0e507a9c20 | |||
| df28670d16 | |||
| 90a14ee871 | |||
| ccc6c9ef6c | |||
| c57ebb5624 | |||
| d1b537a737 | |||
| b943f4bc7f | |||
| 79033af36e | |||
| 89f449b513 | |||
| 93e0d16d5d | |||
| 86d6580ffb | |||
| 48e3b218fa | |||
| 7aecec9cf4 | |||
| 99c7801a02 | |||
| dbe89a6897 | |||
| 3dfb06aca6 | |||
| b84992dd01 | |||
| 7a4b707840 | |||
| b448c721d8 | |||
| 33e35d76a4 | |||
| 480a0529a2 | |||
| 758ad6af8b | |||
| 4951e82c8d | |||
| 7364b2cd97 | |||
| fda5a88aa4 | |||
| 23e2829ffe | |||
| 52f6affc3a | |||
| 46c2040c02 | |||
| 117dc23a03 | |||
| e64f77638c | |||
| 16eee93636 | |||
| e4c4e8c5e6 | |||
| 44cd9d52b5 | |||
| 6f9b05529e | |||
| 9ac96a2ed4 | |||
| 365233ee70 | |||
| 06f5f6a73f | |||
| c4b346570c | |||
| 08d6854ce7 | |||
| 98349891ca | |||
| 44d979615b | |||
| 4c355079e6 | |||
| 5d87c2af13 | |||
| 56ac23bea6 | |||
| 645817198d | |||
| 147afa6446 | |||
| afd43f4638 | |||
| cb785cfb13 | |||
| 0301af90e2 | |||
| dfe246cbfd | |||
| d0651ec220 | |||
| ac4b94c2e1 | |||
| 59c472578c | |||
| 136c93f082 | |||
| eca55ff987 | |||
| 19042fc143 | |||
| 8adfef686e | |||
| 52a8a36da6 | |||
| 854b9b0f80 | |||
| 5661391b35 | |||
| cc3c1508bb | |||
| 0bb2c939e7 | |||
| 0bc59f1c50 | |||
| 65d2229e89 | |||
| d759081b51 | |||
| 7afbe39ae9 | |||
| ec1f4f200b | |||
| e475ebf65c | |||
| 318f760899 | |||
| 0d6e34c646 | |||
| 613b027d08 | |||
| 74a8b3aff2 | |||
| 353b5a6dcb | |||
| 877f16fd88 | |||
| 2766ddf7a2 | |||
| 4bae27c328 | |||
| 4dbe618017 | |||
| 95ee1642bf | |||
| 4b63ff70c2 | |||
| b39b42b3c2 | |||
| 6e18807487 | |||
| c94dd23fe6 | |||
| 5e71abe64f | |||
| 686d0b05d2 | |||
| 4f07075159 | |||
| 91f8be61c4 | |||
| 6509892c8f | |||
| 3a528192aa | |||
| 6495e4d164 | |||
| cc5c9eab54 | |||
| 7568a09d48 | |||
| f1f52e2634 | |||
| 2ad96d4210 | |||
| 72a0313fb2 | |||
| dc5b85097e | |||
| 14bdb5de67 | |||
| a721e0a5a0 | |||
| e09680eec3 | |||
| 4b06736350 | |||
| ed4c1396b0 | |||
| 44001679b1 | |||
| 854f7b0651 | |||
| c401dd2842 | |||
| f4f797dea5 | |||
| f930ccaecc | |||
| 63dc3e2696 | |||
| c6e7b18e8b | |||
| 1c8433ff61 | |||
| 7044c497a2 | |||
| 4afaccd404 | |||
| 2da97c6414 | |||
| 496153b6e9 | |||
| 7646f7da9f | |||
| d2ddb743b6 | |||
| 2cdbf9d978 | |||
| 73b3d9bc56 | |||
| 823a35b859 | |||
| 0480681006 | |||
| 433d42b6f6 | |||
| ab20b5e6cd | |||
| f538998aca | |||
| dc1bbbbea9 | |||
| f4bf576c2f | |||
| 6a84f1d8f7 | |||
| a4b7c50d8b | |||
| d2a0d4194a | |||
| 879e8e72b2 | |||
| e74926ff85 | |||
| 9c7cd9837d | |||
| 0f84aaba21 | |||
| 9d3f36dc18 | |||
| d845a0ccdf | |||
| 6b82f683cf | |||
| 137cafda45 | |||
| cb0197cdfc | |||
| edae85747a | |||
| 8e9340011a | |||
| abc922f3ed | |||
| cc00c99ca5 | |||
| 1ec3415efb | |||
| 353493675f | |||
| 15fa4f47c2 | |||
| 155f11eabb | |||
| d44b32764f | |||
| bbe2076007 | |||
| 51fd50e411 | |||
| 72fc134a88 | |||
| df23c45e01 | |||
| 02c2344674 | |||
| ced2b7f13e | |||
| 2675f505ad | |||
| cd36452168 | |||
| 3482aec646 | |||
| b8030180d4 | |||
| be46a3164d | |||
| 7f13ac1424 | |||
| f9e1c1ee49 | |||
| 3e4ec0baf8 | |||
| 743c81aad4 | |||
| 18949e7238 | |||
| c1fc549a1c | |||
| 60f251a8c7 | |||
| 3b2a61384b | |||
| 07e19ddb83 | |||
| 8d400c3b8a | |||
| ad3a8ae698 | |||
| ed6ce8a2c0 | |||
| 07caa4c09a | |||
| 0933fe48ba | |||
| 47eb47a974 | |||
| 7746c50f65 | |||
| 120dfa1799 | |||
| 5f6344a5ff | |||
| d6a903e348 | |||
| 6457fe84cd | |||
| c5b0833bf2 | |||
| 5339fb011c | |||
| 2d2b7102c4 | |||
| fc87996417 | |||
| a4337b2777 | |||
| f19aab5299 | |||
| 714041f988 | |||
| 0bd8b19d7d | |||
| 72e2facc49 | |||
| 61436c75b9 | |||
| bd42887120 | |||
| 7b76343621 | |||
| f05479fd87 | |||
| 59e4c2db66 | |||
| 949a50e1ea | |||
| 93093af68d | |||
| 5694a95015 | |||
| 93d4b90934 | |||
| e1555c3ece | |||
| 46e68a493c | |||
| 089a41150b | |||
| d6ff526f67 | |||
| f1aa6c663c | |||
| bc3e2c00a5 | |||
| cc481d3635 |
@@ -8,10 +8,10 @@ website/client/
|
||||
website/common/transpiled-babel/
|
||||
dist/
|
||||
dist-client/
|
||||
apidoc_build/
|
||||
apidoc/html/
|
||||
content_cache/
|
||||
i18n_cache/
|
||||
node_modules/
|
||||
|
||||
# Old migrations, disabled
|
||||
migrations/archive/*
|
||||
migrations/archive/*
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
# Pull Request
|
||||
|
||||
[Please see these instructions for adding a pull request](http://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API)
|
||||
[Please see these instructions for adding a pull request](https://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica's_Website_and_API)
|
||||
|
||||
# Requesting a feature
|
||||
|
||||
@@ -12,4 +12,4 @@ Habitica uses [this Google form](https://docs.google.com/forms/d/e/1FAIpQLScPhrw
|
||||
|
||||
# Contributing Code
|
||||
|
||||
See [Contributing to Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica#Coders_.28Web_.26_Mobile.29)
|
||||
See [Contributing to Habitica](https://habitica.fandom.com/wiki/Contributing_to_Habitica#Coders_.28Web_.26_Mobile.29)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[//]: # (Before logging this issue, please contact site administrators from the Habitica website's Help menu. Most bugs can be handled quickly there. If a GitHub issue is needed, staff will let you know. It is recommended that you don't create a new issue unless advised to.)
|
||||
[//]: # (Before logging this issue, please contact site administrators from "Report a Bug" in the Habitica website's Help menu. If a GitHub issue is needed, staff will let you know and will most likely log one on your behalf. It is recommended that you don't create a new issue unless advised to.)
|
||||
|
||||
[//]: # (Bugs in the mobile apps can also be reported there.)
|
||||
[//]: # (Bugs in the mobile apps can be reported via Menu > About > Support.)
|
||||
|
||||
[//]: # (If you have a feature request, use "Help > Request a Feature", not GitHub or the Report a Bug guild.)
|
||||
[//]: # (If you have a feature request, use "Help > Request a Feature", not GitHub.)
|
||||
|
||||
[//]: # (For more guidelines see https://github.com/HabitRPG/habitica/issues/2760)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[//]: # (Note: See http://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API for more info)
|
||||
[//]: # (Note: See https://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API for more info)
|
||||
|
||||
[//]: # (Put Issue # here, if applicable. This will automatically close the issue if your PR is merged in)
|
||||
Fixes put_#_and_issue_number_here
|
||||
@@ -11,4 +11,4 @@ Fixes put_#_and_issue_number_here
|
||||
[//]: # (Put User ID in here - found on the Habitica website at User Icon > Settings > API)
|
||||
|
||||
----
|
||||
UUID:
|
||||
UUID:
|
||||
|
||||
@@ -5,7 +5,7 @@ website/common/transpiled-babel/
|
||||
node_modules
|
||||
content_cache
|
||||
i18n_cache
|
||||
apidoc_build
|
||||
apidoc/html
|
||||
*.swp
|
||||
.idea*
|
||||
config.json
|
||||
|
||||
@@ -4,8 +4,8 @@ Habitica  is an open source habit building program which treats your life like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor.
|
||||
|
||||
**We need more programmers!** Your assistance will be greatly appreciated. The wiki pages below and the additional pages they link to will tell you how to get started on contributing code and where you can go to seek further help or ask questions:
|
||||
* [Guidance for Blacksmiths](http://habitica.fandom.com/wiki/Guidance_for_Blacksmiths) - an introduction to the technologies used and how the software is organized.
|
||||
* [Setting up Habitica Locally](http://habitica.fandom.com/wiki/Setting_up_Habitica_Locally) - how to set up a local install of Habitica for development and testing on various platforms.
|
||||
* [Guidance for Blacksmiths](https://habitica.fandom.com/wiki/Guidance_for_Blacksmiths) - an introduction to the technologies used and how the software is organized.
|
||||
* [Setting up Habitica Locally](https://habitica.fandom.com/wiki/Setting_up_Habitica_Locally) - how to set up a local install of Habitica for development and testing on various platforms.
|
||||
|
||||
Habitica's code is licensed as described at https://github.com/HabitRPG/habitica/blob/develop/LICENSE
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"name": "Habitica V3 API Documentation",
|
||||
"title": "Habitica",
|
||||
"url": "https://habitica.com",
|
||||
"sampleUrl": null,
|
||||
"header": {
|
||||
"title": "Introduction",
|
||||
"filename": "apidoc/header.md"
|
||||
@@ -3,6 +3,3 @@
|
||||
This webpage includes the documentation for version 3 of the [Habitica](https://habitica.com) API.
|
||||
|
||||
If you're developing a 3rd party tool that uses the Habitica API you should read the [Guidance for Comrades](https://habitica.fandom.com/wiki/Guidance_for_Comrades) and in particular the section called [Rules for Third-Party Tools](https://habitica.fandom.com/wiki/Guidance_for_Comrades#Rules_for_Third-Party_Tools) which includes suggestions on how to best use the API and the rules to follow when interacting with it.
|
||||
|
||||
# Attention: Sample forms are non-functional
|
||||
The sample forms were enabled [due to a change in the apidoc package](https://github.com/apidoc/apidoc/pull/915) and do not function, they will be disabled in a future release.
|
||||
|
||||
@@ -2,8 +2,9 @@ import gulp from 'gulp';
|
||||
import clean from 'rimraf';
|
||||
import apidoc from 'apidoc';
|
||||
|
||||
const APIDOC_DEST_PATH = './apidoc_build';
|
||||
const APIDOC_DEST_PATH = './apidoc/html';
|
||||
const APIDOC_SRC_PATH = './website/server';
|
||||
const APIDOC_CONFIG_PATH = './apidoc/apidoc.json';
|
||||
gulp.task('apidoc:clean', done => {
|
||||
clean(APIDOC_DEST_PATH, done);
|
||||
});
|
||||
@@ -12,6 +13,7 @@ gulp.task('apidoc', gulp.series('apidoc:clean', done => {
|
||||
const result = apidoc.createDoc({
|
||||
src: APIDOC_SRC_PATH,
|
||||
dest: APIDOC_DEST_PATH,
|
||||
config: APIDOC_CONFIG_PATH,
|
||||
});
|
||||
|
||||
if (result === false) {
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
/* eslint-disable no-console */
|
||||
const MIGRATION_NAME = '20211021_pet_color_achievements';
|
||||
import { model as User } from '../../../website/server/models/user';
|
||||
|
||||
const progressCount = 1000;
|
||||
let count = 0;
|
||||
|
||||
async function updateUser (user) {
|
||||
count++;
|
||||
|
||||
const set = {
|
||||
migration: MIGRATION_NAME,
|
||||
};
|
||||
|
||||
if (user && user.items && user.items.pets) {
|
||||
const pets = user.items.pets;
|
||||
if (pets['Wolf-Shade'] > 0
|
||||
&& pets['TigerCub-Shade'] > 0
|
||||
&& pets['PandaCub-Shade'] > 0
|
||||
&& pets['LionCub-Shade'] > 0
|
||||
&& pets['Fox-Shade'] > 0
|
||||
&& pets['FlyingPig-Shade'] > 0
|
||||
&& pets['Dragon-Shade'] > 0
|
||||
&& pets['Cactus-Shade'] > 0
|
||||
&& pets['BearCub-Shade'] > 0) {
|
||||
set['achievements.shadyCustomer'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (user && user.items && user.items.mounts) {
|
||||
const mounts = user.items.mounts;
|
||||
if (mounts['Wolf-Shade']
|
||||
&& mounts['TigerCub-Shade']
|
||||
&& mounts['PandaCub-Shade']
|
||||
&& mounts['LionCub-Shade']
|
||||
&& mounts['Fox-Shade']
|
||||
&& mounts['FlyingPig-Shade']
|
||||
&& mounts['Dragon-Shade']
|
||||
&& mounts['Cactus-Shade']
|
||||
&& mounts['BearCub-Shade'] ) {
|
||||
set['achievements.shadeOfItAll'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
|
||||
|
||||
return await User.update({ _id: user._id }, { $set: set }).exec();
|
||||
}
|
||||
|
||||
export default async function processUsers () {
|
||||
let query = {
|
||||
migration: { $ne: MIGRATION_NAME },
|
||||
'auth.timestamps.loggedin': { $gt: new Date('2021-10-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]._id,
|
||||
};
|
||||
}
|
||||
|
||||
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Award Habitoween ladder items to participants in this month's Habitoween festivities
|
||||
*/
|
||||
/* eslint-disable no-console */
|
||||
|
||||
const MIGRATION_NAME = '20211028_habitoween_ladder'; // Update when running in future years
|
||||
|
||||
import { model as User } from '../../../website/server/models/user';
|
||||
|
||||
const progressCount = 1000;
|
||||
let count = 0;
|
||||
|
||||
async function updateUser (user) {
|
||||
count++;
|
||||
|
||||
const set = {};
|
||||
const inc = {
|
||||
'items.food.Candy_Skeleton': 1,
|
||||
'items.food.Candy_Base': 1,
|
||||
'items.food.Candy_CottonCandyBlue': 1,
|
||||
'items.food.Candy_CottonCandyPink': 1,
|
||||
'items.food.Candy_Shade': 1,
|
||||
'items.food.Candy_White': 1,
|
||||
'items.food.Candy_Golden': 1,
|
||||
'items.food.Candy_Zombie': 1,
|
||||
'items.food.Candy_Desert': 1,
|
||||
'items.food.Candy_Red': 1,
|
||||
};
|
||||
|
||||
set.migration = MIGRATION_NAME;
|
||||
|
||||
if (user && user.items && user.items.pets && user.items.pets['JackOLantern-RoyalPurple']) {
|
||||
set['items.mounts.JackOLantern-RoyalPurple'] = true;
|
||||
} else if (user && user.items && user.items.mounts && user.items.mounts['JackOLantern-Glow']) {
|
||||
set['items.pets.JackOLantern-RoyalPurple'] = 5;
|
||||
} else if (user && user.items && user.items.pets && user.items.pets['JackOLantern-Glow']) {
|
||||
set['items.mounts.JackOLantern-Glow'] = true;
|
||||
} else if (user && user.items && user.items.mounts && user.items.mounts['JackOLantern-Ghost']) {
|
||||
set['items.pets.JackOLantern-Glow'] = 5;
|
||||
} else if (user && user.items && user.items.pets && user.items.pets['JackOLantern-Ghost']) {
|
||||
set['items.mounts.JackOLantern-Ghost'] = true;
|
||||
} else if (user && user.items && user.items.mounts && user.items.mounts['JackOLantern-Base']) {
|
||||
set['items.pets.JackOLantern-Ghost'] = 5;
|
||||
} else if (user && user.items && user.items.pets && user.items.pets['JackOLantern-Base']) {
|
||||
set['items.mounts.JackOLantern-Base'] = true;
|
||||
} else {
|
||||
set['items.pets.JackOLantern-Base'] = 5;
|
||||
}
|
||||
|
||||
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
|
||||
return await User.update({_id: user._id}, {$inc: inc, $set: set}).exec();
|
||||
}
|
||||
|
||||
export default async function processUsers () {
|
||||
let query = {
|
||||
migration: {$ne: MIGRATION_NAME},
|
||||
'auth.timestamps.loggedin': {$gt: new Date('2021-10-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
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,126 @@
|
||||
/* eslint-disable no-console */
|
||||
const MIGRATION_NAME = '20211124_harvest_feast';
|
||||
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 set = {};
|
||||
let inc;
|
||||
let push;
|
||||
|
||||
set.migration = MIGRATION_NAME;
|
||||
|
||||
if (typeof user.items.gear.owned.head_special_turkeyHelmGilded !== 'undefined') {
|
||||
inc = {
|
||||
'items.food.Pie_Base': 1,
|
||||
'items.food.Pie_CottonCandyBlue': 1,
|
||||
'items.food.Pie_CottonCandyPink': 1,
|
||||
'items.food.Pie_Desert': 1,
|
||||
'items.food.Pie_Golden': 1,
|
||||
'items.food.Pie_Red': 1,
|
||||
'items.food.Pie_Shade': 1,
|
||||
'items.food.Pie_Skeleton': 1,
|
||||
'items.food.Pie_Zombie': 1,
|
||||
'items.food.Pie_White': 1,
|
||||
}
|
||||
} else if (typeof user.items.gear.owned.armor_special_turkeyArmorBase !== 'undefined') {
|
||||
set['items.gear.owned.head_special_turkeyHelmGilded'] = false;
|
||||
set['items.gear.owned.armor_special_turkeyArmorGilded'] = false;
|
||||
set['items.gear.owned.back_special_turkeyTailGilded'] = false;
|
||||
push = [
|
||||
{
|
||||
type: 'marketGear',
|
||||
path: 'gear.flat.head_special_turkeyHelmGilded',
|
||||
_id: uuid(),
|
||||
},
|
||||
{
|
||||
type: 'marketGear',
|
||||
path: 'gear.flat.armor_special_turkeyArmorGilded',
|
||||
_id: uuid(),
|
||||
},
|
||||
{
|
||||
type: 'marketGear',
|
||||
path: 'gear.flat.back_special_turkeyTailGilded',
|
||||
_id: uuid(),
|
||||
},
|
||||
];
|
||||
} else if (user.items && user.items.mounts && user.items.mounts['Turkey-Gilded']) {
|
||||
set['items.gear.owned.head_special_turkeyHelmBase'] = false;
|
||||
set['items.gear.owned.armor_special_turkeyArmorBase'] = false;
|
||||
set['items.gear.owned.back_special_turkeyTailBase'] = false;
|
||||
push = [
|
||||
{
|
||||
type: 'marketGear',
|
||||
path: 'gear.flat.head_special_turkeyHelmBase',
|
||||
_id: uuid(),
|
||||
},
|
||||
{
|
||||
type: 'marketGear',
|
||||
path: 'gear.flat.armor_special_turkeyArmorBase',
|
||||
_id: uuid(),
|
||||
},
|
||||
{
|
||||
type: 'marketGear',
|
||||
path: 'gear.flat.back_special_turkeyTailBase',
|
||||
_id: uuid(),
|
||||
},
|
||||
];
|
||||
} else if (user.items && user.items.pets && user.items.pets['Turkey-Gilded']) {
|
||||
set['items.mounts.Turkey-Gilded'] = true;
|
||||
} else if (user.items && user.items.mounts && user.items.mounts['Turkey-Base']) {
|
||||
set['items.pets.Turkey-Gilded'] = 5;
|
||||
} else if (user.items && user.items.pets && user.items.pets['Turkey-Base']) {
|
||||
set['items.mounts.Turkey-Base'] = true;
|
||||
} else {
|
||||
set['items.pets.Turkey-Base'] = 5;
|
||||
}
|
||||
|
||||
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
|
||||
|
||||
if (inc) {
|
||||
return await User.update({_id: user._id}, {$inc: inc, $set: set}).exec();
|
||||
} else if (push) {
|
||||
return await User.update({_id: user._id}, {$set: set, $push: {pinnedItems: {$each: push}}}).exec();
|
||||
} else {
|
||||
return await User.update({_id: user._id}, {$set: set}).exec();
|
||||
}
|
||||
}
|
||||
|
||||
export default async function processUsers () {
|
||||
let query = {
|
||||
migration: {$ne: MIGRATION_NAME},
|
||||
'auth.timestamps.loggedin': {$gt: new Date('2021-11-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,19 +1,19 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "4.205.3",
|
||||
"version": "4.214.2",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.15.0",
|
||||
"@babel/preset-env": "^7.15.0",
|
||||
"@babel/register": "^7.15.3",
|
||||
"@babel/core": "^7.16.0",
|
||||
"@babel/preset-env": "^7.16.0",
|
||||
"@babel/register": "^7.16.0",
|
||||
"@google-cloud/trace-agent": "^5.1.5",
|
||||
"@parse/node-apn": "^4.1.1",
|
||||
"@parse/node-apn": "^5.1.0",
|
||||
"@slack/webhook": "^6.0.0",
|
||||
"accepts": "^1.3.5",
|
||||
"amazon-payments": "^0.2.9",
|
||||
"amplitude": "^5.1.6",
|
||||
"apidoc": "^0.29.0",
|
||||
"amplitude": "^5.2.0",
|
||||
"apidoc": "^0.50.2",
|
||||
"apple-auth": "^1.0.7",
|
||||
"bcrypt": "^5.0.1",
|
||||
"body-parser": "^1.18.3",
|
||||
@@ -21,7 +21,7 @@
|
||||
"compression": "^1.7.4",
|
||||
"cookie-session": "^1.4.0",
|
||||
"coupon-code": "^0.4.5",
|
||||
"csv-stringify": "^5.6.4",
|
||||
"csv-stringify": "^5.6.5",
|
||||
"cwait": "^1.1.1",
|
||||
"domain-middleware": "~0.1.0",
|
||||
"eslint": "^6.8.0",
|
||||
@@ -30,8 +30,8 @@
|
||||
"express": "^4.16.3",
|
||||
"express-basic-auth": "^1.1.5",
|
||||
"express-validator": "^5.2.0",
|
||||
"glob": "^7.1.7",
|
||||
"got": "^11.8.2",
|
||||
"glob": "^7.2.0",
|
||||
"got": "^11.8.3",
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-babel": "^8.0.0",
|
||||
"gulp-imagemin": "^7.1.0",
|
||||
@@ -41,9 +41,9 @@
|
||||
"helmet": "^4.6.0",
|
||||
"image-size": "^1.0.0",
|
||||
"in-app-purchase": "^1.11.3",
|
||||
"js2xmlparser": "^4.0.1",
|
||||
"js2xmlparser": "^4.0.2",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"jwks-rsa": "^2.0.4",
|
||||
"jwks-rsa": "^2.0.5",
|
||||
"lodash": "^4.17.21",
|
||||
"merge-stream": "^2.0.0",
|
||||
"method-override": "^3.0.0",
|
||||
@@ -54,25 +54,25 @@
|
||||
"nconf": "^0.11.3",
|
||||
"node-gcm": "^1.0.5",
|
||||
"on-headers": "^1.0.2",
|
||||
"passport": "^0.4.1",
|
||||
"passport": "^0.5.0",
|
||||
"passport-facebook": "^3.0.0",
|
||||
"passport-google-oauth2": "^0.2.0",
|
||||
"passport-google-oauth20": "2.0.0",
|
||||
"paypal-rest-sdk": "^1.8.1",
|
||||
"pp-ipn": "^1.1.0",
|
||||
"ps-tree": "^1.0.0",
|
||||
"rate-limiter-flexible": "^2.2.4",
|
||||
"rate-limiter-flexible": "^2.3.6",
|
||||
"redis": "^3.1.2",
|
||||
"regenerator-runtime": "^0.13.9",
|
||||
"remove-markdown": "^0.3.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"short-uuid": "^4.2.0",
|
||||
"stripe": "^8.171.0",
|
||||
"stripe": "^8.191.0",
|
||||
"superagent": "^6.1.0",
|
||||
"universal-analytics": "^0.4.23",
|
||||
"useragent": "^2.1.9",
|
||||
"uuid": "^8.3.2",
|
||||
"validator": "^13.6.0",
|
||||
"validator": "^13.7.0",
|
||||
"vinyl-buffer": "^1.0.1",
|
||||
"winston": "^3.3.3",
|
||||
"winston-loggly-bulk": "^3.2.1",
|
||||
@@ -110,7 +110,7 @@
|
||||
"apidoc": "gulp apidoc"
|
||||
},
|
||||
"devDependencies": {
|
||||
"axios": "^0.21.1",
|
||||
"axios": "^0.24.0",
|
||||
"chai": "^4.3.4",
|
||||
"chai-as-promised": "^7.1.1",
|
||||
"chai-moment": "^0.1.0",
|
||||
@@ -122,7 +122,7 @@
|
||||
"monk": "^7.3.4",
|
||||
"require-again": "^2.0.0",
|
||||
"run-rs": "^0.7.5",
|
||||
"sinon": "^11.1.2",
|
||||
"sinon": "^12.0.1",
|
||||
"sinon-chai": "^3.7.0",
|
||||
"sinon-stub-promise": "^4.0.0"
|
||||
},
|
||||
|
||||
@@ -1 +1 @@
|
||||
For information about writing and running tests, see [Using Your Local Install to Modify Habitica's Website and API](http://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica%27s_Website_and_API).
|
||||
For information about writing and running tests, see [Using Your Local Install to Modify Habitica's Website and API](https://habitica.fandom.com/wiki/Using_Your_Local_Install_to_Modify_Habitica's_Website_and_API).
|
||||
|
||||
@@ -592,20 +592,6 @@ describe('User Model', () => {
|
||||
});
|
||||
|
||||
context('pre-save hook', () => {
|
||||
it('enrolls users that signup through web in the Drop Cap AB test', async () => {
|
||||
let user = new User();
|
||||
user.registeredThrough = 'habitica-web';
|
||||
user = await user.save();
|
||||
expect(user._ABtests.dropCapNotif).to.exist;
|
||||
});
|
||||
|
||||
it('does not enroll users that signup through modal in the Drop Cap AB test', async () => {
|
||||
let user = new User();
|
||||
user.registeredThrough = 'habitica-ios';
|
||||
user = await user.save();
|
||||
expect(user._ABtests.dropCapNotif).to.not.exist;
|
||||
});
|
||||
|
||||
it('marks the last news post as read for new users', async () => {
|
||||
const lastNewsPost = { _id: '1' };
|
||||
sandbox.stub(NewsPost, 'lastNewsPost').returns(lastNewsPost);
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
} from '../../../../helpers/api-integration/v3';
|
||||
|
||||
const INVITES_LIMIT = 100;
|
||||
const PARTY_LIMIT_MEMBERS = 30;
|
||||
const PARTY_LIMIT_MEMBERS = 29;
|
||||
const MAX_EMAIL_INVITES_BY_USER = 200;
|
||||
|
||||
describe('Post /groups/:groupId/invite', () => {
|
||||
@@ -650,7 +650,7 @@ describe('Post /groups/:groupId/invite', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: t('partyExceedsMembersLimit', { maxMembersParty: PARTY_LIMIT_MEMBERS }),
|
||||
message: t('partyExceedsMembersLimit', { maxMembersParty: PARTY_LIMIT_MEMBERS + 1 }),
|
||||
});
|
||||
}).timeout(10000);
|
||||
});
|
||||
|
||||
@@ -14,7 +14,7 @@ describe('GET /shops/backgrounds', () => {
|
||||
const shop = await user.get('/shops/backgrounds');
|
||||
expect(shop.identifier).to.equal('backgroundShop');
|
||||
expect(shop.text).to.eql(t('backgroundShop'));
|
||||
expect(shop.notes).to.eql(t('backgroundShopText'));
|
||||
expect(shop.notes).to.eql(t('backgroundShop'));
|
||||
expect(shop.imageName).to.equal('background_shop');
|
||||
expect(shop.sets).to.be.an('array');
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ describe('DELETE /tasks/:id', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -41,7 +41,7 @@ describe('DELETE /tasks/:id', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -123,7 +123,7 @@ describe('DELETE /tasks/:id', () => {
|
||||
await expect(user.del('/tasks/550e8400-e29b-41d4-a716-446655440000')).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -137,7 +137,7 @@ describe('DELETE /tasks/:id', () => {
|
||||
await expect(user.del(`/tasks/${anotherUsersTask._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ describe('GET /tasks/:taskId', () => {
|
||||
await expect(user.get(`/tasks/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -68,7 +68,7 @@ describe('GET /tasks/:taskId', () => {
|
||||
await expect(anotherUser.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -21,7 +21,7 @@ describe('GET /tasks/:id', () => {
|
||||
await expect(user.get(`/tasks/${dummyId}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -63,7 +63,7 @@ describe('GET /tasks/:id', () => {
|
||||
await expect(anotherUser.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -118,7 +118,7 @@ describe('GET /tasks/:id', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -163,7 +163,7 @@ describe('GET /tasks/:id', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -23,7 +23,7 @@ describe('POST /tasks/:taskId/move/to/:position', () => {
|
||||
await expect(user.post(`/tasks/${generateUUID()}/move/to/1`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ describe('POST /tasks/unlink-all/:challengeId', () => {
|
||||
await expect(user.get(`/tasks/${daily._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ describe('POST /tasks/unlink-one/:taskId', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ describe('DELETE /tasks/:taskId/checklist/:itemId', () => {
|
||||
await expect(user.del(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ describe('DELETE /tasks/:id', () => {
|
||||
await expect(user.del(`/tasks/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -51,7 +51,7 @@ describe('DELETE /tasks/:id', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -93,7 +93,7 @@ describe('DELETE /tasks/:id', () => {
|
||||
await expect(anotherUser.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -111,7 +111,7 @@ describe('DELETE /tasks/:id', () => {
|
||||
await expect(anotherUser.get(`/tasks/${anotherUsersNewChallengeTaskID}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -24,7 +24,7 @@ describe('POST /tasks/:taskId/checklist/', () => {
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ describe('PUT /tasks/:id', () => {
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
|
||||
await expect(user.put(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ describe('DELETE /tasks/:taskId/checklist/:itemId', () => {
|
||||
await expect(user.del(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ describe('POST /tasks/:taskId/checklist/', () => {
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -80,7 +80,7 @@ describe('POST /tasks/:taskId/checklist/:itemId/score', () => {
|
||||
await expect(user.post(`/tasks/${generateUUID()}/checklist/${generateUUID()}/score`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
|
||||
await expect(user.put(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ describe('Groups DELETE /tasks/:id', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -60,7 +60,7 @@ describe('Groups DELETE /tasks/:id', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ describe('POST /tasks/:id/approve/:userId', () => {
|
||||
.to.eventually.be.rejected.and.to.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ describe('POST /tasks/:id/needs-work/:userId', () => {
|
||||
.to.eventually.be.rejected.and.to.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ describe('POST /tasks/:taskId/assign/:memberId', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ describe('POST /tasks/:taskId/unassign/:memberId', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ describe('DELETE group /tasks/:taskId/checklist/:itemId', () => {
|
||||
await expect(user.del(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ describe('POST group /tasks/:taskId/checklist/', () => {
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -74,7 +74,7 @@ describe('PUT group /tasks/:taskId/checklist/:itemId', () => {
|
||||
await expect(user.put(`/tasks/${generateUUID()}/checklist/${generateUUID()}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ describe('POST /user/class/cast/:spellId', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ describe('POST /user/reset', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
|
||||
expect(user.tasksOrder.habits).to.be.empty;
|
||||
@@ -45,7 +45,7 @@ describe('POST /user/reset', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
|
||||
expect(user.tasksOrder.dailys).to.be.empty;
|
||||
@@ -63,7 +63,7 @@ describe('POST /user/reset', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
|
||||
expect(user.tasksOrder.todos).to.be.empty;
|
||||
@@ -81,7 +81,7 @@ describe('POST /user/reset', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
|
||||
expect(user.tasksOrder.rewards).to.be.empty;
|
||||
|
||||
@@ -101,7 +101,7 @@ describe('POST /user/class/cast/:spellId', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ describe('POST /user/reset', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
|
||||
expect(user.tasksOrder.habits).to.be.empty;
|
||||
@@ -45,7 +45,7 @@ describe('POST /user/reset', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
|
||||
expect(user.tasksOrder.dailys).to.be.empty;
|
||||
@@ -63,7 +63,7 @@ describe('POST /user/reset', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
|
||||
expect(user.tasksOrder.todos).to.be.empty;
|
||||
@@ -81,7 +81,7 @@ describe('POST /user/reset', () => {
|
||||
await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('taskNotFound'),
|
||||
message: t('messageTaskNotFound'),
|
||||
});
|
||||
|
||||
expect(user.tasksOrder.rewards).to.be.empty;
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
} from '../../../helpers/common.helper';
|
||||
|
||||
describe('shared.ops.purchase', () => {
|
||||
const SEASONAL_FOOD = 'Meat';
|
||||
const SEASONAL_FOOD = moment().isBefore('2021-11-02T20:00-04:00') ? 'Candy_Base' : 'Meat';
|
||||
let user;
|
||||
const goldPoints = 40;
|
||||
const analytics = { track () {} };
|
||||
|
||||
@@ -13,57 +13,57 @@
|
||||
"storybook:serve": "vue-cli-service storybook:serve -p 6006 -c config/storybook"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/addons": "6.2.9",
|
||||
"@storybook/addon-actions": "6.2.9",
|
||||
"@storybook/addons": "6.3.12",
|
||||
"@storybook/addon-actions": "6.3.12",
|
||||
"@storybook/addon-knobs": "6.2.9",
|
||||
"@storybook/addon-links": "6.2.9",
|
||||
"@storybook/addon-links": "6.3.12",
|
||||
"@storybook/addon-notes": "5.3.21",
|
||||
"@storybook/vue": "6.2.9",
|
||||
"@vue/cli-plugin-babel": "^4.5.13",
|
||||
"@vue/cli-plugin-eslint": "^4.5.13",
|
||||
"@vue/cli-plugin-router": "^4.5.13",
|
||||
"@vue/cli-plugin-unit-mocha": "^4.5.13",
|
||||
"@vue/cli-service": "^4.5.13",
|
||||
"@storybook/vue": "6.3.12",
|
||||
"@vue/cli-plugin-babel": "^4.5.15",
|
||||
"@vue/cli-plugin-eslint": "^4.5.15",
|
||||
"@vue/cli-plugin-router": "^4.5.15",
|
||||
"@vue/cli-plugin-unit-mocha": "^4.5.15",
|
||||
"@vue/cli-service": "^4.5.15",
|
||||
"@vue/test-utils": "1.0.0-beta.29",
|
||||
"amplitude-js": "^8.5.0",
|
||||
"axios": "^0.21.1",
|
||||
"amplitude-js": "^8.13.1",
|
||||
"axios": "^0.24.0",
|
||||
"axios-progress-bar": "^1.2.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"bootstrap": "^4.6.0",
|
||||
"bootstrap-vue": "^2.21.2",
|
||||
"chai": "^4.3.4",
|
||||
"core-js": "^3.16.4",
|
||||
"core-js": "^3.19.2",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-habitrpg": "^6.2.0",
|
||||
"eslint-plugin-mocha": "^5.3.0",
|
||||
"eslint-plugin-vue": "^6.2.2",
|
||||
"habitica-markdown": "^3.0.0",
|
||||
"hellojs": "^1.19.4",
|
||||
"hellojs": "^1.19.5",
|
||||
"inspectpack": "^4.7.1",
|
||||
"intro.js": "^4.2.2",
|
||||
"intro.js": "^4.3.0",
|
||||
"jquery": "^3.6.0",
|
||||
"lodash": "^4.17.21",
|
||||
"moment": "^2.29.1",
|
||||
"nconf": "^0.11.3",
|
||||
"sass": "^1.34.0",
|
||||
"sass-loader": "^8.0.2",
|
||||
"smartbanner.js": "^1.16.0",
|
||||
"smartbanner.js": "^1.17.0",
|
||||
"svg-inline-loader": "^0.8.2",
|
||||
"svg-url-loader": "^7.1.1",
|
||||
"svgo": "^1.3.2",
|
||||
"svgo-loader": "^2.2.1",
|
||||
"uuid": "^8.3.2",
|
||||
"validator": "^13.6.0",
|
||||
"validator": "^13.7.0",
|
||||
"vue": "^2.6.14",
|
||||
"vue-cli-plugin-storybook": "2.1.0",
|
||||
"vue-mugen-scroll": "^0.2.6",
|
||||
"vue-router": "^3.5.2",
|
||||
"vue-router": "^3.5.3",
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#153d339e4dbebb73733658aeda1d5b7fcc55b0a0",
|
||||
"webpack": "^4.46.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.14.5"
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.16.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<template v-else>
|
||||
<template v-if="isUserLoaded">
|
||||
<damage-paused-banner />
|
||||
<!-- <gems-promo-banner /> -->
|
||||
<gems-promo-banner />
|
||||
<gift-promo-banner />
|
||||
<notifications-display />
|
||||
<app-menu />
|
||||
@@ -154,7 +154,7 @@ import { loadProgressBar } from 'axios-progress-bar';
|
||||
import AppMenu from './components/header/menu';
|
||||
import AppHeader from './components/header/index';
|
||||
import DamagePausedBanner from './components/header/banners/damagePaused';
|
||||
// import GemsPromoBanner from './components/header/banners/gemsPromo';
|
||||
import GemsPromoBanner from './components/header/banners/gemsPromo';
|
||||
import GiftPromoBanner from './components/header/banners/giftPromo';
|
||||
import AppFooter from './components/appFooter';
|
||||
import notificationsDisplay from './components/notifications';
|
||||
@@ -186,7 +186,7 @@ export default {
|
||||
AppHeader,
|
||||
AppFooter,
|
||||
DamagePausedBanner,
|
||||
// GemsPromoBanner,
|
||||
GemsPromoBanner,
|
||||
GiftPromoBanner,
|
||||
notificationsDisplay,
|
||||
snackbars,
|
||||
@@ -406,7 +406,10 @@ export default {
|
||||
this.$store.state.isUserLoaded = true;
|
||||
Analytics.setUser();
|
||||
Analytics.updateUser();
|
||||
|
||||
return axios.get('/api/v4/i18n/browser-script', { language: this.user.preferences.language });
|
||||
}).then(() => {
|
||||
const i18nData = window && window['habitica-i18n'];
|
||||
this.$loadLocale(i18nData);
|
||||
this.hideLoadingScreen();
|
||||
|
||||
// Adjust the timezone offset
|
||||
|
||||
@@ -1,814 +1,814 @@
|
||||
.background_harvest_fields {
|
||||
.background_halflings_house {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_harvest_moon {
|
||||
.background_hall_of_heroes {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_haunted_forest {
|
||||
.background_harvest_feast {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_haunted_house {
|
||||
.background_harvest_fields {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_heart_shaped_bubbles {
|
||||
.background_harvest_moon {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_heather_field {
|
||||
.background_haunted_forest {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_herding_sheep_in_autumn {
|
||||
.background_haunted_house {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_holiday_hearth {
|
||||
.background_haunted_photo {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_holiday_market {
|
||||
.background_heart_shaped_bubbles {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_holiday_wreath {
|
||||
.background_heather_field {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_hot_air_balloon {
|
||||
.background_herding_sheep_in_autumn {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_hot_spring {
|
||||
.background_holiday_hearth {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_ice_cave {
|
||||
.background_holiday_market {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_iceberg {
|
||||
.background_holiday_wreath {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_icicle_bridge {
|
||||
.background_hot_air_balloon {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_idyllic_cabin {
|
||||
.background_hot_spring {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_in_a_classroom {
|
||||
.background_ice_cave {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_in_an_ancient_tomb {
|
||||
.background_ice_palace {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_in_the_armory {
|
||||
.background_iceberg {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_inside_an_ornament {
|
||||
.background_icicle_bridge {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_island_waterfalls {
|
||||
.background_idyllic_cabin {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_jungle_canopy {
|
||||
.background_in_a_classroom {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_kelp_forest {
|
||||
.background_in_an_ancient_tomb {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_lake_with_floating_lanterns {
|
||||
.background_in_the_armory {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_lighthouse_shore {
|
||||
.background_inside_a_potion_bottle {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_lilypad {
|
||||
.background_inside_an_ornament {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_magic_beanstalk {
|
||||
.background_island_waterfalls {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_magical_candles {
|
||||
.background_jungle_canopy {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_magical_museum {
|
||||
.background_kelp_forest {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_marble_temple {
|
||||
.background_lake_with_floating_lanterns {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_market {
|
||||
.background_lighthouse_shore {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_meandering_cave {
|
||||
.background_lilypad {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_medieval_kitchen {
|
||||
.background_magic_beanstalk {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_midnight_castle {
|
||||
.background_magical_candles {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_midnight_clouds {
|
||||
.background_magical_museum {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_midnight_lake {
|
||||
.background_marble_temple {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_mist_shrouded_mountain {
|
||||
.background_market {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_mistiflying_circus {
|
||||
.background_meandering_cave {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_monster_makers_workshop {
|
||||
.background_medieval_kitchen {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_mountain_lake {
|
||||
.background_midnight_castle {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_mountain_pyramid {
|
||||
.background_midnight_clouds {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_mystical_observatory {
|
||||
.background_midnight_lake {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_night_dunes {
|
||||
.background_mist_shrouded_mountain {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_ocean_sunrise {
|
||||
.background_mistiflying_circus {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_old_fashioned_bakery {
|
||||
.background_monster_makers_workshop {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_on_tree_branch {
|
||||
.background_mountain_lake {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_open_waters {
|
||||
.background_mountain_pyramid {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_orchard {
|
||||
.background_mystical_observatory {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_pagodas {
|
||||
.background_night_dunes {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_park_with_statue {
|
||||
.background_ocean_sunrise {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_pirate_flag {
|
||||
.background_old_fashioned_bakery {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_pixelists_workshop {
|
||||
.background_on_tree_branch {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_potion_shop {
|
||||
.background_open_waters {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_productivity_plaza {
|
||||
.background_orchard {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_pumpkin_carriage {
|
||||
.background_pagodas {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_pumpkin_patch {
|
||||
.background_park_with_statue {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_purple {
|
||||
.background_pirate_flag {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_pyramids {
|
||||
.background_pixelists_workshop {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_raging_river {
|
||||
.background_potion_shop {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rainbow_meadow {
|
||||
.background_productivity_plaza {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rainbows_end {
|
||||
.background_pumpkin_carriage {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rainforest {
|
||||
.background_pumpkin_patch {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rainy_barnyard {
|
||||
.background_purple {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rainy_city {
|
||||
.background_pyramids {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_red {
|
||||
.background_raging_river {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_relaxation_river {
|
||||
.background_rainbow_meadow {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_resting_in_the_inn {
|
||||
.background_rainbows_end {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_river_of_lava {
|
||||
.background_rainforest {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rolling_hills {
|
||||
.background_rainy_barnyard {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rope_bridge {
|
||||
.background_rainy_city {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rose_garden {
|
||||
.background_red {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_rowboat {
|
||||
.background_relaxation_river {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_salt_lake {
|
||||
.background_resting_in_the_inn {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_sandcastle {
|
||||
.background_river_of_lava {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_school_of_fish {
|
||||
.background_rolling_hills {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_scribes_workshop {
|
||||
.background_rope_bridge {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_seafarer_ship {
|
||||
.background_rose_garden {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_seaside_cliffs {
|
||||
.background_rowboat {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_shimmering_ice_prism {
|
||||
.background_salt_lake {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_shimmery_bubbles {
|
||||
.background_sandcastle {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_slimy_swamp {
|
||||
.background_school_of_fish {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_snowglobe {
|
||||
.background_scribes_workshop {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_snowman_army {
|
||||
.background_seafarer_ship {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_snowy_day_fireplace {
|
||||
.background_seaside_cliffs {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_snowy_pines {
|
||||
.background_shimmering_ice_prism {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_snowy_sunrise {
|
||||
.background_shimmery_bubbles {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_south_pole {
|
||||
.background_slimy_swamp {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_sparkling_snowflake {
|
||||
.background_snowglobe {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_spider_web {
|
||||
.background_snowman_army {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_splash_in_a_puddle {
|
||||
.background_snowy_day_fireplace {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_spooky_hotel {
|
||||
.background_snowy_pines {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_spooky_scarecrow_field {
|
||||
.background_snowy_sunrise {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_spring_rain {
|
||||
.background_south_pole {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_spring_thaw {
|
||||
.background_sparkling_snowflake {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_stable {
|
||||
.background_spider_web {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_stained_glass {
|
||||
.background_spiral_staircase {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_starry_skies {
|
||||
.background_splash_in_a_puddle {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_starry_winter_night {
|
||||
.background_spooky_hotel {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_stoikalm_volcanoes {
|
||||
.background_spooky_scarecrow_field {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_stone_circle {
|
||||
.background_spring_rain {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_stone_tower {
|
||||
.background_spring_thaw {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_stormy_rooftops {
|
||||
.background_stable {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_stormy_ship {
|
||||
.background_stained_glass {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_strange_sewers {
|
||||
.background_starry_skies {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_strawberry_patch {
|
||||
.background_starry_winter_night {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_succulent_garden {
|
||||
.background_stoikalm_volcanoes {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_summer_fireworks {
|
||||
.background_stone_circle {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_sunken_ship {
|
||||
.background_stone_tower {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_sunset_meadow {
|
||||
.background_stormy_rooftops {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_sunset_oasis {
|
||||
.background_stormy_ship {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_sunset_savannah {
|
||||
.background_strange_sewers {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_swarming_darkness {
|
||||
.background_strawberry_patch {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_swimming_among_jellyfish {
|
||||
.background_succulent_garden {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_tar_pits {
|
||||
.background_summer_fireworks {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -444px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_tavern {
|
||||
.background_sunken_ship {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -592px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_tea_party {
|
||||
.background_sunset_meadow {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -740px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_terraced_rice_field {
|
||||
.background_sunset_oasis {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -888px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_throne_room {
|
||||
.background_sunset_savannah {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -1036px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_thunderstorm {
|
||||
.background_swarming_darkness {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -1184px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_tide_pool {
|
||||
.background_swimming_among_jellyfish {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -1332px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_tornado {
|
||||
.background_tar_pits {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: 0px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_toymakers_workshop {
|
||||
.background_tavern {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -142px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_training_grounds {
|
||||
.background_tea_party {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -284px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_treasure_room {
|
||||
.background_terraced_rice_field {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -426px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_tree_roots {
|
||||
.background_throne_room {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -568px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_treehouse {
|
||||
.background_thunderstorm {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -710px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_tulip_garden {
|
||||
.background_tide_pool {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -852px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_twinkly_lights {
|
||||
.background_tornado {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -994px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_twinkly_party_lights {
|
||||
.background_toymakers_workshop {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1136px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_underwater_among_koi {
|
||||
.background_training_grounds {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1278px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_underwater_ruins {
|
||||
.background_treasure_room {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1420px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_underwater_vents {
|
||||
.background_tree_roots {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1562px -1480px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_valentines_day_feasting_hall {
|
||||
.background_treehouse {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1704px 0px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_viking_ship {
|
||||
.background_tulip_garden {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1704px -148px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_vineyard {
|
||||
.background_twinkly_lights {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1704px -296px;
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_violet {
|
||||
.background_twinkly_party_lights {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
|
||||
background-position: -1704px -444px;
|
||||
width: 141px;
|
||||
|
||||
@@ -1,648 +1,390 @@
|
||||
.quest_TEMPLATE_FOR_MISSING_IMAGE {
|
||||
.quest_bunny {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -251px -1543px;
|
||||
background-position: 0px -1546px;
|
||||
width: 210px;
|
||||
height: 186px;
|
||||
}
|
||||
.quest_butterfly {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_cheetah {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_cow {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px 0px;
|
||||
width: 174px;
|
||||
height: 213px;
|
||||
}
|
||||
.quest_dilatory {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px -232px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dilatoryDistress1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -222px -1332px;
|
||||
width: 210px;
|
||||
height: 210px;
|
||||
}
|
||||
.quest_dilatoryDistress2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -422px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_dilatoryDistress3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px -232px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dilatory_derby {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -232px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dolphin {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -660px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dustbunnies {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -660px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_egg {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -214px;
|
||||
width: 165px;
|
||||
height: 207px;
|
||||
}
|
||||
.quest_evilsanta {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -724px;
|
||||
width: 118px;
|
||||
height: 131px;
|
||||
}
|
||||
.quest_evilsanta2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -452px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_falcon {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px -452px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_ferret {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px -452px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_fluorite {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -660px -452px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_frog {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -1332px;
|
||||
width: 221px;
|
||||
height: 39px;
|
||||
height: 213px;
|
||||
}
|
||||
.quest_ghost_stag {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -880px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_goldenknight1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -880px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_goldenknight2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -211px -1546px;
|
||||
width: 250px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_goldenknight3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px 0px;
|
||||
width: 219px;
|
||||
height: 231px;
|
||||
}
|
||||
.quest_gryphon {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1543px 0px;
|
||||
background-position: -876px -1332px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_guineapig {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -223px 0px;
|
||||
background-position: -880px -440px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_harpy {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -443px 0px;
|
||||
background-position: 0px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_hedgehog {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1088px -1326px;
|
||||
background-position: -433px -1332px;
|
||||
width: 219px;
|
||||
height: 186px;
|
||||
}
|
||||
.quest_hippo {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -226px;
|
||||
background-position: -220px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_horse {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px -226px;
|
||||
background-position: -440px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_kangaroo {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px -226px;
|
||||
background-position: -660px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_kraken {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1543px -178px;
|
||||
background-position: -1093px -1332px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_lostMasterclasser1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -663px 0px;
|
||||
background-position: -880px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_lostMasterclasser2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -663px -220px;
|
||||
background-position: -1100px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_lostMasterclasser3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -446px;
|
||||
background-position: -1100px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_mayhemMistiflying1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -362px;
|
||||
background-position: -1760px -573px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_mayhemMistiflying2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px -446px;
|
||||
background-position: -1100px -440px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_mayhemMistiflying3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px -446px;
|
||||
background-position: -1100px -660px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_monkey {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -660px -446px;
|
||||
background-position: 0px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moon1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1100px -1106px;
|
||||
background-position: -1540px -220px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_moon2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -883px 0px;
|
||||
background-position: -220px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moon3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -883px -220px;
|
||||
background-position: -440px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moonstone1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -883px -440px;
|
||||
background-position: -660px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moonstone2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -666px;
|
||||
background-position: -880px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moonstone3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px -666px;
|
||||
background-position: -1100px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_nudibranch {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1317px -1106px;
|
||||
background-position: -1540px -437px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_octopus {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1308px -1326px;
|
||||
background-position: -653px -1332px;
|
||||
width: 222px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_onyx {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1320px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_owl {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px -666px;
|
||||
background-position: -1320px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_peacock {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -1326px;
|
||||
background-position: -1540px -654px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_penguin {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -178px;
|
||||
background-position: 0px -1733px;
|
||||
width: 190px;
|
||||
height: 183px;
|
||||
}
|
||||
.quest_pterodactyl {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -660px -666px;
|
||||
background-position: -1320px -440px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_rat {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -880px -666px;
|
||||
background-position: -1320px -660px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_robot {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1103px 0px;
|
||||
background-position: -1320px -880px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_rock {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -217px -1326px;
|
||||
background-position: -1540px -871px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_rooster {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1543px -1246px;
|
||||
background-position: -1527px -1332px;
|
||||
width: 213px;
|
||||
height: 174px;
|
||||
}
|
||||
.quest_ruby {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1103px -220px;
|
||||
background-position: 0px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sabretooth {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1103px -440px;
|
||||
background-position: -220px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_seaserpent {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1103px -660px;
|
||||
background-position: -440px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sheep {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -886px;
|
||||
background-position: -660px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_silver {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px -886px;
|
||||
background-position: -880px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_slime {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px -886px;
|
||||
background-position: -1100px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sloth {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -660px -886px;
|
||||
background-position: -1320px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_snail {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -868px -1326px;
|
||||
background-position: -1540px -1088px;
|
||||
width: 219px;
|
||||
height: 213px;
|
||||
}
|
||||
.quest_snake {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1543px -356px;
|
||||
background-position: -1310px -1332px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_spider {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -1543px;
|
||||
background-position: -462px -1546px;
|
||||
width: 250px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_squirrel {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -880px -886px;
|
||||
background-position: -1540px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_stoikalmCalamity1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -513px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_stoikalmCalamity2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1100px -886px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_stoikalmCalamity3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1323px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_stone {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1323px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_taskwoodsTerror1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -664px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_taskwoodsTerror2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -434px -1326px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_taskwoodsTerror3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1323px -440px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_treeling {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1543px -534px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_trex {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px 0px;
|
||||
width: 204px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_trex_undead {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1543px -712px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_triceratops {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1323px -660px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_turquoise {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1323px -880px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_turtle {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px -1106px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_unicorn {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -220px -1106px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_velociraptor {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: 0px 0px;
|
||||
width: 222px;
|
||||
height: 225px;
|
||||
}
|
||||
.quest_vice1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1543px -890px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_vice2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -440px -1106px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_vice3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1543px -1068px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_waffle {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -660px -1106px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_whale {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -880px -1106px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_yarn {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -651px -1326px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_atom1_soapBars {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -362px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_dilatoryDistress1_blueFins {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -414px;
|
||||
width: 51px;
|
||||
height: 48px;
|
||||
}
|
||||
.quest_dilatoryDistress1_fireCoral {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -513px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_egg_plainEgg {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -565px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_evilsanta2_branches {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -664px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_evilsanta2_tracks {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1898px -815px;
|
||||
width: 54px;
|
||||
height: 60px;
|
||||
}
|
||||
.quest_goldenknight1_testimony {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -716px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_lostMasterclasser1_ancientTome {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1927px -1091px;
|
||||
width: 33px;
|
||||
height: 42px;
|
||||
}
|
||||
.quest_lostMasterclasser1_forbiddenTome {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -1356px;
|
||||
width: 33px;
|
||||
height: 42px;
|
||||
}
|
||||
.quest_lostMasterclasser1_hiddenTome {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1794px -1356px;
|
||||
width: 33px;
|
||||
height: 42px;
|
||||
}
|
||||
.quest_mayhemMistiflying2_mistifly1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1898px -884px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_mayhemMistiflying2_mistifly2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1898px -953px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_mayhemMistiflying2_mistifly3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1898px -1022px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_moon1_shard {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -463px;
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
}
|
||||
.quest_moonstone1_moonstone {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1930px -1264px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
.quest_robot_bolt {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1829px -1091px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_robot_gear {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1878px -1091px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_robot_spring {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -1160px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_ruby_aquariusRune {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1890px -1264px;
|
||||
width: 39px;
|
||||
height: 40px;
|
||||
}
|
||||
.quest_ruby_rubyGem {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1809px -1160px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_ruby_venusRune {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -1316px;
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
}
|
||||
.quest_silver_cancerRune {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1800px -1316px;
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
}
|
||||
.quest_silver_moonRune {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1809px -1264px;
|
||||
width: 39px;
|
||||
height: 42px;
|
||||
}
|
||||
.quest_silver_silverIngot {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1858px -1160px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_stoikalmCalamity2_icicleCoin {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1907px -1160px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_stone_capricornRune {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -617px;
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
}
|
||||
.quest_stone_marsRune {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1911px -768px;
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
}
|
||||
.quest_stone_mossyStone {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -1212px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_taskwoodsTerror2_brownie {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1809px -1212px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_taskwoodsTerror2_dryad {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1858px -1212px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_taskwoodsTerror2_pixie {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1907px -1212px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_turquoise_neptuneRune {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1840px -1316px;
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
}
|
||||
.quest_turquoise_sagittariusRune {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1880px -1316px;
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
}
|
||||
.quest_turquoise_turquoiseGem {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -1264px;
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
}
|
||||
.quest_vice2_lightCrystal {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1849px -1264px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
.inventory_quest_scroll_alligator {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -815px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_amber {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1829px -815px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_armadillo {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -884px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_atom1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -953px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_atom1_locked {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1829px -884px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_atom2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -1022px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_atom2_locked {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1829px -953px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_atom3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1760px -1091px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_atom3_locked {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
|
||||
background-position: -1829px -1022px;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 462 KiB After Width: | Height: | Size: 465 KiB |
|
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 465 KiB |
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 311 KiB After Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 355 KiB After Width: | Height: | Size: 414 KiB |
|
Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 265 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 141 KiB |
|
Before Width: | Height: | Size: 543 KiB After Width: | Height: | Size: 588 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 179 KiB |
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 147 KiB |