Merge branch 'develop' into release

This commit is contained in:
Sabe Jones 2020-09-10 15:06:51 -05:00
commit 83ec53c614
76 changed files with 804 additions and 579 deletions

View file

@ -0,0 +1,73 @@
import { model as User } from '../../website/server/models/user';
const MIGRATION_NAME = 'tag-challenge-field-string2bool';
const progressCount = 1000;
let count = 0;
export default async function processUsers () {
const query = {
migration: { $ne: MIGRATION_NAME },
tags: {
$elemMatch: {
challenge: {
$exists: true,
$type: 'string',
},
},
},
};
while (true) { // eslint-disable-line no-constant-condition
// eslint-disable-next-line no-await-in-loop
const users = await User.find(query)
.sort({ _id: 1 })
.limit(250)
.select({ _id: 1, tags: 1 })
.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
}
}
async function updateUser (user) {
count += 1;
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
let requiresUpdate = false;
if (user && user.tags) {
user.tags.forEach(tag => {
if (tag && typeof tag.challenge === 'string') {
requiresUpdate = true;
if (tag.challenge === 'true') {
tag.challenge = true;
} else if (tag.challenge === 'false') {
tag.challenge = false;
} else {
tag.challenge = null;
}
}
});
}
if (requiresUpdate) {
const set = {
migration: MIGRATION_NAME,
tags: user.tags,
};
return User.update({ _id: user._id }, { $set: set }).exec();
}
return null;
}

240
package-lock.json generated
View file

