Merge branch 'develop' into release

This commit is contained in:
Sabe Jones
2020-04-30 12:40:02 -05:00
227 changed files with 7301 additions and 10131 deletions

View File

@@ -1,6 +1,6 @@
* Code is GPL v3 licensed:
This Source Code is subject to the terms of the GNU General Public License, v. 3.0.
If a copy of the GPL was not distributed with this file, You can obtain one at http://www.gnu.org/licenses/gpl-3.0.txt
If a copy of the GPL was not distributed with this file, you can obtain one at http://www.gnu.org/licenses/gpl-3.0.txt
* Assets and content designed for Mozilla BrowserQuest are licensed under CC-BY-SA 3.0:
http://creativecommons.org/licenses/by-sa/3.0/

86
package-lock.json generated
View File

@@ -3218,9 +3218,9 @@
}
},
"bson": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz",
"integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg=="
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz",
"integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q=="
},
"buffer-alloc": {
"version": "1.2.0",
@@ -4139,9 +4139,9 @@
}
},
"csv-stringify": {
"version": "5.3.6",
"resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.6.tgz",
"integrity": "sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw=="
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.4.3.tgz",
"integrity": "sha512-WJLgRJQcVjPK45jXS1xfnkwVbw9bOjg2F2BQRa9OkG7Di2W/geclPZNlcQTwxbzn1nEDI2ane2AubTdTd6gCvw=="
},
"currently-unhandled": {
"version": "0.4.1",
@@ -7359,14 +7359,33 @@
}
},
"habitica-markdown": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-1.3.2.tgz",
"integrity": "sha512-IyiS583DfqE+KvW4NQAB4K2HjJZ1oF50L0EDz7KaixyK7C41s47wsbN81QtNMB8LnRqbMHFDesD2xEzdicjFXw==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-1.4.0.tgz",
"integrity": "sha512-hklG3eBILNbx/VxGeRxuk+/RiWWllcd5QLNv7Kvm2wGBRTeK9c3my2eusGuHXkwStEFGxjJD5e0iMO47cGPxYw==",
"requires": {
"habitica-markdown-emoji": "1.2.4",
"markdown-it": "8.4.2",
"markdown-it-link-attributes": "1.0.0",
"markdown-it": "10.0.0",
"markdown-it-link-attributes": "3.0.0",
"markdown-it-linkify-images": "^1.1.1"
},
"dependencies": {
"entities": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
"integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw=="
},
"markdown-it": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz",
"integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==",
"requires": {
"argparse": "^1.0.7",
"entities": "~2.0.0",
"linkify-it": "^2.0.0",
"mdurl": "^1.0.1",
"uc.micro": "^1.0.5"
}
}
}
},
"habitica-markdown-emoji": {
@@ -9245,9 +9264,9 @@
"integrity": "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw="
},
"markdown-it-link-attributes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-link-attributes/-/markdown-it-link-attributes-1.0.0.tgz",
"integrity": "sha1-jaHKFynw+hbGVhWwsQdbecg3Gi4="
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-link-attributes/-/markdown-it-link-attributes-3.0.0.tgz",
"integrity": "sha512-B34ySxVeo6MuEGSPCWyIYryuXINOvngNZL87Mp7YYfKIf6DcD837+lXA8mo6EBbauKsnGz22ZH0zsbOiQRWTNg=="
},
"markdown-it-linkify-images": {
"version": "1.1.1",
@@ -9655,7 +9674,6 @@
"version": "3.5.6",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.6.tgz",
"integrity": "sha512-sh3q3GLDLT4QmoDLamxtAECwC3RGjq+oNuK1ENV8+tnipIavss6sMYt77hpygqlMOCt0Sla5cl7H4SKCVBCGEg==",
"dev": true,
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
@@ -9669,7 +9687,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
"integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
"dev": true,
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
@@ -9678,19 +9695,18 @@
"bson": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz",
"integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==",
"dev": true
"integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q=="
}
}
},
"mongoose": {
"version": "5.9.9",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.9.tgz",
"integrity": "sha512-pLkIkM7XQwfbQ+xK1l57Zv0DYPH190/I6Cv5+PbJGfAU0HvX0atMlp+vly8zcjNTEvTkVM80qA5eBYBvZyLYXw==",
"version": "5.9.10",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.10.tgz",
"integrity": "sha512-w1HNukfJzzDLfcI1f79h2Wj4ogVbf+X8hRkyFgqlcjK7OnDlAgahjDMIsT+mCS9jKojrMhjSsZIs9FiRPkLqMg==",
"requires": {
"bson": "~1.1.1",
"bson": "^1.1.4",
"kareem": "2.3.1",
"mongodb": "3.5.5",
"mongodb": "3.5.6",
"mongoose-legacy-pluralize": "1.0.2",
"mpath": "0.7.0",
"mquery": "3.2.2",
@@ -9699,30 +9715,6 @@
"safe-buffer": "5.1.2",
"sift": "7.0.1",
"sliced": "1.0.1"
},
"dependencies": {
"bl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
"integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
}
},
"mongodb": {
"version": "3.5.5",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.5.tgz",
"integrity": "sha512-GCjDxR3UOltDq00Zcpzql6dQo1sVry60OXJY3TDmFc2SWFY6c8Gn1Ardidc5jDirvJrx2GC3knGOImKphbSL3A==",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.1",
"denque": "^1.4.1",
"require_optional": "^1.0.1",
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
}
}
}
},
"mongoose-legacy-pluralize": {

View File

@@ -20,7 +20,7 @@
"compression": "^1.7.4",
"cookie-session": "^1.4.0",
"coupon-code": "^0.4.5",
"csv-stringify": "^5.3.6",
"csv-stringify": "^5.4.3",
"cwait": "^1.1.1",
"domain-middleware": "~0.1.0",
"eslint": "^6.8.0",
@@ -36,7 +36,7 @@
"gulp-imagemin": "^6.2.0",
"gulp-nodemon": "^2.5.0",
"gulp.spritesmith": "^6.9.0",
"habitica-markdown": "^1.3.2",
"habitica-markdown": "^1.4.0",
"helmet": "^3.22.0",
"image-size": "^0.8.3",
"in-app-purchase": "^1.11.3",
@@ -48,7 +48,7 @@
"method-override": "^3.0.0",
"moment": "^2.24.0",
"moment-recur": "^1.0.7",
"mongoose": "^5.9.9",
"mongoose": "^5.9.10",
"morgan": "^1.10.0",
"nconf": "^0.10.0",
"node-gcm": "^1.0.2",
@@ -100,6 +100,7 @@
"client:build": "cd website/client && npm run build",
"client:unit": "cd website/client && npm run test:unit",
"start": "gulp nodemon",
"debug": "gulp nodemon --inspect",
"postinstall": "gulp build && cd website/client && npm install",
"apidoc": "gulp apidoc"
},

View File

@@ -0,0 +1,12 @@
import { getMatchesByWordArray } from '../../../../website/server/libs/stringUtils';
import bannedWords from '../../../../website/server/libs/bannedWords';
describe('stringUtils', () => {
describe('getMatchesByWordArray', () => {
it('check all banned words are matched', async () => {
const message = bannedWords.join(',').replace(/\\/g, '');
const matches = getMatchesByWordArray(message, bannedWords);
expect(matches.length).to.equal(bannedWords.length);
});
});
});

View File

@@ -14,8 +14,6 @@ import {
TAVERN_ID,
} from '../../../../../website/server/models/group';
import { CHAT_FLAG_FROM_SHADOW_MUTE, MAX_MESSAGE_LENGTH } from '../../../../../website/common/script/constants';
import { getMatchesByWordArray } from '../../../../../website/server/libs/stringUtils';
import bannedWords from '../../../../../website/server/libs/bannedWords';
import guildsAllowingBannedWords from '../../../../../website/server/libs/guildsAllowingBannedWords';
import * as email from '../../../../../website/server/libs/email';
@@ -292,12 +290,6 @@ describe('POST /chat', () => {
.that.includes(testBannedWords.join(', '));
});
it('check all banned words are matched', async () => {
const message = bannedWords.join(',').replace(/\\/g, '');
const matches = getMatchesByWordArray(message, bannedWords);
expect(matches.length).to.equal(bannedWords.length);
});
it('does not error when bad word is suffix of a word', async () => {
const wordAsSuffix = `prefix${testBannedWordMessage}`;
const message = await user.post('/groups/habitrpg/chat', { message: wordAsSuffix });

View File

@@ -6,6 +6,7 @@ import {
describe('POST /user/unlock', () => {
let user;
const unlockPath = 'shirt.convict,shirt.cross,shirt.fire,shirt.horizon,shirt.ocean,shirt.purple,shirt.rainbow,shirt.redblue,shirt.thunder,shirt.tropical,shirt.zombie';
const unlockGearSetPath = 'items.gear.owned.headAccessory_special_bearEars,items.gear.owned.headAccessory_special_cactusEars,items.gear.owned.headAccessory_special_foxEars,items.gear.owned.headAccessory_special_lionEars,items.gear.owned.headAccessory_special_pandaEars,items.gear.owned.headAccessory_special_pigEars,items.gear.owned.headAccessory_special_tigerEars,items.gear.owned.headAccessory_special_wolfEars';
const unlockCost = 1.25;
const usersStartingGems = 5;
@@ -34,4 +35,25 @@ describe('POST /user/unlock', () => {
expect(response.message).to.equal(t('unlocked'));
expect(user.balance).to.equal(usersStartingGems - unlockCost);
});
it('does not reduce a user\'s balance twice', async () => {
await user.update({
balance: usersStartingGems,
});
const response = await user.post(`/user/unlock?path=${unlockGearSetPath}`);
await user.sync();
expect(response.message).to.equal(t('unlocked'));
expect(user.balance).to.equal(usersStartingGems - unlockCost);
expect(user.post(`/user/unlock?path=${unlockGearSetPath}`))
.to.eventually.be.rejected.and.to.eql({
code: 401,
error: 'NotAuthorized',
message: t('alreadyUnlocked'),
});
await user.sync();
expect(user.balance).to.equal(usersStartingGems - unlockCost);
});
});

View File

@@ -1,12 +1,7 @@
import unlock from '../../../website/common/script/ops/unlock';
import i18n from '../../../website/common/script/i18n';
import {
generateUser,
} from '../../helpers/common.helper';
import {
NotAuthorized,
BadRequest,
} from '../../../website/common/script/libs/errors';
import { generateUser } from '../../helpers/common.helper';
import { NotAuthorized, BadRequest } from '../../../website/common/script/libs/errors';
describe('shared.ops.unlock', () => {
let user;
@@ -31,6 +26,15 @@ describe('shared.ops.unlock', () => {
}
});
it('does not unlock lost gear', done => {
user.items.gear.owned.headAccessory_special_bearEars = false;
unlock(user, { query: { path: 'items.gear.owned.headAccessory_special_bearEars' } });
expect(user.balance).to.equal(usersStartingGems);
done();
});
it('returns an error when user balance is too low', done => {
user.balance = 0;
@@ -50,18 +54,30 @@ describe('shared.ops.unlock', () => {
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyUnlocked'));
expect(user.balance).to.equal(3.75);
done();
}
});
// disabled until fully implemente
xit('returns an error when user already owns items in a full set', done => {
it('returns an error when user already owns a full set of gear', done => {
try {
unlock(user, { query: { path: unlockPath } });
unlock(user, { query: { path: unlockPath } });
unlock(user, { query: { path: unlockGearSetPath } });
unlock(user, { query: { path: unlockGearSetPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyUnlocked'));
expect(user.balance).to.equal(3.75);
done();
}
});
xit('returns an error when user already owns items in a full set', done => {
try {
unlock(user, { query: { path: unlockPath.split(',').splice(2).join(',') } });
unlock(user, { query: { path: unlockPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyUnlockedPart'));
done();
}
});
@@ -78,7 +94,7 @@ describe('shared.ops.unlock', () => {
expect(user.preferences.background).to.equal('giant_florals');
});
it('un-equips an item already equipped', () => {
it('un-equips a background already equipped', () => {
expect(user.purchased.background.giant_florals).to.not.exist;
unlock(user, { query: { path: backgroundUnlockPath } }); // unlock
@@ -105,7 +121,7 @@ describe('shared.ops.unlock', () => {
expect(user.items.gear.owned.headAccessory_special_wolfEars).to.be.true;
});
it('unlocks a an item', () => {
it('unlocks an item', () => {
const [, message] = unlock(user, { query: { path: backgroundUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));

View File

@@ -7265,9 +7265,9 @@
"integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA=="
},
"bootstrap-vue": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.11.0.tgz",
"integrity": "sha512-T23+aVVSDifX1SsI5y69bYZzbm8iQHlmgiBUw9XxY1KTw/fb4xvUq4+Y01Tsaul04+zmrUah/5zvUGKLwTcH7A==",
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.12.0.tgz",
"integrity": "sha512-cnW89Ig0OBbKTA6Hv8daijSWziNSDErAme9jTOmjBDtzqYAd9D4NCp0wDjfNRaZBojTRx/UR1SCatxP3bE+SMw==",
"requires": {
"@nuxt/opencollective": "^0.3.0",
"bootstrap": ">=4.4.1 <5.0.0",
@@ -11676,13 +11676,13 @@
}
},
"habitica-markdown": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-1.3.2.tgz",
"integrity": "sha512-IyiS583DfqE+KvW4NQAB4K2HjJZ1oF50L0EDz7KaixyK7C41s47wsbN81QtNMB8LnRqbMHFDesD2xEzdicjFXw==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-1.4.0.tgz",
"integrity": "sha512-hklG3eBILNbx/VxGeRxuk+/RiWWllcd5QLNv7Kvm2wGBRTeK9c3my2eusGuHXkwStEFGxjJD5e0iMO47cGPxYw==",
"requires": {
"habitica-markdown-emoji": "1.2.4",
"markdown-it": "8.4.2",
"markdown-it-link-attributes": "1.0.0",
"markdown-it": "10.0.0",
"markdown-it-link-attributes": "3.0.0",
"markdown-it-linkify-images": "^1.1.1"
}
},
@@ -13559,6 +13559,41 @@
"object-visit": "^1.0.0"
}
},
"markdown-it": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz",
"integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==",
"requires": {
"argparse": "^1.0.7",
"entities": "~2.0.0",
"linkify-it": "^2.0.0",
"mdurl": "^1.0.1",
"uc.micro": "^1.0.5"
}
},
"markdown-it-emoji": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz",
"integrity": "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw="
},
"markdown-it-link-attributes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-link-attributes/-/markdown-it-link-attributes-3.0.0.tgz",
"integrity": "sha512-B34ySxVeo6MuEGSPCWyIYryuXINOvngNZL87Mp7YYfKIf6DcD837+lXA8mo6EBbauKsnGz22ZH0zsbOiQRWTNg=="
},
"markdown-it-linkify-images": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/markdown-it-linkify-images/-/markdown-it-linkify-images-1.1.1.tgz",
"integrity": "sha512-1IEmAaAjIgAwY+tZI0sxDXdy9QKHutj5cN0lH2JBiSZt+2NYKrWRJj0cloQW3OFIfP2MLFA1E+6OLJhXPiLgNw==",
"requires": {
"markdown-it": "^8.4.2"
},
"dependencies": {
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
},
"markdown-it": {
"version": "8.4.2",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
@@ -13569,31 +13604,8 @@
"linkify-it": "^2.0.0",
"mdurl": "^1.0.1",
"uc.micro": "^1.0.5"
},
"dependencies": {
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
}
}
},
"markdown-it-emoji": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz",
"integrity": "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw="
},
"markdown-it-link-attributes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-link-attributes/-/markdown-it-link-attributes-1.0.0.tgz",
"integrity": "sha1-jaHKFynw+hbGVhWwsQdbecg3Gi4="
},
"markdown-it-linkify-images": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/markdown-it-linkify-images/-/markdown-it-linkify-images-1.1.1.tgz",
"integrity": "sha512-1IEmAaAjIgAwY+tZI0sxDXdy9QKHutj5cN0lH2JBiSZt+2NYKrWRJj0cloQW3OFIfP2MLFA1E+6OLJhXPiLgNw==",
"requires": {
"markdown-it": "^8.4.2"
}
},
"markdown-to-jsx": {
@@ -15158,11 +15170,6 @@
"sha.js": "^2.4.8"
}
},
"perfect-scrollbar": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz",
"integrity": "sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA=="
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -15433,17 +15440,6 @@
}
}
},
"postcss-import": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz",
"integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==",
"requires": {
"postcss": "^7.0.1",
"postcss-value-parser": "^3.2.3",
"read-cache": "^1.0.0",
"resolve": "^1.1.7"
}
},
"postcss-load-config": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
@@ -16633,21 +16629,6 @@
"lodash": "^4.0.1"
}
},
"read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
"integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
"requires": {
"pify": "^2.3.0"
},
"dependencies": {
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
}
}
},
"read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -17177,9 +17158,9 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sass": {
"version": "1.26.3",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.26.3.tgz",
"integrity": "sha512-5NMHI1+YFYw4sN3yfKjpLuV9B5l7MqQ6FlkTcC4FT+oHbBRUZoSjHrrt/mE0nFXJyY2kQtU9ou9HxvFVjLFuuw==",
"version": "1.26.5",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.26.5.tgz",
"integrity": "sha512-FG2swzaZUiX53YzZSjSakzvGtlds0lcbF+URuU9mxOv7WBh7NhXEVDa4kPKN4hN6fC2TkOTOKqiqp6d53N9X5Q==",
"requires": {
"chokidar": ">=2.0.0 <4.0.0"
}
@@ -19722,16 +19703,6 @@
"resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw=="
},
"vue2-perfect-scrollbar": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/vue2-perfect-scrollbar/-/vue2-perfect-scrollbar-1.4.0.tgz",
"integrity": "sha512-kluthjiZOOhAZ/18RTZJr2Y9lpjgkuOuxkH8MMMq1dYrSUdvlEv8V1UPtW7UDVcTAUo048AUE/W4hSPTfluejw==",
"requires": {
"cssnano": "^4.1.3",
"perfect-scrollbar": "^1.4.0",
"postcss-import": "^12.0.0"
}
},
"vuedraggable": {
"version": "2.23.2",
"resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.23.2.tgz",
@@ -19802,15 +19773,15 @@
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
},
"webpack": {
"version": "4.42.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz",
"integrity": "sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==",
"version": "4.43.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz",
"integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==",
"requires": {
"@webassemblyjs/ast": "1.9.0",
"@webassemblyjs/helper-module-context": "1.9.0",
"@webassemblyjs/wasm-edit": "1.9.0",
"@webassemblyjs/wasm-parser": "1.9.0",
"acorn": "^6.2.1",
"acorn": "^6.4.1",
"ajv": "^6.10.2",
"ajv-keywords": "^3.4.1",
"chrome-trace-event": "^1.0.2",
@@ -19827,7 +19798,7 @@
"schema-utils": "^1.0.0",
"tapable": "^1.1.3",
"terser-webpack-plugin": "^1.4.3",
"watchpack": "^1.6.0",
"watchpack": "^1.6.1",
"webpack-sources": "^1.4.1"
},
"dependencies": {
@@ -19837,9 +19808,9 @@
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
},
"mkdirp": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz",
"integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==",
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
"requires": {
"minimist": "^1.2.5"
}

View File

@@ -29,14 +29,14 @@
"axios-progress-bar": "^1.2.0",
"babel-eslint": "^10.1.0",
"bootstrap": "^4.4.1",
"bootstrap-vue": "^2.11.0",
"bootstrap-vue": "^2.12.0",
"chai": "^4.1.2",
"core-js": "^3.6.5",
"eslint": "^6.8.0",
"eslint-config-habitrpg": "^6.2.0",
"eslint-plugin-mocha": "^5.3.0",
"eslint-plugin-vue": "^6.2.2",
"habitica-markdown": "^1.3.2",
"habitica-markdown": "^1.4.0",
"hellojs": "^1.18.4",
"inspectpack": "^4.4.0",
"intro.js": "^2.9.3",
@@ -44,7 +44,7 @@
"lodash": "^4.17.15",
"moment": "^2.24.0",
"nconf": "^0.10.0",
"sass": "^1.26.3",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"smartbanner.js": "^1.15.0",
"svg-inline-loader": "^0.8.2",
@@ -60,6 +60,6 @@
"vue-template-compiler": "^2.6.11",
"vuedraggable": "^2.23.1",
"vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#5d237615463a84a23dd6f3f77c6ab577d68593ec",
"webpack": "^4.42.1"
"webpack": "^4.43.0"
}
}

