Compare commits

..

34 Commits

Author SHA1 Message Date
Sabe Jones bde8b76da7 4.32.1 2018-03-20 23:11:49 +00:00
Sabe Jones 4235be4b43 chore(i18n): update locales 2018-03-20 23:11:37 +00:00
Sabe Jones 396362d27e 4.32.0 2018-03-20 22:57:28 +00:00
SabreCat 972efb1878 fix(seasonal-shop): remove quest
it was breaking the API. Wut? Just use canBuy logic and Quest Shop for now
2018-03-20 22:49:54 +00:00
SabreCat 6c18d19d95 fix(test): extra curly 2018-03-20 21:56:55 +00:00
SabreCat 9b8bdb90d8 chore(sprites): compile 2018-03-20 21:31:04 +00:00
SabreCat a84ea8b1b7 feat(event): Spring Fling 2018 2018-03-20 21:30:43 +00:00
Sabe Jones 67e750a81c 4.31.1 2018-03-15 21:19:44 +00:00
Keith Holliday 7fe62a731b Fixed gem amount on master key (#10140)
* Fixed gem amount on master key

* fix(news): update Bailey text
2018-03-15 16:19:11 -05:00
Sabe Jones bb6f465ac8 4.31.0 2018-03-15 19:10:37 +00:00
Sabe Jones a2a79e4607 chore(i18n): update locales 2018-03-15 19:07:38 +00:00
SabreCat 5125cc5f59 chore(news): Bailey 2018-03-15 19:04:00 +00:00
Alys 5ba09c45df adjust comments and word lists in slurs and banned words. TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2018-03-15 20:53:48 +10:00
Matteo Pagliazzi 70dec611e3 Make Kafka dep optional (#10129)
* Made kafka optional

* make kafka optional
2018-03-14 18:21:39 +01:00
Keith Holliday 2195464772 Flag comment (#9991)
* Added initial chat flag comment form

* Added user comment to slack message

* Updated copy and styles

* Fixed comma

* Updated admin messaging
2018-03-14 07:41:13 -05:00
Sabe Jones b662f8bdff Merge branch 'release' into develop 2018-03-13 21:00:00 +00:00
Sabe Jones ee1aa653f0 fix(groups): Guild badge fencepost errors 2018-03-12 14:43:39 -05:00
SabreCat 8d1b1ff794 chore(npm): update package lock 2018-03-09 21:22:25 +00:00
SabreCat 70500d7c98 Merge branch 'release' into develop 2018-03-09 21:18:56 +00:00
Travis 35849ebdd7 Fixing items sort by number in the market. (#10108)
fixes #10093
2018-03-09 15:17:26 -06:00
Matteo Pagliazzi 1332fd68b0 Mongoose 5 (#9870)
* mongoose 5: remove unused autoinc, remove promise option (it uses native promises now)

* remove mongodb package

* remove mongoskin

* migrate migration away from mongoskin

* fix mongoose hooks

* fix _updateUserWithRetries

* try without next

* remove init

* update sinon

* fix some integration tests

* fix remaining tests

* fix error message

* fix error message

* fix error message

* another fix

* fix mongoose options

* remove greenkeeper exception
2018-03-09 15:13:58 -06:00
Travis f9a47b1420 Update user pinned items on purchases. (#10085)
fixes #10049
2018-03-09 15:11:42 -06:00
Dexx Mandele 07b3824c4c Stop market background from covering sign (#10067) 2018-03-09 14:59:45 -06:00
Travis 92fa6805eb fix: Quest collected items displayed multiple times. (#10111)
fixes #10065
2018-03-09 14:56:59 -06:00
Dexx Mandele f64b34318f Set warrior as default for the choose class pop-up (#10084) 2018-03-09 14:40:53 -06:00
Sabe Jones fe61c0f29e Merge branch 'release' into develop 2018-03-08 21:43:35 +00:00
Sabe Jones 5f0b957dc2 fix(logging): only start Stackimpact in prod (#10112) 2018-03-08 13:12:45 -06:00
Sabe Jones 37650ca674 Merge branch 'release' into develop 2018-03-08 00:30:37 +00:00
Sabe Jones b4dab2e13c Merge branch 'release' into develop 2018-03-07 22:53:09 +00:00
Sabe Jones b827b17481 Don't include seasonal class gear in classless category (#10047)
* fix(market): don't include seasonal class gear in classless category

* refactor(shops): use standard indexOf check
2018-03-06 11:03:49 -06:00
Sabe Jones 27ef187e66 Merge branch 'release' into develop 2018-03-05 20:59:17 +00:00
Keith Holliday 9c9b67aa9d Keys kennel fixes (#9848)
* Show keys to pets immediately

* Ensured keys to pets dissapear after use

* Added resdirect to stable after purchase

* Added mount check and updated keys to mounts and to both

* Added api calls

* Added check for beastmaster progress

* Added mount check for release mounts. Added pets and mount check to release both

* Added actions

* Added catch to common tests

* Added beast count and reload

* Removed extra console log
2018-03-02 15:30:11 -06:00
Keith Holliday 7cff331800 Removed uri for client side oauth (#10058)
* Removed uri for client side oauth

* Fixed lint
2018-03-02 14:07:15 -07:00
Keith Holliday e7bc505b88 Modal popup fixes (#10080)
* Added validation for modal stack

* Lint fixes
2018-03-02 12:43:22 -07:00
301 changed files with 14531 additions and 10418 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ RUN npm install -g gulp-cli mocha
# Clone Habitica repo and install dependencies
RUN mkdir -p /usr/src/habitrpg
WORKDIR /usr/src/habitrpg
RUN git clone --branch v4.29.8 https://github.com/HabitRPG/habitica.git /usr/src/habitrpg
RUN git clone --branch v4.32.0 https://github.com/HabitRPG/habitica.git /usr/src/habitrpg
RUN npm install
RUN gulp build:prod --force
+2 -1
View File
@@ -112,5 +112,6 @@
"CLOUDKARAFKA_USERNAME": "",
"CLOUDKARAFKA_PASSWORD": "",
"CLOUDKARAFKA_TOPIC_PREFIX": ""
}
},
"STACK_IMPACT_KEY": "aaaabbbbccccddddeeeeffffgggg111100002222"
}
-1
View File
@@ -26,7 +26,6 @@ let improveRepl = (context) => {
const mongooseOptions = !isProd ? {} : {
keepAlive: 1,
connectTimeoutMS: 30000,
useMongoClient: true,
};
mongoose.connect(
nconf.get('NODE_DB_URI'),
+4744 -2553
View File
File diff suppressed because it is too large Load Diff
+41 -44
View File
@@ -1,26 +1,21 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.30.0",
"version": "4.32.1",
"main": "./website/server/index.js",
"greenkeeper": {
"ignore": [
"mongoose"
]
},
"dependencies": {
"@slack/client": "^3.8.1",
"accepts": "^1.3.2",
"accepts": "^1.3.5",
"amazon-payments": "^0.2.6",
"amplitude": "^3.5.0",
"apidoc": "^0.17.5",
"autoprefixer": "^8.0.0",
"aws-sdk": "^2.200.0",
"autoprefixer": "^8.1.0",
"aws-sdk": "^2.209.0",
"axios": "^0.18.0",
"axios-progress-bar": "^1.1.8",
"babel-core": "^6.0.0",
"babel-eslint": "^8.2.2",
"babel-loader": "^7.1.2",
"babel-loader": "^7.1.4",
"babel-plugin-syntax-async-functions": "^6.13.0",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-plugin-transform-async-to-module-method": "^6.8.0",
@@ -34,21 +29,21 @@
"bluebird": "^3.3.5",
"body-parser": "^1.15.0",
"bootstrap": "^4.0.0",
"bootstrap-vue": "^2.0.0-rc.1",
"bootstrap-vue": "^2.0.0-rc.2",
"compression": "^1.7.2",
"cookie-session": "^1.2.0",
"coupon-code": "^0.4.5",
"cross-env": "^5.1.3",
"cross-env": "^5.1.4",
"css-loader": "^0.28.0",
"csv-stringify": "^2.0.4",
"cwait": "^1.1.1",
"domain-middleware": "~0.1.0",
"express": "^4.16.2",
"express": "^4.16.3",
"express-basic-auth": "^1.1.4",
"express-validator": "^5.0.1",
"express-validator": "^5.0.3",
"extract-text-webpack-plugin": "^3.0.2",
"glob": "^7.1.2",
"got": "^8.2.0",
"got": "^8.3.0",
"gulp": "^4.0.0",
"gulp-babel": "^7.0.1",
"gulp-imagemin": "^4.1.0",
@@ -58,22 +53,21 @@
"hellojs": "^1.15.1",
"html-webpack-plugin": "^2.8.1",
"image-size": "^0.6.2",
"in-app-purchase": "^1.1.6",
"in-app-purchase": "^1.8.9",
"intro.js": "^2.6.0",
"jquery": ">=3.0.0",
"js2xmlparser": "^3.0.0",
"lodash": "^4.17.4",
"merge-stream": "^1.0.0",
"method-override": "^2.3.5",
"moment": "^2.13.0",
"moment": "^2.21.0",
"moment-recur": "^1.0.7",
"mongoose": "^4.13.11",
"mongoose": "^5.0.10",
"morgan": "^1.7.0",
"nconf": "^0.10.0",
"node-gcm": "^0.14.4",
"node-rdkafka": "^2.2.3",
"node-sass": "^4.5.0",
"nodemailer": "^4.5.0",
"node-sass": "^4.8.2",
"nodemailer": "^4.6.3",
"ora": "^2.0.0",
"pageres": "^4.1.1",
"passport": "^0.4.0",
@@ -81,21 +75,21 @@
"passport-google-oauth20": "1.0.0",
"paypal-ipn": "3.0.0",
"paypal-rest-sdk": "^1.8.1",
"popper.js": "^1.13.0",
"popper.js": "^1.14.1",
"postcss-easy-import": "^3.0.0",
"ps-tree": "^1.0.0",
"pug": "^2.0.0-rc.4",
"pug": "^2.0.1",
"push-notify": "git://github.com/habitrpg/push-notify.git#6bc2b5fdb1bdc9649b9ec1964d79ca50187fc8a9",
"pusher": "^1.3.0",
"rimraf": "^2.4.3",
"sass-loader": "^6.0.2",
"sass-loader": "^6.0.7",
"shelljs": "^0.8.1",
"stackimpact": "^1.2.1",
"stripe": "^5.5.0",
"superagent": "^3.4.3",
"svg-inline-loader": "^0.8.0",
"svg-url-loader": "^2.0.2",
"svgo": "^1.0.4",
"svg-url-loader": "^2.3.2",
"svgo": "^1.0.5",
"svgo-loader": "^2.1.0",
"universal-analytics": "^0.4.16",
"url-loader": "^0.6.2",
@@ -103,17 +97,17 @@
"uuid": "^3.0.1",
"validator": "^9.4.1",
"vinyl-buffer": "^1.0.1",
"vue": "^2.5.2",
"vue-loader": "^14.1.1",
"vue": "^2.5.16",
"vue-loader": "^14.2.1",
"vue-mugen-scroll": "^0.2.1",
"vue-router": "^3.0.0",
"vue-style-loader": "^4.0.2",
"vue-template-compiler": "^2.5.2",
"vue-template-compiler": "^2.5.16",
"vuedraggable": "^2.15.0",
"vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#5d237615463a84a23dd6f3f77c6ab577d68593ec",
"webpack": "^3.11.0",
"webpack-merge": "^4.0.0",
"winston": "^2.1.0",
"winston": "^2.4.1",
"winston-loggly-bulk": "^2.0.2",
"xml2js": "^0.4.4"
},
@@ -147,20 +141,20 @@
"apidoc": "gulp apidoc"
},
"devDependencies": {
"babel-plugin-istanbul": "^4.0.0",
"babel-plugin-istanbul": "^4.1.6",
"chai": "^4.1.2",
"chai-as-promised": "^7.1.1",
"chalk": "^2.3.1",
"chromedriver": "^2.27.2",
"chalk": "^2.3.2",
"chromedriver": "^2.36.0",
"connect-history-api-fallback": "^1.1.0",
"coveralls": "^3.0.0",
"cross-spawn": "^6.0.4",
"eslint": "^4.18.1",
"cross-spawn": "^6.0.5",
"eslint": "^4.18.2",
"eslint-config-habitrpg": "^4.0.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.3.0",
"eslint-plugin-html": "^4.0.2",
"eslint-plugin-mocha": "^4.7.0",
"eslint-plugin-mocha": "^4.12.1",
"eventsource-polyfill": "^0.9.6",
"expect.js": "^0.3.1",
"http-proxy-middleware": "^0.17.0",
@@ -176,19 +170,22 @@
"karma-sinon-stub-promise": "^1.0.0",
"karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.32",
"karma-webpack": "^2.0.2",
"karma-webpack": "^2.0.13",
"lcov-result-merger": "^2.0.0",
"mocha": "^5.0.1",
"mocha": "^5.0.4",
"monk": "^6.0.5",
"nightwatch": "^0.9.12",
"puppeteer": "^1.1.0",
"nightwatch": "^0.9.20",
"puppeteer": "^1.1.1",
"require-again": "^2.0.0",
"selenium-server": "^3.9.1",
"sinon": "^4.3.0",
"selenium-server": "^3.11.0",
"sinon": "^4.4.5",
"sinon-chai": "^2.8.0",
"sinon-stub-promise": "^4.0.0",
"webpack-bundle-analyzer": "^2.2.1",
"webpack-bundle-analyzer": "^2.11.1",
"webpack-dev-middleware": "^2.0.5",
"webpack-hot-middleware": "^2.6.1"
"webpack-hot-middleware": "^2.21.2"
},
"optionalDependencies": {
"node-rdkafka": "^2.3.0"
}
}
@@ -32,4 +32,11 @@ describe('GET /world-state', () => {
},
});
});
it('returns a string representing the current season for NPC sprites', async () => {
const res = await requester().get('/world-state');
expect(res).to.have.nested.property('npcImageSuffix');
expect(res.npcImageSuffix).to.be.a('string');
});
});
+11
View File
@@ -78,6 +78,17 @@ describe('shared.ops.buyGear', () => {
expect(user.items.gear.equipped).to.have.property('armor', 'armor_warrior_1');
});
it('updates the pinnedItems to the next item in the set if one exists', () => {
user.stats.gp = 31;
buyGear(user, {params: {key: 'armor_warrior_1'}});
expect(user.pinnedItems).to.deep.include({
type: 'marketGear',
path: 'gear.flat.armor_warrior_2',
});
});
it('buyGears equipment but does not auto-equip', () => {
user.stats.gp = 31;
user.preferences.autoEquip = false;
+41 -14
View File
@@ -41,6 +41,22 @@ describe('shared.ops.releaseBoth', () => {
}
});
it('returns an error when user does not have all pets', (done) => {
const petKeys = Object.keys(user.items.pets);
delete user.items.pets[petKeys[0]];
const mountKeys = Object.keys(user.items.mounts);
delete user.items.mounts[mountKeys[0]];
try {
releaseBoth(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughPetsMounts'));
done();
}
});
it('grants triad bingo with gems', () => {
let message = releaseBoth(user)[1];
@@ -79,26 +95,33 @@ describe('shared.ops.releaseBoth', () => {
it('does not increment beastMasterCount if any pet is level 0 (released)', () => {
let beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
user.items.pets[animal] = 0;
releaseBoth(user);
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
try {
releaseBoth(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}
});
it('does not increment beastMasterCount if any pet is missing (null)', () => {
let beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
user.items.pets[animal] = null;
releaseBoth(user);
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
try {
releaseBoth(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}
});
it('does not increment beastMasterCount if any pet is missing (undefined)', () => {
let beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
delete user.items.pets[animal];
releaseBoth(user);
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
try {
releaseBoth(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}
});
it('releases mounts', () => {
@@ -112,18 +135,22 @@ describe('shared.ops.releaseBoth', () => {
let mountMasterCountBeforeRelease = user.achievements.mountMasterCount;
user.items.mounts[animal] = null;
releaseBoth(user);
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
try {
releaseBoth(user);
} catch (e) {
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
}
});
it('does not increase mountMasterCount achievement if mount is missing (undefined)', () => {
let mountMasterCountBeforeRelease = user.achievements.mountMasterCount;
delete user.items.mounts[animal];
releaseBoth(user);
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
try {
releaseBoth(user);
} catch (e) {
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
}
});
it('removes drop currentPet', () => {
+23 -6
View File
@@ -35,6 +35,19 @@ describe('shared.ops.releaseMounts', () => {
}
});
it('returns an error when user does not have all pets', (done) => {
const mountsKeys = Object.keys(user.items.mounts);
delete user.items.mounts[mountsKeys[0]];
try {
releaseMounts(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughMounts'));
done();
}
});
it('releases mounts', () => {
let message = releaseMounts(user)[1];
@@ -71,18 +84,22 @@ describe('shared.ops.releaseMounts', () => {
let mountMasterCountBeforeRelease = user.achievements.mountMasterCount;
user.items.mounts[animal] = null;
releaseMounts(user);
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
try {
releaseMounts(user);
} catch (e) {
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
}
});
it('does not increase mountMasterCount achievement if mount is missing (undefined)', () => {
let mountMasterCountBeforeRelease = user.achievements.mountMasterCount;
delete user.items.mounts[animal];
releaseMounts(user);
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
try {
releaseMounts(user);
} catch (e) {
expect(user.achievements.mountMasterCount).to.equal(mountMasterCountBeforeRelease);
}
});
it('subtracts gems from balance', () => {
+29 -8
View File
@@ -35,6 +35,19 @@ describe('shared.ops.releasePets', () => {
}
});
it('returns an error when user does not have all pets', (done) => {
const petKeys = Object.keys(user.items.pets);
delete user.items.pets[petKeys[0]];
try {
releasePets(user);
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('notEnoughPets'));
done();
}
});
it('releases pets', () => {
let message = releasePets(user)[1];
@@ -75,27 +88,35 @@ describe('shared.ops.releasePets', () => {
});
it('does not increment beastMasterCount if any pet is level 0 (released)', () => {
let beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
const beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
user.items.pets[animal] = 0;
releasePets(user);
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
try {
releasePets(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}
});
it('does not increment beastMasterCount if any pet is missing (null)', () => {
let beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
user.items.pets[animal] = null;
releasePets(user);
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
try {
releasePets(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}
});
it('does not increment beastMasterCount if any pet is missing (undefined)', () => {
let beastMasterCountBeforeRelease = user.achievements.beastMasterCount;
delete user.items.pets[animal];
releasePets(user);
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
try {
releasePets(user);
} catch (e) {
expect(user.achievements.beastMasterCount).to.equal(beastMasterCountBeforeRelease);
}
});
});
+75 -47
View File
@@ -323,53 +323,7 @@ export default {
this.hideLoadingScreen();
}
// Manage modals
this.$root.$on('bv::show::modal', (modalId, data = {}) => {
if (data.fromRoot) return;
// Track opening of gems modal unless it's been already tracked
// For example the gems button in the menu already tracks the event by itself
if (modalId === 'buy-gems' && data.alreadyTracked !== true) {
Analytics.track({
hitType: 'event',
eventCategory: 'button',
eventAction: 'click',
eventLabel: 'Gems > Wallet',
});
}
// Get last modal on stack and hide
let modalStackLength = this.$store.state.modalStack.length;
let modalOnTop = this.$store.state.modalStack[modalStackLength - 1];
// Add new modal to the stack
this.$store.state.modalStack.push(modalId);
// Hide the previous top modal
if (modalOnTop) this.$root.$emit('bv::hide::modal', modalOnTop, {fromRoot: true});
});
// @TODO: This part is hacky and could be solved with two options:
// 1 - Find a way to pass fromRoot to hidden
// 2 - Enforce that all modals use the hide::modal event
this.$root.$on('bv::modal::hidden', (bvEvent) => {
const modalId = bvEvent.target.id;
let modalStackLength = this.$store.state.modalStack.length;
let modalSecondToTop = this.$store.state.modalStack[modalStackLength - 2];
// Don't remove modal if hid was called from main app
// @TODO: I'd reather use this, but I don't know how to pass data to hidden event
// if (data && data.fromRoot) return;
if (modalId === modalSecondToTop) return;
// Remove modal from stack
this.$store.state.modalStack.pop();
// Recalculate and show the last modal if there is one
modalStackLength = this.$store.state.modalStack.length;
let modalOnTop = this.$store.state.modalStack[modalStackLength - 1];
if (modalOnTop) this.$root.$emit('bv::show::modal', modalOnTop, {fromRoot: true});
});
this.initializeModalStack();
},
beforeDestroy () {
this.$root.$off('playSound');
@@ -384,6 +338,80 @@ export default {
if (loadingScreen) document.body.removeChild(loadingScreen);
},
methods: {
initializeModalStack () {
// Manage modals
this.$root.$on('bv::show::modal', (modalId, data = {}) => {
if (data.fromRoot) return;
const modalStack = this.$store.state.modalStack;
this.trackGemPurchase(modalId, data);
// Add new modal to the stack
const prev = modalStack[modalStack.length - 1];
const prevId = prev ? prev.modalId : undefined;
modalStack.push({modalId, prev: prevId});
});
this.$root.$on('bv::modal::hidden', (bvEvent) => {
const modalId = bvEvent.target && bvEvent.target.id;
if (!modalId) return;
const modalStack = this.$store.state.modalStack;
const modalOnTop = modalStack[modalStack.length - 1];
// Check for invalid modal. Event systems can send multiples
if (!this.validStack(modalStack)) return;
// If we are moving forward
if (modalOnTop && modalOnTop.prev === modalId) return;
// Remove modal from stack
this.$store.state.modalStack.pop();
// Get previous modal
const modalBefore = modalOnTop ? modalOnTop.prev : undefined;
if (modalBefore) this.$root.$emit('bv::show::modal', modalBefore, {fromRoot: true});
});
},
validStack (modalStack) {
const modalsThatCanShowTwice = ['profile'];
const modalCount = {};
const prevAndCurrent = 2;
for (let index in modalStack) {
const current = modalStack[index];
if (!modalCount[current.modalId]) modalCount[current.modalId] = 0;
modalCount[current.modalId] += 1;
if (modalCount[current.modalId] > prevAndCurrent && modalsThatCanShowTwice.indexOf(current.modalId) === -1) {
this.$store.state.modalStack = [];
return false;
}
if (!current.prev) continue; // eslint-disable-line
if (!modalCount[current.prev]) modalCount[current.prev] = 0;
modalCount[current.prev] += 1;
if (modalCount[current.prev] > prevAndCurrent && modalsThatCanShowTwice.indexOf(current.prev) === -1) {
this.$store.state.modalStack = [];
return false;
}
}
return true;
},
trackGemPurchase (modalId, data) {
// Track opening of gems modal unless it's been already tracked
// For example the gems button in the menu already tracks the event by itself
if (modalId === 'buy-gems' && data.alreadyTracked !== true) {
Analytics.track({
hitType: 'event',
eventCategory: 'button',
eventAction: 'click',
eventLabel: 'Gems > Wallet',
});
}
},
resetItemToBuy ($event) {
// @TODO: Do we need this? I think selecting a new item
// overwrites. @negue might know
@@ -1,78 +1,60 @@
.promo_armoire_background_201803 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -735px;
background-position: -142px -327px;
width: 141px;
height: 441px;
}
.promo_cupid_potions {
.promo_egg_hunt {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -284px -735px;
width: 138px;
height: 441px;
}
.promo_dysheartener {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -441px 0px;
width: 730px;
height: 170px;
}
.promo_hippogriff {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -1172px -587px;
width: 105px;
height: 105px;
background-position: -814px 0px;
width: 354px;
height: 147px;
}
.promo_hugabug_bundle {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -1172px 0px;
background-position: -583px -408px;
width: 141px;
height: 441px;
}
.promo_mystery_201802 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -327px;
background-position: -441px 0px;
width: 372px;
height: 196px;
}
.promo_rainbow_potions {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -142px -735px;
background-position: -441px -408px;
width: 141px;
height: 441px;
}
.promo_seasonalshop_broken {
.promo_seasonalshop_spring {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -751px -171px;
width: 198px;
height: 147px;
background-position: -814px -148px;
width: 162px;
height: 138px;
}
.promo_spring_fling_2018 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -327px;
width: 141px;
height: 588px;
}
.promo_take_this {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -950px -171px;
background-position: -977px -148px;
width: 114px;
height: 87px;
}
.promo_valentines {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -441px -171px;
width: 309px;
height: 147px;
}
.scene_achievement {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -524px;
background-position: -441px -197px;
width: 339px;
height: 210px;
}
.scene_coding {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -373px -327px;
width: 150px;
height: 150px;
}
.scene_sweeping {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -1172px -442px;
background-position: -814px -287px;
width: 138px;
height: 144px;
}
@@ -1,12 +1,54 @@
.quest_TEMPLATE_FOR_MISSING_IMAGE {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -251px -1519px;
background-position: -832px -1519px;
width: 221px;
height: 39px;
}
.quest_atom3 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -211px -1519px;
width: 216px;
height: 180px;
}
.quest_axolotl {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1320px -660px;
width: 219px;
height: 219px;
}
.quest_badger {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -220px -892px;
width: 219px;
height: 219px;
}
.quest_basilist {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -642px -1519px;
width: 189px;
height: 141px;
}
.quest_beetle {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1322px -1112px;
width: 204px;
height: 201px;
}
.quest_bunny {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: 0px -1519px;
width: 210px;
height: 186px;
}
.quest_butterfly {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -440px -232px;
width: 219px;
height: 219px;
}
.quest_cheetah {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -440px -672px;
background-position: -660px 0px;
width: 219px;
height: 219px;
}
@@ -18,7 +60,7 @@
}
.quest_dilatory {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: 0px -232px;
background-position: -220px -452px;
width: 219px;
height: 219px;
}
@@ -30,55 +72,55 @@
}
.quest_dilatoryDistress2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1932px -1023px;
background-position: -1757px -573px;
width: 150px;
height: 150px;
}
.quest_dilatoryDistress3 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -660px 0px;
background-position: -880px 0px;
width: 219px;
height: 219px;
}
.quest_dilatory_derby {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -440px 0px;
background-position: 0px -452px;
width: 219px;
height: 219px;
}
.quest_dustbunnies {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -660px -220px;
background-position: -880px -220px;
width: 219px;
height: 219px;
}
.quest_egg {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1932px -362px;
background-position: -1757px -214px;
width: 165px;
height: 207px;
}
.quest_evilsanta {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1932px -1174px;
background-position: -1757px -1026px;
width: 118px;
height: 131px;
}
.quest_evilsanta2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -440px -452px;
background-position: -220px -672px;
width: 219px;
height: 219px;
}
.quest_falcon {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -660px -452px;
background-position: -440px -672px;
width: 219px;
height: 219px;
}
.quest_ferret {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -880px 0px;
background-position: -660px -672px;
width: 219px;
height: 219px;
}
@@ -90,19 +132,19 @@
}
.quest_ghost_stag {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -880px -440px;
background-position: -1100px 0px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: 0px -672px;
background-position: -1100px -220px;
width: 219px;
height: 219px;
}
.quest_goldenknight2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1311px -1332px;
background-position: -1345px -1332px;
width: 250px;
height: 150px;
}
@@ -120,13 +162,13 @@
}
.quest_guineapig {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -880px -672px;
background-position: -220px 0px;
width: 219px;
height: 219px;
}
.quest_harpy {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1100px 0px;
background-position: -440px -892px;
width: 219px;
height: 219px;
}
@@ -138,103 +180,103 @@
}
.quest_hippo {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1100px -440px;
background-position: -880px -892px;
width: 219px;
height: 219px;
}
.quest_horse {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1100px -660px;
background-position: -1100px -892px;
width: 219px;
height: 219px;
}
.quest_kraken {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -877px -1332px;
background-position: -443px -1332px;
width: 216px;
height: 177px;
}
.quest_lostMasterclasser1 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -220px -892px;
background-position: -1320px -220px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -440px -892px;
background-position: -1320px -440px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser3 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -660px -892px;
background-position: -1100px -660px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying1 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1932px -570px;
background-position: -1757px -875px;
width: 150px;
height: 150px;
}
.quest_mayhemMistiflying2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1100px -892px;
background-position: 0px -1112px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying3 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1320px 0px;
background-position: -220px -1112px;
width: 219px;
height: 219px;
}
.quest_monkey {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1320px -220px;
background-position: -440px -1112px;
width: 219px;
height: 219px;
}
.quest_moon1 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1540px -651px;
background-position: -1540px 0px;
width: 216px;
height: 216px;
}
.quest_moon2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -220px 0px;
background-position: -660px -892px;
width: 219px;
height: 219px;
}
.quest_moon3 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1320px -880px;
background-position: -880px -672px;
width: 219px;
height: 219px;
}
.quest_moonstone1 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: 0px -1112px;
background-position: 0px -672px;
width: 219px;
height: 219px;
}
.quest_moonstone2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -220px -1112px;
background-position: -440px -452px;
width: 219px;
height: 219px;
}
.quest_moonstone3 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -440px -1112px;
background-position: -660px -220px;
width: 219px;
height: 219px;
}
.quest_nudibranch {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1540px -434px;
background-position: -1540px -868px;
width: 216px;
height: 216px;
}
@@ -246,67 +288,67 @@
}
.quest_owl {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1320px -660px;
background-position: -220px -232px;
width: 219px;
height: 219px;
}
.quest_peacock {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1540px -217px;
background-position: -1540px -434px;
width: 216px;
height: 216px;
}
.quest_penguin {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1932px -178px;
background-position: 0px -1706px;
width: 190px;
height: 183px;
}
.quest_pterodactyl {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1320px -440px;
background-position: 0px -232px;
width: 219px;
height: 219px;
}
.quest_rat {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -880px -892px;
background-position: -660px -1112px;
width: 219px;
height: 219px;
}
.quest_rock {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1540px -868px;
background-position: -1540px -217px;
width: 216px;
height: 216px;
}
.quest_rooster {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: 0px -1670px;
background-position: -428px -1519px;
width: 213px;
height: 174px;
}
.quest_sabretooth {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: 0px -892px;
background-position: -1320px -880px;
width: 219px;
height: 219px;
}
.quest_sheep {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1100px -220px;
background-position: -1320px 0px;
width: 219px;
height: 219px;
}
.quest_slime {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -660px -672px;
background-position: 0px -892px;
width: 219px;
height: 219px;
}
.quest_sloth {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -220px -672px;
background-position: -1100px -440px;
width: 219px;
height: 219px;
}
@@ -318,85 +360,49 @@
}
.quest_snake {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1322px -1112px;
background-position: -877px -1332px;
width: 216px;
height: 177px;
}
.quest_spider {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: 0px -1519px;
background-position: -1094px -1332px;
width: 250px;
height: 150px;
}
.quest_stoikalmCalamity1 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1932px -721px;
background-position: -1757px -422px;
width: 150px;
height: 150px;
}
.quest_stoikalmCalamity2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -880px -220px;
background-position: -880px -440px;
width: 219px;
height: 219px;
}
.quest_stoikalmCalamity3 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -220px -452px;
background-position: -660px -452px;
width: 219px;
height: 219px;
}
.quest_taskwoodsTerror1 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1932px -872px;
background-position: -1757px -724px;
width: 150px;
height: 150px;
}
.quest_taskwoodsTerror2 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1540px 0px;
background-position: -1540px -651px;
width: 216px;
height: 216px;
}
.quest_taskwoodsTerror3 {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: 0px -452px;
width: 219px;
height: 219px;
}
.quest_treeling {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -443px -1332px;
width: 216px;
height: 177px;
}
.quest_trex {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1932px 0px;
width: 204px;
height: 177px;
}
.quest_trex_undead {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -1094px -1332px;
width: 216px;
height: 177px;
}
.quest_triceratops {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -440px -232px;
width: 219px;
height: 219px;
}
.quest_turtle {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -220px -232px;
width: 219px;
height: 219px;
}
.quest_unicorn {
background-image: url('~assets/images/sprites/spritesmith-main-10.png');
background-position: -660px -1112px;
background-position: -440px 0px;
width: 219px;
height: 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
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 KiB

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 158 KiB

+6 -6
View File
@@ -1,9 +1,9 @@
// this variables are used to determine which shop npc/backgrounds should be loaded
// possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines
// possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines, spring
// more to be added on future seasons
$npc_market_flavor: 'normal';
$npc_quests_flavor: 'normal';
$npc_seasonal_flavor: 'normal';
$npc_timetravelers_flavor: 'normal';
$npc_tavern_flavor: 'normal';
$npc_market_flavor: 'spring';
$npc_quests_flavor: 'spring';
$npc_seasonal_flavor: 'spring';
$npc_timetravelers_flavor: 'spring';
$npc_tavern_flavor: 'spring';
@@ -144,7 +144,7 @@ export default {
healer: healerIcon,
wizard: wizardIcon,
}),
selectedClass: '',
selectedClass: 'warrior',
};
},
directives: {
-1
View File
@@ -21,7 +21,6 @@
span(:class="member.preferences.size + '_shirt_' + member.preferences.shirt")
span.head_0
span(:class="member.preferences.size + '_' + getGearClass('armor')")
span.head_0
span(:class="getGearClass('back_collar')")
span(:class="getGearClass('body')")
template(v-for="type in ['bangs', 'base', 'mustache', 'beard']")
@@ -1,18 +1,65 @@
<template lang="pug">
b-modal#report-flag(:title='$t("abuseFlagModalHeading")', size='lg', :hide-footer='true')
.modal-header
h4(v-html="$t('abuseFlagModalHeading', reportData)")
b-modal#report-flag(:title='$t("abuseFlagModalHeading")', size='md', :hide-footer='true')
.modal-body
strong(v-html="$t('abuseFlagModalHeading', reportData)")
blockquote
div(v-markdown='abuseObject.text')
p(v-html="$t('abuseFlagModalBody', abuseFlagModalBody)")
.modal-footer
div
strong {{$t('whyReportingPost')}}
span.optional {{$t('optional')}}
textarea.form-control(v-model='reportComment', :placeholder='$t("whyReportingPostPlaceholder")')
small(v-html="$t('abuseFlagModalBody', abuseFlagModalBody)")
.footer.text-center
button.pull-left.btn.btn-danger(@click='clearFlagCount()', v-if='user.contributor.admin && abuseObject.flagCount > 0')
| Reset Flag Count
button.btn.btn-primary(@click='close()') {{ $t('cancel') }}
button.btn.btn-danger(@click='reportAbuse()') {{ $t('abuseFlagModalButton') }}
a.cancel-link(@click.prevent='close()') {{ $t('cancel') }}
button.btn.btn-danger(@click='reportAbuse()') {{ $t('report') }}
</template>
<style>
#report-flag h5 {
color: #f23035;
}
</style>
<style lang="scss" scoped>
@import '~client/assets/scss/colors.scss';
.modal-body {
margin-top: 1em;
}
blockquote {
border-radius: 2px;
background-color: #f4f4f4;
padding: 1em;
margin-top: 1em;
}
textarea {
margin-top: 1em;
margin-bottom: 1em;
border-radius: 2px;
border: solid 1px $gray-400;
min-height: 106px;
}
.footer {
padding: 1em;
padding-bottom: 2em;
}
a.cancel-link {
color: $blue-10;
margin-right: .5em;
}
.optional {
color: $gray-200;
float: right;
}
</style>
<script>
import { mapState } from 'client/libs/store';
import notifications from 'client/mixins/notifications';
@@ -45,6 +92,7 @@ export default {
abuseFlagModalBody,
abuseObject: '',
groupId: '',
reportComment: '',
};
},
created () {
@@ -64,9 +112,11 @@ export default {
},
async reportAbuse () {
this.notify('Thank you for reporting this violation. The moderators have been notified.');
await this.$store.dispatch('chat:flag', {
groupId: this.groupId,
chatId: this.abuseObject.id,
comment: this.reportComment,
});
this.close();
@@ -41,7 +41,7 @@ div
.grey-progress-bar
.collect-progress-bar(:style="{width: (group.quest.progress.collect[key] / value.count) * 100 + '%'}")
strong {{group.quest.progress.collect[key]}} / {{value.count}}
span.float-right {{parseFloat(user.party.quest.progress.collectedItems) || 0}} items found
div.text-right {{parseFloat(user.party.quest.progress.collectedItems) || 0}} items found
.boss-info(v-if='questData.boss')
.row
.col-6
@@ -963,25 +963,21 @@
this.$root.$emit('bv::show::modal', 'hatching-modal');
}
},
async feedAction (petKey, foodKey) {
let result = await this.$store.dispatch('common:feed', {pet: petKey, food: foodKey});
const result = await this.$store.dispatch('common:feed', {pet: petKey, food: foodKey});
if (result.message) {
this.text(result.message);
}
},
closeHatchPetDialog () {
this.$root.$emit('bv::hide::modal', 'hatching-modal');
},
resetHatchablePet ($event) {
if (!$event) {
this.hatchablePet = null;
}
},
onFoodClicked ($event, food) {
if (this.currentDraggingFood === null || this.currentDraggingFood !== food) {
this.currentDraggingFood = food;
@@ -995,7 +991,6 @@
this.foodClickMode = false;
}
},
mouseMoved ($event) {
if (this.foodClickMode) {
this.$refs.clickFoodInfo.style.left = `${$event.x - 70}px`;
@@ -204,6 +204,7 @@ export default {
},
watch: {
userHp (after, before) {
if (this.user.needsCron) return;
if (after <= 0) {
this.playSound('Death');
this.$root.$emit('bv::show::modal', 'death');
@@ -252,6 +253,7 @@ export default {
this.showLevelUpNotifications(after);
},
userClassSelect (after) {
if (this.user.needsCron) return;
if (!after) return;
this.$root.$emit('bv::show::modal', 'choose-class');
// @TODO: {controller:'UserCtrl', keyboard:false, backdrop:'static'}
@@ -241,6 +241,8 @@ export default {
hello.init({
facebook: process.env.FACEBOOK_KEY, // eslint-disable-line no-process-env
google: process.env.GOOGLE_CLIENT_ID, // eslint-disable-line no-process-env
}, {
redirect_uri: '', // eslint-disable-line
});
},
computed: {
+4 -1
View File
@@ -42,7 +42,7 @@
:item="item"
)
.purchase-amount
.purchase-amount(v-if='item.value > 0')
.how-many-to-buy(v-if='showAmountToBuy(item)')
strong {{ $t('howManyToBuy') }}
div(v-if='showAmountToBuy(item)')
@@ -51,6 +51,9 @@
span(:class="{'notEnough': notEnoughCurrency}")
span.svg-icon.inline.icon-32(aria-hidden="true", v-html="icons[getPriceClass()]")
span.cost(:class="getPriceClass()") {{ item.value }}
div(v-else)
span.svg-icon.inline.icon-32(aria-hidden="true", v-html="icons[getPriceClass()]")
span.cost(:class="getPriceClass()") {{ item.value }}
.gems-left(v-if='item.key === "gem"')
strong(v-if='gemsLeft > 0') {{ gemsLeft }} {{ $t('gemsRemaining') }}
@@ -163,7 +163,7 @@
)
span.svg-icon.inline.icon-12.color(v-html="icons.pin")
//keys-to-kennel(v-if='category.identifier === "special"')
keys-to-kennel(v-if='category.identifier === "special"')
div.fill-height
@@ -295,6 +295,7 @@
.content {
display: flex;
flex-direction: column;
z-index: 1; // Always cover background.
}
.npc {
@@ -466,7 +467,7 @@ export default {
},
async mounted () {
const worldState = await this.$store.dispatch('worldState:getWorldState');
this.broken = worldState.worldBoss.extra.worldDmg.market;
this.broken = worldState && worldState.worldBoss && worldState.worldBoss.extra && worldState.worldBoss.extra.worldDmg && worldState.worldBoss.extra.worldDmg.market;
},
computed: {
...mapState({
@@ -702,8 +703,10 @@ export default {
break;
}
case 'sortByNumber': {
result = _sortBy(result, i => {
return this.userItems[i.purchaseType][i.key] || 0;
result = _sortBy(result, item => {
if (item.showCount === false) return 0;
return this.userItems[item.purchaseType][item.key] || 0;
});
break;
}
@@ -6,7 +6,7 @@
:emptyItem="false",
popoverPosition="'top'",
@click="releasePets()",
v-if='this.user.achievements.beastMaster'
v-if='userHasAllPets'
)
shopItem(
:key="keysToMounts.key",
@@ -14,7 +14,7 @@
:emptyItem="false",
popoverPosition="'top'",
@click="releaseMounts()",
v-if='this.user.achievements.mountMaster'
v-if='userHasAllMounts'
)
shopItem(
:key="keysToBoth.key",
@@ -22,7 +22,7 @@
:emptyItem="false",
popoverPosition="'top'",
@click="releaseBoth()",
v-if='this.user.achievements.mountMaster'
v-if='userHasAllPets && userHasAllMounts'
)
</template>
@@ -61,9 +61,7 @@
import { mapState } from 'client/libs/store';
import ShopItem from '../shopItem';
import releasePets from 'common/script/ops/releasePets';
import releaseMounts from 'common/script/ops/releaseMounts';
import releaseBoth from 'common/script/ops/releaseBoth';
import count from 'common/script/count';
import notifications from 'client/mixins/notifications';
@@ -88,11 +86,14 @@ export default {
buy: () => {
if (!confirm(this.$t('releasePetsConfirm'))) return;
try {
releasePets(this.user);
this.$store.dispatch('shops:releasePets', {user: this.user});
this.text(this.$t('releasePetsSuccess'));
// this.$router.push({name: 'stable'});
// Reload because achievement is set in user.save instead of common
window.location.reload(true);
} catch (err) {
alert(err.message);
}
this.text(this.$t('releasePetsSuccess'));
},
},
keysToMounts: {
@@ -108,18 +109,21 @@ export default {
buy: () => {
if (!confirm(this.$t('releaseMountsConfirm'))) return;
try {
releaseMounts(this.user);
this.$store.dispatch('shops:releaseMounts', {user: this.user});
this.text(this.$t('releaseMountsSuccess'));
// this.$router.push({name: 'stable'});
// Reload because achievement is set in user.save instead of common
window.location.reload(true);
} catch (err) {
alert(err.message);
}
this.text(this.$t('releaseMountsSuccess'));
},
},
keysToBoth: {
key: 'keysToBoth',
text: this.$t('keyToBoth'),
notes: this.$t('keyToBothDesc'),
value: 6,
value: 0,
currency: 'gems',
class: 'key_to_both',
locked: false,
@@ -128,17 +132,26 @@ export default {
buy: () => {
if (!confirm(this.$t('releaseBothConfirm'))) return;
try {
releaseBoth(this.user);
this.$store.dispatch('shops:releaseBoth', {user: this.user});
this.text(this.$t('releaseBothSuccess'));
// this.$router.push({name: 'stable'});
// Reload because achievement is set in user.save instead of common
window.location.reload(true);
} catch (err) {
alert(err.message);
}
this.text(this.$t('releaseBothSuccess'));
},
},
};
},
computed: {
...mapState({user: 'user.data'}),
userHasAllPets () {
return count.beastCount(this.user.items.pets) === 90;
},
userHasAllMounts () {
return count.mountMasterProgress(this.user.items.mounts) === 90;
},
},
methods: {
releasePets () {
@@ -400,7 +400,7 @@ export default {
},
async mounted () {
const worldState = await this.$store.dispatch('worldState:getWorldState');
this.broken = worldState.worldBoss.extra.worldDmg.quests;
this.broken = worldState && worldState.worldBoss && worldState.worldBoss.extra && worldState.worldBoss.extra.worldDmg && worldState.worldBoss.extra.worldDmg.quests;
},
computed: {
...mapState({
@@ -23,8 +23,7 @@
)
.standard-page
div.featuredItems
.background(:class="{opened: seasonal.opened && !broken, broken: broken}")
.background(:class="{cracked: broken, broken: broken}")
.background(:class="{opened: seasonal.opened}")
div.npc
div.featured-label
span.rectangle
@@ -373,7 +372,7 @@
},
async mounted () {
const worldState = await this.$store.dispatch('worldState:getWorldState');
this.broken = worldState.worldBoss.extra.worldDmg.seasonalShop;
this.broken = worldState && worldState.worldBoss && worldState.worldBoss.extra && worldState.worldBoss.extra.worldDmg && worldState.worldBoss.extra.worldDmg.seasonalShop;
},
computed: {
...mapState({
+2 -2
View File
@@ -79,11 +79,11 @@ export default {
}
if (filters.guildSize && filters.guildSize.indexOf('silver_tier') !== -1) {
correctSize = group.memberCount > 100 && group.memberCount < 999;
correctSize = group.memberCount > 100 && group.memberCount < 1000;
}
if (filters.guildSize && filters.guildSize.indexOf('bronze_tier') !== -1) {
correctSize = group.memberCount < 99;
correctSize = group.memberCount < 100;
}
return passedSearch && hasCategories && isMember && isLeader && correctSize;
+4 -2
View File
@@ -69,8 +69,10 @@ export async function like (store, payload) {
}
export async function flag (store, payload) {
let url = `/api/v3/groups/${payload.groupId}/chat/${payload.chatId}/flag`;
let response = await axios.post(url);
const url = `/api/v3/groups/${payload.groupId}/chat/${payload.chatId}/flag`;
const response = await axios.post(url, {
comment: payload.comment,
});
return response.data.data;
}
+2 -2
View File
@@ -26,8 +26,8 @@ export function hatch (store, params) {
export async function feed (store, params) {
const user = store.state.user.data;
feedOp(user, {params});
let response = await axios
.post(`/api/v3/user/feed/${params.pet}/${params.food}`);
const response = await axios
.post(`/api/v3/user/feed/${params.pet}/${params.food}`);
return response.data;
}
+20 -5
View File
@@ -6,6 +6,10 @@ import hourglassPurchaseOp from 'common/script/ops/buy/hourglassPurchase';
import sellOp from 'common/script/ops/sell';
import unlockOp from 'common/script/ops/unlock';
import rerollOp from 'common/script/ops/reroll';
import releasePetsOp from 'common/script/ops/releasePets';
import releaseMountsOp from 'common/script/ops/releaseMounts';
import releaseBothOp from 'common/script/ops/releaseBoth';
import { getDropClass } from 'client/libs/notifications';
// @TODO: Purchase means gems and buy means gold. That wording is misused below, but we should also change
@@ -15,13 +19,9 @@ function buyItem (store, params) {
const quantity = params.quantity || 1;
const user = store.state.user.data;
const userPinned = user.pinnedItems.slice();
let opResult = buyOp(user, {params, quantity});
// @TODO: Currently resetting the pinned items will reset the market. Purchasing some items does not reset pinned.
// For now, I've added this hack for items like contributor gear to update while I am working on add more computed
// properties to the market. We will use this quick fix while testing the other changes.
user.pinnedItems = userPinned;
user.pinnedItems = opResult[0].pinnedItems;
return {
@@ -176,3 +176,18 @@ export function sellItems (store, params) {
sellOp(user, {params, query: {amount: params.amount}});
axios.post(`/api/v3/user/sell/${params.type}/${params.key}?amount=${params.amount}`);
}
export function releasePets (store, params) {
releasePetsOp(params.user);
axios.post('/api/v3/user/release-pets');
}
export function releaseMounts (store, params) {
releaseMountsOp(params.user);
axios.post('/api/v3/user/release-mounts');
}
export function releaseBoth (store, params) {
releaseBothOp(params.user);
axios.post('/api/v3/user/release-both');
}
+1 -1
View File
@@ -191,7 +191,7 @@
"hatchingPotionShimmer": "Блещукащ цвят",
"hatchingPotionFairy": "Фейски цвят",
"hatchingPotionStarryNight": "Звездна нощ",
"hatchingPotionRainbow": "Rainbow",
"hatchingPotionRainbow": "Дъга",
"hatchingPotionNotes": "Излейте това върху яйце и от него ще се излюпи любимец с(ъс) <%= potText(locale) %>.",
"premiumPotionAddlNotes": "Не може да се използва върху яйца за любимци от мисии.",
"foodMeat": "Месо",
+28
View File
@@ -250,6 +250,14 @@
"weaponSpecialWinter2018MageNotes": "Магията (и лъскавината) е във въздуха! Увеличава интелигентността с <%= int %> и усета с <%= per %>. Ограничена серия: Зимна екипировка 2017-2018 г.",
"weaponSpecialWinter2018HealerText": "Магическа пръчка от имел",
"weaponSpecialWinter2018HealerNotes": "Този имел със сигурност ще омагьоса и развесели минувачите! Увеличава интелигентността с <%= int %>. Ограничена серия: Зимна екипировка 2017-2018 г.",
"weaponSpecialSpring2018RogueText": "Buoyant Bullrush",
"weaponSpecialSpring2018RogueNotes": "What might appear to be cute cattails are actually quite effective weapons in the right wings. Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018WarriorText": "Axe of Daybreak",
"weaponSpecialSpring2018WarriorNotes": "Made of bright gold, this axe is mighty enough to attack the reddest task! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018MageText": "Tulip Stave",
"weaponSpecialSpring2018MageNotes": "This magic flower never wilts! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018HealerText": "Garnet Rod",
"weaponSpecialSpring2018HealerNotes": "The stones in this staff will focus your power when you cast healing spells! Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"weaponMystery201411Text": "Вилица на изобилието",
"weaponMystery201411Notes": "Наръгайте враговете си или си боцнете от любимата храна — тази универсална вилица може всичко! не променя показателите. Предмет за абонати: ноември 2014 г.",
"weaponMystery201502Text": "Блестящият крилат скиптър на любовта и истината",
@@ -552,6 +560,14 @@
"armorSpecialWinter2018MageNotes": "Най-великият вълшебен официален костюм. Увеличава интелигентността с <%= int %>. Ограничена серия: Зимна екипировка 2017-2018 г.",
"armorSpecialWinter2018HealerText": "Имелови одежди",
"armorSpecialWinter2018HealerNotes": "В тези одежди са втъкани вълшебни заклинания за допълнителна празнична радост. Увеличава якостта с <%= con %>. Ограничена серия: Зимна екипировка 2017-2018 г.",
"armorSpecialSpring2018RogueText": "Feather Suit",
"armorSpecialSpring2018RogueNotes": "This fluffy yellow costume will trick your enemies into thinking you're just a harmless ducky! Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018WarriorText": "Armor of Dawn",
"armorSpecialSpring2018WarriorNotes": "This colorful plate is forged with the sunrise's fire. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018MageText": "Tulip Robe",
"armorSpecialSpring2018MageNotes": "Your spell casting can only improve while clad in these soft, silky petals. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018HealerText": "Garnet Armor",
"armorSpecialSpring2018HealerNotes": "Let this bright armor infuse your heart with power for healing. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorMystery201402Text": "Одежди на вестоносец",
"armorMystery201402Notes": "Блестящи и здрави, тези одежди имат много джобове за носене на писма. Не променя показателите. Предмет за абонати: февруари 2014 г.",
"armorMystery201403Text": "Броня на горски бродник",
@@ -926,6 +942,14 @@
"headSpecialWinter2018MageNotes": "Искате ли допълнителна специална магия? Тази блестяща шапка със сигурност ще подобри всичките Ви заклинания! Увеличава усета с <%= per %>. Ограничена серия: Зимна екипировка 2017-2018 г.",
"headSpecialWinter2018HealerText": "Имелова качулка",
"headSpecialWinter2018HealerNotes": "С тази забавна качулка ще Ви бъде топло и празнично! Увеличава интелигентността с <%= int %>. Ограничена серия: Зимна екипировка 2017-2018 г.",
"headSpecialSpring2018RogueText": "Duck-Billed Helm",
"headSpecialSpring2018RogueNotes": "Quack quack! Your cuteness belies your clever and sneaky nature. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018WarriorText": "Helm of Rays",
"headSpecialSpring2018WarriorNotes": "The brightness of this helm will dazzle any enemies nearby! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018MageText": "Tulip Helm",
"headSpecialSpring2018MageNotes": "The fancy petals of this helm will grant you special springtime magic. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018HealerText": "Garnet Circlet",
"headSpecialSpring2018HealerNotes": "The polished gems of this circlet will enhance your mental energy. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"headSpecialGaymerxText": "Боен шлем с цветовете на дъгата",
"headSpecialGaymerxNotes": "В чест на конференцията GaymerX, този специален шлем е оцветен с шарка на дъга! GaymerX е игрално изложение в чест на ЛГБТ културата и игрите и е отворено за всички.",
"headMystery201402Text": "Крилат шлем",
@@ -1230,6 +1254,10 @@
"shieldSpecialWinter2018WarriorNotes": "В тази торба можете да откриете почти всички, от което се нуждаете, ако знаете правилните вълшебни думички. Увеличава якостта с <%= con %>. Ограничена серия: Зимна екипировка 2017-2018 г.",
"shieldSpecialWinter2018HealerText": "Имелов звънец",
"shieldSpecialWinter2018HealerNotes": "Какъв е този звук? Това е звукът на топлината и веселието, и всички ще го чуят. Увеличава якостта с <%= con %>. Ограничена серия: Зимна екипировка 2014-2015 г.",
"shieldSpecialSpring2018WarriorText": "Shield of the Morning",
"shieldSpecialSpring2018WarriorNotes": "This sturdy shield glows with the glory of first light. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldSpecialSpring2018HealerText": "Garnet Shield",
"shieldSpecialSpring2018HealerNotes": "Despite its fancy appearance, this garnet shield is quite durable! Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldMystery201601Text": "Решителен убиец",
"shieldMystery201601Notes": "Това острие може да отблъсне всички разсейващи Ви неща. Не променя показателите. Предмет за абонати: януари 2016 г.",
"shieldMystery201701Text": "Спиращ времето щит",
+5 -2
View File
@@ -143,11 +143,14 @@
"badAmountOfGemsToSend": "Стойността трябва да бъде между 1 и текущия Ви брой диаманти.",
"report": "Докладване",
"abuseFlag": "Докладване на нарушение на Обществените правила",
"abuseFlagModalHeading": "Докладване на <%= name %> за нарушение?",
"abuseFlagModalBody": "Наистина ли искате да докладвате тази публикация? Трябва да докладвате САМО публикации, които нарушават <%= firstLinkStart %>Обществените правила<%= linkEnd %> и/или <%= secondLinkStart %>Условията на услугата<%= linkEnd %>. Неуместното докладване на публикация е нарушение на Обществените правила, и може да получите наказание. Правилните причина за докладване на публикация включват (но не се изчерпват):<br><br><ul style='margin-left: 10px;'><li>ругаене, религиозни клетви;</li><li>фанатизъм, обиди;</li><li>теми за възрастни;</li><li>насилие, дори и на шега;</li><li>нежелани или безсмислени съобщения.</li></ul>",
"abuseFlagModalHeading": "Докладване за нарушение",
"abuseFlagModalBody": "Наистина ли искате да докладвате тази публикация? Трябва да докладвате <strong>само</strong> публикации, които нарушават <%= firstLinkStart %>Обществените правила<%= linkEnd %> и/или <%= secondLinkStart %>Условията на услугата<%= linkEnd %>. Неуместното докладване на публикация е нарушение на Обществените правила, и може да получите наказание.",
"abuseFlagModalButton": "Докладване за нарушение",
"abuseReported": "Благодарим Ви, че докладвахте за това нарушение. Модераторите бяха уведомени.",
"abuseAlreadyReported": "Вече сте докладвали това съобщение.",
"whyReportingPost": "Защо докладвате тази публикация?",
"whyReportingPostPlaceholder": "Моля, помогнете на модераторите, като ни кажете защо докладвате тази публикация за нарушение, например: защото е нежелана, включва ругатни, клетви, фанатизъм, обиди, теми за възрастни, насилие.",
"optional": "Незадължително",
"needsText": "Моля, напишете съобщение.",
"needsTextPlaceholder": "Въведете съобщението си тук.",
"copyMessageAsToDo": "Копиране на съобщението като задача",
+6 -2
View File
@@ -29,10 +29,10 @@
"seasonalShopClosedTitle": "<%= linkStart %>Лесли<%= linkEnd %>",
"seasonalShopTitle": "<%= linkStart %>Сезонна Магьосница<%= linkEnd %>",
"seasonalShopClosedText": "Сезонният магазин в момента е затворен! Той е отворен само по време на четирите големи празненства на Хабитика.",
"seasonalShopText": "Честито Буйно пролетно събитие!! Искате ли да си купите редки предмети? Те ще бъдат налични само до 30 април!",
"seasonalShopSummerText": "Честито Смазващо лятно събитие!! Искате ли да си купите редки предмети? Те ще бъдат налични само до 31 юли!",
"seasonalShopFallText": "Честит Есенен фестивал!! Искате ли да си купите редки предмети? Те ще бъдат налични само до 31 октомври!",
"seasonalShopWinterText": "Честито Приказно зимно събитие!! Искате ли да си купите редки предмети? Те ще бъдат налични само до 31 януари!",
"seasonalShopSpringText": "Happy Spring Fling!! Would you like to buy some rare items? Theyll only be available until April 30th!",
"seasonalShopFallTextBroken": "О… добре дошли в сезонния магазин… В момента предлагаме стоки от есенното сезонно издание, или нещо такова… Всичко тук ще бъде налично за купуване по време на Есенния фестивал всяка година, но магазинът ще бъде отворен само до 31-ви октомври… предполагам, че няма да е лошо да се запасите сега, или ще трябва да чакате… и чакате… и чакате… <strong>*въздишка*</strong>",
"seasonalShopBrokenText": "Павилионът ми!!!!!!! Декорациите ми!!!! О, Обезсърчителят унищожи всичко :( Моля Ви, помогнете да го победим в кръчмата, за да мога да построя всичко отново!",
"seasonalShopRebirth": "Ако сте купили някой от тези предмети преди време, но в момента не го притежавате, можете да го закупите отново в колонката с награди. Първоначално ще можете да закупувате само предметите за класа Ви (воин, по подразбиране), но не се безпокойте — останалите класово-специфични предмети ще се появят, ако превключите към съответния клас.",
@@ -117,8 +117,12 @@
"winter2018GiftWrappedSet": "Опакован като подарък воин (воин)",
"winter2018MistletoeSet": "Имелен лечител (лечител)",
"winter2018ReindeerSet": "Еленов мошеник (мошеник)",
"spring2018SunriseWarriorSet": "Sunrise Warrior (Warrior)",
"spring2018TulipMageSet": "Tulip Mage (Mage)",
"spring2018GarnetHealerSet": "Garnet Healer (Healer)",
"spring2018DucklingRogueSet": "Duckling Rogue (Rogue)",
"eventAvailability": "Налично за купуване до <%= date(locale) %>.",
"dateEndMarch": "March 31",
"dateEndMarch": "31 март",
"dateEndApril": "19 април",
"dateEndMay": "17 май",
"dateEndJune": "14 юни",
+4 -1
View File
@@ -138,5 +138,8 @@
"dragThisPotion": "Завлачете <%= potionName %> до яйце и ще се излюпи нов любимец!",
"clickOnEggToHatch": "Щракнете върху яйце, за да използвате своята излюпваща отвара с(ъс) <%= potionName %> и ще се излюпи нов любимец!",
"hatchDialogText": "Изсипете своята излюпваща отвара с(ъс) <%= potionName %> върху своето яйце на <%= eggName %> и от него ще се излюпи <%= petName %>.",
"clickOnPotionToHatch": "Щракнете върху излюпваща отвара, която да използвате върху върху своето яйце на <%= eggName %> и от него ще се излюпи нов любимец!"
"clickOnPotionToHatch": "Щракнете върху излюпваща отвара, която да използвате върху върху своето яйце на <%= eggName %> и от него ще се излюпи нов любимец!",
"notEnoughPets": "Не сте събрали достатъчно любимци",
"notEnoughMounts": "Не сте събрали достатъчно превози",
"notEnoughPetsMounts": "Не сте събрали достатъчно любимци и превози"
}
+33 -5
View File
@@ -198,8 +198,8 @@
"weaponSpecialSummer2016RogueNotes": "Každého, kdo s tebou bude bojovat, čeká šokující překvapení... Zvyšuje sílu o <%= str %>. Limitovaná edice 2016 Letní výbavy.",
"weaponSpecialSummer2016WarriorText": "Zahnutý meč",
"weaponSpecialSummer2016WarriorNotes": "Zakousni se do těch těžkých úkolů s tímto zakřiveným mečem! Zvyšuje sílu o <%= str %>. Limitovaná edice 2016 Letní výbavy.",
"weaponSpecialSummer2016MageText": "Seafoam Staff",
"weaponSpecialSummer2016MageNotes": "All the power of the seas filters through this staff. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2016 Summer Gear.",
"weaponSpecialSummer2016MageText": "Hůl z Mořské pěny",
"weaponSpecialSummer2016MageNotes": "Veškerá moc moří je filtrována skrze tuto hůl. Zvyšuje Inteligenci o <%= int %> a Vnímání o <%= per %>. Limitovaná edice letní výbavy 2016.",
"weaponSpecialSummer2016HealerText": "Léčivý Trojzubec",
"weaponSpecialSummer2016HealerNotes": "Jeden hrot zraňuje, druhý léčí. Zvyšuje Inteligenci o <%= int %>. Limitovaná edice 2015 Letní výbavy.",
"weaponSpecialFall2016RogueText": "Dýka Pavoučího kousnutí",
@@ -208,10 +208,10 @@
"weaponSpecialFall2016WarriorNotes": "Zaútoč na tvé úkoly s těmito zakroucenými kořeny! Zvyšuje Sílu o <%= str %>. Limitovaná edice 2016 Podzimní výbavy.",
"weaponSpecialFall2016MageText": "Zlověstná Koule",
"weaponSpecialFall2016MageNotes": "Této koule se na svoji budoucnost raději neptej... Zvyšuje Inteligenci o <%= int %> a Vnímání o <%= per %>. Limitovaná edice 2016 Podzimní výbavy.",
"weaponSpecialFall2016HealerText": "Venomous Serpent",
"weaponSpecialFall2016HealerNotes": "One bite harms, and another bite heals. Increases Intelligence by <%= int %>. Limited Edition 2016 Autumn Gear.",
"weaponSpecialFall2016HealerText": "Jedovatý Had",
"weaponSpecialFall2016HealerNotes": "Jedno kousnutí zraňuje, druhé léčí. Zvyšuje inteligenci o <%= int %>. Limitovaná edice podzimní výbavy 2016.",
"weaponSpecialWinter2017RogueText": "Ledová Sekera",
"weaponSpecialWinter2017RogueNotes": "This axe is great for attack, defense, and ice-climbing! Increases Strength by <%= str %>. Limited Edition 2016-2017 Winter Gear.",
"weaponSpecialWinter2017RogueNotes": "Tato sekera je skvělá pro útok, obranu, a šplhání po ledu! Zvyšuje Sílu o <%= str %>. Limitovaná edice zimní výbavy 2016-2017.",
"weaponSpecialWinter2017WarriorText": "Stick of Might",
"weaponSpecialWinter2017WarriorNotes": "Conquer your goals by whacking them with this mighty stick! Increases Strength by <%= str %>. Limited Edition 2016-2017 Winter Gear.",
"weaponSpecialWinter2017MageText": "Winter Wolf Crystal Staff",
@@ -250,6 +250,14 @@
"weaponSpecialWinter2018MageNotes": "Magic--and glitter--is in the air! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2017-2018 Winter Gear.",
"weaponSpecialWinter2018HealerText": "Mistletoe Wand",
"weaponSpecialWinter2018HealerNotes": "This mistletoe ball is sure to enchant and delight passersby! Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"weaponSpecialSpring2018RogueText": "Buoyant Bullrush",
"weaponSpecialSpring2018RogueNotes": "What might appear to be cute cattails are actually quite effective weapons in the right wings. Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018WarriorText": "Axe of Daybreak",
"weaponSpecialSpring2018WarriorNotes": "Made of bright gold, this axe is mighty enough to attack the reddest task! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018MageText": "Tulip Stave",
"weaponSpecialSpring2018MageNotes": "This magic flower never wilts! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018HealerText": "Garnet Rod",
"weaponSpecialSpring2018HealerNotes": "The stones in this staff will focus your power when you cast healing spells! Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"weaponMystery201411Text": "Vidle hodů",
"weaponMystery201411Notes": "Píchni své nepřátele nebo se pusť do svého oblíbeného jídla - tyhle všestranné vidle zvládnou všechno! Nepřináší žádný benefit.",
"weaponMystery201502Text": "Třpytivá okřídlená hůl lásky a také pravdy",
@@ -552,6 +560,14 @@
"armorSpecialWinter2018MageNotes": "The ultimate in magical formalwear. Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"armorSpecialWinter2018HealerText": "Mistletoe Robes",
"armorSpecialWinter2018HealerNotes": "These robes are woven with spells for extra holiday joy. Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"armorSpecialSpring2018RogueText": "Feather Suit",
"armorSpecialSpring2018RogueNotes": "This fluffy yellow costume will trick your enemies into thinking you're just a harmless ducky! Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018WarriorText": "Armor of Dawn",
"armorSpecialSpring2018WarriorNotes": "This colorful plate is forged with the sunrise's fire. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018MageText": "Tulip Robe",
"armorSpecialSpring2018MageNotes": "Your spell casting can only improve while clad in these soft, silky petals. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018HealerText": "Garnet Armor",
"armorSpecialSpring2018HealerNotes": "Let this bright armor infuse your heart with power for healing. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorMystery201402Text": "Oděv poslíčka",
"armorMystery201402Notes": "Třpytivý a silný, tento oděv má spoustu kapes na dopisy. Nepřináší žádný benefit. Výbava pro předplatitele únor 2014",
"armorMystery201403Text": "Zbroj lesáka",
@@ -926,6 +942,14 @@
"headSpecialWinter2018MageNotes": "Ready for some extra special magic? This glittery hat is sure to boost all your spells! Increases Perception by <%= per %>. Limited Edition 2017-2018 Winter Gear.",
"headSpecialWinter2018HealerText": "Mistletoe Hood",
"headSpecialWinter2018HealerNotes": "This fancy hood will keep you warm with happy holiday feelings! Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"headSpecialSpring2018RogueText": "Duck-Billed Helm",
"headSpecialSpring2018RogueNotes": "Quack quack! Your cuteness belies your clever and sneaky nature. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018WarriorText": "Helm of Rays",
"headSpecialSpring2018WarriorNotes": "The brightness of this helm will dazzle any enemies nearby! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018MageText": "Tulip Helm",
"headSpecialSpring2018MageNotes": "The fancy petals of this helm will grant you special springtime magic. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018HealerText": "Garnet Circlet",
"headSpecialSpring2018HealerNotes": "The polished gems of this circlet will enhance your mental energy. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"headSpecialGaymerxText": "Helma duhového bojovníka",
"headSpecialGaymerxNotes": "Ku příležitosti oslav GaymerX je tato speciální helma zdobena zářivým, barevným, duhovým vzorem! GaymerX je herní veletrh oslavující LGBTQ a hry a je otevřený všem.",
"headMystery201402Text": "Okřídlená přilba",
@@ -1230,6 +1254,10 @@
"shieldSpecialWinter2018WarriorNotes": "Just about any useful thing you need can be found in this sack, if you know the right magic words to whisper. Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"shieldSpecialWinter2018HealerText": "Mistletoe Bell",
"shieldSpecialWinter2018HealerNotes": "What's that sound? The sound of warmth and cheer for all to hear! Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"shieldSpecialSpring2018WarriorText": "Shield of the Morning",
"shieldSpecialSpring2018WarriorNotes": "This sturdy shield glows with the glory of first light. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldSpecialSpring2018HealerText": "Garnet Shield",
"shieldSpecialSpring2018HealerNotes": "Despite its fancy appearance, this garnet shield is quite durable! Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldMystery201601Text": "Kat odhodlání",
"shieldMystery201601Notes": "Tento meč lze použít k odražení všech rozptýlení. Neposkytuje žádný bonus. Předplatitelský předmět ledna 2016.",
"shieldMystery201701Text": "Time-Freezer Shield",
+7 -7
View File
@@ -33,7 +33,7 @@
"showLess": "Ukaž méně",
"expandToolbar": "Rozbalit lištu",
"collapseToolbar": "Zabalit lištu",
"markdownHelpLink": "Markdown formatting help",
"markdownHelpLink": "Nápověda k formátování.",
"showFormattingHelp": "Ukázat nápovědu k formátování",
"hideFormattingHelp": "Schovat nápovědu k formátování",
"youType": "Napíšeš:",
@@ -60,7 +60,7 @@
"groupPlansTitle": "Skupinové plány",
"newGroupTitle": "Nová skupina",
"subscriberItem": "Záhadný předmět",
"newSubscriberItem": "You have new <span class=\"notification-bold-blue\">Mystery Items</span>",
"newSubscriberItem": "Máš nové <span class=\"notification-bold-blue\">Záhadné předměty</span>",
"subscriberItemText": "Předplatitelé obdrží každý měsíc záhadný předmět. Ten je zpravidla představen týden před koncem měsíce. Pro více informací mrkni na stránku 'Mystery Item' na wiki.",
"all": "Vše",
"none": "Žádné",
@@ -100,10 +100,10 @@
"originalUserText": "Jeden z <em>velmi</em> ranných osvojitelů. Tomu říkám alfa tester!",
"habitBirthday": "Narozeninový flám země Habitica",
"habitBirthdayText": "Zúčastnil se narozeninového flámu země Habitica!",
"habitBirthdayPluralText": "Celebrated <%= count %> Habitica Birthday Bashes!",
"habitBirthdayPluralText": "Oslavil <%= count %> narozenin země Habitica!",
"habiticaDay": "Jmeniny země Habitica",
"habiticaDaySingularText": "Oslavil jmeniny země Habitica! Díky, že jsi tak fantastický uživatel.",
"habiticaDayPluralText": "Celebrated <%= count %> Naming Days! Thanks for being a fantastic user.",
"habiticaDayPluralText": "Oslavil <%= count %> jmenin! Díky, že jsi tak fantastický uživatel.",
"achievementDilatory": "Zachránce Liknavosti",
"achievementDilatoryText": "Pomohl přemoci obávaného Drag'ona z Liknavosti v průběhu letní Šplouch akce 2014!",
"costumeContest": "Soutěžící s kostýmem",
@@ -216,9 +216,9 @@
"getwell2": "Myslím na tebe!",
"getwell3": "Je mi líto, že se necítíš nejlépe!",
"getwellCardAchievementTitle": "Caring Confidant",
"getwellCardAchievementText": "Well-wishes are always appreciated. Sent or received <%= count %> get well cards.",
"goodluckCard": "Good Luck Card",
"goodluckCardExplanation": "You both receive the Lucky Letter achievement!",
"getwellCardAchievementText": "Dobrá přání jsou vždy oceňovány. Pošli nebo obdrž <%= count %> kartu \"uzdrav se\".",
"goodluckCard": "Karta \"Hodně štěstí!\"",
"goodluckCardExplanation": "Oba obdržíte ocenění Šťastný dopis!!",
"goodluckCardNotes": "Send a good luck card to a party member.",
"goodluck0": "Nechť tě vždy provází štěstěna!",
"goodluck1": "Přeji ti hodně štěstí!",
+5 -2
View File
@@ -143,11 +143,14 @@
"badAmountOfGemsToSend": "Částka musí být mezi 1 a vaším současným počtem drahokamů.",
"report": "Report",
"abuseFlag": "Nahlaš porušení Zásad komunity",
"abuseFlagModalHeading": "Nahlásit <%= name %> za porušení?",
"abuseFlagModalBody": "Are you sure you want to report this post? You should ONLY report a post that violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Inappropriately reporting a post is a violation of the Community Guidelines and may give you an infraction. Appropriate reasons to flag a post include but are not limited to:<br><br><ul style='margin-left: 10px;'><li>swearing, religious oaths</li><li>bigotry, slurs</li><li>adult topics</li><li>violence, including as a joke</li><li>spam, nonsensical messages</li></ul>",
"abuseFlagModalHeading": "Report a Violation",
"abuseFlagModalBody": "Are you sure you want to report this post? You should <strong>only</strong> report a post that violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Inappropriately reporting a post is a violation of the Community Guidelines and may give you an infraction.",
"abuseFlagModalButton": "Nahlásit porušení pravidel",
"abuseReported": "Děkujeme za nahlášení tohoto příspěvku. Moderátoři byli upozorněni.",
"abuseAlreadyReported": "Již jsi tento příspěvek nahlásil.",
"whyReportingPost": "Why are you reporting this post?",
"whyReportingPostPlaceholder": "Please help our moderators by letting us know why you are reporting this post for a violation, e.g., spam, swearing, religious oaths, bigotry, slurs, adult topics, violence.",
"optional": "Optional",
"needsText": "Prosím, napiš zprávu.",
"needsTextPlaceholder": "Napiš svou zprávu sem.",
"copyMessageAsToDo": "Zkopírovat zprávu jako Úkol",
+5 -1
View File
@@ -29,10 +29,10 @@
"seasonalShopClosedTitle": "<%= linkStart %>Leslie<%= linkEnd %>",
"seasonalShopTitle": "<%= linkStart %>Sezónní mudrci<%= linkEnd %>",
"seasonalShopClosedText": "The Seasonal Shop is currently closed!! Its only open during Habiticas four Grand Galas.",
"seasonalShopText": "Happy Spring Fling!! Would you like to buy some rare items? Theyll only be available until April 30th!",
"seasonalShopSummerText": "Happy Summer Splash!! Would you like to buy some rare items? Theyll only be available until July 31st!",
"seasonalShopFallText": "Happy Fall Festival!! Would you like to buy some rare items? Theyll only be available until October 31st!",
"seasonalShopWinterText": "Happy Winter Wonderland!! Would you like to buy some rare items? Theyll only be available until January 31st!",
"seasonalShopSpringText": "Happy Spring Fling!! Would you like to buy some rare items? Theyll only be available until April 30th!",
"seasonalShopFallTextBroken": "Eh... vítej v Sezonním obchodě... Zrovna tu máme podzimní Sezonní edici zboží nebo tak... Všechno zde je možné zakoupit v průběhu Podzimního estivalu každý rok, ale máme otevřeno pouze do 31. října... asi si nakup teď, nebo budeš muset čekat... a čekat... a čekat <strong>*ugh*</strong>",
"seasonalShopBrokenText": "My pavilion!!!!!!! My decorations!!!! Oh, the Dysheartener's destroyed everything :( Please help defeat it in the Tavern so I can rebuild!",
"seasonalShopRebirth": "If you bought any of this equipment in the past but don't currently own it, you can repurchase it in the Rewards Column. Initially, you'll only be able to purchase the items for your current class (Warrior by default), but fear not, the other class-specific items will become available if you switch to that class.",
@@ -117,6 +117,10 @@
"winter2018GiftWrappedSet": "Dárkově zabalený Válečník (Válečník)",
"winter2018MistletoeSet": "Léčitel z Jmelí (Léčitel)",
"winter2018ReindeerSet": "Sobí Zloděj (Zloděj)",
"spring2018SunriseWarriorSet": "Sunrise Warrior (Warrior)",
"spring2018TulipMageSet": "Tulip Mage (Mage)",
"spring2018GarnetHealerSet": "Garnet Healer (Healer)",
"spring2018DucklingRogueSet": "Duckling Rogue (Rogue)",
"eventAvailability": "Dostupný k zakoupení do <%= date(locale) %>.",
"dateEndMarch": "March 31",
"dateEndApril": "Duben 19",
+4 -1
View File
@@ -138,5 +138,8 @@
"dragThisPotion": "Drag this <%= potionName %> to an Egg and hatch a new pet!",
"clickOnEggToHatch": "Click on an Egg to use your <%= potionName %> hatching potion and hatch a new pet!",
"hatchDialogText": "Pour your <%= potionName %> hatching potion on your <%= eggName %> egg, and it will hatch into a <%= petName %>.",
"clickOnPotionToHatch": "Click on a hatching potion to use it on your <%= eggName %> and hatch a new pet!"
"clickOnPotionToHatch": "Click on a hatching potion to use it on your <%= eggName %> and hatch a new pet!",
"notEnoughPets": "You have not collected enough pets",
"notEnoughMounts": "You have not collected enough mounts",
"notEnoughPetsMounts": "You have not collected enough pets and mounts"
}
+28
View File
@@ -250,6 +250,14 @@
"weaponSpecialWinter2018MageNotes": "Magic--and glitter--is in the air! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2017-2018 Winter Gear.",
"weaponSpecialWinter2018HealerText": "Mistletoe Wand",
"weaponSpecialWinter2018HealerNotes": "This mistletoe ball is sure to enchant and delight passersby! Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"weaponSpecialSpring2018RogueText": "Buoyant Bullrush",
"weaponSpecialSpring2018RogueNotes": "What might appear to be cute cattails are actually quite effective weapons in the right wings. Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018WarriorText": "Axe of Daybreak",
"weaponSpecialSpring2018WarriorNotes": "Made of bright gold, this axe is mighty enough to attack the reddest task! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018MageText": "Tulip Stave",
"weaponSpecialSpring2018MageNotes": "This magic flower never wilts! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018HealerText": "Garnet Rod",
"weaponSpecialSpring2018HealerNotes": "The stones in this staff will focus your power when you cast healing spells! Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"weaponMystery201411Text": "Høstfests-Høtyv",
"weaponMystery201411Notes": "Stik dine fjender eller grib for dig af dine yndlingsretter - denne høtyv kan det hele! Giver ingen bonusser. November 2014 Abonnentvare.",
"weaponMystery201502Text": "Glinsende Bevinget Stav af Kærlighed og Også Sandhed",
@@ -552,6 +560,14 @@
"armorSpecialWinter2018MageNotes": "The ultimate in magical formalwear. Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"armorSpecialWinter2018HealerText": "Mistletoe Robes",
"armorSpecialWinter2018HealerNotes": "These robes are woven with spells for extra holiday joy. Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"armorSpecialSpring2018RogueText": "Feather Suit",
"armorSpecialSpring2018RogueNotes": "This fluffy yellow costume will trick your enemies into thinking you're just a harmless ducky! Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018WarriorText": "Armor of Dawn",
"armorSpecialSpring2018WarriorNotes": "This colorful plate is forged with the sunrise's fire. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018MageText": "Tulip Robe",
"armorSpecialSpring2018MageNotes": "Your spell casting can only improve while clad in these soft, silky petals. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018HealerText": "Garnet Armor",
"armorSpecialSpring2018HealerNotes": "Let this bright armor infuse your heart with power for healing. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorMystery201402Text": "Sendebudsdragt",
"armorMystery201402Notes": "En skinnende og stærk dragt med masser af lommer til at bære breve i. Giver ingen bonusser. Februar 2014 Abonnentting.",
"armorMystery201403Text": "Skovvandrer-rustning",
@@ -926,6 +942,14 @@
"headSpecialWinter2018MageNotes": "Ready for some extra special magic? This glittery hat is sure to boost all your spells! Increases Perception by <%= per %>. Limited Edition 2017-2018 Winter Gear.",
"headSpecialWinter2018HealerText": "Mistletoe Hood",
"headSpecialWinter2018HealerNotes": "This fancy hood will keep you warm with happy holiday feelings! Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"headSpecialSpring2018RogueText": "Duck-Billed Helm",
"headSpecialSpring2018RogueNotes": "Quack quack! Your cuteness belies your clever and sneaky nature. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018WarriorText": "Helm of Rays",
"headSpecialSpring2018WarriorNotes": "The brightness of this helm will dazzle any enemies nearby! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018MageText": "Tulip Helm",
"headSpecialSpring2018MageNotes": "The fancy petals of this helm will grant you special springtime magic. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018HealerText": "Garnet Circlet",
"headSpecialSpring2018HealerNotes": "The polished gems of this circlet will enhance your mental energy. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"headSpecialGaymerxText": "Regnbuekrigerhjelm",
"headSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
"headMystery201402Text": "Bevinget Hjelm",
@@ -1230,6 +1254,10 @@
"shieldSpecialWinter2018WarriorNotes": "Just about any useful thing you need can be found in this sack, if you know the right magic words to whisper. Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"shieldSpecialWinter2018HealerText": "Mistletoe Bell",
"shieldSpecialWinter2018HealerNotes": "What's that sound? The sound of warmth and cheer for all to hear! Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"shieldSpecialSpring2018WarriorText": "Shield of the Morning",
"shieldSpecialSpring2018WarriorNotes": "This sturdy shield glows with the glory of first light. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldSpecialSpring2018HealerText": "Garnet Shield",
"shieldSpecialSpring2018HealerNotes": "Despite its fancy appearance, this garnet shield is quite durable! Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldMystery201601Text": "Resolution Slayer",
"shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.",
"shieldMystery201701Text": "Tids-fryser skjold",
+5 -2
View File
@@ -143,11 +143,14 @@
"badAmountOfGemsToSend": "Mængden skal være mellem 1 og dit nuværende antal ædelsten.",
"report": "Report",
"abuseFlag": "Anmeld overtrædelse af Retningslinjer for Fællesskabet",
"abuseFlagModalHeading": "Anmeld <%= name %> for overtrædelse?",
"abuseFlagModalBody": "Are you sure you want to report this post? You should ONLY report a post that violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Inappropriately reporting a post is a violation of the Community Guidelines and may give you an infraction. Appropriate reasons to flag a post include but are not limited to:<br><br><ul style='margin-left: 10px;'><li>swearing, religious oaths</li><li>bigotry, slurs</li><li>adult topics</li><li>violence, including as a joke</li><li>spam, nonsensical messages</li></ul>",
"abuseFlagModalHeading": "Report a Violation",
"abuseFlagModalBody": "Are you sure you want to report this post? You should <strong>only</strong> report a post that violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Inappropriately reporting a post is a violation of the Community Guidelines and may give you an infraction.",
"abuseFlagModalButton": "Anmeld Overtrædelse",
"abuseReported": "Tak for at anmelde denne overtrædelse. Moderatorerne er blevet informeret.",
"abuseAlreadyReported": "Du har allerede anmeldt denne besked.",
"whyReportingPost": "Why are you reporting this post?",
"whyReportingPostPlaceholder": "Please help our moderators by letting us know why you are reporting this post for a violation, e.g., spam, swearing, religious oaths, bigotry, slurs, adult topics, violence.",
"optional": "Optional",
"needsText": "Indtast venligst en besked.",
"needsTextPlaceholder": "Skriv din besked her.",
"copyMessageAsToDo": "Kopier besked som To-Do",
+5 -1
View File
@@ -29,10 +29,10 @@
"seasonalShopClosedTitle": "<%= linkStart %>Leslie<%= linkEnd %>",
"seasonalShopTitle": "<%= linkStart %>Sæson-heksen<%= linkEnd %>",
"seasonalShopClosedText": "The Seasonal Shop is currently closed!! Its only open during Habiticas four Grand Galas.",
"seasonalShopText": "Happy Spring Fling!! Would you like to buy some rare items? Theyll only be available until April 30th!",
"seasonalShopSummerText": "Happy Summer Splash!! Would you like to buy some rare items? Theyll only be available until July 31st!",
"seasonalShopFallText": "Happy Fall Festival!! Would you like to buy some rare items? Theyll only be available until October 31st!",
"seasonalShopWinterText": "Happy Winter Wonderland!! Would you like to buy some rare items? Theyll only be available until January 31st!",
"seasonalShopSpringText": "Happy Spring Fling!! Would you like to buy some rare items? Theyll only be available until April 30th!",
"seasonalShopFallTextBroken": "Åh.... Velkommen til Sæson-markedet... Vi har efterårs-sæson varer, eller noget... Alting her kan købes under Efterårsfestival-eventet hvert år, men vi har kun åbent indtil den 31. oktober... Du burde nok købe ind nu, ellers vil du skulle vente... og vente... og vente... <strong>*suk*</strong>",
"seasonalShopBrokenText": "My pavilion!!!!!!! My decorations!!!! Oh, the Dysheartener's destroyed everything :( Please help defeat it in the Tavern so I can rebuild!",
"seasonalShopRebirth": "Hvis du har købt noget af detteudstyr før, men ikke ejer det i øjeblikket, kan du genkøbe det i Belønningskolonnen. I starten vil du kun kunne købe de ting der passer til din nuværende klasse (Kriger som standard), men frygt ej, de andre klasse-specifikke varer bliver tilgængelige hvis du skifter til den klasse.",
@@ -117,6 +117,10 @@
"winter2018GiftWrappedSet": "Gift-Wrapped Warrior (Warrior)",
"winter2018MistletoeSet": "Mistletoe Healer (Healer)",
"winter2018ReindeerSet": "Reindeer Rogue (Rogue)",
"spring2018SunriseWarriorSet": "Sunrise Warrior (Warrior)",
"spring2018TulipMageSet": "Tulip Mage (Mage)",
"spring2018GarnetHealerSet": "Garnet Healer (Healer)",
"spring2018DucklingRogueSet": "Duckling Rogue (Rogue)",
"eventAvailability": "Tilgændelig til køb indtil <%= date(locale) %>.",
"dateEndMarch": "March 31",
"dateEndApril": "19. april",
+4 -1
View File
@@ -138,5 +138,8 @@
"dragThisPotion": "Drag this <%= potionName %> to an Egg and hatch a new pet!",
"clickOnEggToHatch": "Click on an Egg to use your <%= potionName %> hatching potion and hatch a new pet!",
"hatchDialogText": "Pour your <%= potionName %> hatching potion on your <%= eggName %> egg, and it will hatch into a <%= petName %>.",
"clickOnPotionToHatch": "Click on a hatching potion to use it on your <%= eggName %> and hatch a new pet!"
"clickOnPotionToHatch": "Click on a hatching potion to use it on your <%= eggName %> and hatch a new pet!",
"notEnoughPets": "You have not collected enough pets",
"notEnoughMounts": "You have not collected enough mounts",
"notEnoughPetsMounts": "You have not collected enough pets and mounts"
}
+1 -1
View File
@@ -71,7 +71,7 @@
"costumeText": "Wenn Du das Aussehen einer anderen Ausrüstung Deiner Kampfausrüstung vorziehst, dann klicke auf die \"Verkleidung tragen\" Box um über Deiner Kampfausrüstung andere Ausrüstungsgegenstände zu tragen.",
"useCostume": "Verkleidung tragen",
"useCostumeInfo1": "Drücke auf \"Verwende Kostüm\" um deinem Avatar Ausrüstung anzulegen, ohne dass diese die Statuswerte deiner Kampf-Ausrüstung beeinträchtigt! Das heißt, während du dich links für die besten Statuswerte ausrüstest, kannst du rechts deinen Avatar opitsch anpassen. ",
"useCostumeInfo2": "Once you click \"Use Costume\" your avatar will look pretty basic... but don't worry! If you look on the left, you'll see that your Battle Gear is still equipped. Next, you can make things fancy! Anything you equip on the right won't affect your Stats, but can make you look super awesome. Try out different combos, mixing sets, and coordinating your Costume with your pets, mounts, and backgrounds.<br><br>Got more questions? Check out the <a href=\"http://habitica.wikia.com/wiki/Equipment#Costumes\">Costume page</a> on the wiki. Find the perfect ensemble? Show it off in the <a href=\"/groups/guild/3884eeaa-2d6a-45e8-a279-ada6de9709e1\">Costume Carnival guild</a> or brag in the Tavern!",
"useCostumeInfo2": "Sobald Du \"Verkleidung tragen\" anklickst, wird Dein Avatar ziemlich einfach aussehen... aber keine Sorge! Wie Du links sehen kannst, trägst Du immer noch Deine Kampfausrüstung. Jetzt kannst Du Dich herausputzen! Alles, was Du rechts anziehst, wird Deine Attributswerte nicht beeinflussen, lässt Dich aber super aussehen. Probier' verschiedene Kombinationen aus, mische Sets oder passe Dein Kostüm an Deine Haustiere, Reittiere und Hintergründe an. <br><br>Noch Fragen? Lies auf der <a href=\"http://habitica.wikia.com/wiki/Equipment#Costumes\">Kostümseite</a> im Wiki nach. Du hast das perfekte Ensemble gefunden? Führe es in der <a href=\"/groups/guild/3884eeaa-2d6a-45e8-a279-ada6de9709e1\">Costume Carnival Gilde</a> oder im Gasthaus vor!",
"costumePopoverText": "Wähle \"Kostüm nutzen\", um Deinen Avatar mit Ausrüstung auszustatten, ohne die Werte Deiner Kampfausrüstung zu beeinflussen! Damit kannst Du Deinen Avatar anziehen, wie Du willst und gleichzeitig Deine beste Kampfausrüstung angelegt haben. ",
"autoEquipPopoverText": "Wähle diese Option um Ausrüstung automatisch anzulegen, sobald Du sie erworben hast.",
"costumeDisabled": "Du hast dein Kostüm deaktiviert. ",
+4 -4
View File
@@ -161,9 +161,9 @@
"questEggYarnText": "Wollknäuel",
"questEggYarnMountText": "Fliegendes Teppichwesen",
"questEggYarnAdjective": "wolliges",
"questEggPterodactylText": "Pterodactylus",
"questEggPterodactylMountText": "Pterodactylus",
"questEggPterodactylAdjective": "zutraulicher",
"questEggPterodactylText": "Pterodactylus-Jungtier",
"questEggPterodactylMountText": "Pterodactylus-Reittier",
"questEggPterodactylAdjective": "zutrauliches",
"questEggBadgerText": "Dachs-Jungtier",
"questEggBadgerMountText": "Dachs-Reittier",
"questEggBadgerAdjective": "eifriges",
@@ -191,7 +191,7 @@
"hatchingPotionShimmer": "Schimmerndes",
"hatchingPotionFairy": "Feenhaftes",
"hatchingPotionStarryNight": "Sternenklare Nacht",
"hatchingPotionRainbow": "Rainbow",
"hatchingPotionRainbow": "Regenbogen",
"hatchingPotionNotes": "Gieße dies über ein Ei und es wird ein <%= potText(locale) %> Haustier daraus schlüpfen.",
"premiumPotionAddlNotes": "Nicht auf Eier von Quest-Haustieren anwendbar.",
"foodMeat": "Fleisch",
+28
View File
@@ -250,6 +250,14 @@
"weaponSpecialWinter2018MageNotes": "Magie - und Glitzer - liegt in der Luft! Erhöht Intelligenz um <%= int %> und Wahrnehmung um<%= per %>. Limitierte Ausgabe 2017-2018 Winterausrüstung.",
"weaponSpecialWinter2018HealerText": "Mistelzauberstab",
"weaponSpecialWinter2018HealerNotes": "This mistletoe ball is sure to enchant and delight passersby! Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"weaponSpecialSpring2018RogueText": "Buoyant Bullrush",
"weaponSpecialSpring2018RogueNotes": "What might appear to be cute cattails are actually quite effective weapons in the right wings. Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018WarriorText": "Axe of Daybreak",
"weaponSpecialSpring2018WarriorNotes": "Made of bright gold, this axe is mighty enough to attack the reddest task! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018MageText": "Tulip Stave",
"weaponSpecialSpring2018MageNotes": "This magic flower never wilts! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018HealerText": "Garnet Rod",
"weaponSpecialSpring2018HealerNotes": "The stones in this staff will focus your power when you cast healing spells! Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"weaponMystery201411Text": "Forke des Feierns",
"weaponMystery201411Notes": "Erstich Deine Feinde oder verschling Dein Lieblingsessen - diese flexible Forke ist universell einsetzbar! Gewährt keinen Attributbonus. Abonnentengegenstand, November 2014.",
"weaponMystery201502Text": "Schimmernder Flügelstab der Liebe und auch der Wahrheit",
@@ -552,6 +560,14 @@
"armorSpecialWinter2018MageNotes": "Das Nonplusultra der magischen formellen Kleidung. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2017-2018 Winterausrüstung.",
"armorSpecialWinter2018HealerText": "Mistelzweigrobe",
"armorSpecialWinter2018HealerNotes": "In diese Roben wurden Zaubersprüche für extra Feiertagsfreude gewebt. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2017-2018 Winterausrüstung.",
"armorSpecialSpring2018RogueText": "Feather Suit",
"armorSpecialSpring2018RogueNotes": "This fluffy yellow costume will trick your enemies into thinking you're just a harmless ducky! Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018WarriorText": "Armor of Dawn",
"armorSpecialSpring2018WarriorNotes": "This colorful plate is forged with the sunrise's fire. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018MageText": "Tulip Robe",
"armorSpecialSpring2018MageNotes": "Your spell casting can only improve while clad in these soft, silky petals. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018HealerText": "Garnet Armor",
"armorSpecialSpring2018HealerNotes": "Let this bright armor infuse your heart with power for healing. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorMystery201402Text": "Robe des Nachrichtenbringers",
"armorMystery201402Notes": "Schimmernd, stabil und mit vielen Taschen für Briefe. Gewährt keinen Attributbonus. Abonnentengegenstand, Februar 2014.",
"armorMystery201403Text": "Waldwanderer-Rüstung",
@@ -926,6 +942,14 @@
"headSpecialWinter2018MageNotes": "Ready for some extra special magic? This glittery hat is sure to boost all your spells! Increases Perception by <%= per %>. Limited Edition 2017-2018 Winter Gear.",
"headSpecialWinter2018HealerText": "Mistletoe Hood",
"headSpecialWinter2018HealerNotes": "This fancy hood will keep you warm with happy holiday feelings! Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"headSpecialSpring2018RogueText": "Duck-Billed Helm",
"headSpecialSpring2018RogueNotes": "Quack quack! Your cuteness belies your clever and sneaky nature. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018WarriorText": "Helm of Rays",
"headSpecialSpring2018WarriorNotes": "The brightness of this helm will dazzle any enemies nearby! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018MageText": "Tulip Helm",
"headSpecialSpring2018MageNotes": "The fancy petals of this helm will grant you special springtime magic. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018HealerText": "Garnet Circlet",
"headSpecialSpring2018HealerNotes": "The polished gems of this circlet will enhance your mental energy. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"headSpecialGaymerxText": "Regenbogenkriegerhelm",
"headSpecialGaymerxNotes": "Zur Feier der GaymerX-Konferenz ist dieser spezielle Helm dekoriert mit einem strahlenden, farbenfrohen Regenbogenmuster! GaymerX ist eine Videospiel-Tagung, die LGBTQ und Videospiele feiert und für alle offen ist.",
"headMystery201402Text": "Geflügelter Helm",
@@ -1230,6 +1254,10 @@
"shieldSpecialWinter2018WarriorNotes": "Just about any useful thing you need can be found in this sack, if you know the right magic words to whisper. Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"shieldSpecialWinter2018HealerText": "Mistelzweigglocke",
"shieldSpecialWinter2018HealerNotes": "What's that sound? The sound of warmth and cheer for all to hear! Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"shieldSpecialSpring2018WarriorText": "Shield of the Morning",
"shieldSpecialSpring2018WarriorNotes": "This sturdy shield glows with the glory of first light. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldSpecialSpring2018HealerText": "Garnet Shield",
"shieldSpecialSpring2018HealerNotes": "Despite its fancy appearance, this garnet shield is quite durable! Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldMystery201601Text": "Töter der Vorsätze",
"shieldMystery201601Notes": "Diese Klinge kann zur Entfernung aller Ablenkungen verwendet werden. Gewährt keinen Attributbonus. Abonnentengegenstand, Januar 2016.",
"shieldMystery201701Text": "Zeitanhalterschild",
+2 -2
View File
@@ -167,8 +167,8 @@
"achievementBurnoutText": "Hat beim Herbstball 2015 dabei geholfen, Burnout zu besiegen und die Geister der Erschöpfung wiederherzustellen!",
"achievementBewilder": "Retter von Mistiflying",
"achievementBewilderText": "Hat bei der Frühlingsfeier 2016 geholfen, den Verwirrer zu besiegen.",
"achievementDysheartener": "Savior of the Shattered",
"achievementDysheartenerText": "Helped defeat the Dysheartener during the 2018 Valentine's Event!",
"achievementDysheartener": "Retter der Entmutigten",
"achievementDysheartenerText": "Hat beim Valentins-Event 2018 dabei geholfen, den Entmutiger zu besiegen!",
"checkOutProgress": "Schau Dir meinen Fortschritt in Habitica an!",
"cards": "Karten",
"sentCardToUser": "Du hast eine Karte an <%= profileName %> gesendet",
+9 -6
View File
@@ -143,11 +143,14 @@
"badAmountOfGemsToSend": "Die Menge muss zwischen 1 und Deiner aktuellen Edelsteinanzahl liegen.",
"report": "Melden",
"abuseFlag": "Verletzung der Community-Richtlinien melden",
"abuseFlagModalHeading": "<%= name %> melden?",
"abuseFlagModalBody": "Möchtest Du diesen Beitrag wirklich melden? Du solltest AUSSCHLIESSLICH Beiträge melden, die unsere <%= firstLinkStart %>Community-Richtlinien<%= linkEnd %> und/oder unsere <%= secondLinkStart %>Nutzungsbedingungen<%= linkEnd %> verletzen. Das ungerechtfertigte Melden von Beiträgen stellt eine Verletzung der Community-Richtlinien dar und kann geahndet werden. Gute Gründe einen Beitrag zu melden sind unter anderem: <br><br><ul style='margin-left: 10px;'><li>Fluchen, Religiöse Schwüre</li><li>Intoleranz, herabwürdigende Bezeichnung jeglicher Ethnien</li><li>Nicht jugendfreie Themen</li><li>Gewalt, auch innerhalb eines Witzes</li><li>Spam, unsinnige Nachrichten</li></ul>.",
"abuseFlagModalHeading": "Melde einen Verstoß",
"abuseFlagModalBody": "Are you sure you want to report this post? You should <strong>only</strong> report a post that violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Inappropriately reporting a post is a violation of the Community Guidelines and may give you an infraction.",
"abuseFlagModalButton": "Verstoß melden",
"abuseReported": "Danke, dass Du diesen Verstoß gemeldet hast. Die Moderatoren wurden benachrichtigt.",
"abuseAlreadyReported": "Du hast diese Nachricht bereits gemeldet.",
"whyReportingPost": "Wieso meldest Du diesen Post?",
"whyReportingPostPlaceholder": "Please help our moderators by letting us know why you are reporting this post for a violation, e.g., spam, swearing, religious oaths, bigotry, slurs, adult topics, violence.",
"optional": "Optional",
"needsText": "Bitte gib eine Nachricht ein.",
"needsTextPlaceholder": "Gib Deine Nachricht hier ein.",
"copyMessageAsToDo": "Nachricht als To-Do übernehmen",
@@ -219,11 +222,11 @@
"inviteMissingUuid": "User-ID in der Einladung fehlt",
"inviteMustNotBeEmpty": "Einladung muss Daten enthalten",
"partyMustbePrivate": "Gruppen müssen privat sein",
"userAlreadyInGroup": "UserID: <%= userId %>, User \"<%= username %>\" already in that group.",
"userAlreadyInGroup": "Nutzer-ID: <%= userId %>, Nutzer \"<%= username %>\" ist bereits in dieser Gruppe.",
"cannotInviteSelfToGroup": "Du kannst Dich nicht selbst in eine Gruppe einladen.",
"userAlreadyInvitedToGroup": "UserID: <%= userId %>, User \"<%= username %>\" already invited to that group.",
"userAlreadyPendingInvitation": "UserID: <%= userId %>, User \"<%= username %>\" already pending invitation.",
"userAlreadyInAParty": "UserID: <%= userId %>, User \"<%= username %>\" already in a party.",
"userAlreadyInvitedToGroup": "Nutzer-ID: <%= userId %>, Nutzer \"<%= username %>\" wurde bereits zu dieser Gruppe eingeladen.",
"userAlreadyPendingInvitation": "Nutzer-ID: <%= userId %>, Nutzer \"<%= username %>\" hat bereits eine ausstehende Einladung.",
"userAlreadyInAParty": "Nutzer-ID: <%= userId %>, Nutzer \"<%= username %>\" ist bereits in einer Gruppe.",
"userWithIDNotFound": "Benutzer mit ID \"<%= userId %>\" nicht gefunden",
"userHasNoLocalRegistration": "Benutzer ist lokal nicht registriert (Benutzername, E-Mail, Passwort).",
"uuidsMustBeAnArray": "Benutzer-ID-Einladungen müssen ein Array sein.",
+7 -3
View File
@@ -29,10 +29,10 @@
"seasonalShopClosedTitle": "<%= linkStart %>Leslie<%= linkEnd %>",
"seasonalShopTitle": "<%= linkStart %>Saisonzauberin<%= linkEnd %>",
"seasonalShopClosedText": "Der Jahreszeitenmarkt ist gerade geschlossen!! Er öffnet nur während Habiticas vier großen Galas.",
"seasonalShopText": "Fröhliche Frühlingsfeier!! Wärst du daran interessiert einige seltene Gegenstände zu erwerben? Sie werden nur bis zum 30. April verfügbar sein!",
"seasonalShopSummerText": "Fröhliche Sommer-Strandparty!! Wärst du daran interessiert einige seltene Gegenstände zu erwerben? Sie werden nur bis zum 31. Juli verfügbar sein!",
"seasonalShopFallText": "Fröhlichen Herbstball!! Wärst du daran interessiert einige seltene Gegenstände zu erwerben? Sie werden nur bis zum 31. Oktober verfügbar sein!",
"seasonalShopWinterText": "Fröhliches Winter-Wunderland!! Wärst du daran interessiert einige seltene Gegenstände zu erwerben? Sie werden nur bis zum 31. Januar verfügbar sein!",
"seasonalShopSpringText": "Happy Spring Fling!! Would you like to buy some rare items? Theyll only be available until April 30th!",
"seasonalShopFallTextBroken": "Oh… Willkommen auf dem Jahreszeitenmarkt… Momentan haben wir Herbst-Gegenstände, oder so, auf Lager… Alles hier wird während des Herbstballs, der jedes Jahr stattfindet, verfügbar sein. Allerdings nur bis zum 31. Oktober, also stocke jetzt Deine Vorräte auf, ansonsten musst Du bis nächstes Jahr warten... und warten... und warten... <strong>*seufz*</strong>",
"seasonalShopBrokenText": "Mein Pavillon!!!!!!! Meine Einrichtung!!!! Oh, der Entmutiger hat alles zerstört :( Bitte helft im Gasthaus mit, ihn zu besiegen, damit ich bald wieder alles aufbauen kann!",
"seasonalShopRebirth": "Wenn Du etwas von dieser Ausrüstung bereits früher gekauft hast aber im Moment nicht im Besitz hast, kannst Du diesen Ausrüstungsgegenstand in der Belohnungsspalte erneut kaufen. Anfangs wirst Du nur Gegenstände für Deine momentane Klasse (Standard ist Krieger) kaufen können, aber keine Sorge, die anderen klassenspezifischen Gegenstände werden verfügbar, sobald Du zur jeweiligen Klasse wechselst.",
@@ -117,8 +117,12 @@
"winter2018GiftWrappedSet": "Geschenkpapierverpackter Krieger (Krieger)",
"winter2018MistletoeSet": "Mistelzweigheiler (Heiler)",
"winter2018ReindeerSet": "Rentier-Schurke (Schurke)",
"spring2018SunriseWarriorSet": "Sunrise Warrior (Warrior)",
"spring2018TulipMageSet": "Tulip Mage (Mage)",
"spring2018GarnetHealerSet": "Garnet Healer (Healer)",
"spring2018DucklingRogueSet": "Duckling Rogue (Rogue)",
"eventAvailability": "Zum Kauf verfügbar bis zum <%= date(locale) %>.",
"dateEndMarch": "March 31",
"dateEndMarch": "31. März",
"dateEndApril": "19. April",
"dateEndMay": "17. Mai",
"dateEndJune": "14. Juni",
@@ -128,7 +132,7 @@
"dateEndNovember": "30. November",
"dateEndJanuary": "31. Januar",
"dateEndFebruary": "28. Februar",
"winterPromoGiftHeader": "Schenke ein Abonnement und bekomme ein weiteres umsonst! ",
"winterPromoGiftHeader": "Verschenke ein Abonnement und bekomme eins umsonst! ",
"winterPromoGiftDetails1": "Wenn Du bis 12. Januar jemandem ein Abonnement schenkst, bekommst Du das geiche Abonnement für Dich selbst umsonst!",
"winterPromoGiftDetails2": "Bitte bedenke, dass das geschenkte Abonnement, falls Du oder Deine beschenkte Person bereits über ein sich wiederholendes Abonnement verfügen, erst dann startet, wenn das alte Abonnement gekündigt wird oder ausläuft. Herzlichen Dank für Deine Unterstützung! <3",
"discountBundle": "Paket"
+4 -1
View File
@@ -138,5 +138,8 @@
"dragThisPotion": "Ziehe dieses <%= potionName %> zu einem Ei und brüte ein neues Haustier aus!",
"clickOnEggToHatch": "Klicke auf ein Ei um Dein <%= potionName %> Schlüpfelixier zu nutzen und ein neues Haustier auszubrüten!",
"hatchDialogText": "Gieße Dein <%= potionName %> Schlüpfelixier auf Dein <%= eggName %>-Ei und es wird ein <%= petName %> daraus schlüpfen.",
"clickOnPotionToHatch": "Klicke auf ein Schlüpfelixier, um es über Dein <%= eggName %> zu gießen und ein neues Haustier schlüpfen zu lassen!"
"clickOnPotionToHatch": "Klicke auf ein Schlüpfelixier, um es über Dein <%= eggName %> zu gießen und ein neues Haustier schlüpfen zu lassen!",
"notEnoughPets": "Du hast noch nicht genug Haustiere gesammelt",
"notEnoughMounts": "Du hast noch nicht genug Reittiere gesammelt",
"notEnoughPetsMounts": "Du hast noch nicht genug Haus- und Reittiere gesammelt"
}
+32
View File
@@ -276,6 +276,15 @@
"weaponSpecialWinter2018HealerText": "Mistletoe Wand",
"weaponSpecialWinter2018HealerNotes": "This mistletoe ball is sure to enchant and delight passersby! Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"weaponSpecialSpring2018RogueText": "Buoyant Bullrush",
"weaponSpecialSpring2018RogueNotes": "What might appear to be cute cattails are actually quite effective weapons in the right wings. Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018WarriorText": "Axe of Daybreak",
"weaponSpecialSpring2018WarriorNotes": "Made of bright gold, this axe is mighty enough to attack the reddest task! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018MageText": "Tulip Stave",
"weaponSpecialSpring2018MageNotes": "This magic flower never wilts! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"weaponSpecialSpring2018HealerText": "Garnet Rod",
"weaponSpecialSpring2018HealerNotes": "The stones in this staff will focus your power when you cast healing spells! Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"weaponMystery201411Text": "Pitchfork of Feasting",
"weaponMystery201411Notes": "Stab your enemies or dig in to your favorite foods - this versatile pitchfork does it all! Confers no benefit. November 2014 Subscriber Item.",
"weaponMystery201502Text": "Shimmery Winged Staff of Love and Also Truth",
@@ -605,6 +614,15 @@
"armorSpecialWinter2018HealerText": "Mistletoe Robes",
"armorSpecialWinter2018HealerNotes": "These robes are woven with spells for extra holiday joy. Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"armorSpecialSpring2018RogueText": "Feather Suit",
"armorSpecialSpring2018RogueNotes": "This fluffy yellow costume will trick your enemies into thinking you're just a harmless ducky! Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018WarriorText": "Armor of Dawn",
"armorSpecialSpring2018WarriorNotes": "This colorful plate is forged with the sunrise's fire. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018MageText": "Tulip Robe",
"armorSpecialSpring2018MageNotes": "Your spell casting can only improve while clad in these soft, silky petals. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"armorSpecialSpring2018HealerText": "Garnet Armor",
"armorSpecialSpring2018HealerNotes": "Let this bright armor infuse your heart with power for healing. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"armorMystery201402Text": "Messenger Robes",
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.",
"armorMystery201403Text": "Forest Walker Armor",
@@ -1005,6 +1023,15 @@
"headSpecialWinter2018HealerText": "Mistletoe Hood",
"headSpecialWinter2018HealerNotes": "This fancy hood will keep you warm with happy holiday feelings! Increases Intelligence by <%= int %>. Limited Edition 2017-2018 Winter Gear.",
"headSpecialSpring2018RogueText": "Duck-Billed Helm",
"headSpecialSpring2018RogueNotes": "Quack quack! Your cuteness belies your clever and sneaky nature. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018WarriorText": "Helm of Rays",
"headSpecialSpring2018WarriorNotes": "The brightness of this helm will dazzle any enemies nearby! Increases Strength by <%= str %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018MageText": "Tulip Helm",
"headSpecialSpring2018MageNotes": "The fancy petals of this helm will grant you special springtime magic. Increases Perception by <%= per %>. Limited Edition 2018 Spring Gear.",
"headSpecialSpring2018HealerText": "Garnet Circlet",
"headSpecialSpring2018HealerNotes": "The polished gems of this circlet will enhance your mental energy. Increases Intelligence by <%= int %>. Limited Edition 2018 Spring Gear.",
"headSpecialGaymerxText": "Rainbow Warrior Helm",
"headSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
@@ -1334,6 +1361,11 @@
"shieldSpecialWinter2018HealerText": "Mistletoe Bell",
"shieldSpecialWinter2018HealerNotes": "What's that sound? The sound of warmth and cheer for all to hear! Increases Constitution by <%= con %>. Limited Edition 2017-2018 Winter Gear.",
"shieldSpecialSpring2018WarriorText": "Shield of the Morning",
"shieldSpecialSpring2018WarriorNotes": "This sturdy shield glows with the glory of first light. Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldSpecialSpring2018HealerText": "Garnet Shield",
"shieldSpecialSpring2018HealerNotes": "Despite its fancy appearance, this garnet shield is quite durable! Increases Constitution by <%= con %>. Limited Edition 2018 Spring Gear.",
"shieldMystery201601Text": "Resolution Slayer",
"shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.",
"shieldMystery201701Text": "Time-Freezer Shield",
+5 -2
View File
@@ -145,11 +145,14 @@
"badAmountOfGemsToSend": "Amount must be within 1 and your current number of gems.",
"report": "Report",
"abuseFlag": "Report violation of Community Guidelines",
"abuseFlagModalHeading": "Report <%= name %> for violation?",
"abuseFlagModalBody": "Are you sure you want to report this post? You should ONLY report a post that violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Inappropriately reporting a post is a violation of the Community Guidelines and may give you an infraction. Appropriate reasons to flag a post include but are not limited to:<br><br><ul style='margin-left: 10px;'><li>swearing, religious oaths</li><li>bigotry, slurs</li><li>adult topics</li><li>violence, including as a joke</li><li>spam, nonsensical messages</li></ul>",
"abuseFlagModalHeading": "Report a Violation",
"abuseFlagModalBody": "Are you sure you want to report this post? You should <strong>only</strong> report a post that violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Inappropriately reporting a post is a violation of the Community Guidelines and may give you an infraction.",
"abuseFlagModalButton": "Report Violation",
"abuseReported": "Thank you for reporting this violation. The moderators have been notified.",
"abuseAlreadyReported": "You have already reported this message.",
"whyReportingPost": "Why are you reporting this post?",
"whyReportingPostPlaceholder": "Please help our moderators by letting us know why you are reporting this post for a violation, e.g., spam, swearing, religious oaths, bigotry, slurs, adult topics, violence.",
"optional": "Optional",
"needsText": "Please type a message.",
"needsTextPlaceholder": "Type your message here.",
"copyMessageAsToDo": "Copy message as To-Do",

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