@ -23,18 +23,18 @@
}
},
"@babel/core": {
"version": "7.11.4",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz",
"integrity": "sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==",
"version": "7.11.6",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz",
"integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==",
"requires": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.11.4",
"@babel/generator": "^7.11.6",
"@babel/helper-module-transforms": "^7.11.0",
"@babel/helpers": "^7.10.4",
"@babel/parser": "^7.11.4",
"@babel/parser": "^7.11.5",
"@babel/template": "^7.10.4",
"@babel/traverse": "^7.11.0",
"@babel/types": "^7.11.0",
"@babel/traverse": "^7.11.5",
"@babel/types": "^7.11.5",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
@ -46,29 +46,15 @@
},
"dependencies": {
"@babel/generator": {
"version": "7.11.4",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz",
"integrity": "sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==",
"version": "7.11.6",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz",
"integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==",
"requires": {
"@babel/types": "^7.11.0",
"@babel/types": "^7.11.5",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
},
"@babel/helper-module-transforms": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
"integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
"requires": {
"@babel/helper-module-imports": "^7.10.4",
"@babel/helper-replace-supers": "^7.10.4",
"@babel/helper-simple-access": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0",
"@babel/template": "^7.10.4",
"@babel/types": "^7.11.0",
"lodash": "^4.17.19"
}
},
"@babel/helper-split-export-declaration": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
@ -78,30 +64,30 @@
}
},
"@babel/parser": {
"version": "7.11.4",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz",
"integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA=="
"version": "7.11.5",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
"integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q=="
},
"@babel/traverse": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
"integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
"version": "7.11.5",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz",
"integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==",
"requires": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.11.0",
"@babel/generator": "^7.11.5",
"@babel/helper-function-name": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0",
"@babel/parser": "^7.11.0",
"@babel/types": "^7.11.0",
"@babel/parser": "^7.11.5",
"@babel/types": "^7.11.5",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.19"
}
},
"@babel/types": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
"integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
"version": "7.11.5",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
"integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==",
"requires": {
"@babel/helper-validator-identifier": "^7.10.4",
"lodash": "^4.17.19",
@ -183,11 +169,10 @@
}
},
"@babel/helper-explode-assignable-expression": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz",
"integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==",
"version": "7.11.4",
"resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz",
"integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==",
"requires": {
"@babel/traverse": "^7.10.4",
"@babel/types": "^7.10.4"
}
},
@ -234,17 +219,37 @@
}
},
"@babel/helper-module-transforms": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz",
"integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==",
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
"integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
"requires": {
"@babel/helper-module-imports": "^7.10.4",
"@babel/helper-replace-supers": "^7.10.4",
"@babel/helper-simple-access": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0",
"@babel/template": "^7.10.4",
"@babel/types": "^7.10.5",
"@babel/types": "^7.11.0",
"lodash": "^4.17.19"
},
"dependencies": {
"@babel/helper-split-export-declaration": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
"integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
"requires": {
"@babel/types": "^7.11.0"
}
},
"@babel/types": {
"version": "7.11.5",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
"integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==",
"requires": {
"@babel/helper-validator-identifier": "^7.10.4",
"lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
}
}
}
},
"@babel/helper-optimise-call-expression": {
@ -269,14 +274,13 @@
}
},
"@babel/helper-remap-async-to-generator": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz",
"integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==",
"version": "7.11.4",
"resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz",
"integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/helper-wrap-function": "^7.10.4",
"@babel/template": "^7.10.4",
"@babel/traverse": "^7.10.4",
"@babel/types": "^7.10.4"
}
},
@ -309,9 +313,9 @@
},
"dependencies": {
"@babel/types": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
"integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
"version": "7.11.5",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
"integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==",
"requires": {
"@babel/helper-validator-identifier": "^7.10.4",
"lodash": "^4.17.19",
@ -624,9 +628,9 @@
}
},
"@babel/plugin-transform-block-scoping": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz",
"integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==",
"version": "7.11.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz",
"integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==",
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
@ -881,9 +885,9 @@
}
},
"@babel/preset-env": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz",
"integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==",
"version": "7.11.5",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz",
"integrity": "sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==",
"requires": {
"@babel/compat-data": "^7.11.0",
"@babel/helper-compilation-targets": "^7.10.4",
@ -947,7 +951,7 @@
"@babel/plugin-transform-unicode-escapes": "^7.10.4",
"@babel/plugin-transform-unicode-regex": "^7.10.4",
"@babel/preset-modules": "^0.1.3",
"@babel/types": "^7.11.0",
"@babel/types": "^7.11.5",
"browserslist": "^4.12.0",
"core-js-compat": "^3.6.2",
"invariant": "^2.2.2",
@ -956,9 +960,9 @@
},
"dependencies": {
"@babel/types": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
"integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
"version": "7.11.5",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
"integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==",
"requires": {
"@babel/helper-validator-identifier": "^7.10.4",
"lodash": "^4.17.19",
@ -968,9 +972,9 @@
}
},
"@babel/preset-modules": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
"integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
"integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
@ -980,9 +984,9 @@
}
},
"@babel/register": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz",
"integrity": "sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==",
"version": "7.11.5",
"resolved": "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz",
"integrity": "sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==",
"requires": {
"find-cache-dir": "^2.0.0",
"lodash": "^4.17.19",
@ -992,9 +996,9 @@
}
},
"@babel/runtime": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz",
"integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==",
"version": "7.11.2",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz",
"integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
@ -1154,9 +1158,9 @@
}
},
"@sindresorhus/is": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.0.tgz",
"integrity": "sha512-n4J+zu52VdY43kdi/XdI9DzuMr1Mur8zFL5ZRG2opCans9aiFwkPxHYFEb5Xgy7n1Z4K6WfI4FpqUqsh3E8BPQ=="
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz",
"integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ=="
},
"@sinonjs/commons": {
"version": "1.8.1",
@ -1399,9 +1403,9 @@
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
},
"@types/mongodb": {
"version": "3.5.25",
"resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.5.25.tgz",
"integrity": "sha512-2H/Owt+pHCl9YmBOYnXc3VdnxejJEjVdH+QCWL5ZAfPehEn3evygKBX3/vKRv7aTwfNbUd0E5vjJdQklH/9a6w==",
"version": "3.5.27",
"resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.5.27.tgz",
"integrity": "sha512-1jxKDgdfJEOO9zp+lv43p8jOqRs02xPrdUTzAZIVK9tVEySfCEmktL2jEu9A3wOBEOs18yKzpVIKUh8b8ALk3w==",
"dev": true,
"requires": {
"@types/bson": "*",
@ -3003,14 +3007,14 @@
"dev": true
},
"browserslist": {
"version": "4.13.0",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz",
"integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==",
"version": "4.14.1",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.1.tgz",
"integrity": "sha512-zyBTIHydW37pnb63c7fHFXUG6EcqWOqoMdDx6cdyaDFriZ20EoVxcE95S54N+heRqY8m8IUgB5zYta/gCwSaaA==",
"requires": {
"caniuse-lite": "^1.0.30001093",
"electron-to-chromium": "^1.3.488",
"escalade": "^3.0.1",
"node-releases": "^1.1.58"
"caniuse-lite": "^1.0.30001124",
"electron-to-chromium": "^1.3.562",
"escalade": "^3.0.2",
"node-releases": "^1.1.60"
}
},
"bson": {
@ -3163,9 +3167,9 @@
"integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs="
},
"caniuse-lite": {
"version": "1.0.30001109",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz",
"integrity": "sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ=="
"version": "1.0.30001124",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001124.tgz",
"integrity": "sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA=="
},
"caseless": {
"version": "0.12.0",
@ -4624,9 +4628,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": {
"version": "1.3.516",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.516.tgz",
"integrity": "sha512-WDM5AAQdOrvLqSX8g3Zd5AujBXfMxf96oeZkff0U2HF5op3tjShE+on2yay3r1UD4M9I3p0iHpAS4+yV8U8A9A=="
"version": "1.3.562",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.562.tgz",
"integrity": "sha512-WhRe6liQ2q/w1MZc8mD8INkenHivuHdrr4r5EQHNomy3NJux+incP6M6lDMd0paShP3MD0WGe5R1TWmEClf+Bg=="
},
"emitter-listener": {
"version": "1.1.2",
@ -6696,18 +6700,18 @@
}
},
"got": {
"version": "11.5.2",
"resolved": "https://registry.npmjs.org/got/-/got-11.5.2.tgz",
"integrity": "sha512-yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==",
"version": "11.6.0",
"resolved": "https://registry.npmjs.org/got/-/got-11.6.0.tgz",
"integrity": "sha512-ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA==",
"requires": {
"@sindresorhus/is": "^3.0.0",
"@sindresorhus/is": "^3.1.1",
"@szmarczak/http-timer": "^4.0.5",
"@types/cacheable-request": "^6.0.1",
"@types/responselike": "^1.0.0",
"cacheable-lookup": "^5.0.3",
"cacheable-request": "^7.0.1",
"decompress-response": "^6.0.0",
"http2-wrapper": "^1.0.0-beta.5.0",
"http2-wrapper": "^1.0.0-beta.5.2",
"lowercase-keys": "^2.0.0",
"p-cancelable": "^2.0.0",
"responselike": "^2.0.0"
@ -7056,9 +7060,9 @@
}
},
"habitica-markdown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-2.0.2.tgz",
"integrity": "sha512-GGzWuDKbFBMI+GqmQnSPUD5Zi/WPZDDuC2dC2La6uvu1zVNW7uHyQG0lxwCO43t5EdYXtOoOPin1rhhLdTuZfA==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-3.0.0.tgz",
"integrity": "sha512-rw1LJ5Vsjx8sfjNa4e2wFuZf5eqqyb5/kfZXPxqfMMgJCCgIhWStDqY3nIclnpGWpemlKd+qbdh2rLiLgm9kng==",
"requires": {
"habitica-markdown-emoji": "1.2.4",
"markdown-it": "10.0.0",
@ -7422,9 +7426,9 @@
}
},
"image-size": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz",
"integrity": "sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==",
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.9.1.tgz",
"integrity": "sha512-yBo6xGGjiWtApYroCGR9wTvaIgande5vmAfTYIld5ss5kN4tyDG5lrW1qGomOXgB05ss7GLXLpDYXEiFqSqkzg==",
"requires": {
"queue": "6.0.1"
}
@ -9364,9 +9368,9 @@
}
},
"mongodb": {
"version": "3.5.9",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.9.tgz",
"integrity": "sha512-vXHBY1CsGYcEPoVWhwgxIBeWqP3dSu9RuRDsoLRPTITrcrgm1f0Ubu1xqF9ozMwv53agmEiZm0YGo+7WL3Nbug==",
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.1.tgz",
"integrity": "sha512-uH76Zzr5wPptnjEKJRQnwTsomtFOU/kQEU8a9hKHr2M7y9qVk7Q4Pkv0EQVp88742z9+RwvsdTw6dRjDZCNu1g==",
"dev": true,
"requires": {
"bl": "^2.2.0",
@ -9378,9 +9382,9 @@
},
"dependencies": {
"bl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
"integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
"integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
"dev": true,
"requires": {
"readable-stream": "^2.3.5",
@ -9451,13 +9455,13 @@
}
},
"mongoose": {
"version": "5.10.2",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.10.2.tgz",
"integrity": "sha512-VO5eZawEMFh2gx9XPg9ZafzFg5eIVs4R7PW6kK1MFqBq34YD7GomkalYWVt02HctvTPDI1mkXsm52LXNZR1NxA==",
"version": "5.10.3",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.10.3.tgz",
"integrity": "sha512-FLemltuzcsCHlFpEZ3bYOiNhJfHful+GoS+3uRgdEWGlY0HKfOjm9xsISM/tql8vRvhjr7qveuRfoBBGO3xNtw==",
"requires": {
"bson": "^1.1.4",
"kareem": "2.3.1",
"mongodb": "3.6.0",
"mongodb": "3.6.1",
"mongoose-legacy-pluralize": "1.0.2",
"mpath": "0.7.0",
"mquery": "3.2.2",
@ -9478,9 +9482,9 @@
}
},
"mongodb": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.0.tgz",
"integrity": "sha512-/XWWub1mHZVoqEsUppE0GV7u9kanLvHxho6EvBxQbShXTKYF9trhZC2NzbulRGeG7xMJHD8IOWRcdKx5LPjAjQ==",
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.1.tgz",
"integrity": "sha512-uH76Zzr5wPptnjEKJRQnwTsomtFOU/kQEU8a9hKHr2M7y9qVk7Q4Pkv0EQVp88742z9+RwvsdTw6dRjDZCNu1g==",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
@ -9539,9 +9543,9 @@
"integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
},
"monk": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/monk/-/monk-7.3.1.tgz",
"integrity": "sha512-09+K52A7vfdH7ZxyZyXS6E5C3LUMxXvd8ZLAYLJclXVbqxb6dsmA1ArIWGblhGFEgYOaTI9MOfWO3uE4b5IQkA==",
"version": "7.3.2",
"resolved": "https://registry.npmjs.org/monk/-/monk-7.3.2.tgz",
"integrity": "sha512-rf44p/l4HRDnrQXWci9SOz5uFAEQsHERVmE0tgya8OjOwqzeztE1sIcZ7JdxqpVk0Y1QyzApZWyBFWfvFB6sfQ==",
"dev": true,
"requires": {
"@types/mongodb": "^3.5.25",

View file

@ -4,9 +4,9 @@
"version": "4.156.1",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.11.4",
"@babel/preset-env": "^7.11.0",
"@babel/register": "^7.10.3",
"@babel/core": "^7.11.6",
"@babel/preset-env": "^7.11.5",
"@babel/register": "^7.11.5",
"@google-cloud/trace-agent": "^5.1.0",
"@slack/client": "^4.12.0",
"accepts": "^1.3.5",
@ -30,15 +30,15 @@
"express-basic-auth": "^1.1.5",
"express-validator": "^5.2.0",
"glob": "^7.1.6",
"got": "^11.5.2",
"got": "^11.6.0",
"gulp": "^4.0.0",
"gulp-babel": "^8.0.0",
"gulp-imagemin": "^7.1.0",
"gulp-nodemon": "^2.5.0",
"gulp.spritesmith": "^6.9.0",
"habitica-markdown": "^2.0.2",
"habitica-markdown": "^3.0.0",
"helmet": "^3.23.3",
"image-size": "^0.8.3",
"image-size": "^0.9.1",
"in-app-purchase": "^1.11.3",
"js2xmlparser": "^4.0.1",
"jsonwebtoken": "^8.5.1",
@ -48,7 +48,7 @@
"method-override": "^3.0.0",
"moment": "^2.27.0",
"moment-recur": "^1.0.7",
"mongoose": "^5.10.2",
"mongoose": "^5.10.3",
"morgan": "^1.10.0",
"nconf": "^0.10.0",
"node-gcm": "^1.0.3",
@ -118,7 +118,7 @@
"expect.js": "^0.3.1",
"istanbul": "^1.1.0-alpha.1",
"mocha": "^5.1.1",
"monk": "^7.3.1",
"monk": "^7.3.2",
"require-again": "^2.0.0",
"run-rs": "^0.6.2",
"sinon": "^9.0.3",

View file

@ -6,8 +6,8 @@ import {
describe('GET challenges/user', () => {
context('no official challenges', () => {
let user; let member; let nonMember; let challenge; let challenge2; let
publicGuild;
let user; let member; let nonMember; let challenge; let challenge2;
let publicGuild; let userData; let groupData;
before(async () => {
const { group, groupLeader, members } = await createAndPopulateGroup({
@ -19,225 +19,197 @@ describe('GET challenges/user', () => {
members: 1,
});
user = groupLeader;
publicGuild = group;
groupData = {
_id: publicGuild._id,
categories: [],
id: publicGuild._id,
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
summary: publicGuild.name,
leader: publicGuild.leader._id,
};
user = groupLeader;
userData = {
_id: publicGuild.leader._id,
id: publicGuild.leader._id,
profile: { name: user.profile.name },
auth: {
local: {
username: user.auth.local.username,
},
},
flags: {
verifiedUsername: true,
},
};
member = members[0]; // eslint-disable-line prefer-destructuring
nonMember = await generateUser();
challenge = await generateChallenge(user, group);
await user.post(`/challenges/${challenge._id}/join`);
challenge2 = await generateChallenge(user, group);
await user.post(`/challenges/${challenge2._id}/join`);
});
it('should return challenges user has joined', async () => {
await nonMember.post(`/challenges/${challenge._id}/join`);
});
context('all challenges', () => {
it('should return challenges user has joined', async () => {
const challenges = await nonMember.get('/challenges/user');
const challenges = await nonMember.get('/challenges/user');
const foundChallenge = _.find(challenges, { _id: challenge._id });
expect(foundChallenge).to.exist;
expect(foundChallenge.leader).to.eql(userData);
expect(foundChallenge.group).to.eql(groupData);
});
const foundChallenge = _.find(challenges, { _id: challenge._id });
expect(foundChallenge).to.exist;
expect(foundChallenge.leader).to.eql({
_id: publicGuild.leader._id,
id: publicGuild.leader._id,
profile: { name: user.profile.name },
auth: {
local: {
username: user.auth.local.username,
it('should not return challenges a non-member has not joined', async () => {
const challenges = await nonMember.get('/challenges/user');
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.not.exist;
});
it('should return challenges user has created', async () => {
const challenges = await user.get('/challenges/user');
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.exist;
expect(foundChallenge1.leader).to.eql(userData);
expect(foundChallenge1.group).to.eql(groupData);
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.exist;
expect(foundChallenge2.leader).to.eql(userData);
expect(foundChallenge2.group).to.eql(groupData);
});
it('should return challenges in user\'s group', async () => {
const challenges = await member.get('/challenges/user');
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.exist;
expect(foundChallenge1.leader).to.eql(userData);
expect(foundChallenge1.group).to.eql(groupData);
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.exist;
expect(foundChallenge2.leader).to.eql(userData);
expect(foundChallenge2.group).to.eql(groupData);
});
it('should return newest challenges first', async () => {
let challenges = await user.get('/challenges/user');
let foundChallengeIndex = _.findIndex(challenges, { _id: challenge2._id });
expect(foundChallengeIndex).to.eql(0);
const newChallenge = await generateChallenge(user, publicGuild);
await user.post(`/challenges/${newChallenge._id}/join`);
challenges = await user.get('/challenges/user');
foundChallengeIndex = _.findIndex(challenges, { _id: newChallenge._id });
expect(foundChallengeIndex).to.eql(0);
});
it('should not return challenges user doesn\'t have access to', async () => {
const { group, groupLeader } = await createAndPopulateGroup({
groupDetails: {
name: 'TestPrivateGuild',
summary: 'summary for TestPrivateGuild',
type: 'guild',
privacy: 'private',
},
},
flags: {
verifiedUsername: true,
},
});
expect(foundChallenge.group).to.eql({
_id: publicGuild._id,
categories: [],
id: publicGuild._id,
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
summary: publicGuild.name,
leader: publicGuild.leader._id,
});
});
});
it('should return challenges user has created', async () => {
const challenges = await user.get('/challenges/user');
const privateChallenge = await generateChallenge(groupLeader, group);
await groupLeader.post(`/challenges/${privateChallenge._id}/join`);
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.exist;
expect(foundChallenge1.leader).to.eql({
_id: publicGuild.leader._id,
id: publicGuild.leader._id,
profile: { name: user.profile.name },
auth: {
local: {
username: user.auth.local.username,
const challenges = await nonMember.get('/challenges/user');
const foundChallenge = _.find(challenges, { _id: privateChallenge._id });
expect(foundChallenge).to.not.exist;
});
it('should not return challenges user doesn\'t have access to, even with query parameters', async () => {
const { group, groupLeader } = await createAndPopulateGroup({
groupDetails: {
name: 'TestPrivateGuild',
summary: 'summary for TestPrivateGuild',
type: 'guild',
privacy: 'private',
},
},
flags: {
verifiedUsername: true,
},
});
expect(foundChallenge1.group).to.eql({
_id: publicGuild._id,
categories: [],
id: publicGuild._id,
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
summary: publicGuild.name,
leader: publicGuild.leader._id,
});
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.exist;
expect(foundChallenge2.leader).to.eql({
_id: publicGuild.leader._id,
id: publicGuild.leader._id,
profile: { name: user.profile.name },
auth: {
local: {
username: user.auth.local.username,
},
},
flags: {
verifiedUsername: true,
},
});
expect(foundChallenge2.group).to.eql({
_id: publicGuild._id,
categories: [],
id: publicGuild._id,
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
summary: publicGuild.name,
leader: publicGuild.leader._id,
});
const privateChallenge = await generateChallenge(groupLeader, group, {
categories: [{
name: 'academics',
slug: 'academics',
}],
});
await groupLeader.post(`/challenges/${privateChallenge._id}/join`);
const challenges = await nonMember.get('/challenges/user?categories=academics&owned=not_owned');
const foundChallenge = _.find(challenges, { _id: privateChallenge._id });
expect(foundChallenge).to.not.exist;
});
});
it('should return challenges in user\'s group', async () => {
const challenges = await member.get('/challenges/user');
context('my challenges', () => {
it('should return challenges user has joined', async () => {
const challenges = await nonMember.get(`/challenges/user?member=${true}`);
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.exist;
expect(foundChallenge1.leader).to.eql({
_id: publicGuild.leader._id,
id: publicGuild.leader._id,
profile: { name: user.profile.name },
auth: {
local: {
username: user.auth.local.username,
},
},
flags: {
verifiedUsername: true,
},
});
expect(foundChallenge1.group).to.eql({
_id: publicGuild._id,
categories: [],
id: publicGuild._id,
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
summary: publicGuild.name,
leader: publicGuild.leader._id,
});
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.exist;
expect(foundChallenge2.leader).to.eql({
_id: publicGuild.leader._id,
id: publicGuild.leader._id,
profile: { name: user.profile.name },
auth: {
local: {
username: user.auth.local.username,
},
},
flags: {
verifiedUsername: true,
},
});
expect(foundChallenge2.group).to.eql({
_id: publicGuild._id,
categories: [],
id: publicGuild._id,
type: publicGuild.type,
privacy: publicGuild.privacy,
name: publicGuild.name,
summary: publicGuild.name,
leader: publicGuild.leader._id,
});
});
it('should not return challenges in user groups if we send member true param', async () => {
const challenges = await member.get(`/challenges/user?member=${true}`);
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.not.exist;
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.not.exist;
});
it('should return newest challenges first', async () => {
let challenges = await user.get('/challenges/user');
let foundChallengeIndex = _.findIndex(challenges, { _id: challenge2._id });
expect(foundChallengeIndex).to.eql(0);
const newChallenge = await generateChallenge(user, publicGuild);
await user.post(`/challenges/${newChallenge._id}/join`);
challenges = await user.get('/challenges/user');
foundChallengeIndex = _.findIndex(challenges, { _id: newChallenge._id });
expect(foundChallengeIndex).to.eql(0);
});
it('should not return challenges user doesn\'t have access to', async () => {
const { group, groupLeader } = await createAndPopulateGroup({
groupDetails: {
name: 'TestPrivateGuild',
summary: 'summary for TestPrivateGuild',
type: 'guild',
privacy: 'private',
},
const foundChallenge = _.find(challenges, { _id: challenge._id });
expect(foundChallenge).to.exist;
expect(foundChallenge.leader).to.eql(userData);
expect(foundChallenge.group).to.eql(groupData);
});
const privateChallenge = await generateChallenge(groupLeader, group);
await groupLeader.post(`/challenges/${privateChallenge._id}/join`);
it('should return challenges user has created', async () => {
const challenges = await user.get(`/challenges/user?member=${true}`);
const challenges = await nonMember.get('/challenges/user');
const foundChallenge = _.find(challenges, { _id: privateChallenge._id });
expect(foundChallenge).to.not.exist;
});
it('should not return challenges user doesn\'t have access to, even with query parameters', async () => {
const { group, groupLeader } = await createAndPopulateGroup({
groupDetails: {
name: 'TestPrivateGuild',
summary: 'summary for TestPrivateGuild',
type: 'guild',
privacy: 'private',
},
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.exist;
expect(foundChallenge1.leader).to.eql(userData);
expect(foundChallenge1.group).to.eql(groupData);
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.exist;
expect(foundChallenge2.leader).to.eql(userData);
expect(foundChallenge2.group).to.eql(groupData);
});
const privateChallenge = await generateChallenge(groupLeader, group, {
categories: [{
name: 'academics',
slug: 'academics',
}],
it('should return challenges user has created if filter by owned', async () => {
const challenges = await user.get(`/challenges/user?member=${true}&owned=owned`);
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.exist;
expect(foundChallenge1.leader).to.eql(userData);
expect(foundChallenge1.group).to.eql(groupData);
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.exist;
expect(foundChallenge2.leader).to.eql(userData);
expect(foundChallenge2.group).to.eql(groupData);
});
await groupLeader.post(`/challenges/${privateChallenge._id}/join`);
const challenges = await nonMember.get('/challenges/user?categories=academics&owned=not_owned');
it('should not return challenges user has created if filter by not owned', async () => {
const challenges = await user.get(`/challenges/user?owned=not_owned&member=${true}`);
const foundChallenge = _.find(challenges, { _id: privateChallenge._id });
expect(foundChallenge).to.not.exist;
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.not.exist;
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.not.exist;
});
it('should not return challenges in user groups', async () => {
const challenges = await member.get(`/challenges/user?member=${true}`);
const foundChallenge1 = _.find(challenges, { _id: challenge._id });
expect(foundChallenge1).to.not.exist;
const foundChallenge2 = _.find(challenges, { _id: challenge2._id });
expect(foundChallenge2).to.not.exist;
});
});
});

View file

@ -4922,7 +4922,6 @@
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.1.tgz",
"integrity": "sha512-+mN04Oszdz9tGjUP/c1ReVwJXxSniLd7lF++sv+8dkABxVNthg6uccei+4ssKxRHGoMmPxdn7uBdJWONSJGTGQ==",
"optional": true,
"requires": {
"@types/webpack": "*"
}
@ -6703,7 +6702,6 @@
"version": "npm:vue-loader@16.0.0-beta.5",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.0.0-beta.5.tgz",
"integrity": "sha512-ciWfzNefqWlmzKznCWY9hl+fPP4KlQ0A9MtHbJ/8DpyY+dAM8gDrjufIdxwTgC4szE4EZC3A6ip/BbrqM84GqA==",
"optional": true,
"requires": {
"@types/mini-css-extract-plugin": "^0.9.1",
"chalk": "^3.0.0",
@ -6717,7 +6715,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
"integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@ -6726,14 +6723,12 @@
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"optional": true
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"supports-color": {
"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"
}
@ -9645,6 +9640,14 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
},
"serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"requires": {
"randombytes": "^2.1.0"
}
},
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@ -12825,9 +12828,9 @@
}
},
"habitica-markdown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-2.0.2.tgz",
"integrity": "sha512-GGzWuDKbFBMI+GqmQnSPUD5Zi/WPZDDuC2dC2La6uvu1zVNW7uHyQG0lxwCO43t5EdYXtOoOPin1rhhLdTuZfA==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-3.0.0.tgz",
"integrity": "sha512-rw1LJ5Vsjx8sfjNa4e2wFuZf5eqqyb5/kfZXPxqfMMgJCCgIhWStDqY3nIclnpGWpemlKd+qbdh2rLiLgm9kng==",
"requires": {
"habitica-markdown-emoji": "1.2.4",
"markdown-it": "10.0.0",
@ -18639,9 +18642,9 @@
}
},
"serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz",
"integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==",
"requires": {
"randombytes": "^2.1.0"
}
@ -20393,11 +20396,6 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
},
"serialize-javascript": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz",
"integrity": "sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw=="
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@ -21338,14 +21336,6 @@
"minimist": "^1.2.5"
}
},
"serialize-javascript": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz",
"integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==",
"requires": {
"randombytes": "^2.1.0"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",

View file

@ -36,7 +36,7 @@
"eslint-config-habitrpg": "^6.2.0",
"eslint-plugin-mocha": "^5.3.0",
"eslint-plugin-vue": "^6.2.2",
"habitica-markdown": "^2.0.2",
"habitica-markdown": "^3.0.0",
"hellojs": "^1.18.4",
"inspectpack": "^4.5.2",
"intro.js": "^2.9.3",

View file

@ -202,6 +202,8 @@ $bg-disabled-control: #34303a;
}
.custom-control-input {
opacity: 0;
&:checked~.custom-control-label::before {
background-color: $purple-400;
border-color: $purple-400;

View file

@ -37,3 +37,4 @@
@import './tiers';
@import './payments';
@import './spacing';
@import './modal';

View file

@ -0,0 +1,9 @@
@mixin centeredModal() {
display: flex;
justify-content: center;
flex-direction: column;
header, footer {
border: 0;
}
}

View file

@ -1,16 +1,5 @@
@import '~@/assets/scss/colors.scss';
@mixin centeredModal() {
display: flex;
justify-content: center;
flex-direction: column;
header, footer {
border: 0;
}
}
.modal {
z-index: 1350;
padding-left: 0px !important;

View file

@ -45,7 +45,7 @@
</template>
<style lang="scss">
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
#generic-achievement {
@include centeredModal();

View file

@ -71,7 +71,7 @@
<style lang="scss">
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
#equipgear-modal {
@include centeredModal();

View file

@ -46,7 +46,8 @@
</template>
<style lang="scss">
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
@import '~@/assets/scss/colors.scss';
#hatchedPet-modal {
@include centeredModal();

View file

@ -46,7 +46,7 @@
</template>
<style lang="scss">
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
#hatching-modal {
@include centeredModal();

View file

@ -330,7 +330,7 @@
<style lang="scss">
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
.standard-page .clearfix .float-right {
margin-right: 24px;

View file

@ -38,7 +38,7 @@
<style lang="scss" scoped>
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
#mount-raised-modal {
@include centeredModal();

View file

@ -24,7 +24,7 @@
</template>
<style lang="scss" scoped>
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
#welcome-modal {
@include centeredModal();

View file

@ -67,7 +67,7 @@
</template>
<style lang="scss">
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
#select-user-modal {
@include centeredModal();

View file

@ -192,7 +192,7 @@
<style lang="scss">
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
#buy-modal {
@include centeredModal();

View file

@ -83,9 +83,8 @@
</b-modal>
</template>
<style lang="scss">
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/mixins.scss';
#sell-modal {
@include centeredModal();

View file

@ -111,7 +111,7 @@
<style lang="scss">
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/modal.scss';
@import '~@/assets/scss/mixins.scss';
#buy-quest-modal {
@include centeredModal();

View file

@ -21,7 +21,10 @@
>
{{ badgeCount }}
</div>
<div class="filters d-flex justify-content-end">
<div
v-if="typeFilters.length > 1"
class="filters d-flex justify-content-end"
>
<div
v-for="filter in typeFilters"
:key="filter"
@ -353,6 +356,7 @@ import {
getTypeLabel,
getFilterLabels,
getActiveFilter,
sortAndFilterTasks,
} from '@/libs/store/helpers/filterTasks';
import habitIcon from '@/assets/svg/habit.svg';
@ -433,7 +437,7 @@ export default {
type: this.type,
filterType: this.activeFilter.label,
})
: this.filterByLabel(this.taskListOverride, this.activeFilter.label);
: this.filterByLabel(this.taskListOverride, this.type, this.activeFilter.label);
const taggedList = this.filterByTagList(filteredTaskList, this.selectedTags);
const searchedList = this.filterBySearchText(taggedList, this.searchText);
@ -500,7 +504,7 @@ export default {
// Set Task Column Label
this.typeLabel = getTypeLabel(this.type);
// Get Category Filter Labels
this.typeFilters = getFilterLabels(this.type);
this.typeFilters = getFilterLabels(this.type, this.challenge);
// Set default filter for task column
this.activateFilter(this.type);
},
@ -604,7 +608,7 @@ export default {
const tasks = text.split('\n').reverse().filter(taskText => (!!taskText)).map(taskText => {
const task = taskDefaults({ type: this.type, text: taskText }, this.user);
task.tags = this.selectedTags;
task.tags = this.selectedTags.slice();
return task;
});
@ -637,7 +641,7 @@ export default {
filter = 'due'; // eslint-disable-line no-param-reassign
}
this.activeFilter = getActiveFilter(type, filter);
this.activeFilter = getActiveFilter(type, filter, this.challenge);
},
setColumnBackgroundVisibility () {
this.$nextTick(() => {
@ -665,14 +669,10 @@ export default {
}
});
},
filterByLabel (taskList, filter) {
filterByLabel (taskList, type, filter) {
if (!taskList) return [];
return taskList.filter(task => {
if (filter === 'complete2') return task.completed;
if (filter === 'due') return task.isDue;
if (filter === 'notDue') return !task.isDue;
return !task.completed;
});
const selectedFilter = getActiveFilter(type, filter, this.challenge);
return sortAndFilterTasks(taskList, selectedFilter);
},
filterByTagList (taskList, tagList = []) {
let filteredTaskList = taskList;

View file

@ -549,7 +549,7 @@ export default {
createTask (type) {
this.openCreateBtn = false;
this.creatingTask = taskDefaults({ type, text: '' }, this.user);
this.creatingTask.tags = this.selectedTags;
this.creatingTask.tags = this.selectedTags.slice();
// Necessary otherwise the first time the modal is not rendered
Vue.nextTick(() => {

View file

@ -1,9 +1,9 @@
<template>
<datepicker
v-model="value"
:calendarButton="true"
:calendarButtonIconContent="icons.calendar"
:bootstrapStyling="true"
:calendar-button="true"
:calendar-button-icon-content="icons.calendar"
:bootstrap-styling="true"
:clear-button="false"
:today-button="false"
:disabled-picker="disabled"

View file

@ -1,4 +1,4 @@
import { shouldDo } from '@/../../common/script/cron';
import sortBy from 'lodash/sortBy';
// Task filter data
// @TODO find a way to include user preferences w.r.t sort and defaults
@ -15,8 +15,8 @@ const taskFilters = {
label: 'dailies',
filters: [
{ label: 'all', filterFn: () => true, default: true },
{ label: 'due', filterFn: userPrefs => t => !t.completed && shouldDo(new Date(), t, userPrefs) },
{ label: 'notDue', filterFn: userPrefs => t => t.completed || !shouldDo(new Date(), t, userPrefs) },
{ label: 'due', filterFn: t => !t.completed && t.isDue },
{ label: 'notDue', filterFn: t => t.completed || !t.isDue },
],
},
todo: {
@ -37,6 +37,34 @@ const taskFilters = {
},
};
const challengeFilters = {
habit: {
label: 'habits',
filters: [
{ label: 'all', filterFn: () => true, default: true },
],
},
daily: {
label: 'dailies',
filters: [
{ label: 'all', filterFn: () => true, default: true },
],
},
todo: {
label: 'todos',
filters: [
{ label: 'all', filterFn: () => true, default: true }, // active
{ label: 'scheduled', filterFn: t => t.date, sort: t => t.date },
],
},
reward: {
label: 'rewards',
filters: [
{ label: 'all', filterFn: () => true, default: true },
],
},
};
function typeLabel (filterList) {
return type => filterList[type].label;
}
@ -53,7 +81,12 @@ function filterLabel (filterList) {
};
}
export const getFilterLabels = filterLabel(taskFilters);
export function getFilterLabels (type, isChallenge) {
if (isChallenge) {
return filterLabel(challengeFilters)(type);
}
return filterLabel(taskFilters)(type);
}
function activeFilter (filterList) {
return (type, filterType = '') => {
@ -65,4 +98,17 @@ function activeFilter (filterList) {
};
}
export const getActiveFilter = activeFilter(taskFilters);
export function getActiveFilter (type, filterType, isChallenge) {
if (isChallenge) {
return activeFilter(challengeFilters)(type, filterType);
}
return activeFilter(taskFilters)(type, filterType);
}
export function sortAndFilterTasks (tasks, selectedFilter) {
let sortedTasks = tasks.filter(selectedFilter.filterFn);
if (selectedFilter.sort) {
sortedTasks = sortBy(sortedTasks, selectedFilter.sort);
}
return sortedTasks;
}

View file

@ -1,4 +1,5 @@
import axios from 'axios';
import Vue from 'vue';
import compact from 'lodash/compact';
import omit from 'lodash/omit';
import { loadAsyncResource } from '@/libs/asyncResource';
@ -103,8 +104,11 @@ export async function create (store, createdTask) {
const data = Array.isArray(response.data.data) ? response.data.data : [response.data.data];
data.forEach(taskRes => {
const taskData = store.state.tasks.data[`${taskRes.type}s`].find(t => t._id === taskRes._id);
Object.assign(taskData, taskRes);
const tasksArr = store.state.tasks.data[`${taskRes.type}s`];
const taskDataIndex = tasksArr.findIndex(t => t._id === taskRes._id);
if (taskDataIndex !== -1) {
Vue.set(tasksArr, taskDataIndex, { ...tasksArr[taskDataIndex], ...taskRes });
}
});
}

View file

@ -1,9 +1,8 @@
import sortBy from 'lodash/sortBy';
import { shouldDo } from '@/../../common/script/cron';
// Library / Utility function
import { orderSingleTypeTasks } from '@/libs/store/helpers/orderTasks';
import { getActiveFilter } from '@/libs/store/helpers/filterTasks';
import { getActiveFilter, sortAndFilterTasks } from '@/libs/store/helpers/filterTasks';
// Return all the tags belonging to an user task
@ -232,30 +231,14 @@ export function getFilteredTaskList ({ state, getters }) {
// check if task list has been passed as override props
// assumption: type will always be passed as param
let requestedTasks = getters['tasks:getUnfilteredTaskList'](type);
const userPreferences = state.user.data.preferences;
const selectedFilter = getActiveFilter(type, filterType);
const taskOrderForType = state.user.data.tasksOrder[type];
// order tasks based on user set task order
// Still needs unit test for this..
if (requestedTasks.length > 0 && ['scheduled', 'due'].indexOf(filterType.label) === -1) {
if (requestedTasks.length > 0 && !selectedFilter.sort) {
requestedTasks = orderSingleTypeTasks(requestedTasks, taskOrderForType);
}
let selectedFilter = getActiveFilter(type, filterType);
// Pass user preferences to the filter function which uses currying
if (type === 'daily' && (filterType === 'due' || filterType === 'notDue')) {
selectedFilter = {
...selectedFilter,
filterFn: selectedFilter.filterFn(userPreferences),
};
}
requestedTasks = requestedTasks.filter(selectedFilter.filterFn);
if (selectedFilter.sort) {
requestedTasks = sortBy(requestedTasks, selectedFilter.sort);
}
return requestedTasks;
return sortAndFilterTasks(requestedTasks, selectedFilter);
};
}

View file

@ -0,0 +1,65 @@
import { shallowMount, createLocalVue } from '@vue/test-utils';
import User from '@/components/tasks/user.vue';
import Store from '@/libs/store';
const localVue = createLocalVue();
localVue.use(Store);
describe('Tasks User', () => {
describe('Computed Properties', () => {
it('should render a challenge tag under challenge header in tag filter popup when the challenge is active', () => {
const activeChallengeTag = {
id: '1',
name: 'Challenge1',
challenge: true,
};
const state = {
user: {
data: {
tags: [activeChallengeTag],
},
},
};
const getters = {};
const store = new Store({ state, getters });
const wrapper = shallowMount(User, {
store,
localVue,
});
const computedTagsByType = wrapper.vm.tagsByType;
expect(computedTagsByType.challenges.tags.length).to.equal(1);
expect(computedTagsByType.challenges.tags[0].id).to.equal(activeChallengeTag.id);
expect(computedTagsByType.challenges.tags[0].name).to.equal(activeChallengeTag.name);
});
it('should render a challenge tag under normal tag header in tag filter popup when the challenge is no longer active', () => {
const inactiveChallengeTag = {
id: '1',
name: 'Challenge1',
challenge: false,
};
const state = {
user: {
data: {
tags: [inactiveChallengeTag],
},
},
};
const getters = {};
const store = new Store({ state, getters });
const wrapper = shallowMount(User, {
store,
localVue,
});
const computedTagsByType = wrapper.vm.tagsByType;
expect(computedTagsByType.challenges.tags.length).to.equal(0);
expect(computedTagsByType.user.tags.length).to.equal(1);
expect(computedTagsByType.user.tags[0].id).to.equal(inactiveChallengeTag.id);
expect(computedTagsByType.user.tags[0].name).to.equal(inactiveChallengeTag.name);
});
});
});

View file

@ -1925,5 +1925,12 @@
"armorArmoireHeroicHerbalistRobeNotes": "Vždy voní příjemně po rozmanitých bylinkách. Zvyšuje obranu a inteligenci o <%= attrs %>. Začarovaná truhla: sada odvážného bylinkáře (předmět 1 ze 3).",
"armorSpecialFall2019RogueNotes": "Tento outfit je zakončen bílými rukavicemi a je ideální na plánování ve tvé soukromé lóži nebo na překvapivé výstupy po schodišti. Zvyšuje vnímání o <%= per %>. Limitovaná edice 2019 podzimní výzbroj.",
"armorSpecialSummer2019HealerNotes": "Pluj pohodlně skrze pobřežní vody s tímto elegantním ocasem. Zvyšuje obranu o <%= con %>. Limitovaná edice 2019 letní výzbroj.",
"armorSpecialKS2019Notes": "Září zevnitř jako ušlechtilé srdce gryfona, toto skvělé brnění tě nadchne a budeš se moci chlubit svými úspěchy. Zvyšuje obranu o <%= con %>."
"armorSpecialKS2019Notes": "Září zevnitř jako ušlechtilé srdce gryfona, toto skvělé brnění tě nadchne a budeš se moci chlubit svými úspěchy. Zvyšuje obranu o <%= con %>.",
"armorMystery202007Notes": "Plav, skákej, potápěj se a závoď s tímto nádherným a silným ocasem! Nepřináší žádné výhody. Červenec 2020 předmět pro předplatitele.",
"armorMystery202007Text": "Neuvěřitelný velrybí kostým",
"armorMystery202006Text": "Pestrobarevné ocasy mořských pannen",
"armorMystery201910Notes": "Toto tajuplné brnění tě ochrání před viditelnými i neviditelnými děsy. Nepřináší žádné výhody. Říjen 2019 předmět pro předplatitele.",
"armorMystery201910Text": "Tajemné brnění",
"armorMystery201906Text": "Ocas ryby koi",
"armorMystery201906Notes": "Ušetříme tě hlášek o leklé rybě. O počkej, ups. Nepřináší žádné výhody. Červen 2019 předmět pro předplatitele."
}

View file

@ -90,5 +90,6 @@
"achievementGoodAsGoldModalText": "Du hast alle goldenen Haustiere eingesammelt!",
"achievementAllThatGlittersText": "Hat alle goldenen Reittiere gezähmt.",
"achievementAllThatGlitters": "Alles, was glänzt",
"achievementGoodAsGold": "So gut wie Gold"
"achievementGoodAsGold": "So gut wie Gold",
"yourRewards": "Deine Belohnungen"
}

View file

@ -547,5 +547,6 @@
"backgroundJungleCanopyText": "Dschungeldach",
"backgroundCampingOutNotes": "Genieße die Natur beim Zelten.",
"backgroundCampingOutText": "Zelten",
"backgrounds082020": "Set 75: Veröffentlicht im August 2020"
"backgrounds082020": "Set 75: Veröffentlicht im August 2020",
"backgroundJungleCanopyNotes": "Sonne Dich im heißen Glanz eines Dschungeldachs."
}

View file

@ -358,5 +358,6 @@
"hatchingPotionBirchBark": "Birkenborke",
"hatchingPotionDessert": "Konfekt",
"hatchingPotionFluorite": "Fluorit",
"hatchingPotionSandSculpture": "Sandskulptur"
"hatchingPotionSandSculpture": "Sandskulptur",
"hatchingPotionWindup": "Aufziehbares"
}

View file

@ -21,7 +21,7 @@
"androidFaqAnswer4": "Verschiedene Dinge können Dir Schaden zufügen. Erstens, Tagesaufgaben, die Du über Nacht unerledigt lässt, werden Dir schaden. Zweitens, eine schlechte Gewohnheit die Du anklickst, fügt Dir ebenfalls Schaden zu. Zuletzt, wenn Du mit Deiner Party in einem Bosskampf bist und eines der Partymitglieder seine Tagesaufgaben nicht erledigt hat, wird Dich der Boss angreifen. Der gewöhnliche Weg zu heilen, ist im Level aufzusteigen, was Deine komplette Gesundheit wiederherstellt. Du kannst auch mit Gold einen Heiltrank auf der Aufgabenseite unter Belohnungen erwerben. Zudem kannst Du ab Level 10 oder höher wählen, ein Heiler zu werden, wodurch Du Heilfähigkeiten erlernst. Wenn Du in einer Party mit einem Heiler bist, kann dieser Dich ebenfalls heilen.",
"webFaqAnswer4": "Verschiedene Dinge können Dir Schaden zufügen. Erstens, Tagesaufgaben, die Du über Nacht unerledigt lässt, werden Dir schaden. Zweitens, eine schlechte Gewohnheit die Du anklickst, fügt Dir ebenfalls Schaden zu. Zuletzt, wenn Du mit Deiner Party in einem Bosskampf bist und eines der Partymitglieder seine Tagesaufgaben nicht erledigt hat, wird Dich der Boss angreifen. Der gewöhnliche Weg zu heilen, ist im Level aufzusteigen, was Deine komplette Gesundheit wiederherstellt. Du kannst auch mit Gold einen Heiltrank in der Belohnungsspalte erwerben. Zudem kannst Du ab Level 10 oder höher wählen, ein Heiler zu werden, wodurch Du Heilfähigkeiten erlernst. Auch andere Heiler, die mit Dir in einer Party sind können Dich heilen. Erfahre mehr, indem Du \"Party\" im Navigationsbalken klickst.",
"faqQuestion5": "Wie spiele ich Habitica mit meinen Freunden?",
"iosFaqAnswer5": "Am Besten lädst Du sie in eine Party mit Dir ein! Partys können zusammen Quests bestreiten, Monster bekämpfen und sich gegenseitig mit Zaubern unterstützen. Geh auf Menü > Party und klicke auf \"Neue Party erstellen\" wenn Du noch keine Party hast. Dann klicke auf die Mitgliederliste und lade sie ein indem Du oben rechts auf einladen klickst und ihre Benutzer-ID (die aus einer langen Zahlen-, Buchstabenkombination besteht, welche sie unter Einstellungen > Konto Details bei der App und unter Einstellungen > API auf der Webseite finden können) eingibst. Außerdem kannst Du auf der Webseite Freunde auch per E-Mail einladen, was für die App auch noch folgen wird.\n\nAuf der Webseite können Du und Deine Freunde auch Gilden beitreten, welche öffentliche Chat-Räume sind. Gilden werden der App auch noch hinzugefügt werden!",
"iosFaqAnswer5": "Am Besten lädst Du sie in eine Party mit Dir ein! Partys können zusammen Quests bestreiten, Monster bekämpfen und sich gegenseitig mit Zaubern unterstützen.\n\nWenn Du Deine eigene Party starten möchtest, geh auf Menü > [Party](https://habitica.com/party) und klicke auf \"Neue Party erstellen\". Scrolle herunter und klicke auf \"Mitglieder einladen\", um Deine Freunde einzuladen indem Du ihre @Benutzernamen eingibst. Wenn Du zur Party von jemand anderem dazustoßen möchtest, gib ihnen Deinen @Benutzernamen damit sie Dich einladen können!\n\nDu und Deine Freunde können auch Gilden beitreten. Das sind öffentliche Chaträume, die Leute mit gemeinsamen Interessen zusammenbringen! Es gibt viele hilfreiche und auch spassige Gemeinschaften, probiere sie unbedingt aus.\n\nFalls du Lust auf einen Wettstreit hast, kannst Du mit Deinen Freunden eigene Herausforderungen erstellen, oder einer bestehenden beitreten. Es gibt öffentliche Herausforderungen aller Art, die eine grosse Spanne von Interessen und Zielen abdecken. Einige öffentliche Herausforderungen geben sogar Edelsteine als Gewinn, falls Du als Gewinner ausgewählt wirst.",
"androidFaqAnswer5": "Am besten lädst Du sie in eine Party mit Dir ein! Parties können zusammen Quests bestreiten, Monster bekämpfen und Fähigkeiten benutzen um einander zu unterstützen. Besuche die [Webseite](https://habitica.com/), um eine Party zu erstellen, wenn Du bisher keiner angehörst. Ihr könnt außerdem gemeinsam einer Gilde beitreten (unter Soziales > Gilden). Gilden sind Chat-Räume, deren Mitglieder gemeinsame Ziele verfolgen und können privat oder öffentlich sein. Du kannst in so vielen Gilden sein, wie Du möchtest, aber nur in einer Party.\n\nGenauere Informationen findest Du auf den Wiki-Seiten für [Parties](http://habitica.fandom.com/wiki/Party) und [Guilds](http://habitica.fandom.com/wiki/Guilds).",
"webFaqAnswer5": "Am besten lädst Du sie in eine Party mit Dir ein, indem Du im Navigationsbalken auf \"Party\" klickst! Parties können zusammen Quests bestreiten, Monster bekämpfen und Fähigkeiten benutzen um einander zu unterstützen. Ihr könnt außerdem gemeinsam einer Gilde beitreten (unter Soziales > Gilden). Gilden sind Chat-Räume, deren Mitglieder gemeinsame Ziele verfolgen und können privat oder öffentlich sein. Du kannst in so vielen Gilden sein, wie Du möchtest, aber nur in einer Party. Genauere Informationen findest Du auf den Wiki-Seiten für [Parties](http://habitica.fandom.com/wiki/Party) und [Guilds](http://habitica.fandom.com/wiki/Guilds).",
"faqQuestion6": "Woher bekomme ich Haustiere oder Reittiere?",
@ -41,12 +41,12 @@
"androidFaqAnswer9": "Zuerst musst Du eine Party gründen oder einer Party beitreten (siehe oben). Obwohl Du Monster auch alleine bekämpfen kannst, empfehlen wir in einer Party mit anderen Mitspielern zu spielen, da dies die Quests viel einfacher macht. Zusätzlich ist es sehr motivierend einen Freund zu haben, der einen anspornt seine Aufgaben zu erledigen.\n\nAls nächstes benötigst Du eine Questrolle, welche unter Menü > Gegenstände gelagert wird. Es gibt drei Möglichkeiten an Schriftrollen zu kommen: \n\n- Bei Erreichen von Level 15 erhältst Du eine Questreihe, d.h. drei zusammenhängende Quests. Weitere Questreihen werden bei den Leveln 30, 40 und 60 freigeschaltet. \n- Wenn Du Leute in Deine Party einlädst, bekommst Du als Belohnung die Basi-List-Schriftrolle!\n- Du kannst Quests im Quest Shop für Gold und Edelsteine kaufen.\n\nUm den Boss zu bekämpfen oder Gegenstände bei einer Sammelquest zu sammeln, musst Du einfach Deine Aufgaben normal erledigen und sie werden über Nacht in Schaden umgerechnet. (Möglicherweise ist es erforderlich die Seite neu zu laden, um den Effekt auf den Lebensbalken des Bosses zu sehen.) Wenn Du einen Boss bekämpfst und Tagesaufgaben nicht erledigst, wird der Boss eurer Party zur gleichen Zeit Schaden zufügen wie ihr dem Boss.\n\nAb Level 11 erhalten Magier und Krieger Fähigkeiten, welche dem Boss zusätzlichen Schaden zufügen, also sind dies ab Level 10 ausgezeichnete Klassen zu wählen, wenn Du großen Schaden anrichten willst.",
"webFaqAnswer9": "Zuerst musst Du einer Party beitreten oder sie gründen, indem Du in der Navigationsleiste auf \"Party\" klickst. Obwohl Du Monster alleine bekämpfen kannst, empfehlen wir Dir, in einer Party zu spielen, da dies die Aufgaben viel einfacher macht. Außerdem ist es sehr motivierend, einen Freund zu haben, der Dich anspornt, während Du Deine Aufgaben erledigst! Als nächstes benötigst Du eine Quest-Rolle, die unter Inventar > Quests abgelegt ist. Es gibt vier Möglichkeiten, eine Quest-Rolle zu erhalten:\n* Wenn du Leute zu Deiner Party einlädst, wirst Du mit der Basi-List-Rolle belohnt!\n* Auf Stufe 15 erhältst du eine Quest-Linie, d.h. drei verknüpfte Quests. Mehr Quest-Linien werden auf den Stufen 30, 40 und 60 freigeschaltet.\n* Du kannst Quests im Questshop (Shops > Quests) für Gold und Edelsteine kaufen.\n* Wenn Du Dich oft bei Habitica einloggst, wirst Du mit Quest-Rollen belohnt. Du erhältst eine Schriftrolle beim 1., 7., 22. und 40. Check-in.\nUm den Boss zu bekämpfen oder Gegenstände für eine Sammel-Quest zu sammeln, erledige einfach Deine Aufgaben wie gewohnt, und sie werden über Nacht zu Schaden kommen. (Das Nachladen kann erforderlich sein, um zu sehen, dass der Lebensbalken des Chefs abnimmt.) Wenn Du gegen einen Boss kämpfst und irgendwelche Tagesaufgaben verpasst hast, wird der Boss Deiner Party gleichzeitig Schaden zufügen, während Du den Boss schädigst. Nach Stufe 11 erhalten Magier und Krieger Fertigkeiten, die es ihnen ermöglichen, dem Boss zusätzlichen Schaden zuzufügen, so dass dies ausgezeichnete Klassen sind, die Du ab Stufe 10 wählen kannst, wenn Du Bossen viel Schaden zufügen möchtest.",
"faqQuestion10": "Was sind Edelsteine und wie bekomme ich welche?",
"iosFaqAnswer10": "Edelsteine können mit echtem Geld gekauft werden, indem man auf das Edelstein-Symbol oben in der Kopfzeile klickt. Wenn Leute Edelsteine kaufen, helfen sie uns, die Webseite zu unterhalten. Wir sind sehr dankbar für ihre Unterstützung!\n\nAlternativ zum direkten Kauf von Edelsteinen gibt es drei andere Möglichkeiten, Edelsteine zu erhalten:\n\n* Gewinne eine Herausforderung eines anderen Spielers. Gehe zu Soziales > Herausforderungen um an einigen teilzunehmen.\n* Kaufe ein Abo und schalte damit die Fähigkeit frei, eine bestimmte Anzahl von Edelsteinen pro Monat zu kaufen.\n* Trage mit Deinen Fähigkeiten zum Habitica Projekt bei. Für mehr Informationen sieh im Wiki nach: [An Habitica mitarbeiten](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\nBeachte, dass Gegenstände, die mit Edelsteinen gekauft werden, keine statistischen Vorteile bringen, sodass Spieler die Seite auch ohne sie benutzen können!",
"androidFaqAnswer10": "Edelsteine können mit echtem Geld gekauft werden, indem man auf das Edelstein-Symbol oben in der Kopfzeile klickt. Wenn Leute Edelsteine kaufen, helfen sie uns, die Webseite zu unterhalten. Wir sind sehr dankbar für ihre Unterstützung!\n\nAlternativ zum direkten Kauf von Edelsteinen gibt es drei andere Möglichkeiten, Edelsteine zu erhalten:\n\n* Gewinne eine Herausforderung eines anderen Spielers. Gehe zu Soziales > Herausforderungen um an einigen teilzunehmen.\n* Kaufe ein Abo und schalte damit die Fähigkeit frei, eine bestimmte Anzahl von Edelsteinen pro Monat zu kaufen.\n* Trage mit Deinen Fähigkeiten zum Habitica Projekt bei. Für mehr Informationen sieh im Wiki nach: [An Habitica mitarbeiten](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\nBeachte, dass Gegenstände, die mit Edelsteinen gekauft werden, keine statistischen Vorteile bringen, sodass Spieler die Seite auch ohne sie benutzen können!",
"iosFaqAnswer10": "Edelsteine können mit echtem Geld gekauft werden unter Menü > Kaufe Edelsteine. Wenn Du Edelsteine kaufst, hilfst Du uns, Habitica zu unterhalten. Wir sind sehr dankbar für jede Unterstützung!\n\nAlternativ zum direkten Kauf von Edelsteinen gibt es drei andere Möglichkeiten, Edelsteine zu erhalten:\n\n* Gewinne eine Herausforderung eines anderen Spielers. Gehe zu Menü > Herausforderungen um an einigen teilzunehmen.\n* Kaufe ein Abo und schalte damit die Fähigkeit frei, eine bestimmte Anzahl von Edelsteinen pro Monat zu kaufen.\n* Trage mit Deinen Fähigkeiten zum Habitica Projekt bei. Für mehr Informationen sieh im Wiki nach: [An Habitica mitarbeiten](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\nBeachte, dass Gegenstände, die mit Edelsteinen gekauft werden, keine statistischen Vorteile bringen, sodass Spieler die Seite auch ohne sie benutzen können!",
"androidFaqAnswer10": "Edelsteine können mit echtem Geld gekauft werden unter Menü > Edelsteine kaufen. Wenn Du Edelsteine kaufst, hilfst Du uns, Habitica zu unterhalten. Wir sind sehr dankbar für jede Unterstützung!\n\nAlternativ zum direkten Kauf von Edelsteinen gibt es drei andere Möglichkeiten, Edelsteine zu erhalten:\n\n* Gewinne eine Herausforderung eines anderen Spielers. Gehe zu Menü > Herausforderungen um an einigen teilzunehmen.\n* Kaufe ein Abo und schalte damit die Fähigkeit frei, eine bestimmte Anzahl von Edelsteinen pro Monat zu kaufen.\n* Trage mit Deinen Fähigkeiten zum Habitica Projekt bei. Für mehr Informationen sieh im Wiki nach: [An Habitica mitarbeiten](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\nBeachte, dass Gegenstände, die mit Edelsteinen gekauft werden, keine statistischen Vorteile bringen, sodass Spieler die Seite auch ohne sie benutzen können!",
"webFaqAnswer10": "Edelsteine werden mit echtem Geld gekauft, jedoch können [Abonnenten](https://habitica.com/user/settings/subscription) diese mit Gold erwerben. Wer Habitica abonniert oder Edelsteine kauft, hilft die Seite am Leben zu erhalten. Wir sind sehr dankbar für diese Unterstützung! Neben dem Kauf von Edelsteinen oder eines Abonnements kann ein Spieler auf zwei weitere Arten an Edelsteine kommen:\n* Gewinne eine Herausforderung, die von einem anderen Spieler eingerichtet wurde. Gehe hierfür zu Herausforderungen > Herausforderungen Entdecken.\n* Trage mit Deinen Fähigkeiten zum Projekt Habitica bei. Mehr Details findest Du auf dieser Wiki-Seite [Contributing to Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica). Beachte, dass mit Edelsteinen gekaufte Gegenstände keine statistischen Vorteile bringen, sodass Spieler die Seite auch ohne sie nutzen können!",
"faqQuestion11": "Wie melde ich einen Fehler oder schlage ein Feature vor?",
"iosFaqAnswer11": "Du kannst Fehler melden, ein Feature vorschlagen oder Feedback geben, indem Du Menü > Über > Einen Fehler melden oder Menü > Über > Feedback senden auswählst! Wir werden alles Mögliche tun, um Dir zu helfen.",
"androidFaqAnswer11": "Um einen Fehler zu melden, ein Feature vorzuschlagen oder Feedback zu senden, gehe im Menü unter Hilfe > Melde einen Fehler und Hilfe > Feature vorschlagen! Wir werden alles tun, um Dir zu helfen.",
"iosFaqAnswer11": "Wenn Du glaubst, einen Fehler entdeckt zu haben, gehe zu Menü > Support > Hilfe um eine rasche Lösung oder die Liste bekannter Fehler zu finden, oder einen neuen Bug zu melden. Wir werden alles Mögliche tun, um Dir zu helfen.\n\nDu kannst Feedback geben oder ein Feature vorschlagen, indem Du das Formular unter Menü > Support > Feedback senden verwendest! Sollten wir noch Fragen dazu haben, werden wir uns an Dich wenden!",
"androidFaqAnswer11": "Wenn Du glaubst, einen Fehler entdeckt zu haben, gehe zu Menü > Hilfe & FAQ > Hilfe um eine rasche Lösung oder die Liste bekannter Fehler zu finden, oder einen neuen Bug zu melden. Wir werden alles Mögliche tun, um Dir zu helfen.\n\nDu kannst Feedback geben oder ein Feature vorschlagen, indem Du das Formular unter Menü > Hilfe & FAQ > Feedback senden verwendest! Sollten wir noch Fragen dazu haben, werden wir uns an Dich wenden!",
"webFaqAnswer11": "Um einen Fehler zu melden, gehe zu [Hilfe > Melde einen Fehler](https://habitica.com/#/options/groups/guilds/a29da26b-37de-4a71-b0c6-48e72a900dac) und lies die Punkte oberhalb des Chatfensters. Falls Du Dich nicht in Habitica anmelden kannst, sende Deine Anmeldedaten (nicht Dein Passwort!) an [<%= techAssistanceEmail %>](<%= wikiTechAssistanceEmail %>). Keine Sorge, wir werden Dir schnellstmöglich helfen! Vorschläge für Funktionen werden über ein Google Formular gesammelt. Gehe zu [Hilfe > Eine Funktion vorschlagen](https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link) und folge den Anweisungen. Ta-da!",
"faqQuestion12": "Wie bekämpfe ich einen Weltboss?",
"iosFaqAnswer12": "Weltbosse sind spezielle Monster, die in der Taverne erscheinen. Alle aktiven Nutzer kämpfen automatisch gegen den Boss und ihre Aufgaben und Fähigkeiten werden dem Boss wie üblich schaden. \n\nDu kannst Dich gleichzeitig in einer normalen Quest befinden. Deine Aufgaben und Fähigkeiten zählen sowohl dem Weltboss wie auch dem Boss/der Sammelquest gegenüber.\n\nEin Weltboss wird niemals Dich oder Deinen Account verletzen. Stattdessen gibt es einen Raserei-Balken, welcher sich füllt, wenn Benutzer ihre Tagesaufgaben auslassen. Wenn der Raserei-Balken gefüllt ist, wird der Weltboss einen der Nicht-Spieler-Charakter der Seite angreifen und ihr Aussehen wird sich verändern. \n\nErfahre mehr über [vergangene Weltbosse](http://habitica.fandom.com/wiki/World_Bosses) im Wiki.",

View file

@ -2158,5 +2158,12 @@
"headMystery202008Notes": "Huuh Huuh, wer bist denn Duuh? Wer sucht unseren Rat? Gewährt keinen Attributbonus. Abonnentengegenstand, August 2020.",
"shieldArmoireMortarAndPestleText": "Mörser und Stößel",
"headArmoireHeroicHerbalistCrispinetteText": "Crispinette des heroischen Herbalisten",
"armorArmoireHeroicHerbalistRobeText": "Robe des heroischen Herbalisten"
"armorArmoireHeroicHerbalistRobeText": "Robe des heroischen Herbalisten",
"headAccessoryMystery202009Text": "Fantastische Falterfühler",
"backMystery202009Text": "Fantastische Falterflügel",
"armorArmoireHeroicHerbalistRobeNotes": "Riecht immer angenehm nach allerlei Kräutern. Erhöht Ausdauer und Intelligenz um je <%= attrs %>. Verzauberter Schrank: Heroischer-Herbalist-Set (Gegenstand 1 von 3).",
"headAccessoryMystery202009Notes": "Diese fedrigen Antennen werden Dir dabei helfen, selbst in der Dunkelheit der Nacht, den Weg zu finden. Gewährt keinen Attributbonus. Abonnentengegenstand, September 2020.",
"backMystery202009Notes": "Lass diese riesigen Flügel Dich in ungekannte Höhen bringen! Gewährt keinen Attributbonus. Abonnentengegenstand, September 2020.",
"shieldArmoireMortarAndPestleNotes": "Das wichtigste Equipment im Arsenal eines Herbalisten! Zermahle die Zutaten für Deine Kräutermixturen und lege Dich ins Zeug! Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Heroischer-Herbalist-Set (Gegenstand 2 von 3).",
"headArmoireHeroicHerbalistCrispinetteNotes": "Dieser praktische Kopfschmuck wird Dir helfen Deine Haare im Zaum zu halten... Es schadet nicht, dass er auch zu einem geheimnisvollen Ruf beiträgt. Erhöht Intelligenz um <%= int %>. Verzauberter Schrank: Heroischer-Herbalist-Set (Gegenstand 3 von 3)."
}

View file

@ -501,5 +501,6 @@
"assignedDateAndUser": "Zugewiesen am <strong><%= date %></strong> von <strong>@<%- username %></strong>",
"assignedDateOnly": "Zugewiesen am <strong><%= date %></strong>",
"managerNotes": "Manager-Notizen",
"thisTaskApproved": "Dieser Aufgabe wurde zugestimmt"
"thisTaskApproved": "Dieser Aufgabe wurde zugestimmt",
"onlyPrivateGuildsCanUpgrade": "Nur bei privaten Gilden kann ein Upgrade zu einem Gruppenplan durchgeführt werden."
}

View file

@ -425,7 +425,7 @@
"questSlothDropSlothEgg": "Faultier (Ei)",
"questSlothUnlockText": "Schaltet den Kauf von Faultiereiern auf dem Marktplatz frei",
"questTriceratopsText": "Der Trampelnde Triceratops",
"questTriceratopsNotes": "Auf den schneebedeckten Stoïstillen Vulkanen herrscht stets ein reger Trubel von Wanderern und Besichtigenden. Eine Touristin, @plumilla, ruft ein Grüppchen von Leuten herbei. \"Schaut! Ich habe den Boden leuchtend gezaubert, damit wir ein Outdoor-Spielfeld für unsere Tagesaufgaben draußen haben!\" Tatsächlich wirbeln glühend rote Muster auf dem Boden umher. Sogar ein paar der prähistorischen Haustiere kommen zum Spielen herüber. <br><br>Plötzlich hört man ein lautes Knacken -- ein neugieriger Triceratops ist auf @plumillas Zauberstab getreten! Er wird von einem Ausbruch magischer Energie umhüllt, und der Boden beginnt zu beben und heiß zu werden. Rot glühen die Augen des Triceratops, unter lautem Brüllen fängt er an wild umherzutrampeln! <br><br>\"Das ist nicht gut\", ruft @McCoyly in die Ferne zeigend. Jeder magisch verstärkte Stampfer lässt die Vulkane mehr ausbrechen, und der glühende Boden unter seinen Saurierfüßen wird zu Lava! Schnell, Du musst den Trampelnden Triceratops aufhalten, bis jemand den Zauberspruch rückgängig macht!",
"questTriceratopsNotes": "Auf den schneebedeckten Stoïstillen Vulkanen herrscht stets ein reger Trubel von Wanderern und Besichtigenden. Eine Touristin, @plumilla, ruft ein Grüppchen von Leuten herbei. \"Schaut! Ich habe den Boden leuchtend gezaubert, damit wir ein Outdoor-Spielfeld für unsere Tagesaufgaben draußen haben!\" Tatsächlich wirbeln glühend rote Muster auf dem Boden umher. Sogar ein paar der prähistorischen Haustiere kommen zum Spielen herüber.<br><br>Plötzlich hört man ein lautes Knacken -- ein neugieriger Triceratops ist auf @plumillas Zauberstab getreten! Er wird von einem Ausbruch magischer Energie umhüllt, und der Boden beginnt zu beben und heiß zu werden. Rot glühen die Augen des Triceratops, unter lautem Brüllen fängt er an wild umherzutrampeln!<br><br>\"Das ist nicht gut\", ruft @McCoyly in die Ferne zeigend. Jeder magisch verstärkte Stampfer lässt die Vulkane mehr ausbrechen, und der glühende Boden unter seinen Saurierfüßen wird zu Lava! Schnell, Du musst den Trampelnden Triceratops aufhalten, bis jemand den Zauberspruch rückgängig macht!",
"questTriceratopsCompletion": "Geistesgegenwärtig treibst du die Kreatur in Richtung der beruhigenden Stoïstillen Steppen, so dass @*~Seraphina~* und @PainterProphet ungestört den Lavaspruch rückgängig machen können. Die besänftigende Aura der Steppen fängt an zu wirken und der Triceratops rollt sich ein, die Vulkane werden wieder inaktiv. @PainterProphet reicht Dir ein paar Eier, die vor der Lava gerettet wurden. \"Wir hätten ohne Dich nicht die Konzentration gefunden, um die Ausbrüche zu stoppen. Gib diesen Haustieren ein gutes Zuhause.\"",
"questTriceratopsBoss": "Trampelnder Triceratops",
"questTriceratopsDropTriceratopsEgg": "Triceratops (Ei)",
@ -700,5 +700,8 @@
"questFluoriteBoss": "Fluorit-Elementar",
"questFluoriteText": "Ein leuchtender, furchteinflößender Fluorit",
"questFluoriteCompletion": "Während dem Kampf scheint die kristallene Kreatur mehr und mehr durch eure Lichter abgelenkt. “Das glitzert…” murmelt sie.<br><br>“Natürlich!” ruft @nirbhao. “Das muss ein Fluorit-Elemental sein. Die wollen nur ein wenig Licht, damit sie glimmen können. Lasst uns ihm helfen, so richtig hell zu scheinen.”<br><br>Das Elemental kichert glücklich und glimmt immer heller unter euren Fackeln und den magischen Glanzlichtern. Es scheint glücklich zu sein, wieder scheinen zu können, so dass es euch zu einem reichen Lager von Fluoritkristallen führt.<br><br>“Das ist die perfekte Zutat für ein neues Schlüpfelixier” findet @nirbhao. “Eines, das unsere Haustiere gerade so hell wie unseren neuen fluoreszierenden Freund hier scheinen lassen wird.”",
"questFluoriteNotes": "Ungewöhnliche Mineralien sind sehr gefragt dieser Tage, deshalb bist Du mit einigen Freunden auf der Suche nach aufregenden Erzen tief in die Minen der Mäander-Berge gewandert. Es ist eine lange, langweilige Expedition, bis @-Tyr- über einen grossen Stein stolpert, der genau in der Mitte des Tunnels liegt.<br><br>“Das hier sollte etwas Licht in die Sache bringen” sagt @nirbhao und zaubert eine Lichtkugel hervor.<br><br>Ein warmes Leuchten erfüllt den Tunnel, doch nun passiert etwas seltsames mit dem Stein. Vom magischen Licht zehrend, fängt er in fluoreszierendem Blau, Grün und Violett zu leuchten an. Dann richtet er sich in einer halbwegs humanoiden Form auf, inklusive glühend roten Augen, mit denen er Dich fixiert! Sofort beginnt ihr, blitzende Zaubersprüche zu sprechen und glänzende Waffen zu schwingen."
"questFluoriteNotes": "Ungewöhnliche Mineralien sind sehr gefragt dieser Tage, deshalb bist Du mit einigen Freunden auf der Suche nach aufregenden Erzen tief in die Minen der Mäander-Berge gewandert. Es ist eine lange, langweilige Expedition, bis @-Tyr- über einen grossen Stein stolpert, der genau in der Mitte des Tunnels liegt.<br><br>“Das hier sollte etwas Licht in die Sache bringen” sagt @nirbhao und zaubert eine Lichtkugel hervor.<br><br>Ein warmes Leuchten erfüllt den Tunnel, doch nun passiert etwas seltsames mit dem Stein. Vom magischen Licht zehrend, fängt er in fluoreszierendem Blau, Grün und Violett zu leuchten an. Dann richtet er sich in einer halbwegs humanoiden Form auf, inklusive glühend roten Augen, mit denen er Dich fixiert! Sofort beginnt ihr, blitzende Zaubersprüche zu sprechen und glänzende Waffen zu schwingen.",
"questWindupUnlockText": "Schaltet den Kauf von Aufziehbaren Schlüpfelixieren auf dem Marktplatz frei",
"questWindupDropWindupPotion": "Aufziehbares Schlüpfelixier",
"questWindupText": "Wirbel mit einem aufziehbaren Angreifer"
}

View file

@ -252,5 +252,6 @@
"mysterySet202005": "Wunderliches Wyvern-Set",
"mysterySet202006": "Mehrfarbiges Meermenschenset",
"mysterySet202007": "Spektakuläres Schwertwalset",
"mysterySet202008": "\"Oiliges Orakel\"-Set"
"mysterySet202008": "\"Oiliges Orakel\"-Set",
"mysterySet202009": "Fantastischer-Falter-Set"
}

View file

@ -36,7 +36,6 @@
"spellRogueStealthText": "Stealth",
"spellRogueStealthNotes": "With each cast, a few of your undone Dailies won't cause damage tonight. Their streaks and colors won't change. (Based on: PER)",
"spellRogueStealthDaliesAvoided": "<%= originalText %> Number of dailies that will be avoided: <%= number %>.",
"spellRogueStealthMaxedOut": "You have already avoided all your dailies; there's no need to cast this again.",
"spellHealerHealText": "Healing Light",
"spellHealerHealNotes": "Shining light restores your health! (Based on: CON and INT)",
@ -76,5 +75,5 @@
"groupTasksNoCast": "Casting a skill on group tasks is not allowed.",
"spellNotOwned": "You don't own this skill.",
"spellLevelTooHigh": "You must be level <%= level %> to use this skill.",
"spellAlreadyCast": "You've cast this skill already. It won't have any additional effect."
"spellAlreadyCast": "Using this skill won't have any additional effect."
}

View file

@ -78,7 +78,7 @@
"undo": "Undo",
"continue": "Sail On",
"accept": "Aye",
"reject": "Yea",
"reject": "Nay",
"neverMind": "Ne'ermind",
"buyMoreGems": "Trade Fer More Sapphires",
"notEnoughGems": "Not enough Sapphires",

View file

@ -51,7 +51,7 @@
"create": "Create",
"userId": "Pirate ID",
"invite": "Invite",
"leave": "Weigh anchor",
"leave": "Abandon Ship",
"invitedToParty": "Ye were invited to join th' Crew <span class=\"notification-bold\"><%- party %></span>",
"invitedToPrivateGuild": "Ye were invited to join th' private Fleet <span class=\"notification-bold\"><%- guild %></span>",
"invitedToPublicGuild": "Ye were invited to join th' Fleet <span class=\"notification-bold-blue\"><%- guild %></span>",
@ -63,7 +63,7 @@
"declineInvitation": "Decline Invitation",
"partyLoading1": "Yer Crew is being summoned. Please wait...",
"partyLoading2": "Yer Party is coming in from battle. Please wait...",
"partyLoading3": "Yer Crew is gathering. Please wait...",
"partyLoading3": "Yer Crew be gathering. Please wait...",
"partyLoading4": "Yer Crew is materializing. Please wait...",
"systemMessage": "System Message",
"newMsgGuild": "<span class=\"notification-bold-blue\"><%- name %></span> has new posts",
@ -77,7 +77,7 @@
"guildBankPop2": "Sapphires which ye Fleet leader can use fer challenge prizes.",
"guildGems": "Fleet's Sapphires",
"group": "Ship",
"editGroup": "Edit Ship",
"editGroup": "Edit Group",
"newGroupName": "<%= groupType %> Name",
"groupName": "Ship Name",
"groupLeader": "Ship Captain",
@ -151,7 +151,7 @@
"gemAmountRequired": "A number o' sapphires be required",
"notAuthorizedToSendMessageToThisUser": "Ye can nah send a message t' this player 'cause they 'ave chosen t' block messages.",
"privateMessageGiftGemsMessage": "Ahoy <%= receiverName %>, <%= senderName %> has sent ye <%= gemAmount %> sapphires!",
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> months o' subscription! ",
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> months o' subscription!",
"cannotSendGemsToYourself": "Cannot send sapphires t' yerself. Try a subscription instead.",
"badAmountOfGemsToSend": "Amount must be within 1 'n yer current number o' sapphires.",
"report": "Report",
@ -167,7 +167,7 @@
"needsText": "Type a message.",
"needsTextPlaceholder": "Type yer message here.",
"copyMessageAsToDo": "Copy message as T'-Do",
"copyAsTodo": "Copy as To-Do",
"copyAsTodo": "Copy as To Do",
"messageAddedAsToDo": "Message copied as T'-Do.",
"messageWroteIn": "<%= user %> wrote in <%= group %>",
"msgPreviewHeading": "Message Preview",
@ -221,9 +221,9 @@
"groupNotFound": "Group nah found or ye don't 'ave access.",
"groupTypesRequired": "Ye must supply a valid \"type\" query string.",
"questLeaderCannotLeaveGroup": "You cannot leave your Party when you have started a quest. Abort the quest first.",
"cannotLeaveWhileActiveQuest": "You cannot leave Party during an active quest. Please leave the quest first.",
"onlyLeaderCanRemoveMember": "Only group leader can remove a member!",
"cannotRemoveCurrentLeader": "You cannot remove the group leader. Assign a new a leader first.",
"cannotLeaveWhileActiveQuest": "Ye cannae leave yer Crew durin' an active adventure. Please leave th' adventure first.",
"onlyLeaderCanRemoveMember": "Only yer group leader can remove a member!",
"cannotRemoveCurrentLeader": "Ye cannae scuttle the group leader. Assign a new a leader firs'.",
"memberCannotRemoveYourself": "You cannot remove yourself!",
"groupMemberNotFound": "Pirate not found among ship's members",
"mustBeGroupMember": "Must be member of the group.",
@ -412,7 +412,7 @@
"createParty": "Create a Party",
"inviteMembersNow": "Would you like to invite members now?",
"playInPartyTitle": "Play Habitica in a Party!",
"playInPartyDescription": "Take on amazing quests with friends or on your own. Battle monsters, create Challenges, and help yourself stay accountable through Parties.",
"playInPartyDescription": "Take on amazing quests with friends or on yer own. Battle monsters, create Challenges, and help yerrself stay accountable through Crews.",
"startYourOwnPartyTitle": "Start your own Party",
"startYourOwnPartyDescription": "Battle monsters solo or invite as many of your friends as you'd like!",
"wantToJoinPartyTitle": "Want to join a Party?",

View file

@ -84,5 +84,12 @@
"achievementBugBonanza": "Bonanza insectil",
"achievementFreshwaterFriendsModalText": "¡Has completado las misiones de las mascotas ajolote, rana e hipopótamo!",
"achievementFreshwaterFriendsText": "Ha completado las misiones de las mascotas ajolote, rana, e hipopótamo.",
"achievementFreshwaterFriends": "Amigos de agua dulce"
"achievementFreshwaterFriends": "Amigos de agua dulce",
"achievementAllThatGlittersModalText": "¡Has domesticado todas las Monturas Doradas!",
"achievementAllThatGlittersText": "Ha domesticado todas las Monturas Doradas.",
"achievementGoodAsGoldModalText": "¡Has coleccionado todas las Mascotas Doradas!",
"achievementGoodAsGoldText": "Ha coleccionado todas las mascotas Doradas.",
"achievementGoodAsGold": "Más Bueno que el Pan",
"yourRewards": "Tus Recompensas",
"achievementAllThatGlitters": "Todo lo que brilla"
}

View file

@ -112,7 +112,7 @@
"questGoldenknight3DropGoldenPotion": "Poción de Eclosión Dorado",
"questGoldenknight3DropWeapon": "Lucero del Alba Machaca Hitos de de Mustaine (Objeto de la Mano de Fuera)",
"questGroupEarnable": "Misión conseguible",
"questBasilistText": "El Basi-lista",
"questBasilistText": "La Basi-lista",
"questBasilistNotes": "Hay una conmoción en el mercado de las que harían que cualquiera huyera desesperadamente. Puesto que eres un aventurero valiente, lo que haces es enfrentarte, y descubre a la @Basi-lista, ¡emergiendo de un grupo de Tareas Pendientes incompletas! Los Habiticans cercanos están paralizados por el miedo al ver la grandiosidad de la @Basi-Lista, son incapaces de empezar a trabajar. Desde algún lugar en las proximidades, se oye el grito de @Arcosine:\n—¡Rápido, completa tus Tareas Pendientes y tus Tareas Diarias antes de que alguien salga herido!\nGolpea rápido aventurero, y marca algo como completado. Pero ¡cuidado! Si dejas alguna Tarea Diaria sin hacer, ¡la Basi-Lista te atacará a ti y a tu grupo!",
"questBasilistCompletion": "La Basi-Lista se ha diseminado en trozos de papel, que brillan sutilmente con los colores del arcoiris.\n—¡Menos mal! —dice @Arcosine—. ¡Qué bien que estuvierais aquí!\nSintiéndote más experimentado que antes, recoges un poco del oro caído entre los papeles.",
"questBasilistBoss": "La Basi-lista",

View file

@ -2,7 +2,7 @@
"settings": "Ajustes",
"language": "Idioma",
"americanEnglishGovern": "En caso de que hubiese alguna discrepancia en las traducciones, prima la versión en inglés estadounidense.",
"helpWithTranslation": "¿Te gustaría ayudar con la traducción de Habitica? ¡Genial! Entonces visita <a href=\"/groups/guild/7732f64c-33ee-4cce-873c-fc28f147a6f7\"> la Aspiring Linguists Guild</a>",
"helpWithTranslation": "¿Te gustaría ayudar con la traducción de Habitica? ¡Genial! ¡Visita <a href=\"/groups/guild/7732f64c-33ee-4cce-873c-fc28f147a6f7\">la Aspiring Linguists Guild</a>!",
"showHeaderPop": "Muestra tu personaje, las barras de vida y experiencia, y el equipo.",
"stickyHeader": "Cabecera fija",
"stickyHeaderPop": "Pegar la cabecera a la parte superior de la ventana. Si no está seleccionada significa que la cabecera se perderá de vista al bajar por la página.",
@ -213,5 +213,6 @@
"mentioning": "Menciones",
"chatExtensionDesc": "La Extensión de Chat para Habitica añade un intuitivo cuadro de chat a habitica.com. Permite a los usuarios conversar en la Taberna, su equipo, y cualquier gremio en el que estén.",
"chatExtension": "<a target='blank' href='https://chrome.google.com/webstore/detail/habitrpg-chat-client/hidkdfgonpoaiannijofifhjidbnilbb'>Extensión de Chat para Chrome</a> and <a target='blank' href='https://addons.mozilla.org/en-US/firefox/addon/habitica-chat-client-2/'>Extension de Chat para Firefox</a>",
"buyGemsGoldCapBase": "Límite de gemas en <%= amount %>"
"buyGemsGoldCapBase": "Límite de gemas en <%= amount %>",
"displaynameIssueNewline": "Los Nombres Públicos no pueden contener barras invertidas seguidas por la letra N."
}

View file

@ -123,9 +123,9 @@
"foodWikiText": "¿Qué le gusta comer a mi mascota?",
"foodWikiUrl": "http://habitica.fandom.com/wiki/Food_Preferences",
"welcomeStable": "¡Bienvenidos al Establo!",
"welcomeStableText": "I'm Matt, the Beast Master. Starting at level 3, you can hatch Pets from Eggs by using Potions you find! When you hatch a Pet from your Inventory, it will appear here! Click a Pet's image to add it to your avatar. Feed them here with the Food you find after level 3, and they'll grow into hardy Mounts.",
"welcomeStableText": "¡Bienvenido al establo! Soy Matt, el domador de bestias. Cada vez que completes una tarea, tendrás un chance aleatorio de recibir un Huevo o una Poción para Incubar Mascotas. Cuando nazca una Mascota, ¡Aparecerá aquí! Haz clic en la imagen de una Mascota para añadirla a tu Personaje. Aliméntalas con la comida para mascotas que encuentres y se convertirán en Monturas robustas.",
"petLikeToEat": "¿Que le gusta comer a mi mascota?",
"petLikeToEatText": "Pets will grow no matter what you feed them, but they'll grow faster if you feed them the one food that they like best. Experiment to find out the pattern, or see the answers here: <br/> <a href=\"http://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">http://habitica.fandom.com/wiki/Food_Preferences</a>",
"petLikeToEatText": "Las Mascotas crecerán sin importar con qué las alimentes, pero crecerán más rápido si las alimentas con su Comida para Mascotas favorita. Experimenta para encontrar el patrón, o encuentra las respuestas aquí: <br/> <a href=\"http://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">http://habitica.fandom.com/wiki/Food_Preferences</a>",
"filterByStandard": "Estándar",
"filterByMagicPotion": "Poción mágica",
"filterByQuest": "Misión",
@ -133,7 +133,7 @@
"sortByColor": "Color",
"sortByHatchable": "Incubable",
"hatch": "¡Incuba!",
"foodTitle": "Comida",
"foodTitle": "Comida para Mascotas",
"dragThisFood": "¡Arrastra la <%= foodName %> a una mascota y ve como crece!",
"clickOnPetToFeed": "¡Dale clic a una mascota para darle <%= foodName %> y ve como crece!",
"dragThisPotion": "Drag this <%= potionName %> to an Egg and hatch a new pet!",
@ -145,5 +145,8 @@
"notEnoughPetsMounts": "No has recolectado suficientes mascotas y monturas",
"wackyPets": "Mascotas Chifladas",
"filterByWacky": "Loco",
"gryphatrice": "Grifotriz"
"gryphatrice": "Grifotriz",
"notEnoughFood": "No tienes suficiente comida",
"invalidAmount": "Cantidad de comida inválida, debe ser un número entero positivo",
"tooMuchFood": "Estás intentando darle demasiada comida a tu mascota, acción cancelada"
}

View file

@ -119,8 +119,8 @@
"giftedSubscriptionInfo": "<%= name %> te regaló una suscripción de <%= months %> meses",
"giftedSubscriptionFull": "¡Hola <%= username %>, <%= sender %> te ha enviado una suscripción de <%= monthCount %> meses!",
"giftedSubscriptionWinterPromo": "¡Hola <%= username %>, has recibido <%= monthCount %> meses de subscripción como parte de nuestra promocion de entrega de regalos festivos!",
"invitedParty": "Invitado al Equipo",
"invitedGuild": "Invitado al Gremio",
"invitedParty": "Has sido invitado a un Equipo",
"invitedGuild": "Has sido invitado a un Gremio",
"importantAnnouncements": "Recordatorios para ingresar a completar tareas y recibir premios",
"weeklyRecaps": "Resúmenes de la actividad de tu cuenta en la última semana (Nota: esta función está deshabilitada en este momento debido a problemas con el funcionamiento, ¡pero esperamos tenerla de vuelta pronto!)",
"onboarding": "Guía para configurar tu cuenta de Habitica",
@ -137,7 +137,7 @@
"unsubscribeAllEmailsText": "Al marcar esta casilla, certifico que entiendo que al darme de baja de todos los correos, Habitica nunca será capaz de notificarme por ese medio sobre cambios importantes en el sitio o en mi cuenta.",
"unsubscribeAllPush": "Marca para darte de baja de todas las notificaciones Push",
"correctlyUnsubscribedEmailType": "Te has dado de baja correctamente de los correos de \"<%= emailType %>\".",
"subscriptionRateText": "$<%= price %> USD recurrentes cada <%= months %> meses",
"subscriptionRateText": "<strong>$<%= price %> USD</strong> periódicos cada <strong><%= months %> meses</strong>",
"recurringText": "recurrentes",
"benefits": "Beneficios",
"coupon": "Cupón",
@ -173,14 +173,14 @@
"pushDeviceAlreadyAdded": "El usuario ya tiene el dispositivo Push",
"pushDeviceNotFound": "El usuario no tiene dispositivo Push con este id.",
"pushDeviceRemoved": "Dispositivo Push eliminado satisfactoriamente.",
"buyGemsGoldCap": "Tope aumentado a <%= amount %>",
"buyGemsGoldCap": "Límite de gemas aumentado a <%= amount %>",
"mysticHourglass": "<%= amount %> Reloj de Arena Místico",
"mysticHourglassText": "Los Relojes de Arena Místicos permiten comprar un Conjunto de Artículos Misteriosos de un mes previo.",
"purchasedPlanId": "$<%= price %> USD recurrentes cada <%= months %> mes(es) (<%= plan %>)",
"purchasedPlanExtraMonths": "Tienes <%= months %> meses de crédito de suscripción extra.",
"consecutiveSubscription": "Suscripción consecutiva",
"consecutiveMonths": "Meses consecutivos:",
"gemCapExtra": "Extra del tope de gemas:",
"gemCapExtra": "Bono de límite de gemas",
"mysticHourglasses": "Relojes de Arena Místicos:",
"mysticHourglassesTooltip": "Relojes de Arena Místicos",
"paypal": "PayPal",
@ -203,8 +203,13 @@
"goToSettings": "Go to Settings",
"usernameVerifiedConfirmation": "Your username, <%= username %>, is confirmed!",
"usernameNotVerified": "Please confirm your username.",
"changeUsernameDisclaimer": "We will be transitioning login names to unique, public usernames soon. This username will be used for invitations, @mentions in chat, and messaging.",
"changeUsernameDisclaimer": "Tu nombre de usuario es usado para las invitaciones, @menciones en el chat y mensajería. Debe tener de 1 a 20 caracteres, conteniendo únicamente las letras de la \"a\" a la \"z\", guiones medios o bajos, y no puede incluir ningún término inapropiado.",
"verifyUsernameVeteranPet": "One of these Veteran Pets will be waiting for you after you've finished confirming!",
"chatExtensionDesc": "La Extensión de Chat para Habitica añade un intuitivo cuadro de chat a habitica.com. Este permite a los usuarios conversar en la Taberna, su equipo, y cualquier gremio en el que estén.",
"chatExtension": "<a target='blank' href='https://chrome.google.com/webstore/detail/habitrpg-chat-client/hidkdfgonpoaiannijofifhjidbnilbb'>Extensión de Chat para Chrome</a> y <a target='blank' href='https://addons.mozilla.org/en-US/firefox/addon/habitica-chat-client-2/'>Extension de Chat para Firefox</a>"
"chatExtension": "<a target='blank' href='https://chrome.google.com/webstore/detail/habitrpg-chat-client/hidkdfgonpoaiannijofifhjidbnilbb'>Extensión de Chat para Chrome</a> y <a target='blank' href='https://addons.mozilla.org/en-US/firefox/addon/habitica-chat-client-2/'>Extension de Chat para Firefox</a>",
"subscriptionReminders": "Recordatorios de Suscripciones",
"newPMNotificationTitle": "Nuevo mensaje de <%= name%>",
"onlyPrivateSpaces": "Solo en espacios privados",
"displaynameIssueNewline": "Los nombres de usuario no deben contener barras invertidas seguidas de la letra N.",
"buyGemsGoldCapBase": "Límite de gemas en <%= amount %>"
}

View file

@ -24,7 +24,7 @@
"spellRogueToolsOfTradeNotes": "¡Tus talentos de pícaro mejoran al Percepción de tu Grupo entero! (Basado en PER no reforzado)",
"spellRogueStealthText": "Sigilo",
"spellRogueStealthNotes": "With each cast, a few of your undone Dailies won't cause damage tonight. Their streaks and colors won't change. (Based on: PER)",
"spellRogueStealthDaliesAvoided": "<%= originalText %> Numero de diarias evitadas: <%= number %>.",
"spellRogueStealthDaliesAvoided": "<%= originalText %> Numero de diarias que serán evitadas: <%= number %>.",
"spellRogueStealthMaxedOut": "Ya haz evitado todas tus tareas diaria; no hay necesidad de conjurar esto denuevo.",
"spellHealerHealText": "Luz Curativa",
"spellHealerHealNotes": "¡Luz brillante recupera tu salud! (Basado en: CON e INT)",
@ -55,5 +55,6 @@
"challengeTasksNoCast": "Conjurar esta habilidad en tareas de desafío no está permitido.",
"groupTasksNoCast": "No está permitido conjurar una habilidad en las tareas grupales.",
"spellNotOwned": "No tienes esta habilidad.",
"spellLevelTooHigh": "Debes ser nivel <%= level %> para utilizar esta habilidad."
}
"spellLevelTooHigh": "Debes ser nivel <%= level %> para utilizar esta habilidad.",
"spellAlreadyCast": "Ya has lanzado esta habilidad. No tendrá ningún efecto adicional."
}

View file

@ -90,5 +90,6 @@
"achievementAllThatGlitters": "Tout ce qui brille",
"achievementGoodAsGoldModalText": "Vous avez trouvé tous les familiers en or !",
"achievementGoodAsGoldText": "A trouvé tous les familiers en or.",
"achievementGoodAsGold": "Un cœur d'or"
"achievementGoodAsGold": "Un cœur d'or",
"yourRewards": "Vos récompenses"
}

View file

@ -358,5 +358,6 @@
"hatchingPotionBirchBark": "Écorce de bouleau",
"hatchingPotionDessert": "Confiserie",
"hatchingPotionFluorite": "Fluorine",
"hatchingPotionSandSculpture": "Sculpture de sable"
"hatchingPotionSandSculpture": "Sculpture de sable",
"hatchingPotionWindup": "Tempétueux"
}

View file

@ -41,12 +41,12 @@
"androidFaqAnswer9": "Il vous faudra tout d'abord rejoindre une équipe (voir ci-dessus). Bien que vous puissiez combattre des monstres en solo, nous vous recommandons de jouer en groupe ; vos quêtes n'en seront que plus faciles. Il est aussi très motivant d'avoir des amis à vos côtés pour vous encourager à accomplir toutes vos tâches !\n\nVous aurez ensuite besoin d'un parchemin de quête, que vous retrouverez dans Inventaire > Objets. Il y a trois façons d'obtenir un parchemin :\n\n- Au niveau 15, vous recevrez une série de quêtes, c'est-à-dire trois quêtes liées. D'autres séries seront débloquées aux niveaux 30, 40 et 60 respectivement. \n- Quand vous invitez des membres à rejoindre votre équipe, vous recevez le parchemin du basi-liste ! \n- Vous pouvez acheter des quêtes avec de l'or et des gemmes.\n\nPour combattre un boss ou obtenir des objets lors d'une quête de collection, accomplissez simplement vos tâches comme vous le faites d'habitude, et elles seront automatiquement converties en dégâts pendant la nuit. (Il vous faudra peut-être actualiser la page en tirant l'écran vers le bas pour voir descendre la barre de vie du boss.) Si vous combattez un boss et avez manqué une de vos tâches quotidiennes, le boss infligera des dégâts à votre équipe au moment où vous l'attaquerez. \n\nAprès le niveau 11, les mages et les guerriers gagnent des compétences leur permettant d'infliger des dégâts additionnels au boss. Ce sont donc les deux classes à privilégier au niveau 10 si vous souhaitez gagner en force de frappe.",
"webFaqAnswer9": "D'abord, vous devez rejoindre une équipe en cliquant sur \"Équipe\" dans la barre de navigation. Bien que vous puissiez combattre des monstres en solo, nous recommandons de jouer dans un groupe car cela rendra vos quêtes plus faciles. En plus, avoir des amis qui vous encouragent à accomplir vos tâches est très motivant ! Ensuite, vous avez besoin d'un parchemin de quête. Ils sont stockés dans Inventaire > Objets. Il y a quatre façons d'obtenir un parchemin :\n* Quand vous invitez des membres dans votre équipe, vous recevrez en récompense le parchemin du basi-liste !\n* Au niveau 15, vous recevrez une série de quêtes, c'est à dire trois quêtes liées. D'autres séries seront débloquées aux niveau 30, 40 et 60.\n* Vous pouvez acheter des quêtes à la boutique de quêtes (Boutiques > Quêtes) avec de l'or et des gemmes.\n* Quand vous vous connectez à Habitica un certain nombre de fois, vous recevrez en récompense des parchemins de quêtes. Vous gagnerez un parchemin à votre 1ère, 7ème, 22ème et 40ème connexion.\nPour combattre un boss ou réunir des objets pour une quête de collection, réalisez simplement vos tâches normalement, et elles seront transformées en dégâts pendant la nuit. (Recharger la page peut être nécessaire pour voir la barre de vie du boss descendre). Si vous combattez un boss et ratez une de vos tâches quotidiennes, le boss infligera des dégâts à votre équipe au moment où vous l'attaquerez. Après le niveau 11, les mages et les guerriers gagneront des compétences qui leurs permettent d'infliger des dégâts additionnels au boss. Ce sont donc les deux classes à privilégier au niveau 10 si vous souhaitez gagner en force de frappe.",
"faqQuestion10": "Que sont les gemmes, et comment puis-je en obtenir ?",
"iosFaqAnswer10": "Les gemmes sont achetées avec de l'argent en sélectionnant l'icône de gemme dans l'en-tête. Lorsque des gens achètent des gemmes, ils nous aident à maintenir le site en marche. Nous les remercions pour leur soutien ! \n\nEn plus d'acheter des gemmes directement, il y a trois façons pour les joueurs de gagner des gemmes : \n\n* Gagnez un défi qui a été ouvert par un autre joueur. Allez dans Social > Défis pour en trouver.\n* Abonnez-vous et débloquez la capacité d'acheter un certain nombre de gemmes par mois.\n* Contribuez au projet Habitica avec vos compétences. Lisez cette page du Wiki pour plus de détails : [Contribuer à Habitica](http://habitica.fandom.com/fr/wiki/Contribuer_%C3%A0_Habitica).\n\nGardez à l'esprit que les objets achetés avec des gemmes n'offrent aucun avantage statistique, donc les joueurs peuvent très bien utiliser l'application sans elles !",
"androidFaqAnswer10": "Les gemmes sont achetées avec de l'argent réel en sélectionnant l'icône de gemme dans l'en-tête. Lorsque des gens achètent des gemmes, ils nous aident à maintenir le site en marche. Nous les remercions pour leur soutien !\n\nEn plus d'acheter des gemmes directement, il y a trois façons pour les joueurs et joueuses de gagner des gemmes :\n\n* Gagnez un défi qui a été ouvert par un autre joueur. Allez dans Social > Défis pour en trouver.\n* Abonnez-vous et débloquez la capacité d'acheter un certain nombre de gemmes par mois.\n* Contribuez au projet Habitica avec vos compétences. Lisez cette page du Wiki pour plus de détails : [Contribuer à Habitica](http://habitica.fandom.com/fr/wiki/Contribuer_%C3%A0_Habitica).\n\nGardez à l'esprit que les objets achetés avec des gemmes n'offrent aucun avantage statistique, donc les joueurs et joueuses peuvent très bien utiliser l'application sans elles !",
"iosFaqAnswer10": "Les gemmes sont achetées avec de l'argent dans le menu > Acheter des gemmes. Lorsque vous achetez des gemmes, vous nous aidez à maintenir Habitica en marche. Nous vous remercions pour votre soutien ! \n\nEn plus d'acheter des gemmes directement, il y a trois façons pour les joueurs de gagner des gemmes : \n\n* Gagnez un défi qui a été ouvert par un autre joueur. Allez dans le menu > Défis pour en trouver.\n* Abonnez-vous et débloquez la capacité d'acheter un certain nombre de gemmes par mois.\n* Contribuez au projet Habitica avec vos compétences. Lisez cette page du Wiki pour plus de détails : [Contribuer à Habitica](http://habitica.fandom.com/fr/wiki/Contribuer_%C3%A0_Habitica).\n\nGardez à l'esprit que les objets achetés avec des gemmes n'offrent aucun avantage statistique, donc les joueurs peuvent très bien utiliser l'application sans elles !",
"androidFaqAnswer10": "Les gemmes sont achetées avec de l'argent réel à partir du menu > Acheter des gemmes. Lorsque vous achetez des gemmes, vous nous aidez à maintenir Habitica en marche. Nous vous remercions pour votre soutien !\n\nEn plus d'acheter des gemmes directement, il y a trois façons pour les joueurs et joueuses de gagner des gemmes :\n\n* Gagnez un défi qui a été ouvert par un autre joueur. Allez dans le menu > Défis pour en trouver.\n* Abonnez-vous et débloquez la capacité d'acheter un certain nombre de gemmes par mois.\n* Contribuez au projet Habitica avec vos compétences. Lisez cette page du Wiki pour plus de détails : [Contribuer à Habitica](http://habitica.fandom.com/fr/wiki/Contribuer_%C3%A0_Habitica).\n\nGardez à l'esprit que les objets achetés avec des gemmes n'offrent aucun avantage statistique, donc les joueurs et joueuses peuvent très bien utiliser l'application sans elles !",
"webFaqAnswer10": "Les gemmes sont achetées avec de l'argent, bien que les personnes ayant souscrit un [abonnement](https://habitica.com/user/settings/subscription) puissent en acheter avec de l'or. Lorsque vous achetez des gemmes, cela nous aide à maintenir le site. Nous vous remercions pour votre soutien ! En plus d'acheter des gemmes directement, il existe deux façons d'en gagner :\n* Remportez un défi qui a été ouvert par quelqu'un d'autre. Allez dans Défis > Découvrir pour en trouver.\n* Contribuez au projet Habitica en mettant à profit vos compétences. Lisez cette page du Wiki pour plus de détails : [Contribuer à Habitica](http://habitica.fandom.com/fr/wiki/Contribuer_%C3%A0_Habitica).\nGardez à l'esprit que les objets achetés avec des gemmes n'offrent aucun avantage statistique. Vous pouvez très bien jouer sans eux !",
"faqQuestion11": "Comment signaler un bug ou demander une fonctionnalité ?",
"iosFaqAnswer11": "Vous pouvez signaler une erreur, demander une fonctionnalité ou envoyer un avis depuis Menu > A propos > Signaler une erreur et Menu > A propos > Envoyer un avis ! Nous ferons notre possible pour vous aider.",
"androidFaqAnswer11": "Vous pouvez signaler une erreur, demander une fonctionnalité ou envoyer un avis depuis A Propos > Signaler une erreur et À Propos> Envoyer un avis ! Nous ferons notre possible pour vous aider.",
"iosFaqAnswer11": "Si vous pensez avoir trouvé un bug, allez dans le menu > Aide > Obtenir de l'aide pour trouver les solutions simples, les problèmes connus ou pour nous signaler le problème. Nous ferons notre possible pour vous aider.\n\nPour nous faire un retour ou suggérer une fonctionnalité, vous pouvez trouver le formulaire de demande dans le menu Aide > Demander une fonctionnalité. Si nous avons des questions, nous vous contacterons pour obtenir des précisions !",
"androidFaqAnswer11": "Si vous pensez avoir trouvé un bug, allez dans le menu > Aide & FAQ > Obtenir de l'aide pour trouver les solutions simples, les problèmes connus ou pour nous signaler le problème. Nous ferons notre possible pour vous aider.\n\nPour nous faire un retour ou suggérer une fonctionnalité, vous pouvez trouver le formulaire de demande dans le menu > Aide & FAQ > Demander une fonctionnalité. Si nous avons des questions, nous vous contacterons pour obtenir des précisions !",
"webFaqAnswer11": "Pour signaler un bug, allez sur la page [Aide > Signaler un bug](https://habitica.com/#/options/groups/guilds/a29da26b-37de-4a71-b0c6-48e72a900dac) et lisez les instructions qui se trouvent au-dessus de la boîte de discussion. Si vous ne pouvez pas vous connecter à Habitica, envoyez vos détails de connexion (pas votre mot de passe !) à [<%= techAssistanceEmail %>](<%= wikiTechAssistanceEmail %>). Ne vous inquiétez pas, nous allons arranger ça bientôt ! Les demandes de fonctionnalités sont collectées par un formulaire Google. Visitez la page [Aide > Demander une fonctionnalité](https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link) et suivez les instructions. Ta-da !",
"faqQuestion12": "Comment combat-on un boss mondial ?",
"iosFaqAnswer12": "Les boss mondiaux sont des monstres spéciaux qui apparaissent dans la taverne. Tous les membres actifs combattent automatiquement le boss : leurs tâches et habiletés blesseront le boss comme d'habitude.\n\nVous pouvez également participer à une quête normale en même temps. Vos tâches et habiletés seront pris en compte pour les deux boss : le boss mondial et le boss/quête de collection de votre équipe.\n\nUn boss mondial ne blessera jamais ni vous ni votre compte, de quelque manière que ce soit. Il a plutôt une barre de colère qui se remplit lorsque les membres d'Habitica manquent les quotidiennes. Si la barre se remplit, le boss mondial attaque l'un des personnages non-joueurs du site et son image changera.\n\nPour en savoir plus, visitez la page [Boss mondiaux précédents](http://habitica.fandom.com/fr/wiki/Boss_Mondiaux) du wiki.",

View file

@ -2161,5 +2161,9 @@
"headArmoireHeroicHerbalistCrispinetteNotes": "Cette coiffure pratique vous aidera à ne pas vous laisser décoiffer... Cela ne fait pas de mal qu'elle ajoute aussi au mystère. Augmente l'intelligence de <%= int %>. Armoire enchantée : ensemble d'herboristerie héroïque (objet 3 de 3).",
"headArmoireHeroicHerbalistCrispinetteText": "Crispinette d'herboristerie héroïque",
"armorArmoireHeroicHerbalistRobeNotes": "Sent toujours délicieusement toutes sortes d'herbes. Augmente la constitution et l'intelligence de <%= attrs %> chacune. Armoire enchantée : ensemble d'herboristerie héroïque (objet 1 de 3).",
"armorArmoireHeroicHerbalistRobeText": "Robe d'herboristerie héroïque"
"armorArmoireHeroicHerbalistRobeText": "Robe d'herboristerie héroïque",
"headAccessoryMystery202009Notes": "Ces appendices plumeux vous aideront à trouver votre chemin même dans l'obscurité de la nuit. Ne confère aucun bonus. Équipement d'abonnement de septembre 2020.",
"headAccessoryMystery202009Text": "Antennes de mite merveilleuse",
"backMystery202009Notes": "Laissez ces gigantesques ailes vous emmener vers de nouveaux sommets ! Ne confère aucun bonus. Équipement d'abonnement de septembre 2020.",
"backMystery202009Text": "Ailes de mite merveilleuse"
}

View file

@ -17,13 +17,13 @@
"questGryphonDropGryphonEgg": "Griffon (Œuf)",
"questGryphonUnlockText": "Déverrouille l'achat dœufs de griffon au marché",
"questHedgehogText": "La bête hérissée",
"questHedgehogNotes": "Les hérissons sont de drôles d'animaux. Ils font partie des familiers les plus affectueux que puisse posséder un Habiticien. Mais on raconte que leur faire boire du lait après minuit les rend assez irritables. Et cinquante fois plus gros. Et <strong>InspectorCaracal</strong> vient juste de le faire. Oups.",
"questHedgehogNotes": "Les hérissons sont de drôles d'animaux. Ils font partie des familiers les plus affectueux qu'on puisse posséder à Habitville. Mais on raconte que leur faire boire du lait après minuit les rend assez irritables. Et cinquante fois plus gros. Et <strong>InspectorCaracal</strong> vient juste de le faire. Oups.",
"questHedgehogCompletion": "Votre équipe à réussi à calmer le hérisson ! Après avoir repris sa taille normale, elle boitille jusqu'à ses œufs. Elle revient en couinant et pousse vers votre équipe quelques-uns de ses œufs. Heureusement, ceux-ci supportent mieux le lait !",
"questHedgehogBoss": "Bête hérissée",
"questHedgehogDropHedgehogEgg": "Hérisson (Œuf)",
"questHedgehogUnlockText": "Déverrouille l'achat dœufs de hérisson au marché",
"questGhostStagText": "L'esprit du printemps",
"questGhostStagNotes": "Aaaah, le printemps. Cette époque de l'année où les couleurs reviennent emplir le paysage. Au loin s'en vont le vent et les monceaux de neige de l'hiver. Là où régnait le froid, des plantes aux couleurs vives prennent sa place. D'appétissantes feuilles vertes couronnent les arbres, l'herbe revient à ses anciennes nuances vives, un arc-en-ciel de fleurs se dessine dans les plaines, et une brume blanche et mystique couvre le pays ! ...Une seconde. Une brume mystique ? \"Oh non\", dit <strong>InspectorCaracal</strong>, inquiet. \"On dirait qu'une espèce d'esprit est à l'origine de cette brume. Oh, et il est en train de foncer droit sur vous.\"",
"questGhostStagNotes": "Aaaah, le printemps. Cette époque de l'année où les couleurs reviennent emplir le paysage. Au loin s'en vont le vent et les monceaux de neige de l'hiver. Là où régnait le froid, des plantes aux couleurs vives prennent sa place. D'abondantes feuilles vertes couronnent les arbres, l'herbe revient à ses anciennes nuances vives, un arc-en-ciel de fleurs se dessine dans les plaines, et une brume blanche et mystique couvre le pays ! ...Une seconde. Une brume mystique ? \"Oh non\", dit <strong>InspectorCaracal</strong>, inquiet. \"On dirait qu'une espèce d'esprit est à l'origine de cette brume. Oh, et il est en train de foncer droit sur vous.\"",
"questGhostStagCompletion": "L'esprit, apparemment indemne, baisse les yeux vers le sol. Une voix apaisante enveloppe votre équipe. \"Je vous demande pardon pour mon comportement. Je venais de sortir de mon sommeil, et il semble que je n'avais pas encore retrouvé toute ma raison. S'il vous plaît, prenez ceci en guise d'excuses.\" Une grappe dœufs apparaît sur l'herbe devant l'esprit. Sans dire un mot de plus, l'esprit s'enfuit dans la forêt, des fleurs tombant dans son sillage.",
"questGhostStagBoss": "Cerf fantôme",
"questGhostStagDropDeerEgg": "Cerf (Œuf)",
@ -35,7 +35,7 @@
"questRatDropRatEgg": "Rat (Œuf)",
"questRatUnlockText": "Déverrouille l'achat dœufs de rat au marché",
"questOctopusText": "L'appel d'Octothulu",
"questOctopusNotes": "@Urse, un jeune scribe à l'air hagard, a demandé votre aide pour explorer une grotte mystérieuse en bordure de mer. Au milieu des flaques crépusculaires se dresse une énorme porte constituée de stalactites et stalagmites. Alors que vous vous en approchez, un sombre tourbillon commence à tournoyer à sa base. Vous restez figé par l'effroi tandis qu'un dragon à l'allure de pieuvre émerge du portail. \"Le gluant produit des étoiles s'est réveillé,\" hurle @Urse en proie à la folie. \"Après des vigintillions d'années, le grand Octothulu est à nouveau libre, et ivre de joie !\"",
"questOctopusNotes": "@Urse, un jeune scribe à l'air hagard, a demandé votre aide pour explorer une grotte mystérieuse en bordure de mer. Au milieu des flaques crépusculaires se dresse une énorme porte constituée de stalactites et stalagmites. Alors que vous vous en approchez, un sombre tourbillon commence à tournoyer à sa base. Vous restez figé par l'effroi tandis qu'un dragon à l'allure de pieuvre émerge du portail. \"Le gluant rejeton des étoiles s'est réveillé,\" hurle @Urse en proie à la folie. \"Après des vigintillions d'années, le grand Octothulu est à nouveau libre, et ivre de joie !\"",
"questOctopusCompletion": "Terrassée par ce dernier coup, la créature s'enfonce lentement dans le tourbillon d'où elle avait émergé. Vous ne sauriez dire si @Urse est heureux de votre victoire, ou attristé par la disparition de la bête. Sans un mot, votre compagnon montre du doigt les trois gargantuesques œufs gluants qui reposent près de vous, dans un nid de pièces d'or. «Ce doit être des œufs de pieuvre», dites-vous nerveusement. Sur le chemin du retour, @Urse griffonne frénétiquement dans son carnet. Vous avez l'impression que vous n'avez pas fini d'entendre parler du grand Octothulu...",
"questOctopusBoss": "Octothulu",
"questOctopusDropOctopusEgg": "Pieuvre (Œuf)",
@ -46,7 +46,7 @@
"questHarpyBoss": "Harpie",
"questHarpyDropParrotEgg": "Perroquet (Œuf)",
"questHarpyUnlockText": "Déverrouille l'achat dœufs de perroquet au marché",
"questRoosterText": "La colère du coq",
"questRoosterText": "le coq courroucé",
"questRoosterNotes": "Pendant des années, les coqs du fermier @extrajordinary ont fait office de réveil-matin. Cependant, un coq géant vient de faire son apparition, avec une voix bien plus forte que ses congénères et réveille tout le monde à Habitica ! Les citoyens, privés de sommeil, se débattent avec leurs tâches Quotidiennes. @Pandoro a décidé qu'il était temps d'y mettre un terme. \"Je vous en prie, n'y a-t-il personne pour apprendre à ce coq à chanter paisiblement ? \" Vous vous portez volontaire et approchez le coq à l'aube - mais il fait volte-face, bat ses ailes géantes, exhibe ses serres aiguisées, et pousse un cri de guerre.",
"questRoosterCompletion": "Vous avez dompté la bête sauvage avec puissance et habileté. Ses oreilles, jusque-là remplies de plumes et de tâches à moitié oubliées, sont désormais dégagées. Il commence à chanter paisiblement, et pelotonne son bec contre votre épaule. Le jour suivant, vous vous apprêtez à partir, lorsque @EmeraldOx vous rejoint en courant avec un panier recouvert d'un linge. \"Attendez ! Lorsque j'ai pénétré dans le poulailler ce matin, le coq avait poussé ceci contre la porte de la pièce où vous dormiez. Il voulait certainement vous les donner.\" Vous soulevez le linge et découvrez trois œufs délicats.",
"questRoosterBoss": "Coq",
@ -60,12 +60,12 @@
"questSpiderUnlockText": "Déverrouille l'achat dœufs d'araignée au marché",
"questGroupVice": "Vice la vouivre des ténèbres",
"questVice1Text": "Vice, 1re partie : libérez-vous de l'influence du dragon",
"questVice1Notes": "<p>On dit que repose un mal terrible dans les cavernes du Mont Habitica. Un monstre dont la présence écrase la volonté des plus déterminés héros de la contrée, les poussant aux mauvaises habitudes et à la paresse ! La bête est un grand dragon, aux pouvoirs immenses, et constitué des ténèbres elles-mêmes : Vice, la perfide vouivre de l'ombre. Braves Habiticiens et Habiticiennes, levez-vous et terrassez cette ignoble bête une fois pour toutes, mais seulement si vous pensez pouvoir affronter son immense pouvoir.</p><h3> Vice, 1ère partie : </h3><p>Comment pourriez-vous vaincre une bête qui a déjà le contrôle sur vous ? Alors ne succombez pas à la paresse et au vice ! Travaillez dur pour contrer l'influence noire du dragon et dissiper son emprise sur vous !</p>",
"questVice1Notes": "<p>On dit que repose un mal terrible dans les cavernes du Mont Habitica. Un monstre dont la présence écrase la volonté des héros les plus déterminés de la contrée, les poussant aux mauvaises habitudes et à la paresse ! La bête est un grand dragon, aux pouvoirs immenses, et constitué des ténèbres elles-mêmes : Vice, la perfide vouivre de l'ombre. Braves Habiticiens et Habiticiennes, levez-vous et terrassez cette ignoble bête une fois pour toutes, mais seulement si vous pensez pouvoir affronter son immense pouvoir.</p><h3> Vice, 1ère partie : </h3><p>Comment pourriez-vous vaincre une bête qui a déjà le contrôle sur vous ? Alors ne succombez pas à la paresse et au vice ! Travaillez dur pour contrer l'influence noire du dragon et dissiper son emprise sur vous !</p>",
"questVice1Boss": "Ombre de Vice",
"questVice1Completion": "Une fois l'emprise de Vice dissipée, vous sentez revenir une force que vous ne pensiez pas avoir en vous. Félicitations ! Mais un ennemi encore plus terrifiant vous attend...",
"questVice1DropVice2Quest": "Vice, 2e partie (Parchemin)",
"questVice2Text": "Vice, 2e partie : trouvez la tanière de la vouivre",
"questVice2Notes": "Fière d'elle et de son aptitude à résister à l'emprise de la vouivre, votre équipe prend la route vers le Mont Habitica. Vous arrivez à l'entrée des cavernes de la montagne et stoppez net. Une houle d'ombre, pareil à un brouillard, s'échappe de l'ouverture. Il est presque impossible de voir quoi que ce soit en face de vous. La lumière de vos lanternes semble s'interrompre brusquement là où commencent les ombres. Il est dit que seule une lumière magique peut percer la brume infernale du dragon. Si vous arrivez à réunir assez de cristaux de lumière, vous pourrez atteindre le dragon.",
"questVice2Notes": "Fière d'elle et de son aptitude à résister à l'emprise de la vouivre, votre équipe prend la route vers le Mont Habitica. Vous arrivez à l'entrée des cavernes de la montagne et stoppez net. Une émanation d'ombre, pareil à un brouillard, s'échappe de l'ouverture. Il est presque impossible de voir quoi que ce soit en face de vous. La lumière de vos lanternes semble s'interrompre brusquement là où commencent les ombres. Il est dit que seule une lumière magique peut percer la brume infernale du dragon. Si vous arrivez à réunir assez de cristaux de lumière, vous pourrez atteindre le dragon.",
"questVice2CollectLightCrystal": "Cristaux de lumière",
"questVice2Completion": "Alors que vous levez le dernier cristal, les ombres disparaissent, et votre chemin se révèle. Le cœur battant, vous entrez dans la caverne.",
"questVice2DropVice3Quest": "Vice, 3e partie (Parchemin)",
@ -80,7 +80,7 @@
"questMoonstone1Text": "Récidive, 1e partie : la chaîne de pierres de lune",
"questMoonstone1Notes": "Un terrible mal a frappé les Habiticiens et Habiticiennes. Les mauvaises habitudes qu'on croyait anéanties depuis longtemps se relèvent pour se venger. La vaisselle sale s'accumule, les livres traînent délaissés, et la procrastination se répand au galop !<br><br>Vous traquez certaines de vos mauvaises habitudes, revenues vous hanter, et votre chasse vous mène jusqu'aux Marais de la stagnation. Là, vous découvrez la responsable de vos malheurs : Récidive, la nécromancienne fantôme. Vous foncez, armes au clair, mais elles traversent son corps spectral, sans lui causer la moindre égratignure.<br><br>\"Ne te fatigue pas\", siffle-t-elle d'un grincement sec. \"Sans une chaîne de pierres de lune, rien ne peut m'atteindre. Et le maître joaillier @aurakami a dispersé toutes les pierres à travers Habitica il y a longtemps !\" Haletant, vous êtes contraint de battre en retraite... mais vous savez désormais ce qu'il vous reste à faire.",
"questMoonstone1CollectMoonstone": "Pierres de lune",
"questMoonstone1Completion": "Enfin, vous réussissez à extirper la dernière pierre de lune des boues marécageuses. Il est temps pour vous de transformer votre collection en une arme capable d'anéantir Récidive !",
"questMoonstone1Completion": "Enfin, vous réussissez à extirper la dernière pierre de lune des boues marécageuses. Il est temps pour vous de transformer votre récolte en une arme capable d'anéantir Récidive !",
"questMoonstone1DropMoonstone2Quest": "Récidive, 2e partie : Récidive la nécromancienne (Parchemin)",
"questMoonstone2Text": "Récidive, 2e partie : Récidive la nécromancienne",
"questMoonstone2Notes": "Le courageux forgeron @InspectorCaracal vous aide à façonner les pierres de lune enchantées en parure. Tout est prêt désormais pour affronter Récidive, mais alors que vous pénétrez dans les Marais de la stagnation, un sinistre frisson vous envahit.<br><br>Une haleine fétide murmure à votre oreille. \"De retour ? Comme c'est exquis...\" Vous pivotez et vous jetez en avant, et sous la lumière de la chaîne en pierres de lune, votre arme frappe de la chair bien réelle. \"Tu m'as peut-être enchaînée à ce monde une fois de plus\", gronde Récidive, \"mais il est maintenant temps pour toi de le quitter !\"",
@ -89,13 +89,13 @@
"questMoonstone2DropMoonstone3Quest": "Récidive, 3e partie : la transformation de Récidive (Parchemin)",
"questMoonstone3Text": "Récidive, 3e partie : la transformation de Récidive",
"questMoonstone3Notes": "Récidive s'effondre au sol, et vous la frappez avec la chaîne de pierres de lune. À votre grande horreur, Récidive saisit les pierres, les yeux brûlants de triomphe.<br><br>\"Pauvre créature de chair !\" lance-t-elle. \"Ces pierres de lune me rendent ma forme physique, c'est vrai, mais pas comme tu l'imaginais. Comme la pleine lune croît de l'obscurité, mon pouvoir grandit, et des ténèbres j'invoque le spectre de ton plus terrible adversaire !\"<br><br>Un brouillard verdâtre s'élève du marais, et le corps de Récidive s'agite et se tort, prenant une forme qui vous emplit d'effroi le corps mort-vivant de Vice, horriblement ranimé.",
"questMoonstone3Completion": "Votre souffle devient court et la sueur vous brûle les yeux alors que la vouivre mort-vivant s'effondre. Les restes de Récidive se dissipent en une fine brume grise qui s'évanouit bien vite sous les assauts d'une brise rafraîchissante, et vous entendez les clameurs distantes des Habiticiens et Habiticiennes, triomphant de leurs mauvaises habitudes une bonne fois pour toutes.<br><br>@Baconsaur le Maître des bêtes descend sur un griffon. \"J'ai vu la fin de votre combat depuis le ciel, et j'ai été très touché. Acceptez cette tunique enchantée... votre bravoure est la marque d'un noble cœur, et je vous crois digne de la recevoir.\"",
"questMoonstone3Completion": "Votre souffle devient court et la sueur vous brûle les yeux alors que la vouivre morte-vivante s'effondre. Les restes de Récidive se dissipent en une fine brume grise qui s'évanouit bien vite sous les assauts d'une brise rafraîchissante, et vous entendez les clameurs distantes des Habiticiens et Habiticiennes, triomphant de leurs mauvaises habitudes une bonne fois pour toutes.<br><br>@Baconsaur le Maître des bêtes descend sur un griffon. \"J'ai vu la fin de votre combat depuis le ciel, et j'ai été très touché. Acceptez cette tunique enchantée... votre bravoure est la marque d'un noble cœur, et je vous crois digne de la recevoir.\"",
"questMoonstone3Boss": "Nécro-Vice",
"questMoonstone3DropRottenMeat": "Côtelette avariée (Nourriture)",
"questMoonstone3DropZombiePotion": "Potion d'éclosion zombie",
"questGroupGoldenknight": "La chevaleresse d'or",
"questGoldenknight1Text": "La chevaleresse d'or, 1re partie : une sévère remontrance",
"questGoldenknight1Notes": "La chevaleresse d'or tombe sur le dos des pauvres citoyens d'Habitica. Vous n'avez pas fait toutes vos quotidiennes ? Vous avez cédé à une mauvaise habitude ? Elle s'en servira comme raison pour vous rabâcher que vous devez suivre son exemple. Elle est l'exemple brillant d'une Habiticienne parfaite, et vous n'êtes qu'un raté. Hé bien, ce n'est pas gentil du tout, ça ! Tout le monde fait des erreurs ! Et on ne devrait pas subir de telles critiques pour si peu. Il est peut-être temps de récolter quelques témoignages d'habitants blessés et d'avoir une petite discussion avec la chevaleresse d'or !",
"questGoldenknight1Notes": "La chevaleresse d'or tombe sur le dos des pauvres citoyennes et citoyens d'Habitica. Vous n'avez pas fait toutes vos tâches quotidiennes ? Vous avez cédé à une mauvaise habitude ? Elle s'en servira comme raison pour vous rabâcher que vous devez suivre son exemple. Elle est l'exemple brillant d'une Habiticienne parfaite, et vous n'êtes qu'un raté. Hé bien, ce n'est pas gentil du tout, ça ! Tout le monde fait des erreurs ! Et on ne devrait pas subir de telles critiques pour si peu. Il est peut-être temps de récolter quelques témoignages d'habitants blessés et d'avoir une petite discussion avec la chevaleresse d'or !",
"questGoldenknight1CollectTestimony": "Témoignages",
"questGoldenknight1Completion": "Regardez tous ces témoignages ! De toute évidence, cela suffira à convaincre la chevaleresse d'or. Tout ce qu'il vous reste à faire, c'est la trouver.",
"questGoldenknight1DropGoldenknight2Quest": "La chevaleresse d'or, 2e partie : le chevalier au féminin (Parchemin)",
@ -106,7 +106,7 @@
"questGoldenknight2DropGoldenknight3Quest": "La chevaleresse d'or, 3e partie : le chevalier de fer (Parchemin)",
"questGoldenknight3Text": "La chevaleresse d'or, 3e partie : le chevalier de fer",
"questGoldenknight3Notes": "@Jon Arinbjorn vous appelle pour attirer votre attention. À la suite de votre bataille, un nouveau personnage est apparu. Un chevalier dans une armure de fer veiné de noir s'approche lentement de vous, l'épée à la main. La chevaleresse d'or lui crie \"Père, non !\" mais le chevalier ne montre aucun signe de ralentissement. Elle se tourne vers vous et dit : \"Je suis désolée. J'étais inconsciente, avec bien trop la grosse tête pour voir à quel point j'étais devenue cruelle. Mais mon père est bien plus terrible que je ne pourrais l'être. Si on ne l'arrête pas, il nous détruira tous. Tiens, prend mon fléau et arrête le chevalier de fer !\"",
"questGoldenknight3Completion": "Dans un fracas qu'il est agréable d'entendre, le chevalier de fer tombe à genoux et s'effondre. \"Tu es plutôt bon\", halète-t-il. \"J'ai été humilié, aujourd'hui.\" La chevaleresse s'approche et vous dit : \"Merci. Je crois que j'ai gagné en humilité dans notre rencontre. Je parlerai à mon père et lui expliquerai que l'on se plaint de nous. Peut-être devrions-nous nous excuser auprès de nos concitoyens.\" Elle réfléchit, puis revient vers vous. \"Tenez, en cadeau, j'aimerais que vous gardiez mon fléau. Il est à vous maintenant.\"",
"questGoldenknight3Completion": "Dans un délectable fracas, le chevalier de fer tombe à genoux et s'effondre. \"Tu es plutôt bon\", halète-t-il. \"J'ai été humilié, aujourd'hui.\" La chevaleresse s'approche et vous dit : \"Merci. Je crois que j'ai gagné en humilité dans notre rencontre. Je parlerai à mon père et lui expliquerai que l'on se plaint de nous. Peut-être devrions-nous nous excuser auprès de nos concitoyens.\" Elle réfléchit, puis revient vers vous. \"Tenez, en cadeau, j'aimerais que vous gardiez mon fléau. Il est à vous maintenant.\"",
"questGoldenknight3Boss": "Chevalier de fer",
"questGoldenknight3DropHoney": "Once de miel (Nourriture)",
"questGoldenknight3DropGoldenPotion": "Potion d'éclosion d'or",
@ -156,18 +156,18 @@
"questAtom3DropPotion": "Potion d'éclosion de base",
"questOwlText": "L'oiseau de nuit",
"questOwlNotes": "La lumière de la taverne est allumée jusqu'à l'aurore.<br>Jusqu'à ce qu'un soir la lueur s'évapore !<br>Pour nos nuits blanches, comment y voir, maintenant ?<br>@Twitching crie : \"J'ai besoin de combattants !<br>Voyez-vous cet oiseau de nuit, ennemi étoilé ?<br>Battez-vous en hâte, pas de temps à gâcher !<br>Nous conduirons son ombre au-delà de notre porte,<br>Et ferons que la nuit brille à nouveau de la sorte !\"",
"questOwlCompletion": "Avant laube disparaît l'oiseau de nuit aux yeux scintillants.<br>Cest alors que vous sentez venir un bâillement.<br>Peut-être est-il temps de se mettre au lit ?<br>Posé sur votre couette, vous apercevez un nid !<br>Un oiseau de nuit sait quil y a du bon à terminer<br>Toutes ses taches avant d'aller se coucher.<br>Mais vos nouveaux familiers gazouilleront doucement<br>pour vous indiquer le chemin de lendormissement.",
"questOwlCompletion": "Avant laube disparaît l'oiseau de nuit aux yeux scintillants.<br>Cest alors que vous sentez venir un bâillement.<br>Peut-être est-il temps de se mettre au lit ?<br>Blotti dans votre couette, vous apercevez un nid !<br>Un oiseau de nuit sait quil y a du bon à terminer<br>Toutes ses taches avant d'aller se coucher.<br>Mais vos nouveaux familiers gazouilleront doucement<br>pour vous indiquer le chemin de lendormissement.",
"questOwlBoss": "Oiseau de nuit",
"questOwlDropOwlEgg": "Chouette (Œuf)",
"questOwlUnlockText": "Déverrouille l'achat dœufs de chouette au marché",
"questPenguinText": "Le gorfou glacé",
"questPenguinNotes": "Bien quil sagisse dune chaude journée dété pour les résidents de la pointe sud dHabitica, un étrange froid vient de sabattre sur le Lac vif. Des vents forts et glaciaux soufflent sur la rive qui commence à geler. Lherbe et la terre font désormais place à des pics de glace jaillissant du sol. @Melynnrose et @Breadstrings accourent vers vous.<br><br>\"À laide !\" crie @Melynnrose. \"Nous avons ramené un manchot géant au lac en espérant quil allait le geler et nous permettre d'en faire une patinoire, mais nous navons plus assez de poissons pour le nourrir !\"<br><br>\"Il sest mis dans une colère froide et utilise désormais son souffle glacial pour tout geler sur son passage !\" dit @Breadstrings. \"Sil vous plaît, maîtrisez-le avant que nous ne soyons tous transformés en statue de glace !\" On dirait que vous avez besoin de…<em>refroidir</em>... les ardeurs de ce manchot.",
"questPenguinCompletion": "Après la défaite du manchot, la glace fond comme neige au soleil. Le gigantesque gorfou sinstalle tranquillement au soleil, dévorant bruyamment le seau de poissons que vous venez de trouver. Il se lève ensuite pour un tour de patinage sur le la,c tout en soufflant afin de créer une fine couche de glace étincelante. Quel drôle doiseau ! \"Il semble quil ait laissé quelques œufs derrière lui\" dit @Painter de Cluster.<br><br>@Rattify sesclaffe : \"Peut-être que dorénavant, ces manchots seront un peu plus… cool ? \"",
"questPenguinCompletion": "Après la défaite du manchot, la glace fond comme neige au soleil. Le gigantesque gorfou sinstalle tranquillement au soleil, dévorant bruyamment le seau de poissons que vous venez de trouver. Il se lève ensuite pour un tour de patinage sur le lac tout en soufflant afin de créer une fine couche de glace étincelante. Quel drôle doiseau ! \"Il semble quil ait laissé quelques œufs derrière lui\" dit @Painter de Cluster.<br><br>@Rattify sesclaffe : \"Peut-être que dorénavant, ces manchots seront un peu plus… cool ? \"",
"questPenguinBoss": "Gorfou glacé",
"questPenguinDropPenguinEgg": "Manchot (Œuf)",
"questPenguinUnlockText": "Déverrouille l'achat dœufs de manchot au marché",
"questStressbeastText": "L'Abominable monstressé des steppes stoïcalmes",
"questStressbeastNotes": "Complétez vos tâches quotidiennes et à faire pour infliger des dégâts au boss mondial ! Les tâches quotidiennes manquées alimentent la barre de Coup de stress. Quand celle-ci est remplie, le boss mondial s'en prendra à un PNJ. Un boss mondial ne blessera jamais de joueurs ou de comptes d'aucune manière. Seules les tâches Quotidiennes des comptes actifs ne résidant pas à l'auberge sont prises en compte.<br><br>~*~<br><br> La première chose que l'on entend sont les bruits de pas, plus lents mais plus tonitruants qu'une foule en débandade. Un par un, les Habiticiens et Habiticiennes regardent au dehors, et les mots leur manquent.<br><br>Nous avons tous vu des monstressés auparavant, bien sûr ; des vicieuses petites créatures qui attaquent quand les temps sont difficiles. Mais ça ? Ça domine les bâtiments, avec des pattes qui pourraient écraser un dragon avec aisance. Du givre tombe de sa fourrure nauséabonde en se balançant, et quand il rugit, son souffle glacé arrache les toits de nos maisons. Un monstre de cette magnitude n'a jamais été mentionné, en dehors d'une distante légende.<br><br>\"Prenez garde, Habiticiens !\" hurle Sabrecat. \"Barricadez-vous c'est l'Abominable monstressé lui-même !\"<br><br>\"Cette chose doit être faite de siècles de stress !\" dit Kiwibot, fermant la porte de la taverne à double tour et barricadant les fenêtres.<br><br>\"Les steppes stoïcalmes\", dit Lemoness, le visage sinistre. \"Tout ce temps, nous pensions qu'ils étaient placides et sereins, là-bas, mais ils ont dû secrètement cacher leur stress quelque part. Au fil des générations, ce stress s'est accumulé, et maintenant il s'est libéré et il attaque tout le monde eux comme nous !\"<br><br>Il n'y a qu'un seul moyen de chasser un monstressé, abominable ou autre, c'est de l'attaquer avec des tâches Quotidiennes et à faire complétées ! Groupons-nous tous ensemble et combattons cet ennemi redoutable. Mais soyez sûrs de ne pas vous relâcher, ou nos tâches Quotidiennes non-complétées pourraient l'enrager tant qu'il vous maltraiterait...",
"questStressbeastNotes": "Complétez vos tâches quotidiennes et à faire pour infliger des dégâts au boss mondial ! Les tâches quotidiennes manquées alimentent la barre de Coup de stress. Quand celle-ci est remplie, le boss mondial s'en prendra à un PNJ. Un boss mondial ne blessera jamais de joueurs ou de comptes d'aucune manière. Seules les tâches Quotidiennes des comptes actifs ne résidant pas à l'auberge sont prises en compte.<br><br>~*~<br><br> La première chose que l'on entend sont les bruits de pas, plus lents mais plus tonitruants qu'une foule en débandade. Un par un, les Habiticiens et Habiticiennes regardent au dehors, et les mots leur manquent.<br><br>Nous avons tous vu des monstressés auparavant, bien sûr ; des vicieuses petites créatures qui attaquent quand les temps sont difficiles. Mais ça ? Ça domine les bâtiments, avec des pattes qui pourraient écraser un dragon avec aisance. Du givre tombe de sa fourrure nauséabonde en se balançant, et quand il rugit, son souffle glacé arrache les toits de nos maisons. Un monstre de cette magnitude n'a jamais été mentionné, en dehors d'une antique légende.<br><br>\"Prenez garde, Habiticiens !\" hurle Sabrecat. \"Barricadez-vous c'est l'Abominable monstressé lui-même !\"<br><br>\"Cette chose doit être faite de siècles de stress !\" dit Kiwibot, fermant la porte de la taverne à double tour et barricadant les fenêtres.<br><br>\"Les steppes stoïcalmes\", dit Lemoness, le visage sinistre. \"Tout ce temps, nous pensions qu'ils étaient placides et sereins, là-bas, mais ils ont dû secrètement cacher leur stress quelque part. Au fil des générations, ce stress s'est accumulé, et maintenant il s'est libéré et il attaque tout le monde eux comme nous !\"<br><br>Il n'y a qu'un seul moyen de chasser un monstressé, abominable ou autre, c'est de l'attaquer avec des tâches Quotidiennes et à faire complétées ! Groupons-nous tous ensemble et combattons cet ennemi redoutable. Mais soyez sûrs de ne pas vous relâcher, ou nos tâches Quotidiennes non-complétées pourraient l'enrager tant qu'il vous maltraiterait...",
"questStressbeastBoss": "Abominable monstressé",
"questStressbeastBossRageTitle": "Coup de stress",
"questStressbeastBossRageDescription": "Lorsque la jauge sera remplie, l'Abominable monstressé frappera tout Habitica d'un Coup de stress !",
@ -177,8 +177,8 @@
"questStressbeastBossRageBailey": "`L'Abominable monstressé lance Coup de stress !`\n\nLa soudaine poussée de stress guérit l'Abominable monstressé !\n\nAhh !!! Nos Quotidiennes incomplètes ont rendu l'Abominable monstressé plus fou que jamais et lui font regagner une partie de sa force. Bailey la crieuse publique était en train de crier aux citoyens de s'abriter, et maintenant, le monstre la tient dans son autre main ! Regardez-la, continuant à nous donner les informations, alors que la bête de stress la secoue sauvagement ... Soyons dignes de son courage en étant aussi productifs que possible pour sauver nos PNJ !",
"questStressbeastBossRageGuide": "`L'Abominable monstressé lance Coup de stress !`\n\nLa soudaine poussée de stress guérit l'Abominable monstressé !\n\nFaites attention ! Justin le Guide essaye de distraire le monstressé en courant entre ses chevilles et en criant des astuces de productivité ! L'Abominable monstressé essaye violemment de le piétiner, mais il semble que nous l'ayons réellement épuisé. Je doute qu'il ait assez d'énergie pour une nouvelle attaque. N'abandonnez pas ... Nous sommes sur le point de le mettre à bas !",
"questStressbeastDesperation": "`L'Abominable monstressé est maintenant à 500K de santé ! L'Abominable monstressé lance Défense désespérée !`\n\nNous y sommes presque, Habiticiennes et Habiticiens ! Avec de l'assiduité et nos Quotidiennes, nous avons réduit la santé du Monstressé à seulement 500K ! La créature rugit et s'agite, pleine de désespoir, sa colère grandissant plus vite que jamais. Bailey et Matt crient de terreur lorsqu'elle commence à secouer les bras à un rythme effréné, faisant apparaître une aveuglante tempête de neige qui la rend plus difficile à toucher.\n\nNous devrons redoubler d'efforts, mais réjouissez-vous, car c'est un signe que le monstressé sait qu'il est sur le point d'être battu. N'abandonnez pas maintenant !",
"questStressbeastCompletion": "<strong>L'Abominable monstressé est VAINCU !</strong><br><br>Nous avons réussi ! D'un dernier coup, l'Abominable monstressé se dissipe en un nuage de neige. Les flocons scintillent dans l'air alors que les Habiticiens réjouis étreignent leurs familiers et leurs montures. Nos animaux et nos PNJ sont sains et saufs encore une fois !<br><br><strong>Stoïcalme est sauvé !</strong><br><br>SabreCat dit doucement à un petit tigre à dents de sabre : \"S'il te plait, trouve les citoyens des steppes stoïcalmes et amène-les nous\". Plusieurs heures plus tard, le tigre à dents de sabre revient, avec une meute de chevaucheurs de mammouth à sa suite. Vous reconnaissez le chevaucheur de tête comme étant Dame Givre, dirigeante de Stoïcalme.<br><br>\"Puissants Habiticiens,\" dit-elle, \"Mes citoyens et moi-même vous devons nos plus profonds remerciements, et nos plus sincères excuses. Dans un effort pour protéger nos steppes de la tourmente, nous avons commencé à bannir secrètement tout notre stress dans les montagnes glacées. Nous ne pouvions imaginer qu'il s'accumulerait pendant des générations pour donner naissance au monstressé que vous avez combattu ! Quand il s'est libéré, il nous a enfermé dans les montagnes à sa place, et s'est déchaîné contre nos animaux bien-aimés.\" Son regard triste tombe comme la neige. \"Notre folie a mis tout le monde en danger. Soyez assurés qu'à partir d'aujourd'hui, nous viendrons vous présenter nos problèmes avant que nos problèmes ne vous trouvent.\"<br><br>Elle se tourne vers @Baconsaur qui se pelotonne contre les jeunes mammouths. \"Nous avons apporté à vos animaux une offrande de nourriture, en guise d'excuse pour les avoir effrayés, et comme symbole de confiance, nous vous donnons la garde de certains de nos familiers et de nos montures. Nous savons que vous en prendrez bon soin.\"",
"questStressbeastCompletionChat": "L'Abominable monstressé est VAINCU !\n\nNous avons réussi ! D'un dernier coup, l'Abominable monstressé se dissipe en un nuage de neige. Les flocons scintillent dans l'air alors que les Habiticiens réjouis étreignent leurs familiers et leurs montures. Nos animaux et nos PNJ sont sains et saufs encore une fois !\n\nStoïkalme est sauvé !\n\nSabreCat dit doucement à un petit tigre à dents de sabre : \"S'il te plait, trouve les citoyens des steppes stoïcalmes et amène-les nous\". Plusieurs heures plus tard, le tigre à dents de sabre revient, avec une meute de chevaucheurs de mammouths à sa suite. Vous reconnaissez le chevaucheur de tête comme étant Dame Givre, dirigeante de Stoïcalme.\n\n\"Puissants Habiticiens,\" dit-elle, \"Mes citoyens et moi-même vous devons nos plus profonds remerciements, et nos plus sincères excuses. Dans un effort pour protéger nos steppes de la tourmente, nous avons commencé à bannir secrètement tout notre stress dans les montagnes glacées. Nous ne pouvions imaginer qu'il s'accumulerait pendant des générations pour donner naissance au monstressé que vous avez combattu ! Quand il s'est libéré, il nous a enfermé dans les montagnes à sa place, et s'est déchaîné contre nos animaux bien-aimés.\" Son regard triste tombe comme la neige. \"Notre folie a mis tout le monde en danger. Soyez assurés qu'à partir d'aujourd'hui, nous viendrons vous présenter nos problèmes avant que nos problèmes ne vous trouvent.\"\n\nElle se tourne vers @Baconsaur qui se pelotonne contre les jeunes mammouths. \"Nous avons apporté à vos animaux une offrande de nourriture, en guise d'excuse pour les avoir effrayés, et comme symbole de confiance, nous vous donnons la garde de certains de nos familiers et de nos montures. Nous savons que vous en prendrez bon soin.\"",
"questStressbeastCompletion": "<strong>L'Abominable monstressé est VAINCU !</strong><br><br>Nous avons réussi ! D'un dernier coup, l'Abominable monstressé se dissipe en un nuage de neige. Les flocons scintillent dans l'air alors que les Habiticiens réjouis étreignent leurs familiers et leurs montures. Nos animaux et nos PNJ sont sains et saufs encore une fois !<br><br><strong>Stoïcalme est sauvé !</strong><br><br>SabreCat dit doucement à un petit tigre à dents de sabre : \"S'il te plait, trouve les citoyens des steppes stoïcalmes et amène-les nous\". Plusieurs heures plus tard, le tigre à dents de sabre revient, avec une meute de chevaucheurs de mammouth à sa suite. Vous reconnaissez le chevaucheur de tête comme étant Dame Givre, dirigeante de Stoïcalme.<br><br>\"Puissants Habiticiens,\" dit-elle, \"Mes citoyens et moi-même vous devons nos plus profonds remerciements, et nos plus sincères excuses. Dans un effort pour protéger nos steppes de la tourmente, nous avons commencé à bannir secrètement tout notre stress dans les montagnes glacées. Nous ne pouvions imaginer qu'il s'accumulerait pendant des générations pour donner naissance au monstressé que vous avez combattu ! Quand il s'est libéré, il nous a enfermé dans les montagnes à sa place, et s'est déchaîné contre nos animaux bien-aimés.\" Son regard triste tombe comme la neige. \"Notre folie a mis tout le monde en danger. Soyez assurés qu'à partir d'aujourd'hui, nous viendrons vous présenter nos problèmes avant que nos problèmes ne vous trouvent.\"<br><br>Elle se tourne vers @Baconsaur qui se pelotonne contre les jeunes mammouths. \"Nous avons apporté à vos animaux une offrande de nourriture, en guise d'excuse pour les avoir effrayés, et comme symbole de confiance, nous vous donnons la garde de certains de nos familiers et de nos montures. Nous savons que vous en prendrez grand soin.\"",
"questStressbeastCompletionChat": "L'Abominable monstressé est VAINCU !\n\nNous avons réussi ! D'un dernier coup, l'Abominable monstressé se dissipe en un nuage de neige. Les flocons scintillent dans l'air alors que les Habiticiens réjouis étreignent leurs familiers et leurs montures. Nos animaux et nos PNJ sont sains et saufs encore une fois !\n\nStoïkalme est sauvé !\n\nSabreCat dit doucement à un petit tigre à dents de sabre : \"S'il te plait, trouve les citoyens des steppes stoïcalmes et amène-les nous\". Plusieurs heures plus tard, le tigre à dents de sabre revient, avec une meute de chevaucheurs de mammouths à sa suite. Vous reconnaissez le chevaucheur de tête comme étant Dame Givre, dirigeante de Stoïcalme.\n\n\"Puissants Habiticiens,\" dit-elle, \"Mes citoyens et moi-même vous devons nos plus profonds remerciements, et nos plus sincères excuses. Dans un effort pour protéger nos steppes de la tourmente, nous avons commencé à bannir secrètement tout notre stress dans les montagnes glacées. Nous ne pouvions imaginer qu'il s'accumulerait pendant des générations pour donner naissance au monstressé que vous avez combattu ! Quand il s'est libéré, il nous a enfermé dans les montagnes à sa place, et s'est déchaîné contre nos animaux bien-aimés.\" Son regard triste tombe comme la neige. \"Notre folie a mis tout le monde en danger. Soyez assurés qu'à partir d'aujourd'hui, nous viendrons vous présenter nos problèmes avant que nos problèmes ne vous trouvent.\"\n\nElle se tourne vers @Baconsaur qui se pelotonne contre les jeunes mammouths. \"Nous avons apporté à vos animaux une offrande de nourriture, en guise d'excuse pour les avoir effrayés, et comme symbole de confiance, nous vous donnons la garde de certains de nos familiers et de nos montures. Nous savons que vous en prendrez grand soin.\"",
"questTRexText": "Le roi des dinosaures",
"questTRexNotes": "À présent que des créatures antiques des steppes stoïcalmes vagabondent dans tout Habitica, @Urse a décidé d'adopter un tyrannosaure adulte. Qu'est-ce qui pourrait mal tourner ?<br><br>Tout.",
"questTRexCompletion": "Le dinosaure sauvage met enfin un terme à son carnage et va sagement s'installer à coté des coqs géants. @Urse affiche un sourire radieux. \"Il ne font pas de si terribles familiers, après tout ! Ils ont juste besoin d'une touche de discipline. Tenez, prenez donc quelques œufs de tyrannosaure avec vous.\"",
@ -207,7 +207,7 @@
"questSlimeText": "Le régent de gelée",
"questSlimeNotes": "Pendant que vous réalisez vos tâches, vous remarquez que vous vous déplacez de plus en plus lentement. \"C'est comme marcher dans la mélasse,\" grogne @Leephon. \"Non, c'est comme marcher dans la gelée !\" dit @starsystemic. \"Ce régent de gelée baveux a badigeonné sa substance partout sur Habitica. Ça bousille tout notre travail. Tout le monde ralentit.\" Vous regardez autour de vous. Les rues se remplissent tranquillement d'une vase claire et colorée, et les Habiticiens et Habiticiennes peinent à réaliser quoi que ce soit. Alors que les autres fuient les lieux, vous attrapez une serpillière et vous préparez au combat !",
"questSlimeBoss": "Régent de gelée",
"questSlimeCompletion": "Avec un dernier coup, vous piégez le régent de gelée dans un énorme donut, hâté par @Overomega, @LordDarkly, et @Shaner, les meneurs vifs d'esprit du club de pâtisserie. Alors que tout le monde vous félicite, vous sentez quelqu'un glisser quelque chose dans votre poche. C'est la récompense pour votre prompt succès : trois œufs de boule de guimauve.",
"questSlimeCompletion": "Avec un dernier coup, vous piégez le régent de gelée dans un énorme donut, préparé à la hâte par @Overomega, @LordDarkly, et @Shaner, les meneurs ingénieux du club de pâtisserie. Alors que tout le monde vous félicite, vous sentez quelqu'un glisser quelque chose dans votre poche. C'est la récompense pour votre prompt succès : trois œufs de boule de guimauve.",
"questSlimeDropSlimeEgg": "Boule de guimauve (Œuf)",
"questSlimeUnlockText": "Déverrouille l'achat dœufs de boule de guimauve au marché",
"questSheepText": "Le bélier du tonnerre",
@ -222,7 +222,7 @@
"questKrakenCompletion": "Alors que le kraken s'enfuit, plusieurs œufs remontent à la surface. Lemoness les examine et sa méfiance se change bientôt en ravissement. \"Des œufs de seiche !\", dit-elle. \"Tenez, prenez-les en récompense de tout ce que vous avez accompli.\"",
"questKrakenDropCuttlefishEgg": "Seiche (Œuf)",
"questKrakenUnlockText": "Déverrouille l'achat dœufs de seiche au marché",
"questWhaleText": "Les lamentations de la baleine",
"questWhaleText": "La mélopée du cétacé",
"questWhaleNotes": "Vous arrivez aux Quais assidus, espérant prendre un sous-marin pour assister au derby de Dilatoire. Soudain, un mugissement assourdissant vous force à vous arrêter et couvrir vos oreilles. \"La grande bleue !\" crie le Capitaine @krazjega, en pointant une gigantesque baleine gémissante. \"Impossible d'immerger nos sous-marins tandis qu'elle se débat !\"<br><br>\"Vite,\" vous somme @UncommonCriminal. \"Aidez-moi à calmer la pauvre créature pour qu'on puisse comprendre pourquoi elle fait tout ce bruit !\"",
"questWhaleBoss": "Baleine gémissante",
"questWhaleCompletion": "Après de nombreux efforts, la baleine cesse finalement son cri tonitruant. \"On dirait qu'elle était en train de se noyer dans des vagues de mauvaises habitudes,\" explique @zoebeagle. \"Grâce à vos efforts constants, nous avons pu changer le courant !\" Alors que vous prenez pied dans le sous-marin, plusieurs œufs de baleine voguent vers vous, et vous les ramassez.",
@ -259,7 +259,7 @@
"questCheetahDropCheetahEgg": "Guépard (Œuf)",
"questCheetahUnlockText": "Déverrouille l'achat d'œufs de guépard au marché",
"questHorseText": "La chevauchée cauchemardesque",
"questHorseNotes": "Tandis que vous vous relaxez à la taverne avec @beffymaroo et @JessicaChase, la discussion tourne à la vantardise autour de vos récents exploits. Superbe devant vos actes, et vous laissant un peu emporter, vous fanfaronnez à propos du fait que vous pouvez dompter n'importe quelle tâche alentour. Un étranger proche se tourne vers vous et sourit. Un œil pétillant, il vous invite à prouver vos dires en chevauchant son cheval.\nAlors que vous vous dirigez vers l'écurie, @UncommonCriminal murmure : \"Tu t'attaques à plus fort que toi. Ce n'est pas un simple cheval, c'est un Tarpan-tise !\" En regardant les sabots piétiner le sol, vous commencez à regretter vos paroles...",
"questHorseNotes": "Tandis que vous vous relaxez à la taverne avec @beffymaroo et @JessicaChase, la discussion tourne à la vantardise autour de vos récents exploits. Satisfait de vos réussites, et vous laissant un peu emporter, vous fanfaronnez à propos du fait que vous pouvez dompter n'importe quelle tâche alentour. Un étranger proche se tourne vers vous et sourit. L'œil pétillant, il vous invite à prouver vos dires en chevauchant son cheval.\nAlors que vous vous dirigez vers l'écurie, @UncommonCriminal murmure : \"Tu t'attaques à plus fort que toi. Ce n'est pas un simple cheval, c'est un Tarpan-tise !\" En regardant les sabots piétiner le sol, vous commencez à regretter vos paroles...",
"questHorseCompletion": "Vous faites usage de toute votre habileté, et finalement le cheval piétine et colle son museau contre votre épaule avant de vous autoriser à le monter. Vous chevauchez brièvement sur les terres entourant la taverne, alors que vos amis vous encouragent. L'étranger vous fait un grand sourire.\n\"Je vois que ce n'était pas que vantardise ! Votre détermination est vraiment impressionnante. Prenez ces œufs pour élever vos propres chevaux, et peut-être un jour nous rencontrerons-nous à nouveau.\" Vous prenez les œufs, l'étranger penche son chapeau ... et disparaît.",
"questHorseBoss": "Tarpan-tise",
"questHorseDropHorseEgg": "Cheval (Œuf)",
@ -271,8 +271,8 @@
"questBurnoutBoss": "Burnout",
"questBurnoutBossRageTitle": "Attaque d'échappement",
"questBurnoutBossRageDescription": "Lorsque la jauge sera remplie, Burnout déchaînera son attaque d'échappement sur Habitica !",
"questBurnoutDropPhoenixPet": "Phoenix (Familier)",
"questBurnoutDropPhoenixMount": "Phoenix (Monture)",
"questBurnoutDropPhoenixPet": "Phenix (Familier)",
"questBurnoutDropPhoenixMount": "Phenix (Monture)",
"questBurnoutBossRageQuests": "`Burnout lance ATTAQUE D'ÉCHAPPEMENT !`\n\nOh non ! Malgré nos efforts redoublés , nous avons laissé quelques Quotidiennes nous échapper, et maintenant Burnout est embrasé d'énergie ! Avec un grognement crépitant, il engloutit Ian le Maître des quêtes dans une vague de feu spectral. Alors que des parchemins de quêtes, tombés au sol, se consument, la fumée se lève et vous voyez que Ian a été vidé de son énergie et n'est plus maintenant qu'un esprit d'échappement à la dérive. \n\nSeule la victoire contre Burnout peut rompre le sort et revivifier notre Maître des quêtes bien-aimé. Effectuons nos Quotidiennes et vainquons ce monstre avant qu'il n'attaque encore !",
"questBurnoutBossRageSeasonalShop": "`Burnout lance une ATTAQUE D'EXTÉNUATION !`\n\nAhh !!! Nos Quotidiennes inachevées ont alimenté les flammes de Burnout, et voilà qu'il a suffisamment d'énergie pour frapper de nouveau ! Il envoie une langue de feu spectral qui calcine la boutique saisonnière. Vous êtes horrifié de voir que l'enthousiaste sorcière saisonnière a été transformée en un esprit d'exténuation tout mou.\n\nNous devons sauver nos PNJ ! Vite, Habiticiens et Habiticiennes, effectuez vos tâches et vainquez Burnout avant qu'il ne frappe pour la troisième fois !",
"questBurnoutBossRageTavern": "`Burnout lance ATTAQUE D'ÉCHAPPEMENT !`\n\nBeaucoup d'Habiticiens et d'Habiticiennes ont échappé à Burnout dans la taverne, mai c'est terminé! Avec un hurlement perçant, Burnout ratisse la taverne avec ses mains chauffées à blanc. Alors que les usagers de la taverne s'enfuient, Daniel est empoigné par Burnout et se transforme en esprit d'échappement sous vos yeux !\n\nCette horreur exaltée se prolonge vraiment trop. N'abandonnez pas... nous sommes si près de vaincre Burnout une fois pour toutes !",
@ -289,14 +289,14 @@
"questSnakeDropSnakeEgg": "Serpent (Œuf)",
"questSnakeUnlockText": "Déverrouille l'achat dœufs de serpent au marché",
"questUnicornText": "Convaincre la reine licorne",
"questUnicornNotes": "La crique Conquête est devenue boueuse et a détruit l'approvisionnement d'eau potable d'Habitiville ! Heureusement une vieille légende, connue de @Lukreja, prétend qu'avec la corne d'une licorne, la plus immonde des eaux peut être purifiée. En compagnie de votre intrépide guide @UncommonCriminal, vous escaladez les cimes enneigées des monts Sinueux. C'est ainsi qu'au sommet glacé du Mont-Habitica lui-même, parmi les neiges étincelantes, vous découvrez la reine licorne. \"Votre requête est frappante\", vous dit-elle. \"Cependant, vous devrez d'abord prouver que vous êtes dignes de mon aide !\"",
"questUnicornNotes": "La crique Conquête est devenue boueuse et a détruit l'approvisionnement d'eau potable d'Habitiville ! Heureusement une vieille légende, connue de @Lukreja, prétend qu'avec la corne d'une licorne, la plus immonde des eaux peut être purifiée. En compagnie de votre intrépide guide @UncommonCriminal, vous escaladez les cimes enneigées des monts Sinueux. C'est ainsi qu'au sommet glacé du Mont Habitica lui-même, parmi les neiges étincelantes, vous découvrez la reine licorne. \"Votre requête est éloquente\", vous dit-elle. \"Cependant, vous devrez d'abord prouver que vous êtes dignes de mon aide !\"",
"questUnicornCompletion": "Impressionnée par votre force et votre diligence, la reine licorne accepte enfin la valeur de votre quête. Vous permettant de monter sur son dos, elle sélance vers la source de la crique Conquête. Alors quelle abaisse sa corne dorée dans leau polluée, une lumière bleue éblouissante sélève de la surface de leau. Elle est si aveuglante que vous devez fermer les yeux. Quand vous les ouvrez à nouveau, un instant plus tard, la licorne a disparu. Mais @rosiesully pousse un cri de joie : leau est à présent claire et trois œufs étincelants reposent à lorée de la crique.",
"questUnicornBoss": "Reine licorne",
"questUnicornDropUnicornEgg": "Licorne (Œuf)",
"questUnicornUnlockText": "Déverrouille l'achat dœufs de licorne au marché",
"questSabretoothText": "Le tigre à dents de sabre",
"questSabretoothNotes": "Un monstre rugissant terrorise Habitica ! La créature erre entre bois et forêts et tout-à-coup attaque, avant de s'évanouir dans la nature. Elle chasse les pandas sans défense et effraie tant les cochons volants qu'ils quittent leurs enclos et se perchent dans les arbres. @InspectorCaracal et @icefelis expliquent qu'ils ont malencontreusement libéré un tigre à dents de sabre zombie alors qu'ils faisaient des fouilles dans les antiques glaces vierges des steppes stoïcalmes. \"Il était tout-à-fait aimable au début. Je ne comprends pas ce qui s'est passé. Je vous en prie, vous devez nous aider à l'attraper ! Seul un champion d'Habitica peut espérer maîtriser ce monstre préhistorique.\"",
"questSabretoothCompletion": "Après un long et fatiguant combat en corps-à-corps, vous immobilisez le tigre à dents de sabre zombie au sol. Collé à lui, le maintenant solidement, vous remarquez une vilaine carie dans l'une de ses immenses canines. Comprenant enfin la raison de la rage du tigre, vous faites soigner la carie par @Fandekasp et dites gentiment au groupe que dorénavant, il vaudrait mieux éviter de donner des bonbons à leur ami tigre. Le tigre à dents de sabre grandit de manière spectaculaire, et ses dompteurs, pleins de gratitude, vous envoient une grande récompense : une couvée dœufs au motif strié !",
"questSabretoothNotes": "Un monstre rugissant terrorise Habitica ! La créature erre entre bois et forêts puis brusquement attaque, avant de s'évanouir dans la nature. Elle chasse les pandas sans défense et effraie tant les cochons volants qu'ils quittent leurs enclos et se perchent dans les arbres. @InspectorCaracal et @icefelis expliquent qu'ils ont malencontreusement libéré un tigre à dents de sabre zombie alors qu'ils faisaient des fouilles dans les antiques glaces vierges des steppes stoïcalmes. \"Il était tout-à-fait aimable au début. Je ne comprends pas ce qui s'est passé. Je vous en prie, vous devez nous aider à l'attraper ! Seul un champion d'Habitica peut espérer maîtriser ce monstre préhistorique.\"",
"questSabretoothCompletion": "Après un long et fatiguant combat en corps-à-corps, vous immobilisez le tigre à dents de sabre zombie au sol. Collé à lui, le maintenant solidement, vous remarquez une vilaine carie dans l'une de ses immenses canines. Comprenant enfin la raison de la rage du tigre, vous faites soigner la carie par @Fandekasp et dites gentiment au groupe que dorénavant, il vaudrait mieux éviter de donner des bonbons à leur ami tigre. Le tigre à dents de sabre grandit de manière spectaculaire, et ses dompteurs, pleins de gratitude, vous envoient une généreuse récompense : une couvée dœufs au motif strié !",
"questSabretoothBoss": "Tigre à dents de sabre zombie",
"questSabretoothDropSabretoothEgg": "Tigre à dents de sabre (Œuf)",
"questSabretoothUnlockText": "Déverrouille l'achat dœufs de tigre à dents de sabre au marché",
@ -313,19 +313,19 @@
"questSnailDropSnailEgg": "Escargot (Œuf)",
"questSnailUnlockText": "Déverrouille l'achat dœufs d'escargot au marché",
"questBewilderText": "L'être déchaîné",
"questBewilderNotes": "La fête commence comme d'habitude.<br><br>Les amuse-bouches sont excellents, la musique, entraînante, même les éléphants dansants font partie de la routine. Les Habiticiens et Habiticiennes rient et s'amusent entre les centres de table regorgeant de fleurs, heureux d'être distraits de leurs tâches les plus ingrates. Le Fou d'avril tournoyant parmi la foule, conte une blague marrante par-ci et joue un mauvais tour par-là.<br><br>Alors que l'horloge de Mistivolant sonne minuit, le Fou d'avril saute sur la scène pour donner un discours :<br><br>« Acolytes ! Adversaires ! Connaissances tolérantes ! Prêtez-moi vos oreilles ! » Les spectateurs gloussent alors que des oreilles d'animaux sortent de leur tête, puis ils prennent la pose, portant fièrement leur nouvel accessoire.<br><br>« Comme vous le savez tous, continue le Fou, mes illusions confuses ne durent normalement qu'une journée. Mais je suis heureux de vous annoncer que j'ai découvert un moyen de nous amuser perpétuellement, sans avoir à nous soucier du sale poids de nos responsabilités. Habiticiens, Habiticiennes, je vous présente mon nouvel ami magique... l'être déchaîné ! »<br><br>Lemoness pâlit soudainement, échappant ses hors-d'oeuvres. « Attendez ! Ne faites pas confiance... »<br><br>Tout à coup, une épaisse brume scintillante envahit la pièce et tourbillonne autour du Fou d'avril, l'enveloppant pour se transformer en plumes embrumées et en long cou. La foule est bouche bée devant ce monstrueux oiseau déployant ses ailes miroitantes d'illusions. Il pousse un horrible rire strident.<br><br>« Oh, il y a des siècles qu'un Habiticien avait été assez fou pour m'invoquer ! Comme c'est merveilleux d'avoir une forme physique à nouveau. »<br><br>Bourdonnant de terreur, les abeilles féeriques de Mistivolant s'enfuient hors de la ville flottante, qui s'affaisse dans le ciel. Une à une, les jolies fleurs de printemps se fanent et disparaissent.<br><br>« Mes très chers camarades, pourquoi tant d'affolement ? », s'écrit l'être déchaîné en battant des ailes. « Vous n'avez plus à travailler fort pour obtenir des récompenses ; je vous donnerai tout ce que vous désirez ! »<br><br>Des pièces d'or se mettent à pleuvoir du ciel, atteignant le sol avec une force brutale. La foule cherche refuge en hurlant. « C'est une blague ? », s'écrie Baconsaur, au moment même où des pièces fracassent les fenêtres et détruisent les bardeaux des toits.<br><br>PainterProphet se baisse pour éviter les éclairs qui tonnent là-haut. La brume voile le soleil. « Non ! Cette fois, je ne crois pas que c'en est une ! »<br><br>Vite, Habiticiens, Habiticiennes, ne laissons pas ce boss mondial nous distraire de nos objectifs ! Concentrons-nous sur les tâches que nous devons accomplir pour sauver Mistivolant et, espérons-le... nous-mêmes.",
"questBewilderCompletion": "<strong>L'être déchaîné est VAINCU !</strong><br><br>Nous avons réussi ! L'être déchaîné lâche un hululement de désespoir en tournoyant dans les airs, ses plumes tombant comme de la pluie. Peu à peu, il se transforme en nuage de brume étincelante, qui, une fois percée par le soleil réapparu, se dissipe pour laisser place aux formes humaines, toussotantes et pardonnantes, de Bailey, de Matt, d'Alex... et du Fou d'avril lui-même.<br><br><strong>Mistivolant est sauvée !</strong><br><br>Le Fou d'avril est si honteux qu'il a l'air penaud. « Oh, hum, dit-il. Je me suis peut-être laissé... emporter ! »<br><br>La foule marmonne. Des fleurs détrempées s'échouent sur le trottoir. Au loin, un toit s'écroule en un spectaculaire splash.<br><br>« Heu... oui, dit le Fou. C'est que... je voulais plutôt dire que je suis terriblement désolé. » Il soupire. « Je suppose qu'on ne peut pas toujours jouer et avoir du plaisir après tout. Ça ne fait pas de mal de travailler quelques fois. Je pense prendre une longueur d'avance sur mes tours de l'année prochaine. »<br><br>Redphoenix s'éclaircit la voix méchamment.<br><br>« Je veux dire... prendre une longueur d'avance sur ce ménage du printemps, se reprend le Fou d'avril. N'ayez rien à craindre : je remettrai Habitiville en état en un rien de temps. Heureusement, personne n'égale mes talents de nettoyage à double serpillière. »<br><br>Encouragée, la foule s'y met.<br><br>En peu de temps, Habitiville retrouve son état normal. Maintenant que l'être déchaîné s'est évaporé, les abeilles féeriques de Mistivolant se remettent au travail, et en un rien de temps, les fleurs éclosent et la ville flotte de nouveau.<br><br>Alors que les Habiticiens et Habiticiennes câlinent les abeilles féeriques touffues, les yeux du Fou d'avril s'illuminent : « Oh ! j'ai une idée, s'exclame-t-il. Pourquoi ne garderiez-vous pas tous ces abeilles touffues comme familier et monture ? C'est un cadeau parfait pour symboliser l'équilibre entre dur labeur et récompense méritée, si je puis me permettre une allégorie. » Il vous fait un clin dœil. « En plus, elles ne piquent pas. Parole de Fou ! »",
"questBewilderNotes": "La fête commence comme d'habitude.<br><br>Les amuse-bouches sont excellents, la musique, entraînante, même les éléphants dansants font partie de la routine. Les Habiticiens et Habiticiennes rient et s'amusent entre les centres de table regorgeant de fleurs, heureux d'être distraits de leurs tâches les plus ingrates. Le Fou d'avril tournoyant parmi la foule, conte une blague marrante par-ci et joue un mauvais tour par-là.<br><br>Alors que l'horloge de Mistivolant sonne minuit, le Fou d'avril saute sur la scène pour faire un discours :<br><br>« Acolytes ! Adversaires ! Connaissances tolérantes ! Prêtez-moi vos oreilles ! » Les spectateurs gloussent alors que des oreilles d'animaux sortent de leur tête, puis ils prennent la pose, portant fièrement leur nouvel accessoire.<br><br>« Comme vous le savez tous, continue le Fou, mes illusions confuses ne durent normalement qu'une journée. Mais je suis heureux de vous annoncer que j'ai découvert un moyen de nous amuser perpétuellement, sans avoir à nous soucier de l'assommant poids de nos responsabilités. Habiticiens, Habiticiennes, je vous présente mon nouvel ami magique... l'être déchaîné ! »<br><br>Lemoness pâlit soudainement, laissant échappant ses hors-d'oeuvres. « Attendez ! Ne faites pas confiance... »<br><br>Tout à coup, une épaisse brume scintillante envahit la pièce et tourbillonne autour du Fou d'avril, l'enveloppant pour se transformer en plumes embrumées et en long cou. La foule est bouche bée devant ce monstrueux oiseau déployant ses ailes miroitantes d'illusions. Il pousse un horrible rire strident.<br><br>« Oh, il y a des siècles qu'un Habiticien avait été assez fou pour m'invoquer ! Comme c'est merveilleux d'avoir une forme physique à nouveau. »<br><br>Bourdonnant de terreur, les abeilles féeriques de Mistivolant s'enfuient hors de la ville flottante, qui s'affaisse dans le ciel. Une à une, les jolies fleurs de printemps se fanent et disparaissent.<br><br>« Mes très chers camarades, pourquoi tant d'affolement ? », s'écrit l'être déchaîné en battant des ailes. « Vous n'avez plus à travailler interminablement pour obtenir des récompenses ; je vous donnerai tout ce que vous désirez ! »<br><br>Des pièces d'or se mettent à pleuvoir du ciel, atteignant le sol avec une force brutale. La foule cherche refuge en hurlant. « C'est une blague ? », s'écrie Baconsaur, au moment même où des pièces fracassent les fenêtres et détruisent les bardeaux des toits.<br><br>PainterProphet se baisse pour éviter les éclairs qui tonnent là-haut. La brume voile le soleil. « Non ! Cette fois, je ne crois pas que c'en soit une ! »<br><br>Vite, Habiticiens, Habiticiennes, ne laissons pas ce boss mondial nous distraire de nos objectifs ! Concentrons-nous sur les tâches que nous devons accomplir pour sauver Mistivolant et, espérons-le... nous-mêmes.",
"questBewilderCompletion": "<strong>L'être déchaîné est VAINCU !</strong><br><br>Nous avons réussi ! L'être déchaîné lâche un hululement de désespoir en tournoyant dans les airs, ses plumes tombant comme de la pluie. Peu à peu, il se transforme en nuage de brume étincelante, qui, une fois percée par le soleil réapparu, se dissipe pour laisser place aux formes humaines, toussotantes et indulgentes, de Bailey, de Matt, d'Alex... et du Fou d'avril lui-même.<br><br><strong>Mistivolant est sauvée !</strong><br><br>Le Fou d'avril est si honteux qu'il a l'air penaud. « Oh, hum, dit-il. Je me suis peut-être laissé... emporter ! »<br><br>La foule marmonne. Des fleurs détrempées s'échouent sur le trottoir. Au loin, un toit s'écroule en un spectaculaire splash.<br><br>« Heu... oui, dit le Fou. C'est que... je voulais plutôt dire que je suis terriblement désolé. » Il soupire. « Je suppose qu'on ne peut pas toujours jouer et avoir du plaisir après tout. Ça ne fait pas de mal de travailler quelques fois. Je pense prendre une longueur d'avance sur mes tours de l'année prochaine. »<br><br>Redphoenix s'éclaircit la voix méchamment.<br><br>« Je veux dire... prendre une longueur d'avance sur ce ménage du printemps, se reprend le Fou d'avril. N'ayez rien à craindre : je remettrai Habitiville en état en un rien de temps. Heureusement, personne n'égale mes talents de nettoyage à double serpillière. »<br><br>Encouragée, la foule s'y met.<br><br>En peu de temps, Habitiville retrouve son état normal. Maintenant que l'être déchaîné s'est évaporé, les abeilles féeriques de Mistivolant se remettent au travail, et en un rien de temps, les fleurs éclosent et la ville flotte de nouveau.<br><br>Alors que les Habiticiens et Habiticiennes caressent les fourrures des abeilles féeriques, les yeux du Fou d'avril s'illuminent : « Oh ! j'ai une idée, s'exclame-t-il. Pourquoi ne garderiez-vous pas tous ces abeilles duveteuses comme familier et monture ? C'est un cadeau parfait pour symboliser l'équilibre entre dur labeur et récompense méritée, si je puis me permettre une allégorie. » Il vous fait un clin dœil. « En plus, elles ne piquent pas. Parole de Fou ! »",
"questBewilderCompletionChat": "`L'être déchaîné est VAINCU !`\n\nNous avons réussi ! L'être déchaîné lâche un hululement de désespoir en tournoyant dans les airs, ses plumes tombant comme de la pluie. Peu à peu, il se transforme en nuage de brume étincelante, qui, une fois percée par le soleil réapparu, se dissipe pour laisser place aux formes humaines, toussotantes et pardonnantes, de Bailey, de Matt, d'Alex... et du Fou d'avril lui-même.\n\n`Mistivolant est sauvée !`\n\nLe Fou d'avril est si honteux qu'il a l'air penaud. « Oh, hum, dit-il. Je me suis peut-être laissé... emporter ! »\n\nLa foule marmonne. Des fleurs détrempées atterrissent sur le trottoir. Au loin, un toit s'écroule en un spectaculaire splash.\n\n« Heu... oui, dit le Fou. C'est que... je voulais plutôt dire que je suis terriblement désolé. » Il soupire. « Je suppose qu'on ne peut pas toujours jouer et avoir du plaisir après tout. Ça ne fait pas de mal de travailler quelques fois. Je crois que je vais prendre une longueur d'avance sur mes tours de l'année prochaine... peut-être. »\n\nRedphoenix tousse méchamment.\n\n« Je veux dire... prendre une longueur d'avance sur ce ménage du printemps, se reprend le Fou d'avril. N'ayez rien à craindre : je remettrai Habitiville en état en un rien de temps. Heureusement, personne n'égale mes talents de nettoyage à double serpillière. »\n\nEncouragée, la foule s'y met.\n\nEn peu de temps, Habitiville retrouve son état normal. Maintenant que l'être déchaîné s'est évaporé, les abeilles féeriques de Mistivolant se remettent au travail, et en un rien de temps, les fleurs éclosent et la ville flotte de nouveau.\n\nAlors que les Habiticiens et Habiticiennes câlinent les abeilles féeriques touffues, les yeux du Fou d'avril s'illuminent : « Oh ! j'ai une idée, s'exclame-t-il. Pourquoi ne garderiez-vous pas tous ces abeilles touffues comme familier et monture ? C'est un cadeau parfait pour symboliser l'équilibre entre dur labeur et récompense méritée, si je puis me permettre une allégorie. » Il vous fait un clin dœil. « En plus, elles ne piquent pas. Parole de Fou ! »",
"questBewilderBossRageTitle": "Frappe séductrice",
"questBewilderBossRageDescription": "Lorsque la jauge sera remplie, l'être déchaîné libérera sa frappe séductrice sur Habitica !",
"questBewilderDropBumblebeePet": "Abeille féerique (Familier)",
"questBewilderDropBumblebeeMount": "Abeille féerique (Monture)",
"questBewilderBossRageMarket": "`L'être déchaîné libère sa FRAPPE SÉDUCTRICE !`\n\nOh non ! Malgré tous nos efforts, nous avons été distraits par les illusions charmantes de l'être déchaîné et nous avons oublié quelques Quotidiennes ! En poussant un cri moqueur, l'oiseau scintillant bat ses ailes pour lever un essaim de brume autour d'Alex le marchand. Une fois la brume dispersée, il est possédé ! « Échantillons gratuits ! », crie-t-il joyeusement. Il se met à lancer des œufs et des potions explosives aux Habiticiens et Habiticiennes en fuite. Pas la meilleure manière de vendre, ça c'est certain.\n\nVite ! Concentrons-nous sur nos Quotidiennes pour combattre ce monstre avant qu'il ne possède quelqu'un d'autre.",
"questBewilderBossRageMarket": "`L'être déchaîné libère sa FRAPPE SÉDUCTRICE !`\n\nOh non ! Malgré tous nos efforts, nous avons été distraits par les illusions envoûtantes de l'être déchaîné et nous avons oublié quelques Quotidiennes ! En poussant un cri moqueur, l'oiseau scintillant bat des ailes pour lever un essaim de brume autour d'Alex le marchand. Une fois la brume dispersée, il est possédé ! « Échantillons gratuits ! », crie-t-il joyeusement. Il se met à lancer des œufs et des potions explosives aux Habiticiens et Habiticiennes en fuite. Pas la meilleure manière de vendre, ça c'est certain.\n\nVite ! Concentrons-nous sur nos Quotidiennes pour combattre ce monstre avant qu'il ne possède quelqu'un d'autre.",
"questBewilderBossRageStables": "`L'être déchaîné libère sa FRAPPE SÉDUCTRICE !`\n\nAhh !!! Une fois encore, l'être déchaîné nous a convaincu de négliger nos Quotidiennes et s'est maintenant attaqué à Matt le Maître des bêtes ! D'un tourbillon de brume, Matt se transforme en une terrible créature ailée alors que tous les familiers et montures pleurent dans l'écurie. Vite ! Concentrez-vous sur vos tâches pour combattre cette ignoble distraction !",
"questBewilderBossRageBailey": "`L'être déchaîné libère sa FRAPPE SÉDUCTRICE !`\n\nRegardez ! Au beau milieu de ses nouvelles, Bailey la crieuse publique s'est fait posséder par l'être déchaîné ! Elle lâche un discours machiavélique et dépourvu d'informations, tout en s'élevant dans les airs. Comment allons-nous faire maintenant pour savoir ce qui se passe ?\n\nNe vous découragez pas... nous sommes sur le point de battre cet oiseau distrayant une bonne fois pour toutes !",
"questBewilderBossRageBailey": "`L'être déchaîné libère sa FRAPPE SÉDUCTRICE !`\n\nRegardez ! Au beau milieu de ses nouvelles, Bailey la crieuse publique s'est fait posséder par l'être déchaîné ! Elle lâche un discours machiavélique et dépourvu d'informations, tout en s'élevant dans les airs. Comment allons-nous faire maintenant pour savoir ce qui se passe ?\n\nNe vous découragez pas... nous sommes sur le point de battre cet oiseau dévoyé une bonne fois pour toutes !",
"questFalconText": "Les oiseaux de la proiecrastination",
"questFalconNotes": "Le Mont-Habitica est obscurci par une montagne menaçante de tâches à faire. C'était autrefois un lieu où pique-niquer et apprécier le sentiment de réussite, jusqu'à ce que les tâches négligées deviennent hors de contrôle. Aujourd'hui, il est habité par les redoutables oiseaux de la proiecrastination, des créatures ignobles qui empêchent les Habiticiens et Habiticiennes d'accomplir leurs tâches !<br><br>\"C'est trop dur !\" croassent-ils à @JonArinbjorn and @Onheiron. \"Cela va prendre trop de temps à faire pour s'y mettre tout de suite ! Cela ne fera aucune différence si vous attendez jusqu'à demain ! Pourquoi ne pas faire quelque chose d'amusant à la place ?\"<br><br>Plus jamais, jurez-vous. Vous escaladerez votre montagne personnelle de tâches à faire et vaincrez les oiseaux de la proiecrastination !",
"questFalconCompletion": "Ayant enfin triomphé des oiseaux de la proiecrastination, vous vous installez afin d'apprécier la vue et votre repos bien mérités.<br><br>\"Waouh !\" dit @Trogdorina. \"Vous avez gagné !\"<br><br> ajoute @Squish. \"Tenez, prenez ces œufs que j'ai trouvés en récompense.\"",
"questFalconCompletion": "Ayant enfin triomphé des oiseaux de la proiecrastination, vous vous installez afin d'apprécier la vue et votre repos bien mérité.<br><br>\"Waouh !\" dit @Trogdorina. \"Vous avez gagné !\"<br><br> ajoute @Squish. \"Tenez, prenez ces œufs que j'ai trouvés en récompense.\"",
"questFalconBoss": "Oiseaux de la proiecrastination",
"questFalconDropFalconEgg": "Faucon (Œuf)",
"questFalconUnlockText": "Déverrouille l'achat dœufs de faucon au marché",
@ -394,7 +394,7 @@
"questTaskwoodsTerror3DropWeapon": "Lanterne du bois des Tâches (arme à deux mains)",
"questFerretText": "L'abominable furet",
"questFerretNotes": "En traversant Habitiville, vous apercevez une foule en colère attroupée autour d'un furet à poil rouge.<br><br>\"Cette potion de productivité que tu m'as vendue est inutile !\" se plaint @Beffymaroo. \"J'ai regardé la télé pendant trois heures la nuit dernière, au lieu d'accomplir mes tâches !\"<br><br>\"Ouais !\" crie @Pandah. \"Et aujourd'hui j'ai passé une heure à réorganiser ma bibliothèque, au lieu d'avancer dans mes lectures !\"<br><br>L'abominable furet agite les bras en signe d'innocence. \"On peut donc dire que vous avez été très efficace dans la catégorie \"visionnage d'émissions\" et \"organisation de la maison\", non ?\"<br><br>La foule explose de colère.<br><br>\"Pas de remboursement !\" réplique l'abominable furet. Puis il lance un éclair magique sur la foule, préparant sa fuite dans un nuage de fumée.<br><br>\"Oyez, Habiticiennes et Habiticiens !\" lance @Faye, tout en saisissant votre bras. \"Vainquons le furet et forçons-le à rembourser l'argent indûment gagné !\"",
"questFerretCompletion": "Vous avez vaincu lescroc à poil doux et @UncommonCriminal donne à la foule leurs remboursements. Il reste même un peu d'or pour vous. En plus, on dirait que le furet a laissé tomber quelques œufs dans sa fuite hâtive !",
"questFerretCompletion": "Vous avez vaincu lescroc à poil doux et @UncommonCriminal donne à la foule leurs remboursements. Il reste même un peu d'or pour vous. En plus, on dirait que le furet a laissé tomber quelques œufs dans sa fuite précipitée !",
"questFerretBoss": "Abominable furet",
"questFerretDropFerretEgg": "Furet (Œuf)",
"questFerretUnlockText": "Déverrouille l'achat d'œufs de furet au marché",
@ -409,8 +409,8 @@
"questMoon1CollectShards": "Éclats lunaires",
"questMoon1DropHeadgear": "Casque de guerrier lunaire (Couvre-chef)",
"questMoon2Text": "Affrontement lunaire, 2e partie : arrêtez l'éclipse de stress",
"questMoon2Notes": "Après avoir étudié les éclats, @Starsystemic l'oracle apporte de mauvaises nouvelles. \"Un ancien monstre approche Habitica, et il cause un terrible stress à tous les citoyens. Je peux soulager les gens en extrayant ce qui assombrit leur cœur. J'attirerai cette ombre jusque dans cette tour, où elle prendra une forme physique, mais vous devrez la défaire avant qu'elle ne s'échappe et se répande de nouveau.\" Vous acquiescez, et elle commence ses incantations. Des ombres dansantes remplissent la pièce, se pressant les unes contre les autres. Un vent froid souffle, l'obscurité se fait plus forte. Léclipse de stress s'élève du sol, ricane tel un cauchemar devenu réalité... et frappe ! ",
"questMoon2Completion": "L'ombre explose dans un nuage d'air sombre, laissant la pièce plus lumineuse et votre cœur plus léger. Le stress qui couvrait Habitica est diminué, et vous pouvez tous pousser un soupir de soulagement. Pourtant, en regardant le ciel, vous sentez que ce n'est pas fini : le monstre physique sait que quelqu'un a détruit son ombre. \"Nous resterons en alerte pour les prochaines semaines\", dit @Starsystemic, \"et je vous enverrai un nouveau parchemin de quête quand il se manifestera.\"",
"questMoon2Notes": "Après avoir étudié les éclats, @Starsystemic l'oracle apporte de mauvaises nouvelles. \"Un ancien monstre approche d'Habitica, et il cause un terrible stress à tous les citoyens. Je peux soulager les gens en extrayant ce qui assombrit leur cœur. J'attirerai cette ombre jusque dans cette tour, où elle prendra une forme physique, mais vous devrez la briser avant qu'elle ne s'échappe et se répande de nouveau.\" Vous acquiescez, et elle commence ses incantations. Des ombres dansantes remplissent la pièce, se pressant les unes contre les autres. Un vent froid souffle, l'obscurité se fait plus forte. Léclipse de stress s'élève du sol, ricane tel un cauchemar devenu réalité... et frappe !",
"questMoon2Completion": "L'ombre explose dans un nuage d'air sombre, laissant la pièce plus lumineuse et votre cœur plus léger. Le stress qui couvrait Habitica a diminué, et vous pouvez tous pousser un soupir de soulagement. Pourtant, en regardant le ciel, vous sentez que ce n'est pas fini : le monstre physique sait que quelqu'un a détruit son ombre. \"Nous resterons en alerte pour les prochaines semaines\", dit @Starsystemic, \"et je vous enverrai un nouveau parchemin de quête quand il se manifestera.\"",
"questMoon2Boss": "Éclipse de stress",
"questMoon2DropArmor": "Armure de guerrier lunaire (armure)",
"questMoon3Text": "Affrontement lunaire, 3e partie : la lune monstrueuse",
@ -466,7 +466,7 @@
"questPeacockDropPeacockEgg": "Paon (Œuf)",
"questPeacockUnlockText": "Déverrouille l'achat dœufs de paon au marché",
"questButterflyText": "Minute, papillon !",
"questButterflyNotes": "Votre camarade jardinier @Megan vous envoie une invitation : \"Les températures actuelles sont idéales pour une visite du jardin aux papillons d'Habitica, dans l'arrière-pays Tâcheray. Venez observer la migration des papillons !\" Quand vous arrivez, cela dit, le jardin est en pagaille. À l'horizon, rien d'autre que des herbes roussies et des fleurs séchées. Il a fait si chaud que les habitants d'Habitica ne sont pas venus arroser les plantes, et les Quotidiennes rouge foncé ont transformé l'endroit en un gigantesque champ cuit, avec un grand risque de départ de feu. Il n'y a qu'un seul papillon dans le coin... et il a l'air étrange...<br><br>\"Ho non ! Toutes les conditions sont réunies pour qu'un papyromane puisse grandir ici !\" s'exclame @Leephon.<br><br>\"Si nous ne l'attrapons pas, il va tout détruire\", s'étrangle @Eevachu.<br><br>Minute papillon, ne t'en va pas comme ça !",
"questButterflyNotes": "Votre camarade jardinier @Megan vous envoie une invitation : \"Les températures actuelles sont idéales pour une visite du jardin aux papillons d'Habitica, dans l'arrière-pays Tâcheray. Venez observer la migration des papillons !\" Quand vous arrivez, cela dit, le jardin est en pagaille. À l'horizon, rien d'autre que des herbes roussies et des fleurs séchées. Il a fait si chaud que les habitants d'Habitica ne sont pas venus arroser les plantes, et les Quotidiennes rouge foncé ont transformé l'endroit en un gigantesque champ roussi, avec un inquiétant risque de départ de feu. Il n'y a qu'un seul papillon dans le coin... et il a l'air étrange...<br><br>\"Ho non ! Toutes les conditions sont réunies pour qu'un papyromane puisse grandir ici !\" s'exclame @Leephon.<br><br>\"Si nous ne l'attrapons pas, il va tout détruire\", s'étrangle @Eevachu.<br><br>Minute papillon, ne t'en va pas comme ça !",
"questButterflyCompletion": "Après un bouillonnant combat, le papyromane ardent est capturé. \"Beau boulot, il fallait à tout prix attraper cet incendiaire en puissance\", vous lance @Megan dans un soupir de soulagement. \"Bon, ne papillonnons pas trop, il faut encore libérer ce papyromane dans un endroit sûr... comme le désert.\"<br><br>Un autre membre de l'équipe des jardiniers, @Beffymaroo, se dirige vers vous, un peu cramoisie mais souriante. \"Nous aiderez-vous à élever ces chrysalides abandonnées que nous venons de trouver ? Peut-être que l'an prochain, nous aurons un jardin plus luxuriant pour les accueillir.\"",
"questButterflyBoss": "Papyromane ardent",
"questButterflyDropButterflyEgg": "Chenille (Œuf)",
@ -508,7 +508,7 @@
"splashyPalsNotes": "Contient \"Le derby de Dilatoire\", \"Guidez la tortue\" et \"Les lamentations de la baleine\". Disponible jusqu'au 31 juillet.",
"questHippoText": "Quel Hippo-crite",
"questHippoNotes": "Vous et @awesomekitty vous effondrez à l'ombre d'un palmier, raplaplas. Le soleil tape sur la savane Tanfépaï, rendant le sol brûlant. Ce fut une journée productive jusqu'à présent, et cette oasis semble l'endroit rêvé pour faire une pause et se rafraîchir. Vous baissant près de l'eau pour boire, vous faites un pas en arrière de surprise lorsqu'un énorme hippopotame en émerge : \"Déjà en train de vous reposer ? Ne soyez pas des tire-au-flanc et retournez au travail.\" Vous essayez de protester que vous avez travaillé dur et avez besoin d'une pause, mais l'hippopotame ne veut rien entendre.<br><br>@khdarkwolf vous murmure : \"Il se prélasse toute la journée, mais il a le culot de nous traiter de feignasses ? C'est l'Hippo-crite !\"<br><br>Votre ami @jumorales hoche la tête : \"Montrons-lui ce que travailler dur signifie !\"",
"questHippoCompletion": "L'hippopotame s'incline en signe de capitulation. \"J'ai sous-estimé vos personnes. On dirait que vous ne fainéantiez pas, au final. Je suis désolé. Pour être honnête, j'ai peut-être jugé trop rapidement. Moi-même je devrais sans doute aller travailler. Tenez, prenez ces œufs en guise de remerciement.\" Vous les attrapez et vous installez au bord de l'eau, pour un repos bien mérité.",
"questHippoCompletion": "L'hippopotame s'incline en signe de capitulation. \"Je vous ai sous-estimés. On dirait que vous ne flemmardiez pas, au final. Je suis désolé. Pour être honnête, j'ai peut-être jugé trop rapidement. Moi-même je devrais sans doute aller travailler. Tenez, prenez ces œufs en guise de remerciement.\" Vous les attrapez et vous installez au bord de l'eau, pour un repos bien mérité.",
"questHippoBoss": "L'Hippo-crite",
"questHippoDropHippoEgg": "Hippopotame (Œuf)",
"questHippoUnlockText": "Déverrouille l'achat dœufs d'hippopotame au marché",
@ -519,7 +519,7 @@
"questGroupLostMasterclasser": "Le mystère des maîtres des classes",
"questUnlockLostMasterclasser": "Pour débloquer cette quête, complétez la dernière quête des séries suivantes : 'Le désespoir de Dilatoire', 'Du rififi à Mistivolant', 'Calamité de Stoïcalme' et 'Terreur dans le bois des Tâches'.",
"questLostMasterclasser1Text": "Le mystère des maîtres des classes, 1re partie : lisez entre les lignes",
"questLostMasterclasser1Notes": "@beffymaroo et @Lemoness vous convoquent au Habithéon, un endroit inhabituel... et vous y trouvez les quatre maîtres des classes d'Habitica, qui vous attendaient dans la pâle lumière de l'aube. Même la Joyeuse faucheuse fait grise mine.<br><br>\"Oh ! Vous êtes là, dit le Fou d'avril. Bon, nous n'aurions pas osé vous réveiller si ce n'était pour une véritable \"<br><br>\"Aidez-nous à enquêter sur cette flambée de gens possédés,\" l'interrompt Dame Givre. \"Toutes les victimes accusent une personne nommée Tzina.\"<br><br>Le Fou d'avril est clairement choqué d'un tel résumé. \"Et mon discours, alors ?\" siffle-t-il. \"J'avais prévu de la fumée et des orages !\"<br><br>\"Nous sommes pressés, murmure-t-elle en retour, et mes mammouths ne sont toujours pas remis de tes séances d'entraînement !\"<br><br>\"Je crains que la très estimée maîtresse des guerriers n'ait raison\", dit le roi Manta. \"Le temps presse... nous aiderez-vous ?\"<br><br>Vous hochez la tête et le voici qui lève les mains au ciel, ouvrant un portail à destination d'une pièce immergée. \"Nagez avec moi jusqu'à Dilatoire, et nous ratisserons ma bibliothèque à la recherche d'indices.\" Voyant votre mine confuse, il ajoute : \"Pas d'inquiétude, le papier était enchanté bien avant que Dilatoire ne coule. Aucun des livres n'est trempé... alors que les mammouths de Dame Givre...\" et il vous fait un clin dœil.<br><br>\"J'ai tout entendu, Manta.\"<br><br>Tandis que vous plongez dans l'eau à la suite du maître des mages, vos jambes se transforment en nageoires. Et bien que votre corps soit capable de flotter, votre cœur se plombe en contemplant les milliers d'étagères. Il est l'heure de se mettre au travail…",
"questLostMasterclasser1Notes": "@beffymaroo et @Lemoness vous convoquent au Habithéon, un endroit inhabituel... et vous y trouvez les quatre maîtres des classes d'Habitica, qui vous attendaient dans la pâle lumière de l'aube. Même la Joyeuse faucheuse fait grise mine.<br><br>\"Oh ! Vous êtes là, dit le Fou d'avril. Bon, nous n'aurions pas osé vous réveiller si ce n'était pour une véritable raison\"<br><br>\"Aidez-nous à enquêter sur cette flambée de gens possédés,\" l'interrompt Dame Givre. \"Toutes les victimes accusent une personne nommée Tzina.\"<br><br>Le Fou d'avril est clairement choqué d'un tel résumé. \"Et mon discours, alors ?\" siffle-t-il. \"J'avais prévu de la fumée et des orages !\"<br><br>\"Nous sommes pressés, murmure-t-elle en retour, et mes mammouths ne sont toujours pas remis de tes séances d'entraînement !\"<br><br>\"Je crains que la très estimée maîtresse des guerriers n'ait raison\", dit le roi Manta. \"Le temps presse... nous aiderez-vous ?\"<br><br>Vous hochez la tête et le voici qui lève les mains au ciel, ouvrant un portail à destination d'une pièce immergée. \"Nagez avec moi jusqu'à Dilatoire, et nous ratisserons ma bibliothèque à la recherche d'indices.\" Voyant votre mine confuse, il ajoute : \"Pas d'inquiétude, le papier était enchanté bien avant que Dilatoire ne coule. Aucun des livres n'est trempé... alors que les mammouths de Dame Givre...\" et il vous fait un clin dœil.<br><br>\"J'ai tout entendu, Manta.\"<br><br>Tandis que vous plongez dans l'eau à la suite du maître des mages, vos jambes se transforment en nageoires. Et bien que votre corps soit capable de flotter, votre cœur se serre en contemplant les milliers d'étagères. Il est l'heure de se mettre au travail…",
"questLostMasterclasser1Completion": "Après des heures passées à examiner les ouvrages, vous n'avez toujours pas trouvé une seule information.<br><br>\"Cela semble impossible qu'il n'existe pas la moindre petite référence à quelque chose de pertinent\", s'exclame le responsable-libraire @Tuqjoi, et l'assistant @stefalupagus hoche la tête de frustration.<br><br>Les yeux du roi Manta se plissent. \"Ce n'est pas impossible...\", murmure-t-il. \"C'est <em>intentionnel</em>.\" Pendant un instant, l'eau brille autour de ses mains, et quelques livres se mettent à frissonner. \"Quelque chose nous dissimule des données\", déclare-t-il. \"Pas juste un sortilège statique, mais quelque chose avec une pensée propre. Quelque chose... de vivant.\" Il nage au-dessus de la table. \"La Joyeuse faucheuse doit être prévenue. Préparons un casse-croûte pour la route.\"",
"questLostMasterclasser1CollectAncientTomes": "Tomes anciens",
"questLostMasterclasser1CollectForbiddenTomes": "Tomes interdits",
@ -530,7 +530,7 @@
"questLostMasterclasser2Boss": "L'e'Vitement",
"questLostMasterclasser2DropEyewear": "Masque d'éther (lunettes)",
"questLostMasterclasser3Text": "Le mystère des maîtres des classes, 3e partie : la cité dans les sables",
"questLostMasterclasser3Notes": "Comme la nuit se déploie sur les sables brûlants des Temperdus, vos guides @AnnDeLune, @Kiwibot et @Katy133 vous font avancer. Quelques piliers blanchis par le soleil se détachent des dunes assombries, et tandis que vous vous approchez d'eux, un bruit étrange et bondissant résonne dans ce qui, pourtant, semble être une étendue abandonnée.<br><br>\"Des créatures invisibles !\" lance le Fou d'avril, dont l'avidité se lit sur le visage. \"Oh ! Imaginez tout ce que cela permet ! Ce ne peut être que l'œuvre d'un grand expert voleur.\"<br><br>\"Un voleur qui nous épie peut-être en ce moment même\", murmure Dame Givre, tandis qu'elle met pied à terre et qu'elle saisit sa lance. \"Si l'on nous attaque de front, essaie de ne pas provoquer notre adversaire. Je ne veux pas revivre l'incident du volcan.\"<br><br>Il lui fait un grand sourire : \"Mais il s'agissait là de l'un de tes plus brillants sauvetages !\"<br><br>À votre grande surprise, Dame Givre vire au rouge face à ce compliment. Elle s'écarte rapidement pour examiner les ruines.<br><br>\"Cela ressemble aux décombres d'une ancienne cité, dit @AnnDeLune, et je me demande bien...\"<br><br>Elle ne peut finir sa phrase qu'un portail s'ouvre à grand bruit dans le ciel. Mais ce type de magie n'était-il pas quasiment impossible à réaliser, par ici ? Les créatures invisibles, prises de panique, s'enfuient, et le son de leurs sabots provoque un immense fracas, tandis que vous tentez de garder l'équilibre face à l'assaut de crânes hurlants qui déferlent des cieux.",
"questLostMasterclasser3Notes": "Comme la nuit se déploie sur les sables brûlants des Temperdus, vos guides @AnnDeLune, @Kiwibot et @Katy133 vous font avancer. Quelques piliers blanchis par le soleil se détachent des dunes assombries, et tandis que vous vous approchez d'eux, un bruit étrange et bondissant résonne dans ce qui, pourtant, semble être une étendue abandonnée.<br><br>\"Des créatures invisibles !\" lance le Fou d'avril, dont l'avidité se lit sur le visage. \"Oh ! Imaginez tout ce que cela permet ! Ce ne peut être que l'œuvre d'un voleur chevronné.\"<br><br>\"Un voleur qui nous épie peut-être en ce moment même\", murmure Dame Givre, tandis qu'elle met pied à terre et qu'elle saisit sa lance. \"Si l'on nous attaque de front, essaie de ne pas provoquer notre adversaire. Je ne veux pas revivre l'incident du volcan.\"<br><br>Il lui fait un grand sourire : \"Mais il s'agissait là de l'un de tes plus brillants sauvetages !\"<br><br>À votre grande surprise, Dame Givre vire au rouge face à ce compliment. Elle s'écarte rapidement pour examiner les ruines.<br><br>\"Cela ressemble aux décombres d'une ancienne cité, dit @AnnDeLune, et je me demande bien...\"<br><br>Elle ne peut finir sa phrase qu'un portail s'ouvre à grand bruit dans le ciel. Mais ce type de magie n'était-il pas quasiment impossible à réaliser, par ici ? Les créatures invisibles, prises de panique, s'enfuient, et le son de leurs sabots provoque un immense fracas, tandis que vous tentez de garder l'équilibre face à l'assaut de crânes hurlants qui déferlent des cieux.",
"questLostMasterclasser3Completion": "Le Fou d'avril prend le dernier crâne par surprise en lui envoyant du sable dessus, ce qui le fait basculer en arrière et percuter Dame Givre, qui se charge de le fracasser. Pendant que vous reprenez votre souffle et levez la tête, vous pensez apercevoir la silhouette de quelqu'un, qui bouge de l'autre côté du portail, lequel est en train de se refermer. Dans l'urgence, vous arrachez l'amulette du coffret qui contenait les objets autrefois possédés, et comme vous l'imaginiez, il est aspiré en direction de cette forme fugace. Ignorant les cris d'alarme de Dame Givre et du Fou d'avril, vous bondissez à travers le portail juste avant qu'il ne se referme, dégringolant dans une sorte de bain d'encre de néant.",
"questLostMasterclasser3Boss": "Nuée de crânes vides",
"questLostMasterclasser3RageTitle": "Régénération de la nuée",
@ -543,7 +543,7 @@
"questLostMasterclasser3DropShadePotion": "Potion d'éclosion sombre",
"questLostMasterclasser3DropZombiePotion": "Potion d'éclosion zombie",
"questLostMasterclasser4Text": "Le mystère des maîtres des classes, 4e partie : La maîtresse oubliée",
"questLostMasterclasser4Notes": "Vous émergez du portail, mais vous êtes toujours en suspension dans cet étrange monde changeant. \"C'était courageux,\" dit une voix froide. \"Je dois admettre que je n'avais pas déjà imaginé une confrontation directe.\" Une femme s'élève du tourbillon d'obscurité. \"Bienvenue au royaume du vide.\"<br><br>Vous essayez de retenir cette nausée qui monte en vous et vous demandez : \"Êtes-vous Zinnya ?\".<br><br>\"Cet ancien nom pour une jeune idéaliste,\" dit-elle entre ses lèvres, et le monde se tord en dessous de vous. \"Non. Vous feriez mieux de m'appeler l'Anti-zinnya maintenant, étant donné tout ce que j'ai fait et défait.\"<br><br>Soudain, le portail se rouvre derrière vous, et alors que les quatre maîtres des classes en jaillissent et foncent sur vous, les yeux d'Anti-zinnya brillent de haine. \"Je vois que mes pathétiques remplaçants sont parvenus à vous suivre\".<br><br>Vous la fixez. 'Remplaçants ?\"<br><br>\"En tant que maîtresse de l'éther, j'étais la première maîtresse des classes — la seule maîtresse des classes. Ces quatre-là sont une farce, chacun possédant seulement un fragment de ce que j'avais par le passé ! Je connaissais chaque sort et j'avais appris chaque compétence. J'ai modelé le monde selon mes caprices — jusqu'à ce que ce traître d'éther lui-même s'effondre, sous le poids de mes talents et de mes attentes parfaitement raisonnables. J'ai été piégée dans le vide résultant, pendant des millénaires, à me régénérer. Imaginez mon dégoût lorsque j'ai appris comment mon héritage avait été corrompu.\" Elle pousse un rire léger qui fait écho. \"Mon plan était de détruire leurs domaines avant de les détruire eux-mêmes, mais je suppose que je peux y aller dans le désordre.\" Dans une explosion de force terrifiante, elle charge vers vous, et le royaume du vide se transforme en chaos.",
"questLostMasterclasser4Notes": "Vous émergez du portail, mais vous êtes toujours en suspension dans cet étrange monde changeant. \"C'était courageux,\" dit une voix froide. \"Je dois admettre que je n'avais pas imaginé une confrontation directe si rapidement.\" Une femme s'élève du tourbillon d'obscurité. \"Bienvenue au royaume du vide.\"<br><br>Vous essayez de retenir cette nausée qui monte en vous et vous demandez : \"Êtes-vous Zinnya ?\".<br><br>\"Cet ancien nom pour une jeune idéaliste,\" dit-elle entre ses lèvres, et le monde se tord en dessous de vous. \"Non. Vous feriez mieux de m'appeler l'Anti-zinnya maintenant, étant donné tout ce que j'ai fait et défait.\"<br><br>Soudain, le portail se rouvre derrière vous, et alors que les quatre maîtres des classes en jaillissent et foncent sur vous, les yeux d'Anti-zinnya brillent de haine. \"Je vois que mes pathétiques remplaçants sont parvenus à vous suivre\".<br><br>Vous la fixez. 'Remplaçants ?\"<br><br>\"En tant que maîtresse de l'éther, j'étais la première maîtresse des classes — la seule maîtresse des classes. Ces quatre-là sont une farce, chacun possédant seulement un fragment de ce que j'avais par le passé ! Je connaissais chaque sort et j'avais appris chaque compétence. J'ai modelé le monde selon mes caprices — jusqu'à ce que ce traître d'éther lui-même s'effondre, sous le poids de mes talents et de mes attentes parfaitement raisonnables. J'ai été piégée dans le vide en résultant, pendant des millénaires, attachée à me régénérer. Imaginez mon dégoût lorsque j'ai appris comment mon héritage avait été corrompu.\" Elle pousse un rire léger qui fait écho. \"Mon plan était de détruire leurs domaines avant de les détruire eux-mêmes, mais je suppose que je peux y aller dans le désordre.\" Dans une explosion de force terrifiante, elle charge vers vous, et le royaume du vide se transforme en chaos.",
"questLostMasterclasser4Completion": "Sous l'assaut de votre dernière attaque, la maîtresse des classes oubliée hurle de frustration, son corps tremblant devient transparent. Le vide galope toujours autour d'elle alors qu'elle s'effondre, et pendant un moment, elle semble changer, devenant plus jeune, plus calme, avec une expression de paix sur son visage... mais alors tout se dissipe en à peine un murmure, et vous êtes à nouveau à genoux dans le sable du désert. <br><br> \"Il semble que nous ayons beaucoup à apprendre sur notre propre histoire\", dit le roi Manta, regardant les ruines brisées. \"Après que la maîtresse de l'éther a été submergée et a perdu le contrôle de ses capacités, le flot de vide a dû balayer la vie de toute la terre. Tout a dû devenir des déserts comme celui-ci. <br><br> \"Pas étonnant que les anciens qui ont fondé Habitica aient mis l'accent sur l'équilibre entre la productivité et le bien-être\", murmure la Joyeuse faucheuse. \"Reconstruire leur monde aura été une tâche décourageante, exigeant beaucoup de travail, et ils ont voulu empêcher qu'une telle catastrophe ne se reproduise.\" <br><br> \"Oh, regardez les objets possédés !\", s'exclame le Fou d'avril. Effectivement, tous miroitent d'une translucidité pâle et scintillante, sans doute issue de la dernière explosion d'éther libérée lorsque vous avez apaisé l'esprit d'Anti'zinnya. \"Quel effet éblouissant. Je dois prendre des notes.\"<br><br>\" Ces restes concentrés d'éther dans la région sont probablement ce qui a rendu les animaux invisibles\", dit Dame Givre, grattant une parcelle de vide derrière les oreilles. Vous sentez qu'une tête invisible et pelucheuse vous pousse la main, et vous pressentez que vous devrez vous expliquer aux écuries, une fois de retour à la maison... En regardant les ruines une dernière fois, vous apercevez tout ce qui reste du premier maître des classes, ou plutôt première maîtresse : sa cape scintillante. En la posant sur vos épaules, vous faites route pour Habitiville, méditant sur tout ce que vous avez appris. <br><br>",
"questLostMasterclasser4Boss": "Anti'zinnya",
"questLostMasterclasser4RageTitle": "Absorption du vide",
@ -559,7 +559,7 @@
"questYarnDropYarnEgg": "Pelote (Œuf)",
"questYarnUnlockText": "Déverrouille l'achat dœufs de pelote au marché",
"winterQuestsText": "Lot de quêtes hivernales",
"winterQuestsNotes": "Contient \"Trappeur Noël\", \"Trouvez l'ourson\" et \"Le gorfou glacé\". Disponible jusqu'au 31 Janvier. Notez que Trappeur Noël et Trouve l'ourson récompense par des succès de quêtes cumulatifs, mais donnent un familier et une monture rare que vous ne pouvez ajouter à votre écurie qu'une seule fois.",
"winterQuestsNotes": "Contient \"Trappeur Noël\", \"Trouvez l'ourson\" et \"Le gorfou glacé\". Disponible jusqu'au 31 Janvier. Notez que Trappeur Noël et Trouvez l'ourson récompensent par des succès de quêtes qui se cumulent, mais donnent un familier et une monture rare que vous ne pouvez ajouter à votre écurie qu'une seule fois.",
"questPterodactylText": "Le Pterreur-dactyle",
"questPterodactylNotes": "Vous vous promenez le long des paisibles falaises de Stoïcalme lorsqu'un crissement maléfique déchire l'air. Vous vous tournez pour trouver une créature hideuse qui vole vers vous et vous submerge d'une terreur puissante. Alors que vous vous tournez pour fuir, @Lilith d'Alfheim vous attrape. \"Pas de panique, c'est juste un Pterreur-dactyle.\" <br><br> @Procyon P acquiesce. \"Ils nichent à proximité, mais ils sont attirés par l'odeur des habitudes négatives et des quotidiennes non réalisées.\" <br><br> \"Ne vous inquiétez pas\", dit @Katy133. \"Nous avons juste besoin d'être très productif pour le vaincre !\" Vous vous remplissez d'une détermination renouvelée et vous vous tournez pour faire face à votre ennemi.",
"questPterodactylCompletion": "Avec un dernier cri, le Pterreur-dactyle dégringole du flanc de la falaise. Vous vous précipitez pour le voir s'envoler dans les steppes lointaines. \"Ouf, je suis content que ce soit fini\", dites-vous. \"Moi aussi\", répond @GeraldThePixel. \"Mais regarde, il a laissé quelques œufs pour nous.\" @Edge vous donne trois œufs, et vous promettez de les élever dans la tranquillité, entouré par des habitudes positives et des quotidiennes bleues.",
@ -574,7 +574,7 @@
"questBadgerUnlockText": "Débloque l'achat dœufs de blaireau au marché",
"questDysheartenerText": "La Décœurageante",
"questDysheartenerNotes": "Le soleil se lève sur la Saint-Valentin, quand un fracas épouvantable déchire l'air. Un flamboiement de lumière d'un rose écœurant perfore les bâtiments, et les briques se désagrègent alors qu'une crevasse profonde se propage dans la grande rue d'Habitiville. Un cri fantasmagorique et strident s'élève dans les airs et les vitres volent en éclats, tandis qu'une silhouette massive émerge du sol éventré.<br><br>Des mandibules claquent et une carapace étincelle ; des pattes se déploient l'une après l'autre dans l'air. La foule commence à hurler alors que l'insectoïde se cabre, prouvant à tous qu'il n'est autre que la plus cruelle des créatures : la terrible Décœurageante elle-même. Elle hurle d'excitation et se jette en avant, affamée à l'idée de croquer les rêves d'Habiticiens travailleurs. Chaque grincement de ses pattes épineuses griffant le sol resserre un étau de désespoir sur votre poitrine. <br><br>\"Haut les cœurs !\", s'écrie Lemoness. \"Elle voit sans doute en nous des cibles faciles quand tant d'entre nous sont paralysés face à leurs résolutions du Nouvel an, mais elle va bientôt découvrir que les Habiticiens savent rester fidèles à leurs objectifs !\"<br><br>AnnDeLune brandit son bâton. \"Affrontons nos tâches et abattons ce monstre !\"",
"questDysheartenerCompletion": "<strong> La Décœurageante a été BATTUE !</strong><br><br>Ensemble, tout le monde à Habitica envoie un coup de grâce à ses tâches, et la Décœurageante recule, hurlant de consternation. “Qu'est-ce qui ne va pas, Décœurageante ?\" demande AnnDeLune, les yeux pétillants de malice. “Tu te sens découragée ?”<br><br>Des fissures roses lumineuses craquèlent la carapace de La Décœurageante, et elle se brise dans un nuage de fumée rose. Alors qu'un sentiment renouvelé de vigueur et de détermination se déploie à travers le paysage, une rafale de délicieux bonbons pleut sur tout le monde.<br><br>La foule enthousiaste applaudit, les gens s'embrassant les uns les autres pendant que leurs familiers mâchouillent les sucreries, avec un peu en retard sur la Saint Valentin. Soudain, un joyeux chœur résonne dans l'air, et des silhouettes lumineuses embrase le ciel.<br><br>Notre nouvellement revigoré optimisme a attiré un troupeau d'hippogriffes pleins d'espérance ! Les créatures gracieuses descendent jusqu'au sol, gonflant leurs plumes avec intérêt et caracolant. “Il semble que nous nous soyons fait de nouveaux amis pour nous aider à garder la tête froide, même lorsque nos tâches sont intimidantes,” dit Lemoness.<br><br>Beffymaroo a déjà les bras pleins de boules de plumes duveteuses. “Peut-être qu'ils nous aideront à reconstruire les zones endommagées d'Habitica !”<br><br>Fredonnants, les hippogriffes mènent le chemin pour que tous les Habitciens travaillent ensemble à restorer notre bien-aimé foyer.",
"questDysheartenerCompletion": "<strong> La Décœurageante a été BATTUE !</strong><br><br>Dans un même élan, tout le monde à Habitica envoie un coup de grâce à ses tâches, et la Décœurageante recule, hurlant de consternation. “Qu'est-ce qui ne va pas, Décœurageante ?\" demande AnnDeLune, les yeux pétillants de malice. “Tu te sens découragée ?”<br><br>Des fissures roses lumineuses craquèlent la carapace de La Décœurageante, et elle se brise dans un nuage de fumée rose. Alors qu'un sentiment renouvelé de vigueur et de détermination se déploie à travers le paysage, une rafale de délicieux bonbons pleut sur tout le monde.<br><br>La foule enthousiaste applaudit, les gens s'embrassant les uns les autres pendant que leurs familiers mâchouillent les sucreries, avec un peu de retard sur la Saint Valentin. Soudain, un joyeux chœur résonne dans l'air, et des silhouettes lumineuses embrasent le ciel.<br><br>Notre nouvellement revigoré optimisme a attiré un troupeau d'hippogriffes pleins d'espérance ! Les créatures gracieuses descendent jusqu'au sol, gonflant leurs plumes avec intérêt et caracolant. “Il semble que nous nous soyons fait de nouveaux amis pour nous aider à garder la tête froide, même lorsque nos tâches sont intimidantes,” dit Lemoness.<br><br>Beffymaroo a déjà les bras pleins de boules de plumes duveteuses. “Peut-être qu'ils nous aideront à reconstruire les zones endommagées d'Habitica !”<br><br>Fredonnants, les hippogriffes mènent le chemin pour que tous les Habitciens travaillent ensemble à restaurer notre bien-aimé foyer.",
"questDysheartenerCompletionChat": "`La Décœurageante a été BATTUE !`\n\nEnsemble, tout le monde à Habitica envoie un coup de grâce à ses tâches, et la Décœurageante recule, hurlant de consternation. “Qu'est-ce qui ne va pas, Décœurageante ?” demande AnnDeLune, les yeux pétillants de malice. “Tu te sens découragée ?”\n\nDes fissures roses lumineuses craquèlent la carapace de la Décœurageante, et elle se brise dans un nuage de fumée rose. Alors qu'un sentiment renouvelé de vigueur et de détermination se déploie à travers le paysage, une rafale de délicieux bonbons pleut sur tout le monde.\n\nLa foule enthousiaste applaudit, les gens s'embrassant les uns les autres pendant que leurs familiers mâchouillent les sucreries, qui tombent un peu en retard pour la Saint-Valentin. Soudain, un joyeux chœur résonne dans l'air, et des silhouettes lumineuses embrasent le ciel.\n\nNotre optimisme revigoré a attiré un troupeau d'hippogriffes pleins d'espérance ! Les créatures gracieuses descendent jusqu'au sol, gonflant leurs plumes avec intérêt et caracolant. “Il semble que nous nous soyons fait de nouveaux amis pour nous aider à garder la tête froide, même lorsque nos tâches sont intimidantes”, dit Lemoness.\n\nBeffymaroo a déjà les bras pleins de boules de plumes duveteuses. “Peut-être qu'ils nous aideront à reconstruire les zones endommagées d'Habitica !”\n\nFredonnants, les hippogriffes mènent le chemin pour que tous les Habitciens travaillent ensemble à restaurer notre bien-aimé foyer.",
"questDysheartenerBossRageTitle": "Coup de cœur fracassant",
"questDysheartenerBossRageDescription": "La barre de rage se remplit quand les Habiticiens et les Habiticiennes n'accomplissent pas leurs quotidiennes. Si cette barre se remplit complètement, la Décœurageante lancera son coup de cœur fracassant sur l'un des marchands d'Habitica, alors assurez-vous d'accomplir vos tâches !",
@ -584,7 +584,7 @@
"seasonalShopRageStrikeRecap": "Le 21 février dernier, notre chère Leslie la sorcière saisonnière a été dévastée par la perte de sa boutique saisonnière, fracassée par la Décœurageante. Vite, accomplissez vos tâches afin de vaincre le monstre et aider à tout reconstruire !",
"marketRageStrikeHeader": "Le marché a été attaqué !",
"marketRageStrikeLead": "Alex a le cœur brisé !",
"marketRageStrikeRecap": "Le 28 février, notre merveilleux marchand Alex fut horrifié quand la Décourageante détruisit le marché. Vite ! Accomplissez vos tâches pour vaincre le monstre et aider à rebâtir !",
"marketRageStrikeRecap": "Le 28 février, notre merveilleux marchand Alex fut horrifié quand la Décoeurageante détruisit le marché. Vite ! Accomplissez vos tâches pour vaincre le monstre et aider à rebâtir !",
"questsRageStrikeHeader": "La boutique de quêtes a été prise pour cible !",
"questsRageStrikeLead": "Ian est dévasté !",
"questsRageStrikeRecap": "Le 6 mars, notre merveilleux Ian, le guide des quêtes, fut profondément touché lorsque la Décœurageante a réduit sa boutique des quêtes en miettes. Vite, accomplissez vos tâches pour vaincre le monstre et permettre la reconstruction !",
@ -593,7 +593,7 @@
"questDysheartenerDropHippogriffPet": "Hippogriffe optimiste (Familier)",
"questDysheartenerDropHippogriffMount": "Hippogriffe optimiste (Monture)",
"dysheartenerArtCredit": "Illustration par @AnnDeLune",
"hugabugText": "Lot de quête des jolies bébêtes",
"hugabugText": "Lot de quêtes des jolies bébêtes",
"hugabugNotes": "Contient \"Le BUG CRITIQUE\", \"L'escargot de la fange de Pénibilité\" et \"Minute, papillon !\". Disponible jusqu'au 31 mars.",
"questSquirrelText": "Lécureuil sournois",
"questSquirrelNotes": "Vous ouvrez les yeux et vous rendez compte que vous avez raté le réveil ! Pourquoi n'a-t-il pas sonné ? Pourquoi est-ce qu'il y a un gland coincé dans la sonnette ?<br><br>Quand vous essayez de faire le petit déjeuner, le grille-pain est rempli de glands. Lorsque vous allez retrouver votre monture, @Shtut est là, essayant vainement d'ouvrir son écurie. Il jette un œil dans la serrure... \"C'est un gland qui est coincé là-dedans ?\"<br><br>@randomdaisy s'écrie \"Oh non ! Je savais que mes familiers écureuils s'étaient échappés, mais je ne savais pas qu'ils avaient provoqué tant de soucis ! Pouvez-vous m'aider à les rassembler, avant qu'ils ne fassent plus de bazar ?\"<br><br>En suivant la piste de ces glands malicieusement placés, vous traquez et capturez les sciuridés rebelles, pendant que @Cantras s'assure qu'ils sont ramenés à bon port. Mais lorsque vous pensez votre tâche enfin terminée, un gland rebondit sur votre casque ! Vous levez la tête et voyez un écureuil monstrueusement démesuré, accroupi en position de défense sur une prodigieuse pile de glands.<br><br>\"Ohlala,\" dit @randomdaisy, doucement. \"Celle-ci a toujours été sur la défensive, s'agissant de son stock. Nous allons devoir œuvrer avec attention !\" Vous l'encerclez avec votre équipe, prêts à faire face aux problèmes !",
@ -606,21 +606,21 @@
"aquaticAmigosText": "Lot de quêtes des amis aquatiques",
"aquaticAmigosNotes": "Contient “Laxototl magique”, “Le kraken dInkomplet”, et “Lappel dOctothulu”. Disponible jusquau 31 août.",
"questSeaSerpentText": "Danger dans les profondeurs : Lattaque du serpent de mer !",
"questSeaSerpentNotes": "Vos séries vous portent chance - c'est le moment idéal pour une excursion à l'hippodrome des hippocampes. Vous montez à bord du sous-marin aux Docks Diligents et vous vous installez pour le voyage à Dilatoire, mais vous êtes à peine submergé lorsqu'un impact secoue le sous-marin, et fait chavirer ses occupants. \"Que se passe-t-il ?\"<br><br>Vous regardez à travers un hublot à proximité et vous êtes surpris par le mur d'écailles scintillantes qui passe à côté. \"Serpent de mer !\" crie le capitaine @Witticaster par l'interphone. \"Préparez-vous, il revient !\" Lorsque vous saisissez les bras de votre siège, vos tâches inachevées clignotent devant vos yeux. \"Peut-être que si nous travaillons ensemble et les complétons\", pensez-vous, \"nous pouvons chasser ce monstre !\"",
"questSeaSerpentNotes": "Vous vous sentez en veine grâce à vos réussites - c'est le moment idéal pour une excursion à l'hippodrome des hippocampes. Vous montez à bord du sous-marin aux Docks Diligents et vous vous installez pour le voyage à Dilatoire, mais vous êtes à peine submergé lorsqu'un impact secoue le sous-marin, et fait chavirer ses occupants. \"Que se passe-t-il ?\"<br><br>Vous regardez à travers un hublot à proximité et vous êtes surpris par le mur d'écailles scintillantes qui passe à côté. \"Serpent de mer !\" crie le capitaine @Witticaster par l'interphone. \"Préparez-vous, il revient !\" Lorsque vous saisissez les bras de votre siège, vos tâches inachevées clignotent devant vos yeux. \"Peut-être que si nous travaillons ensemble et les complétons\", pensez-vous, \"nous pouvons chasser ce monstre !\"",
"questSeaSerpentCompletion": "Battus grâce à votre engagement, les serpents de mer fuient, disparaissant dans les profondeurs. Quand vous arrivez à Dilatoire, vous poussez un soupir de soulagement avant de remarquer que @*~Seraphina~ venait vers vous avec trois œufs translucides retenus délicatement dans ses bras. « Tiens, tu mérites de les avoir», dit-elle. « Tu sais comment ty prendre avec les serpents de mer ! » Comme vous acceptez les œufs, vous faites à nouveau vœu de rester toujours constant dans la réalisation de vos tâches pour sassurer que lHistoire ne se répètera pas.",
"questSeaSerpentBoss": "Le puissant serpent de mer",
"questSeaSerpentDropSeaSerpentEgg": "Serpent de mer (œuf)",
"questSeaSerpentUnlockText": "Débloque les oeufs de serpents de mer dans la boutique",
"questKangarooText": "Catastrophe kangourou",
"questKangarooNotes": "Vous auriez peut-être dû terminer cette dernière tâche.... vous savez, celle que vous évitez toujours, même si elle revient toujours ? Mais @Mewrose et @LilithofAlfheim vous invitent, vous et @stefalupagus, à voir un kangourou rare sauter à travers la savane Tanfépaï ; comment pourriez-vous dire non ?! Alors que la troupe entre en vue, quelque chose vous frappe à l'arrière de la tête d'un puissant <em>boum</em><br><br> ! Des étoiles devant les yeux, vous ramassez l'objet responsable - un boomerang rouge foncé, avec la tâche même que vous repoussez continuellement gravée sur sa surface. Un coup d'œil rapide confirme que le reste de votre groupe a connu le même sort. Une plus grande kangourou vous regarde avec un sourire suffisant, comme si elle vous mettait au défi de l'affronter, elle et cette tâche redoutée une fois pour toutes !",
"questKangarooCompletion": "\"MAINTENANT !\" Vous faites signe à votre groupe de lancer les boomerangs sur la kangourou. La bête saute plus loin à chaque coup jusqu'à ce qu'elle s'enfuit, ne laissant rien de plus qu'un nuage de poussière rouge foncé, quelques œufs et quelques pièces d'or.<br><br>@Mewrose marche jusqu'à l'endroit où la kangourou se tenait autrefois. \"Hé, où sont allés les boomerangs ?\"<br><br>\"Ils se sont probablement dissous dans la poussière, faisant ce nuage rouge foncé, quand nous avons terminé nos tâches respectives\", spécule @stefalupagus.<br><br>@LilithofAlfheim louche à l'horizon. \"Est-ce qu'une autre troupe de kangourou se dirige vers nous ?\"<br><br>Vous vous êtes tous introduits dans une course vers Habit City. Mieux vaut affronter vos tâches difficiles que de prendre une autre bosse à l'arrière de la tête !",
"questKangarooCompletion": "\"MAINTENANT !\" Vous faites signe à votre groupe de lancer les boomerangs sur la kangourou. La bête saute plus loin à chaque coup jusqu'à ce qu'elle s'enfuit, ne laissant rien de plus qu'un nuage de poussière rouge foncé, quelques œufs et quelques pièces d'or.<br><br>@Mewrose marche jusqu'à l'endroit où la kangourou se tenait autrefois. \"Hé, où sont allés les boomerangs ?\"<br><br>\"Ils se sont probablement dissous dans la poussière, soulevant ce nuage rouge foncé, quand nous avons terminé nos tâches respectives\", spécule @stefalupagus.<br><br>@LilithofAlfheim louche à l'horizon. \"Est-ce qu'une autre troupe de kangourou se dirige vers nous ?\"<br><br>Vous vous lancez séance tenante dans une course vers Habitville. Mieux vaut affronter vos tâches difficiles que de prendre une autre bosse à l'arrière de la tête !",
"questKangarooBoss": "Kangourou catastrophique",
"questKangarooDropKangarooEgg": "Kangourou (Œuf)",
"questKangarooUnlockText": "Déverrouille l'achat dœufs de kangourou au marché",
"forestFriendsText": "Lot de quête des amis sylvains",
"forestFriendsNotes": "Contient \"L'esprit du printemps\", \"La bête hérissée\" et \"L'arbre tortueux\". Disponible jusqu'au 30 Septembre.",
"questAlligatorText": "L'insti-Gator",
"questAlligatorNotes": "\"Crikey !\" s'exclame @gully. \"Un Insti-Gator dans son habitat naturel ! Attention, il distrait sa proie avec des choses qui semblent urgentes A CET INSTANT, et il se nourrit des quotidiennes non contrôlées qui en résultent.\" Vous vous taisez pour éviter d'attirer son attention, mais en vain. L'Insti-Gator vous repère et charge ! Des voix distrayantes s'élèvent du marais de la stagnation, attirant votre attention : \"Lis ce post ! Regarde cette photo ! Fais attention à moi MAINTENANT !\" Vous vous précipitez pour monter une contre-attaque, complétant vos quotidiennes et renforçant vos bonnes habitudes pour combattre le redoutable Insti-Gator.",
"questAlligatorNotes": "\"Sans blague !\" s'exclame @gully. \"Un Insti-Gator dans son habitat naturel ! Attention, il distrait sa proie avec des choses qui semblent urgentes A CET INSTANT, et il se nourrit des quotidiennes non contrôlées qui en résultent.\" Vous vous taisez pour éviter d'attirer son attention, mais en vain. L'Insti-Gator vous repère et charge ! Des voix distrayantes s'élèvent du marais de la stagnation, attirant votre attention : \"Lis ce post ! Regarde cette photo ! Fais attention à moi MAINTENANT !\" Vous vous précipitez pour monter une contre-attaque, complétant vos quotidiennes et renforçant vos bonnes habitudes pour combattre le redoutable Insti-Gator.",
"questAlligatorCompletion": "Avec votre attention concentrée sur ce qui est important et non sur les distractions de l'Insti-Gator, l'Insti-Gator fuit. Victoire ! \"Ce sont des oeufs ? Ils ressemblent à des œufs d'alligator pour moi \", demande @mfonda. \"Si nous prenons soin d'eux, ils seront des animaux de compagnie loyaux ou des coursiers fidèles\", répond @UncommonCriminal, vous en donnant trois à soigner. Espérons que oui, sinon l'Insti-Gator pourrait revenir…",
"questAlligatorBoss": "Insti-Gator",
"questAlligatorDropAlligatorEgg": "Alligator (Œuf)",
@ -630,7 +630,7 @@
"birdBuddiesText": "Lot de quêtes des oiseaux acolytes",
"birdBuddiesNotes": "Contient 'Le gorfou glacé,' 'La colère du coq,' et 'Le paon oscillant.' Disponible jusqu'au 31 décembre.",
"questVelociraptorText": "Le Veloci-Rappeur",
"questVelociraptorNotes": "Vous partagez des gâteaux au miel avec @*~Seraphina~*, @Procyon P, et @Lilith of Alfheim près d'un lac dans les steppes de Stoïkalm. Soudain, une voix triste interrompt votre pique-nique.<br><br>br><em>Mes habitudes ont pris un coup, j'ai raté mes quotidiennes,<br>Je suis perdu, pris de doutes et d'incertitudes,<br>Au sommet de mon jeu, j'ai l'habitude de voler,<br>Mais maintenant, j'ai juste raté mes échéances.</em><br><br>@~Seraphina~* observe entre les touffes d'herbe. \"C'est le Veloci-Rapper. Il semble... désemparé ?\"<br><br><br>Vous levez un poing de détermination. \"Il n'y a qu'une chose à faire. C'est l'heure de la bataille de rap !\"",
"questVelociraptorNotes": "Vous partagez des gâteaux au miel avec @*~Seraphina~*, @Procyon P, et @Lilith of Alfheim près d'un lac dans les steppes de Stoïkalm. Soudain, une voix triste interrompt votre pique-nique.<br><br>br><em>Mes habitudes ont pris un coup, j'ai raté mes quotidiennes,<br>Je suis perdu, pris de doutes et d'incertitudes,<br>Au sommet de mon jeu, j'ai l'habitude de voler,<br>Mais maintenant, j'ai juste raté mes échéances.</em><br><br>@~Seraphina~* observe entre les touffes d'herbe. \"C'est le Veloci-Rappeur. Il semble... désemparé ?\"<br><br><br>Vous levez un poing de détermination. \"Il n'y a qu'une chose à faire. C'est l'heure de la bataille de rap !\"",
"questVelociraptorCompletion": "Vous jaillissez à travers l'herbe, pour faire face au Veloci-rappeur.<br><br><em>Tu vois, rappeur, tu n'es pas un lâcheur,<br>Tes mauvaises habitudes peuvent te faire vraiment peur !<br>Valide tes tâches comme un pro,<br>Ne pleure pas si tu prends un jour de trop !</em><br><br>Rempli d'une nouvelle confiance, il sautille vers de nouvelles tâches, laissant derrière lui trois œufs .",
"questVelociraptorBoss": "Veloci-Rappeur",
"questVelociraptorDropVelociraptorEgg": "Velociraptor (Oeuf)",
@ -646,12 +646,12 @@
"questDolphinText": "Le dauphin du doute",
"questDolphinNotes": "Vous marchez sur les rives de la baie d'Inkomplete, méditant sur le travail intimidant qui vous attend. Une éclaboussure dans l'eau attire votre attention. Un magnifique dauphin s'enroule sur les vagues. La lumière du soleil brille sur ses nageoires et sa queue. Mais attendez....ce n'est pas la lumière du soleil, et le dauphin ne plonge pas dans la mer. Il fixe son regard sur @khdarkwolf.<br><br>\"Je ne finirai jamais tous ces quotidiennes,\" dit @khdarkwolf.<br><br>\"Je ne suis pas assez bon pour atteindre mes objectifs,\" dit @confusedcicada quand le dauphin a tourné son regard dans sa direction.<br><br>\"Pourquoi ai-je pris la peine d'essayer ?\" demande @mewrose, s'effondrant sous le regard de la bête.<br><br>Ces yeux rencontrent les vôtres, et vous sentez votre esprit commencer à couler sous la marée montante du doute. Il faut que quelqu'un batte cette créature, et ce sera vous !",
"questDolphinBoss": "Dauphin du doute",
"questDolphinCompletion": "Votre bataille de volonté avec le dauphin vous a fatigué mais la victoire est votre. Avec votre détermination et vos encouragements, @mewrose, @khdarkwolf et @confusedcicada se relèvent et se débarrassent de la télépathie insidieuse du dauphin. Vous vous protégez tous les quatre avec un sentiment d'accomplissement dans vos quotidiennes régulières, vos habitudes fortes et vos tâches accomplies jusqu'à ce qu'il ferme les yeux brillants en reconnaissance silencieuse de vos succès. Avec ça, il repart dans la baie. Alors que vous échangez des félicitations, vous remarquez que trois œufs s'échouent sur la plage.<br><br><br>\"Hum, je me demande ce que nous pouvons faire avec ça,\" s'amuse @khdarkwolf.",
"questDolphinCompletion": "Votre bataille de volonté avec le dauphin vous a fatigué mais la victoire est vôtre. Avec votre détermination et vos encouragements, @mewrose, @khdarkwolf et @confusedcicada se relèvent et se débarrassent de la télépathie insidieuse du dauphin. Vous vous protégez tous les quatre avec un sentiment d'accomplissement dans vos quotidiennes régulières, vos habitudes fortes et vos tâches accomplies jusqu'à ce qu'il ferme les yeux brillants en reconnaissance silencieuse de vos succès. Puis il repart dans la baie. Alors que vous échangez des félicitations, vous remarquez que trois œufs s'échouent sur la plage.<br><br><br>\"Hum, je me demande ce que nous pouvons faire avec ça,\" s'amuse @khdarkwolf.",
"questDolphinDropDolphinEgg": "Dauphin (Œuf)",
"questDolphinUnlockText": "Déverrouille l'achat dœufs de dauphin au marché",
"questSilverText": "La solution argentée",
"questSilverNotes": "La récente découverte de Potions d'éclosion de bronze a fait parler d'elle. Des potions de métaux encore plus brillants seraient-elles possibles ? Vous vous dirigez vers la bibliothèque publique centrale d'Habit-Ville, en compagnie de @QuartzFox et @starsystemic, et rassemblez de nombreux de livres sur l'alchimie pour étudier.<br><br>Après des heures de travail pénible, @QuartzFox pousse un cri de triomphe pas très adapté à une bibliothèque. \"Aha ! Je l'ai trouvé !\" Vous vous dépêchez d'aller voir. \"Une potion d'éclosion en argent peut être faite avec des runes du signe du zodiaque du Cancer, dissoutes dans de l'argent pur fondu sur une flamme infusée avec la puissance des runes lunaires.\"<br><br>\"Nous aurons besoin de beaucoup de ces ingrédients,\" s'amuse @starsystemic. \"Il n'y a qu'un seul endroit pour trouver d'énormes quantités de ces matériaux de fabrication aléatoires \", dit @Edge, debout à l'ombre des piles, les bras croisés. \"Les donjons de la corvée. Allons-y.\"",
"questSilverCompletion": "Vous avez fouillé. Vous avez creusé. Vous avez excavé. Enfin, vous émergez du donjon, chargés de runes et de barres d'argent, couverts de boue mais enivrés de succès. Vous retournez à Habit-Ville et vous vous mettez au travail dans un laboratoire d'alchimie. Vous et @starsystemic suivez les formules que @QuartzFox a trouvé, sous la supervision attentive de @Edge. Enfin, dans une grande bouffée de paillettes et de fumée, votre concoction s'installe dans la viscosité familière d'une potion d'éclosion !<br><br>@Edge ramasse le mélange dans des fioles et sourit. \"Essayons, d'accord ? Quelqu'un a des œufs ?\"<br><br>Vous vous précipitez vers les écuries, en vous demandant quels secrets brillants peuvent encore rester à découvrir....",
"questSilverCompletion": "Vous avez fouillé. Vous avez creusé. Vous avez excavé. Enfin, vous émergez du donjon, chargés de runes et de barres d'argent, couverts de boue mais enivrés de succès. Vous retournez à Habit-Ville et vous vous mettez au travail dans un laboratoire d'alchimie. Vous et @starsystemic suivez les formules que @QuartzFox a trouvé, sous la supervision attentive de @Edge. Enfin, dans une grande bouffée de paillettes et de fumée, votre décoction se stabilise avec la viscosité familière d'une potion d'éclosion !<br><br>@Edge ramasse le mélange dans des fioles et sourit. \"Essayons, d'accord ? Quelqu'un a des œufs ?\"<br><br>Vous vous précipitez vers les écuries, en vous demandant quels secrets brillants peuvent encore rester à découvrir....",
"questSilverCollectCancerRunes": "Runes du zodiaque du Cancer",
"questSilverCollectMoonRunes": "Runes lunaires",
"questSilverCollectSilverIngots": "Lingots d'argent",
@ -674,14 +674,14 @@
"questAmberUnlockText": "Déverrouille l'achat de potions d'éclosion d'ambre au marché",
"questAmberDropAmberPotion": "Potion d'éclosion d'ambre",
"questAmberBoss": "Arbrésine",
"questAmberCompletion": "\"Arbrésine ?\" dit @-Tyr- calmement. \"Pourriez-vous laisser partir @Vikte ? Je ne pense pas qu'ils apprécient d'être si haut.\"<br><br>La peau ambrée de l'arbrésine rougit de pourpre et elle descend doucement @Vikte vers le sol. \"Mes excuses ! Ça fait si longtemps que je n'ai pas eu d'invités que j'ai oublié mes manières !\" Elle se glisse vers l'avant pour vous saluer correctement avant de disparaître dans sa cabane dans l'arbre et de revenir avec une brassée de potions d'éclosion d'ambre en guise de remerciement!<br><br>\"Potions magiques !\" @Vikte gasps.<br><br>\"Oh, ces vieilles choses ?\" La langue de l'arbrésine scintille comme elle le pense. \"Que penses-tu de ça ? Je vous donnerai toute cette pile si vous promettez de me rendre visite de temps en temps...\"<br><br>Et donc vous quittez le bois des tâches, excités de parler des nouvelles potions à tout le monde - et à votre nouvelle amie !",
"evilSantaAddlNotes": "Notez que Trappeur Noël et Trouve l'ourson sont récompensés par des succès de quêtes cumulatifs, mais donnent un familier et une monture rare que vous ne pouvez ajouter à votre écurie qu'une seule fois.",
"questAmberCompletion": "\"Arbrésine ?\" dit @-Tyr- calmement. \"Pourriez-vous laisser partir @Vikte ? Je ne pense pas qu'ils apprécient d'être si haut.\"<br><br>La peau ambrée de l'arbrésine rougit de pourpre et elle descend doucement @Vikte vers le sol. \"Mes excuses ! Ça fait si longtemps que je n'ai pas eu d'invités que j'ai oublié mes manières !\" Elle se glisse vers l'avant pour vous saluer correctement avant de disparaître dans sa cabane dans l'arbre et de revenir avec une brassée de potions d'éclosion d'ambre en guise de remerciement!<br><br>\"Potions magiques !\" @Vikte gasps.<br><br>\"Oh, ces vieilles choses ?\" La langue de l'arbrésine scintille comme elle le pense. \"Que penses-tu de ça ? Je vous donnerai toute cette pile si vous promettez de me rendre visite de temps en temps...\"<br><br>Et donc vous quittez le bois des tâches, excités de parler des nouvelles potions - et de votre nouvelle amie - à tout le monde !",
"evilSantaAddlNotes": "Notez que les quêtes Trappeur Noël et Trouve l'ourson sont récompensées par des succès qui se cumulent, mais donnent un familier et une monture rare que vous ne pouvez ajouter à votre écurie qu'une seule fois.",
"questRubyUnlockText": "Déverrouille l'achat de potions d'éclosion rubis au marché",
"questRubyDropRubyPotion": "Potion d'éclosion rubis",
"questRubyCollectRubyGems": "Gemmes de rubis",
"questRubyCollectVenusRunes": "Runes de Vénus",
"questRubyCollectAquariusRunes": "Runes zodiacales du verseau",
"questRubyCompletion": "Les objets nécessaires étant bien emballés, vous vous précipitez tous les trois à Habitiville et vous retrouvez dans le laboratoire de @beffymaroo. \"Excellent travail !\" dit @beffymaroo. \"Vous avez réuni les ingrédients de la potion !\"<br><br>@beffymaroo combine soigneusement les runes et les rubis pour créer une potion rouge brillante et en verse une partie sur deux œufs d'animaux de compagnie. En observant les résultats, vous remarquez que les deux animaux de compagnie semblent complètement désintéressés l'un par rapport à l'autre ! <br><br> \"Ça n'a pas marché ?\" demande @gully. Mais avant de pouvoir répondre, vous vous rendez soudain compte que ce n'est pas la potion qui crée l'amitié et l'amour, mais plutôt l'expérience de travailler ensemble vers un but commun. Vous sortez de la quête en ayant gagné de nouveaux amis... et de nouveaux animaux de compagnie tape-à-l'œil !",
"questRubyCompletion": "Avec les objets nécessaires bien emballés, vous vous précipitez tous les trois à Habitiville et vous retrouvez dans le laboratoire de @beffymaroo. \"Excellent travail !\" dit @beffymaroo. \"Vous avez réuni les ingrédients de la potion !\"<br><br>@beffymaroo combine soigneusement les runes et les rubis pour créer une potion rouge brillante et en verse une partie sur deux œufs d'animaux de compagnie. En observant les résultats, vous remarquez que les deux animaux de compagnie semblent complètement désintéressés l'un par rapport à l'autre ! <br><br> \"Ça n'a pas marché ?\" demande @gully. Mais avant de pouvoir répondre, vous vous rendez soudain compte que ce n'est pas la potion qui crée l'amitié et l'amour, mais plutôt l'expérience de travailler ensemble vers un but commun. Vous sortez de cette quête en ayant gagné de nouveaux amis... et de nouveaux animaux de compagnie tape-à-l'œil !",
"questRubyNotes": "Les sommets des volcans du Stoïkalm, normalement très animés, sont silencieux dans la neige. \"Je suppose que les randonneurs et les observateurs sont en hibernation ?\" vous disent @gully et @Aspiring_Advocate. \"Cela facilite notre recherche.\"<br><br>En atteignant le sommet, le vent froid se confond avec la vapeur qui s'échappe du cratère. \"Là !\" s'exclame @Aspiring_Advocate, montrant une source chaude. \"Quel meilleur endroit pour trouver des runes fraîches du Verseau et des runes passionnées de Vénus que là où la glace et le feu se rencontrent ?\"<br><br>Vous vous précipitez vers la source chaude. \"Selon mes recherches,\" dit @Aspiring_Advocate, \"combiner les runes avec des rubis en forme de coeur permettra de créer une potion d'éclosion qui pourra favoriser l'amitié et l'amour !\"<br><br>Excités par la perspective d'une nouvelle découverte, vous souriez tous. \"Très bien\", dit @gully, \"commençons à chercher !\"",
"questRubyText": "Rapport rubis",
"questWaffleUnlockText": "Déverrouille l'achat de potion d'éclosion de confiserie au marché",
@ -690,13 +690,13 @@
"questWaffleRageDescription": "Bourbier d'érable : Cette barre se remplit quand vous n'effectuez pas vos quotidiennes. Lorsqu'elle est pleine, l'affreuse gaufre annulera l'attaque de l'équipe !",
"questWaffleRageTitle": "Bourbier d'érable",
"questWaffleBoss": "Affreuse gaufre",
"questWaffleCompletion": "Battue et beurrée mais triomphante, vous savourez la douce victoire alors que l'Affreuse Gaufre s'effondre dans une mare gluante.<br><br> \"Wow, vous avez vraiment écrémé ce monstre\", dit Lady Glaciate, impressionnée.<br><br> \"C'était pas de la tarte !\" rayonne le Poison d'avril.<br><br> \"Un peu la honte, cependant\", dit @beffymaroo. \"Ça avait l'air assez bon à manger.\"<br><br>\"Le Poison prend un ensemble de flacons de potion quelque part dans sa cape, les remplit avec les restes sirupeux de la Gaufre, et les mélange dans une pincée de poussière pétillante. Le liquide tourbillonne de couleurs... de nouvelles potions d'éclosion ! Il les jette dans vos bras. \"Toute cette aventure m'a donné de l'appétit. Qui veut se joindre à moi pour le petit déjeuner ?\"",
"questWaffleNotes": "Lady Glaciate prend d'assaut le 'Poison d'avril'. \"Vous avez dit que votre farce sur le thème du dessert était 'terminée et complètement nettoyée' !\" <br><br> \"Mais, c'était et c'est encore le cas, ma chère\", répond le Poison, perplexe. \"Et je suis le plus honnête des Poisons. Qu'est-ce qui ne va pas ? \"<br><br>\"Il y a un monstre géant sucré qui approche de Habitiville !\"<br><br>\"Hmm,\" dit le Poison. \"J'ai fait un raid dans quelques tanières pour les réactifs mystiques de mon dernier événement. J'ai peut-être attiré une attention non désirée. Est-ce le Serpent Saccharine ? La Torte-oise ? Le Tiramisu Rex ?\"<br><br>\"Non ! C'est une sorte de... d'Affreuse Gaufre !\"<br><br>\"Huh. C'est une nouvelle ! Peut-être qu'elle est née de toute l'énergie ambiante des bêtises.\" Il se tourne vers vous et @beffymaroo avec un sourire en coin. \"Je suppose que vous ne seriez pas disponible pour quelques actes héroïques ?\"",
"questWaffleCompletion": "Battue et beurré mais triomphant, vous savourez la douce victoire alors que l'Affreuse Gaufre s'effondre dans une mare gluante.<br><br> \"Wow, vous avez vraiment écrémé ce monstre\", dit Lady Glaciate, impressionnée.<br><br> \"C'était pas de la tarte !\" rayonne le Fou d'avril.<br><br> \"Quelle honte, cependant\", dit @beffymaroo. \"Ça avait l'air vraiment bon à manger.\"<br><br>\"Le Fou d'avril prend un ensemble de flacons de potion quelque part dans sa cape, les remplit avec les restes sirupeux de la Gaufre, et les mélange dans une pincée de poussière pétillante. Le liquide tourbillonne de couleurs... de nouvelles potions d'éclosion ! Il les jette dans vos bras. \"Toute cette aventure m'a mis en appétit. Qui veut se joindre à moi pour le petit déjeuner ?\"",
"questWaffleNotes": "\"Fou d'avril !\" tonne Dame Givre. \"Vous avez dit que votre farce sur le thème du dessert était 'terminée et complètement nettoyée' !\" <br><br> \"Mais, c'était et c'est encore le cas, ma chère\", réplique le Fou d'avril, perplexe. \"Et je suis le plus honnête des Fous. Qu'est-ce qui ne va pas ? \"<br><br>\"Il y a un monstre géant sucré qui approche de Habitiville !\"<br><br>\"Hmm,\" dit le Fou. \"J'ai fait un raid dans quelques tanières pour les réactifs mystiques de mon dernier événement. J'ai peut-être attiré une attention non désirée. Est-ce le Serpent Saccharine ? La Torte-oise ? Le Tiramisu Rex ?\"<br><br>\"Non ! C'est une sorte de... d'Affreuse Gaufre !\"<br><br>\"Huh. C'est une nouvelle ! Peut-être qu'elle est née de toute l'énergie ambiante des bêtises.\" Il se tourne vers vous et @beffymaroo avec un sourire en coin. \"Je suppose que vous ne seriez pas disponible pour quelques actes héroïques ?\"",
"questWaffleText": "Gaufrer le poisson : Petit déjeuner désastreux !",
"jungleBuddiesNotes": "Contient \"Le monstrueux mandrill et les malicieux macaques\", \"Somnolent le paresseux\" et \"L'arbre tortueux\". Disponible jusqu'au <%= date %>.",
"jungleBuddiesText": "Lot de quêtes des potes de la jungle",
"questFluoriteText": "Une peur fluorine bleue",
"questFluoriteNotes": "Les minéraux rares sont en forte demande ces jours-ci, donc avec une poignée d'amis, vous avez décidé de partir en expédition au profond des mines des monts Sinueux, à la recherche d'excitants minéraux. C'est une longue et pénible expédition, jusqu'à ce que @-Tyr- trébuche sur un large rocher reposant au milieu du tunnel.<br><br>\"Ça devrait éclairer le chemin\", dit @nirbhao, avant de conjurer un orbe de lumière.<br><br>Un éclairage tamisé empli le tunnel, mais quelque chose d'étrange commence à se produire sur le rocher. Se nourrissant de la lumière magique, il commence à briller avec du bleu, du vert et du mauve fluorescents. C'est alors qu'il se redresse, prenant une forme vaguement humanoïde, et ses deux yeux étincelant de rouge regardent droit dans votre direction ! Vous vous mettez en action avec vos sorts éclatants et vos armes étincelantes.",
"questFluoriteNotes": "Les minéraux rares sont en forte demande ces jours-ci, donc avec une poignée d'amis, vous avez décidé de partir en expédition au plus profond des mines des monts Sinueux, à la recherche de minéraux insolites. C'est une longue et pénible expédition, jusqu'à ce que @-Tyr- trébuche sur un large rocher reposant au milieu du tunnel.<br><br>\"Ça devrait éclairer le chemin\", dit @nirbhao, avant de conjurer un orbe de lumière.<br><br>Un éclairage tamisé empli le tunnel, mais quelque chose d'étrange commence à se produire sur le rocher. Se nourrissant de la lumière magique, il commence à briller avec du bleu, du vert et du mauve fluorescents. C'est alors qu'il se redresse, prenant une forme vaguement humanoïde, et ses deux yeux étincelant de rouge regardent droit dans votre direction ! Vous vous mettez en action avec vos sorts éclatants et vos armes étincelantes.",
"questFluoriteUnlockText": "Déverrouille l'achat de potion d'éclosion fluorine au marché",
"questFluoriteDropFluoritePotion": "Potion d'éclosion fluorine",
"questFluoriteBoss": "Élémentaire de fluorine",

View file

@ -252,5 +252,6 @@
"mysterySet202005": "Ensemble de la merveilleuse wyverne",
"mysterySet202006": "Ensemble de sirène multichromé",
"mysterySet202007": "Ensemble d'épaulard époustouflant",
"mysterySet202008": "Ensemble d'oracle du hibou"
"mysterySet202008": "Ensemble d'oracle du hibou",
"mysterySet202009": "Ensemble de mite merveilleuse"
}

