fix conflict

This commit is contained in:
Matteo Pagliazzi 2019-09-09 17:15:45 +02:00
commit 73d1acd8ec
354 changed files with 33520 additions and 30636 deletions

2
.nvmrc
View file

@ -1 +1 @@
10
12

View file

@ -1,6 +1,6 @@
language: node_js
node_js:
- '10'
- '12'
services:
- mongodb
cache:

View file

@ -1,4 +1,4 @@
FROM node:10
FROM node:12
ENV ADMIN_EMAIL admin@habitica.com
ENV AMAZON_PAYMENTS_CLIENT_ID amzn1.application-oa2-client.68ed9e6904ef438fbc1bf86bf494056e
@ -18,7 +18,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 release https://github.com/HabitRPG/habitica.git /usr/src/habitrpg
RUN git clone --branch release --depth 1 https://github.com/HabitRPG/habitica.git /usr/src/habitrpg
RUN npm install
RUN gulp build:prod --force

View file

@ -1,5 +1,5 @@
FROM node:10
WORKDIR /code
COPY package*.json /code/
RUN npm install
RUN npm install -g gulp-cli mocha
FROM node:12
WORKDIR /code
COPY package*.json /code/
RUN npm install
RUN npm install -g gulp-cli mocha

View file

@ -1,6 +1,6 @@
/* eslint-disable no-console */
const MIGRATION_NAME = 'mystery_items_201907';
const MYSTERY_ITEMS = ['head_mystery_201907', 'armor_mystery_201907', 'eyewear_mystery_201907'];
const MIGRATION_NAME = 'mystery_items_201908';
const MYSTERY_ITEMS = ['armor_mystery_201908', 'headAccessory_mystery_201908'];
import { model as User } from '../../website/server/models/user';
import { model as UserNotification } from '../../website/server/models/userNotification';