View File

@@ -16,7 +16,7 @@
width: 354px;
height: 147px;
}
.promo_mystery_202004 {
.promo_mystery_202005 {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -796px;
width: 282px;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,18 +4,24 @@
width: 221px;
height: 39px;
}
.quest_dolphin {
.quest_dilatoryDistress3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px 0px;
width: 219px;
height: 219px;
}
.quest_dustbunnies {
.quest_dolphin {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px 0px;
width: 219px;
height: 219px;
}
.quest_dustbunnies {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -232px;
width: 219px;
height: 219px;
}
.quest_egg {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1762px -362px;
@@ -30,19 +36,19 @@
}
.quest_evilsanta2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -232px;
background-position: -220px -232px;
width: 219px;
height: 219px;
}
.quest_falcon {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -232px;
background-position: -440px -232px;
width: 219px;
height: 219px;
}
.quest_ferret {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -232px;
background-position: -660px 0px;
width: 219px;
height: 219px;
}
@@ -54,13 +60,13 @@
}
.quest_ghost_stag {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px 0px;
background-position: -660px -220px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -220px;
background-position: 0px -452px;
width: 219px;
height: 219px;
}
@@ -84,13 +90,13 @@
}
.quest_guineapig {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -452px;
background-position: -220px -452px;
width: 219px;
height: 219px;
}
.quest_harpy {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -452px;
background-position: -440px -452px;
width: 219px;
height: 219px;
}
@@ -102,19 +108,19 @@
}
.quest_hippo {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -452px;
background-position: -660px -452px;
width: 219px;
height: 219px;
}
.quest_horse {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -452px;
background-position: -880px 0px;
width: 219px;
height: 219px;
}
.quest_kangaroo {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px 0px;
background-position: -880px -220px;
width: 219px;
height: 219px;
}
@@ -126,19 +132,19 @@
}
.quest_lostMasterclasser1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -220px;
background-position: -880px -440px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -440px;
background-position: 0px -672px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -672px;
background-position: -220px -672px;
width: 219px;
height: 219px;
}
@@ -150,19 +156,19 @@
}
.quest_mayhemMistiflying2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -672px;
background-position: -440px -672px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -672px;
background-position: -660px -672px;
width: 219px;
height: 219px;
}
.quest_monkey {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -672px;
background-position: -880px -672px;
width: 219px;
height: 219px;
}
@@ -174,31 +180,31 @@
}
.quest_moon2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -672px;
background-position: -1100px 0px;
width: 219px;
height: 219px;
}
.quest_moon3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px 0px;
background-position: -1100px -220px;
width: 219px;
height: 219px;
}
.quest_moonstone1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -220px;
background-position: -1100px -440px;
width: 219px;
height: 219px;
}
.quest_moonstone2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -440px;
background-position: -1100px -660px;
width: 219px;
height: 219px;
}
.quest_moonstone3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -660px;
background-position: 0px -892px;
width: 219px;
height: 219px;
}
@@ -216,7 +222,7 @@
}
.quest_owl {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -892px;
background-position: -220px -892px;
width: 219px;
height: 219px;
}
@@ -234,19 +240,19 @@
}
.quest_pterodactyl {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -892px;
background-position: -440px -892px;
width: 219px;
height: 219px;
}
.quest_rat {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -892px;
background-position: -660px -892px;
width: 219px;
height: 219px;
}
.quest_robot {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -892px;
background-position: -880px -892px;
width: 219px;
height: 219px;
}
@@ -264,43 +270,43 @@
}
.quest_ruby {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -892px;
background-position: -1100px -892px;
width: 219px;
height: 219px;
}
.quest_sabretooth {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -892px;
background-position: -1320px 0px;
width: 219px;
height: 219px;
}
.quest_seaserpent {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px 0px;
background-position: -1320px -220px;
width: 219px;
height: 219px;
}
.quest_sheep {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -220px;
background-position: -1320px -440px;
width: 219px;
height: 219px;
}
.quest_silver {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -440px;
background-position: -1320px -660px;
width: 219px;
height: 219px;
}
.quest_slime {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -660px;
background-position: -1320px -880px;
width: 219px;
height: 219px;
}
.quest_sloth {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -880px;
background-position: 0px -1112px;
width: 219px;
height: 219px;
}
@@ -324,7 +330,7 @@
}
.quest_squirrel {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -1112px;
background-position: -220px -1112px;
width: 219px;
height: 219px;
}
@@ -336,13 +342,13 @@
}
.quest_stoikalmCalamity2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -1112px;
background-position: -440px -1112px;
width: 219px;
height: 219px;
}
.quest_stoikalmCalamity3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -1112px;
background-position: -660px -1112px;
width: 219px;
height: 219px;
}
@@ -360,7 +366,7 @@
}
.quest_taskwoodsTerror3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -1112px;
background-position: -880px -1112px;
width: 219px;
height: 219px;
}
@@ -383,12 +389,6 @@
height: 177px;
}
.quest_triceratops {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -1112px;
width: 219px;
height: 219px;
}
.quest_turtle {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -1112px;
width: 219px;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 KiB

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

@@ -4,23 +4,47 @@
line-height: 1.33;
color: $gray-200;
padding: 4px 8px;
box-shadow: 0 1px 1px 0 rgba($black, 0.12);
box-shadow: 0 1px 3px 0 rgba($black, 0.12), 0 1px 2px 0 rgba($black, 0.24);
}
.badge-pill {
border-radius: 100px;
}
.badge-round {
height: 1.5rem;
width: 1.5rem;
border-radius: 100%;
}
.badge-default {
background: $gray-500;
box-shadow: none;
}
.badge-dialog {
position: absolute;
left: -16px;
top: -16px;
.badge-pin {
width: 36px;
height: 36px;
padding: 0.5rem;
}
}
.badge-item {
position: absolute;
top: -9px;
}
.badge-top {
position: absolute;
left: calc((100% - 24px) / 2);
top: -12px;
}
.badge-purple {
position: absolute;
color: $white;

View File

@@ -68,8 +68,6 @@ $purple-600: #D5C8FF;
$header-color: #D5C8FF;
$header-dark-background: #271B3D;
$suggested-item-color: #D5C8FF;
$healer-color: #FFA624;
$rogue-color: #4F2A93;
$warrior-color: #C92B2B;

View File

@@ -32,7 +32,6 @@
@import './dragdrop';
@import './banner';
@import './progress-bar';
@import './pin';
@import './animals';
@import './iconalert';
@import './tiers';

View File

@@ -47,8 +47,9 @@
height: 92px;
border-radius: 2px;
background: $white;
box-shadow: 0 2px 2px 0 rgba($black, 0.15), 0 1px 4px 0 rgba($black, 0.1);
box-shadow: 0 1px 3px 0 rgba($black, 0.12), 0 1px 2px 0 rgba($black, 0.24);
border: 1px solid transparent;
cursor: pointer;
&-empty {
background: $gray-10;
@@ -61,8 +62,8 @@
}
&:hover {
box-shadow: 0 4px 4px 0 rgba($black, 0.16), 0 1px 8px 0 rgba($black, 0.12);
border-color: $purple-500;
box-shadow: 0 3px 6px 0 rgba($black, 0.16), 0 3px 6px 0 rgba($black, 0.24);
border-color: $purple-400;
}
&.highlight {
@@ -72,15 +73,6 @@
&.highlight-border {
border-color: $purple-500;
}
&.suggested {
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
border: solid 1px $suggested-item-color;
}
&.suggested:hover {
border: solid 1px $purple-500;
}
}
.flat .item {

View File

@@ -1,26 +0,0 @@
.badge-svg {
left: calc((100% - 18px) / 2);
cursor: pointer;
color: $gray-400;
background: $white;
padding: 4.5px 6px;
&.item-selected-badge {
background: $purple-300;
color: $white;
}
}
span.badge.badge-pill.badge-item.badge-svg:not(.item-selected-badge) {
color: #a5a1ac;
}
span.badge.badge-pill.badge-item.badge-svg.hide {
display: none;
}
.item:hover {
span.badge.badge-pill.badge-item.badge-svg.hide {
display: block;
}
}

View File

@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
<path fill="#FFF" fill-rule="evenodd" d="M6.252 8.46l-2.71-2.712 4.602-3.58 1.688 1.689-3.58 4.602zm5.554-4.497l-.626-.627-.001-.001L8.666.822 8.037.194a.66.66 0 1 0-.934.934l.1.1L2.6 4.806l-.216-.216a.66.66 0 1 0-.934.934l.627.627v.001l1.418 1.418-3.301 3.302a.66.66 0 1 0 .934.934L4.43 8.505l1.417 1.417.001.002.628.627a.658.658 0 0 0 .934 0 .66.66 0 0 0 0-.934L7.194 9.4l3.58-4.602.098.099a.659.659 0 0 0 .934 0 .66.66 0 0 0 0-.934z"/>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="-2 -1.5 16 16">
<path id="prefix__a" d="M9.748 4.127l-3.27 4.205-2.31-2.31 4.205-3.27 1.375 1.375zm2.484-.091l-.554-.554V3.43l-.102-.051L8.463.267C8.293.095 8.063 0 7.82 0c-.244 0-.472.095-.644.267-.173.172-.267.401-.267.644 0 .195.061.382.174.536L2.87 4.724l-.06-.06c-.355-.354-.932-.354-1.288 0-.355.356-.355.933 0 1.288l1.87 1.869-3.126 3.125c-.355.355-.355.933 0 1.286.17.173.4.268.643.268.244 0 .474-.095.645-.267L4.68 9.108l1.87 1.87c.342.343.94.344 1.287 0 .355-.356.355-.933 0-1.289l-.06-.06 3.277-4.212c.345.252.87.215 1.18-.093.354-.356.354-.933 0-1.288z"/>
</svg>

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 691 B

View File

@@ -227,7 +227,7 @@
></i>
<div
v-if="!user.purchased.background[bg.key]"
class="purchase-background single"
class="purchase-background single d-flex align-items-center justify-content-center"
>
<div
class="svg-icon hourglass"
@@ -237,16 +237,12 @@
</div>
<span
v-if="!user.purchased.background[bg.key]"
class="badge badge-pill badge-item badge-svg"
:class="{
'item-selected-badge': isBackgroundPinned(bg),
'hide': !isBackgroundPinned(bg)}"
@click.prevent.stop="togglePinned(bg)"
class="badge-top"
@click.stop.prevent="togglePinned(bg)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="isBackgroundPinned(bg)"
/>
</span>
</div>
</div>
@@ -295,7 +291,7 @@
></i>
<div
v-if="!user.purchased.background[bg.key]"
class="purchase-background single"
class="purchase-background single d-flex align-items-center justify-content-center"
>
<div
class="svg-icon gem"
@@ -305,16 +301,12 @@
</div>
<span
v-if="!user.purchased.background[bg.key]"
class="badge badge-pill badge-item badge-svg"
:class="{
'item-selected-badge': isBackgroundPinned(bg),
'hide': !isBackgroundPinned(bg)}"
@click.prevent.stop="togglePinned(bg)"
class="badge-top"
@click.stop.prevent="togglePinned(bg)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="isBackgroundPinned(bg)"
/>
</span>
</div>
<div
@@ -1095,38 +1087,14 @@
}
}
.badge-svg {
left: calc((100% - 18px) / 2);
cursor: pointer;
color: $gray-400;
background: $white;
padding: 4.5px 6px;
.background-button {
margin-bottom: 15px;
&.item-selected-badge {
background: $purple-300;
color: $white;
}
}
.icon-12 {
width: 12px;
height: 12px;
}
span.badge.badge-pill.badge-item.badge-svg:not(.item-selected-badge) {
color: #a5a1ac;
}
span.badge.badge-pill.badge-item.badge-svg.hide {
.badge-pin:not(.pinned) {
display: none;
}
.background-button {
margin-bottom: 15px;
}
.background-button:hover {
span.badge.badge-pill.badge-item.badge-svg.hide {
&:hover .badge-pin {
display: block;
}
}
@@ -1142,6 +1110,7 @@ import usernameForm from './settings/usernameForm';
import shops from '@/../../common/script/libs/shops';
import guide from '@/mixins/guide';
import notifications from '@/mixins/notifications';
import PinBadge from '@/components/ui/pinBadge';
import toggleSwitch from '@/components/ui/toggleSwitch';
import bodySettings from './avatarModal/body-settings';
import skinSettings from './avatarModal/skin-settings';
@@ -1158,7 +1127,6 @@ import backgroundsIcon from '@/assets/svg/backgrounds.svg';
import gem from '@/assets/svg/gem.svg';
import hourglass from '@/assets/svg/hourglass.svg';
import gold from '@/assets/svg/gold.svg';
import pin from '@/assets/svg/pin.svg';
import arrowRight from '@/assets/svg/arrow_right.svg';
import arrowLeft from '@/assets/svg/arrow_left.svg';
import svgClose from '@/assets/svg/close.svg';
@@ -1170,14 +1138,14 @@ import content from '@/../../common/script/content/index';
export default {
components: {
avatar,
bodySettings,
extraSettings,
hairSettings,
PinBadge,
skinSettings,
subMenu,
toggleSwitch,
usernameForm,
bodySettings,
skinSettings,
hairSettings,
extraSettings,
subMenu,
},
mixins: [guide, notifications, avatarEditorUtilies],
data () {
@@ -1198,7 +1166,6 @@ export default {
backgroundsIcon,
gem,
hourglass,
pin,
gold,
arrowRight,
arrowLeft,

View File

@@ -29,7 +29,7 @@
:class="{
'input-valid': invite.valid, 'is-invalid input-invalid': invite.valid === false}"
@keyup="expandInviteList"
@change="checkInviteList"
@input="inviteUpdated(invite)"
>
</div>
<div
@@ -128,8 +128,6 @@
<script>
import clone from 'lodash/clone';
import debounce from 'lodash/debounce';
import filter from 'lodash/filter';
import forEach from 'lodash/forEach';
import isEmail from 'validator/lib/isEmail';
import isUUID from 'validator/lib/isUUID';
import { mapState } from '@/libs/store';
@@ -152,25 +150,24 @@ export default {
computed: {
...mapState({ user: 'user.data' }),
cannotSubmit () {
const filteredInvites = filter(
this.invites,
invite => invite.text.length > 0 && !invite.valid,
);
if (filteredInvites.length > 0) return true;
return false;
const filledInvites = this.invites.filter(invite => invite.text.length);
return !filledInvites.length || filledInvites.some(invite => !invite.valid);
},
inviter () {
return this.user.profile.name;
},
},
methods: {
inviteUpdated (invite) {
this.clearErrors(invite);
this.checkInviteList();
},
checkInviteList: debounce(function checkList () {
this.invites = filter(
this.invites,
this.invites = this.invites.filter(
(invite, index) => invite.text.length > 0 || index === this.invites.length - 1,
);
while (this.invites.length < 2) this.invites.push(clone(INVITE_DEFAULTS));
forEach(this.invites, (value, index) => {
this.invites.forEach((value, index) => {
if (value.text.length < 1 || isEmail(value.text)) {
return this.fillErrors(index);
}
@@ -185,12 +182,16 @@ export default {
return this.$store.dispatch('user:userLookup', { username: searchUsername })
.then(res => this.fillErrors(index, res));
});
}, 250),
}, 500),
expandInviteList () {
if (this.invites[this.invites.length - 1].text.length > 0) {
this.invites.push(clone(INVITE_DEFAULTS));
}
},
clearErrors (invite) {
invite.valid = null;
invite.error = null;
},
fillErrors (index, res) {
if (!res || res.status === 200) {
this.invites[index].error = null;
@@ -216,7 +217,7 @@ export default {
uuids: [],
usernames: [],
};
forEach(this.invites, invite => {
this.invites.forEach(invite => {
if (invite.text.length < 1) return;
if (isEmail(invite.text)) {
invitationDetails.emails.push({ email: invite.text });

View File

@@ -159,10 +159,10 @@
:class="group.key"
>
<!-- eslint-enable vue/no-use-v-if-with-v-for -->
<h2 class="mb-3">
<h2 class="d-flex align-items-center mb-3">
{{ group.label }}
<span
class="badge badge-pill badge-default"
class="badge badge-pill badge-default ml-2"
>{{ items[group.key].length }}</span>
</h2>
<itemRows

View File

@@ -80,11 +80,11 @@
:key="group.key"
>
<!-- eslint-enable vue/no-use-v-if-with-v-for -->
<h2 class="mb-3">
<h2 class="d-flex align-items-center mb-3">
{{ $t(group.key) }}
<span
v-if="group.key != 'special'"
class="badge badge-pill badge-default"
class="badge badge-pill badge-default ml-2"
>{{ group.quantity }}</span>
</h2>
<itemRows

View File

@@ -6,14 +6,12 @@
>
<span
v-if="withPin"
class="badge badge-pill badge-dialog"
:class="{'item-selected-badge': isPinned}"
class="badge-dialog"
@click.prevent.stop="togglePinned()"
>
<span
class="svg-icon inline color icon-16"
v-html="icons.pin"
></span>
<pin-badge
:pinned="isPinned"
/>
</span>
<div>
<span
@@ -147,7 +145,7 @@
v-else
class="btn btn-primary"
:disabled="item.key === 'gem' && gemsLeft === 0 ||
attemptingToPurchaseMoreGemsThanAreLeft || numberInvalid"
attemptingToPurchaseMoreGemsThanAreLeft || numberInvalid || item.locked"
:class="{'notEnough': !preventHealthPotion ||
!enoughCurrency(getPriceClass(), item.value * selectedAmountToBuy)}"
@click="buyItem()"
@@ -310,21 +308,6 @@
display: block;
}
.badge-dialog {
color: $gray-300;
position: absolute;
left: -14px;
padding: 8px 10px;
top: -12px;
background: white;
cursor: pointer;
&.item-selected-badge {
background: $purple-300;
color: $white;
}
}
.notEnough {
pointer-events: none;
opacity: 0.55;
@@ -405,11 +388,11 @@ import svgClose from '@/assets/svg/close.svg';
import svgGold from '@/assets/svg/gold.svg';
import svgGem from '@/assets/svg/gem.svg';
import svgHourglasses from '@/assets/svg/hourglass.svg';
import svgPin from '@/assets/svg/pin.svg';
import svgClock from '@/assets/svg/clock.svg';
import svgWhiteClock from '@/assets/svg/clock-white.svg';
import BalanceInfo from './balanceInfo.vue';
import PinBadge from '@/components/ui/pinBadge';
import currencyMixin from './_currencyMixin';
import notifications from '@/mixins/notifications';
import buyMixin from '@/mixins/buy';
@@ -439,6 +422,7 @@ export default {
EquipmentAttributesGrid,
Item,
Avatar,
PinBadge,
},
mixins: [buyMixin, currencyMixin, notifications, numberInvalid, spellsMixin],
props: {
@@ -463,7 +447,6 @@ export default {
gold: svgGold,
gems: svgGem,
hourglasses: svgHourglasses,
pin: svgPin,
clock: svgClock,
whiteClock: svgWhiteClock,
}),

View File

@@ -37,14 +37,12 @@
slot-scope="ctx"
>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
</template>
</shopItem>
@@ -55,14 +53,14 @@
</template>
<script>
import PinBadge from '@/components/ui/pinBadge';
import ShopItem from './shopItem';
import pinUtils from '@/mixins/pinUtils';
import svgPin from '@/assets/svg/pin.svg';
export default {
components: {
PinBadge,
ShopItem,
},
mixins: [pinUtils],
@@ -72,13 +70,6 @@ export default {
featuredText: String,
featuredItems: Array,
},
data () {
return {
icons: Object.freeze({
pin: svgPin,
}),
};
},
methods: {
featuredItemSelected (item) {
this.$emit('featuredItemSelected', item);
@@ -105,6 +96,14 @@ export default {
align-items: center;
}
.badge-pin:not(.pinned) {
display: none;
}
.item:hover .badge-pin {
display: block;
}
.content {
display: flex;
flex-direction: column;

View File

@@ -12,39 +12,41 @@
{{ gemsLeft }}
</div>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': item.pinned, 'hide': !item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="item.pinned"
/>
</span>
</div>
</template>
<style lang="scss" scoped>
.badge-pin:not(.pinned) {
display: none;
}
.item:hover .badge-pin {
display: block;
}
</style>
<script>
import { mapState } from '@/libs/store';
import CountBadge from '@/components/ui/countBadge';
import svgPin from '@/assets/svg/pin.svg';
import PinBadge from '@/components/ui/pinBadge';
import planGemLimits from '@/../../common/script/libs/planGemLimits';
import pinUtils from '../../../mixins/pinUtils';
export default {
components: {
CountBadge,
PinBadge,
},
mixins: [pinUtils],
props: ['item'],
data () {
return {
icons: Object.freeze({
pin: svgPin,
}),
};
},
computed: {
...mapState({
user: 'user.data',

View File

@@ -49,7 +49,6 @@
<shopItem
:key="ctx.item.key"
:item="ctx.item"
:empty-item="userItems.gear[ctx.item.key] === undefined"
:popover-position="'top'"
@click="gearSelected(ctx.item)"
>
@@ -58,14 +57,12 @@
slot-scope="ctx"
>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
</template>
</shopItem>
@@ -81,11 +78,11 @@ import { mapState } from '@/libs/store';
import LayoutSection from '@/components/ui/layoutSection';
import FilterDropdown from '@/components/ui/filterDropdown';
import ItemRows from '@/components/ui/itemRows';
import PinBadge from '@/components/ui/pinBadge';
import ShopItem from '../shopItem';
import shops from '@/../../common/script/libs/shops';
import svgPin from '@/assets/svg/pin.svg';
import svgWarrior from '@/assets/svg/warrior.svg';
import svgWizard from '@/assets/svg/wizard.svg';
import svgRogue from '@/assets/svg/rogue.svg';
@@ -112,6 +109,7 @@ export default {
LayoutSection,
FilterDropdown,
ItemRows,
PinBadge,
ShopItem,
},
mixins: [pinUtils],
@@ -122,7 +120,6 @@ export default {
selectedSortGearBy: sortGearTypes[0],
selectedGroupGearByClass: '',
icons: Object.freeze({
pin: svgPin,
warrior: svgWarrior,
wizard: svgWizard,
rogue: svgRogue,
@@ -168,9 +165,7 @@ export default {
return this.$t(classType);
},
gearSelected (item) {
if (!item.locked) {
this.$root.$emit('buyModal::showItem', item);
}
},
filterGearItems () {
const category = _filter(this.marketGearCategories, ['identifier', this.selectedGroupGearByClass]);
@@ -200,9 +195,11 @@ export default {
</script>
<style lang="scss" scoped>
.equipment-rows {
::v-deep .item.item-empty {
background: white;
.badge-pin:not(.pinned) {
display: none;
}
.item:hover .badge-pin {
display: block;
}
</style>

View File

@@ -176,15 +176,9 @@ import FilterDropdown from '@/components/ui/filterDropdown';
import MarketFilter from './filter';
import SellModal from './sellModal.vue';
import svgPin from '@/assets/svg/pin.svg';
import svgGem from '@/assets/svg/gem.svg';
import svgInformation from '@/assets/svg/information.svg';
import getItemInfo from '@/../../common/script/libs/getItemInfo';
import shops from '@/../../common/script/libs/shops';
import notifications from '@/mixins/notifications';
import buyMixin from '@/mixins/buy';
import currencyMixin from '../_currencyMixin';
@@ -222,13 +216,6 @@ export default {
searchText: null,
searchTextThrottled: null,
icons: Object.freeze({
pin: svgPin,
gem: svgGem,
information: svgInformation,
}),
sortItemsBy: sortItems,
selectedSortItemsBy: sortItems[0],

View File

@@ -6,14 +6,12 @@
>
<span
v-if="withPin"
class="badge badge-pill badge-dialog"
:class="{'item-selected-badge': isPinned}"
class="badge-dialog"
@click.prevent.stop="togglePinned()"
>
<span
class="svg-icon inline color icon-10"
v-html="icons.pin"
></span>
<pin-badge
:pinned="isPinned"
/>
</span>
<div class="close">
<span
@@ -29,7 +27,10 @@
>
<div class="inner-content">
<questDialogContent :item="item" />
<div class="purchase-amount">
<div
class="purchase-amount"
v-if="!item.locked"
>
<div class="how-many-to-buy">
<strong>{{ $t('howManyToBuy') }}</strong>
</div>
@@ -59,7 +60,8 @@
</div>
<button
v-if="priceType === 'gems'
&& !enoughCurrency(priceType, item.value * selectedAmountToBuy)"
&& !enoughCurrency(priceType, item.value * selectedAmountToBuy)
&& !item.locked"
class="btn btn-primary"
@click="purchaseGems()"
>
@@ -206,21 +208,6 @@
display: block;
}
.badge-dialog {
color: $gray-300;
position: absolute;
left: -14px;
padding: 8px 10px;
top: -12px;
background: white;
cursor: pointer;
&.item-selected-badge {
background: $purple-300;
color: $white;
}
}
.limitedTime {
height: 32px;
background-color: $purple-300;
@@ -291,13 +278,13 @@ import svgExperience from '@/assets/svg/experience.svg';
import svgGem from '@/assets/svg/gem.svg';
import svgGold from '@/assets/svg/gold.svg';
import svgHourglasses from '@/assets/svg/hourglass.svg';
import svgPin from '@/assets/svg/pin.svg';
import BalanceInfo from '../balanceInfo.vue';
import currencyMixin from '../_currencyMixin';
import notifications from '@/mixins/notifications';
import buyMixin from '@/mixins/buy';
import numberInvalid from '@/mixins/numberInvalid';
import PinBadge from '@/components/ui/pinBadge';
import questDialogDrops from './questDialogDrops';
import questDialogContent from './questDialogContent';
@@ -305,6 +292,7 @@ import questDialogContent from './questDialogContent';
export default {
components: {
BalanceInfo,
PinBadge,
questDialogDrops,
questDialogContent,
},
@@ -329,7 +317,6 @@ export default {
gem: svgGem,
gold: svgGold,
hourglass: svgHourglasses,
pin: svgPin,
}),
isPinned: false,

View File

@@ -100,14 +100,12 @@
slot-scope="ctx"
>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
</template>
</shopItem>
@@ -185,14 +183,12 @@
slot-scope="ctx"
>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
<countBadge
:show="userItems.quests[ctx.item.key] > 0"
@@ -222,6 +218,7 @@
:price="item.value"
:empty-item="false"
:popover-position="'top'"
:owned="!isNaN(userItems.quests[item.key])"
@click="selectItem(item)"
>
<span slot="popoverContent">
@@ -264,14 +261,12 @@
slot-scope="ctx"
>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
<countBadge
:show="userItems.quests[ctx.item.key] > 0"
@@ -310,14 +305,12 @@
slot-scope="ctx"
>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
<countBadge
:show="userItems.quests[ctx.item.key] > 0"
@@ -353,42 +346,6 @@
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/variables.scss';
.badge-svg {
left: calc((100% - 18px) / 2);
cursor: pointer;
color: $gray-400;
background: $white;
padding: 4.5px 6px;
&.item-selected-badge {
background: $purple-300;
color: $white;
}
}
span.badge.badge-pill.badge-item.badge-svg:not(.item-selected-badge) {
color: #a5a1ac;
}
span.badge.badge-pill.badge-item.badge-svg.hide {
display: none;
}
.item:hover {
span.badge.badge-pill.badge-item.badge-svg.hide {
display: block;
}
}
.icon-12 {
width: 12px;
height: 12px;
}
.hand-cursor {
cursor: pointer;
}
.featured-label {
margin: 24px auto;
}
@@ -420,6 +377,15 @@
.standard-page {
position: relative;
}
.badge-pin:not(.pinned) {
display: none;
}
.item:hover .badge-pin {
display: block;
}
.featuredItems {
height: 216px;
@@ -502,10 +468,9 @@ import pinUtils from '@/mixins/pinUtils';
import currencyMixin from '../_currencyMixin';
import BuyModal from './buyQuestModal.vue';
import PinBadge from '@/components/ui/pinBadge';
import QuestInfo from './questInfo.vue';
import svgPin from '@/assets/svg/pin.svg';
import shops from '@/../../common/script/libs/shops';
import isPinned from '@/../../common/script/libs/isPinned';
@@ -520,6 +485,7 @@ export default {
toggleSwitch,
BuyModal,
PinBadge,
QuestInfo,
},
mixins: [buyMixin, currencyMixin, pinUtils],
@@ -530,10 +496,6 @@ export default {
searchText: null,
searchTextThrottled: null,
icons: Object.freeze({
pin: svgPin,
}),
sortItemsBy: ['AZ', 'sortByNumber'],
selectedSortItemsBy: 'AZ',
@@ -631,8 +593,6 @@ export default {
return false;
},
selectItem (item) {
if (item.locked) return;
this.selectedItemToBuy = item;
this.$root.$emit('bv::show::modal', 'buy-quest-modal');

View File

@@ -103,7 +103,21 @@
:popover-position="'top'"
:show-event-badge="false"
@click="itemSelected(item)"
>
<template
slot="itemBadge"
slot-scope="ctx"
>
<span
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
</template>
</shopItem>
</div>
</div>
</div>
@@ -181,14 +195,12 @@
slot-scope="ctx"
>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
</template>
</shopItem>
@@ -205,43 +217,6 @@
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/variables.scss';
.badge-svg {
left: calc((100% - 18px) / 2);
cursor: pointer;
color: $gray-400;
background: $white;
padding: 4.5px 6px;
&.item-selected-badge {
background: $purple-300;
color: $white;
}
}
span.badge.badge-pill.badge-item.badge-svg:not(.item-selected-badge) {
color: #a5a1ac;
}
span.badge.badge-pill.badge-item.badge-svg.hide {
display: none;
}
.item:hover {
span.badge.badge-pill.badge-item.badge-svg.hide {
display: block;
}
}
.icon-12 {
width: 12px;
height: 12px;
}
.hand-cursor {
cursor: pointer;
}
.featured-label {
margin: 24px auto;
}
@@ -273,6 +248,14 @@
position: relative;
}
.badge-pin:not(.pinned) {
display: none;
}
.item:hover .badge-pin {
display: block;
}
h3.classgroup {
line-height: 1.5;
display: flex;
@@ -392,20 +375,19 @@ import _groupBy from 'lodash/groupBy';
import _reverse from 'lodash/reverse';
import { mapState } from '@/libs/store';
import ShopItem from '../shopItem';
import Checkbox from '@/components/ui/checkbox';
import PinBadge from '@/components/ui/pinBadge';
import ShopItem from '../shopItem';
import toggleSwitch from '@/components/ui/toggleSwitch';
import buyMixin from '@/mixins/buy';
import currencyMixin from '../_currencyMixin';
import pinUtils from '@/mixins/pinUtils';
import svgPin from '@/assets/svg/pin.svg';
import svgWarrior from '@/assets/svg/warrior.svg';
import svgWizard from '@/assets/svg/wizard.svg';
import svgRogue from '@/assets/svg/rogue.svg';
import svgHealer from '@/assets/svg/healer.svg';
import isPinned from '@/../../common/script/libs/isPinned';
import getOfficialPinnedItems from '@/../../common/script/libs/getOfficialPinnedItems';
@@ -415,9 +397,10 @@ import shops from '@/../../common/script/libs/shops';
export default {
components: {
Checkbox,
PinBadge,
ShopItem,
toggleSwitch,
Checkbox,
},
mixins: [buyMixin, currencyMixin, pinUtils],
data () {
@@ -427,7 +410,6 @@ export default {
searchTextThrottled: null,
icons: Object.freeze({
pin: svgPin,
warrior: svgWarrior,
wizard: svgWizard,
rogue: svgRogue,
@@ -476,7 +458,10 @@ export default {
const itemsNotOwned = seasonal.featured.items
.filter(item => !this.user.items.gear.owned[item.key]);
seasonal.featured.items = itemsNotOwned;
seasonal.featured.items = _map(itemsNotOwned, e => ({
...e,
pinned: isPinned(this.user, e, this.usersOfficalPinnedItems),
}));
// If we are out of gear, show the spells
// @TODO: add dates to check instead?
@@ -609,7 +594,6 @@ export default {
return false;
},
itemSelected (item) {
if (item.locked) return;
this.$root.$emit('buyModal::showItem', item);
},
},

View File

@@ -16,14 +16,13 @@
></slot>
<span
v-if="item.event && item.owned == null && showEventBadge"
class="badge badge-pill badge-item badge-clock"
class="badge badge-round badge-item badge-clock"
>
<span
class="svg-icon inline clock"
v-html="icons.clock"
></span>
</span>
<div class="shop-content">
<span
v-if="item.locked"
class="svg-icon inline lock"
@@ -43,10 +42,14 @@
:item="item"
></slot>
</div>
<div class="price">
<div
class="price d-flex align-items-center justify-content-center"
:class="currencyClass"
>
<span
v-once
class="svg-icon inline icon-16"
:class="{ 'w-0': currencyClass === 'unlock'}"
class="svg-icon inline icon-16 mr-1"
v-html="icons[currencyClass]"
></span>
<span
@@ -57,7 +60,6 @@
</div>
</div>
</div>
</div>
<b-popover
v-if="showPopover"
:target="itemId"
@@ -121,60 +123,66 @@
}
.item {
min-height: 106px;
}
.item:not(.locked) {
height: 7.5rem;
width: 94px;
border-radius: 4px;
background-color: $white;
box-shadow: 0 1px 3px 0 rgba($black, 0.12), 0 1px 2px 0 rgba($black, 0.24);
cursor: pointer;
}
.item.item-empty {
border-radius: 2px;
background-color: #f9f9f9;
box-shadow: 0 2px 2px 0 rgba($black, 0.16), 0 1px 4px 0 rgba($black, 0.12);
}
.shop-content {
display: flex;
flex-direction: column;
align-items: center;
& > * {
margin-top : 12px;
&.locked .price {
opacity: 0.5;
}
}
.image {
height: 50px;
margin: 12px 13px;
}
.price {
.svg-icon {
padding-top: 2px;
margin-right: 4px;
height: 1.75rem;
width: 94px;
margin-left: -1px;
margin-right: -1px;
border-radius: 0px 0px 4px 4px;
&.gems {
background-color: rgba($green-100, 0.15);
}
margin-top: 1.25em;
&.gold {
background-color: rgba($yellow-100, 0.15);
}
&.hourglasses {
background-color: rgba($blue-50, 0.15);
}
&.unlock {
background-color: rgba($gray-400, 0.15);
}
}
.price-label {
height: 16px;
font-family: Roboto;
font-size: 16px;
font-size: 12px;
font-weight: bold;
line-height: 1.33;
&.gems {
color: $green-10;
color: $green-1;
}
&.gold {
color: $yellow-10
color: $yellow-1;
}
&.unlock {
color: $gray-100;
}
&.hourglasses {
color: $blue-10;
color: $blue-1;
}
}
@@ -185,9 +193,10 @@
right: 8px;
top: 8px;
margin-top: 0;
color: $gray-200;
}
span.badge.badge-pill.badge-item.badge-clock {
span.badge.badge-round.badge-item.badge-clock {
height: 24px;
width: 24px;
background-color: $purple-300;
@@ -206,7 +215,7 @@
.suggestedDot {
width: 6px;
height: 6px;
background-color: $suggested-item-color;
background-color: $purple-400;
border-radius: 4px;
position: absolute;
@@ -219,6 +228,10 @@
width: 48px;
height: 48px;
}
.w-0 {
width: 0rem;
}
</style>
<script>
@@ -235,7 +248,6 @@ import EquipmentAttributesPopover from '@/components/inventory/equipment/attribu
import QuestInfo from './quests/questInfo.vue';
import seasonalShopConfig from '@/../../common/script/libs/shops-seasonal.config';
export default {
@@ -271,6 +283,10 @@ export default {
type: Boolean,
default: true,
},
owned: {
type: Boolean,
default: false,
},
},
data () {
return Object.freeze({
@@ -290,6 +306,7 @@ export default {
return false;
},
currencyClass () {
if (this.item.unlockCondition && this.item.unlockCondition.condition === 'party invite' && !this.owned) return 'unlock';
if (this.item.currency && this.icons[this.item.currency]) {
return this.item.currency;
}
@@ -305,6 +322,7 @@ export default {
this.$emit('click', {});
},
getPrice () {
if (this.item.unlockCondition && this.item.unlockCondition.condition === 'party invite' && !this.owned) return this.item.unlockCondition.text();
if (this.price === -1) {
return this.item.value;
}

View File

@@ -139,13 +139,13 @@
>
<span
v-if="ctx.item.pinType !== 'IGNORE'"
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.item.pinned}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
><span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span></span>
>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
</template>
</shopItem>
</template>
@@ -177,43 +177,6 @@
@import '~@/assets/scss/colors.scss';
@import '~@/assets/scss/variables.scss';
.badge-svg {
left: calc((100% - 18px) / 2);
cursor: pointer;
color: $gray-400;
background: $white;
padding: 4.5px 6px;
&.item-selected-badge {
background: $purple-300;
color: $white;
}
}
span.badge.badge-pill.badge-item.badge-svg:not(.item-selected-badge) {
color: #a5a1ac;
}
span.badge.badge-pill.badge-item.badge-svg.hide {
display: none;
}
.item:hover {
span.badge.badge-pill.badge-item.badge-svg.hide {
display: block;
}
}
.icon-12 {
width: 12px;
height: 12px;
}
.hand-cursor {
cursor: pointer;
}
.featured-label {
margin: 24px auto;
}
@@ -223,7 +186,6 @@
width: 33%;
margin-bottom: 24px;
.items {
border-radius: 2px;
background-color: #edecee;
@@ -245,6 +207,14 @@
position: relative;
}
.badge-pin:not(.pinned) {
display: none;
}
.item:hover .badge-pin {
display: block;
}
.avatar {
cursor: default;
margin: 0 auto;
@@ -319,15 +289,14 @@ import { mapState } from '@/libs/store';
import ShopItem from '../shopItem';
import Item from '@/components/inventory/item';
import ItemRows from '@/components/ui/itemRows';
import toggleSwitch from '@/components/ui/toggleSwitch';
import QuestInfo from '../quests/questInfo.vue';
import PinBadge from '@/components/ui/pinBadge';
import toggleSwitch from '@/components/ui/toggleSwitch';
import BuyQuestModal from '../quests/buyQuestModal.vue';
import svgPin from '@/assets/svg/pin.svg';
import svgHourglass from '@/assets/svg/hourglass.svg';
import isPinned from '@/../../common/script/libs/isPinned';
import shops from '@/../../common/script/libs/shops';
@@ -338,6 +307,7 @@ export default {
ShopItem,
Item,
ItemRows,
PinBadge,
toggleSwitch,
QuestInfo,
@@ -352,7 +322,6 @@ export default {
searchTextThrottled: null,
icons: Object.freeze({
pin: svgPin,
hourglass: svgHourglass,
}),

View File

@@ -81,6 +81,8 @@
ref="tasksList"
class="sortable-tasks"
:options="{disabled: activeFilter.label === 'scheduled' || !isUser, scrollSensitivity: 64}"
:delay-on-touch-only="true"
:delay="100"
@update="taskSorted"
@start="isDragging(true)"
@end="isDragging(false)"
@@ -101,6 +103,8 @@
<draggable
ref="rewardsList"
class="reward-items"
:delay-on-touch-only="true"
:delay="100"
@update="rewardSorted"
@start="rewardDragStart"
@end="rewardDragEnd"
@@ -109,7 +113,6 @@
v-for="reward in inAppRewards"
:key="reward.key"
:item="reward"
:highlight-border="reward.isSuggested"
:show-popover="showPopovers"
:popover-position="'left'"
@click="openBuyDialog(reward)"
@@ -119,14 +122,12 @@
slot-scope="ctx"
>
<span
class="badge badge-pill badge-item badge-svg"
:class="{'item-selected-badge': ctx.item.pinned, 'hide': !ctx.highlightBorder}"
class="badge-top"
@click.prevent.stop="togglePinned(ctx.item)"
>
<span
class="svg-icon inline icon-12 color"
v-html="icons.pin"
></span>
<pin-badge
:pinned="ctx.item.pinned"
/>
</span>
</template>
</shopItem>
@@ -143,6 +144,14 @@
cursor: grabbing;
}
.badge-pin {
display: none;
}
.item:hover .badge-pin {
display: block;
}
.tasks-column {
min-height: 556px;
}
@@ -331,6 +340,7 @@ import buyMixin from '@/mixins/buy';
import { mapState, mapActions, mapGetters } from '@/libs/store';
import shopItem from '../shops/shopItem';
import BuyQuestModal from '@/components/shops/quests/buyQuestModal.vue';
import PinBadge from '@/components/ui/pinBadge';
import notifications from '@/mixins/notifications';
import { shouldDo } from '@/../../common/script/cron';
@@ -343,7 +353,6 @@ import {
getActiveFilter,
} from '@/libs/store/helpers/filterTasks';
import svgPin from '@/assets/svg/pin.svg';
import habitIcon from '@/assets/svg/habit.svg';
import dailyIcon from '@/assets/svg/daily.svg';
import todoIcon from '@/assets/svg/todo.svg';
@@ -355,6 +364,7 @@ export default {
Task,
ClearCompletedTodos,
BuyQuestModal,
PinBadge,
shopItem,
draggable,
},
@@ -380,7 +390,6 @@ export default {
daily: dailyIcon,
todo: todoIcon,
reward: rewardIcon,
pin: svgPin,
});
const typeLabel = '';

View File

@@ -1,7 +1,7 @@
<template>
<span
v-if="show && count > 0"
class="badge badge-pill badge-item badge-count"
class="badge badge-pill badge-item badge-count d-flex justify-content-center align-items-center"
>{{ count }}</span>
</template>
@@ -10,13 +10,15 @@
.badge-count {
right: -9px;
top: -12px;
border-radius: 100px;
color: $white;
background: $gray-200;
padding: 4.5px 8.5px;
min-width: 24px;
height: 24px;
box-shadow: 0 1px 1px 0 rgba($black, 0.12);
min-width: 1.5rem;
height: 1.5rem;
z-index: 1;
user-select: none;
}
</style>

View File

@@ -0,0 +1,24 @@
/* eslint-disable import/no-extraneous-dependencies */
import { storiesOf } from '@storybook/vue';
import { withKnobs, boolean } from '@storybook/addon-knobs';
import PinBadge from './pinBadge.vue';
const stories = storiesOf('Pin Badge', module);
stories.addDecorator(withKnobs);
stories
.add('states', () => ({
components: { PinBadge },
template: `
<div style="position: absolute; margin: 20px">
<pin-badge :pinned="pinned"></pin-badge>
</div>
`,
props: {
pinned: {
default: boolean('Pinned', false),
},
},
}));

View File

@@ -0,0 +1,58 @@
<template>
<div
class="badge badge-round badge-pin align-items-center justify-content-center"
:class="{'pinned': pinned}"
>
<div
class="svg-icon color"
v-html="icons.pin">
</div>
</div>
</template>
<style lang="scss" scoped>
@import '~@/assets/scss/colors.scss';
.badge-pin {
background-color: $white;
color: $gray-200;
transition: none;
display: flex;
cursor: pointer;
padding: 0.25rem;
&:hover:not(.pinned) {
color: $purple-300;
}
&.pinned {
background-color: $purple-300;
color: $white;
}
.svg-icon {
width: 100%;
height: 100%;
}
}
</style>
<script>
import svgPin from '@/assets/svg/pin.svg';
export default {
props: {
pinned: {
type: Boolean,
},
},
data () {
return {
icons: Object.freeze({
pin: svgPin,
}),
};
},
};
</script>

View File

@@ -1,36 +1,53 @@
<template>
<span
v-if="show"
class="badge badge-pill badge-item badge-star"
class="badge badge-round badge-item badge-star"
:class="{'item-selected-badge': selected === true}"
@click.stop="click"
>&#9733;</span>
>
<div
class="svg-icon color"
v-html="icons.star"
>
</div>
</span>
</template>
<style lang="scss">
@import '~@/assets/scss/colors.scss';
.badge-star {
.badge-star {
cursor: pointer;
display: none;
left: -9px;
color: $gray-400;
background: $white;
padding: 4.5px 6px;
padding: 0.375rem;
&.item-selected-badge {
display: block;
background: $teal-50;
color: $white;
}
}
.item:hover > .badge-star {
&:hover:not(.item-selected-badge) {
color: $purple-300;
}
.svg-icon {
width: 100%;
height: 100%;
}
}
.item:hover > .badge-star {
display: block;
}
}
</style>
<script>
import svgStar from '@/assets/svg/star-badge.svg';
export default {
props: {
show: {
@@ -40,6 +57,13 @@ export default {
type: Boolean,
},
},
data () {
return {
icons: Object.freeze({
star: svgStar,
}),
};
},
methods: {
click () {
this.$emit('click');

View File

@@ -72,8 +72,8 @@
/>
</div>
<button
class="btn btn-secondary"
v-if="canLoadMoreConversations"
class="btn btn-secondary"
@click="loadConversations()"
>
{{ $t('loadMore') }}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tip #<%= tipNumber %>",
"tip1": "Check tasks on the go with the Habitica mobile apps.",
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
"tip3": "Use emoji to quickly differentiate between your tasks.",
"tip4": "Use the # sign before a task name to make it really big!",
"tip5": "Its best to use skills that cause buffs in the morning so they last longer.",
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
"tip10": "You can win gems by competing in Challenges. New ones are added every day!",
"tip11": "Having more than four Party members increases accountability!",
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
"tip14": "You can add headers or inspirational quotes to your list as Habits with no (+/-).",
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habiticas secret lore.",
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
"tip17": "Use the mobile apps to set reminders for your tasks.",
"tip18": "Habits that are just positive or just negative gradually “fade” and return to yellow.",
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
"tip20": "Boost your Perception Stat to get more drops and gold.",
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
"tip24": "Have a question? Ask in the Habitica Help Guild!",
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
"tip30": "You can invite people to Guilds, not just Parties.",
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
"tip32": "Lots of Habiticas code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
"tip34": "Occasionally re-evaluate your tasks to make sure theyre up-to-date!",
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tip #<%= tipNumber %>",
"tip1": "Check tasks on the go with the Habitica mobile apps.",
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
"tip3": "Use emoji to quickly differentiate between your tasks.",
"tip4": "Use the # sign before a task name to make it really big!",
"tip5": "Its best to use skills that cause buffs in the morning so they last longer.",
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
"tip10": "You can win gems by competing in Challenges. New ones are added every day!",
"tip11": "Having more than four Party members increases accountability!",
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
"tip14": "You can add headers or inspirational quotes to your list as Habits with no (+/-).",
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habiticas secret lore.",
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
"tip17": "Use the mobile apps to set reminders for your tasks.",
"tip18": "Habits that are just positive or just negative gradually “fade” and return to yellow.",
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
"tip20": "Boost your Perception Stat to get more drops and gold.",
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
"tip24": "Have a question? Ask in the Habitica Help Guild!",
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
"tip30": "You can invite people to Guilds, not just Parties.",
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
"tip32": "Lots of Habiticas code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
"tip34": "Occasionally re-evaluate your tasks to make sure theyre up-to-date!",
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "نصيحة رقم #<%= tipNumber %>",
"tip1": "تحقق من المهام أثناء التنقل مع تطبيقات الجوال لــ Habitica",
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
"tip3": "استخدام الرموز التعبيرية للتمييز بشكل سريع بين المهام الخاصة بك.",
"tip4": "استخدام علامة # قبل اسم المهمة لجعلها كبيرة جدا!",
"tip5": "Its best to use skills that cause buffs in the morning so they last longer.",
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
"tip10": "يمكنك الفوز الأحجار الكريمة من خلال التنافس في التحديات. يتم إضافة أخرى جديدة كل يوم! ",
"tip11": "Having more than four Party members increases accountability!",
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
"tip14": "يمكنك أضفت رؤوسا أو اقتباسات ملهمة لقائمتك كما العادات مع عدم وجود (+/-).",
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habiticas secret lore.",
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
"tip17": "Use the mobile apps to set reminders for your tasks.",
"tip18": "العادات التي هي مجرد إيجابية أو السلبية فقط \"تتلاشى\" بصورة تدريجية وتعود إلى اللون الأصفر.",
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
"tip20": "Boost your Perception Stat to get more drops and gold.",
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
"tip24": "لديك سؤال؟ اسأل في نقابة Habitica Help!",
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
"tip30": "You can invite people to Guilds, not just Parties.",
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
"tip32": "Lots of Habiticas code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
"tip34": "Occasionally re-evaluate your tasks to make sure theyre up-to-date!",
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tip #<%= tipNumber %>",
"tip1": "Check tasks on the go with the Habitica mobile apps.",
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
"tip3": "Use emoji to quickly differentiate between your tasks.",
"tip4": "Use the # sign before a task name to make it really big!",
"tip5": "Its best to use skills that cause buffs in the morning so they last longer.",
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
"tip10": "You can win gems by competing in Challenges. New ones are added every day!",
"tip11": "Having more than four Party members increases accountability!",
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
"tip14": "You can add headers or inspirational quotes to your list as Habits with no (+/-).",
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habiticas secret lore.",
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
"tip17": "Use the mobile apps to set reminders for your tasks.",
"tip18": "Habits that are just positive or just negative gradually “fade” and return to yellow.",
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
"tip20": "Boost your Perception Stat to get more drops and gold.",
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
"tip24": "Have a question? Ask in the Habitica Help Guild!",
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
"tip30": "You can invite people to Guilds, not just Parties.",
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
"tip32": "Lots of Habiticas code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
"tip34": "Occasionally re-evaluate your tasks to make sure theyre up-to-date!",
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Съвет №<%= tipNumber %>",
"tip1": "Проверявайте задачите си в движение с мобилните приложения на Хабитика.",
"tip2": "Щракнете върху предмет, за да го видите предварително, или го екипирайте веднага като натиснете звездата в горния му ляв ъгъл!",
"tip3": "Използвайте емотиконки, за да различавате лесно задачите си.",
"tip4": "Използвайте знака „#“ преди името на задача, за да го направите голямо!",
"tip5": "Най-добре е да изпълнявате заклинанията си за подсилки сутрин, за да траят по-дълго.",
"tip6": "Посочете задача и натиснете точките, за да видите допълнителните инструменти за управление на задачата, като например бутоните за преместване на задачите към върха или дъното на списъка.",
"tip7": "Някои фонове могат да се свържат перфектно, ако членовете на групата използват един и същ фон. Например: Планинско езеро, Пагоди и Неизброими хълмове.",
"tip8": "Пратете съобщение на някого като щракнете върху името му в чата и натиснете плика за писмо в горната част на профила му!",
"tip9": "Използвайте филтрите и лентата за търсене в инвентарите, магазините, гилдиите и предизвикателствата, за да откриете бързо това, което търсите.",
"tip10": "Можете да печелите диаманти като участвате в предизвикателства. Всеки ден се добавят нови!",
"tip11": "Ако групата Ви има повече от четирима члена, това ще направи всички Ви по-отговорни!",
"tip12": "Добавяйте списъци към своите задачи за изпълнение, за да умножите наградите си!",
"tip13": "Натиснете „Етикети“ на страницата си със задачи, за да се справите с объркания си списък със задачи по-лесно!",
"tip14": "Може да добавяте заглавия или вдъхновяващи цитати към списъка си като навици без (+/-).",
"tip15": "Завършете всички последователности от мисии на класовите повелители, за да разберете тайната история на Хабитика.",
"tip16": "Натиснете връзката към инструмента за показване на данните в дъното на страницата, за да видите повече подробности за напредъка си.",
"tip17": "Използвайте мобилните приложения, за да си създадете напомняния за задачите си.",
"tip18": "Навиците, които са само положителни или само отрицателни постепенно „избледняват“ и се връщат към жълто.",
"tip19": "Увеличете атрибута Интелигентност, за да печелите повече опит, когато завършите задача.",
"tip20": "Увеличете показателя Усет, за да Ви се падат повече предмети и да получавате повече злато.",
"tip21": "Увеличете показателя Сила, за да нанасяте повече щети на главатарите или да нанасяте критични удари.",
"tip22": "Увеличете показателя Якост, за да намалите щетите, получавани от неизпълнените ежедневни задачи.",
"tip23": "Достигнете ниво 100, за да отключите Кълбото за прераждане безплатно и да започнете ново приключение!",
"tip24": "Имате въпрос? Задайте го в помощната гилдия на Хабитика)",
"tip25": "Четирите сезонни големи празненства започват около слънцестоенията и равноденствията.",
"tip26": "Можете да си потърсите група, или да откриете хора, желаещи да влязат в група, в гилдията „Търсене на група“ (Party Wanted Guild)!",
"tip27": "Изпълнихте ежедневна задача вчера, но забравихте да го отбележите? Не се притеснявайте! С възможността за запис на вчерашната дейност можете да записвате това, което сте свършили, преди да започнете новия си ден.",
"tip28": "Задайте свое персонализирано начало на деня от Потребителската иконка > Настройки, за да определите кога започва Вашият ден.",
"tip29": "Завършете всичките си ежедневни задачи, за да получите подсилването „Перфектен ден“, което увеличава показателите Ви!",
"tip30": "Можете да каните хора и в гилдии, а не само в групи.",
"tip31": "Разгледайте предварителна подготвените списъци от примерни задачи в гилдията „Библиотека от задачи и предизвикателства“ (Tasks and Challenges Guild).",
"tip32": "Много от кода, изображенията и текста на Хабитика, са направени от доброволци! Ако искате да помогнете, посетете гилдията на Амбициозните легенди (Aspiring Legends).",
"tip33": "Прегледайте гилдията „The Bulletin Board“ за новини, свързани с гилдии, предизвикателства и други събития, създавани от играчите, или обявете своето там!",
"tip34": "От време на време преглеждайте задачите си, за да се уверите, че са актуални!",
"tip35": "Потребителите, които са част от групов план, получават възможността да задават задачи на други потребители в групата за по-лесно управление на задачите, и за да са всички по-отговорни."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tip #<%= tipNumber %>",
"tip1": "Check tasks on the go with the Habitica mobile apps.",
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
"tip3": "Use emoji to quickly differentiate between your tasks.",
"tip4": "Use the # sign before a task name to make it really big!",
"tip5": "Its best to use skills that cause buffs in the morning so they last longer.",
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
"tip10": "You can win gems by competing in Challenges. New ones are added every day!",
"tip11": "Having more than four Party members increases accountability!",
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
"tip14": "You can add headers or inspirational quotes to your list as Habits with no (+/-).",
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habiticas secret lore.",
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
"tip17": "Use the mobile apps to set reminders for your tasks.",
"tip18": "Habits that are just positive or just negative gradually “fade” and return to yellow.",
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
"tip20": "Boost your Perception Stat to get more drops and gold.",
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
"tip24": "Have a question? Ask in the Habitica Help Guild!",
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
"tip30": "You can invite people to Guilds, not just Parties.",
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
"tip32": "Lots of Habiticas code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
"tip34": "Occasionally re-evaluate your tasks to make sure theyre up-to-date!",
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tip #<%= tipNumber %>",
"tip1": "Check tasks on the go with the Habitica mobile apps.",
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
"tip3": "Use emoji to quickly differentiate between your tasks.",
"tip4": "Use the # sign before a task name to make it really big!",
"tip5": "Its best to use skills that cause buffs in the morning so they last longer.",
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
"tip10": "You can win gems by competing in Challenges. New ones are added every day!",
"tip11": "Having more than four Party members increases accountability!",
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
"tip14": "You can add headers or inspirational quotes to your list as Habits with no (+/-).",
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habiticas secret lore.",
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
"tip17": "Use the mobile apps to set reminders for your tasks.",
"tip18": "Habits that are just positive or just negative gradually “fade” and return to yellow.",
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
"tip20": "Boost your Perception Stat to get more drops and gold.",
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
"tip24": "Have a question? Ask in the Habitica Help Guild!",
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
"tip30": "You can invite people to Guilds, not just Parties.",
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
"tip32": "Lots of Habiticas code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
"tip34": "Occasionally re-evaluate your tasks to make sure theyre up-to-date!",
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Consell #<%= tipNumber %>",
"tip1": "Controla les teves tasques on vulguis amb les aplicacions mòbils de Habitica",
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
"tip3": "Use emoji to quickly differentiate between your tasks.",
"tip4": "Use the # sign before a task name to make it really big!",
"tip5": "Its best to use skills that cause buffs in the morning so they last longer.",
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
"tip10": "You can win gems by competing in Challenges. New ones are added every day!",
"tip11": "Having more than four Party members increases accountability!",
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
"tip14": "You can add headers or inspirational quotes to your list as Habits with no (+/-).",
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habiticas secret lore.",
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
"tip17": "Use the mobile apps to set reminders for your tasks.",
"tip18": "Habits that are just positive or just negative gradually “fade” and return to yellow.",
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
"tip20": "Boost your Perception Stat to get more drops and gold.",
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
"tip24": "Have a question? Ask in the Habitica Help Guild!",
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
"tip30": "You can invite people to Guilds, not just Parties.",
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
"tip32": "Lots of Habiticas code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
"tip34": "Occasionally re-evaluate your tasks to make sure theyre up-to-date!",
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tip #<%= tipNumber %>",
"tip1": "Kontroluj úkoly na cestách s mobilní aplikací Habitica.",
"tip2": "Klikni na jakékoliv vybavení pro náhled, nebo jej okamžitě vybav kliknutím na hvězdičku v jeho horním levém rohu!",
"tip3": "Používej emoji pro rychlé odlišení svých úkolů.",
"tip4": "Napiš # na začátek názvu úkolu a bude obrovský!",
"tip5": "Nejlepší je použít dovednosti, které dočasně zlepšují vlastnosti, hned ráno, aby vydržely déle.",
"tip6": "Přejeď ukazatelem přes úkol a klikni na tečky pro přístup k pokročilému nastavení úkolu, jako je například možnost posunout úkoly nahoru/dolu ve tvém seznamu.",
"tip7": "Některá pozadí na sebe perfektně navazují, když členové družiny používají stejné pozadí. Např.: Horské jezero, Pagody a Kopce.",
"tip8": "Pošli někomu zprávu pomocí kliknutí na jejich jméno v chatu, a poté kliknutím na ikonku obálky nahoře v jejich profilu!",
"tip9": "Používej filtry + vyhledávací lištu v inventáři, obchodech, cechách, a ve výzvách, aby jsi rychle našel to, co chceš.",
"tip10": "Soutěžením ve výzvách můžeš vyhrát drahokamy. Nové výzvy jsou přidávány každý den!",
"tip11": "S více než čtyřmi členy družiny zvyšuješ odpovědnost!",
"tip12": "Přidej seznam do tvého úkolníčku, aby jsi znásobil odměnu!",
"tip13": "Klikni na \"Tags\" (štítky) na tvé stránce s úkoly, aby jsi udělal nepřehledný seznam úkolů velmi zvládnutelný!",
"tip14": "Můžeš přidat hlavičku nebo inspirační citát do tvého seznamu jako zvyk bez žádných (+/-).",
"tip15": "Dokonči všechny linie výpravy Mistra třídy, aby jsi se dozvěděl více o tajemné tradici země Habitica.",
"tip16": "Klikni na \"Nástroj pro zobrazení dat\" v patičce, pro cenné informace o tvém progressu.",
"tip17": "Použij mobilní appku pro nastavení upomínek na tvé úkoly.",
"tip18": "Zvyky, které jsou jenom kladné nebo záporné, postupně \"blednou\" a vrátí se na žlutou.",
"tip19": "Posil vlastnost Inteligence, abys získal více zkušeností po dokončení úkolu.",
"tip20": "Posil vlastnost Vnímání, abys získal více předmětů a zlata.",
"tip21": "Posil vlastnost Síla, abys dal více poškození bossovi nebo udělal kritický zásah.",
"tip22": "Posil vlastnost Obrana, abys dostával menší poškození z nedokončených denních úkolů.",
"tip23": "Dosáhni úrovně 100, abys odemkl kouli znovuzrození zadarmo a začal nové dobrodružství!",
"tip24": "Máš otázku? Ptej se v cechu \"Habitica Help\".",
"tip25": "Čtyři sezóní Velké Slavnosti začínají blízko slunovratů a rovnodenností.",
"tip26": "Po družině, případně po dalších členech pro tvou družinu, se můžeš poohlédnout v cechu \"Party Wanted\"!",
"tip27": "Udělal jsi denní úkol včera, ale zapoměl jsi si ho odškrtnout? Nevěš hlavu! S Záznamem včerejších aktivit budeš mít šanci zaznamenat si co jsi udělal předtím, než začne nový den.",
"tip28": "Nastav si vlastní začátek dne v Nastavení > Stránka abys mohl kontrolovat, kdy se tvůj den restartuje.",
"tip29": "Udělej všechny své denní úkoly, abys získal zlepšení perfektního dne, které zvyšuje tvoje atributy!",
"tip30": "Můžeš pozvat lidi i do cechu, ne jen do družiny.",
"tip31": "Pro vzorové úkoly se podívej na předpřipravené seznamy v cechu s názvem Library of Tasks and Challenges.",
"tip32": "Spousta kódu, grafiky a textu v Habitice je tvořeno dobrovolníky! Pokud se k nim chceš přidat, mrkni se do cechu \"Aspiring Legends\".",
"tip33": "Podívej se do cechu \"The Bulletin Board\" pro novinky o ceších, výzvách a ostatních událostech vytvořených hráči, a ohlaš tam své vlastní!",
"tip34": "Občas přehodnoť své úkoly a ujisti se, že jsou aktuální!",
"tip35": "Uživatelé, kteří spadají pod \"Group plan\", získávají schopnost přidělovat úkoly ostatním členům družiny pro zvýšenou možnost řízení a odpovědnost."
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tip #<%= tipNumber %>",
"tip1": "Check opgaver af på farten med Habiticas mobile apps.",
"tip2": "Klik på ethvert stykke Udstyr for at se en forhåndsvisning, eller tag det på med det samme ved at klikke på stjernen i dets øverste venstre hjørne!",
"tip3": "Brug emoji for hurtigt at kunne se forskel på dine opgaver.",
"tip4": "Brug #-tegnet før en opgaves titel for at gøre den kæmpestor!",
"tip5": "Det er bedre at bruge evner, der giver boosts om morgenen, så de varer længere.",
"tip6": "Hold musen over en opgave og klik på prikkerne for at åbne de avancerede indstillinger, såsom muligheden for at skubbe opgaver til toppen/bunden af listen.",
"tip7": "Nogle baggrunde hænger perfekt sammen, hvis Holdmedlemmer bruger den samme baggrund. Fx Bjergsø, Pagode, og Bølgende bakker.",
"tip8": "Send en Besked til nogen ved at klikke på deres navn i chatten, og derefter konvolutikonet øverst i deres profil!",
"tip9": "Brug filtrene + søgefunktionen i Inventarerne, Butikkerne, Klaner og Udfordringer for hurtigt at finde det, du søger.",
"tip10": "Du kan vinde ædelsten ved at deltage i Udfordringer. Der bliver tilføjet nye hver dag!",
"tip11": "At have mere end fire Holdmedlemmer forstærker følelsen af ansvar!",
"tip12": "Tilføj checklister til dine To-Dos for at få større belønninger!",
"tip13": "Klik på \"Tags\" på din Opgave-side for at få en uhåndterlig liste til at se mindre overvældende ud!",
"tip14": "Du kan tilføje titler eller inspirerende citater til din liste som Vaner med ingen (+/-).",
"tip15": "Fuldfør alle quests i Mesterklasse-serien for at opdage Habiticas hemmelige historie.",
"tip16": "Klik på linket til Data Display Tool i bunden af siden for at få nyttige oplysninger om dine fremskridt.",
"tip17": "Brug de mobile apps for at få påmindelser om dine opgaver.",
"tip18": "Vaner, der kun er positive eller negative, vil gradvist \"falme\" og blive gule igen.",
"tip19": "Boost din Intelligens for at få mere Erfaring, når du fuldfører en opgave.",
"tip20": "Forøg din Opfattelse for at få flere drops og mere guld.",
"tip21": "Forøg din Styrke for at gøre mere skade på bosser eller få fuldtræffere ind.",
"tip22": "Forøg din Konstitution for at mindske skaden fra ufuldførte Daglige.",
"tip23": "Nå niveau 100 for at låse op for Genfødselskuglen og starte et nyt eventyr gratis!",
"tip24": "Har du et spørgsmål? Stil det i Klanen 'Habitica Help'!",
"tip25": "De fire årlige Grandiøse Gallaer starter tæt ved solhverv og jævndøgn.",
"tip26": "Du kan lede efter et Hold eller finde Holdmedlemmer i Klanen 'Party Wanted'!",
"tip27": "Klarede du egentlig en Daglig opgave i går, men glemte at sætte hak ved den? Ingen grund til bekymring! Med 'Indberet gårsdagens aktivitet' får du chancen for at markere det, du gjorde i går, før du starter din nye dag.",
"tip28": "Vælg et Brugerdefineret starttidspunkt under Brugerikon > Indstillinger, for at vælge, hvornår din dag skal begynde igen.",
"tip29": "Fuldfør alle dine Daglige opgaver for at få boostet 'Perfekt dag', som styrker dine Egenskaber!",
"tip30": "Du kan invitere folk til Klaner, ikke kun Hold.",
"tip31": "For at se opgave-eksempler, kan du tage et kik på de færdiglavede lister i Klanen 'Library of Tasks and Challenges'.",
"tip32": "En stor del af Habiticas kodning, kunst og historier er lavet af frivillige! Besøg Klanen 'Aspiring Legends' for at hjælpe til.",
"tip33": "Kig i Klanen 'The Bulletin Board' for at se nyheder om Klaner, Udfordringer og andre brugerskabte events - og bekendtgør dine egne der, også!",
"tip34": "Tag tid til at genoverveje dine opgaver en gang imellem for at sikre dig, at de er opdaterede!",
"tip35": "Bruger, der er medlemmer af en Gruppeplan, kan tildele opgaver til andre medlemmer i deres Gruppe - ekstra styr på opgaverne og mere ansvar!"
}

View File

@@ -41,11 +41,11 @@
"achievementPearlyProText": "Hat alle weißen Reittiere gezähmt.",
"achievementPearlyPro": "Perlweiß-Profi",
"achievementPrimedForPainting": "Grundierung gemalt",
"achievementCreatedTask": "Erstelle eine Aufgabe",
"onboardingCompleteDesc": "Du hast durch das Abschließen der Liste <strong>5 Erfolge</strong> freigeschaltet und <strong class=\"gold-amount\">100</strong> Goldstücke verdient.",
"achievementCreatedTask": "Erstelle Deine erste Aufgabe",
"onboardingCompleteDesc": "Du hast durch das Abschließen der Liste <strong>5 Erfolge</strong> freigeschaltet und <strong class=\"gold-amount\">100 Goldstücke</strong> verdient.",
"earnedAchievement": "Du hast einen Erfolg freigeschaltet!",
"achievementPurchasedEquipmentModalText": "Durch Ausrüstung kann Dein Avatar personalisiert und die Attributswerte erhöht werden",
"achievementPurchasedEquipment": "Erwerbe Ausrüstung",
"achievementPurchasedEquipment": "Erwerbe einen Ausrüstungsgegenstand",
"achievementFedPetModalText": "Es gibt viele verschiedene Arten an Futter, aber Haustiere können wählerisch sein",
"achievementFedPet": "Füttere ein Haustier",
"achievementHatchedPet": "Lass ein Haustier schlüpfen",
@@ -54,7 +54,7 @@
"viewAchievements": "Erfolge ansehen",
"letsGetStarted": "Los geht's!",
"onboardingProgress": "<%= percentage %>% Fortschritt",
"gettingStartedDesc": "Erstelle eine Aufgabe, schließe sie ab und prüfe dann Deine Belohnungen. Du schaltest <strong>5 Erfolge</strong> frei und erhältst <strong class=\"gold-amount\">100 Goldstücke</strong>, sobald Du fertig bist!",
"gettingStartedDesc": "Erledige diese Einstiegsaufgaben und Du wirst <strong>5 Erfolge</strong> freischalten und <strong class=\"gold-amount\">100 Goldstücke</strong> erhalten, sobald Du fertig bist!",
"achievementCreatedTaskModalText": "Füge eine Aufgabe hinzu, für etwas, das Du diese Woche erreichen willst",
"achievementPurchasedEquipmentText": "Hat den ersten Rüstungsgegenstand gekauft.",
"achievementFedPetText": "Hat das erste Haustier gefüttert.",
@@ -75,5 +75,8 @@
"foundNewItemsExplanation": "Durch das Abschließen von Aufgaben erhältst Du die Chance, Gegenstände wie etwa Eier, Schlüpfelixiere und Futter zu finden.",
"achievementBugBonanza": "Kostbarer Käfer",
"achievementBugBonanzaModalText": "Du hast die Käfer-, Schmetterling-, Schnecken- und Spinnenhaustier-Quests erfüllt!",
"achievementBugBonanzaText": "Hat die Käfer-, Schmetterling-, Schnecken- und Spinnenhaustier-Quests erfüllt."
"achievementBugBonanzaText": "Hat die Käfer-, Schmetterling-, Schnecken- und Spinnenhaustier-Quests erfüllt.",
"onboardingCompleteDescSmall": "Falls Du noch mehr willst, sieh Dir Deine Erfolge an und beginne zu sammeln!",
"onboardingComplete": "Du hast Deine Einstiegsaufgaben erledigt!",
"yourProgress": "Dein Fortschritt"
}

View File

@@ -516,8 +516,8 @@
"backgrounds032020": "Set 70: Veröffentlicht im März 2020",
"backgroundRainyBarnyardNotes": "Mach einen durchnässten, spritzigen Spaziergang auf einem regnerischen Scheunenhof.",
"backgroundRainyBarnyardText": "Regnerischer Scheunenhof",
"backgroundHeatherFieldNotes": "Genieße den Duft einess Feldes voller Heidenkraut.",
"backgroundHeatherFieldText": "Heidenkrautfeld",
"backgroundHeatherFieldNotes": "Genieße den Duft eines Feldes voller Heidekraut.",
"backgroundHeatherFieldText": "Heidekrautfeld",
"backgroundAnimalCloudsNotes": "Trainiere Deine Vorstellungskraft, indem du Tierformen in den Wolken suchst.",
"backgroundAnimalCloudsText": "Tierwolken",
"backgrounds042020": "Set 71: Veröffentlicht im April 2020"

View File

@@ -25,9 +25,9 @@
"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?",
"iosFaqAnswer6": "Jedes Mal wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei, ein Schlüpfelixier oder Futter zu erhalten. Diese werden unter Inventar > Marktplatz gespeichert. \n\nUm ein Haustier auszubrüten benötigst Du ein Ei und ein Schlüpfelixier. Klicke auf das Ei, um die Spezies auszuwählen, welche Du schlüpfen lassen möchtest, und klicke anschließend auf das Schlüpfelixier, um die Farbe zu bestimmen! Um Deinem Avatar ein Haustier hinzuzufügen, gehe zu Inventar > Haustiere und klicke auf das gewünschte Tier.\n\nDu kannst Deine Haustiere unter Inventar > Haustiere auch füttern, sodass sie zu Reittieren heranwachsen. Klicke auf ein Haustier und wähle dann \"Haustier füttern\"! Damit es zu einem Reittier heranwächst, musst Du Dein Haustier mehrmals füttern, wenn Du jedoch sein bevorzugtes Futter herausfindest, wächst es schneller. Dies kannst Du entweder durch ausprobieren selbst herausfinden oder [im Wiki nachschauen - Vorsicht: Spoiler!](https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter). Wenn Du ein Reittier erhalten hast, gehe zu Inventar > Reittiere und klicke das Tier an, um es Deinem Avatar hinzuzufügen.\n\nDu kannst auch Eier für Quest-Haustiere erhalten, indem Du bestimmte Quests abschließt. (Siehe weiter unten, um mehr über Quests zu erfahren.)",
"androidFaqAnswer6": "Jedes Mal wenn Du eine Aufgabe erledigst, hast Du eine Chance, zufällig ein Ei, ein Schlüpfelixier oder Futter zu erhalten. Diese werden unter Inventar > Marktplatz gespeichert. \n\nUm ein Haustier auszubrüten benötigst Du ein Ei und ein Schlüpfelixier. Klicke auf das Ei, um die Spezies auszuwählen, welche Du schlüpfen lassen möchtest, und klicke anschließend auf das Schlüpfelixier, um die Farbe zu bestimmen! Um es Deinem Avatar hinzuzufügen, gehe zu Inventar > Haustiere und klicke auf das gewünschte Tier.\n\nDu kannst Deine Haustiere unter Inventar > Haustiere auch füttern, sodass sie zu Reittieren heranwachsen. Tippe auf ein Haustier und dann auf \"Haustier füttern\", um es zu füttern! Damit es zu einem Reittier heranwächst, musst Du Dein Haustier mehrmals füttern, wenn Du jedoch sein bevorzugtes Futter herausfindest, wächst es schneller. Dies kannst Du entweder durch ausprobieren selbst herausfinden oder [im Wiki nachschauen - Vorsicht: Spoiler!](https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter). Wenn Du ein Reittier erhalten hast, gehe zu Inventar > Reittiere und klicke das Tier an, um es Deinem Avatar hinzuzufügen.\n\nDu kannst auch Eier für Quest-Haustiere erhalten, indem Du bestimmte Quests abschließt. (Siehe weiter unten, um mehr über Quests zu erfahren.)",
"webFaqAnswer6": "Jedes Mal wenn Du eine Aufgabe erledigst, hast Du eine Chance, zufällig ein Ei, ein Schlüpfelixier oder Futter zu erhalten. Diese werden unter Inventar > Marktplatz gespeichert. Um ein Haustier auszubrüten benötigst Du ein Ei und ein Schlüpfelixier. Wenn Du beides hast, gehe zu Inventar > Haustiere um Dein Haustier mit einem Klick auf sein schlüpfen zu lassen. Um ein geschlüpftes Haustier Deinem Avatar hinzuzufügen, klicke auf das gewünschte Tier. Du kannst Deine Haustiere unter Inventar > Haustiere auch füttern, sodass sie zu Reittieren heranwachsen. Ziehe dazu Futter aus dem Aktionsbalken am unteren Bildschirmrand auf ein Haustier. Damit es zu einem Reittier heranwächst, musst Du Dein Haustier mehrmals füttern. Wenn Du jedoch sein bevorzugtes Futter herausfindest, wächst es schneller. Dies kannst Du entweder durch ausprobieren selbst herausfinden oder [im Wiki nachschauen - Vorsicht: Spoiler!](https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter). Wenn Du ein Reittier erhalten hast, klicke das Tier an, um es Deinem Avatar hinzuzufügen. Du kannst auch Eier für Quest-Haustiere erhalten, indem Du bestimmte Quests abschließt. (Siehe weiter unten, um mehr über Quests zu erfahren.)",
"iosFaqAnswer6": "Jedes Mal, wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei, ein Schlüpfelixier oder Futter zu erhalten. Diese werden unter Inventar > Marktplatz gespeichert. \n\nUm ein Haustier auszubrüten, benötigst Du ein Ei und ein Schlüpfelixier. Klicke auf das Ei, um die Spezies auszuwählen, welche Du schlüpfen lassen möchtest, und klicke anschließend auf das Schlüpfelixier, um die Farbe zu bestimmen! Um Deinem Avatar ein Haustier hinzuzufügen, gehe zu Inventar > Haustiere und klicke auf das gewünschte Tier.\n\nDu kannst Deine Haustiere unter Inventar > Haustiere auch füttern, sodass sie zu Reittieren heranwachsen. Klicke auf ein Haustier und wähle dann \"Haustier füttern\"! Damit es zu einem Reittier heranwächst, musst Du Dein Haustier mehrmals füttern, wenn Du jedoch sein bevorzugtes Futter herausfindest, wächst es schneller. Dies kannst Du entweder durch ausprobieren selbst herausfinden oder [im Wiki nachschauen - Vorsicht: Spoiler!](https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter). Wenn Du ein Reittier erhalten hast, gehe zu Inventar > Reittiere und klicke das Tier an, um es Deinem Avatar hinzuzufügen.\n\nDu kannst auch Eier für Quest-Haustiere erhalten, indem Du bestimmte Quests abschließt. (Siehe weiter unten, um mehr über Quests zu erfahren.)",
"androidFaqAnswer6": "Jedes Mal, wenn Du eine Aufgabe erledigst, hast Du eine Chance, zufällig ein Ei, ein Schlüpfelixier oder Futter zu erhalten. Diese werden unter Inventar > Marktplatz gespeichert. \n\nUm ein Haustier auszubrüten, benötigst Du ein Ei und ein Schlüpfelixier. Klicke auf das Ei, um die Spezies auszuwählen, welche Du schlüpfen lassen möchtest, und klicke anschließend auf das Schlüpfelixier, um die Farbe zu bestimmen! Um es Deinem Avatar hinzuzufügen, gehe zu Inventar > Haustiere und klicke auf das gewünschte Tier.\n\nDu kannst Deine Haustiere unter Inventar > Haustiere auch füttern, sodass sie zu Reittieren heranwachsen. Tippe auf ein Haustier und dann auf \"Haustier füttern\", um es zu füttern! Damit es zu einem Reittier heranwächst, musst Du Dein Haustier mehrmals füttern, wenn Du jedoch sein bevorzugtes Futter herausfindest, wächst es schneller. Dies kannst Du entweder durch ausprobieren selbst herausfinden oder [im Wiki nachschauen - Vorsicht: Spoiler!](https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter). Wenn Du ein Reittier erhalten hast, gehe zu Inventar > Reittiere und klicke das Tier an, um es Deinem Avatar hinzuzufügen.\n\nDu kannst auch Eier für Quest-Haustiere erhalten, indem Du bestimmte Quests abschließt. (Siehe weiter unten, um mehr über Quests zu erfahren.)",
"webFaqAnswer6": "Jedes Mal, wenn Du eine Aufgabe erledigst, hast Du eine Chance, zufällig ein Ei, ein Schlüpfelixier oder Futter zu erhalten. Diese werden unter Inventar > Marktplatz gespeichert. Um ein Haustier auszubrüten, benötigst Du ein Ei und ein Schlüpfelixier. Wenn Du beides hast, gehe zu Inventar > Haustiere um Dein Haustier mit einem Klick auf sein Bild schlüpfen zu lassen. Um ein geschlüpftes Haustier Deinem Avatar hinzuzufügen, klicke auf das gewünschte Tier. Du kannst Deine Haustiere unter Inventar > Haustiere auch füttern, sodass sie zu Reittieren heranwachsen. Ziehe dazu Futter aus dem Aktionsbalken am unteren Bildschirmrand auf ein Haustier. Damit es zu einem Reittier heranwächst, musst Du Dein Haustier mehrmals füttern. Wenn Du jedoch sein bevorzugtes Futter herausfindest, wächst es schneller. Dies kannst Du entweder durch ausprobieren selbst herausfinden oder [im Wiki nachschauen - Vorsicht: Spoiler!](https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter). Wenn Du ein Reittier erhalten hast, klicke das Tier an, um es Deinem Avatar hinzuzufügen. Du kannst auch Eier für Quest-Haustiere erhalten, indem Du bestimmte Quests abschließt. (Siehe weiter unten, um mehr über Quests zu erfahren.)",
"faqQuestion7": "Wie werde ich ein Krieger, Magier, Schurke oder Heiler?",
"iosFaqAnswer7": "Wenn Du Level 10 erreichst, kannst Du wählen, ob Du Krieger, Magier, Schurke oder Heiler werden möchtest. (Alle Spieler beginnen standardmäßig als Krieger.) Jede Klasse hat unterschiedliche Ausrüstungsoptionen, unterschiedliche Fähigkeiten, die sie ab Level 11 verwenden können, und unterschiedliche Vorteile. Krieger fügen Bossen leicht Schaden zu, halten mehr Schaden von ihren Aufgaben aus und helfen ihrer Party widerstandsfähiger zu werden. Magier schaden Bossen ebenfalls leicht, steigen schnell Level auf und können Mana für ihre Party wiederherstellen. Schurken erhalten das meiste Geld, finden die meiste Beute und können ihrer Party helfen, dies ebenfalls zu tun. Zum Schluss können Heiler sich selbst und ihre Party heilen. \n\nWenn Du nicht direkt eine Klasse auswählen möchtest -- zum Beispiel, wenn Du gerade dabei bist die gesamte Ausrüstung für Deine aktuelle Klasse zu kaufen -- kannst Du \"Später auswählen\" klicken und die Klasse unter Benutzer > Werte später auswählen.",
"androidFaqAnswer7": "Wenn Du Level 10 erreichst, kannst Du wählen, ob Du Krieger, Magier, Schurke oder Heiler werden möchtest. (Alle Spieler beginnen standardmäßig als Krieger.) Jede Klasse hat unterschiedliche Ausrüstungsoptionen, unterschiedliche Fähigkeiten, die sie ab Level 11 verwenden können, und unterschiedliche Vorteile. Krieger fügen Bossen leichter Schaden zu, halten mehr Schaden von ihren Aufgaben aus und helfen ihrer Party widerstandsfähiger zu werden. Magier schaden Bossen ebenfalls leichter, steigen schnell Level auf und können Mana für ihre Party wieder auffüllen. Schurken erhalten das meiste Gold, finden die meiste Beute und können ihrer Party helfen, dies ebenfalls zu tun. Heiler können sich selbst und ihre Party heilen. \n\nWenn Du nicht sofort eine Klasse auswählen möchtest -- zum Beispiel, wenn Du gerade dabei bist die gesamte Ausrüstung für Deine aktuelle Klasse zu kaufen -- kannst Du \"Später entscheiden\" klicken und die Klasse unter Menü > Klasse wählen später auswählen.",

View File

@@ -2056,7 +2056,7 @@
"backMystery202004Text": "Mächtige Monarchfalterflügel",
"shieldSpecialSpring2020HealerText": "Duftschild",
"shieldSpecialSpring2020WarriorText": "Irisierender Schild",
"headSpecialSpring2020HealerText": "Iris-Fascinator",
"headSpecialSpring2020HealerText": "Iris-Faszinator",
"headSpecialSpring2020WarriorText": "Käferhelm",
"headSpecialSpring2020RogueText": "Lapislazuli Kabuto-Helm",
"armorSpecialSpring2020HealerText": "Beschützendes Blütenblatt",
@@ -2067,22 +2067,27 @@
"armorSpecialSpring2020RogueText": "Ultramarinblaue Rüstung",
"weaponSpecialSpring2020HealerNotes": "Eine Iris ist schön, aber ihre Blätter sind scharf wie Schwerter... lass Dich nicht von den Blumen in die Irre führen, dieser Stab ist hart wie Stahl! Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"weaponSpecialSpring2020HealerText": "Schwertlilienstab",
"weaponSpecialSpring2020MageNotes": "Sie fallen Dir unaufhörlich auf den Kopf! Aber Du wirst sie nie aufhalten, indem Du Dich beklagst. Erhöht Intelligenz um <%= int %> und Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"weaponSpecialSpring2020MageNotes": "Sie fallen Dir unaufhörlich auf den Kopf! Aber Du wirst sie nie durch jammern aufhalten. Erhöht Intelligenz um <%= int %> und Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"weaponSpecialSpring2020MageText": "Regentropfen",
"weaponSpecialSpring2020WarriorNotes": "Kämpfen oder Fliehen, dieser Flügel wird Dir einen guten Dienst erweisen! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"weaponSpecialSpring2020WarriorNotes": "Kämpfen oder Fliehen, dieser Flügel wird Dir gute Dienste erweisen! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"weaponSpecialSpring2020WarriorText": "Geschliffener Flügel",
"weaponSpecialSpring2020RogueNotes": "Du wirst so schnell zuschlagen, dass sie NOCH blauer aussehen wird! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"weaponSpecialSpring2020RogueText": "Lapislazuli Klinge",
"weaponSpecialSpring2020RogueText": "Lapislazuli-Klinge",
"armorArmoireBoxArmorNotes": "Schachtelrüstung: Es passt, also sitzt Du… äh, also ziehst Du damit in die Schlacht, als stolzer Ritter, der Du bist! Erhöht Wahrnehmung und Ausdauer um je <%= attrs %>. Verzauberter Schrank: Papierritter-Set (Gegenstand 3 von 3). ",
"armorArmoireBoxArmorText": "Schachtelrüstung",
"armorSpecialSpring2020HealerNotes": "Wickle Dich in weiche Blätter und Blüten der Iris um Feinde zu verleiten, Deine heilenden Kräfte zu unterschätzen. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"armorSpecialSpring2020MageNotes": "Wenn auch Du einer Regenwasserpfütze nicht widerstehen kannst, ist diese Rüstung wie gemacht für Dich! Verwandle einen kindischen Impuls in eine Vorführung eines mystischen Kunstwerks. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"weaponArmoirePaperCutterNotes": "Das mag nicht furchteinflössend aussehen, aber hast Du schon mal einen Papierschnitt gehabt? Erhöht Stärke um <%= str %>. Verzauberter Schrank: Papierritter-Set (Gegenstand 1 von 3).",
"weaponArmoirePaperCutterNotes": "Das mag nicht furchteinflößend aussehen, aber hast Du schon mal einen Papierschnitt gehabt? Erhöht Stärke um <%= str %>. Verzauberter Schrank: Papierritter-Set (Gegenstand 1 von 3).",
"weaponArmoirePaperCutterText": "Papiermesser",
"shieldArmoireHobbyHorseText": "Steckenpferd",
"headSpecialSpring2020HealerNotes": "Fessle Deine Feinde mit diesem Kopfschmuck aus Blumen! Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"headSpecialSpring2020MageNotes": "Ist der Himmel klar? Die Luftfeuchtigkeit niedrig? Keine Sorge, wir haben uns drum gekümmert. Versprühe Deine Magie, ohne Deine Stimmung zu trüben! Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"headSpecialSpring2020MageText": "Tropfkantenhut",
"headSpecialSpring2020WarriorNotes": "Die Schläge Deiner Gegener werden von diesem durch Käfer inspirierten Helm abprallen! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"headSpecialSpring2020RogueNotes": "So knallig und kostbar, dass Du in Versuchung kommen wirst, ihn von Deinem eigenen Kopf zu stehlen. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung."
"headSpecialSpring2020RogueNotes": "So knallig und kostbar, dass Du in Versuchung kommen wirst, ihn von Deinem eigenen Kopf zu stehlen. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"headAccessoryMystery202004Notes": "Sie zucken leicht sobald süßer Blumenduft vorbeizieht mit Ihnen findest Du immer einen hübschen Garten! Gewährt keinen Attributbonus. Abonnentengegenstand, April 2020.",
"backMystery202004Notes": "Flattere mal kurz zur nächsten Blumenwiese oder ziehe über den ganzen Kontinent mit diesen wunderschönen Flügeln! Gewährt keinen Attributbonus. Abonentengegenstand, April 2020.",
"shieldArmoireHobbyHorseNotes": "Reite auf Deinem stattlichen Steckenpferd zu Deinen verdienten Belohnungen! Erhöht Wahrnehmung und Ausdauer um je <%= attrs %>. Verzauberter Schrank: Papierritter-Set (Gegenstand 2 von 3).",
"shieldSpecialSpring2020HealerNotes": "Wehre die muffigen, alten To-Dos mit dem süßen Duft dieses Schilds ab. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2020 Frühlingsausrüstung.",
"shieldSpecialSpring2020WarriorNotes": "Lass Dich nicht von den sanften Farben täuschen. Dieser Schild hält Dir den Rücken frei! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2020 Frühlingsausrüstung."
}

View File

@@ -284,7 +284,7 @@
"dismissAll": "Alle entfernen",
"messages": "Nachrichten",
"emptyMessagesLine1": "Du hast im Moment keine Nachrichten",
"emptyMessagesLine2": "Du kannst anderen eine neue Nachricht schicken, indem Du ihr Profil aufrufst und auf den \"Nachrichten\" Knopf drückst.",
"emptyMessagesLine2": "Du kannst anderen eine neue Nachricht schicken, indem Du ihr Profil aufrufst und auf den \"Nachrichten\"-Knopf drückst.",
"userSentMessage": "<span class=\"notification-bold\"><%= user %></span> hat Dir eine Nachricht gesendet",
"letsgo": "Auf geht's!",
"selected": "Ausgewählt",

View File

@@ -416,7 +416,7 @@
"startYourOwnPartyTitle": "Starte Deine eigene Party",
"startYourOwnPartyDescription": "Bezwinge Monster allein oder lade so viele Deiner Freunde ein, wie Du möchtest!",
"wantToJoinPartyTitle": "Möchtest Du einer Party beitreten?",
"wantToJoinPartyDescription": "Gib Deinen Benutzernamen einem Freund an, der bereits in einer Party ist, oder gehe zur <a href='/groups/guild/f2db2a7f-13c5-454d-b3ee-ea1f5089e601'>Gilde \"Party wanted\"</a>, um potenzielle Verbündete zu finden!",
"wantToJoinPartyDescription": "Gib Deinen Benutzernamen einem Freund, der bereits in einer Party ist, oder gehe zur <a href='/groups/guild/f2db2a7f-13c5-454d-b3ee-ea1f5089e601'>Party Wanted Guild</a>, um potenzielle Verbündete zu finden!",
"copy": "Kopieren",
"inviteToPartyOrQuest": "Party zur Quest einladen",
"inviteInformation": "Indem Du auf \"Einladen\" klickst, sendest Du eine Einladung an Deine Partymitglieder. Sobald alle Mitglieder diese angenommen oder abgelehnt haben, beginnt die Quest.",

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tipp #<%= tipNumber %>",
"tip1": "Erledige Deine Aufgaben unterwegs mit den mobilen Habitica-Apps.",
"tip2": "Klicke auf eine Ausrüstung, um eine Vorschau zu sehen, oder rüste sie sogleich aus, indem Du auf den Stern in der linken oberen Ecke klickst!",
"tip3": "Benutze Emojis, um Deine Aufgaben rasch unterscheiden zu können.",
"tip4": "Setze ein #-Zeichen an den Anfang des Namens einer Aufgabe, um sie richtig groß zu machen!",
"tip5": "Am besten wendest Du verstärkende Fähigkeiten am Morgen an, damit sie länger wirken.",
"tip6": "Bewege den Mauszeiger über eine Aufgabe und klicke auf die Punkte für weitere Optionen, wie z.B. die Aufgabe an den Anfang oder das Ende der Liste zu setzen.",
"tip7": "Einige Hintergründe verbinden sich perfekt, wenn sie von allen Gruppenmitglieder verwendet werden, wie z. B. Bergsee, Pagoden und Hügellandschaft.",
"tip8": "Sende jemandem eine Nachricht, indem Du auf dessen Namen im Chat und dann auf das Umschlagsymbol oben im Profil klickst!",
"tip9": "Mit den Filtern und der Suchleiste findest Du schnell, was Du suchst, sei es im Inventar, den Märkten, Gilden oder Herausforderungen.",
"tip10": "Du kannst Edelsteine gewinnen, indem Du an Herausforderungen teilnimmst. Es werden jeden Tag neue ausgeschrieben!",
"tip11": "Mehr als vier Mitglieder in der Party zu haben erhöht das Verantwortungsbewusstsein!",
"tip12": "Füge Checklisten zu Deinen To-Dos hinzu, um Deine Belohnungen zu vervielfachen!",
"tip13": "Klicke \"Tags\" auf Deiner Aufgaben-Seite an, um eine unüberschaubare Aufgabenliste übersichtlich zu machen!",
"tip14": "Du kannst ein inspirierendes Zitat oder eine Überschriftt in Deine Gewohnheitenliste einfügen, indem Du eine Gewohnheit ohne (+/-) erstellst.",
"tip15": "Beende alle Klassenmeister-Questreihen, um etwas über Habiticas geheime Sage zu erfahren.",
"tip16": "Klicke auf den Link zum Werkzeug für Datenanzeigen in der Fußleiste für wertvolle Einsichten in Deine Fortschritte.",
"tip17": "Verwende die App, um Erinnerungen für Deine Aufgaben zu erstellen.",
"tip18": "Gewohnheiten, die nur positiv oder nur negativ sind, werden mit der Zeit wieder gelb.",
"tip19": "Erhöhe den Attributswert von Intelligenz, um mehr Erfahrung beim Abhaken einer Aufgabe zu erhalten.",
"tip20": "Erhöhe Deinen Wahrnehmungswert, um mehr Beute und Gold zu finden.",
"tip21": "Erhöhe Deinen Stärkewert, um mehr Schaden anzurichten oder kritische Treffer zu landen.",
"tip22": "Erhöhe Deinen Ausdauerwert, um weniger Schaden durch unvollständige Tagesaufgaben zu erleiden.",
"tip23": "Erreiche Level 100, um die Sphäre der Wiedergeburt kostenlos zu erhalten und ein neues Abenteuer zu beginnen!",
"tip24": "Du hast eine Frage? Stelle sie in der Habitica Help Gilde!",
"tip25": "Die vier großen Galas der Jahreszeiten starten um die Sonnenwenden und Tagundnachtgleichen.",
"tip26": "Du kannst Dich nach einer Party umsehen oder Partymitglieder in der \"Party Wanted\"-Gilde finden!",
"tip27": "Du hast gestern eine Tagesaufgabe abgeschlossen, aber vergessen, sie abzuhaken? Mach Dir keine Sorgen! Mit der Funktion \"Gestrige Aktivität aufzeichnen\" hast Du die Chance, einzutragen, was Du erledigt hast, bevor Du einen neuen Tag startest.",
"tip28": "Setze Deinen Tageswechsel unter Benutzer-Icon > Einstellungen individuell fest, um selbst zu bestimmen, wann Dein Tag beginnt.",
"tip29": "Erledige alle Deine Tagesaufgaben und Du erhältst einen \"Perfekter Tag\"-Bonus, der Deine Attribute erhöht!",
"tip30": "Du kannst Leute auch in Gilden einladen, nicht nur in Deine Party.",
"tip31": "Schau Dir die vorgefertigten Listen in der \"Library of Tasks and Challenges\" Gilde an, um Beispiele für Aufgaben zu sehen.",
"tip32": "Große Teile von Habiticas Code, Illustrationen und Text stammen von Freiwilligen! Melde Dich in der Aspiring Legends Gilde, wenn Du mithelfen willst.",
"tip33": "Besuche die The Bulletin Board Gilde für Neuigkeiten über Gilden, Herausforderungen und andere Ereignisse von Spielern - und veröffentliche dort Deine eigenen!",
"tip34": "Überpüfe Deine Aufgaben ab und zu darauf, ob sie noch aktuell sind!",
"tip35": "Benutzer, die Teil eines Team-Plans sind, können Aufgaben für ein besseres Aufgaben-Management und zur Stärkung des Verantwortungsbewusstseins anderen Benutzern im Team zuweisen."
}

View File

@@ -16,7 +16,7 @@
"randomize": "Zufällig anordnen",
"mattBoch": "Matt Boch",
"mattShall": "Soll ich Dir Dein Ross bringen, <%= name %>? Sobald Du einem Haustier so viel Futter gegeben hast, dass es zu einem Reittier werden konnte, wird es hier erscheinen. Klicke auf ein Reittier um aufzusteigen!",
"mattBochText1": "Willkommen im Stall! Ich bin Matt, der Bestienmeister. Jedes Mal wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei oder ein Schlüpfelixier zu erhalten, mit deren Hilfe Haustiere ausgebrütet werden können. Wenn Du ein Haustier schlüpfen lässt, wird es hier erscheinen! Klicke auf ein Haustier, um es Deinem Avatar hinzuzufügen. Füttere Deine Tiere mit dem Futter, das Du findest, damit sie zu mächtigen Reittieren heranwachsen.",
"mattBochText1": "Willkommen im Stall! Ich bin Matt, der Bestienmeister. Jedes Mal, wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei oder ein Schlüpfelixier zu erhalten, mit deren Hilfe Haustiere ausgebrütet werden können. Wenn Du ein Haustier schlüpfen lässt, wird es hier erscheinen! Klicke auf ein Haustier, um es Deinem Avatar hinzuzufügen. Füttere Deine Tiere mit dem Futter, das Du findest, damit sie zu mächtigen Reittieren heranwachsen.",
"welcomeToTavern": "Willkommen in der Taverne!",
"sleepDescription": "Brauchst Du eine Pause? Checke in Daniels Gasthaus ein, um ein paar der kniffligeren Habitica-Spielmechanismen zu unterbrechen:",
"sleepBullet1": "Verpasste Tagesaufgaben werden Dir nicht schaden",
@@ -138,9 +138,9 @@
"tourPartyPage": "Deine Gruppe wird Dir dabei helfen weiterhin verantwortungsbewusst Deine Aufgaben zu erledigen. Lade Freunde ein um neue Quest-Schriftrollen freizuschalten!",
"tourGuildsPage": "Gilden sind Chatgruppen mit einem gemeinsamen Interesse. Sie sind von Spielern für Spieler erstellt worden. Durchforste die Liste und tritt den Gilden bei, die Dich interessieren. Schau Dir auch einmal die Habitica Help: Ask a Question Gilde an, in der jeder Fragen über Habitica stellen kann!",
"tourChallengesPage": "Herausforderungen sind themenbezogene Aufgabenlisten, welche von Benutzern erstellt wurden! Wenn Du an einer Herausforderung teilnimmst, werden die Aufgaben Deinem Konto hinzugefügt. Trete gegen andere Benutzer an, um Edelsteine zu gewinnen!",
"tourMarketPage": "Jedes Mal wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei, ein Schlüpfelixier oder Futter zu erhalten. Du kannst diese Gegenstände auch hier kaufen.",
"tourMarketPage": "Jedes Mal, wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei, ein Schlüpfelixier oder Futter zu erhalten. Du kannst diese Gegenstände auch hier kaufen.",
"tourHallPage": "Willkommen in der Halle der Helden, in der Mitwirkende an Habitica geehrt werden. Durch Code, Design, Musik, Text oder einfach durch Hilfsbereitschaft, haben sie Edelsteine, exklusive Ausrüstungen und angesehene Titel verdient. Auch Du kannst bei Habitica mitwirken!",
"tourPetsPage": "Wilkommen im Stall! Jedes Mal wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei oder ein Schlüpfelixier zu erhalten, mit deren Hilfe Haustiere ausgebrütet werden können. Wenn Du ein Haustier schlüpfen lässt, erscheint es hier im Stall! Klicke auf das Bild eines Haustiers, um es Deinem Avatar hinzuzufügen. Füttere sie mit dem Futter, das Du findest, und sie werden zu mächtigen Reittieren heranwachsen.",
"tourPetsPage": "Willkommen im Stall! Jedes Mal, wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei oder ein Schlüpfelixier zu erhalten, mit deren Hilfe Haustiere ausgebrütet werden können. Wenn Du ein Haustier schlüpfen lässt, erscheint es hier im Stall! Klicke auf das Bild eines Haustiers, um es Deinem Avatar hinzuzufügen. Füttere sie mit dem Futter, das Du findest, und sie werden zu mächtigen Reittieren heranwachsen.",
"tourMountsPage": "Sobald Du einem Haustier so viel Futter gegeben hast, dass es zu einem Reittier werden konnte, wird es hier erscheinen. Klicke auf ein Reittier um aufzusteigen!",
"tourEquipmentPage": "Hier wird Deine Ausrüstung gelagert! Deine Kampfausrüstung beeinflusst Deine Statuswerte. Wenn Du eine andere Ausrüstung an Deinem Avatar zeigen willst ohne Deine Statuswerte zu verändern, klicke auf \"Verkleidung tragen\".",
"equipmentAlreadyOwned": "Du besitzt diesen Ausrüstungsgegenstand bereits",

View File

@@ -5,6 +5,6 @@
"step2": "Schritt 2: Sammel Punkte indem Du im wirklichen Leben Dinge erledigst",
"webStep2Text": "Fange nun damit an, Ziele von Deiner Liste anzugehen! Indem Du Aufgaben erledigst und in Habitica abhakst, erhältst Du [Erfahrung](https://habitica.fandom.com/de/wiki/Erfahrungspunkte), die Dich Level aufsteigen lässt, und [Gold](https://habitica.fandom.com/de/wiki/Goldpunkte), das es Dir ermöglicht, Belohnungen zu erwerben. Wenn Du schlechten Gewohnheiten verfällst oder Tagesaufgaben verpasst, verlierst Du [Lebenspunkte](https://habitica.fandom.com/de/wiki/Lebenspunkte). Auf diese Weise dienen die Habitica Erfahrungs- und Lebenspunkt-Leisten als unterhaltsame Anzeige des Fortschritts hin zu Deinen Zielen. Dein echtes Leben wird sich sichtbar verbessern, während Dein Charakter im Spiel vorankommt.",
"step3": "Schritt 3: Entdecke Habitica und passe es Deinen Bedürfnissen an",
"webStep3Text": "Wenn Du mit den Grundlagen vertraut bist, kannst Du mit diesen raffinierten Funktionen noch mehr aus Habitica herausholen:\n* Verwalte Deine Aufgaben mit [Tags](https://habitica.fandom.com/de/wiki/Tags) (Bearbeite eine Aufgabe, um diese hinzuzufügen).\n* Passe Deinen [Avatar](https://habitica.fandom.com/de/wiki/Avatar) an (klicke das Benutzer-Icon oben rechts an).\n* Kaufe Dir [Ausrüstung](https://habitica.fandom.com/de/wiki/Ausr%C3%BCstung) unter Belohnungen oder in den [Shops](<%= shopUrl %>) und ändere diese unter [Inventar > Ausrüstung](<%= equipUrl %>).\n* Setz Dich mit anderen in der [Taverne](http://habitica.fandom.com/wiki/Tavern) in Verbindung.\n* Brüte [Haustiere](https://habitica.fandom.com/de/wiki/Haustiere) aus, indem Du [Eier](https://habitica.fandom.com/de/wiki/Eier) und [Schlüpfelixiere](https://habitica.fandom.com/de/wiki/Schl%C3%BCpfelixiere) sammelst. [Füttere](https://habitica.fandom.com/de/wiki/Futter) sie um sie zu [Reittieren](https://habitica.fandom.com/de/wiki/Reittiere) heranwachsen zu lassen.\n* Ab Level 10: Wähle eine spezielle [Klasse](https://habitica.fandom.com/de/wiki/Klassen) und benutze deren spezifische [Fähigkeiten](https://habitica.fandom.com/de/wiki/F%C3%A4higkeiten) (ab Level 11 bis 14).\n* Gründe eine Party mit Deinen Freunden unter [Party](<%= partyUrl %>) in der Navigationsleiste um verantwortungsbewusst zu bleiben und Quest-Schriftrollen zu verdienen.\n* Bekämpfe Monster und sammle Objekte für [Quests](https://habitica.fandom.com/de/wiki/Quests) (Du erhältst eine erste Quest in Level 15 geschenkt).",
"webStep3Text": "Wenn Du mit den Grundlagen vertraut bist, kannst Du mit diesen raffinierten Funktionen noch mehr aus Habitica herausholen:\n* Verwalte Deine Aufgaben mit [Tags](https://habitica.fandom.com/de/wiki/Tags) (Bearbeite eine Aufgabe, um diese hinzuzufügen).\n* Passe Deinen [Avatar](https://habitica.fandom.com/de/wiki/Avatar) an (klicke das Benutzer-Icon oben rechts an).\n* Kaufe Dir [Ausrüstung](https://habitica.fandom.com/de/wiki/Ausr%C3%BCstung) unter Belohnungen oder in den [Shops](<%= shopUrl %>) und ändere diese unter [Inventar > Ausrüstung](<%= equipUrl %>).\n* Setz Dich mit anderen in der [Taverne](http://habitica.fandom.com/wiki/Tavern) in Verbindung.\n* Brüte [Haustiere](https://habitica.fandom.com/de/wiki/Haustiere) aus, indem Du [Eier](https://habitica.fandom.com/de/wiki/Eier) und [Schlüpfelixiere](https://habitica.fandom.com/de/wiki/Schl%C3%BCpfelixiere) sammelst. [Füttere](https://habitica.fandom.com/de/wiki/Futter) sie um sie zu [Reittieren](https://habitica.fandom.com/de/wiki/Reittiere) heranwachsen zu lassen.\n* Ab Level 10: Wähle eine spezielle [Klasse](https://habitica.fandom.com/de/wiki/Klassen) und benutze deren spezifische [Fähigkeiten](https://habitica.fandom.com/de/wiki/F%C3%A4higkeiten) (ab Level 11 bis 14).\n* Gründe eine Party mit Deinen Freunden unter [Party](<%= partyUrl %>) in der Navigationsleiste, um verantwortungsbewusst zu bleiben und Quest-Schriftrollen zu verdienen.\n* Bekämpfe Monster und sammle Objekte auf [Quests](https://habitica.fandom.com/de/wiki/Quests) (Du erhältst eine erste Quest in Level 15 geschenkt).",
"overviewQuestions": "Du hast Fragen? Schau doch einmal in die [FAQ](<%= faqUrl %>)! Wenn Du Deine Frage hier nicht findest, kannst Du in der [Habitica-Help-Gilde](<%= helpGuildUrl %>) nach Hilfe fragen. \n\nViel Glück mit Deinen Aufgaben!"
}

View File

@@ -44,7 +44,7 @@
"hatchingPotion": "Schlüpfelixier",
"noHatchingPotions": "Du hast im Moment keine Schlüpfelixiere.",
"inventoryText": "Klicke auf ein Ei um die anwendbaren Elixiere grün hervorgehoben zu sehen. Klicke dann auf ein hervorgehobenes Elixier, um Dein Haustier auszubrüten. Falls kein Elixier hervorgehoben wird, klicke auf das Ei um es abzuwählen und klicke diesmal zuerst auf das Elixier, um die Eier hervorzuheben. Du kannst überflüssige Gegenstände auch an Alexander den Händler verkaufen.",
"haveHatchablePet": "Du hast ein <%= potion %> Schlüpfelixier und ein <%= egg %>-Ei, um dieses Haustier auszubrüten! <b>Klicke</b>, damit es schlüpft.",
"haveHatchablePet": "Du hast ein <%= potion %> Schlüpfelixier und ein <%= egg %>-Ei, um dieses Haustier auszubrüten! <b>Klicke</b>, damit es schlüpft!",
"quickInventory": "Schnell-Inventar",
"foodText": "Futter",
"food": "Futter und magische Sättel",
@@ -123,7 +123,7 @@
"foodWikiText": "Was isst mein Haustier gern?",
"foodWikiUrl": "https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter",
"welcomeStable": "Willkommen im Stall!",
"welcomeStableText": "Willkommen im Stall! Ich bin Matt, der Bestienmeister. Jedes Mal wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei oder ein Schlüpfelixier zu erhalten, mit deren Hilfe Haustiere ausgebrütet werden können. Wenn Du ein Haustier ausgebrütet hast, taucht es hier auf! Klicke auf ein Haustier damit es sich zu Deinem Avatar gesellt. Füttere sie mit dem Futter, das Du findest, und sie wachsen zu kräftigen Reittieren heran.",
"welcomeStableText": "Willkommen im Stall! Ich bin Matt, der Bestienmeister. Jedes Mal, wenn Du eine Aufgabe erledigst, besteht die Chance, zufällig ein Ei oder ein Schlüpfelixier zu erhalten, mit deren Hilfe Haustiere ausgebrütet werden können. Wenn Du ein Haustier ausgebrütet hast, taucht es hier auf! Klicke auf ein Haustier damit es sich zu Deinem Avatar gesellt. Füttere sie mit dem Futter, das Du findest, und sie wachsen zu kräftigen Reittieren heran.",
"petLikeToEat": "Was frisst mein Haustier gern?",
"petLikeToEatText": "Haustiere wachsen, egal welches Futter Du ihnen gibst, aber sie wachsen schneller, wenn Du ihnen die Lieblingsspeise fütterst. Experimentiere herum, um das Muster zu finden, oder sieh hier nach:<br/><a href=\"https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter\" target=\"_blank\">https://habitica.fandom.com/de/wiki/Futter#Bevorzugtes_Futter</a>",
"filterByStandard": "Standard",

View File

@@ -5,7 +5,7 @@
"questEvilSantaBoss": "Wildernder Weihnachtswichtel",
"questEvilSantaDropBearCubPolarMount": "Eisbär (Reittier)",
"questEvilSanta2Text": "Finde das Jungtier",
"questEvilSanta2Notes": "Mama Bärs Jungtier ist geflohen, als sie vom Wildernden Weihnachtswichtel gefangen wurde. Du hörst Zweige knacken und Schneestapfen in der Tiefe des stillen Waldes. Pfotenabdrücke! Mama Bär und Du laufen los, um der Spur zu folgen. Finde alle Spuren und abgeknickten Zweige, um das Jungtier aufzuspüren!<br><br><strong>Hinweis</strong>: \"Finde das Jungtier\" gewährt einen stapelbaren Questerfolg, aber verleiht nur einmalig ein seltenes Haustier.",
"questEvilSanta2Notes": "Mama Polarbärs Jungtier ist geflohen, als sie vom Wildernden Weihnachtswichtel gefangen wurde. Du hörst Zweige knacken und Schneestapfen in der Tiefe des stillen Waldes. Pfotenabdrücke! Mama Polarbär und Du laufen los, um der Spur zu folgen. Finde alle Spuren und abgeknickten Zweige, um das Jungtier aufzuspüren!<br><br><strong>Hinweis</strong>: \"Finde das Jungtier\" gewährt einen stapelbaren Questerfolg, aber verleiht nur einmalig ein seltenes Haustier.",
"questEvilSanta2Completion": "Du hast das Jungtier gefunden! Es wird Dir für immer Gesellschaft leisten.",
"questEvilSanta2CollectTracks": "Spuren",
"questEvilSanta2CollectBranches": "Abgebrochene Zweige",
@@ -17,7 +17,7 @@
"questGryphonDropGryphonEgg": "Greif (Ei)",
"questGryphonUnlockText": "Schaltet den Kauf von Greifeneiern auf dem Marktplatz frei",
"questHedgehogText": "Das Igelmonster",
"questHedgehogNotes": "Igel gehören einer kuriosen Gruppe von Tieren an. Zwar sind sie die liebevollsten Haustiere, die sich ein Habiticaner wünschen kann, aber es gibt ein Gerücht wonach sie, wenn man sie nach Mitternacht mit Milch füttert, ein wenig gereizt werden. Und fünfzig mal größer. Und <strong>InspectorCaracal</strong> hat genau das gemacht - Hoppla.",
"questHedgehogNotes": "Igel gehören einer kuriosen Gruppe von Tieren an. Zwar sind sie die liebevollsten Haustiere, die sich ein Habiticaner wünschen kann, aber es gibt ein Gerücht wonach sie, wenn man sie nach Mitternacht mit Milch füttert, ein wenig gereizt werden. Und fünfzig mal größer. Und <strong>InspectorCaracal</strong> hat genau das gemacht Hoppla.",
"questHedgehogCompletion": "Eure Party hat das Igelweibchen beruhigt! Es hoppelt zurück zu seinen Eiern, nachdem es auf seine normale Größe geschrumpft ist. Quietschend kehrt es mit einigen Eiern zurück und stupst sie vorsichtig in eure Richtung. Hoffentlich mögen Igel Milch!",
"questHedgehogBoss": "Igelmonster",
"questHedgehogDropHedgehogEgg": "Igel (Ei)",
@@ -30,7 +30,7 @@
"questGhostStagUnlockText": "Schaltet den Kauf von Hirscheiern auf dem Marktplatz frei",
"questRatText": "Der Rattenkönig",
"questRatNotes": "Müll! Berge von unerfüllten Tagesaufgaben häufen sich überall in Habitica. Das Problem ist mittlerweile so ernst geworden, dass ganze Horden von Ratten über das Land herfallen. Du bemerkst, dass @Pandah eines der Tierchen liebevoll streichelt. Sie erklärt, Ratten seien eigentlich sanfte Tierchen, die sich von unerfüllten Tagesaufgaben ernähren. Das tatsächliche Problem ist, dass einige dieser Aufgaben in die Kanalisation gerutscht sind und sich ein großes, gefährliches Nest gebildet hat. Als Du nun tiefer in die Kanalisation hinabsteigst, wirst Du von einer riesigen Ratte mit blutroten Augen und übel zugerichteten, gelben Zähnen angegriffen, die das Nest verteidigt. Wirst Du fliehen, oder dem sagenumwobenen Rattenkönig entgegentreten?",
"questRatCompletion": "Dein letzter Hieb entzieht der gewaltigen Ratte ihre Kraft, ihre Augen verblassen zu einem trüben Grau. Das Monster spaltet sich in viele kleine Ratten, die vor Angst hastig davonlaufen. Du bemerkst, dass @Pandah hinter Dir steht und auf die einst mächtige Kreatur blickt. Sie erklärt, dass die Bewohner von Habitica von Deinem Mut inspiriert wurden und daher all ihre unerledigten Tagesaufgaben nun schnell erledigen. Sie ermahnt Dich dazu wachsam zu bleiben, denn wenn wir unachtsam werden, wird der Rattenkönig zurückkommen. Als Belohnung bietet Dir @Pandah einige Ratteneier an. Als sie Deinen besorgten Gesichtsausdruck bemerkt lächelt sie: \"Daraus werden wunderschöne Haustiere.\"",
"questRatCompletion": "Dein letzter Hieb entzieht der gewaltigen Ratte ihre Kraft, ihre Augen verblassen zu einem trüben Grau. Das Monster spaltet sich in viele kleine Ratten, die vor Angst hastig davonlaufen. Du bemerkst, dass @Pandah hinter Dir steht und auf die einst mächtige Kreatur blickt. Sie erklärt, dass die Bewohner von Habitica von Deinem Mut inspiriert wurden und daher all ihre unerledigten Tagesaufgaben nun schnell erledigen. Sie ermahnt Dich dazu, wachsam zu bleiben, denn wenn wir unachtsam werden, wird der Rattenkönig zurückkommen. Als Belohnung bietet Dir @Pandah einige Ratteneier an. Als sie Deinen besorgten Gesichtsausdruck bemerkt lächelt sie: \"Daraus werden wunderschöne Haustiere.\"",
"questRatBoss": "Rattenkönig",
"questRatDropRatEgg": "Ratte (Ei)",
"questRatUnlockText": "Schaltet den Kauf von Ratteneiern auf dem Marktplatz frei",
@@ -691,5 +691,6 @@
"questWaffleBoss": "Fürchterliche Waffel",
"questWaffleNotes": "\"April-Scherzkeks!\" entrüstet sich Lady Glaciate verunsichert. \"Du sagtest, Dein Wüsten-Scherz sei 'erledigt und komplett weggeräumt'!\"<br><br>\"Nun ja, das war er und ist er immer noch, meine Liebe\", antwortet der Scherzkeks verwirrt. \"Und ich bin der ehrlichste aller Scherzkekse. Ist etwas nicht in Ordnung?\"<br><br>\"Da ist ein gigantisches, zuckriges Monster, das sich Habit City nähert!\"<br><br>\"Hmm\", sinniert der Scherzkeks. \"Ich habe auf der Suche nach mystischen Reagenzien für meinen letzten Event einige Höhlen geplündert. Vielleicht habe ich da unerwünschte Aufmerksamkeit erweckt. Ist es die Saccharose-Schlange? Die Torten-Kröte? Ein Tiramisu Rex?\"<br><br>\"Nein! Es ist eine Art… fürchterliche Waffel!\"<br><br>\"Häh. Die ist mir neu! Vielleicht entsprang die all der Umgebungs-Schabernack-Energie.\" Er wendet sich an Dich und @beffymaroo mit einem schiefen Lächeln. \"Ich nehme nicht an, ihr wärt zu einer Heldentat bereit?\"",
"questWaffleText": "An die Waffe(l) gegen den Scherzkeks: Desaster-Frühstück!",
"questWaffleRageEffect": "`Fürchterliche Waffel setzt AHORNSUMPF ein!` Schmieriger saftiger Sirup lässt Deine Schläge und Sprüche stocken!"
"questWaffleRageEffect": "`Fürchterliche Waffel setzt AHORNSUMPF ein!` Schmieriger saftiger Sirup lässt Deine Schläge und Sprüche stocken!",
"questWaffleCompletion": "Angeschlagen und reich bebuttert, aber trotzdem triumphierend, genießt Ihr den süßen Sieg über die fürchterliche Waffel, die in eine klebrig-schleimige Pfütze zusammensinkt.<br><br>\"Wow, dieses Monster habt Ihr gründlich eingeschmiert\", sagt Lady Glaciate beeindruckt.<br><br>\"Ein Zuckerschlecken!\" strahlt der April-Scherzkeks.<br><br>\"Trotzdem irgendwie schade,\" findet @beffymaroo. \"Die sah irgendwie lecker aus.\"<br><br>Der Scherzkeks zaubert einen Satz Schlüpfelixier-Flaschen aus seinem Cape, füllt sie mit der sirupartigen Masse der Waffel-Überreste und mischt eine Prise glitzernden Staub hinein. Farben wirbeln durch die Flüssigkeit neue Schlüpfelixiere! Er wirft sie Euch in die Arme. \"Das ganze Abenteuer hat mir Appetit gemacht. Wer kommt mit zum Frühstück?\""
}

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Συμβουλή #<%= tipNumber %>",
"tip1": "Τσέκαρε τις υποχρεώσεις σου στο δρόμο με τις εφαρμογές Habitica για κινητά.",
"tip2": "Click any equipment to see a preview, or equip it instantly by clicking the star in its upper-left corner!",
"tip3": "Use emoji to quickly differentiate between your tasks.",
"tip4": "Χρησιμοποίησε το σύμβολο # πριν μία υποχρέωση για να την κάνεις πολύ μεγάλη!",
"tip5": "Its best to use skills that cause buffs in the morning so they last longer.",
"tip6": "Hover over a task and click the dots to access advanced task controls, such as the ability to push tasks to the top/bottom of your list.",
"tip7": "Some backgrounds connect perfectly if Party members use the same background. Ex: Mountain Lake, Pagodas, and Rolling Hills.",
"tip8": "Send a Message to someone by clicking their name in chat and then clicking the envelope icon at the top of their profile!",
"tip9": "Use the filters + search bar in the Inventories, Shops, Guilds, and Challenges to quickly find what you want.",
"tip10": "You can win gems by competing in Challenges. New ones are added every day!",
"tip11": "Having more than four Party members increases accountability!",
"tip12": "Add checklists to your To-Dos to multiply your rewards!",
"tip13": "Click “Tags” on your task page to make an unwieldy task list very manageable!",
"tip14": "You can add headers or inspirational quotes to your list as Habits with no (+/-).",
"tip15": "Complete all the Masterclasser Quest-lines to learn about Habiticas secret lore.",
"tip16": "Click the link to the Data Display Tool in the footer for valuable insights on your progress.",
"tip17": "Use the mobile apps to set reminders for your tasks.",
"tip18": "Habits that are just positive or just negative gradually “fade” and return to yellow.",
"tip19": "Boost your Intelligence Stat to gain more experience when you complete a task.",
"tip20": "Boost your Perception Stat to get more drops and gold.",
"tip21": "Boost your Strength Stat to do more boss damage or get critical hits.",
"tip22": "Boost your Constitution Stat to lessen the damage from incomplete Dailies.",
"tip23": "Reach level 100 to unlock the Orb of Rebirth for free and start a new adventure!",
"tip24": "Have a question? Ask in the Habitica Help Guild!",
"tip25": "The four seasonal Grand Galas start near the solstices and equinoxes.",
"tip26": "You can look for a Party or find Party members in the Party Wanted Guild!",
"tip27": "Did a Daily yesterday, but forgot to check it off? Don't worry! With Record Yesterday's Activity, you'll have a chance to record what you did before starting your new day.",
"tip28": "Set a Custom Day Start under User Icon > Settings to control when your day restarts.",
"tip29": "Complete all your Dailies to get a Perfect Day Buff that increases your Stats!",
"tip30": "You can invite people to Guilds, not just Parties.",
"tip31": "Check out the pre-made lists in the Library of Tasks and Challenges Guild for example tasks.",
"tip32": "Lots of Habiticas code, art, and writing is made by volunteer contributors! Head to the Aspiring Legends Guild to help.",
"tip33": "Check out The Bulletin Board Guild for news about Guilds, Challenges, and other player-created events - and announce your own there!",
"tip34": "Occasionally re-evaluate your tasks to make sure theyre up-to-date!",
"tip35": "Users who are part of a Group Plan gain the ability to assign tasks to other users in that Group for extra task management and accountability."
}

View File

@@ -1992,6 +1992,8 @@
"backMystery202001Notes": "These fluffy tails contain celestial power, and also a high level of cuteness! Confers no benefit. January 2020 Subscriber Item.",
"backMystery202004Text": "Mighty Monarch Wings",
"backMystery202004Notes": "Make a quick flutter to the nearest flowery meadow or migrate across the continent with these beautiful wings! Confers no benefit. April 2020 Subscriber Item.",
"backMystery202005Text": "Wondrous Wyvern Wings",
"backMystery202005Notes": "Despite their slight tatters, these wings can still carry you wherever you need to travel. Confers no benefit. May 2020 Subscriber Item.",
"backSpecialWonderconRedText": "Mighty Cape",
"backSpecialWonderconRedNotes": "Swishes with strength and beauty. Confers no benefit. Special Edition Convention Item.",
@@ -2172,6 +2174,8 @@
"headAccessoryMystery201908Notes": "If wearing horns floats your goat, you're in luck! Confers no benefit. August 2019 Subscriber Item.",
"headAccessoryMystery202004Text": "Mighty Monarch Antennae",
"headAccessoryMystery202004Notes": "They twitch just a bit if the scent of flowers drifts by--use them to find a pretty garden! Confers no benefit. April 2020 Subscriber Item.",
"headAccessoryMystery202005Text": "Wondrous Wyvern Horns",
"headAccessoryMystery202005Notes": "With such mighty horns, what creature dares challenge you? Confers no benefit. May 2020 Subscriber Item.",
"headAccessoryMystery301405Text": "Headwear Goggles",
"headAccessoryMystery301405Notes": "\"Goggles are for your eyes,\" they said. \"Nobody wants goggles that you can only wear on your head,\" they said. Hah! You sure showed them! Confers no benefit. August 3015 Subscriber Item.",

View File

@@ -173,6 +173,7 @@
"mysterySet202002": "Stylish Sweetheart Set",
"mysterySet202003": "Barbed Battler Set",
"mysterySet202004": "Mighty Monarch Set",
"mysterySet202005": "Wondrous Wyvern Set",
"mysterySet301404": "Steampunk Standard Set",
"mysterySet301405": "Steampunk Accessories Set",
"mysterySet301703": "Peacock Steampunk Set",

View File

@@ -1,38 +0,0 @@
{
"tipTitle": "Tip #<%= tipNumber %>",
"tip1": "Check taskz on teh go wif teh Habitica mobiel appz.",
"tip2": "Clik ne ekwipment 2 see preview, or ekwip instantly by cliking teh star n itz upper-left kornr!",
"tip3": "Ues emoij 2 kwyckly differentiaet tween ur taskz.",
"tip4": "Use teh # sign be4 task naem 2 maek it realy big!",
"tip5": "Itz best 2 use skilz dat giv buffz n da mornin so they last longr.",
"tip6": "Hover over a task an click teh dots 2 access advanced task controls, liek teh ability 2 push taskz 2 teh top/bottom of ur list.",
"tip7": "Sum bakgrounz connect perfecly if Party membrz use teh same bakgroun. Ex: Mountain Laek, Pagodaz, an Rolin Hilz.",
"tip8": "Sen Mesege 2 sumwon by clikin their naem n chat an den clikin teh envelope icon at teh top ov their profile!!",
"tip9": "Use teh filtrz + serch bar n teh Inventoriez, Shopz, Gildz, an Chalengez 2 kwickly find wat u wants.",
"tip10": "U can haz gems by competin n Chalengez. New 1s getz aded evry day!",
"tip11": "Havin moar than 4 Party membrz increesez acountabiltie!",
"tip12": "Ad checklistz 2 ur ToDoz 2 multiplai ur rewardz!",
"tip13": "Clik “Tagz” on ur task paeg 2 maek unweildy task lis vry manegeble!",
"tip14": "U can ad hederz or insprashunal kwotz 2 ur list as Habitz wif no (+/-).",
"tip15": "Complet al teh Mastrclasr Kwest-lienz 2 lern bout Habiticaz seekret loar.",
"tip16": "Clik teh link 2 teh Data Display Tool n teh footr 4 valuble insaitz on ur progres.",
"tip17": "Use teh mobil apz 2 seted remaindrz 4 ur taskz.",
"tip18": "Habitz wich r jus positiv or jus negativ graduly “fade” an return 2 yelow.",
"tip19": "Boost ur Intelligence Stat 2 get moar experiance wen u complet taskz.",
"tip20": "Boost ur Purcepshun Stat 2 get moar drops an gold.",
"tip21": "Boost ur Strength Stat 2 do moar bos damege or get kriticul hitz.",
"tip22": "Boost ur Constitution Stat 2 maek damege frum incompleet Dailyz smalr.",
"tip23": "Reech lvl 100 2 unlok teh Orb of Rebirth 4 free an start new aventurz!",
"tip24": "U can haz kwestion? Ask in teh Habitica Help Guild!",
"tip25": "Teh 4 seesonl Gran Galaz start neer teh solsticz an ekwinoxz.",
"tip26": "U can look 4 Party or fin Party membrz n teh Party Wanted Guild!",
"tip27": "Did Daily yesturdai, but forgeted 2 chek it off? Dont worry! Wif Record Yesturdaiz Actiftie, u can haz chans 2 record wat u did be4 startin ur new dai.",
"tip28": "Seted Custom Day Start undr User Icon > Settings 2 control wen ur day restarts.",
"tip29": "Complet al ur Dailyz 2 get Perfec Day Buff an increes ur Statz!",
"tip30": "U can invait ppl 2 Gildz, not jus Partyz.",
"tip31": "Chek teh pre-made listz n teh Library of Tasks and Challenges Guild 4 example taskz.",
"tip32": "Lotz ov Habiticaz code, art, an ritin iz maed by volunteer contributrz! U can go 2 teh Aspiring Legends Gild 2 help.",
"tip33": "Chek The Bulletin Board Guild 4 newz bout Gildz, Chalengez, an othr playr-creatd eventz - an anouns ur own ther!",
"tip34": "Ocashunaly re-evaluaet ur taskz 2 maek sure there up-2-daet!",
"tip35": "Usrz hoo r part ov Group Plan get teh abiltie 2 asign taskz 2 othr usrz n dat Group 4 xtra task manigment an accountbiltie."
}

Some files were not shown because too many files have changed in this diff Show More