View file

@ -90,5 +90,6 @@
"achievementAllThatGlitters": "Tutto ciò che luccica",
"achievementGoodAsGoldText": "Colleziona tutti gli animali oro.",
"achievementGoodAsGoldModalText": "Hai collezionato tutti gli animali oro!",
"achievementGoodAsGold": "Come oro colato"
"achievementGoodAsGold": "Come oro colato",
"yourRewards": "Le tue ricompense"
}

View file

@ -358,5 +358,6 @@
"premiumPotionUnlimitedNotes": "Non utilizzabile su uova di animali ottenute dalle missioni.",
"hatchingPotionDessert": "Dolcetto",
"hatchingPotionBirchBark": "Corteccia di Betulla",
"hatchingPotionRuby": "Rubino"
"hatchingPotionRuby": "Rubino",
"hatchingPotionWindup": "Carica a Molla"
}

View file

@ -41,12 +41,12 @@
"androidFaqAnswer9": "Per prima cosa devi unirti ad una squadra o crearne una (vedi sopra). Sebbene tu possa combattere i mostri da solo, ti raccomandiamo di giocare in un gruppo, perché questo renderà le Missioni molto più facili. Inoltre, avere un amico che si rallegra con te quando porti a termine le tue attività è molto motivante!\n\nPoi hai bisogno di una Pergamena delle missioni, che si trova in Menu > Oggetti. Ci sono tre modi per ottenere una Pergamena: \n\n- Al livello 15 ottieni una Serie di Missioni, cioè tre missioni collegate. Altre Serie di Missioni vengono sbloccate rispettivamente ai livelli 30, 40 e 60.\n- Quando inviti qualcuno nella tua squadra vieni premiato con una Pergamena Basi-Lista!\n- Puoi comprare Pergamene nel Negozio delle Missioni usando oro o gemme.\n\nPer combattere il Boss o raccogliere oggetti per una Sfida di Raccolta Oggetti, devi solo completare le tue attività normalmente, ed esse saranno trasformate in danni durante la notte. (Potrà essere necessario ricaricare la pagina tirando verso il basso la parte alta dello schermo per veder scendere la barra della salute del Boss). Se stai combattendo un Boss e salti qualche Dailies, il Boss colpirà la tua squadra nello stesso momento in cui lo danneggerai tu.\n\nDopo il livello 11, Maghi e Guerrieri otterranno abilità che permettono loro di infliggere un danno ulteriore al Boss, rendendole quindi classi eccellenti da scegliere al livello 10 se vuoi colpire duro.",
"webFaqAnswer9": "Per prima cosa devi unirti ad una squadra o crearne una cliccando \"Squadra\" nella barra di navigazione. Sebbene tu possa combattere i mostri da solo, ti raccomandiamo di giocare in un gruppo, perché questo renderà le Missioni molto più facili. Inoltre, avere un amico che si rallegra con te quando porti a termine le tue attività è molto motivante! Poi hai bisogno di una Pergamena delle missioni, che si trovano sotto Inventario > Missioni. Ci sono quattro modi per ottenere una Pergamena: \n* Quando inviti qualcuno nella tua Squadra vieni premiato con una Pergamena Basi-List!\n* Al livello 15 ottieni una Serie di Missioni, cioè tre missioni collegate. Altre Serie di Missioni vengono sbloccate rispettivamente ai livelli 30, 40 e 60.\n* Puoi comprare Pergamene nel Negozio delle Missioni (Negozi > Missioni) usando oro o gemme.\n* Quando fai il check in su Habitica per un certo numero di volte, sei ricompesato con dell Pergamene delle Missioni. Ottieni una Pergamena durante il primo, settimo, ventiduesimo e quarantesimo check in.\nPer combattere il Boss o raccogliere oggetti per una Sfida di Raccolta Oggetti, devi solo completare le tue attività normalmente, ed esse saranno trasformate in danni durante la notte. (Potrà essere necessario ricaricare la pagina per veder scendere la barra della salute del Boss). Se stai combattendo un Boss e salti qualche Dailies, il Boss colpirà la tua squadra nello stesso momento in cui lo danneggerai tu. Dopo il livello 11, Maghi e Guerrieri otterranno abilità che permettono loro di infliggere un danno ulteriore al Boss, rendendole quindi classi eccellenti da scegliere al livello 10 se vuoi colpire duro.",
"faqQuestion10": "Cosa sono le Gemme, e come posso ottenerle?",
"iosFaqAnswer10": "Le Gemme vengono comprate con soldi reali cliccando sull'icona a forma di gemma nell'intestazione. Coloro che comprano Gemme aiutano a mantenere il sito attivo. Siamo molto grati per il loro sostegno!\n\nOltre a comprare le Gemme direttamente, ci sono altri tre modi in cui i giocatori le possono ottenere:\n\n* Vincere una Sfida che è stata creata da una altro giocatore. Vai su Social > Sfide per unirti a qualcuna di esse.\n* Abbonarsi e sbloccare la capacità di comprare un certo numero di gemme al mese.\n* Contribuire con le tue abilità al progetto Habitica. Consulta questa pagina della wiki per maggiori informazioni: [Contribuire ad Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\nRicorda che gli oggetti comprati con le Gemme non offrono nessun vantaggio statistico, perciò i giocatori possono utilizzare il sito anche senza di esse!",
"androidFaqAnswer10": "Le Gemme vengono comprate con soldi reali cliccando sull'icona a forma di gemma nell'intestazione. Coloro che comprano Gemme aiutano a mantenere il sito attivo. Siamo molto grati per il loro sostegno!\n\nOltre a comprare le Gemme direttamente, ci sono altri tre modi in cui i giocatori le possono ottenere:\n\n* Vincere una Sfida che è stata creata da una altro giocatore. Vai su Social > Sfide per unirti a qualcuna di esse.\n* Abbonarsi e sbloccare la capacità di comprare un certo numero di gemme al mese.\n* Contribuire con le tue abilità al progetto Habitica. Consulta questa pagina della wiki per maggiori informazioni: [Contribuire ad Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\nRicorda che gli oggetti comprati con le Gemme non offrono nessun vantaggio statistico, perciò i giocatori possono utilizzare il sito anche senza di esse!",
"iosFaqAnswer10": "Le Gemme vengono comprate con soldi reali da Menu > Compra gemme. Comprando delle Gemme aiuti a mantenere Habitica attiva. Ti siamo molto grati per il tuo sostegno!\n\nOltre a comprare le Gemme direttamente, ci sono altri tre modi in cui i giocatori le possono ottenere:\n\n* Vincere una Sfida che è stata creata da una altro giocatore. Vai su Menu > Sfide per unirti a qualcuna di esse.\n* Abbonarsi e sbloccare la capacità di comprare un certo numero di gemme al mese.\n* Contribuire con le tue abilità al progetto Habitica. Consulta questa pagina della wiki per maggiori informazioni: [Contribuire ad Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\nRicorda che gli oggetti comprati con le Gemme non offrono nessun vantaggio statistico, perciò i giocatori possono utilizzare il sito anche senza di esse!",
"androidFaqAnswer10": "Le Gemme vengono comprate con soldi reali da Menu > Compra gemme. Comprando delle Gemme aiuti a mantenere Habitica attiva. Ti siamo molto grati per il tuo sostegno!\n\nOltre a comprare le Gemme direttamente, ci sono altri tre modi in cui i giocatori le possono ottenere:\n\n* Vincere una Sfida che è stata creata da una altro giocatore. Vai su Menu > Sfide per unirti a qualcuna di esse.\n* Abbonarsi e sbloccare la capacità di comprare un certo numero di gemme al mese.\n* Contribuire con le tue abilità al progetto Habitica. Consulta questa pagina della wiki per maggiori informazioni: [Contribuire ad Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica).\n\nRicorda che gli oggetti comprati con le Gemme non offrono nessun vantaggio statistico, perciò i giocatori possono utilizzare il sito anche senza di esse!",
"webFaqAnswer10": "Le Gemme vengono comprate con soldi reali, anche se [gli abbonati](https://habitica.com/user/settings/subscription) possono comprarle in cambio di Oro. Quando le persone si abbonano o comprano Gemme, ci aiutano a mantenere il sito attivo. Siamo molto grati per il loro sostegno! Oltre a comprare Gemme direttamente o abbonarsi, ci sono altri due modi in cui i giocatori possono ottenere Gemme:\n* Vincere una Sfida creata da un altro giocatore. Vai in Sfide > Esplora Sfide per provarne qualcuna.\n* Contribuire con le tue abilità al progetto Habitica. Consulta questa pagina della wiki per maggiori informazioni: [Contribuire ad Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica). Tieni presente che gli oggetti comprati con le Gemme non offrono alcun vantaggio sulle statistiche del personaggio, quindi i giocatori possono utilizzare il sito anche senza averli!",
"faqQuestion11": "Come posso segnalare un bug o dare dei suggerimenti?",
"iosFaqAnswer11": "Puoi segnalare un bug, richiedere una particolare funzionalità o inviare commenti in Menù > About > Segnala un bug e Menu > About > Invia suggerimenti! Faremo tutto il possibile per aiutarti.",
"androidFaqAnswer11": "Puoi segnalare un bug, richiedere una particolare funzionalità o inviare commenti in Aiuto > Segnala un bug e Menu > Invia suggerimenti! Faremo tutto il possibile per aiutarti.",
"iosFaqAnswer11": "Se pensi di aver riscontrato un bug, vai in Menu > Assistenza > Richiedi aiuto per cercare soluzioni rapide, problemi noti o per segnalarci il bug. Faremo tutto il possibile per aiutarti.\n\n Per inviare feedback o richiedere una miglioria è possibile accedere al nostro modulo di feedback da Menu > Assistenza > Invia feedback. In caso di domande, ti contatteremo per ulteriori informazioni!",
"androidFaqAnswer11": "Se pensi di aver riscontrato un bug, vai in Menu > Aiuto & FAQ > Richiedi aiuto per cercare soluzioni rapide, problemi noti o per segnalarci il bug. Faremo tutto il possibile per aiutarti.\n\n Per inviare feedback o richiedere una miglioria è possibile accedere al nostro modulo di feedback da Menu > Aiuto & FAQ > Invia feedback. In caso di domande, ti contatteremo per ulteriori informazioni!",
"webFaqAnswer11": "Per segnalare un bug, vai su [Aiuto > Segnala un Bug](https://habitica.com/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac) e leggi le istruzioni sopra il riquadro della chat. Se non riesci ad accedere ad Habitica, invia i tuoi dettagli di accesso (senza la tua password!) a [<%= techAssistanceEmail %>](<%= wikiTechAssistanceEmail %>). Non preoccuparti, ce ne occuperemo al più presto! Le richieste di nuove funzionalità invece sono raccolte in un Modulo Google. Vai su [Aiuto > Richiedi una funzionalità](https://docs.google.com/forms/d/e/1FAIpQLScPhrwq_7P1C6PTrI3lbvTsvqGyTNnGzp1ugi1Ml0PFee_p5g/viewform?usp=sf_link) e segui le istruzioni. Ta-da!",
"faqQuestion12": "Come combatto un Boss Mondiale?",
"iosFaqAnswer12": "I Boss Mondiali sono mostri speciali che appaiono nella Taverna. Tutti gli utenti attivi combattono automaticamente contro questi mostri e le loro attività e abilità danneggiano il Boss come al solito.\n\nPuoi anche essere contemporaneamente impegnato in una Sfida normale. Le tue attività e abilità conteranno sia nella battaglia contro il Boss Mondiale che nelle Sfide o Missioni di gruppo in corso.\n\nUn Boss Mondiale non infliggerà mai danni a te o al tuo account. Tuttavia, possiede una Barra della rabbia che si riempie quando gli utenti saltano le Dailies. Se la barra si riempie tutta, attaccherà uno dei personaggi non giocanti, la cui immagine cambierà. \n\nPuoi leggere di più sui precedenti Boss Mondiali [qui] (http://habitica.fandom.com/wiki/World_Bosses) sulla wiki.",

