mirror of
https://github.com/sudoxnym/habitica-self-host.git
synced 2026-04-14 19:47:03 +00:00
Merge branch 'develop' into sabrecat/teams-rebase
This commit is contained in:
commit
1ef7924ba5
29 changed files with 529 additions and 302 deletions
|
|
@ -1 +1 @@
|
|||
Subproject commit 08edadc432ca5b7d291f42f7c6c49faa1d9bfc30
|
||||
Subproject commit 22d251cecb9d8d8c43d8c9bdacc0d1ae7f11be32
|
||||
128
migrations/archive/2022/20220524_pet_group_achievements.js
Normal file
128
migrations/archive/2022/20220524_pet_group_achievements.js
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
/* eslint-disable no-console */
|
||||
const MIGRATION_NAME = '20220524_pet_group_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['Alligator-Base']
|
||||
&& pets['Alligator-CottonCandyBlue']
|
||||
&& pets['Alligator-CottonCandyPink']
|
||||
&& pets['Alligator-Desert']
|
||||
&& pets['Alligator-Golden']
|
||||
&& pets['Alligator-Red']
|
||||
&& pets['Alligator-Shade']
|
||||
&& pets['Alligator-Skeleton']
|
||||
&& pets['Alligator-White']
|
||||
&& pets['Alligator-Zombie']
|
||||
&& pets['Snake-Base']
|
||||
&& pets['Snake-CottonCandyBlue']
|
||||
&& pets['Snake-CottonCandyPink']
|
||||
&& pets['Snake-Desert']
|
||||
&& pets['Snake-Golden']
|
||||
&& pets['Snake-Red']
|
||||
&& pets['Snake-Shade']
|
||||
&& pets['Snake-Skeleton']
|
||||
&& pets['Snake-White']
|
||||
&& pets['Snake-Zombie']
|
||||
&& pets['Triceratops-Base']
|
||||
&& pets['Triceratops-CottonCandyBlue']
|
||||
&& pets['Triceratops-CottonCandyPink']
|
||||
&& pets['Triceratops-Desert']
|
||||
&& pets['Triceratops-Golden']
|
||||
&& pets['Triceratops-Red']
|
||||
&& pets['Triceratops-Shade']
|
||||
&& pets['Triceratops-Skeleton']
|
||||
&& pets['Triceratops-White']
|
||||
&& pets['Triceratops-Zombie']
|
||||
&& pets['TRex-Base']
|
||||
&& pets['TRex-CottonCandyBlue']
|
||||
&& pets['TRex-CottonCandyPink']
|
||||
&& pets['TRex-Desert']
|
||||
&& pets['TRex-Golden']
|
||||
&& pets['TRex-Red']
|
||||
&& pets['TRex-Shade']
|
||||
&& pets['TRex-Skeleton']
|
||||
&& pets['TRex-White']
|
||||
&& pets['TRex-Zombie']
|
||||
&& pets['Pterodactyl-Base']
|
||||
&& pets['Pterodactyl-CottonCandyBlue']
|
||||
&& pets['Pterodactyl-CottonCandyPink']
|
||||
&& pets['Pterodactyl-Desert']
|
||||
&& pets['Pterodactyl-Golden']
|
||||
&& pets['Pterodactyl-Red']
|
||||
&& pets['Pterodactyl-Shade']
|
||||
&& pets['Pterodactyl-Skeleton']
|
||||
&& pets['Pterodactyl-White']
|
||||
&& pets['Pterodactyl-Zombie']
|
||||
&& pets['Turtle-Base']
|
||||
&& pets['Turtle-CottonCandyBlue']
|
||||
&& pets['Turtle-CottonCandyPink']
|
||||
&& pets['Turtle-Desert']
|
||||
&& pets['Turtle-Golden']
|
||||
&& pets['Turtle-Red']
|
||||
&& pets['Turtle-Shade']
|
||||
&& pets['Turtle-Skeleton']
|
||||
&& pets['Turtle-White']
|
||||
&& pets['Turtle-Zombie']
|
||||
&& pets['Velociraptor-Base']
|
||||
&& pets['Velociraptor-CottonCandyBlue']
|
||||
&& pets['Velociraptor-CottonCandyPink']
|
||||
&& pets['Velociraptor-Desert']
|
||||
&& pets['Velociraptor-Golden']
|
||||
&& pets['Velociraptor-Red']
|
||||
&& pets['Velociraptor-Shade']
|
||||
&& pets['Velociraptor-Skeleton']
|
||||
&& pets['Velociraptor-White']
|
||||
&& pets['Velociraptor-Zombie']) {
|
||||
set['achievements.reptacularRumble'] = 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('2022-01-01') },
|
||||
};
|
||||
|
||||
const fields = {
|
||||
_id: 1,
|
||||
items: 1,
|
||||
};
|
||||
|
||||
while (true) { // eslint-disable-line no-constant-condition
|
||||
const users = await User // eslint-disable-line no-await-in-loop
|
||||
.find(query)
|
||||
.limit(250)
|
||||
.sort({_id: 1})
|
||||
.select(fields)
|
||||
.lean()
|
||||
.exec();
|
||||
|
||||
if (users.length === 0) {
|
||||
console.warn('All appropriate users found and modified.');
|
||||
console.warn(`\n${count} users processed\n`);
|
||||
break;
|
||||
} else {
|
||||
query._id = {
|
||||
$gt: users[users.length - 1]._id,
|
||||
};
|
||||
}
|
||||
|
||||
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
|
||||
}
|
||||
};
|
||||
27
package-lock.json
generated
27
package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "habitica",
|
||||
"version": "4.230.2",
|
||||
"version": "4.231.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
@ -3503,7 +3503,7 @@
|
|||
"bin-pack": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bin-pack/-/bin-pack-1.0.2.tgz",
|
||||
"integrity": "sha1-wqAU7b8L7XCjKSBi7UZXe5YSBnk="
|
||||
"integrity": "sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw=="
|
||||
},
|
||||
"bin-version": {
|
||||
"version": "3.1.0",
|
||||
|
|
@ -7623,16 +7623,15 @@
|
|||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz",
|
||||
"integrity": "sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==",
|
||||
"version": "8.0.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
|
||||
"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^5.0.1",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
"once": "^1.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
|
|
@ -7644,9 +7643,9 @@
|
|||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
|
||||
"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
|
||||
"integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
|
||||
"requires": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
}
|
||||
|
|
@ -8342,7 +8341,7 @@
|
|||
"async": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz",
|
||||
"integrity": "sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=",
|
||||
"integrity": "sha512-+g/Ncjbx0JSq2Mk03WQkyKvNh5q9Qvyo/RIqIqnmC5feJY70PNl2ESwZU2BhAB+AZPkHNzzyC2Dq2AS5VnTKhQ==",
|
||||
"requires": {
|
||||
"lodash": "^4.14.0"
|
||||
}
|
||||
|
|
@ -9725,9 +9724,9 @@
|
|||
}
|
||||
},
|
||||
"jwks-rsa": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.1.1.tgz",
|
||||
"integrity": "sha512-NdtZuf1pvlnWgbCU2c9oRFdi+u8uWpwL6EMiordpasrNFNrGrQGNs7WQ9UiMT0/RG7vt4ElwyObNy04pIbsGCA==",
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.1.2.tgz",
|
||||
"integrity": "sha512-QW2SNEUVvMqULiBJVsIJXSuX73Qj9il/DMCsJZsmCI8AQFZ6BjXgQW6h9wOlPr1LswQBNDdyFT2LPogwMRr1ew==",
|
||||
"requires": {
|
||||
"@types/express": "^4.17.13",
|
||||
"debug": "^4.3.4",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "4.230.2",
|
||||
"version": "4.231.0",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.17.10",
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
"express": "^4.18.1",
|
||||
"express-basic-auth": "^1.2.1",
|
||||
"express-validator": "^5.2.0",
|
||||
"glob": "^8.0.1",
|
||||
"glob": "^8.0.3",
|
||||
"got": "^11.8.3",
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-babel": "^8.0.0",
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
"in-app-purchase": "^1.11.3",
|
||||
"js2xmlparser": "^4.0.2",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"jwks-rsa": "^2.1.1",
|
||||
"jwks-rsa": "^2.1.2",
|
||||
"lodash": "^4.17.21",
|
||||
"merge-stream": "^2.0.0",
|
||||
"method-override": "^3.0.0",
|
||||
|
|
|
|||
33
website/client/package-lock.json
generated
33
website/client/package-lock.json
generated
|
|
@ -18805,13 +18805,8 @@
|
|||
},
|
||||
"chownr": {
|
||||
"version": "1.1.1",
|
||||
<<<<<<< HEAD
|
||||
"resolved": false,
|
||||
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
|
||||
=======
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
>>>>>>> 9af2289773af196ab1de83de6af54c8732805177
|
||||
},
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
|
|
@ -18858,13 +18853,8 @@
|
|||
},
|
||||
"fs-minipass": {
|
||||
"version": "1.2.5",
|
||||
<<<<<<< HEAD
|
||||
"resolved": false,
|
||||
"integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
|
||||
=======
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
>>>>>>> 9af2289773af196ab1de83de6af54c8732805177
|
||||
"requires": {
|
||||
"minipass": "^2.2.1"
|
||||
}
|
||||
|
|
@ -18974,13 +18964,8 @@
|
|||
},
|
||||
"minizlib": {
|
||||
"version": "1.2.1",
|
||||
<<<<<<< HEAD
|
||||
"resolved": false,
|
||||
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
|
||||
=======
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
>>>>>>> 9af2289773af196ab1de83de6af54c8732805177
|
||||
"requires": {
|
||||
"minipass": "^2.2.1"
|
||||
}
|
||||
|
|
@ -19207,8 +19192,6 @@
|
|||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
"tar": {
|
||||
"version": "4.4.8",
|
||||
"bundled": true,
|
||||
|
|
@ -19223,7 +19206,6 @@
|
|||
"yallist": "^3.0.2"
|
||||
}
|
||||
},
|
||||
>>>>>>> 9af2289773af196ab1de83de6af54c8732805177
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
|
|
@ -29128,6 +29110,7 @@
|
|||
"version": "npm:vue-loader@16.8.3",
|
||||
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
|
||||
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"chalk": "^4.1.0",
|
||||
"hash-sum": "^2.0.0",
|
||||
|
|
@ -29138,6 +29121,7 @@
|
|||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
|
|
@ -29146,6 +29130,7 @@
|
|||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
|
|
@ -29155,6 +29140,7 @@
|
|||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
|
|
@ -29162,22 +29148,26 @@
|
|||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"optional": true
|
||||
},
|
||||
"emojis-list": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
|
||||
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
|
||||
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
|
||||
"optional": true
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"optional": true
|
||||
},
|
||||
"loader-utils": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
|
||||
"integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"big.js": "^5.2.2",
|
||||
"emojis-list": "^3.0.0",
|
||||
|
|
@ -29188,6 +29178,7 @@
|
|||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -303,6 +303,11 @@
|
|||
width: 64px;
|
||||
height: 56px;
|
||||
}
|
||||
.achievement-reptacularRumble2x {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-reptacularRumble2x.png');
|
||||
width: 60px;
|
||||
height: 64px;
|
||||
}
|
||||
.achievement-rosyOutlook2x {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-rosyOutlook2x.png');
|
||||
width: 64px;
|
||||
|
|
@ -32039,204 +32044,6 @@
|
|||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.headAccessory_special_bearEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_bearEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_bearEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_bearEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_blackHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_blackHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_blueHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_blueHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_cactusEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_cactusEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_cactusEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_cactusEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_foxEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_foxEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_foxEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_foxEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_greenHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_greenHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_lionEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_lionEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pandaEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pandaEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_pandaEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pandaEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pigEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pigEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_pigEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pigEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pinkHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pinkHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_redHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_redHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_tigerEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_tigerEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_tigerEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_tigerEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_whiteHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_whiteHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_wolfEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_wolfEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_wolfEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_wolfEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_yellowHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_yellowHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shop_headAccessory_special_bearEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_bearEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_blackHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_blackHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_blueHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_blueHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_cactusEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_cactusEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_foxEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_foxEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_greenHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_greenHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_lionEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_lionEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pandaEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pandaEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pigEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pigEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pinkHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pinkHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_redHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_redHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_tigerEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_tigerEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_whiteHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_whiteHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_wolfEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_wolfEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_yellowHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_yellowHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.head_0 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_0.png');
|
||||
width: 90px;
|
||||
|
|
@ -32618,6 +32425,204 @@
|
|||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.headAccessory_special_bearEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_bearEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_bearEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_bearEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_blackHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_blackHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_blueHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_blueHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_cactusEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_cactusEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_cactusEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_cactusEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_foxEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_foxEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_foxEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_foxEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_greenHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_greenHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_lionEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_lionEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_lionEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pandaEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pandaEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_pandaEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pandaEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pigEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pigEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_pigEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pigEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_pinkHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_pinkHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_redHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_redHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_tigerEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_tigerEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_tigerEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_tigerEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_whiteHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_whiteHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_special_wolfEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_wolfEars.png');
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.customize-option.headAccessory_special_wolfEars {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_wolfEars.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.headAccessory_special_yellowHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_special_yellowHeadband.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shop_headAccessory_special_bearEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_bearEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_blackHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_blackHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_blueHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_blueHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_cactusEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_cactusEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_foxEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_foxEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_greenHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_greenHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_lionEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_lionEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pandaEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pandaEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pigEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pigEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_pinkHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_pinkHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_redHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_redHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_tigerEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_tigerEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_whiteHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_whiteHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_wolfEars {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_wolfEars.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shop_headAccessory_special_yellowHeadband {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_special_yellowHeadband.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.shield_healer_1 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_healer_1.png');
|
||||
width: 90px;
|
||||
|
|
|
|||
|
|
@ -89,9 +89,6 @@ export default {
|
|||
try {
|
||||
this.$store.dispatch('shops:releasePets', { user: this.user });
|
||||
this.text(this.$t('releasePetsSuccess'));
|
||||
// this.$router.push({name: 'stable'});
|
||||
// Reload because achievement is set in user.save instead of common
|
||||
window.location.reload(true);
|
||||
} catch (err) {
|
||||
window.alert(err.message); // eslint-disable-line no-alert
|
||||
}
|
||||
|
|
@ -112,9 +109,6 @@ export default {
|
|||
try {
|
||||
this.$store.dispatch('shops:releaseMounts', { user: this.user });
|
||||
this.text(this.$t('releaseMountsSuccess'));
|
||||
// this.$router.push({name: 'stable'});
|
||||
// Reload because achievement is set in user.save instead of common
|
||||
window.location.reload(true);
|
||||
} catch (err) {
|
||||
window.alert(err.message); // eslint-disable-line no-alert
|
||||
}
|
||||
|
|
@ -135,9 +129,6 @@ export default {
|
|||
try {
|
||||
this.$store.dispatch('shops:releaseBoth', { user: this.user });
|
||||
this.text(this.$t('releaseBothSuccess'));
|
||||
// this.$router.push({name: 'stable'});
|
||||
// Reload because achievement is set in user.save instead of common
|
||||
window.location.reload(true);
|
||||
} catch (err) {
|
||||
window.alert(err.message); // eslint-disable-line no-alert
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,6 +128,9 @@
|
|||
"achievementZodiacZookeeperText": "Has hatched all standard colors of zodiac pets: Rat, Cow, Bunny, Snake, Horse, Sheep, Monkey, Rooster, Wolf, Tiger, Flying Pig, and Dragon!",
|
||||
"achievementZodiacZookeeperModalText": "You collected all the zodiac pets!",
|
||||
"achievementBirdsOfAFeather": "Birds of a Feather",
|
||||
"achievementBirdsOfAFeatherText": "Has hatched all standard colors of flying pets: Flying Pig, Owl, Parrot, Pterodactyl, Gryphon, Falcon, Peacock, and Rooster.",
|
||||
"achievementBirdsOfAFeatherModalText":"You collected all the flying pets!"
|
||||
"achievementBirdsOfAFeatherText": "Has hatched all standard colors of flying pets: Flying Pig, Owl, Parrot, Pterodactyl, Gryphon, Falcon, Peacock, and Rooster!",
|
||||
"achievementBirdsOfAFeatherModalText": "You collected all the flying pets!",
|
||||
"achievementReptacularRumble": "Reptacular Rumble",
|
||||
"achievementReptacularRumbleText": "Has hatched all the standard colors of reptile pets: Alligator, Pterodactyl, Snake, Triceratops, Turtle, Tyrannosaurus Rex, and Velociraptor!",
|
||||
"achievementReptacularRumbleModalText": "You collected all the reptile pets!"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -104,9 +104,27 @@
|
|||
"achievementSeeingRedText": "Has collected all Red Pets.",
|
||||
"achievementSeeingRed": "Seeing Red",
|
||||
"achievementLegendaryBestiaryModalText": "You collected all the mythical pets!",
|
||||
"achievementLegendaryBestiaryText": "Has hatched all the mythical pets: Dragon, Flying Pig, Gryphon, Sea Serpent, and Unicorn!",
|
||||
"achievementLegendaryBestiaryText": "Has hatched all standard colours of mythical pets: Dragon, Flying Pig, Gryphon, Sea Serpent, and Unicorn!",
|
||||
"achievementLegendaryBestiary": "Legendary Bestiary",
|
||||
"achievementSeasonalSpecialistModalText": "You completed all the seasonal quests!",
|
||||
"achievementSeasonalSpecialistText": "Has completed all the Spring and Winter seasonal quests: Egg Hunt, Trapper Santa, and Find the Cub!",
|
||||
"achievementSeasonalSpecialist": "Seasonal Specialist"
|
||||
"achievementSeasonalSpecialist": "Seasonal Specialist",
|
||||
"achievementVioletsAreBlueText": "Has collected all Cotton Candy Blue Pets.",
|
||||
"achievementVioletsAreBlueModalText": "You collected all the Cotton Candy Blue Pets!",
|
||||
"achievementWildBlueYonderModalText": "You tamed all the Cotton Candy Blue Mounts!",
|
||||
"achievementDomesticated": "E-I-E-I-O",
|
||||
"achievementWildBlueYonderText": "Has tamed all Cotton Candy Blue Mounts.",
|
||||
"achievementVioletsAreBlue": "Violets are Blue",
|
||||
"achievementWildBlueYonder": "Wild Blue Yonder",
|
||||
"achievementDomesticatedModalText": "You collected all the domesticated pets!",
|
||||
"achievementDomesticatedText": "Has hatched all standard colours of domesticated pets: Ferret, Guinea Pig, Rooster, Flying Pig, Rat, Bunny, Horse and Cow!",
|
||||
"achievementZodiacZookeeper": "Zodiac Zookeeper",
|
||||
"achievementZodiacZookeeperModalText": "You collected all the zodiac pets!",
|
||||
"achievementZodiacZookeeperText": "Has hatched all standard colours of zodiac pets: Rat, Cow, Bunny, Snake, Horse, Sheep, Monkey, Rooster, Wolf, Tiger, Flying Pig, and Dragon!",
|
||||
"achievementShadyCustomer": "Shady Customer",
|
||||
"achievementShadyCustomerText": "Has collected all Shade Pets.",
|
||||
"achievementShadyCustomerModalText": "You colleted all the Shade Pets!",
|
||||
"achievementShadeOfItAll": "The Shade of It All",
|
||||
"achievementShadeOfItAllText": "Has tamed all Shade Mounts.",
|
||||
"achievementShadeOfItAllModalText": "You tamed all the Shade Mounts!"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1,16 @@
|
|||
{}
|
||||
{
|
||||
"magicPets": "Ljubimci čarobnih napitaka",
|
||||
"noActivePet": "Nema trenutnog ljubimca",
|
||||
"activeMount": "Trenutna jahaća životinja",
|
||||
"questPets": "Pustolovni ljubimci",
|
||||
"mounts": "Jahaće životinje",
|
||||
"wackyPets": "Šašavi ljubimci",
|
||||
"petsFound": "Pronađeni ljubimci",
|
||||
"activePet": "Trenutni ljubimac",
|
||||
"noActiveMount": "Nema jahaće životinje",
|
||||
"stable": "Štala",
|
||||
"mountsTamed": "Pripitomljene jahaće životinje",
|
||||
"questMounts": "Pustolovne jahaće životinje",
|
||||
"magicMounts": "Jahaće životinje čarobnih napitaka",
|
||||
"pets": "Ljubimci"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -378,5 +378,6 @@
|
|||
"joinParty": "Unisciti alla squadra",
|
||||
"editGuild": "Modifica gilda",
|
||||
"editParty": "Modifica squadra",
|
||||
"leaveGuild": "Lascia la gilda"
|
||||
"leaveGuild": "Lascia la gilda",
|
||||
"sendGiftTotal": "Totale:"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -694,7 +694,7 @@
|
|||
"questRubyCollectVenusRunes": "Rune di Venere",
|
||||
"questRubyCollectAquariusRunes": "Rune Zodiacali dell'Acquario",
|
||||
"questAmberUnlockText": "Sblocca le Pozioni di Schiusa Ambrate nel Mercato",
|
||||
"delightfulDinosNotes": "Contiene \"Lo Ptero-dactilo\", \"I Travolgenti Triceratopi\" e \"Il Dinosauro Dissotterrato.\" Disponibile fino al 30 novembre.",
|
||||
"delightfulDinosNotes": "Contiene \"Lo Ptero-dactilo\", \"I Travolgenti Triceratopi\" e \"Il Dinosauro Dissotterrato.\" Disponibile fino al 31 maggio.",
|
||||
"rockingReptilesNotes": "Contiene \"L'Isti-Gator\", \"Il Serpente della Distrazione\" e \"Il Veloci-Rapper\". Disponibile fino al 30 settembre.",
|
||||
"questFluoriteText": "Una Fluorite Fifosa e Brillante",
|
||||
"questFluoriteCompletion": "Mentre combatti, la creatura di cristallo sembra essere sempre più distratta dalle luci che crei. \"Così luccicante...\" borbotta.<br><br>\"Certo!\" esclama @nirbhao. \"Dev'essere un elementale di fluorite. Tutto ciò che vogliono è della luce con cui risplendere. Aiutiamolo a splendere.\"<br><br>L'elementale ride allegramente e risplende come se avessi acceso torce e scintille di magia. È così onorato di poter splendente di nuovo che ti porta ad un ricco deposito di cristalli di Fluorite.<br><br>\"È l'ingrediente perfetto per una nuova Pozione di Schiusa\", dice @nirbhao.\"Una che renderà i nostri animali luminosi come il nostro nuovo amico fluorescente.\"",
|
||||
|
|
|
|||
|
|
@ -202,5 +202,8 @@
|
|||
"mysterySet202203": "Set Libellula Impavida",
|
||||
"mysterySet202204": "Set Avventuriero Virtuale",
|
||||
"mysterySet202202": "Set Trecce Turchesi",
|
||||
"mysterySet202205": "Set Drago Alato Crepuscolare"
|
||||
"mysterySet202205": "Set Drago Alato Crepuscolare",
|
||||
"howManyGemsSend": "Quante Gemme vorresti inviare?",
|
||||
"wantToSendOwnGems": "Vuoi inviare le tue Gemme?",
|
||||
"howManyGemsPurchase": "Quante Gemme vorresti comprare?"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -693,5 +693,12 @@
|
|||
"backgroundFlowerShopNotes": "お花屋さんで良い香りを楽しみましょう。",
|
||||
"backgroundSpringtimeLakeText": "春の湖",
|
||||
"backgroundSpringtimeLakeNotes": "春の湖のほとりに沿って観光しましょう。",
|
||||
"hideLockedBackgrounds": "ロックされた背景を表示しない"
|
||||
"hideLockedBackgrounds": "ロックされた背景を表示しない",
|
||||
"backgroundOnACastleWallNotes": "城郭の上で見張りをしましょう。",
|
||||
"backgroundCastleGateText": "お城の門",
|
||||
"backgroundCastleGateNotes": "お城の門番になりましょう。",
|
||||
"backgrounds052022": "セット96:2022年5月リリース",
|
||||
"backgroundOnACastleWallText": "城郭の上",
|
||||
"backgroundEnchantedMusicRoomNotes": "魔法の音楽室で楽器を演奏しましょう。",
|
||||
"backgroundEnchantedMusicRoomText": "魔法の音楽室"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@
|
|||
"webFaqAnswer4": "ダメージを受け、体力が減るのにはいくつかの原因があります。1 つ目、日課をやらないまま夜を明かし、翌日の朝に表示される確認画面でもチェックをしなければダメージを受けます。2 つ目、悪い習慣をチェックすれば、ダメージを受けます。最後に、パーティーでのボス戦の途中で、パーティーの仲間のだれかが日課をやり残した場合、ボスがあなたを攻撃します。主な回復方法はレベルを上げることで、レベルが上がると体力は全回復します。また、「ごほうび」欄の「体力回復の薬」をゴールドで買っても回復できます。そして、レベル10以上になると、治療師になることができ、回復のスキルを覚えます。もしパーティーの仲間に治療師がいれば、回復してもらうことができます。詳しくはナビゲーションバーのパーティーをクリックしてください。",
|
||||
"faqQuestion5": "友達といっしょに Habitica を遊ぶには?",
|
||||
"iosFaqAnswer5": "あなたといっしょのパーティーに友達を誘いましょう! パーティーではクエストに参加したり、モンスターと戦ったり、スキルをかけたりしてお互いに助け合うことができます。\n\n自分のパーティーを作りたいなら、メニューから[パーティー](https://habitica.com/party)を選び、「新しいパーティーを作成する」をタップしてください。画面をスクロールして、「メンバーを招待する」をタップして、友達のユーザー名を入力して招待しましょう。誰かのパーティーに参加したいなら、自分のユーザー名を相手に伝えればあなたを招待できます!\n\nあなたと友達はギルドに参加することもできます。ギルドとは、共通の趣味を持つ人々が集まる公共チャットルームです。有益で楽しいコミュニティがたくさんあるので、ぜひチェックしてください。\n\nもっと競い合いたいなら、あなたと友達でチャレンジを作成したり参加したりして、タスクのセットに取り組むのもいいでしょう。さまざまな趣味や目標にまつわるたくさんのチャレンジが公開されています。公共チャレンジの中には、優勝者に選ばれると賞品のジェムをもらえるものもあります。",
|
||||
"androidFaqAnswer5": "最も良い方法は、ナビゲーションバーの「パーティー」をクリックして、あなたと一緒のパーティーに友達を誘うことです! パーティーでは、クエストを行ったり、モンスターと戦ったり、スキルを使ったりしてお互いを助け合うことができます。一緒のギルドに参加することもできます(ソーシャル > ギルド)。ギルドは興味のあることを話し合ったり、共通のゴールを目指したりするためのチャットルームで、公開・非公開の設定ができます。ギルドはいくつでも参加できますが、パーティーは1つだけしか参加できません。\n\nより詳しい情報については[パーティー](https://habitica.fandom.com/ja/wiki/パーティー) や[ギルド](https://habitica.fandom.com/wiki/Guilds) のWikiページをご覧ください。",
|
||||
"webFaqAnswer5": "最も良い方法は、ナビゲーションバーの「パーティー」をクリックして、あなたと一緒のパーティーに友達を誘うことです! パーティーでは、クエストを行ったり、モンスターと戦ったり、スキルを使ったりしてお互いを助け合うことができます。一緒のギルドに参加することもできます(ナビゲーションバーの「ギルド」をクリックしてください)。ギルドは興味のあることを話し合ったり、共通のゴールを目指したりするためのチャットルームで、公開・非公開の設定ができます。ギルドはいくつでも参加できますが、パーティーは1つだけしか参加できません。より詳しい情報については[パーティー](https://habitica.fandom.com/ja/wiki/パーティー) や[ギルド](https://habitica.fandom.com/wiki/Guilds) のWikiページをご覧ください。",
|
||||
"androidFaqAnswer5": "最も良い方法は、ナビゲーションバーの「パーティー」をクリックして、あなたと一緒のパーティーに友達を誘うことです! パーティーでは、クエストを行ったり、モンスターと戦ったり、スキルを使ったりしてお互いを助け合うことができます。一緒のギルドに参加することもできます(ソーシャル > ギルド)。ギルドは興味のあることを話し合ったり、共通のゴールを目指したりするためのチャットルームで、公開・非公開の設定ができます。ギルドはいくつでも参加できますが、パーティーは1つだけしか参加できません。\n\nより詳しい情報については[パーティー](https://habitica.fandom.com/ja/wiki/パーティー) や[ギルド](https://habitica.fandom.com/ja/wiki/ギルド) のWikiページをご覧ください。",
|
||||
"webFaqAnswer5": "最も良い方法は、ナビゲーションバーの「パーティー」をクリックして、あなたと一緒のパーティーに友達を誘うことです! パーティーでは、クエストを行ったり、モンスターと戦ったり、スキルを使ったりしてお互いを助け合うことができます。一緒のギルドに参加することもできます(ナビゲーションバーの「ギルド」をクリックしてください)。ギルドは興味のあることを話し合ったり、共通のゴールを目指したりするためのチャットルームで、公開・非公開の設定ができます。ギルドはいくつでも参加できますが、パーティーは1つだけしか参加できません。より詳しい情報については[パーティー](https://habitica.fandom.com/ja/wiki/パーティー) や[ギルド](https://habitica.fandom.com/ja/wiki/ギルド) のWikiページをご覧ください。",
|
||||
"faqQuestion6": "ペットや乗騎はどうやって手に入れるの?",
|
||||
"iosFaqAnswer6": "あなたがタスクを達成するたびに、ランダムに「たまご」や「たまごがえしの薬」や「ペットのえさ」を手に入れるチャンスが得られます。手に入れたアイテムはメニュー > 所持品 に保存されています。\n\nペットをかえすには「たまご」と「たまごがえしの薬」が必要です。かえしたいペットの種類を決めて「たまご」を押して、「かえすたまご」として選択します。次にペットの色を決めて「たまごがえしの薬」を選びましょう! メニュー > ペットでペットを選ぶと、アバターのそばにペットが表示されます。\n\nペットを育てて乗騎にすることもできます。メニュー > ペット でえさをやりましょう。ペットを押して「えさをやるペット」として選択します! ペットを乗騎にするにはたくさんのえさが必要ですが、お気に入りのえさを見つけ出して与えれば、より早く成長します。いろいろ試してみてください。もしくは[ここでネタバレを見ましょう](https://habitica.fandom.com/ja/wiki/えさの好み)。乗騎を手に入れたら、メニュー > 乗騎 に行って押すことで、あなたのアバターに乗騎を表示できます。\n\nクエストによっては、達成することでクエストペットのたまごが手に入ります。(クエストについて詳しく知りたい方は「[モンスターと戦ったり、クエストを始めるにはどうしたらいいですか?](https://habitica.com/static/faq/#monsters-quests)」の項目をご覧ください)。",
|
||||
"androidFaqAnswer6": "あなたがタスクを達成するたびに、ランダムに「たまご」や「たまごがえしの薬」や「ペットのえさ」を手に入れるチャンスが得られます。手に入れたアイテムはメニュー > 所持品 に保存されています。\n\nペットをかえすには「たまご」と「たまごがえしの薬」が必要です。かえしたいペットの種類を決めて「たまご」を押して、「たまごがえしの薬でかえす」として選択します。次にペットの色を決めて「たまごがえしの薬」を選びましょう! 新しいペットを連れる(アバターのそばに表示する)には、メニュー > 動物小屋 > ペット に行って種類を選び、希望するペットを押して「連れていく」を選択します(アバターは変更を反映して更新されません)。\n\nペットを育てて乗騎にすることもできます。メニュー > 動物小屋 [ > ペット] でえさをやりましょう。ペットを押して、次に「えさ」を選びます! ペットを乗騎にするにはたくさんのえさが必要ですが、お気に入りのえさを見つけ出して与えれば、より早く成長します。いろいろ試してみてください。もしくは[ここでネタバレを見ましょう](https://habitica.fandom.com/ja/wiki/えさの好み)。乗騎に乗るには、メニュー > 動物小屋 > 乗騎 へ行って種類を選んで、希望する乗騎を押してから「連れていく」を選択してください(アバターは変更を反映して更新されません)。\n\nクエストによっては、達成することでクエストペットのたまごが手に入ります。(クエストについて詳しく知りたい方は以下をご覧ください)",
|
||||
|
|
|
|||
|
|
@ -378,5 +378,6 @@
|
|||
"joinParty": "パーティーに参加する",
|
||||
"editGuild": "ギルドを編集",
|
||||
"editParty": "パーティーを編集",
|
||||
"leaveGuild": "ギルドを脱退する"
|
||||
"leaveGuild": "ギルドを脱退する",
|
||||
"sendGiftTotal": "トータル:"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -677,7 +677,7 @@
|
|||
"questFluoriteUnlockText": "市場で蛍石のたまごがえしの薬を買えるようになります",
|
||||
"evilSantaAddlNotes": "「猟師のサンタ」と「子グマの捜索」のクエストは何回でも挑戦できますが、クエスト報酬の特別なペットと乗騎が手に入るのは最初の一回だけです。ご注意ください。",
|
||||
"delightfulDinosText": "「愉快な恐竜」クエストセット",
|
||||
"delightfulDinosNotes": "「テラー・ダクティル」「トリケラ・ステップス」「発掘された恐竜」のセット。11月30日まで購入できます。",
|
||||
"delightfulDinosNotes": "「テラー・ダクティル」「トリケラ・ステップス」「発掘された恐竜」のセット。5月31日まで購入できます。",
|
||||
"questRubyCollectRubyGems": "ルビー",
|
||||
"questRubyCollectVenusRunes": "金星のルーン",
|
||||
"questRubyCollectAquariusRunes": "みずがめ座のルーン",
|
||||
|
|
|
|||
|
|
@ -202,5 +202,7 @@
|
|||
"mysterySet202202": "ターコイズツインテールセット",
|
||||
"mysterySet202203": "不屈のトンボセット",
|
||||
"mysterySet202204": "バーチャルアドベンチャーセット",
|
||||
"mysterySet202205": "黄昏の翼のドラゴンセット"
|
||||
"mysterySet202205": "黄昏の翼のドラゴンセット",
|
||||
"howManyGemsSend": "いくつのジェムを贈りますか?",
|
||||
"howManyGemsPurchase": "ジェムをいくつ購入しますか?"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@
|
|||
"achievementDomesticatedModalText": "Omnia animalia domestica collegisti!",
|
||||
"achievementShadyCustomer": "Umbra et Imago",
|
||||
"achievementShadyCustomerText": "Omnia animalia umbrae coloris collegit.",
|
||||
"achievementZodiacZookeeperText": "Omnia animalia Zodiaci incubuit: Ratum, Bovem, Cuniculum, Serpentem, Equum, Ovem, Simiam, Gallum, Lupum, Tigrem, Suem Volantem, Draconem!",
|
||||
"achievementZodiacZookeeperText": "Omnes colores animalium Zodiaci incubuit: Ratum, Bovem, Cuniculum, Serpentem, Equum, Ovem, Simiam, Gallum, Lupum, Tigrem, Suem Volantem, et Draconem!",
|
||||
"achievementZodiacZookeeper": "Zodiaci Custos",
|
||||
"achievementZodiacZookeeperModalText": "Omnia animalia Zodiaci collegisti!",
|
||||
"achievementShadyCustomerModalText": "Omnia animalia umbrae coloris collegisti!",
|
||||
|
|
@ -129,5 +129,5 @@
|
|||
"achievementShadeOfItAllModalText": "Omnia iumenta umbrae coloris domuisti!",
|
||||
"achievementBirdsOfAFeather": "Volucres volare solent",
|
||||
"achievementBirdsOfAFeatherModalText": "Omnia animalia volantia collegisti!",
|
||||
"achievementBirdsOfAFeatherText": "Omnia animalia volantia incubuit: Suem Volantem, Strigem, Psittacum, Pterodactylum, Gryphus, Falconem."
|
||||
"achievementBirdsOfAFeatherText": "Omnes colores animalium volantium incubuit: Suem Volantem, Strigem, Psittacum, Pterodactylum, Gryphus, Falconem, Pavonem et Gallum."
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
"communityInstagram": "Instagramma",
|
||||
"chores": "Negotia",
|
||||
"communityFacebook": "Faciesliber",
|
||||
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Addenda et extentiones</a>",
|
||||
"communityExtensions": "<a href='https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Addenda et extentiones</a>",
|
||||
"clearBrowserData": "Exime argumenta Navigatro",
|
||||
"emailNewPass": "Mitte littera electronica ligamen Passusverbum revertens",
|
||||
"forgotPassword": "Passusverbum de memoria animo exciditne?",
|
||||
"companyDonate": "Pecuniam dona",
|
||||
"companyContribute": "Operam da",
|
||||
"companyContribute": "Contribue",
|
||||
"companyBlog": "Blogulum",
|
||||
"companyAbout": "Quomodo agit",
|
||||
"footerCompany": "Compages",
|
||||
|
|
@ -22,5 +22,20 @@
|
|||
"logout": "Exitus",
|
||||
"history": "Historia",
|
||||
"free": "Associa te gratis",
|
||||
"footerSocial": "Congregatio"
|
||||
"footerSocial": "Congregatio",
|
||||
"marketing1Lead3Title": "Inveni Praemia Fortuita",
|
||||
"marketing1Lead2Title": "Cape Armamenta Dulces",
|
||||
"guidanceForBlacksmiths": "Moderatio Fabris",
|
||||
"marketing2Lead1Title": "Feracitas Socialis",
|
||||
"marketing4Header": "Usus Ordinationis",
|
||||
"marketing2Lead3Title": "Provocate Alter Alterum",
|
||||
"marketing1Lead2": "Emeda habitos tuos ad aedificandam personam tuam. Monstra armamenta dulces quae adeptus es!",
|
||||
"marketing1Lead1Title": "Vita Tua, Ludus Personarum",
|
||||
"marketing3Header": "Programmulae et Extensiones",
|
||||
"invalidEmail": "Littera electronica rata requiritur ad revertere passusverbum.",
|
||||
"marketing3Lead2Title": "Integraziones",
|
||||
"footerMobile": "Mobilis",
|
||||
"marketing2Header": "Colluctare Cum Amicis, Te Associa In Gregibus Studii",
|
||||
"marketing2Lead2Title": "Pugna Monstra",
|
||||
"marketing2Lead1": "Etiamsi solus ludere Habitica potes, melius advenit cum tu collaborare, contendere atque manere fidelitatem alterum alterum incohas. Efficacissima pars aliqui profecti ipsius est fidelitas socialis, et quid est locum melius ad manendam fidelitatem et competendum quam ludum televisificum?"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,5 +4,7 @@
|
|||
"eggsItemType": "Ova",
|
||||
"hatchingPotionsItemType": "Potiones Incubantes",
|
||||
"specialItemType": "Res Propriae",
|
||||
"lockedItem": "Res Obserata"
|
||||
"lockedItem": "Res Obserata",
|
||||
"petAndMount": "Animalia Domestica et Iumenta",
|
||||
"allItems": "Totae Res"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,22 +8,22 @@
|
|||
"messageCannotFeedPet": "Hoc animal domesticum non pascas.",
|
||||
"messageAlreadyMount": "Iam iumentum tibi est. Conare alere aliud animal domesticum.",
|
||||
"messageEvolve": "<%= egg %>mansuevisti. Equitate!",
|
||||
"messageLikesFood": "<%= egg %> really likes <%= foodText %>!",
|
||||
"messageDontEnjoyFood": "<%= egg %> eats <%= foodText %> but doesn't seem to enjoy it.",
|
||||
"messageLikesFood": "<%= egg %> sane amat <%= foodText %>!",
|
||||
"messageDontEnjoyFood": "<%= egg %> edit <%= foodText %> sed videtur id frui.",
|
||||
"messageBought": "Emitur <%= itemText %>",
|
||||
"messageUnEquipped": "<%= itemText %> inarmatur.",
|
||||
"messageMissingEggPotion": "Aut ovo aut potioni dees",
|
||||
"messageInvalidEggPotionCombo": "Ova Animaliorum Domesticorum ex Investigatione incubare Potione Magica Incubante non potest. Conare alio ovo.",
|
||||
"messageAlreadyPet": "Iam animal domesticum tibi est. Conare incubare aliam combīnātiōnem!",
|
||||
"messageHatched": "Your egg hatched! Visit your stable to equip your pet.",
|
||||
"messageHatched": "Ovum tuum incubatum est! Adeas stabulum tuum ad armandum animalem domesticum.",
|
||||
"messageNotEnoughGold": "Aurum Non Satis Est",
|
||||
"messageTwoHandedEquip": "Wielding <%= twoHandedText %> takes two hands, so <%= offHandedText %> has been unequipped.",
|
||||
"messageTwoHandedUnequip": "Wielding <%= twoHandedText %> takes two hands, so it was unequipped when you armed yourself with <%= offHandedText %>.",
|
||||
"messageDropFood": "You've found <%= dropText %>!",
|
||||
"messageTwoHandedEquip": "Ut feras <%= twoHandedText %> duo manibus egeres, igitur <%= offHandedText %> exarmatum est.",
|
||||
"messageTwoHandedUnequip": "Wielding <%= twoHandedText %> takes two hands, so it was unequipped when you armed yourself with <%= offHandedText %>.\nUt feras <%= twoHandedText %> duo manibus egeres, igitur illum exarmatum est cum aggingat <%= offHandedText %> armis.",
|
||||
"messageDropFood": "Invenisti <%= dropText %>!",
|
||||
"messageDropEgg": "You've found a <%= dropText %> Egg!",
|
||||
"messageDropPotion": "You've found a <%= dropText %> Hatching Potion!",
|
||||
"messageDropMysteryItem": "Aperis arcam et <%= dropText %> invenis!",
|
||||
"messageAlreadyOwnGear": "You already own this item. Equip it by going to the equipment page.",
|
||||
"messageAlreadyOwnGear": "Iam haec armamenta tibi sunt. Id arma eundo ad paginam armamentorum.",
|
||||
"previousGearNotOwned": "You need to purchase a lower level gear before this one.",
|
||||
"messageHealthAlreadyMax": "Valitudo maxima tibi iam est.",
|
||||
"messageHealthAlreadyMin": "Oh no! You have already run out of health so it's too late to buy a health potion, but don't worry - you can revive!",
|
||||
|
|
@ -48,7 +48,15 @@
|
|||
"messageNotAbleToBuyInBulk": "This item cannot be purchased in quantities above 1.",
|
||||
"notificationsRequired": "Notificationes ID requiruntur.",
|
||||
"unallocatedStatsPoints": "You have <span class=\"notification-bold-blue\"><%= points %> unallocated Stat Points</span>",
|
||||
"beginningOfConversation": "This is the beginning of your conversation with <%= userName %>. Remember to be kind, respectful, and follow the Community Guidelines!",
|
||||
"beginningOfConversation": "Hic est exordium sermonis tui cum <%= userName %>.",
|
||||
"messageDeletedUser": "Sorry, this user has deleted their account.",
|
||||
"messageMissingDisplayName": "Missing display name."
|
||||
"messageMissingDisplayName": "Missing display name.",
|
||||
"reportedMessage": "Nuntiavisti hoc nuntium arbitris.",
|
||||
"messageBattleGearUnEquipped": "Armamenta Pugnae exarmata.",
|
||||
"messagePetMountUnEquipped": "Animalem Domesticum Iumentumque exarmata.",
|
||||
"messageBackgroundUnEquipped": "Scaena exarmata.",
|
||||
"canDeleteNow": "Hunc nuntium delere posse si velis.",
|
||||
"newsPostNotFound": "Aut notitia non inventa est aut tu aditum ad videndum non habes.",
|
||||
"messageCostumeUnEquipped": "Habitum exarmatum.",
|
||||
"messageAllUnEquipped": "Omnia exarmata."
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
"magicPets": "Animalia Magica",
|
||||
"petsFound": "Animalia Inventa",
|
||||
"activePet": "Animal Electum",
|
||||
"pets": "Animalia",
|
||||
"pets": "Animalia Domestica",
|
||||
"stable": "Stabulum",
|
||||
"noActiveMount": "Nullus Iumentum Electus",
|
||||
"noActivePet": "Nullus Animal Electum",
|
||||
|
|
@ -39,5 +39,11 @@
|
|||
"petName": "<%= egg(locale) %> <%= potion(locale) %>",
|
||||
"hatchedPet": "Incubuisti novum animal nominatum <%= potion %> <%= egg %>!",
|
||||
"hopefulHippogriffMount": "Hopeful Hippogriff (Pet)",
|
||||
"hopefulHippogriffPet": "Hopeful Hippogriff (Pet)"
|
||||
"hopefulHippogriffPet": "Hopeful Hippogriff (Pet)",
|
||||
"invisibleAether": "Aether Caecus",
|
||||
"quickInventory": "Citum Index Bonorum",
|
||||
"noSaddlesAvailable": "Non est tibi ullum Stratum.",
|
||||
"food": "Cibus et Strata",
|
||||
"haveHatchablePet": "Habes potionem incubantem <%= potion %> atque ovum %= egg %> ad incubandum hoc animalem domesticum! <b>Deprime</b> ad incubandum!",
|
||||
"noFoodAvailable": "Non est tibi ullus Cibus."
|
||||
}
|
||||
|
|
|
|||
|
|
@ -183,6 +183,11 @@ const animalSetAchievs = {
|
|||
titleKey: 'achievementDomesticated',
|
||||
textKey: 'achievementDomesticatedText',
|
||||
},
|
||||
reptacularRumble: {
|
||||
icon: 'achievement-reptacularRumble',
|
||||
titleKey: 'achievementReptacularRumble',
|
||||
textKey: 'achievementReptacularRumbleText',
|
||||
},
|
||||
zodiacZookeeper: {
|
||||
icon: 'achievement-zodiac',
|
||||
titleKey: 'achievementZodiacZookeeper',
|
||||
|
|
@ -297,16 +302,6 @@ const mountColorAchievs = {
|
|||
titleKey: 'achievementShadeOfItAll',
|
||||
textKey: 'achievementShadeOfItAllText',
|
||||
},
|
||||
zodiacZookeeper: {
|
||||
icon: 'achievement-zodiac',
|
||||
titleKey: 'achievementZodiacZookeeper',
|
||||
textKey: 'achievementZodiacZookeeperText',
|
||||
},
|
||||
birdsOfAFeather: {
|
||||
icon: 'achievement-birdsOfAFeather',
|
||||
titleKey: 'achievementBirdsOfAFeather',
|
||||
textKey: 'achievementBirdsOfAFeatherText',
|
||||
},
|
||||
};
|
||||
Object.assign(achievementsData, mountColorAchievs);
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,20 @@ const ANIMAL_SET_ACHIEVEMENTS = {
|
|||
achievementKey: 'domesticated',
|
||||
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
||||
},
|
||||
reptacularRumble: {
|
||||
type: 'pet',
|
||||
species: [
|
||||
'Alligator',
|
||||
'Pterodactyl',
|
||||
'Snake',
|
||||
'Triceratops',
|
||||
'TRex',
|
||||
'Turtle',
|
||||
'Velociraptor',
|
||||
],
|
||||
achievementKey: 'reptacularRumble',
|
||||
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
||||
},
|
||||
zodiacZookeeper: {
|
||||
type: 'pet',
|
||||
species: [
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ const QUEST_SEASONAL = {
|
|||
// winter
|
||||
evilsanta: {
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'winter' ? CURRENT_EVENT : null,
|
||||
canBuy () {
|
||||
return this.event && moment().isBetween(this.event.start, this.event.end);
|
||||
},
|
||||
text: t('questEvilSantaText'),
|
||||
notes: t('questEvilSantaNotes'),
|
||||
addlNotes: t('evilSantaAddlNotes'),
|
||||
|
|
@ -36,6 +39,9 @@ const QUEST_SEASONAL = {
|
|||
},
|
||||
evilsanta2: {
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'winter' ? CURRENT_EVENT : null,
|
||||
canBuy () {
|
||||
return this.event && moment().isBetween(this.event.start, this.event.end);
|
||||
},
|
||||
text: t('questEvilSanta2Text'),
|
||||
notes: t('questEvilSanta2Notes'),
|
||||
addlNotes: t('evilSantaAddlNotes'),
|
||||
|
|
@ -66,12 +72,15 @@ const QUEST_SEASONAL = {
|
|||
},
|
||||
// spring
|
||||
egg: {
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
|
||||
canBuy () {
|
||||
return this.event && moment().isBetween(this.event.start, this.event.end);
|
||||
},
|
||||
text: t('questEggHuntText'),
|
||||
notes: t('questEggHuntNotes'),
|
||||
completion: t('questEggHuntCompletion'),
|
||||
value: 1,
|
||||
category: 'pet',
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
|
||||
collect: {
|
||||
plainEgg: {
|
||||
text: t('questEggHuntCollectPlainEgg'),
|
||||
|
|
@ -127,12 +136,15 @@ const QUEST_SEASONAL = {
|
|||
},
|
||||
},
|
||||
waffle: {
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
|
||||
canBuy () {
|
||||
return this.event && moment().isBetween(this.event.start, this.event.end);
|
||||
},
|
||||
text: t('questWaffleText'),
|
||||
notes: t('questWaffleNotes'),
|
||||
completion: t('questWaffleCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
|
||||
boss: {
|
||||
name: t('questWaffleBoss'),
|
||||
hp: 500,
|
||||
|
|
@ -167,15 +179,15 @@ const QUEST_SEASONAL = {
|
|||
},
|
||||
},
|
||||
virtualpet: {
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
|
||||
canBuy () {
|
||||
return this.event && moment().isBetween(this.event.start, this.event.end);
|
||||
},
|
||||
text: t('questVirtualPetText'),
|
||||
notes: t('questVirtualPetNotes'),
|
||||
completion: t('questVirtualPetCompletion'),
|
||||
value: 4,
|
||||
category: 'hatchingPotion',
|
||||
canBuy () {
|
||||
return CURRENT_EVENT && CURRENT_EVENT.season === 'spring';
|
||||
},
|
||||
event: CURRENT_EVENT && CURRENT_EVENT.season === 'spring' ? CURRENT_EVENT : null,
|
||||
boss: {
|
||||
name: t('questVirtualPetBoss'),
|
||||
hp: 500,
|
||||
|
|
|
|||
|
|
@ -217,6 +217,7 @@ function _getBasicAchievements (user, language) {
|
|||
_addSimple(result, user, { path: 'shadeOfItAll', language });
|
||||
_addSimple(result, user, { path: 'zodiacZookeeper', language });
|
||||
_addSimple(result, user, { path: 'birdsOfAFeather', language });
|
||||
_addSimple(result, user, { path: 'reptacularRumble', language });
|
||||
|
||||
_addSimpleWithMasterCount(result, user, { path: 'beastMaster', language });
|
||||
_addSimpleWithMasterCount(result, user, { path: 'mountMaster', language });
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import validator from 'validator';
|
||||
import moment from 'moment';
|
||||
import sortBy from 'lodash/sortBy';
|
||||
import nconf from 'nconf';
|
||||
import {
|
||||
authWithHeaders,
|
||||
|
|
@ -341,15 +342,23 @@ api.resetPassword = {
|
|||
if (validationErrors) throw validationErrors;
|
||||
|
||||
const email = req.body.email.toLowerCase();
|
||||
const user = await User.findOne({
|
||||
$or: [
|
||||
{ 'auth.local.username': email.replace(/^@/, '') },
|
||||
{ 'auth.local.email': email },
|
||||
{ 'auth.apple.emails.value': email },
|
||||
{ 'auth.google.emails.value': email },
|
||||
{ 'auth.facebook.emails.value': email },
|
||||
],
|
||||
}).exec();
|
||||
let user = await User.findOne(
|
||||
{ 'auth.local.email': email }, // Prefer to reset password for local auth
|
||||
{ auth: 1 },
|
||||
).exec();
|
||||
if (!user) { // If no local auth with that email...
|
||||
const potentialUsers = await User.find({
|
||||
$or: [
|
||||
{ 'auth.local.username': email.replace(/^@/, '') },
|
||||
{ 'auth.apple.emails.value': email },
|
||||
{ 'auth.google.emails.value': email },
|
||||
{ 'auth.facebook.emails.value': email },
|
||||
],
|
||||
},
|
||||
{ auth: 1 }).exec();
|
||||
// ...prefer oldest social account or username with matching email
|
||||
[user] = sortBy(potentialUsers, candidate => candidate.auth.timestamps.created);
|
||||
}
|
||||
|
||||
if (user) {
|
||||
// create an encrypted link to be used to reset the password
|
||||
|
|
|
|||
|
|
@ -149,6 +149,7 @@ export default new Schema({
|
|||
shadeOfItAll: Boolean,
|
||||
zodiacZookeeper: Boolean,
|
||||
birdsOfAFeather: Boolean,
|
||||
reptacularRumble: Boolean,
|
||||
// Onboarding Guide
|
||||
createdTask: Boolean,
|
||||
completedTask: Boolean,
|
||||
|
|
|
|||
Loading…
Reference in a new issue