6060
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.107.1",
"version": "4.110.2",
"main": "./website/server/index.js",
"dependencies": {
"@google-cloud/trace-agent": "^4.0.0",
@ -9,7 +9,7 @@
"accepts": "^1.3.5",
"amazon-payments": "^0.2.7",
"amplitude": "^3.5.0",
"amplitude-js": "^5.0.0",
"amplitude-js": "^5.2.2",
"apidoc": "^0.17.5",
"apn": "^2.2.0",
"autoprefixer": "^9.4.0",
@ -28,7 +28,7 @@
"babel-preset-es2015": "^6.6.0",
"babel-register": "^6.6.0",
"babel-runtime": "^6.11.6",
"bcrypt": "^3.0.5",
"bcrypt": "^3.0.6",
"body-parser": "^1.18.3",
"bootstrap": "^4.1.1",
"bootstrap-vue": "^2.0.0-rc.18",
@ -64,11 +64,11 @@
"method-override": "^3.0.0",
"moment": "^2.22.1",
"moment-recur": "^1.0.7",
"mongoose": "^5.4.19",
"mongoose": "^5.6.9",
"morgan": "^1.7.0",
"nconf": "^0.10.0",
"node-gcm": "^1.0.2",
"node-sass": "^4.9.0",
"node-sass": "^4.12.0",
"ora": "^3.2.0",
"pageres": "^5.1.0",
"passport": "^0.4.0",
@ -80,6 +80,7 @@
"postcss-easy-import": "^3.0.0",
"ps-tree": "^1.0.0",
"pug": "^2.0.3",
"regenerator-runtime": "^0.13.3",
"rimraf": "^2.4.3",
"sass-loader": "^7.0.3",
"shelljs": "^0.8.2",
@ -115,7 +116,7 @@
},
"private": true,
"engines": {
"node": "^10",
"node": "^12",
"npm": "^6"
},
"scripts": {

View file

@ -276,44 +276,70 @@ describe('POST /groups/:groupId/leave', () => {
});
});
context('Leaving a group plan', () => {
it('cancels the free subscription', async () => {
// Create group
let { group, groupLeader, members } = await createAndPopulateGroup({
groupDetails: {
name: 'Test Private Guild',
type: 'guild',
},
members: 1,
each(typesOfGroups, (groupDetails, groupType) => {
context(`Leaving a group plan when the group is a ${groupType}`, () => {
let groupWithPlan;
let leader;
let member;
beforeEach(async () => {
let { group, groupLeader, members } = await createAndPopulateGroup({
groupDetails,
members: 1,
});
leader = groupLeader;
member = members[0];
groupWithPlan = group;
let userWithFreePlan = await User.findById(leader._id).exec();
// Create subscription
let paymentData = {
user: userWithFreePlan,
groupId: groupWithPlan._id,
sub: {
key: 'basic_3mo',
},
customerId: 'customer-id',
paymentMethod: 'Payment Method',
headers: {
'x-client': 'habitica-web',
'user-agent': '',
},
};
await payments.createSubscription(paymentData);
await member.sync();
});
let leader = groupLeader;
let member = members[0];
let userWithFreePlan = await User.findById(leader._id).exec();
it('cancels the free subscription', async () => {
expect(member.purchased.plan.planId).to.equal('group_plan_auto');
expect(member.purchased.plan.dateTerminated).to.not.exist;
// Create subscription
let paymentData = {
user: userWithFreePlan,
groupId: group._id,
sub: {
key: 'basic_3mo',
},
customerId: 'customer-id',
paymentMethod: 'Payment Method',
headers: {
'x-client': 'habitica-web',
'user-agent': '',
},
};
await payments.createSubscription(paymentData);
await member.sync();
expect(member.purchased.plan.planId).to.equal('group_plan_auto');
expect(member.purchased.plan.dateTerminated).to.not.exist;
// Leave
await member.post(`/groups/${groupWithPlan._id}/leave`);
await member.sync();
expect(member.purchased.plan.dateTerminated).to.exist;
});
// Leave
await member.post(`/groups/${group._id}/leave`);
await member.sync();
expect(member.purchased.plan.dateTerminated).to.exist;
it('preserves the free subscription when leaving a any other group without a plan', async () => {
// Joining a guild without a group plan
let { group: groupWithNoPlan } = await createAndPopulateGroup({
groupDetails: {
name: 'Group Without Plan',
type: 'guild',
privacy: 'public',
},
});
await member.post(`/groups/${groupWithNoPlan._id}/join`);
await member.sync();
expect(member.purchased.plan.planId).to.equal('group_plan_auto');
expect(member.purchased.plan.dateTerminated).to.not.exist;
// Leaving the guild without a group plan
await member.post(`/groups/${groupWithNoPlan._id}/leave`);
await member.sync();
expect(member.purchased.plan.dateTerminated).to.not.exist;
});
});
});
});

View file

@ -9,6 +9,7 @@ describe('POST /user/open-mystery-item', () => {
let mysteryItemKey = 'eyewear_special_summerRogue';
let mysteryItemIndex = content.gear.flat[mysteryItemKey].index;
let mysteryItemType = content.gear.flat[mysteryItemKey].type;
let mysteryItemText = content.gear.flat[mysteryItemKey].text();
beforeEach(async () => {
user = await generateUser({
@ -32,5 +33,6 @@ describe('POST /user/open-mystery-item', () => {
expect(response.data.key).to.eql(mysteryItemKey);
expect(response.data.index).to.eql(mysteryItemIndex);
expect(response.data.type).to.eql(mysteryItemType);
expect(response.data.text).to.eql(mysteryItemText);
});
});

View file

@ -14,7 +14,7 @@ describe('POST /user/purchase-hourglass/:type/:key', () => {
// More tests in common code unit tests
it('buys a hourglass pet', async () => {
it('buys an hourglass pet', async () => {
let response = await user.post('/user/purchase-hourglass/pets/MantisShrimp-Base');
await user.sync();
@ -22,4 +22,22 @@ describe('POST /user/purchase-hourglass/:type/:key', () => {
expect(user.purchased.plan.consecutive.trinkets).to.eql(1);
expect(user.items.pets['MantisShrimp-Base']).to.eql(5);
});
it('buys an hourglass quest', async () => {
let response = await user.post('/user/purchase-hourglass/quests/robot');
await user.sync();
expect(response.message).to.eql(t('hourglassPurchase'));
expect(user.purchased.plan.consecutive.trinkets).to.eql(1);
expect(user.items.quests.robot).to.eql(1);
});
it('buys multiple hourglass quests', async () => {
let response = await user.post('/user/purchase-hourglass/quests/robot', {quantity: 2});
await user.sync();
expect(response.message).to.eql(t('hourglassPurchase'));
expect(user.purchased.plan.consecutive.trinkets).to.eql(0);
expect(user.items.quests.robot).to.eql(2);
});
});

View file

@ -40,6 +40,7 @@ describe('GET /inbox/conversations', () => {
expect(result.length).to.be.equal(3);
expect(result[0].user).to.be.equal(user.profile.name);
expect(result[0].username).to.be.equal(user.auth.local.username);
expect(result[0].text).to.be.not.empty;
});
it('returns the user inbox messages as an array of ordered messages (from most to least recent)', async () => {

View file

@ -11,8 +11,6 @@
],
"plugins": [
"transform-object-rest-spread",
"syntax-async-functions",
"transform-regenerator",
],
"comments": false,
}

View file

@ -36,7 +36,9 @@ describe('shared.ops.openMysteryItem', () => {
expect(user.items.gear.owned[mysteryItemKey]).to.be.true;
expect(message).to.equal(i18n.t('mysteryItemOpened'));
expect(data).to.eql(content.gear.flat[mysteryItemKey]);
let item = _.cloneDeep(content.gear.flat[mysteryItemKey]);
item.text = content.gear.flat[mysteryItemKey].text();
expect(data).to.eql(item);
expect(user.notifications.length).to.equal(0);
});
});

View file

@ -86,10 +86,14 @@ describe('shared.ops.rebirth', () => {
});
it('resets user\'s daily streaks to 0', () => {
tasks[0].counterDown = 1; // Habit
tasks[0].counterUp = 1; // Habit
tasks[1].streak = 1; // Daily
rebirth(user, tasks);
expect(tasks[0].counterDown).to.equal(0);
expect(tasks[0].counterUp).to.equal(0);
expect(tasks[1].streak).to.equal(0);
});

View file

@ -60,7 +60,7 @@ const baseConfig = {
}),
postcss: [
autoprefixer({
browsers: ['last 2 versions'],
overrideBrowserslist: ['last 2 versions'],
}),
postcssEasyImport(),
],
@ -103,6 +103,7 @@ const baseConfig = {
options: {
plugins: [
{removeViewBox: false},
{convertPathData: {noSpaceAfterFlags: false}},
],
},
},
@ -124,6 +125,7 @@ const baseConfig = {
options: {
plugins: [
{removeViewBox: false},
{convertPathData: {noSpaceAfterFlags: false}},
],
},
},

View file

@ -1,30 +1,18 @@
.promo_armoire_backgrounds_201908 {
.promo_armoire_backgrounds_201909 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -313px 0px;
background-position: 0px 0px;
width: 423px;
height: 147px;
}
.promo_farm_friends_bundle {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -223px;
width: 420px;
height: 147px;
}
.promo_take_this {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -313px -148px;
background-position: -211px -148px;
width: 96px;
height: 69px;
}
.promo_unconventional_armor {
.scene_medal {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -371px;
width: 180px;
height: 180px;
}
.scene_casting_spells {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px 0px;
width: 312px;
height: 222px;
background-position: 0px -148px;
width: 210px;
height: 210px;
}

View file

@ -412,721 +412,727 @@
width: 141px;
height: 147px;
}
.background_autumn_forest {
.background_autumn_flower_garden {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -1036px;
width: 141px;
height: 147px;
}
.background_avalanche {
.customize-option.background_autumn_flower_garden {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -877px -1051px;
width: 60px;
height: 60px;
}
.background_autumn_forest {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -1036px;
width: 141px;
height: 147px;
}
.background_back_alley {
.background_avalanche {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1136px -1036px;
width: 141px;
height: 147px;
}
.background_back_of_giant_beast {
.background_back_alley {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px 0px;
width: 141px;
height: 147px;
}
.background_bamboo_forest {
.background_back_of_giant_beast {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -148px;
width: 141px;
height: 147px;
}
.background_bayou {
.background_bamboo_forest {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -296px;
width: 141px;
height: 147px;
}
.background_beach {
.background_bayou {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -444px;
width: 141px;
height: 147px;
}
.background_beehive {
.background_beach {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -592px;
width: 141px;
height: 147px;
}
.background_bell_tower {
.background_beehive {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -740px;
width: 141px;
height: 147px;
}
.background_beside_well {
.background_bell_tower {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -888px;
width: 141px;
height: 147px;
}
.background_birch_forest {
.background_beside_well {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -1036px;
width: 141px;
height: 147px;
}
.background_blacksmithy {
.background_birch_forest {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -1184px;
width: 141px;
height: 147px;
}
.background_blizzard {
.background_blacksmithy {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -1184px;
width: 141px;
height: 147px;
}
.background_blossoming_desert {
.background_blizzard {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -1184px;
width: 141px;
height: 147px;
}
.background_blue {
.background_blossoming_desert {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -1184px;
width: 141px;
height: 147px;
}
.background_bridge {
.background_blue {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -1184px;
width: 141px;
height: 147px;
}
.background_bug_covered_log {
.background_bridge {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -1184px;
width: 141px;
height: 147px;
}
.background_buried_treasure {
.background_bug_covered_log {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -1184px;
width: 141px;
height: 147px;
}
.background_champions_colosseum {
.background_buried_treasure {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -1184px;
width: 141px;
height: 147px;
}
.background_cherry_trees {
.background_champions_colosseum {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1136px -1184px;
width: 141px;
height: 147px;
}
.background_chessboard_land {
.background_cherry_trees {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -1184px;
width: 141px;
height: 147px;
}
.background_clouds {
.background_chessboard_land {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px 0px;
width: 141px;
height: 147px;
}
.background_coral_reef {
.background_clouds {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -148px;
width: 141px;
height: 147px;
}
.background_cornfields {
.background_coral_reef {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -296px;
width: 141px;
height: 147px;
}
.background_cozy_barn {
.background_cornfields {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px 0px;
width: 141px;
height: 147px;
}
.background_cozy_bedroom {
.background_cozy_barn {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -592px;
width: 141px;
height: 147px;
}
.background_cozy_library {
.background_cozy_bedroom {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -740px;
width: 141px;
height: 147px;
}
.background_creepy_castle {
.background_cozy_library {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -888px;
width: 141px;
height: 147px;
}
.background_crosscountry_ski_trail {
.background_creepy_castle {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -1036px;
width: 141px;
height: 147px;
}
.background_crystal_cave {
.background_crosscountry_ski_trail {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -1184px;
width: 141px;
height: 147px;
}
.background_dark_deep {
.background_crystal_cave {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -1332px;
width: 141px;
height: 147px;
}
.background_deep_mine {
.background_dark_deep {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -1332px;
width: 141px;
height: 147px;
}
.background_deep_sea {
.background_deep_mine {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -1332px;
width: 141px;
height: 147px;
}
.background_desert_dunes {
.background_deep_sea {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -1332px;
width: 141px;
height: 147px;
}
.background_dilatory_castle {
.background_desert_dunes {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -1332px;
width: 141px;
height: 147px;
}
.background_dilatory_city {
.background_dilatory_castle {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -1332px;
width: 141px;
height: 147px;
}
.background_dilatory_ruins {
.background_dilatory_city {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -1332px;
width: 141px;
height: 147px;
}
.background_distant_castle {
.background_dilatory_ruins {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -1332px;
width: 141px;
height: 147px;
}
.background_dojo {
.background_distant_castle {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1136px -1332px;
width: 141px;
height: 147px;
}
.background_drifting_raft {
.background_dojo {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1278px -1332px;
width: 141px;
height: 147px;
}
.background_driving_a_coach {
.background_drifting_raft {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -1332px;
width: 141px;
height: 147px;
}
.background_driving_a_sleigh {
.background_driving_a_coach {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px 0px;
width: 141px;
height: 147px;
}
.background_duck_pond {
.background_driving_a_sleigh {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -148px;
width: 141px;
height: 147px;
}
.background_dungeon {
.background_duck_pond {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -296px;
width: 141px;
height: 147px;
}
.background_dusty_canyons {
.background_dungeon {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -444px;
width: 141px;
height: 147px;
}
.background_elegant_balcony {
.background_dusty_canyons {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -592px;
width: 141px;
height: 147px;
}
.background_fairy_ring {
.background_elegant_balcony {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -740px;
width: 141px;
height: 147px;
}
.background_fantastical_shoe_store {
.background_fairy_ring {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -888px;
width: 141px;
height: 147px;
}
.background_farmhouse {
.background_fantastical_shoe_store {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -1036px;
width: 141px;
height: 147px;
}
.background_fiber_arts_room {
.background_farmhouse {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -1184px;
width: 141px;
height: 147px;
}
.background_field_with_colored_eggs {
.background_fiber_arts_room {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1562px -1332px;
width: 141px;
height: 147px;
}
.background_floating_islands {
.background_field_with_colored_eggs {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -1480px;
width: 141px;
height: 147px;
}
.background_floral_meadow {
.background_floating_islands {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -1480px;
width: 141px;
height: 147px;
}
.background_flower_market {
.background_floral_meadow {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -1480px;
width: 141px;
height: 147px;
}
.customize-option.background_flower_market {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -309px -1495px;
width: 60px;
height: 60px;
}
.background_flying_over_a_field_of_wildflowers {
.background_flower_market {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -1480px;
width: 141px;
height: 147px;
}
.customize-option.background_flying_over_a_field_of_wildflowers {
.customize-option.background_flower_market {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -451px -1495px;
width: 60px;
height: 60px;
}
.background_flying_over_an_ancient_forest {
.background_flying_over_a_field_of_wildflowers {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -1480px;
width: 141px;
height: 147px;
}
.background_flying_over_icy_steppes {
.customize-option.background_flying_over_a_field_of_wildflowers {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -593px -1495px;
width: 60px;
height: 60px;
}
.background_flying_over_an_ancient_forest {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -1480px;
width: 141px;
height: 147px;
}
.background_flying_over_rocky_canyon {
.background_flying_over_icy_steppes {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -1480px;
width: 141px;
height: 147px;
}
.background_flying_over_snowy_mountains {
.background_flying_over_rocky_canyon {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1420px -444px;
width: 141px;
height: 147px;
}
.background_flying_over_tropical_islands {
.background_flying_over_snowy_mountains {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1136px -444px;
width: 141px;
height: 147px;
}
.background_forest {
.background_flying_over_tropical_islands {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1136px -296px;
width: 141px;
height: 147px;
}
.background_frigid_peak {
.background_forest {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1136px -148px;
width: 141px;
height: 147px;
}
.background_frosty_forest {
.background_frigid_peak {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -1136px 0px;
width: 141px;
height: 147px;
}
.background_frozen_lake {
.background_frosty_forest {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -888px;
width: 141px;
height: 147px;
}
.background_garden_shed {
.background_frozen_lake {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -888px;
width: 141px;
height: 147px;
}
.background_gazebo {
.background_garden_shed {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -888px;
width: 141px;
height: 147px;
}
.background_giant_birdhouse {
.background_gazebo {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -888px;
width: 141px;
height: 147px;
}
.background_giant_book {
.background_giant_birdhouse {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -888px;
width: 141px;
height: 147px;
}
.background_giant_dandelions {
.background_giant_book {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -888px;
width: 141px;
height: 147px;
}
.background_giant_florals {
.background_giant_dandelions {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -888px;
width: 141px;
height: 147px;
}
.background_giant_seashell {
.background_giant_florals {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -888px;
width: 141px;
height: 147px;
}
.background_giant_wave {
.background_giant_seashell {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -740px;
width: 141px;
height: 147px;
}
.background_glowing_mushroom_cave {
.background_giant_wave {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -592px;
width: 141px;
height: 147px;
}
.background_gorgeous_greenhouse {
.background_glowing_mushroom_cave {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -444px;
width: 141px;
height: 147px;
}
.background_grand_staircase {
.background_gorgeous_greenhouse {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -296px;
width: 141px;
height: 147px;
}
.background_graveyard {
.background_grand_staircase {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px -148px;
width: 141px;
height: 147px;
}
.background_green {
.background_graveyard {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -994px 0px;
width: 141px;
height: 147px;
}
.background_guardian_statues {
.background_green {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -740px;
width: 141px;
height: 147px;
}
.background_gumdrop_land {
.background_guardian_statues {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -740px;
width: 141px;
height: 147px;
}
.background_habit_city_streets {
.background_gumdrop_land {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -740px;
width: 141px;
height: 147px;
}
.background_halflings_house {
.background_habit_city_streets {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -740px;
width: 141px;
height: 147px;
}
.background_harvest_feast {
.background_halflings_house {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -740px;
width: 141px;
height: 147px;
}
.background_harvest_fields {
.background_harvest_feast {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -740px;
width: 141px;
height: 147px;
}
.background_harvest_moon {
.background_harvest_fields {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -740px;
width: 141px;
height: 147px;
}
.background_haunted_house {
.background_harvest_moon {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -592px;
width: 141px;
height: 147px;
}
.background_ice_cave {
.background_haunted_house {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -444px;
width: 141px;
height: 147px;
}
.background_iceberg {
.background_ice_cave {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -296px;
width: 141px;
height: 147px;
}
.background_idyllic_cabin {
.background_iceberg {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px -148px;
width: 141px;
height: 147px;
}
.background_island_waterfalls {
.background_idyllic_cabin {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -852px 0px;
width: 141px;
height: 147px;
}
.background_kelp_forest {
.background_in_a_classroom {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -592px;
width: 141px;
height: 147px;
}
.background_lake_with_floating_lanterns {
.background_in_an_ancient_tomb {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -592px;
width: 141px;
height: 147px;
}
.background_lighthouse_shore {
.background_island_waterfalls {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -592px;
width: 141px;
height: 147px;
}
.background_lilypad {
.background_kelp_forest {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -592px;
width: 141px;
height: 147px;
}
.background_magic_beanstalk {
.background_lake_with_floating_lanterns {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -592px;
width: 141px;
height: 147px;
}
.background_magical_candles {
.background_lighthouse_shore {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -592px;
width: 141px;
height: 147px;
}
.background_magical_museum {
.background_lilypad {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -444px;
width: 141px;
height: 147px;
}
.background_marble_temple {
.background_magic_beanstalk {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -296px;
width: 141px;
height: 147px;
}
.background_market {
.background_magical_candles {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px -148px;
width: 141px;
height: 147px;
}
.background_meandering_cave {
.background_magical_museum {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -710px 0px;
width: 141px;
height: 147px;
}
.background_medieval_kitchen {
.background_marble_temple {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -444px;
width: 141px;
height: 147px;
}
.background_midnight_castle {
.background_market {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -444px;
width: 141px;
height: 147px;
}
.background_midnight_clouds {
.background_meandering_cave {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -444px;
width: 141px;
height: 147px;
}
.background_midnight_lake {
.background_medieval_kitchen {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -444px;
width: 141px;
height: 147px;
}
.background_mist_shrouded_mountain {
.background_midnight_castle {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -444px;
width: 141px;
height: 147px;
}
.background_mistiflying_circus {
.background_midnight_clouds {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -296px;
width: 141px;
height: 147px;
}
.background_mountain_lake {
.background_midnight_lake {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px -148px;
width: 141px;
height: 147px;
}
.background_mountain_pyramid {
.background_mist_shrouded_mountain {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -568px 0px;
width: 141px;
height: 147px;
}
.background_night_dunes {
.background_mistiflying_circus {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -296px;
width: 141px;
height: 147px;
}
.background_ocean_sunrise {
.background_mountain_lake {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -296px;
width: 141px;
height: 147px;
}
.background_old_fashioned_bakery {
.background_mountain_pyramid {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -296px;
width: 141px;
height: 147px;
}
.background_on_tree_branch {
.background_night_dunes {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -296px;
width: 141px;
height: 147px;
}
.background_open_waters {
.background_ocean_sunrise {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -148px;
width: 141px;
height: 147px;
}
.background_orchard {
.background_old_fashioned_bakery {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -426px 0px;
width: 141px;
height: 147px;
}
.background_pagodas {
.background_on_tree_branch {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px -148px;
width: 141px;
height: 147px;
}
.background_park_with_statue {
.background_open_waters {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -148px;
width: 141px;
height: 147px;
}
.background_pirate_flag {
.background_orchard {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -148px;
width: 141px;
height: 147px;
}
.background_pixelists_workshop {
.background_pagodas {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -284px 0px;
width: 141px;
height: 147px;
}
.background_pumpkin_patch {
.background_park_with_statue {
background-image: url('~assets/images/sprites/spritesmith-main-0.png');
background-position: -142px 0px;
width: 141px;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,102 +1,120 @@
.quest_TEMPLATE_FOR_MISSING_IMAGE {
.quest_bunny {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -502px -1546px;
width: 221px;
height: 39px;
background-position: 0px -1543px;
width: 210px;
height: 186px;
}
.quest_dilatory {
.quest_butterfly {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1320px -660px;
background-position: -1320px -440px;
width: 219px;
height: 219px;
}
.quest_dilatoryDistress1 {
.quest_cheetah {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1540px -1085px;
width: 210px;
height: 210px;
background-position: -220px -892px;
width: 219px;
height: 219px;
}
.quest_dilatoryDistress2 {
.quest_cow {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1757px -570px;
width: 150px;
height: 150px;
background-position: -1762px -175px;
width: 174px;
height: 213px;
}
.quest_dilatoryDistress3 {
.quest_dilatory {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -220px -232px;
width: 219px;
height: 219px;
}
.quest_dilatoryDistress1 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: 0px -1332px;
width: 210px;
height: 210px;
}
.quest_dilatoryDistress2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1762px -932px;
width: 150px;
height: 150px;
}
.quest_dilatoryDistress3 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -660px -220px;
width: 219px;
height: 219px;
}
.quest_dilatory_derby {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -220px -672px;
background-position: 0px -232px;
width: 219px;
height: 219px;
}
.quest_dolphin {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -440px -232px;
background-position: 0px -452px;
width: 219px;
height: 219px;
}
.quest_dustbunnies {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -660px 0px;
background-position: -220px -452px;
width: 219px;
height: 219px;
}
.quest_egg {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1757px -362px;
background-position: -1762px -573px;
width: 165px;
height: 207px;
}
.quest_evilsanta {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1757px -1174px;
background-position: -1762px -1385px;
width: 118px;
height: 131px;
}
.quest_evilsanta2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -220px -452px;
background-position: -880px 0px;
width: 219px;
height: 219px;
}
.quest_falcon {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -440px -452px;
background-position: -880px -220px;
width: 219px;
height: 219px;
}
.quest_ferret {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -660px -452px;
background-position: -880px -440px;
width: 219px;
height: 219px;
}
.quest_frog {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1100px -1112px;
background-position: -1540px 0px;
width: 221px;
height: 213px;
}
.quest_ghost_stag {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -880px -220px;
background-position: -220px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -880px -440px;
background-position: -440px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -251px -1546px;
background-position: -1305px -1332px;
width: 250px;
height: 150px;
}
@ -108,295 +126,271 @@
}
.quest_gryphon {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1322px -1112px;
background-position: -1088px -1332px;
width: 216px;
height: 177px;
}
.quest_guineapig {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -660px -672px;
background-position: -1100px -220px;
width: 219px;
height: 219px;
}
.quest_harpy {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -880px -672px;
background-position: -1100px -440px;
width: 219px;
height: 219px;
}
.quest_hedgehog {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -220px -1332px;
background-position: -211px -1332px;
width: 219px;
height: 186px;
}
.quest_hippo {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1100px -220px;
background-position: 0px -892px;
width: 219px;
height: 219px;
}
.quest_horse {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1100px -440px;
background-position: -220px 0px;
width: 219px;
height: 219px;
}
.quest_kangaroo {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1100px -660px;
background-position: -440px -892px;
width: 219px;
height: 219px;
}
.quest_kraken {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -663px -1332px;
background-position: -871px -1332px;
width: 216px;
height: 177px;
}
.quest_lostMasterclasser1 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -220px -892px;
background-position: -880px -892px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -440px -892px;
background-position: -1100px -892px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser3 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -660px -892px;
background-position: -1320px 0px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying1 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1757px -1023px;
background-position: -1762px -1083px;
width: 150px;
height: 150px;
}
.quest_mayhemMistiflying2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1100px -892px;
background-position: -880px -672px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying3 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1320px 0px;
background-position: -1320px -660px;
width: 219px;
height: 219px;
}
.quest_monkey {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1320px -220px;
background-position: -1320px -880px;
width: 219px;
height: 219px;
}
.quest_moon1 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1540px -217px;
background-position: -1540px -431px;
width: 216px;
height: 216px;
}
.quest_moon2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -220px 0px;
background-position: -220px -1112px;
width: 219px;
height: 219px;
}
.quest_moon3 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1320px -880px;
background-position: -440px -1112px;
width: 219px;
height: 219px;
}
.quest_moonstone1 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: 0px -1112px;
background-position: -660px -1112px;
width: 219px;
height: 219px;
}
.quest_moonstone2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -220px -1112px;
background-position: -880px -1112px;
width: 219px;
height: 219px;
}
.quest_moonstone3 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -440px -1112px;
background-position: -1100px -1112px;
width: 219px;
height: 219px;
}
.quest_nudibranch {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1540px 0px;
background-position: -1540px -214px;
width: 216px;
height: 216px;
}
.quest_octopus {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -440px -1332px;
background-position: -431px -1332px;
width: 222px;
height: 177px;
}
.quest_owl {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -880px -1112px;
background-position: 0px -1112px;
width: 219px;
height: 219px;
}
.quest_peacock {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1540px -868px;
background-position: -1540px -648px;
width: 216px;
height: 216px;
}
.quest_penguin {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1757px -178px;
background-position: -1762px -389px;
width: 190px;
height: 183px;
}
.quest_pterodactyl {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -660px -1112px;
background-position: 0px -672px;
width: 219px;
height: 219px;
}
.quest_rat {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1320px -440px;
background-position: -660px -452px;
width: 219px;
height: 219px;
}
.quest_robot {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -440px -232px;
width: 219px;
height: 219px;
}
.quest_rock {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1540px -434px;
background-position: -1540px -865px;
width: 216px;
height: 216px;
}
.quest_rooster {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1531px -1332px;
background-position: -1762px 0px;
width: 213px;
height: 174px;
}
.quest_sabretooth {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -880px -892px;
background-position: -1320px -1112px;
width: 219px;
height: 219px;
}
.quest_seaserpent {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: 0px -892px;
background-position: -1100px -660px;
width: 219px;
height: 219px;
}
.quest_sheep {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1100px 0px;
background-position: -1320px -220px;
width: 219px;
height: 219px;
}
.quest_silver {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -440px -672px;
background-position: -660px -892px;
width: 219px;
height: 219px;
}
.quest_slime {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: 0px -672px;
background-position: -1100px 0px;
width: 219px;
height: 219px;
}
.quest_sloth {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -880px 0px;
background-position: -660px -672px;
width: 219px;
height: 219px;
}
.quest_snail {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: 0px -1332px;
background-position: -1540px -1082px;
width: 219px;
height: 213px;
}
.quest_snake {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1097px -1332px;
background-position: -654px -1332px;
width: 216px;
height: 177px;
}
.quest_spider {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: 0px -1546px;
background-position: -211px -1543px;
width: 250px;
height: 150px;
}
.quest_squirrel {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: 0px -452px;
background-position: -440px -452px;
width: 219px;
height: 219px;
}
.quest_stoikalmCalamity1 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1757px -872px;
background-position: -1762px -781px;
width: 150px;
height: 150px;
}
.quest_stoikalmCalamity2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -660px -220px;
background-position: -660px 0px;
width: 219px;
height: 219px;
}
.quest_stoikalmCalamity3 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: 0px -232px;
background-position: -440px 0px;
width: 219px;
height: 219px;
}
.quest_taskwoodsTerror1 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1757px -721px;
background-position: -1762px -1234px;
width: 150px;
height: 150px;
}
.quest_taskwoodsTerror2 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1540px -651px;
width: 216px;
height: 216px;
}
.quest_taskwoodsTerror3 {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -440px 0px;
width: 219px;
height: 219px;
}
.quest_treeling {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1314px -1332px;
width: 216px;
height: 177px;
}
.quest_trex {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -1757px 0px;
width: 204px;
height: 177px;
}
.quest_trex_undead {
background-image: url('~assets/images/sprites/spritesmith-main-12.png');
background-position: -880px -1332px;
width: 216px;
height: 177px;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 KiB

After

Width:  |  Height:  |  Size: 488 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 KiB

After

Width:  |  Height:  |  Size: 639 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 KiB

After

Width:  |  Height:  |  Size: 430 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 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: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 115 KiB

View file

@ -9,41 +9,23 @@
</defs>
<g fill="none" fill-rule="evenodd">
<g transform="translate(138.726 12.613)">
<mask id="b" fill="#fff">
<use xlink:href="#a"/>
</mask>
<path fill="#4F2A93" d="M21.94 19.774a3.025 3.025 0 0 0-4.23.545 6.115 6.115 0 0 1-4.87 2.389c-3.249 0-5.934-2.519-6.131-5.743-.007-.465-.012-3.793-.012-4.226 0-3.376 2.756-6.122 6.144-6.122a6.1 6.1 0 0 1 4.456 1.907 3.023 3.023 0 0 0 4.263.11 2.997 2.997 0 0 0 .11-4.249A12.248 12.248 0 0 0 12.84.606C6.128.606.667 6.048.667 12.739c0 .041.001 4.206.018 4.512.35 6.43 5.69 11.467 12.157 11.467a12.11 12.11 0 0 0 9.645-4.728 2.999 2.999 0 0 0-.546-4.216" mask="url(#b)"/>
<path fill="#4F2A93" d="M21.94 19.774a3.025 3.025 0 0 0-4.23.545 6.115 6.115 0 0 1-4.87 2.389c-3.249 0-5.934-2.519-6.131-5.743-.007-.465-.012-3.793-.012-4.226 0-3.376 2.756-6.122 6.144-6.122a6.1 6.1 0 0 1 4.456 1.907 3.023 3.023 0 0 0 4.263.11 2.997 2.997 0 0 0 .11-4.249A12.248 12.248 0 0 0 12.84.606C6.128.606.667 6.048.667 12.739c0 .041.001 4.206.018 4.512.35 6.43 5.69 11.467 12.157 11.467a12.11 12.11 0 0 0 9.645-4.728 2.999 2.999 0 0 0-.546-4.216"/>
</g>
<path fill="#4F2A93" d="M178.606 35.32c-3.249 0-5.933-2.518-6.131-5.74-.007-.467-.012-3.81-.012-4.229 0-3.375 2.756-6.122 6.143-6.122 3.388 0 6.144 2.747 6.144 6.122 0 .434-.005 3.763-.012 4.223-.195 3.226-2.88 5.746-6.132 5.746m9.16-22.621a3.007 3.007 0 0 0-2.911 2.259 12.12 12.12 0 0 0-6.249-1.74c-6.713 0-12.174 5.444-12.174 12.133 0 .043.002 4.205.017 4.513.35 6.43 5.69 11.467 12.157 11.467 2.341 0 4.53-.667 6.392-1.815a3.014 3.014 0 0 0 2.768 1.815 3.01 3.01 0 0 0 3.015-3.006V15.704a3.01 3.01 0 0 0-3.015-3.005M40.6 35.32c-3.25 0-5.934-2.519-6.13-5.742-.008-.464-.013-3.793-.013-4.227 0-3.375 2.756-6.122 6.144-6.122 3.387 0 6.143 2.747 6.143 6.122 0 .434-.005 3.763-.012 4.223-.195 3.226-2.88 5.746-6.131 5.746m9.159-22.621a3.007 3.007 0 0 0-2.91 2.259 12.12 12.12 0 0 0-6.25-1.74c-6.713 0-12.175 5.444-12.175 12.133 0 .043.002 4.206.019 4.513.35 6.43 5.69 11.467 12.157 11.467 2.34 0 4.53-.667 6.392-1.815a3.014 3.014 0 0 0 2.767 1.815 3.01 3.01 0 0 0 3.016-3.006V15.704A3.01 3.01 0 0 0 49.76 12.7M94.159 12.699a3.01 3.01 0 0 0-3.016 3.005v22.621a3.01 3.01 0 0 0 3.016 3.006 3.01 3.01 0 0 0 3.016-3.006v-22.62a3.01 3.01 0 0 0-3.016-3.006M129.678 12.699a3.01 3.01 0 0 0-3.016 3.005v22.621a3.01 3.01 0 0 0 3.016 3.006 3.01 3.01 0 0 0 3.016-3.006v-22.62a3.01 3.01 0 0 0-3.016-3.006"/>
<g transform="translate(59.646 .591)">
<mask id="d" fill="#fff">
<use xlink:href="#c"/>
</mask>
<path fill="#4F2A93" d="M18.864 28.99c-.198 3.221-2.883 5.739-6.131 5.739-3.25 0-5.935-2.519-6.132-5.746-.008-.464-.012-3.79-.012-4.223 0-3.376 2.756-6.122 6.144-6.122 3.386 0 6.143 2.746 6.143 6.122 0 .419-.005 3.762-.012 4.23m-6.131-16.363c-2.242 0-4.338.618-6.144 1.676V3.083A3.01 3.01 0 0 0 3.574.076 3.01 3.01 0 0 0 .558 3.082v34.653a3.01 3.01 0 0 0 3.016 3.005c1.24 0 2.304-.748 2.767-1.815a12.149 12.149 0 0 0 6.392 1.815c6.466 0 11.806-5.037 12.157-11.478.015-.297.017-4.46.017-4.502 0-6.69-5.462-12.133-12.174-12.133" mask="url(#d)"/>
<path fill="#4F2A93" d="M18.864 28.99c-.198 3.221-2.883 5.739-6.131 5.739-3.25 0-5.935-2.519-6.132-5.746-.008-.464-.012-3.79-.012-4.223 0-3.376 2.756-6.122 6.144-6.122 3.386 0 6.143 2.746 6.143 6.122 0 .419-.005 3.762-.012 4.23m-6.131-16.363c-2.242 0-4.338.618-6.144 1.676V3.083A3.01 3.01 0 0 0 3.574.076 3.01 3.01 0 0 0 .558 3.082v34.653a3.01 3.01 0 0 0 3.016 3.005c1.24 0 2.304-.748 2.767-1.815a12.149 12.149 0 0 0 6.392 1.815c6.466 0 11.806-5.037 12.157-11.478.015-.297.017-4.46.017-4.502 0-6.69-5.462-12.133-12.174-12.133"/>
</g>
<g transform="translate(0 .591)">
<mask id="f" fill="#fff">
<use xlink:href="#e"/>
</mask>
<path fill="#4F2A93" d="M11.855 12.627c-2.08 0-4.07.52-5.823 1.47V3.082A3.01 3.01 0 0 0 3.016.077 3.01 3.01 0 0 0 0 3.082v34.652a3.01 3.01 0 0 0 3.016 3.006 3.01 3.01 0 0 0 3.016-3.006V22.201c.23-.196.442-.416.612-.684a6.12 6.12 0 0 1 5.211-2.879c3.387 0 6.143 2.746 6.143 6.122 0 .55-.005 12.23-.013 12.9a3.01 3.01 0 0 0 3.018 3.08 3.012 3.012 0 0 0 3.01-2.853c.014-.297.016-12.999.016-13.127 0-6.69-5.46-12.133-12.174-12.133" mask="url(#f)"/>
<path fill="#4F2A93" d="M11.855 12.627c-2.08 0-4.07.52-5.823 1.47V3.082A3.01 3.01 0 0 0 3.016.077 3.01 3.01 0 0 0 0 3.082v34.652a3.01 3.01 0 0 0 3.016 3.006 3.01 3.01 0 0 0 3.016-3.006V22.201c.23-.196.442-.416.612-.684a6.12 6.12 0 0 1 5.211-2.879c3.387 0 6.143 2.746 6.143 6.122 0 .55-.005 12.23-.013 12.9a3.01 3.01 0 0 0 3.018 3.08 3.012 3.012 0 0 0 3.01-2.853c.014-.297.016-12.999.016-13.127 0-6.69-5.46-12.133-12.174-12.133"/>
</g>
<g transform="translate(101.867 .591)">
<mask id="h" fill="#fff">
<use xlink:href="#g"/>
</mask>
<path fill="#4F2A93" d="M16.363 12.108h-3.518V3.082A3.01 3.01 0 0 0 9.829.077a3.01 3.01 0 0 0-3.016 3.005v9.026H3.295a3.01 3.01 0 0 0-3.016 3.005 3.01 3.01 0 0 0 3.016 3.005h3.518v19.616a3.01 3.01 0 0 0 3.016 3.005 3.01 3.01 0 0 0 3.016-3.005V18.118h3.518a3.01 3.01 0 0 0 3.016-3.005 3.01 3.01 0 0 0-3.016-3.005" mask="url(#h)"/>
<path fill="#4F2A93" d="M16.363 12.108h-3.518V3.082A3.01 3.01 0 0 0 9.829.077a3.01 3.01 0 0 0-3.016 3.005v9.026H3.295a3.01 3.01 0 0 0-3.016 3.005 3.01 3.01 0 0 0 3.016 3.005h3.518v19.616a3.01 3.01 0 0 0 3.016 3.005 3.01 3.01 0 0 0 3.016-3.005V18.118h3.518a3.01 3.01 0 0 0 3.016-3.005 3.01 3.01 0 0 0-3.016-3.005"/>
</g>
<g transform="translate(90.474 .591)">
<mask id="j" fill="#fff">
<use xlink:href="#i"/>
</mask>
<path fill="#FF6066" d="M6.59 3.082a3.01 3.01 0 0 1-3.016 3.005A3.01 3.01 0 0 1 .558 3.082 3.01 3.01 0 0 1 3.574.077 3.01 3.01 0 0 1 6.59 3.082" mask="url(#j)"/>
<path fill="#FF6066" d="M6.59 3.082a3.01 3.01 0 0 1-3.016 3.005A3.01 3.01 0 0 1 .558 3.082 3.01 3.01 0 0 1 3.574.077 3.01 3.01 0 0 1 6.59 3.082"/>
</g>
<g transform="translate(125.993 .591)">
<mask id="l" fill="#fff">
<use xlink:href="#k"/>
</mask>
<path fill="#4FB5E8" d="M6.59 3.082a3.01 3.01 0 0 1-3.016 3.005A3.01 3.01 0 0 1 .558 3.082 3.01 3.01 0 0 1 3.574.077 3.01 3.01 0 0 1 6.59 3.082" mask="url(#l)"/>
<path fill="#4FB5E8" d="M6.59 3.082a3.01 3.01 0 0 1-3.016 3.005A3.01 3.01 0 0 1 .558 3.082 3.01 3.01 0 0 1 3.574.077 3.01 3.01 0 0 1 6.59 3.082"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -4,8 +4,8 @@
</defs>
<g fill="none" fill-rule="evenodd">
<path fill="#FFF" d="M24.052 26.3c-.832-.09-.841-.462-.832-5.421 0 0-.083-.312.395-.582.477-.27 1.93-2.679 1.037-4.734-.892-2.056-.248-1.952.125-1.744.374.208.554-.055.332-1.183-.457-2.325-1.17-3.113-2.851-4.162-1.104-.69-.704-1.94.866-1.848.766.045.766.046.862-.555.152-.947-.15-2.565-1.327-2.788-.81-.154-1.817.713-3.015.109-1.198-.604-3.178.904-3.988 1.254s-1.479.354-2.403.331c-.925-.022.49 1.531 1.906 1.881 1.216.3.743.516.674 1.51-.078 1.113.24 1.59-.279 1.707-.796.178-1.686-1.961-3.052-2.857C9.4 5.183 7.56 6.152 2.15.201 1.211-.83 1.592 2.36 2.17 4.063c1.543 4.55 4.532 5.153 5.942 5.29 1.18.116 1.984-.158 1.984.297 0 .33-1.391.48-1.93.482a9.469 9.469 0 0 1-1.762-.173c-1.073-.2.569 2.535 1.624 3.402 1.78 1.465 3.818 2.014 5.456 2.18.473.048 1.146.04 1.146.41 0 .352-.354.438-.773.441-2.294.017-3.612 1.849-3.986 3.967-.237 1.346-.06 2.868-.035 4.005l.09.812c.18 1.426-4.948 1.975-5.627-.322-.743-2.51 3.309-3.837 3.383-6.232.047-1.509-1.333-2.194-1.333-2.194V14.224H4.76v-1.587H3.174V11.05H1.587v4.761h1.587V17.4h2.613c.594 0 1.07.392 1.015 1.24-.137 2.093-4.589 3.379-3.365 6.716.884 2.41 4.696 2.441 8.513 2.441l7.118-.006c.222 0 .534-.107.08-1.255-.367-.927-1.632-.276-2.706-.276-1.137 0-1.176-.96-.446-1.973.446-.618 1.014-1.078 1.979-1.527 1.486-.693 2.617.198 3.174.963.8 1.099 1.054 2.355.348 2.552-.851.238-1.113.27-1.141 1.08-.022.581.256.422 1.595.422h4.445c.688 0 .637-.53-.055-1.45-.491-.653-1.028.11-2.289-.027z"/>
<path fill="#FFF" d="M0 10.827h1.587V9.24H0zM113.986 19.894a1.385 1.385 0 0 0-1.942.25c-.54.7-1.354 1.101-2.236 1.101a2.82 2.82 0 0 1-2.815-2.645 416.05 416.05 0 0 1-.005-1.947 2.824 2.824 0 0 1 2.82-2.821c.781 0 1.508.312 2.046.879a1.385 1.385 0 0 0 2.008-1.907 5.614 5.614 0 0 0-4.054-1.741 5.596 5.596 0 0 0-5.59 5.59c0 .019.001 1.937.009 2.078a5.589 5.589 0 0 0 5.581 5.283c1.747 0 3.361-.793 4.429-2.178a1.385 1.385 0 0 0-.251-1.942M122.223 21.245a2.819 2.819 0 0 1-2.815-2.644 419.52 419.52 0 0 1-.006-1.949 2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.821 2.82c0 .2-.002 1.734-.005 1.946a2.818 2.818 0 0 1-2.815 2.647m4.205-10.422c-.645 0-1.183.444-1.336 1.04a5.55 5.55 0 0 0-2.87-.8 5.596 5.596 0 0 0-5.589 5.59c0 .019.001 1.936.008 2.078a5.589 5.589 0 0 0 8.517 4.447 1.384 1.384 0 0 0 2.655-.548V12.208c0-.765-.62-1.385-1.385-1.385M58.861 21.245a2.819 2.819 0 0 1-2.815-2.646c-.003-.213-.005-1.747-.005-1.947a2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.82 2.82c0 .2-.001 1.734-.005 1.946a2.818 2.818 0 0 1-2.815 2.647m4.206-10.422c-.646 0-1.183.444-1.337 1.04a5.55 5.55 0 0 0-2.869-.8 5.596 5.596 0 0 0-5.59 5.59c0 .019.001 1.937.009 2.078a5.589 5.589 0 0 0 8.516 4.447 1.384 1.384 0 0 0 2.655-.548V12.208c0-.765-.62-1.385-1.384-1.385M83.451 10.823c-.764 0-1.384.62-1.384 1.385V22.63a1.385 1.385 0 0 0 2.769 0V12.208c0-.765-.62-1.385-1.385-1.385M99.759 10.823c-.765 0-1.385.62-1.385 1.385V22.63a1.385 1.385 0 0 0 2.77 0V12.208c0-.765-.62-1.385-1.385-1.385M76.266 18.6a2.82 2.82 0 0 1-2.815 2.645 2.82 2.82 0 0 1-2.815-2.647c-.004-.214-.005-1.746-.005-1.946a2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.82 2.82c0 .193-.002 1.733-.005 1.949m-2.815-7.538c-1.03 0-1.991.284-2.82.772v-5.17a1.385 1.385 0 0 0-2.77 0V22.63a1.385 1.385 0 0 0 2.655.548c.856.529 1.86.836 2.935.836a5.59 5.59 0 0 0 5.582-5.288c.007-.137.008-2.054.008-2.074a5.596 5.596 0 0 0-5.59-5.59M45.664 11.063a5.58 5.58 0 0 0-2.674.677V6.665a1.385 1.385 0 0 0-2.77 0V22.63a1.385 1.385 0 1 0 2.77 0v-7.157c.106-.09.203-.191.281-.315a2.808 2.808 0 0 1 2.393-1.326 2.824 2.824 0 0 1 2.82 2.82c0 .254-.002 5.635-.006 5.944a1.385 1.385 0 0 0 2.767.104c.007-.137.008-5.989.008-6.048a5.596 5.596 0 0 0-5.59-5.59M94.503 10.823h-1.616V6.665a1.385 1.385 0 0 0-2.77 0v4.158h-1.614a1.385 1.385 0 0 0 0 2.77h1.615v9.037a1.385 1.385 0 0 0 2.77 0v-9.038h1.615a1.385 1.385 0 0 0 0-2.769" mask="url(#b)"/>
<path fill="#FF6066" d="M84.785 6.665a1.385 1.385 0 1 1-2.77 0 1.385 1.385 0 0 1 2.77 0" mask="url(#b)"/>
<path fill="#4FB5E8" d="M101.092 6.665a1.385 1.385 0 1 1-2.77 0 1.385 1.385 0 0 1 2.77 0" mask="url(#b)"/>
<path fill="#FFF" d="M0 10.827h1.587V9.24H0zM113.986 19.894a1.385 1.385 0 0 0-1.942.25c-.54.7-1.354 1.101-2.236 1.101a2.82 2.82 0 0 1-2.815-2.645 416.05 416.05 0 0 1-.005-1.947 2.824 2.824 0 0 1 2.82-2.821c.781 0 1.508.312 2.046.879a1.385 1.385 0 0 0 2.008-1.907 5.614 5.614 0 0 0-4.054-1.741 5.596 5.596 0 0 0-5.59 5.59c0 .019.001 1.937.009 2.078a5.589 5.589 0 0 0 5.581 5.283c1.747 0 3.361-.793 4.429-2.178a1.385 1.385 0 0 0-.251-1.942M122.223 21.245a2.819 2.819 0 0 1-2.815-2.644 419.52 419.52 0 0 1-.006-1.949 2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.821 2.82c0 .2-.002 1.734-.005 1.946a2.818 2.818 0 0 1-2.815 2.647m4.205-10.422c-.645 0-1.183.444-1.336 1.04a5.55 5.55 0 0 0-2.87-.8 5.596 5.596 0 0 0-5.589 5.59c0 .019.001 1.936.008 2.078a5.589 5.589 0 0 0 8.517 4.447 1.384 1.384 0 0 0 2.655-.548V12.208c0-.765-.62-1.385-1.385-1.385M58.861 21.245a2.819 2.819 0 0 1-2.815-2.646c-.003-.213-.005-1.747-.005-1.947a2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.82 2.82c0 .2-.001 1.734-.005 1.946a2.818 2.818 0 0 1-2.815 2.647m4.206-10.422c-.646 0-1.183.444-1.337 1.04a5.55 5.55 0 0 0-2.869-.8 5.596 5.596 0 0 0-5.59 5.59c0 .019.001 1.937.009 2.078a5.589 5.589 0 0 0 8.516 4.447 1.384 1.384 0 0 0 2.655-.548V12.208c0-.765-.62-1.385-1.384-1.385M83.451 10.823c-.764 0-1.384.62-1.384 1.385V22.63a1.385 1.385 0 0 0 2.769 0V12.208c0-.765-.62-1.385-1.385-1.385M99.759 10.823c-.765 0-1.385.62-1.385 1.385V22.63a1.385 1.385 0 0 0 2.77 0V12.208c0-.765-.62-1.385-1.385-1.385M76.266 18.6a2.82 2.82 0 0 1-2.815 2.645 2.82 2.82 0 0 1-2.815-2.647c-.004-.214-.005-1.746-.005-1.946a2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.82 2.82c0 .193-.002 1.733-.005 1.949m-2.815-7.538c-1.03 0-1.991.284-2.82.772v-5.17a1.385 1.385 0 0 0-2.77 0V22.63a1.385 1.385 0 0 0 2.655.548c.856.529 1.86.836 2.935.836a5.59 5.59 0 0 0 5.582-5.288c.007-.137.008-2.054.008-2.074a5.596 5.596 0 0 0-5.59-5.59M45.664 11.063a5.58 5.58 0 0 0-2.674.677V6.665a1.385 1.385 0 0 0-2.77 0V22.63a1.385 1.385 0 1 0 2.77 0v-7.157c.106-.09.203-.191.281-.315a2.808 2.808 0 0 1 2.393-1.326 2.824 2.824 0 0 1 2.82 2.82c0 .254-.002 5.635-.006 5.944a1.385 1.385 0 0 0 2.767.104c.007-.137.008-5.989.008-6.048a5.596 5.596 0 0 0-5.59-5.59M94.503 10.823h-1.616V6.665a1.385 1.385 0 0 0-2.77 0v4.158h-1.614a1.385 1.385 0 0 0 0 2.77h1.615v9.037a1.385 1.385 0 0 0 2.77 0v-9.038h1.615a1.385 1.385 0 0 0 0-2.769" />
<path fill="#FF6066" d="M84.785 6.665a1.385 1.385 0 1 1-2.77 0 1.385 1.385 0 0 1 2.77 0" />
<path fill="#4FB5E8" d="M101.092 6.665a1.385 1.385 0 1 1-2.77 0 1.385 1.385 0 0 1 2.77 0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -16,7 +16,7 @@ export default {
...mapState(['isUserLoggedIn']),
contactUsLink () {
if (this.isUserLoggedIn) {
return {name: 'guild', params: {groupId: '5481ccf3-5d2d-48a9-a871-70a7380cee5a'} };
return {name: 'guild', params: {groupId: 'a29da26b-37de-4a71-b0c6-48e72a900dac'} };
} else {
return {name: 'contact'};
}

View file

@ -15,13 +15,12 @@
</template>
<style lang='scss'>
@import '~client/assets/scss/static.scss';
</style>
<style lang='scss' scoped>
.modal-body {
padding-top: 2em;
}
@import '~client/assets/scss/static.scss';
#new-stuff {
.modal-body .modal-body {
padding-top: 0rem;
}
}
</style>
<script>

View file

@ -57,6 +57,7 @@
:type="column",
:key="column",
:taskListOverride='tasksByType[column]',
:showOptions="showOptions",
@editTask="editTask",
@taskDestroyed="taskDestroyed",
v-if='tasksByType[column].length > 0')
@ -251,6 +252,9 @@ export default {
canJoin () {
return !this.isMember;
},
showOptions () {
return this.isLeader;
},
},
mounted () {
if (!this.searchId) this.searchId = this.challengeId;

View file

@ -39,9 +39,9 @@
.custom-control.custom-checkbox
input.custom-control-input(type="checkbox",
:value="group.key",
:id="group.key",
:id="`challenge-modal-cat-${group.key}`",
v-model="workingChallenge.categories")
label.custom-control-label(v-once, :for="group.key") {{ $t(group.label) }}
label.custom-control-label(v-once, :for="`challenge-modal-cat-${group.key}`") {{ $t(group.label) }}
button.btn.btn-primary(@click.prevent="toggleCategorySelect") {{$t('close')}}
// @TODO: Implement in V2 .form-group
label

View file

@ -44,17 +44,21 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
strong(v-once) {{$t('shirt')}}
.row(v-if='activeSubPage === "size"')
.col-12.customize-options.size-options
.option(v-for='option in ["slim", "broad"]', :class='{active: user.preferences.size === option}')
.sprite.customize-option(:class="`${option}_shirt_black`", @click='set({"preferences.size": option})')
.option(v-for='option in ["slim", "broad"]',
:class='{active: user.preferences.size === option}',
@click='set({"preferences.size": option})')
.sprite.customize-option(:class="`${option}_shirt_black`")
.row(v-if='activeSubPage === "shirt"')
.col-12.customize-options
.option(v-for='option in ["black", "blue", "green", "pink", "white", "yellow"]',
:class='{active: user.preferences.shirt === option}')
.sprite.customize-option(:class="`slim_shirt_${option}`", @click='set({"preferences.shirt": option})')
:class='{active: user.preferences.shirt === option}',
@click='set({"preferences.shirt": option})')
.sprite.customize-option(:class="`slim_shirt_${option}`")
.col-12.customize-options(v-if='editing')
.option(v-for='item in specialShirts',
:class='{active: item.active, locked: item.locked}')
.sprite.customize-option(:class="`broad_shirt_${item.key}`", @click='item.click')
:class='{active: item.active, locked: item.locked}',
@click='item.click')
.sprite.customize-option(:class="`broad_shirt_${item.key}`")
.gem-lock(v-if='item.locked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -70,13 +74,15 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
.row
.col-12.customize-options
.option(v-for='option in ["ddc994", "f5a76e", "ea8349", "c06534", "98461a", "915533", "c3e1dc", "6bd049"]',
:class='{active: user.preferences.skin === option}')
.skin.sprite.customize-option(:class="`skin_${option}`", @click='set({"preferences.skin": option})')
:class='{active: user.preferences.skin === option}',
@click='set({"preferences.skin": option})')
.skin.sprite.customize-option(:class="`skin_${option}`")
.row(v-if='editing && set.key !== "undefined"', v-for='set in seasonalSkins')
.col-12.customize-options
.option(v-for='option in set.options',
:class='{active: option.active, locked: option.locked, hide: option.hide}')
.skin.sprite.customize-option(:class="`skin_${option.key}`", @click='option.click')
:class='{active: option.active, locked: option.locked, hide: option.hide}',
@click='option.click')
.skin.sprite.customize-option(:class="`skin_${option.key}`")
.gem-lock(v-if='option.locked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -98,12 +104,14 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
#hair-color.row(v-if='activeSubPage === "color"')
.col-12.customize-options
.option(v-for='option in ["white", "brown", "blond", "red", "black"]',
:class='{active: user.preferences.hair.color === option}')
.color-bangs.sprite.customize-option(:class="`hair_bangs_1_${option}`", @click='set({"preferences.hair.color": option})')
:class='{active: user.preferences.hair.color === option}',
@click='set({"preferences.hair.color": option})')
.color-bangs.sprite.customize-option(:class="`hair_bangs_1_${option}`")
.col-12.customize-options(v-if='editing && set.key !== "undefined"', v-for='set in seasonalHairColors')
.option(v-for='option in set.options',
:class='{active: option.active, locked: option.locked, hide: option.hide}')
.skin.sprite.customize-option(:class="`hair_bangs_1_${option.key}`", @click='option.click')
:class='{active: option.active, locked: option.locked, hide: option.hide}',
@click='option.click')
.skin.sprite.customize-option(:class="`hair_bangs_1_${option.key}`")
.gem-lock(v-if='option.locked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -116,8 +124,9 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
.col-12.customize-options(v-if='editing')
.head_0.option(@click='set({"preferences.hair.base": 0})', :class="[{ active: user.preferences.hair.base === 0 }, 'hair_base_0_' + user.preferences.hair.color]")
.option(v-for='option in baseHair3',
:class='{active: option.active, locked: option.locked}')
.base.sprite.customize-option(:class="`hair_base_${option.key}_${user.preferences.hair.color}`", @click='option.click')
:class='{active: option.active, locked: option.locked}',
@click='option.click')
.base.sprite.customize-option(:class="`hair_base_${option.key}_${user.preferences.hair.color}`")
.gem-lock(v-if='option.locked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -128,8 +137,9 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
button.btn.btn-secondary.purchase-all(@click='unlock(`hair.base.${baseHair3Keys.join(",hair.base.")}`)') {{ $t('purchaseAll') }}
.col-12.customize-options(v-if='editing')
.option(v-for='option in baseHair4',
:class='{active: option.active, locked: option.locked}')
.base.sprite.customize-option(:class="`hair_base_${option.key}_${user.preferences.hair.color}`", @click='option.click')
:class='{active: option.active, locked: option.locked}',
@click='option.click')
.base.sprite.customize-option(:class="`hair_base_${option.key}_${user.preferences.hair.color}`")
.gem-lock(v-if='option.locked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -141,12 +151,14 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
.col-12.customize-options
.head_0.option(v-if="!editing", @click='set({"preferences.hair.base": 0})', :class="[{ active: user.preferences.hair.base === 0 }, 'hair_base_0_' + user.preferences.hair.color]")
.option(v-for='option in baseHair1',
:class='{active: user.preferences.hair.base === option}')
.base.sprite.customize-option(:class="`hair_base_${option}_${user.preferences.hair.color}`", @click='set({"preferences.hair.base": option})')
:class='{active: user.preferences.hair.base === option}',
@click='set({"preferences.hair.base": option})')
.base.sprite.customize-option(:class="`hair_base_${option}_${user.preferences.hair.color}`")
.col-12.customize-options(v-if='editing')
.option(v-for='option in baseHair2',
:class='{active: option.active, locked: option.locked}')
.base.sprite.customize-option(:class="`hair_base_${option.key}_${user.preferences.hair.color}`", @click='option.click')
:class='{active: option.active, locked: option.locked}',
@click='option.click')
.base.sprite.customize-option(:class="`hair_base_${option.key}_${user.preferences.hair.color}`")
.gem-lock(v-if='option.locked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -160,22 +172,25 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
.head_0.option(@click='set({"preferences.hair.bangs": 0})',
:class="[{ active: user.preferences.hair.bangs === 0 }, 'hair_bangs_0_' + user.preferences.hair.color]")
.option(v-for='option in [1, 2, 3, 4]',
:class='{active: user.preferences.hair.bangs === option}')
.bangs.sprite.customize-option(:class="`hair_bangs_${option}_${user.preferences.hair.color}`", @click='set({"preferences.hair.bangs": option})')
:class='{active: user.preferences.hair.bangs === option}',
@click='set({"preferences.hair.bangs": option})')
.bangs.sprite.customize-option(:class="`hair_bangs_${option}_${user.preferences.hair.color}`")
#facialhair.row(v-if='activeSubPage === "facialhair"')
.col-12.customize-options(v-if='editing')
.head_0.option(@click='set({"preferences.hair.mustache": 0})', :class="[{ active: user.preferences.hair.mustache === 0 }, 'hair_base_0_' + user.preferences.hair.color]")
.option(v-for='option in baseHair5',
:class='{active: option.active, locked: option.locked}')
.base.sprite.customize-option(:class="`hair_mustache_${option.key}_${user.preferences.hair.color}`", @click='option.click')
:class='{active: option.active, locked: option.locked}',
@click='option.click')
.base.sprite.customize-option(:class="`hair_mustache_${option.key}_${user.preferences.hair.color}`")
.gem-lock(v-if='option.locked')
.svg-icon.gem(v-html='icons.gem')
span 2
.col-12.customize-options(v-if='editing')
.head_0.option(@click='set({"preferences.hair.beard": 0})', :class="[{ active: user.preferences.hair.beard === 0 }, 'hair_base_0_' + user.preferences.hair.color]")
.option(v-for='option in baseHair6',
:class='{active: option.active, locked: option.locked}')
.base.sprite.customize-option(:class="`hair_beard_${option.key}_${user.preferences.hair.color}`", @click='option.click')
:class='{active: option.active, locked: option.locked}',
@click='option.click')
.base.sprite.customize-option(:class="`hair_beard_${option.key}_${user.preferences.hair.color}`")
.gem-lock(v-if='option.locked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -201,13 +216,16 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
strong(v-once) {{ $t('headband') }}
#glasses.row(v-if='activeSubPage === "glasses"')
.col-12.customize-options
.option(v-for='option in eyewear', :class='{active: option.active}')
.sprite.customize-option(:class="`eyewear_special_${option.key}`", @click='option.click')
.option(v-for='option in eyewear',
:class='{active: option.active}',
@click='option.click')
.sprite.customize-option(:class="`eyewear_special_${option.key}`")
#animal-ears.row(v-if='activeSubPage === "ears"')
.section.col-12.customize-options
.option(v-for='option in animalItems("headAccessory")',
:class='{active: option.active, locked: option.locked}')
.sprite.customize-option(:class="`headAccessory_special_${option.key}`", @click='option.click')
:class='{active: option.active, locked: option.locked}',
@click='option.click')
.sprite.customize-option(:class="`headAccessory_special_${option.key}`")
.gem-lock(v-if='option.gemLocked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -222,8 +240,9 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
#animal-tails.row(v-if='activeSubPage === "tails"')
.section.col-12.customize-options
.option(v-for='option in animalItems("back")',
:class='{active: option.active, locked: option.locked}')
.sprite.customize-option(:class="`icon_back_special_${option.key}`", @click='option.click')
:class='{active: option.active, locked: option.locked}',
@click='option.click')
.sprite.customize-option(:class="`icon_back_special_${option.key}`")
.gem-lock(v-if='option.gemLocked')
.svg-icon.gem(v-html='icons.gem')
span 2
@ -237,21 +256,25 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
button.btn.btn-secondary.purchase-all(@click='unlock(animalItemsUnlockString("back"))') {{ $t('purchaseAll') }}
#headband.row(v-if='activeSubPage === "headband"')
.col-12.customize-options
.option(v-for='option in headbands', :class='{active: option.active}')
.sprite.customize-option(:class="`headAccessory_special_${option.key}`", @click='option.click')
.option(v-for='option in headbands',
:class='{active: option.active}',
@click='option.click')
.sprite.customize-option(:class="`headAccessory_special_${option.key}`")
#wheelchairs.row(v-if='activeSubPage === "wheelchair"')
.col-12.customize-options
.option(@click='set({"preferences.chair": "none"})', :class='{active: user.preferences.chair === "none"}')
| None
.option(v-for='option in chairKeys',
:class='{active: user.preferences.chair === option}')
.chair.sprite.customize-option(:class="`button_chair_${option}`", @click='set({"preferences.chair": option})')
:class='{active: user.preferences.chair === option}',
@click='set({"preferences.chair": option})')
.chair.sprite.customize-option(:class="`button_chair_${option}`")
#flowers.row(v-if='activeSubPage === "flower"')
.col-12.customize-options
.head_0.option(@click='set({"preferences.hair.flower":0})', :class='{active: user.preferences.hair.flower === 0}')
.option(v-for='option in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]',
:class='{active: user.preferences.hair.flower === option}')
.sprite.customize-option(:class="`hair_flower_${option}`", @click='set({"preferences.hair.flower": option})')
:class='{active: user.preferences.hair.flower === option}',
@click='set({"preferences.hair.flower": option})')
.sprite.customize-option(:class="`hair_flower_${option}`")
.row(v-if='activeSubPage === "flower"')
.col-12.customize-options
// button.customize-option(ng-repeat='item in ::getGearArray("animal")', class='{{::item.key}}',

View file

@ -41,6 +41,7 @@
:type="column",
:key="column",
:taskListOverride='tasksByType[column]',
:showOptions="showOptions"
v-on:editTask="editTask",
v-on:loadGroupCompletedTodos="loadGroupCompletedTodos",
v-on:taskDestroyed="taskDestroyed",
@ -176,6 +177,9 @@ export default {
if (!this.group) return false;
return this.group.leader && this.group.leader._id === this.user._id || this.group.managers && Boolean(this.group.managers[this.user._id]);
},
showOptions () {
return this.canCreateTasks;
},
},
methods: {
async load () {

View file

@ -90,12 +90,8 @@
tbody
tr(v-for='(hero, index) in heroes')
td
span(v-if='hero.contributor && hero.contributor.admin', :popover="$t('gamemaster')", popover-trigger='mouseenter', popover-placement='right')
.label.label-default(:class='userLevelStyle(hero)')
| {{hero.profile.name}}&nbsp;
//- span(v-class='userAdminGlyphiconStyle(hero)')
span(v-if='!hero.contributor || !hero.contributor.admin')
.label.label-default(v-if='hero.profile', v-class='userLevelStyle(hero)') {{hero.profile.name}}
user-link(v-if='hero.contributor && hero.contributor.admin', :user='hero', :popover="$t('gamemaster')", popover-trigger='mouseenter', popover-placement='right')
user-link(v-if='!hero.contributor || !hero.contributor.admin', :user='hero')
td(v-if='user.contributor.admin', @click='populateContributorInput(hero._id, index)').btn-link {{hero._id}}
td {{hero.contributor.level}}
td {{hero.contributor.text}}
@ -120,9 +116,13 @@ import { mountInfo, petInfo } from 'common/script/content/stable';
import { food, hatchingPotions, special } from 'common/script/content';
import gear from 'common/script/content/gear';
import notifications from 'client/mixins/notifications';
import userLink from '../userLink';
export default {
mixins: [notifications, styleHelper],
components: {
userLink,
},
data () {
return {
heroes: [],

View file

@ -4,7 +4,6 @@
v-if="item != null",
:hide-header="true",
@change="onChange($event)"
@hide="fixDocBody()"
)
div.close
span.svg-icon.inline.icon-10(aria-hidden="true", v-html="icons.close", @click="hideDialog()")

View file

@ -1,6 +1,6 @@
<template lang="pug">
b-dropdown.create-dropdown(:text="text", no-flip)
b-dropdown-form(:disabled='true')
b-dropdown-form(:disabled='false', v-on:submit.prevent="onSubmit")
input.form-control(type='text', v-model='searchTerm')
b-dropdown-item(v-for="member in memberResults", :key="member._id", @click="selectMember(member)")
| {{ member.profile.name }}

View file

@ -25,10 +25,12 @@
hr
.form-horizontal
h5 {{ $t('audioTheme') }}
select.form-control(v-model='user.preferences.sound',
@change='set("sound")')
option(v-for='sound in availableAudioThemes', :value='sound') {{ $t(`audioTheme_${sound}`) }}
.form-group
h5 {{ $t('audioTheme') }}
select.form-control(v-model='user.preferences.sound',
@change='changeAudioTheme')
option(v-for='sound in availableAudioThemes', :value='sound') {{ $t(`audioTheme_${sound}`) }}
button.btn.btn-primary.btn-xs(@click='playAudio', v-once) {{ $t('demo') }}
hr
.form-horizontal(v-if='hasClass')
@ -215,6 +217,7 @@ import deleteModal from './deleteModal';
import { SUPPORTED_SOCIAL_NETWORKS } from '../../../common/script/constants';
import changeClass from '../../../common/script/ops/changeClass';
import notificationsMixin from '../../mixins/notifications';
import sounds from '../../libs/sounds';
// @TODO: this needs our window.env fix
// import { availableLanguages } from '../../../server/libs/i18n';
@ -267,6 +270,7 @@ export default {
this.temporaryDisplayName = this.user.profile.name;
this.emailUpdates.newEmail = this.user.auth.local.email || null;
this.localAuth.username = this.user.auth.local.username || null;
this.soundIndex = 0;
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
@ -511,6 +515,14 @@ export default {
this.usernameUpdates.username = this.user.auth.local.username;
}
},
changeAudioTheme () {
this.soundIndex = 0;
this.set('sound');
},
playAudio () {
this.$root.$emit('playSound', sounds[this.soundIndex]);
this.soundIndex = (this.soundIndex + 1) % sounds.length;
},
},
};
</script>

View file

@ -306,7 +306,7 @@
const hideAmountSelectionForPurchaseTypes = [
'gear', 'backgrounds', 'mystery_set', 'card',
'rebirth_orb', 'fortify', 'armoire', 'keys',
'debuffPotion',
'debuffPotion', 'pets', 'mounts',
];
export default {

View file

@ -23,7 +23,7 @@
strong {{ $t('howManyToBuy') }}
.box
input(type='number', min='0', step='1', v-model.number='selectedAmountToBuy')
span.svg-icon.inline.icon-32(aria-hidden="true", v-html="(priceType === 'gems') ? icons.gem : icons.gold")
span.svg-icon.inline.icon-32(aria-hidden="true", v-html="currencyIcon")
span.value(:class="priceType") {{ item.value }}
button.btn.btn-primary(
@ -44,6 +44,7 @@
div.clearfix(slot="modal-footer")
span.balance.float-left {{ $t('yourBalance') }}
balanceInfo(
:withHourglass="priceType === 'hourglasses'",
:currencyNeeded="priceType",
:amountNeeded="item.value"
).float-right
@ -202,6 +203,7 @@
import svgGem from 'assets/svg/gem.svg';
import svgPin from 'assets/svg/pin.svg';
import svgExperience from 'assets/svg/experience.svg';
import svgHourglasses from 'assets/svg/hourglass.svg';
import BalanceInfo from '../balanceInfo.vue';
import currencyMixin from '../_currencyMixin';
@ -229,6 +231,7 @@
gem: svgGem,
pin: svgPin,
experience: svgExperience,
hourglass: svgHourglasses,
}),
isPinned: false,
@ -258,6 +261,11 @@
return this.item.notes;
}
},
currencyIcon () {
if (this.priceType === 'gold') return this.icons.gold;
if (this.priceType === 'hourglasses') return this.icons.hourglass;
return this.icons.gem;
},
},
methods: {
onChange ($event) {

View file

@ -68,9 +68,13 @@
:emptyItem="false",
@click="selectItemToBuy(ctx.item)"
)
span(slot="popoverContent", slot-scope="ctx")
span(slot="popoverContent", slot-scope="ctx", v-if="category !== 'quests'")
div
h4.popover-content-title {{ ctx.item.text }}
span(slot="popoverContent", slot-scope="ctx", v-if="category === 'quests'")
div.questPopover
h4.popover-content-title {{ item.text }}
questInfo(:quest="item")
template(slot="itemBadge", slot-scope="ctx")
span.badge.badge-pill.badge-item.badge-svg(
@ -79,6 +83,18 @@
@click.prevent.stop="togglePinned(ctx.item)"
)
span.svg-icon.inline.icon-12.color(v-html="icons.pin")
buyQuestModal(
:item="selectedItemToBuy || {}",
:priceType="selectedItemToBuy ? selectedItemToBuy.currency : ''",
:withPin="true",
@change="resetItemToBuy($event)",
)
template(slot="item", slot-scope="ctx")
item.flat(
:item="ctx.item",
:itemContentClass="ctx.item.class",
:showPopover="false"
)
</template>
<style lang="scss">
@ -225,8 +241,10 @@
import ItemRows from 'client/components/ui/itemRows';
import toggleSwitch from 'client/components/ui/toggleSwitch';
import Avatar from 'client/components/avatar';
import QuestInfo from '../quests/questInfo.vue';
import BuyModal from '../buyModal.vue';
import BuyQuestModal from '../quests/buyQuestModal.vue';
import svgPin from 'assets/svg/pin.svg';
import svgHourglass from 'assets/svg/hourglass.svg';
@ -250,9 +268,11 @@
CountBadge,
ItemRows,
toggleSwitch,
QuestInfo,
Avatar,
BuyModal,
BuyQuestModal,
},
watch: {
searchText: _throttle(function throttleSearch () {
@ -274,6 +294,8 @@
sortItemsBy: ['AZ', 'sortByNumber'],
selectedSortItemsBy: 'AZ',
selectedItemToBuy: null,
hidePinned: false,
backgroundUpdate: new Date(),
@ -303,11 +325,11 @@
let backgroundUpdate = this.backgroundUpdate; // eslint-disable-line
let normalGroups = _filter(apiCategories, (c) => {
return c.identifier === 'mounts' || c.identifier === 'pets';
return c.identifier === 'mounts' || c.identifier === 'pets' || c.identifier === 'quests';
});
let setGroups = _filter(apiCategories, (c) => {
return c.identifier !== 'mounts' && c.identifier !== 'pets';
return c.identifier !== 'mounts' && c.identifier !== 'pets' && c.identifier !== 'quests';
});
let setCategory = {
@ -375,7 +397,18 @@
return _groupBy(entries, 'group');
},
selectItemToBuy (item) {
this.$root.$emit('buyModal::showItem', item);
if (item.purchaseType === 'quests') {
this.selectedItemToBuy = item;
this.$root.$emit('bv::show::modal', 'buy-quest-modal');
} else {
this.$root.$emit('buyModal::showItem', item);
}
},
resetItemToBuy ($event) {
if (!$event) {
this.selectedItemToBuy = null;
}
},
},
created () {

View file

@ -111,7 +111,7 @@ div
background-image: url('~assets/images/auth/seamless_mountains_demo.png');
background-repeat: repeat-x;
width: 100%;
height: 500px;
height: 300px;
position: absolute;
z-index: 0;
bottom: 0;

View file

@ -25,7 +25,7 @@
)
transition(name="quick-add-tip-slide")
.quick-add-tip.small-text(v-show="quickAddFocused", v-html="$t('addMultipleTip', {taskType: $t(typeLabel)})")
clear-completed-todos(v-if="activeFilter.label === 'complete2' && isUser === true")
clear-completed-todos(v-if="activeFilter.label === 'complete2' && isUser === true && taskList.length > 0")
.column-background(
v-if="isUser === true",
:class="{'initial-description': initialColumnDescription}",
@ -45,6 +45,7 @@
v-for="task in taskList",
:key="task.id", :task="task",
:isUser="isUser",
:showOptions="showOptions"
@editTask="editTask",
@moveTo="moveTo",
:group='group',
@ -207,6 +208,7 @@
position: absolute;
width: 100%;
bottom: 32px;
margin-left: -8px;
&.initial-description {
top: 30%;
@ -310,6 +312,10 @@ export default {
selectedTags: {},
taskListOverride: {},
group: {},
showOptions: {
type: Boolean,
default: true,
},
}, // @TODO: maybe we should store the group on state?
data () {
const icons = Object.freeze({
@ -481,7 +487,7 @@ export default {
const newIndexOnServer = originTasks.findIndex(taskId => taskId === taskIdToReplace);
let newOrder;
if (taskToMove.group.id) {
if (taskToMove.group.id && !this.isUser) {
newOrder = await this.$store.dispatch('tasks:moveGroupTask', {
taskId: taskIdToMove,
position: newIndexOnServer,

View file

@ -19,7 +19,7 @@
.d-flex.justify-content-between
h3.task-title(:class="{ 'has-notes': task.notes }", v-markdown="task.text")
menu-dropdown.task-dropdown(
v-if="!isRunningYesterdailies",
v-if="!isRunningYesterdailies && showOptions",
:right="task.type === 'reward'",
ref="taskDropdown",
v-b-tooltip.hover.top="$t('options')"
@ -67,9 +67,9 @@
:checked="item.completed",
@change="toggleChecklistItem(item)",
:disabled="castingSpell || !isUser",
:id="`checklist-${item.id}`"
:id="`checklist-${item.id}-${random}`"
)
label.custom-control-label(v-markdown="item.text", :for="`checklist-${item.id}`")
label.custom-control-label(v-markdown="item.text", :for="`checklist-${item.id}-${random}`")
.icons.small-text.d-flex.align-items-center
.d-flex.align-items-center(v-if="task.type === 'todo' && task.date", :class="{'due-overdue': isDueOverdue}")
.svg-icon.calendar(v-html="icons.calendar", v-b-tooltip.hover.bottom="$t('dueDate')")
@ -543,6 +543,7 @@ import notifications from 'client/mixins/notifications';
import approvalHeader from './approvalHeader';
import approvalFooter from './approvalFooter';
import MenuDropdown from '../ui/customMenuDropdown';
import uuid from 'uuid';
export default {
mixins: [notifications],
@ -554,9 +555,10 @@ export default {
directives: {
markdown: markdownDirective,
},
props: ['task', 'isUser', 'group', 'dueDate'], // @TODO: maybe we should store the group on state?
props: ['task', 'isUser', 'group', 'dueDate', 'showOptions'], // @TODO: maybe we should store the group on state?
data () {
return {
random: uuid.v4(), // used to avoid conflicts between checkboxes ids
icons: Object.freeze({
positive: positiveIcon,
negative: negativeIcon,
@ -704,7 +706,7 @@ export default {
this.$emit('taskDestroyed', this.task);
},
castEnd (e, task) {
this.$root.$emit('castEnd', task, 'task', e);
setTimeout(() => this.$root.$emit('castEnd', task, 'task', e), 0);
},
async score (direction) {
if (this.castingSpell) return;

View file

@ -1,29 +1,29 @@
<template lang="pug">
form(v-if="task", @submit.stop.prevent="submit()", @click="handleClick($event)")
b-modal#task-modal(v-bind:no-close-on-esc="showTagsSelect", v-bind:no-close-on-backdrop="showTagsSelect", size="sm", @hidden="onClose()", @show="handleOpen()", @shown="focusInput()")
.task-modal-header(slot="modal-header", :class="cssClass('bg')", @click="handleClick($event)")
.clearfix
h1.float-left {{ title }}
.float-right.d-flex.align-items-center
span.cancel-task-btn.mr-2(v-once, @click="cancel()") {{ $t('cancel') }}
button.btn.btn-secondary(type="submit", v-once) {{ $t('save') }}
.form-group
label(v-once) {{ `${$t('text')}*` }}
input.form-control.title-input(
type="text",
required, v-model="task.text",
ref="inputToFocus",
spellcheck="true",
:disabled="groupAccessRequiredAndOnPersonalPage || challengeAccessRequired"
)
.form-group
label.d-flex.align-items-center.justify-content-between(v-once)
span {{ $t('notes') }}
small(v-once)
a(target="_blank", href="http://habitica.fandom.com/wiki/Markdown_Cheat_Sheet") {{ $t('markdownHelpLink') }}
b-modal#task-modal(v-bind:no-close-on-esc="showTagsSelect", v-bind:no-close-on-backdrop="showTagsSelect", size="sm", @hidden="onClose()", @show="handleOpen()", @shown="focusInput()")
.task-modal-header(slot="modal-header", :class="cssClass('bg')", @click="handleClick($event)", v-if="task")
.clearfix
h1.float-left {{ title }}
.float-right.d-flex.align-items-center
span.cancel-task-btn.mr-2(v-once, @click="cancel()") {{ $t('cancel') }}
button.btn.btn-secondary(@click="submit()", v-once) {{ $t('save') }}
.form-group
label(v-once) {{ `${$t('text')}*` }}
input.form-control.title-input(
type="text",
required, v-model="task.text",
ref="inputToFocus",
spellcheck="true",
:disabled="groupAccessRequiredAndOnPersonalPage || challengeAccessRequired"
)
.form-group
label.d-flex.align-items-center.justify-content-between(v-once)
span {{ $t('notes') }}
small(v-once)
a(target="_blank", href="http://habitica.fandom.com/wiki/Markdown_Cheat_Sheet") {{ $t('markdownHelpLink') }}
textarea.form-control(v-model="task.notes", rows="3")
.task-modal-content(@click="handleClick($event)")
textarea.form-control(v-model="task.notes", rows="3")
.task-modal-content(@click="handleClick($event)")
form(v-if="task", @submit.stop.prevent="submit()", @click="handleClick($event)")
.option.mt-0(v-if="task.type === 'reward'")
.form-group
label(v-once) {{ $t('cost') }}
@ -242,9 +242,9 @@
.svg-icon.d-inline-b(v-html="icons.destroy")
span {{ $t('deleteTask') }}
.task-modal-footer.d-flex.justify-content-center.align-items-center(slot="modal-footer", @click="handleClick($event)")
.cancel-task-btn(v-once, @click="cancel()") {{ $t('cancel') }}
button.btn.btn-primary(type="submit", v-once) {{ $t('save') }}
.task-modal-footer.d-flex.justify-content-center.align-items-center(slot="modal-footer", @click="handleClick($event)")
.cancel-task-btn(v-once, @click="cancel()") {{ $t('cancel') }}
button.btn.btn-primary(@click="submit()", v-once) {{ $t('save') }}
</template>
<style lang="scss">

View file

@ -0,0 +1,12 @@
export default [
'Achievement_Unlocked',
'Chat',
'Daily',
'Death',
'Item_Drop',
'Level_Up',
'Minus_Habit',
'Plus_Habit',
'Reward',
'Todo',
];

View file

@ -6,8 +6,11 @@ export default {
searchTerm: debounce(function searchTerm (newSearch) {
this.challengeMemberSearchMixin_searchChallengeMember(newSearch);
}, 500),
members () {
this.memberResults = this.members;
members: {
handler () {
this.memberResults = this.members;
},
immediate: true,
},
},
methods: {

View file

@ -112,12 +112,13 @@ export function purchaseMysterySet (store, params) {
}
export function purchaseHourglassItem (store, params) {
const quantity = params.quantity || 1;
const user = store.state.user.data;
let opResult = hourglassPurchaseOp(user, {params});
let opResult = hourglassPurchaseOp(user, {params, quantity});
return {
result: opResult,
httpCall: axios.post(`/api/v4/user/purchase-hourglass/${params.type}/${params.key}`),
httpCall: axios.post(`/api/v4/user/purchase-hourglass/${params.type}/${params.key}`, {quantity}),
};
}

View file

@ -1,9 +1,22 @@
{
"achievement": "Úspěch",
"share": "Sdílet",
"onwards": "Kupředu!",
"levelup": "Dosáhl jsi svých cílů v reálném životě, a proto jsi postoupil na vyšší úroveň a jsi plně uzdraven!",
"reachedLevel": "Dosáhl jsi úrovně <%= level %>",
"achievementLostMasterclasser": "Dokončení výprav: Série Mistra třídy",
"achievementLostMasterclasserText": "Splnil všech šestnáct výprav v sérii výprav Mistra třídy a vyřešil záhadu Ztraceného Mistra!"
"achievement": "Úspěch",
"share": "Sdílet",
"onwards": "Kupředu!",
"levelup": "Dosáhl jsi svých cílů v reálném životě, a proto jsi postoupil na vyšší úroveň a jsi plně uzdraven!",
"reachedLevel": "Dosáhl jsi úrovně <%= level %>",
"achievementLostMasterclasser": "Dokončení výprav: Série Mistra třídy",
"achievementLostMasterclasserText": "Splnil všech šestnáct výprav v sérii výprav Mistra třídy a vyřešil záhadu Ztraceného Mistra!",
"achievementLostMasterclasserModalText": "Dokončil jsi všech 16 masterclass výprav a vyřešil jsi tajemství ztracené masterclass!",
"achievementMindOverMatter": "Mysl nad hmotou",
"achievementMindOverMatterText": "Dokončil/a kamennou, slizovou a vlněnou mazlíčkovou výpravu.",
"achievementMindOverMatterModalText": "Dokončil jsi kamennou, slizovou a vlněnou mazlíčkovou výpravu!",
"achievementJustAddWater": "Jenom přidej vodu",
"achievementJustAddWaterText": "Dokončil mazlíčkové výpravy za chobotnicí, mořským koníkem, sépií, velrybou, želvou, nahožábrým, mořským hadem a delfínem.",
"achievementJustAddWaterModalText": "Dokončil/a jsi mazlíčkovou výpravu za chobotnicí, mořským koníkem, sépií, velrybou, želvou, nahožábrým, mořským hadem a delfínem!",
"achievementBackToBasics": "Zpět k základům",
"achievementBackToBasicsText": "Posbíral/a všechny základní mazlíčky.",
"achievementBackToBasicsModalText": "Posbíral/a jsi všechny základní mazlíčky!",
"achievementAllYourBaseText": "Zkrotil všechna základní zvířata.",
"achievementAllYourBaseModalText": "Zkrotil jsi všechna základní zvířata!",
"achievementAllYourBase": "Všichni základní mazlíčci"
}

View file

@ -4,7 +4,7 @@
"avatar": "Upravit postavu",
"editAvatar": "Upravit postavu",
"noDescription": "Tento Habiťan nepřidal popis.",
"noPhoto": "Tento Habiťan nepřidal fotku",
"noPhoto": "Tento Habiťan nepřidal fotku.",
"other": "Další",
"fullName": "Celé jméno",
"displayName": "Display name",
@ -76,9 +76,9 @@
"useCostume": "Použít kostým",
"useCostumeInfo1": "Klikni na \"Použít kostým\", abys vybavil svého avatara, aniž bys nějak ovlivnil statistiky Bojové výzbroje! To znamená, že se můžeš vybavit nejlepšími statistikami vlevo, a převléknout svého avatara vybavením vpravo.",
"useCostumeInfo2": "Jakmile klikneš na \"Použít kostým\", tvůj avatar bude vypadat docela jednoduše... ale neboj! Když se podíváš doleva, uvidíš, že tvá Bojová zbroj je stále používána. Pak si můžeš svého avatara převléknout! Cokoliv, co mu oblečeš zprava, neovlivní tvoje statistiky, ale budeš vypadat suprově. Vyzkoušej různé styly, smíchej sety, nebo slaď svůj Kostým se svými Mazlíčky, osedlanými zvířaty nebo pozadími. <br><br>Máš další otázky? Koukni se na <a href=\"http://habitica.fandom.com/wiki/Equipment#Costumes\">Costume page</a> wiki. Našel jsi perfektní ohoz? Ukaž nám ho v <a href=\"/#/options/groups/guilds/3884eeaa-2d6a-45e8-a279-ada6de9709e1\">Cechu karnevalových kostýmů</a> nebo se s ním pochlub v Krčmě!",
"costumePopoverText": "Vyber \"Použít kostým\", abys vybavil svého avatara, aniž bys nějak ovlivnil statistiky tvé Bojové výzbroje! To znamená, že můžeš obléct svého avatara do jakéhokoliv vybavení chceš a stále mít tvojí nejlepší Bojovou výzbroj na sobě!",
"costumePopoverText": "Vyber \"Použít kostým\", abys vybavil svého avatara, aniž bys nějak ovlivnil statistiky tvé bojové výzbroje! To znamená, že můžeš obléct svého avatara do jakéhokoliv vybavení chceš a stále mít tvojí nejlepší bojovou výzbroj na sobě.",
"autoEquipPopoverText": "Zvol tuto možnost pro automatické nasazení koupeného vybavení.",
"costumeDisabled": "Vypnul jsi svůj kostým",
"costumeDisabled": "Vypnul jsi svůj kostým.",
"gearAchievement": "Získal jsi Ocenění \"Maximální Vybavení\" za vylepšení výbavy na maximální set vybavení pro povolání! Získal jsi následující kompletní sety:",
"gearAchievementNotification": "Získal jsi ocenění \"Ultimátní výbava\" za vylepšení vybavení daného povolání na maximální úroveň!",
"moreGearAchievements": "Abys získal více ocenění Ultimátního Vybavení, změň své povolání v <a href='/user/settings/site' target='_blank'>Nastavení - Stránka</a>, a nakup si vybavení pro své nové povolání!",
@ -146,7 +146,7 @@
"classAllocationPop": "Přiřadí více bodů k vlastnostem, které jsou důležité pro tvé povolání.",
"taskAllocation": "Přiřadit body na základě aktivity v úkolech",
"taskAllocationPop": "Přiřadí body podle Fyzické (síla), Mentální (Inteligence), Sociální (Obrana) a Další (Vnímání) kategorie přiřazené k úkolům, které splníš.",
"distributePoints": "Přiřaď nevyužité body.",
"distributePoints": "Přiřaď nevyužité body",
"distributePointsPop": "Přiřadí všechny nepřidělené body v závislosti na zvoleném režimu přidělování.",
"warriorText": "Válečníci získávají lepší \"kritické zásahy\", které náhodně dávají bonusové zlaťáky a zkušenosti a zvyšují šanci na nalezení předmětů při splnění úkolu. Také způsobují větší újmu příšerám. Hraj za válečníka, pokud tě motivují nepředvídatelné odměny nebo to chceš pořádně nandat příšerám při Výpravách!",
"wizardText": "Mágové se učí rychle, získávají Zkušenosti a Úrovně rychleji než ostatní povolání. Mají také spoustu Many na používání speciálních schopností. Hraj za Mága, jestli si užíváš taktické aspekty Habiticy nebo jsi silně motivován ziskem Úrovní a odemykáním pokročilých funkcí!",
@ -166,7 +166,7 @@
"streaksFrozenText": "Série úspěšnosti na promeškaných Denních úkolech nebude na konci dne vynulována.",
"respawn": "Oživení!",
"youDied": "Zemřel jsi!",
"dieText": "Propadl jsi o úroveň níž a přišel jsi o všechny zlaťáky a náhodný kus vybavení. Povstaň, Habiťane, a zkus to znovu! Zbav se zlozvyků, poctivě plň denní úkoly a v případě zaváhání se vyhni smrti pomocí léčivého lektvaru.",
"dieText": "Propadl jsi o úroveň níž a přišel jsi o všechny zlaťáky a náhodný kus vybavení. Povstaň, Habiťane, a zkus to znovu! Zbav se zlozvyků, poctivě plň denní úkoly a v případě zaváhání se vyhni smrti pomocí léčivého lektvaru!",
"sureReset": "Jsi si jistý? Tato volba smaže povolání tvé postavy a přidělené body (dostaneš je všechny zpět k přerozdělení), a stojí 3 drahokamy.",
"purchaseFor": "Koupit za <%= cost %> drahokamů?",
"purchaseForHourglasses": "Koupit za <%= cost %>přesýpací hodiny?",
@ -175,7 +175,7 @@
"youCast": "Seslal jsi <%= spell %>.",
"youCastTarget": "Seslal jsi <%= spell %> na <%= target %>.",
"youCastParty": "Seslal jsi na družinu <%= spell %>.",
"critBonus": "Kritický zásah! Bonus:",
"critBonus": "Kritický zásah! Bonus:. ",
"gainedGold": "Získal jsi několik zlata",
"gainedMana": "Získal jsi několik many",
"gainedHealth": "Získal jsi několik zdraví",
@ -206,7 +206,7 @@
"showQuickAllocation": "Zobrazit přidělení vlastnostních bodů",
"hideQuickAllocation": "Skrýt přidělení vlastnostních bodů",
"quickAllocationLevelPopover": "S každou další úrovní získáš jeden bod, který můžeš přiřadit k libovolné vlastnosti. Přiřadit body můžeš buď manuálně anebo můžeš nechat hru rozhodnout za tebe na základě některé z možností Automatického Přiřazení, které nalezneš v Uživatel -> Statistiky.",
"notEnoughAttrPoints": "Nemáš dostatek vlastnostních bodů",
"notEnoughAttrPoints": "Nemáš dostatek vlastnostních bodů.",
"classNotSelected": "Než si budeš moct rozdělit dovednostní body, musíš si vybrat povolání.",
"style": "Styl",
"facialhair": "Vousy",
@ -218,11 +218,14 @@
"editProfile": "Upravit profil",
"challengesWon": "Vyhraných výzev",
"questsCompleted": "Splněných výprav",
"headAccess": "Příslušenství na hlavu",
"backAccess": "Příslušenství na záda",
"bodyAccess": "Příslušenství na tělo",
"headAccess": "Pokrývka hlavy.",
"backAccess": "Příslušenství na záda.",
"bodyAccess": "Příslušenství na tělo.",
"mainHand": "Hlavní ruka",
"offHand": "Druhá ruka",
"statPoints": "Dovednostní body",
"pts": "Body"
}
"pts": "Body",
"purchaseForGold": "Koupit za <%= cost %> zlata?",
"chatCastSpellParty": "<%= username %> použil/a <%= spell %> pro skupinu.",
"chatCastSpellUser": "<%= username %> použil/a <%= spell %> na <%= target %>."
}

View file

@ -119,7 +119,7 @@
"questEggTreelingText": "Stromovec",
"questEggTreelingMountText": "Stromovec",
"questEggTreelingAdjective": "listnatý",
"questEggAxolotlText": "Axolotl",
"questEggAxolotlText": "Mládě axolotla",
"questEggAxolotlMountText": "Axolotl",
"questEggAxolotlAdjective": "mrňavý",
"questEggTurtleText": "Mořská želva",
@ -307,4 +307,4 @@
"foodSaddleNotes": "Okamžitě zkrotí jednoho z tvých mazlíčků, aby sis ho mohl osedlat.",
"foodSaddleSellWarningNote": "Hej! Toto je fakt užitečná věc! Jsi seznámen s tím, jak použít pro tvé mazlíčky použít sedlo?",
"foodNotes": "Nakrm tímto mazlíčka, aby z něj vyrostlo pořádné zvíře."
}
}

View file

@ -10,7 +10,7 @@
"gearNotOwned": "Nevlastníš tento předmět.",
"noGearItemsOfType": "Nevlastníš žádné z těchto.",
"noGearItemsOfClass": "Už máš všechno vybavení tvého povolání! Více bude vypuštěno během Velké Slavnosti, blízko slunovratů a rovnodenností. ",
"classLockedItem": "Tento předmět je dostupný pouze pro specifické povolání. Změň si své povolání v Uživatel > Nastavení > Síla Postavy",
"classLockedItem": "Tento předmět je dostupný pouze pro specifickou třídu. Pokud jsi dosáhl 10. levelu, můžeš změnit svou třídu v Uživatel > Nastavení > Změň postavu!",
"tierLockedItem": "Tento předmět je dostupný jakmile si pořídíš předchozí předměty v řadě. Pokračuj ve vypracovávání se výše!",
"sortByType": "Typ",
"sortByPrice": "Cena",
@ -1748,4 +1748,4 @@
"eyewearArmoireGoofyGlassesText": "Goofy Glasses",
"eyewearArmoireGoofyGlassesNotes": "Perfect for going incognito or just making your partymates giggle. Increases Perception by <%= per %>. Enchanted Armoire: Independent Item.",
"twoHandedItem": "Two-handed item."
}
}

View file

@ -11,8 +11,8 @@
"dailyDueDefaultView": "Posílat denní úkoly do záložky zbývající",
"dailyDueDefaultViewPop": "Pokud je tato možnost zvolena, denní úkoly se budou zobrazovat v záložce Zbývající místo v záložce Vše",
"reverseChatOrder": "Zobrazit zprávy v opačném pořadí",
"startAdvCollapsed": "Advanced Settings in tasks start collapsed",
"startAdvCollapsedPop": "With this option set, Advanced Settings will be hidden when you first open a task for editing.",
"startAdvCollapsed": "Pokročilá nastavení jsou skrytá",
"startAdvCollapsedPop": "S tímto nastavením budou pokročilá nastavení skrytá, když budeš úkol upravovat poprvé.",
"dontShowAgain": "Znovu neukazovat",
"suppressLevelUpModal": "Neukazovat dialogové okno při postupu na vyšší úroveň",
"suppressHatchPetModal": "Neotvírat dialogové okno při vylíhnutí mazlíčka",
@ -32,7 +32,7 @@
"resetAccPop": "Začít znova. Odstraň všechny úrovně, zlaťáky, vybavení, historii a úkoly.",
"deleteAccount": "Smazat účet",
"deleteAccPop": "Zruš svůj účet a odstraň ho ze země Habitica.",
"feedback": "If you'd like to give us feedback, please enter it below - we'd love to know what you liked or didn't like about Habitica! Don't speak English well? No problem! Use the language you prefer.",
"feedback": "Pokud nám chceš dát zpětnou vazbu, učiň tak prosím níže - budeme ráda, když nám napíšeš, co se ti na Habitica líbí a nelíbí! Neumíš moc dobře anglicky? To nevadí! Napiš to svým mateřským jazykem.",
"qrCode": "QR kód",
"dataExport": "Export dat",
"saveData": "Zde máš několik možností, jak ukládat svá data.",
@ -40,7 +40,7 @@
"exportHistory": "Exportovat historii:",
"csv": "(CSV)",
"userData": "Data uživatele",
"exportUserData": "Exportovat data uživatele",
"exportUserData": "Exportovat data uživatele:",
"export": "Exportovat",
"xml": "(XML)",
"json": "(JSON)",
@ -93,7 +93,7 @@
"enterNumber": "Prosím, zadej číslo mezi 0 a 24",
"fillAll": "Prosím, vyplň všechna pole",
"invalidPasswordResetCode": "The supplied password reset code is invalid or has expired.",
"passwordChangeSuccess": "Tvé heslo bylo úspěšně změněno. Můžeš ho použít pro přihlášení ke svému účtu. ",
"passwordChangeSuccess": "Tvé heslo bylo úspěšně změněno. Můžeš ho použít pro přihlášení ke svému účtu.",
"passwordSuccess": "Heslo úspěšně změněno",
"usernameSuccess": "Username successfully changed",
"displayNameSuccess": "Display name successfully changed",
@ -114,7 +114,7 @@
"newPMInfo": "Nová zpráva od <%= name %>: <%= message %>",
"giftedGems": "Darované drahokamy",
"giftedGemsInfo": "<%= name %> ti daroval <%= amount %> Drahokamů",
"giftedGemsFull": "Ahoj <%= username %>, <%= sender %> ti poslal <%= gemAmount %> drahokamy! ",
"giftedGemsFull": "Ahoj <%= username %>, <%= sender %> ti poslal <%= gemAmount %> drahokamy!",
"giftedSubscription": "Darované předplatné",
"giftedSubscriptionInfo": "<%= name %> ti daroval <%= months %> měsíční předplatné",
"giftedSubscriptionFull": "Ahoj <%= username %>, <%= sender %> ti poslal <%= monthCount %> měsíce předplatného!",
@ -130,7 +130,7 @@
"kickedGroup": "Vykopnut z družiny",
"remindersToLogin": "Upomínky k přihlášení do země Habitica",
"subscribeUsing": "Použití předplatného",
"unsubscribedSuccessfully": "Úspěšně odepsán",
"unsubscribedSuccessfully": "Úspěšně odhlášeno!",
"unsubscribedTextUsers": "You have successfully unsubscribed from all Habitica emails. You can enable only the emails you want to receive from <a href=\"/user/settings/notifications\">Settings > &gt; Notifications</a> (requires login).",
"unsubscribedTextOthers": "Již nedostaneš ze země Habitica žádný další email.",
"unsubscribeAllEmails": "Zaškrtni, aby ses odhlásil z emailů",
@ -204,5 +204,6 @@
"usernameVerifiedConfirmation": "Your username, <%= username %>, is confirmed!",
"usernameNotVerified": "Please confirm your username.",
"changeUsernameDisclaimer": "We will be transitioning login names to unique, public usernames soon. This username will be used for invitations, @mentions in chat, and messaging.",
"verifyUsernameVeteranPet": "One of these Veteran Pets will be waiting for you after you've finished confirming!"
}
"verifyUsernameVeteranPet": "One of these Veteran Pets will be waiting for you after you've finished confirming!",
"subscriptionReminders": "Připomenutí pro předplatitele"
}

View file

@ -1,11 +1,11 @@
{
"clearCompleted": "Vymaž dokončené",
"clearCompletedDescription": "Splněné Úkoly jsou smazány pro ne-odběratele po 30 dnech, a pro odběratele po 90 dnech. ",
"clearCompleted": "Vymaž dokončené úkoly",
"clearCompletedDescription": "Splněné úkoly jsou smazány pro ne-odběratele po 30 dnech, a pro odběratele po 90 dnech.",
"clearCompletedConfirm": "Jsi si jistý, že chceš smazat tvé hotové úkoly?",
"sureDeleteCompletedTodos": "Jsi si jistý, že chceš smazat tvé hotové úkoly?",
"lotOfToDos": "Zde vidíš svých posledních 30 splněných úkolů z Úkolníčku. Starší splněné úkoly můžeš najít v Data > Nástroj zobrazení dat nebo Data > Export dat > Data uživatele.",
"deleteToDosExplanation": "Pokud klikneš na tlačítko níže, všechny tvé hotové a archivované Úkoly budou permanentně smazány, kromě Úkolů z aktivních výzev a ze skupinových plánů. Prvně je vyexportuj, pokud chceš ponechat jejich záznam.",
"addMultipleTip": "<strong>Tip:</strong> K přidání více <%= taskType %> najednou, stiskni po zadání každého \"Shift + Enter\" a nakonec pro potvrzení \"Enter\".",
"addMultipleTip": "<strong>Tip:</strong> K přidání více <%= taskType %> najednou, stiskni po zadání každého \"Shift + Enter\" a nakonec pro potvrzení \"Enter.\"",
"addsingle": "Přidat jeden",
"addATask": "Přidat <%= type %>",
"editATask": "Upravit <%= type %>",
@ -38,9 +38,9 @@
"taskAlias": "Alias úkolu",
"taskAliasPopover": "Alias tohoto úkolu může být použit při začleňování 3. strany začlenění. Podporovány jsou pouze pomlčky, podtržítka, a alfanumerické znaky. Alias úkolu musí být unikátní mezi všemi tvými úkoly.",
"taskAliasPlaceholder": "tvůj-alias-úkolu-zde",
"taskAliasPopoverWarning": "VAROVÁNÍ: Změnění této hodnoty zruší všechna zapojení 3. stran, které jsou vázány na tento úkol",
"taskAliasPopoverWarning": "VAROVÁNÍ: Změnění této hodnoty zruší všechna zapojení 3. stran, které jsou vázány na tento úkol.",
"difficulty": "Obtížnost",
"difficultyHelp": "Obtížnost znázorňuje, jak moc velká výzva je pro tebe splnit zvyk, denní úkol, či klasický úkol. Čím větší obtížnost, tím lepší získáš odměnu za splnění úkolu, ale zároveň tím silnější zranění si způsobíš, když obtížný denní úkol vynecháš, nebo když klikneš na negativní zvyk. ",
"difficultyHelp": "Obtížnost znázorňuje, jak moc velká výzva je pro tebe splnit zvyk, denní úkol, či klasický úkol. Čím větší obtížnost, tím lepší získáš odměnu za splnění úkolu, ale zároveň tím silnější zranění si způsobíš, když obtížný denní úkol vynecháš, nebo když klikneš na negativní zvyk.",
"trivial": "Triviální",
"easy": "Jednoduché",
"medium": "Středně těžké",
@ -72,7 +72,7 @@
"todos": "Úkolníček",
"newTodo": "Nový Úkol",
"newTodoBulk": "Nové Úkoly (jeden na řádek)",
"todosDesc": "Úkoly jsou potřeba dokončit pouze jednou. Přidej seznamy do tvých úkolů, abys zvýšil jejich hodnotu!",
"todosDesc": "Úkoly jsou potřeba dokončit pouze jednou. Přidej seznamy do tvých úkolů, abys zvýšil jejich hodnotu.",
"dueDate": "Termín splnění",
"remaining": "Aktivní",
"complete": "Splněno",
@ -134,7 +134,7 @@
"dailyHelp1": "Denní úkoly se opakují <%= emphasisStart %>každý den<%= emphasisEnd %>, ve kterém jsou aktivní. Klikni na <%= pencilIcon %> abys mohl změnit, ve které dny má být Denné úkol aktivní.",
"dailyHelp2": "Pokud nesplníš své Denní úkoly do nastaveného konce dne, přijdeš o zdraví.",
"dailyHelp3": "Dení úkoly budou stále <%= emphasisStart %>červenější<%= emphasisEnd %>, když je zmeškáš a <%= emphasisStart %>modřejší<%= emphasisEnd %>, když je budeš plnit. Čím červenější je Denní úkol, tím větší dostaneš odměnu za jeho splnění.... a taky tím vyšší bude újma, kterou ti způsobí.",
"dailyHelp4": "Abys změnil, kdy ti začne nový den, jdi do <%= linkStart %> Nastavení > Stránka<%= linkEnd %> > Vlastní začátek dne",
"dailyHelp4": "Abys změnil, kdy ti začne nový den, jdi do <%= linkStart %> Nastavení > Stránka<%= linkEnd %> > Vlastní začátek dne.",
"dailyHelp5": "Pro inspiraci koukni na tyhle <a href='http://habitica.fandom.com/wiki/Sample_Dailies' target='_blank'>ukázkové Denní úkoly</a>!",
"toDoHelp1": "Úkoly v Úkolníčku začínají jako žluté a jsou červenější (a cennější) s každým dalším dnem, kterým ti zabere je splnit.",
"toDoHelp2": "Úkoly v Úkolníčku ti nikdy neublíží! Pouze za ně dostáváš jako odměnu zlaťáky a zkušenost.",
@ -149,16 +149,16 @@
"taskNotFound": "Úkol nenalezen.",
"invalidTaskType": "Typ úkolu musí být „zvyk\", „denní úkol\", „úkol\" nebo „odměna\".",
"invalidTasksType": "Typ úkolu musí být jeden z „zvyky\", „denní úkoly\", „úkoly\", nebo „odměny\".",
"invalidTasksTypeExtra": "Typ úkolu musí být jeden z „zvyky\", „denní úkoly\", „úkoly\", „odměny\", \"dokončené úkoly\"",
"invalidTasksTypeExtra": "Typ úkolu musí být jeden z „zvyky\", „denní úkoly\", „úkoly\", „odměny\", \"dokončené úkoly\".",
"cantDeleteChallengeTasks": "Úkol náležící výzvě nelze vymazat.",
"checklistOnlyDailyTodo": "Seznamy jsou podporovány pouze pro denní úkoly a klasické úkoly",
"checklistItemNotFound": "Na seznamu nenalezen žádný předmět s tímto id.",
"itemIdRequired": "\"itemId\" musí být platné UUID.",
"tagNotFound": "Žádný štítek nebyl nalezen pod zadaným id.",
"tagIdRequired": "\"tagId\" musí být platné UUID korespondující se štítkem patřící uživateli. ",
"tagIdRequired": "\"tagId\" musí být platné UUID korespondující se štítkem patřícím uživateli.",
"positionRequired": "Je požadována „pozice\", který musí být číslem.",
"cantMoveCompletedTodo": "Nelze pohnout s dokončeným ůkolem.",
"directionUpDown": "\"směr\" je požadován, a musí být směrem nahoru či dolu. ",
"directionUpDown": "\"směr\" je požadován, a musí být směrem nahoru či dolu.",
"alreadyTagged": "Tento úkoly jste již označili tímto štítkem.",
"strengthExample": "Týkající se cvičení a aktivity",
"intelligenceExample": "Týkající se akademických či psychicky náročných cílů",
@ -171,7 +171,7 @@
"habitCounter": "Počítadlo (Resetuje se <%= frequency %>)",
"habitCounterUp": "Pozitivní počítadlo (Resetuje se <%= frequency %>)",
"habitCounterDown": "Negativní počítadlo (Resetuje se <%= frequency %>)",
"taskRequiresApproval": "Tento úkol musí být schválen před dokončením. O schválení bylo již zažádáno.",
"taskRequiresApproval": "Tento úkol musí být schválen před dokončením. O schválení bylo již zažádáno",
"taskApprovalHasBeenRequested": "Bylo požádáno schválení",
"taskApprovalWasNotRequested": "Pouze úkol, který čeká na schválení, může být označen jako potřebující více práce",
"approvals": "Schválení",
@ -179,7 +179,7 @@
"repeatZero": "Denní úkol nikdy nemá splatnost",
"repeatType": "Typ opakování",
"repeatTypeHelpTitle": "Jaký druh opakování je toto?",
"repeatTypeHelp": "Vyber \"Denně\", pokud chceš, aby se tento úkol opakoval každý den, každý třetí den, etc.. Vyber \"Týdně\" pokud chceš, aby se opakoval v určitý den v každém týdnu. Pokud vybereš \"Měsíčně\" nebo \"Ročně\", nastav si startovní datum pro kontrolu, kdy má být úkol ten měsíc či rok splněn. ",
"repeatTypeHelp": "Vyber \"Denně\", pokud chceš, aby se tento úkol opakoval každý den, každý třetí den, etc.. Vyber \"Týdně\" pokud chceš, aby se opakoval v určitý den v každém týdnu. Pokud vybereš \"Měsíčně\" nebo \"Ročně\", nastav si startovní datum pro kontrolu, kdy má být úkol ten měsíc či rok splněn.",
"weekly": "Týdně",
"monthly": "Měsíčně",
"yearly": "Ročně",
@ -199,15 +199,15 @@
"monthlyRepeatHelpContent": "Tento úkol bude muset výt splněn každých X měsíců",
"yearlyRepeatHelpContent": "Tento úkol bude muset výt splněn každých X let",
"resets": "Resetuje",
"summaryStart": "Opakuje se <%= frequency %> každý <%= everyX %><%= frequencyPlural %>",
"summaryStart": "Opakuje se <%= frequency %> každý <%= everyX %><%= frequencyPlural %>. ",
"nextDue": "Další termíny splnění",
"checkOffYesterDailies": "Odškrtni jakékoliv Denní úkoly, které jsi včera udělal:",
"yesterDailiesTitle": "Tyto Denní úkoly jsi ponechal včera neodškrtnuté! Chceš některé z nich odškrtnout teď?",
"yesterDailiesCallToAction": "Začít můj nový den!",
"yesterDailiesOptionTitle": "Potvrď, že tento denní úkol nebyl dokončen, před zraňujícím zásahem",
"yesterDailiesDescription": "Jestli je toto nastavení zapnuto, Habitica se tě pokaždé před kalkulováním a aplikováním zranění tvé postavy zeptá, jestli opravdu chceš nechat úkoly nesplněné. To tě může ochránit před neúmyslným zraněním. ",
"yesterDailiesDescription": "Jestli je toto nastavení zapnuto, Habitica se tě pokaždé před kalkulováním a aplikováním zranění tvé postavy zeptá, jestli opravdu chceš nechat úkoly nesplněné. To tě může ochránit před neúmyslným zraněním.",
"repeatDayError": "Prosím, ujisti se, že máš alespoň jeden den v týdnu vybraný.",
"searchTasks": "Vyhledat názvy a popisy...",
"sessionOutdated": "Tvá relace je zastaralá. Prosím, zkus ji obnovit nebo synchronizovat.",
"errorTemporaryItem": "Tento předmět je dočasný a nemůže být připnut."
}
}

View file

@ -3,8 +3,8 @@
"challengeDetails": "Udfordringer er fællesskabsevents, i hvilke spillere konkurrerer og vinder belønninger ved at fuldføre en gruppe relaterede opgaver.",
"brokenChaLink": "Defekt udfordringslink",
"brokenTask": "Defekt udfordringslink: denne opgave var en del af en udfordring, men er blevet fjernet fra den. Hvad vil du gøre?",
"keepIt": "Beholde den",
"removeIt": "Fjerne den",
"keepIt": "Behold den",
"removeIt": "Fjern den",
"brokenChallenge": "Defekt udfordringslink: denne opgave var en del af en udfordring, men udfordringen (eller gruppen) er blevet fjernet. Hvad vil du gøre med de gruppeløse opgaver?",
"keepThem": "Behold Opgaver",
"removeThem": "Fjern Opgaver",
@ -31,7 +31,7 @@
"participating": "Deltager",
"notParticipating": "Deltager ikke",
"either": "Begge",
"createChallenge": "Opret udfordring",
"createChallenge": "Opret Udfordring",
"createChallengeAddTasks": "Tilføj Udfordringsopgaver",
"createChallengeCloneTasks": "Klon Udfordringsopgaver",
"addTaskToChallenge": "Tilføj Opgave",
@ -54,38 +54,38 @@
"challengeCreated": "Udfordring oprettet",
"sureDelCha": "Er du sikker på, at du vil slette udfordringen?",
"sureDelChaTavern": "Er du sikker på, at du vil slette denne udfordring? Du får ikke dine ædelsten tilbage.",
"removeTasks": "Slet opgaver",
"keepTasks": "Behold opgaver",
"removeTasks": "Fjern Opgaver",
"keepTasks": "Behold Opgaver",
"closeCha": "Luk udfordringen og...",
"leaveCha": "Forlad udfordringen og...",
"challengedOwnedFilterHeader": "Ejerskab",
"challengedOwnedFilter": "Ejet",
"owned": "Ejer",
"challengedNotOwnedFilter": "Ikke ejet",
"challengedNotOwnedFilter": "Ejer ikke",
"not_owned": "Ejer ikke",
"not_participating": "Deltager ikke",
"challengedEitherOwnedFilter": "Begge",
"backToChallenges": "Tilbage til Udfordringer",
"backToChallenges": "Tilbage til udfordringer",
"prizeValue": "<%= gemcount %>&nbsp;<%= gemicon %> Præmie",
"clone": "Klon",
"challengeNotEnoughGems": "Du har ikke nok ædelsten til at oprette denne udfordring.",
"noPermissionEditChallenge": "Du har ikke rettigheder til at ændre denne udfordring",
"noPermissionDeleteChallenge": "Du har ikke rettigheder til at slette denne udfordring",
"noPermissionCloseChallenge": "Du har ikke rettigheder til at afslutte denne udfordring",
"noPermissionEditChallenge": "Du har ikke tilladelse til at ændre denne udfordring",
"noPermissionDeleteChallenge": "Du har ikke tilladelse til at slette denne udfordring",
"noPermissionCloseChallenge": "Du har ikke tilladelse til at afslutte denne udfordring",
"congratulations": "Tillykke!",
"hurray": "Hurra!",
"noChallengeOwner": "ingen ejer",
"noChallengeOwnerPopover": "Denne udfordring har ikke nogen ejer, da personen, der oprettede udfordringen, har slettet sin brugerkonto.",
"noChallengeOwnerPopover": "Denne udfordring har ikke nogen ejer, da personen, der oprettede udfordringen, har slettet sin konto.",
"challengeMemberNotFound": "Bruger ikke fundet blandt udfordringsmedlemmer",
"onlyGroupLeaderChal": "Kun gruppelederen kan oprette Udfordringer",
"onlyGroupLeaderChal": "Kun gruppelederen kan oprette udfordringer",
"tavChalsMinPrize": "Præmien skal være mindst 1 Ædelsten for Offentlige Udfordringer.",
"cantAfford": "Du har ikke råd til denne præmie. Køb flere Ædelsten eller reducer præmien.",
"cantAfford": "Du har ikke råd til denne præmie. Køb flere ædelsten eller reducer præmien.",
"challengeIdRequired": "\"challengeID\" skal være et gyldigt UUID (Unikt bruger-ID).",
"winnerIdRequired": "\"winnerID\" skal være et gyldigt UUID (Unikt bruger-ID).",
"challengeNotFound": "Udfordringen findes ikke, eller du har ikke adgang.",
"onlyLeaderDeleteChal": "Kun udfordringslederen kan slette den.",
"onlyLeaderUpdateChal": "Kun udfordringslederen kan opdatere den.",
"winnerNotFound": "Vinder med id \"<%= userId %>\" blev ikke fundet, eller er ikke en del af udfordringen.",
"winnerNotFound": "Vinder med ID \"<%= userId %>\" blev ikke fundet, eller er ikke en del af udfordringen.",
"noCompletedTodosChallenge": "\"includeCompletedTodos\" er ikke understøttet, når udfordringens opgaver hentes.",
"userTasksNoChallengeId": "Når \"taskOwner\" er \"user\", kan \"challengeID\" ikke gives som parameter.",
"onlyChalLeaderEditTasks": "Opgaver, der tilhører en udfordring, kan kun redigeres af lederen.",
@ -118,14 +118,14 @@
"challengeMinimum": "Minimum 1 Ædelsten for offentlige Udfordringer (hjælper mod spam, det gør det virkelig).",
"participantsTitle": "Deltagere",
"shortName": "Kort navn",
"shortNamePlaceholder": "Hvilket kort mærkat skal bruges for at identificere din Udfordring?",
"shortNamePlaceholder": "Hvilket kort tag skal bruges for at identificere din Udfordring?",
"updateChallenge": "Opdater Udfordring",
"haveNoChallenges": "Denne gruppe har ingen Udfordringer",
"loadMore": "Vis Flere",
"loadMore": "Vis flere",
"exportChallengeCsv": "Eksporter Udfordring",
"editingChallenge": "Rediger Udfordring",
"nameRequired": "Navn påkrævet",
"tagTooShort": "Mærkatnavn for kort",
"tagTooShort": "Tag er for kort",
"summaryRequired": "Resume påkrævet",
"summaryTooLong": "Resume er for langt",
"descriptionRequired": "Beskrivelse påkrævet",
@ -134,6 +134,6 @@
"viewProgressOf": "Se fremskridt for",
"viewProgress": "Se fremskridt",
"selectMember": "Vælg medlem",
"confirmKeepChallengeTasks": "Vil du beholde Udfordringsopgaverne?",
"confirmKeepChallengeTasks": "Vil du beholde udfordringsopgaverne?",
"selectParticipant": "Vælg en deltager"
}

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