View file

@ -1257,7 +1257,7 @@
"headArmoireBirdsNestText": "Nido di Uccello",
"headArmoireBirdsNestNotes": "Se inizi a sentire movimento e cinguettii, il tuo nuovo copricapo potrebbe essere diventato nuovi amici. Aumenta Intelligenza di <%= int %>. Scrigno Incantato: Oggetto Indipendente.",
"headArmoirePaperBagText": "Sacchetto di Carta",
"headArmoirePaperBagNotes": "Questa busta è un elmo divertente ma sorprendentemente efficace (non preoccuparti, sappiamo che hai un bell'aspetto là sotto!). Aumenta Costituzione di <%= con %>. Scrigno Incantato: Oggetto Indipendente.",
"headArmoirePaperBagNotes": "Questa busta è un elmo divertente ma sorprendentemente efficace (non preoccuparti, sappiamo che hai un bell'aspetto là sotto!). Aumenta la Costituzione di <%= con %>. Scrigno Incantato: Oggetto Indipendente.",
"headArmoireBigWigText": "Grande Parrucca",
"headArmoireBigWigNotes": "Alcune parrucche incipriate sono per sembrare più autoritari, ma questa è solo per ridere! Aumenta Forza di <%= str %>. Scrigno Incantato: Oggetto Indipendente.",
"headArmoireGlassblowersHatText": "Copricapo del Soffiatore di Vetro",
@ -2161,5 +2161,9 @@
"headArmoireHeroicHerbalistCrispinetteNotes": "Questo pratico copricapo ti aiuterà a tenere i capelli a bada... Nonché aggiunge anche un alone di mistero. Aumenta l'intelligenza di <%= int %>. Scrigno Incantato: Set dell'Eroico Erborista (oggetto 3 di 3).",
"headArmoireHeroicHerbalistCrispinetteText": "Velo dell'Eroico Erborista",
"armorArmoireHeroicHerbalistRobeNotes": "Profuma piacevolmente di ogni tipo d'erba. Aumenta la costituzione e l'intelligenza di <%= attrs %> ciascuno. Scrigno Incantato: Set dell'Eroico Erborista (Oggetto 1 di 3).",
"armorArmoireHeroicHerbalistRobeText": "Veste dell'Eroico Erborista"
"armorArmoireHeroicHerbalistRobeText": "Veste dell'Eroico Erborista",
"headAccessoryMystery202009Notes": "Queste appendici piumate ti aiuteranno a trovare la strada anche nella più buia delle notti. Non conferisce alcun bonus. Oggetto abbonati settembre 2020.",
"headAccessoryMystery202009Text": "Fantastiche Antenne da Falena",
"backMystery202009Notes": "Lascia che queste enormi ali ti portino in alto! Non conferisce alcun bonus. Oggetto abbonati settembre 2020.",
"backMystery202009Text": "Fantastiche ali da Falena"
}

View file

@ -501,5 +501,6 @@
"managerNotes": "Note del manager",
"thisTaskApproved": "Questa attività è stata approvata",
"chooseTeamMember": "Scegli un membro della squadra",
"unassigned": "Non assegnato"
"unassigned": "Non assegnato",
"onlyPrivateGuildsCanUpgrade": "Solo le gilde private possono essere aggiornate ad un piano di gruppo."
}

View file

@ -70,7 +70,7 @@
"questVice2Completion": "Non appena sollevi il cristallo finale in alto, l'ombra si disperde, e la strada davanti a voi è libera. Con il cuore a mille, fai un passo avanti nella caverna.",
"questVice2DropVice3Quest": "Vyce, Parte 3 (Pergamena)",
"questVice3Text": "Vyce, Parte 3: Il Risveglio di Vyce",
"questVice3Notes": "Dopo innumerevoli sforzi, il tuo gruppo ha scoperto la tana di Vyce. Il gigantesco mostro guarda la tua squadra con disgusto. Mentre un'ombra turbina intorno a te, una voce sussurra nella tua testa: \"Altri sciocchi cittadini di Habitica venuti a fermarmi? Che carini. Sarebbe stato più saggio non venire.\" Lo squamoso titano alza di nuovo la testa e si prepara ad attaccare. Questa è la tua occasione! Dai il meglio di te e sconfiggi Vyce volta per tutte!",
"questVice3Notes": "Dopo innumerevoli sforzi, il tuo gruppo ha scoperto la tana di Vyce. Il gigantesco mostro guarda la tua squadra con disgusto. Mentre un'ombra turbina intorno a te, una voce sussurra nella tua testa: \"Altri sciocchi cittadini di Habitica venuti a fermarmi? Che carini. Sarebbe stato più saggio non venire.\" Lo squamoso titano alza di nuovo la testa e si prepara ad attaccare. Questa è la tua occasione! Dai il meglio di te e sconfiggi Vyce una volta per tutte!",
"questVice3Completion": "Le ombre svaniscono dalla caverna, lasciando un pesante silenzio. Congratulazioni, ce l'hai fatta! Hai sconfitto Vyce! Tu e la tua squadra potete finalmente tirare un respiro di sollievo. Godetevi la vittoria, coraggiosi Habitanti, ma fate tesoro delle lezioni imparate dalla battaglia con Vyce ed andate avanti. Ci sono ancora molte buone abitudini da allenare e forse mali ancora peggiori da estirpare!",
"questVice3Boss": "Vyce, la Viverna Oscura",
"questVice3DropWeaponSpecial2": "Bastone del Drago di Stephen Weber",
@ -700,5 +700,11 @@
"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.\"",
"questFluoriteBoss": "Elementale di Fluorite",
"questFluoriteDropFluoritePotion": "Pozione di Schiusa di Fluorite",
"questFluoriteNotes": "Al giorno d'oggi i minerali insoliti sono molto richiesti, quindi tu ed alcuni tuoi amici siete scesi nelle profondità delle miniere delle Cime Contorte alla ricerca di minerali emozionanti. È una spedizione lunga e noiosa, finché @-Tyr- inciampa su di una grande roccia, posta proprio nel mezzo della galleria.<br><br>“Questo dovrebbe aiutare a ravvivare un po' le cose”, dice @nirbhao, prima di evocare una sfera di luce.<br><br>Una luce calda riempie la galleria, ma qualcosa di strano inizia ad accadere a quella roccia. Alimentandosi della luce magica, inizia a brillare di blu fluorescente, verde e viola. Quindi si trasforma in una forma vagamente umanoide, munita di luminosi occhi rossi che vi fissano minacciosi! Entrate in azione invocando incantesimi lampeggianti e brandendo armi scintillanti."
"questFluoriteNotes": "Al giorno d'oggi i minerali insoliti sono molto richiesti, quindi tu ed alcuni tuoi amici siete scesi nelle profondità delle miniere delle Cime Contorte alla ricerca di minerali emozionanti. È una spedizione lunga e noiosa, finché @-Tyr- inciampa su di una grande roccia, posta proprio nel mezzo della galleria.<br><br>“Questo dovrebbe aiutare a ravvivare un po' le cose”, dice @nirbhao, prima di evocare una sfera di luce.<br><br>Una luce calda riempie la galleria, ma qualcosa di strano inizia ad accadere a quella roccia. Alimentandosi della luce magica, inizia a brillare di blu fluorescente, verde e viola. Quindi si trasforma in una forma vagamente umanoide, munita di luminosi occhi rossi che vi fissano minacciosi! Entrate in azione invocando incantesimi lampeggianti e brandendo armi scintillanti.",
"questWindupCompletion": "Mentre schivi gli attacchi, noti qualcosa di strano: una coda di ottone a strisce che sporge dal telaio del robot. Immergi una mano tra gli ingranaggi e tiri fuori… un tremante cucciolo di tigre a carica. Si accoccola contro la tua maglietta.<br><br>Il robot meccanico smette immediatamente di agitarsi e sorride, i suoi ingranaggi scattano di nuovo in posizione. \"Ki-Ki-Kitty! Kitty è entrata in me!\"<br><br>\"Fantastico!\" dice il Potente, arrossendo. \"Ho lavorato duramente su queste pozioni per animali a molla. Immagino di aver perso le tracce delle mie nuove creazioni. Ultimamente ho trascurato la mia attività giornaliera \"Ordina il laboratorio\"... \"<br><br>Segui Clankton ed il riparatore nel suo laboratorio. Pezzi, strumenti e pozioni coprono ogni superficie. \"Potente\" prende il tuo orologio e ti passa anche alcune pozioni. <br> <br>\"Prendi queste. Saranno sicuramente più al sicuro con te!\"",
"questWindupNotes": "Habit City è di rado tranquilla, ma non eri preparato alla cacofonia di scricchiolii, cigolii e urla che escono da Sempre Puntuale, il miglior emporio di oggetti a molla di Habitica. Sospiri: volevi solo riparare il tuo orologio. Il proprietario, noto solo come \"Grande e potente\", precipita fuori dalla porta, inseguito da un clamoroso colosso di rame!<br><br>\"Ki-! Ki-! Ki! \" risuona, con le braccia che si dimenano su e giù. I suoi ingranaggi stridono e stridono in segno di protesta.<br><br>“Il mio robot Clankton è impazzito! Sta cercando di uccidermi! \" urla il presunto Potente.<br><br>Anche con un orologio rotto, sai quando è il momento di combattere. Fai un balzo in avanti per difendere l'orologiaio in preda al panico. Anche @Vikte e @a_diamond si fanno avanti per aiutare!<br><br>“Ki-! Ki-! Ki-! \" Clankton risuona ad ogni colpo. \"Miao!\"<br><br> Aspetta, cos'era quel miagolio meccanico proveniente dal monotono omicida?",
"questWindupText": "Un Vortice con un Guerriero a Molla",
"questWindupUnlockText": "Sblocca l'acquisto delle Pozioni di Schiusa a Molla nel Mercato",
"questWindupDropWindupPotion": "Pozione di Schiusa a Molla",
"questWindupBoss": "Clankton"
}

View file

@ -252,5 +252,6 @@
"backgroundAlreadyOwned": "Possiedi già questo sfondo.",
"mysterySet202007": "Set Orca Eccezionale",
"mysterySet202006": "Set Tritone Multicromatico",
"mysterySet202008": "Set Gufo Oracolo"
"mysterySet202008": "Set Gufo Oracolo",
"mysterySet202009": "Set della Fantastica Falena"
}

View file

@ -84,5 +84,12 @@
"achievementBugBonanza": "虫取り大成功",
"achievementFreshwaterFriendsModalText": "ウーパールーパー、カエル、カバのペットクエストを完了しました!",
"achievementFreshwaterFriendsText": "ウーパールーパー、カエル、カバのペットクエストを完了しました。",
"achievementFreshwaterFriends": "淡水の仲間たち"
"achievementFreshwaterFriends": "淡水の仲間たち",
"achievementAllThatGlittersModalText": "黄金の乗騎を全て手なづずけました!",
"achievementAllThatGlittersText": "黄金の乗騎をすべて手なずけました。",
"achievementAllThatGlitters": "全てが輝いている",
"achievementGoodAsGoldModalText": "黄金のペットをすべて集めました!",
"achievementGoodAsGoldText": "黄金のペットをすべて集めました。",
"achievementGoodAsGold": "値千金",
"yourRewards": "あなたのごほうび"
}

View file

@ -2157,5 +2157,9 @@
"shieldArmoireFiddleNotes": "Een perfect instrument dat in elk gezelschap een vrolijke noot brengt. Verhoogt Intelligentie met <%= int %>. Betoverd Kabinet: Violisten Set (Item 4 van 4).",
"backMystery202001Text": "Vijf Fabelstaarten",
"armorArmoireHeroicHerbalistRobeNotes": "Ruikt altijd prettig naar allerlei kruiden. Verhoogt Weerbaarheid en Intelligentie met <%= attrs %>. Betoverde Kabinet: Heldhaftige Kruidkundige Set (Voorwerp 1 van 3).",
"armorArmoireHeroicHerbalistRobeText": "Heldhaftig Kruidkundig Gewaad"
"armorArmoireHeroicHerbalistRobeText": "Heldhaftig Kruidkundig Gewaad",
"headArmoireHeroicHerbalistCrispinetteNotes": "Deze handige hoofdtooi helpt je om je haar uit de weg te houden ... Het doet geen pijn dat het ook bijdraagt aan de mystiek. Verhoogt Intelligentie met <%= int %>. Betoverde Kabinet: Heldhaftige Kruidkundige Set (Voorwerp 3 van 3).",
"headArmoireHeroicHerbalistCrispinetteText": "Heldhaftige Kruidkundige Crispinette",
"shieldArmoireMortarAndPestleNotes": "De belangrijkste uitrusting in het arsenaal van de kruidkundige! Maal uw ingrediënten voor uw kruidenbrouwsels, en steek er uw rug in! Verhoogt Weerbaarheid met <%= con %>. Betoverde Kabinet: Heroïsche Kruidkundige Set (voorwerp 2 van 3).",
"shieldArmoireMortarAndPestleText": "Mortier en stamper"
}

View file

@ -358,5 +358,6 @@
"hatchingPotionBirchBark": "Casca de bétula",
"hatchingPotionDessert": "Confecção",
"hatchingPotionFluorite": "Fluorita",
"hatchingPotionSandSculpture": "Escultura de areia"
"hatchingPotionSandSculpture": "Escultura de areia",
"hatchingPotionWindup": "De Corda"
}

View file

@ -705,5 +705,6 @@
"questWindupUnlockText": "Desbloqueia Poções de Eclosão De Corda para compra no Mercado",
"questWindupDropWindupPotion": "Poção de Eclosão De Corda",
"questWindupBoss": "Clankton",
"questWindupCompletion": "Conforme você se esquiva dos ataques, você percebe algo estranho: uma cauda de latão listrada saindo do chassi do robô. Você mergulha a mão entre as engrenagens e puxa... um filhote de tigre de corda trêmulo ao vento. Ele se aconchega em sua camisa.<br><br>O robô mecânico para imediatamente de se debater e sorri, suas engrenagens voltando a se encaixar no lugar. “Chanin-Chanin-Chanin! Chanin entrou em mim!”<br> <br>“Ótimo!” o Poderoso diz, corando. “Tenho trabalhado muito nessas poções de corda para animais de estimação. Acho que perdi o controle de minhas novas criações. Tenho perdido muito minha tarefa diária Arrumar a oficina ultimamente...”<br> <br> Você segue o relojoeiro e o Clankton para dentro. Peças, ferramentas e poções cobrem todas as superfícies. “Poderoso” pega seu relógio, mas lhe dá algumas poções.<br><br>“Pegue essas. Claramente elas estarão mais seguras com você!”"
"questWindupCompletion": "Conforme você se esquiva dos ataques, você percebe algo estranho: uma cauda de latão listrada saindo do chassi do robô. Você mergulha a mão entre as engrenagens e puxa... um filhote de tigre de corda trêmulo ao vento. Ele se aconchega em sua camisa.<br><br>O robô mecânico para imediatamente de se debater e sorri, suas engrenagens voltando a se encaixar no lugar. “Chanin-Chanin-Chanin! Chanin entrou em mim!”<br> <br>“Ótimo!” o Poderoso diz, corando. “Tenho trabalhado muito nessas poções de corda para animais de estimação. Acho que perdi o controle de minhas novas criações. Tenho perdido muito minha tarefa diária Arrumar a oficina ultimamente...”<br> <br> Você segue o relojoeiro e o Clankton para dentro. Peças, ferramentas e poções cobrem todas as superfícies. “Poderoso” pega seu relógio, mas lhe dá algumas poções.<br><br>“Pegue essas. Claramente elas estarão mais seguras com você!”",
"questWindupText": "Uma Volta com o Guerreiro De Corda"
}

View file

@ -90,5 +90,6 @@
"achievementAllThatGlitters": "Все, что блестит",
"achievementGoodAsGoldModalText": "Вы собрали всех золотых питомцев!",
"achievementGoodAsGoldText": "Собраны все золотые питомцы.",
"achievementGoodAsGold": "На вес золота"
"achievementGoodAsGold": "На вес золота",
"yourRewards": "Ваши награды"
}

View file

@ -357,5 +357,6 @@
"hatchingPotionRuby": "Рубиновый",
"hatchingPotionDessert": "Конфетный",
"hatchingPotionBirchBark": "Березовый",
"hatchingPotionFluorite": "Флюоритовый"
"hatchingPotionFluorite": "Флюоритовый",
"hatchingPotionWindup": "Заводной"
}

View file

@ -696,5 +696,7 @@
"questFluoriteBoss": "Элементарный флюорит",
"jungleBuddiesNotes": "Содержит «Ужасный Мандрил и Капуцины Безобразники», «Сонный ленивец» и «Запутанное дерево». Доступен до <%= date %>.",
"jungleBuddiesText": "Набор квестов «Братва из джунглей»",
"questFluoriteText": "Яркий флюоритовый ужас"
"questFluoriteText": "Яркий флюоритовый ужас",
"questWindupUnlockText": "Позволяет покупать на рынке заводные инкубационные эликсиры",
"questWindupDropWindupPotion": "Заводной инкубационный эликсир"
}

View file

@ -90,5 +90,6 @@
"achievementAllThatGlitters": "Tất cả đều Lấp lánh",
"achievementGoodAsGoldModalText": "Bạn đã thu thập tất cả thú cưng vàng!",
"achievementGoodAsGoldText": "Đã thu thập tất cả thú cưng vàng.",
"achievementGoodAsGold": "Tốt như Vàng"
"achievementGoodAsGold": "Tốt như Vàng",
"yourRewards": "Phần thưởng của Bạn"
}

View file

@ -3,7 +3,7 @@
"potionNotes": "Phục hồi 15 máu (Có tác dụng tức thì)",
"armoireText": "Tủ Chứa Phù Phép",
"armoireNotesFull": "Mở Tủ Chứa Phù Phép để nhận ngẫu nhiên một Trang Bị đặc biệt, Điểm Kinh Nghiệm, hay đồ ăn ! Số lượng Trang Bị còn lại:",
"armoireLastItem": "Bạn đã tìm thấy Trang bị quý hiếm cuối cùng trong Tủ Chứa Phù Phép",
"armoireLastItem": "Bạn đã tìm thấy Trang bị quý hiếm cuối cùng trong Tủ Chứa Phù Phép.",
"armoireNotesEmpty": "Tủ Chứa sẽ có Thiết Bị mới vào tuần đầu tiên của mỗi tháng. Từ giờ đến lúc đó, hãy tiếp tục nhấp chuột để nhận Điểm Kinh Nghiệm và Thức ăn Thú Cưng!",
"dropEggWolfText": "Sói",
"dropEggWolfMountText": "Sói",
@ -163,25 +163,25 @@
"questEggYarnAdjective": "bằng len",
"questEggPterodactylText": "Dực long",
"questEggPterodactylMountText": "Dực long",
"questEggPterodactylAdjective": "a trusting",
"questEggPterodactylAdjective": "đáng tin",
"questEggBadgerText": "Lửng",
"questEggBadgerMountText": "Lửng",
"questEggBadgerAdjective": "a bustling",
"questEggSquirrelText": "Squirrel",
"questEggSquirrelMountText": "Squirrel",
"questEggSquirrelAdjective": "a bushy-tailed",
"questEggSeaSerpentText": "Sea Serpent",
"questEggSeaSerpentMountText": "Sea Serpent",
"questEggSeaSerpentAdjective": "a shimmering",
"questEggKangarooText": "Kangaroo",
"questEggKangarooMountText": "Kangaroo",
"questEggKangarooAdjective": "a keen",
"questEggBadgerAdjective": "bận rộn",
"questEggSquirrelText": "Sóc",
"questEggSquirrelMountText": "Sóc",
"questEggSquirrelAdjective": "đuôi rậm",
"questEggSeaSerpentText": "Rắn biển",
"questEggSeaSerpentMountText": "Rắn biển",
"questEggSeaSerpentAdjective": "lung linh",
"questEggKangarooText": "Chuột túi",
"questEggKangarooMountText": "Chuột túi",
"questEggKangarooAdjective": "sắc xảo",
"questEggAlligatorText": "Cá sấu",
"questEggAlligatorMountText": "Cá sấu",
"questEggAlligatorAdjective": "a cunning",
"questEggAlligatorAdjective": "gian xảo",
"questEggVelociraptorText": "Khủng long Velociraptor",
"questEggVelociraptorMountText": "Khủng long Velociraptor",
"questEggVelociraptorAdjective": "a clever",
"questEggVelociraptorAdjective": "thông minh",
"eggNotes": "Tìm một lọ thuốc ấp để đổ lên quả trứng này và nó sẽ nở thành <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
"hatchingPotionBase": "Cơ Bản",
"hatchingPotionWhite": "Trắng",
@ -206,13 +206,13 @@
"hatchingPotionShimmer": "Lấp Lánh",
"hatchingPotionFairy": "Thần Tiên",
"hatchingPotionStarryNight": "Bầu trời đầy sao",
"hatchingPotionRainbow": "Rainbow",
"hatchingPotionGlass": "Glass",
"hatchingPotionGlow": "Glow-in-the-Dark",
"hatchingPotionFrost": "Frost",
"hatchingPotionIcySnow": "Icy Snow",
"hatchingPotionNotes": "Dùng lọ thuốc này để ngâm một quả trứng, nó sẽ nở ra một con thú <%= potText() %>",
"premiumPotionAddlNotes": "Không sử dụng được cho trứng thú nhiệm vụ",
"hatchingPotionRainbow": "Cầu vồng",
"hatchingPotionGlass": "Gương",
"hatchingPotionGlow": "Phát sáng trong Đêm",
"hatchingPotionFrost": "Sương giá",
"hatchingPotionIcySnow": "Băng tuyết",
"hatchingPotionNotes": "Dùng lọ thuốc này để ấp một quả trứng, nó sẽ nở ra một con thú <%= potText(locale) %>.",
"premiumPotionAddlNotes": "Không sử dụng được cho trứng thú nhiệm vụ. Có thể mua tới ngày <%= date(locale) %>.",
"foodMeat": "Thịt tươi",
"foodMeatThe": "Thịt",
"foodMeatA": "Thịt",
@ -358,5 +358,6 @@
"foodPieBase": "Bánh Táo Cơ bản",
"foodPieSkeletonThe": "món Canh hầm xương",
"foodPieSkeleton": "Canh hầm xương",
"hatchingPotionSandSculpture": "Điêu khắc Cát"
"hatchingPotionSandSculpture": "Điêu khắc Cát",
"hatchingPotionWindup": "Gió lên"
}

View file

@ -6,16 +6,16 @@
"innText": "Bạn đang nghỉ ngơi trong Quán trọ! Trong khi nghỉ chân, Việc Hàng Ngày của bạn sẽ không gây sát thương cho bạn vào cuối ngày, nhưng chúng vẫn sẽ làm mới lại mỗi ngày. Chú ý: Nếu bạn đang tham gia vào một Nhiệm Vụ Boss, Boss vẫn sẽ gây sát thương cho bạn nếu đồng đội trong nhóm quên làm Việc Hàng Ngày, trừ khi họ cũng ở trong Quán Trọ! Ngoài ra, sát thương của bạn cho Boss (hoặc các vật phẩm thu được) sẽ không được tính cho đến khi bạn rời khỏi Quán trọ.",
"innTextBroken": "Bạn đang nghỉ ngơi trong Quán trọ, chắc vậy... Trong khi nghỉ chân, Việc hàng ngày của bạn sẽ không gây sát thương vào cuối ngày, nhưng chúng vẫn sẽ làm mới lại mỗi ngày... Nếu bạn đang tham gia vào một Nhiệm Vụ Boss, Boss sẽ vẫn gây sát thương cho bạn nếu đồng đội trong nhóm quên làm Việc Hàng Ngày... trừ khi họ cũng ở trong Quán Trọ... Ngoài ra, sát thương của bạn cho Boss (hoặc các vật phẩm thu được) sẽ không được tính cho đến khi bạn thoát khỏi Quán trọ... mệt thật...",
"innCheckOutBanner": "Hiện tại bạn đang nghỉ chân trong quán trọ. Việc Hằng Ngày của bạn sẽ không gây sát thương và bạn và bạn cũng chẳng có tiến triển gì trong Nhiệm Vụ.",
"innCheckOutBannerShort": "You are checked into the Inn.",
"resumeDamage": "Resume Damage",
"innCheckOutBannerShort": "Bạn đã đi vào Quán trọ.",
"resumeDamage": "Tiếp tục Sát thương",
"helpfulLinks": "Những link hữu ích",
"communityGuidelinesLink": "Nội quy Cộng đồng",
"lookingForGroup": "Tìm kiếm Nhóm (",
"dataDisplayTool": "Data Display Tool",
"dataDisplayTool": "Công cụ hiển thị Dữ liệu",
"reportProblem": "Báo cáo lỗi",
"requestFeature": "Đề nghị một Chức năng",
"askAQuestion": "Hỏi",
"askQuestionGuild": "Ask a Question (Habitica Help guild)",
"askQuestionGuild": "Ask a Question (Bang hội Giúp đỡ của Habitica)",
"contributing": "Đóng góp",
"faq": "Hỏi đáp",
"lfgPosts": "Tìm kiếm Nhóm (Nhóm đang thiếu người) đăng tin",
@ -26,15 +26,15 @@
"reportAP": "Báo phát hiện lỗi",
"requestAF": "Đề xuất Tính năng mới",
"community": "<a target='_blank' href='http://habitica.wikia.com/wiki/Special:Forum'>Community Forum</a>",
"dataTool": "Data Display Tool",
"dataTool": "Công cụ hiển thị Dữ liệu",
"resources": "Nguồn",
"askQuestionNewbiesGuild": "Hỏi một câu hỏi (Bang hội Habitica Help)",
"tavernAlert1": "Để báo lỗi, ghé",
"tavernAlert2": "the Report a Bug Guild",
"moderatorIntro1": "Tavern and guild moderators are:",
"tavernAlert2": "Bang hội Report a Bug",
"moderatorIntro1": "Điều hành viên của Quán rượu và Bang hội là: ",
"communityGuidelines": "Nọi quy Cộng đồng",
"communityGuidelinesRead1": "Làm ơn đọc",
"communityGuidelinesRead2": "trước khi nói chuyện",
"communityGuidelinesRead2": "trước khi nói chuyện.",
"bannedWordUsed": "Oops! Looks like this post contains a swearword, religious oath, or reference to an addictive substance or adult topic (<%= swearWordsUsed %>). Habitica has users from all backgrounds, so we keep our chat very clean. Feel free to edit your message so you can post it!",
"bannedSlurUsed": "Your post contained inappropriate language, and your chat privileges have been revoked.",
"party": "Đội",
@ -501,5 +501,6 @@
"managerNotes": "Ghi chú của người Quản lí",
"thisTaskApproved": "Công việc này đã được công nhận",
"chooseTeamMember": "Chọn một thành viên trong nhóm",
"unassigned": "Chưa giao"
"unassigned": "Chưa giao",
"onlyPrivateGuildsCanUpgrade": "Chỉ những Bang hội kín có thể nâng cấp thành kế hoạch nhóm."
}

View file

@ -252,5 +252,6 @@
"mysterySet201910": "Bộ Ngọn lửa bí hiểm",
"mysterySet201909": "Bộ Hạt sồi khả ái",
"mysterySet201908": "Bộ Người dê rảnh rỗi",
"mysterySet202008": "Bộ Cú sấm truyền"
"mysterySet202008": "Bộ Cú sấm truyền",
"mysterySet202009": "Bộ Bướm đêm Kỳ diệu"
}

View file

@ -90,5 +90,6 @@
"achievementAllThatGlitters": "闪闪发光",
"achievementGoodAsGoldModalText": "你集齐了所有金色宠物!",
"achievementGoodAsGoldText": "已集齐所有金色宠物。",
"achievementGoodAsGold": "骄爱比黄金"
"achievementGoodAsGold": "骄爱比黄金",
"yourRewards": "奖励"
}

View file

@ -358,5 +358,6 @@
"hatchingPotionBirchBark": "桦树皮",
"hatchingPotionDessert": "糖食",
"hatchingPotionFluorite": "萤石",
"hatchingPotionSandSculpture": "沙雕塑"
"hatchingPotionSandSculpture": "沙雕塑",
"hatchingPotionWindup": "发条"
}

View file

@ -700,5 +700,11 @@
"questFluoriteNotes": "最近稀有矿物需求量很大,为此你和几个朋友前往蜿蜒山脉的矿井深处,寻找令人兴奋的稀有矿石。这真是个漫长而枯燥的探险,直到@-Tyr- 偶然发现了一块大石头,它就挡在隧道的正中央。<br><br>“这应该有助于明亮视野。\"@nirbhao说然后召唤出一个魔法光球。<br><br>暖暖的魔光照亮隧道,但那块大石头上开始发生一些奇怪的事情。大石头吞噬了魔法光,开始焕发出蓝、绿、紫色的荧光,紧接着它直立了起来,影影绰绰化为人形,逐渐形成的一双红目放出深不可测的光芒,目光紧锁在你身上! 你召唤闪光咒术与拔出闪亮武器,展开行动。",
"questFluoriteBoss": "萤石灵魂",
"questFluoriteDropFluoritePotion": "萤石孵化药水",
"questFluoriteCompletion": "战斗开始,这水晶生物似乎总是轻易地被你的灯光秀分散了注意力。 “如此闪亮……”它喃喃自语。<br> <br>“当然!” @nirbhao惊呼。 “必须是萤石元素。 水晶生物只想要那些能让它发光的光。“让我们帮助它发光。” <br> <br>你点燃了火炬、魔法碎片,水晶生物愉快地咯咯笑,发出更明亮的光,它很高兴能够再次闪闪发光,为此它沉积出丰富的萤石晶体。<br><br>@nirbhao说“这将成为新孵化药水的理想成分药水将使我们的宠物像这位萤石朋友一样发光。”"
"questFluoriteCompletion": "战斗开始,这水晶生物似乎总是轻易地被你的灯光秀分散了注意力。 “如此闪亮……”它喃喃自语。<br> <br>“当然!” @nirbhao惊呼。 “必须是萤石元素。 水晶生物只想要那些能让它发光的光。“让我们帮助它发光。” <br> <br>你点燃了火炬、魔法碎片,水晶生物愉快地咯咯笑,发出更明亮的光,它很高兴能够再次闪闪发光,为此它沉积出丰富的萤石晶体。<br><br>@nirbhao说“这将成为新孵化药水的理想成分药水将使我们的宠物像这位萤石朋友一样发光。”",
"questWindupNotes": "Habit城市总是很不安分但这并不意味着你为逃离这一切做好了充足准备。你前往Habitica最好的时钟商场“良好守时”然而咯吱声、吱吱声混合着尖叫声从商场里溢出。叹气你明明只是想去那修个手表。青铜巨人咔吱咔吱追逐驱赶绰号为“伟大而强大”的店老板慌乱地逃出门。<br> <br>“Ki-Ki-Ki”手臂咔吱挥舞摧毁上上下下。齿轮发出刺耳的声音以示抗议。<br> <br>“我的机器人Clankton发疯了 它想杀了我!”那个以“强大”为名的家伙绝望地尖叫。 <br> <br>虽然手表坏了,但你还是知道何时该打架。你跳上前, 守护惊慌的制表师。 @Vikte和@a_diamond也站出来给予帮助<br> <br>“ Ki-Ki-Ki-”伴随着每一次打击Clankton都在进行着吟唱。 <br> <br>等等,那机械刺耳的单调声音是不是在隐藏杀戮的原因?",
"questWindupText": "失控的发条战士",
"questWindupUnlockText": "解锁在市场上购买发条孵化药水",
"questWindupDropWindupPotion": "发条孵化药水",
"questWindupBoss": "Clankton",
"questWindupCompletion": "不断躲避攻击,你终于发现了奇怪的地方:一条黄铜色条纹尾巴从机器人的底盘冒出。你将一只手伸入研磨齿轮中,然后一拔……一只发条虎崽瑟瑟发抖,它紧靠着你的衬衫。<br> <br>发条机器人立即停止摆动,露出微笑,它的齿轮咔嗒一声回到原位。 “Ki-Ki-KittyKitty进了我“<br> <br>“太棒了!”那个叫“强大”的家伙愧疚地说。“ 我一直在努力开发发条宠物药水。但最近,我每日沉迷“整理工作坊”……我想我忘了跟踪新物种的变化。 ” <br> <br>你跟随修补匠和Clankton走入商店。零件工具和药水到处都是。“强大”拿走了你的手表递给了你一些药水。<br> <br>“拿着。 显然,他们和你一起更加安全!”"
}

View file

@ -252,5 +252,6 @@
"mysterySet202005": "奇妙飞龙套装",
"mysterySet202006": "多彩人鱼套装",
"mysterySet202007": "极品逆戟鲸套装",
"mysterySet202008": "猫头鹰神谕套装"
"mysterySet202008": "猫头鹰神谕套装",
"mysterySet202009": "非凡蛾套装"
}

View file

@ -371,10 +371,7 @@ api.getUserChallenges = {
{ _id: { $in: user.challenges } }, // Challenges where the user is participating
];
const { owned } = req.query;
if (!owned) {
orOptions.push({ leader: user._id });
}
orOptions.push({ leader: user._id });
if (!req.query.member) {
orOptions.push({
@ -386,6 +383,7 @@ api.getUserChallenges = {
$and: [{ $or: orOptions }],
};
const { owned } = req.query;
if (owned) {
if (owned === 'not_owned') {
query.$and.push({ leader: { $ne: user._id } });

View file

@ -13,7 +13,7 @@ export const schema = new Schema({
required: true,
},
name: { $type: String, required: true },
challenge: { $type: Schema.Types.Mixed },
challenge: { $type: Boolean },
group: { $type: String },
}, {
strict: true,