Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0542008b7f | |||
| ffa89202e6 | |||
| 1203cbbad8 | |||
| f9fb463128 | |||
| ea398f6294 | |||
| 5f41042826 | |||
| 486b7d4da1 | |||
| 91b47e56ff | |||
| 9934e59629 | |||
| 50cc66d51c | |||
| 936c9dc4f3 | |||
| 946ade5da1 | |||
| 768e5b3f5b |
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"version": "5.28.4",
|
||||
"version": "5.28.7",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "habitica",
|
||||
"version": "5.28.4",
|
||||
"version": "5.28.7",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.10",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "5.28.4",
|
||||
"version": "5.28.7",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.10",
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import {
|
||||
each,
|
||||
} from 'lodash';
|
||||
import {
|
||||
expectValidTranslationString,
|
||||
} from '../helpers/content.helper';
|
||||
|
||||
import { quests } from '../../website/common/script/content/quests';
|
||||
|
||||
describe('quests', () => {
|
||||
let clock;
|
||||
|
||||
afterEach(() => {
|
||||
if (clock) {
|
||||
clock.restore();
|
||||
}
|
||||
});
|
||||
|
||||
it('contains basic information about each quest', () => {
|
||||
each(quests, (quest, key) => {
|
||||
expectValidTranslationString(quest.text);
|
||||
expectValidTranslationString(quest.notes);
|
||||
expectValidTranslationString(quest.completion);
|
||||
expect(quest.key, key).to.equal(key);
|
||||
expect(quest.category, key).to.be.a('string');
|
||||
if (quest.boss) {
|
||||
expectValidTranslationString(quest.boss.name);
|
||||
expect(quest.boss.hp, key).to.be.a('number');
|
||||
expect(quest.boss.str, key).to.be.a('number');
|
||||
}
|
||||
expect(quest.drop).to.be.an('object');
|
||||
expect(quest.drop.gp, key).to.be.a('number');
|
||||
expect(quest.drop.exp, key).to.be.a('number');
|
||||
if (quest.drop.items) {
|
||||
quest.drop.items.forEach(drop => {
|
||||
expectValidTranslationString(drop.text);
|
||||
expect(drop.type, key).to.exist;
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -23,7 +23,6 @@
|
||||
"bootstrap": "^4.6.0",
|
||||
"bootstrap-vue": "^2.23.1",
|
||||
"core-js": "^3.33.1",
|
||||
"dompurify": "^3.0.3",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-habitrpg": "6.2.0",
|
||||
"eslint-plugin-mocha": "5.3.0",
|
||||
@@ -5389,11 +5388,6 @@
|
||||
"url": "https://github.com/fb55/domhandler?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/dompurify": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz",
|
||||
"integrity": "sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w=="
|
||||
},
|
||||
"node_modules/domutils": {
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
"bootstrap": "^4.6.0",
|
||||
"bootstrap-vue": "^2.23.1",
|
||||
"core-js": "^3.33.1",
|
||||
"dompurify": "^3.0.3",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-habitrpg": "6.2.0",
|
||||
"eslint-plugin-mocha": "5.3.0",
|
||||
|
||||
@@ -2165,6 +2165,11 @@
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_surrounded_by_ghosts {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_surrounded_by_ghosts.png');
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_swan_boat {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_swan_boat.png');
|
||||
width: 141px;
|
||||
@@ -30794,6 +30799,11 @@
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.shield_armoire_safetyFlashlight {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_safetyFlashlight.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.shield_armoire_sandyBucket {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_sandyBucket.png');
|
||||
width: 90px;
|
||||
@@ -31934,6 +31944,11 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.weapon_armoire_spookyCandyBucket {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_spookyCandyBucket.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.weapon_armoire_vermilionArcherBow {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_vermilionArcherBow.png');
|
||||
width: 90px;
|
||||
@@ -35279,6 +35294,16 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.back_mystery_202410 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_mystery_202410.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.headAccessory_mystery_202410 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_mystery_202410.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_mystery_301404 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png');
|
||||
width: 90px;
|
||||
@@ -40237,6 +40262,11 @@
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dog {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_dog.png');
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dolphin {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/quest_dolphin.png');
|
||||
width: 219px;
|
||||
@@ -40967,6 +40997,11 @@
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_dog {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/inventory_quest_scroll_dog.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
.inventory_quest_scroll_dolphin {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/inventory_quest_scroll_dolphin.png');
|
||||
width: 68px;
|
||||
@@ -42807,6 +42842,56 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Base.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-CottonCandyBlue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-CottonCandyBlue.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-CottonCandyPink {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-CottonCandyPink.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-Desert {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Desert.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-Golden {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Golden.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-Red {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Red.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-Shade {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Shade.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-Skeleton {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Skeleton.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-White {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-White.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dog-Zombie {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dog-Zombie.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dolphin-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dolphin-Base.png');
|
||||
width: 105px;
|
||||
@@ -48252,6 +48337,56 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Base.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-CottonCandyBlue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-CottonCandyBlue.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-CottonCandyPink {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-CottonCandyPink.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-Desert {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Desert.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-Golden {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Golden.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-Red {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Red.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-Shade {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Shade.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-Skeleton {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Skeleton.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-White {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-White.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dog-Zombie {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dog-Zombie.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dolphin-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dolphin-Base.png');
|
||||
width: 105px;
|
||||
@@ -53757,6 +53892,56 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Base.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-CottonCandyBlue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-CottonCandyBlue.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-CottonCandyPink {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-CottonCandyPink.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-Desert {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Desert.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-Golden {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Golden.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-Red {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Red.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-Shade {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Shade.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-Skeleton {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Skeleton.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-White {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-White.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dog-Zombie {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dog-Zombie.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dolphin-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dolphin-Base.png');
|
||||
width: 81px;
|
||||
|
||||
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 410 B |
@@ -78,3 +78,15 @@ $gold-color: #FFA624;
|
||||
$hourglass-color: #2995CD;
|
||||
|
||||
$purple-task: #925cf3;
|
||||
|
||||
.gray-200 {
|
||||
color: $gray-200 !important;
|
||||
}
|
||||
|
||||
.purple-300 {
|
||||
color: $purple-300 !important;
|
||||
}
|
||||
|
||||
.white {
|
||||
color: $white !important;
|
||||
}
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
@hide="hide"
|
||||
>
|
||||
<div class="modal-body text-center">
|
||||
<div
|
||||
<Sprite
|
||||
class="quest"
|
||||
:class="`quest_${user.party.quest.completed}`"
|
||||
></div>
|
||||
:image-name="`quest_${user.party.quest.completed}`"
|
||||
/>
|
||||
<p
|
||||
v-if="questData.completion && typeof questData.completion === 'function'"
|
||||
v-html="questData.completion()"
|
||||
@@ -58,10 +58,12 @@ import percent from '@/../../common/script/libs/percent';
|
||||
import { MAX_HEALTH as maxHealth } from '@/../../common/script/constants';
|
||||
import { mapState } from '@/libs/store';
|
||||
import QuestRewards from '../shops/quests/questRewards';
|
||||
import Sprite from '../ui/sprite';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
QuestRewards,
|
||||
Sprite,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
||||
@@ -11,10 +11,11 @@
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="pull-right-sm text-center">
|
||||
<div
|
||||
class="col-centered"
|
||||
:class="`quest_${quests[user.party.quest.key].key}`"
|
||||
></div>
|
||||
<div class="col-centered">
|
||||
<Sprite
|
||||
:image-name="`quest_${quests[user.party.quest.key].key}`"
|
||||
/>
|
||||
</div>
|
||||
<div ng-if="quests[user.party.quest.key].boss">
|
||||
<h4>{{ quests[user.party.quest.key].boss.name() }}</h4>
|
||||
<p>
|
||||
@@ -93,8 +94,12 @@ import * as quests from '@/../../common/script/content/quests';
|
||||
import percent from '@/../../common/script/libs/percent';
|
||||
import { MAX_HEALTH as maxHealth } from '@/../../common/script/constants';
|
||||
import { mapState } from '@/libs/store';
|
||||
import Sprite from '@/components/ui/sprite';
|
||||
|
||||
export default {
|
||||
components: [
|
||||
Sprite,
|
||||
],
|
||||
data () {
|
||||
return {
|
||||
maxHealth,
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<buy-gems-modal v-if="user" />
|
||||
<!--modify-inventory(v-if="isUserLoaded")-->
|
||||
<footer>
|
||||
<!-- Product -->
|
||||
<div class="product">
|
||||
@@ -22,7 +21,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<router-link to="/group-plans">
|
||||
<router-link :to="user ? '/group-plans' : '/static/group-plans'">
|
||||
{{ $t('groupPlans') }}
|
||||
</router-link>
|
||||
</li>
|
||||
@@ -292,7 +291,7 @@
|
||||
|
||||
<div
|
||||
class="time-travel"
|
||||
v-if="TIME_TRAVEL_ENABLED && user.permissions && user.permissions.fullAccess"
|
||||
v-if="TIME_TRAVEL_ENABLED && user?.permissions?.fullAccess"
|
||||
:key="lastTimeJump"
|
||||
>
|
||||
<a
|
||||
|
||||
@@ -608,10 +608,9 @@ import axios from 'axios';
|
||||
import hello from 'hellojs';
|
||||
import debounce from 'lodash/debounce';
|
||||
import isEmail from 'validator/es/lib/isEmail';
|
||||
import DOMPurify from 'dompurify';
|
||||
import { MINIMUM_PASSWORD_LENGTH } from '@/../../common/script/constants';
|
||||
import { buildAppleAuthUrl } from '../../libs/auth';
|
||||
|
||||
import sanitizeRedirect from '@/mixins/sanitizeRedirect';
|
||||
import exclamation from '@/assets/svg/exclamation.svg';
|
||||
import gryphon from '@/assets/svg/gryphon.svg';
|
||||
import habiticaIcon from '@/assets/svg/logo-horizontal.svg';
|
||||
@@ -619,6 +618,7 @@ import googleIcon from '@/assets/svg/google.svg';
|
||||
import appleIcon from '@/assets/svg/apple_black.svg';
|
||||
|
||||
export default {
|
||||
mixins: [sanitizeRedirect],
|
||||
data () {
|
||||
const data = {
|
||||
username: '',
|
||||
@@ -747,11 +747,6 @@ export default {
|
||||
}
|
||||
});
|
||||
}, 500),
|
||||
sanitizeRedirect (redirect) {
|
||||
if (!redirect) return '/';
|
||||
const sanitizedString = DOMPurify.sanitize(redirect).replace(/\\|\/\/|\./g, '');
|
||||
return sanitizedString;
|
||||
},
|
||||
async register () {
|
||||
// @TODO do not use alert
|
||||
if (!this.email) {
|
||||
|
||||
@@ -1,214 +0,0 @@
|
||||
<!-- THIS IS A VERY OLD FILE DO NOT USE -->
|
||||
<template>
|
||||
<div class="create-group-modal-pages">
|
||||
<div
|
||||
v-if="activePage === PAGES.CREATE_GROUP"
|
||||
class="col-12"
|
||||
>
|
||||
<h2>{{ $t('nameYourGroup') }}</h2>
|
||||
<div class="form-group">
|
||||
<label
|
||||
class="control-label"
|
||||
for="new-group-name"
|
||||
>{{ $t('name') }}</label>
|
||||
<input
|
||||
id="new-group-name"
|
||||
v-model="newGroup.name"
|
||||
class="form-control input-medium option-content"
|
||||
required="required"
|
||||
type="text"
|
||||
:placeholder="$t('exampleGroupName')"
|
||||
>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new-group-description">{{ $t('description') }}</label>
|
||||
<textarea
|
||||
id="new-group-description"
|
||||
v-model="newGroup.description"
|
||||
class="form-control option-content"
|
||||
cols="3"
|
||||
:placeholder="$t('exampleGroupDesc')"
|
||||
></textarea>
|
||||
</div>
|
||||
<div
|
||||
v-if="newGroup.type === 'guild'"
|
||||
class="form-group text-left"
|
||||
>
|
||||
<div class="custom-control custom-radio">
|
||||
<input
|
||||
v-model="newGroup.privacy"
|
||||
class="custom-control-input"
|
||||
type="radio"
|
||||
name="new-group-privacy"
|
||||
value="private"
|
||||
>
|
||||
<label class="custom-control-label">{{ $t('thisGroupInviteOnly') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group text-left">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input
|
||||
id="create-group-leaderOnlyChallenges-checkbox"
|
||||
v-model="newGroup.leaderOnly.challenges"
|
||||
class="custom-control-input"
|
||||
type="checkbox"
|
||||
>
|
||||
<label
|
||||
class="custom-control-label"
|
||||
for="create-group-leaderOnlyChallenges-checkbox"
|
||||
>{{ $t('leaderOnlyChallenges') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="newGroup.type === 'party'"
|
||||
class="form-group"
|
||||
>
|
||||
<button
|
||||
class="btn btn-secondary form-control"
|
||||
:value="$t('create')"
|
||||
@click="createGroup()"
|
||||
></button>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button
|
||||
class="btn btn-primary btn-lg btn-block"
|
||||
:disabled="!newGroupIsReady"
|
||||
@click="createGroup()"
|
||||
>
|
||||
{{ $t('create') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="activePage === PAGES.PAY"
|
||||
class="col-12"
|
||||
>
|
||||
<h2>{{ $t('choosePaymentMethod') }}</h2>
|
||||
<payments-buttons
|
||||
:stripe-fn="() => pay(PAYMENTS.STRIPE)"
|
||||
:amazon-data="pay(PAYMENTS.AMAZON)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
h2 {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
font-size: 29px;
|
||||
color: #34313a;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.box {
|
||||
border-radius: 2px;
|
||||
background-color: #ffffff;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
|
||||
padding: 2em;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
height: 100px;
|
||||
width: 306px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.box .svg-icon {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.custom-control-input {
|
||||
z-index: -1;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.box:hover {
|
||||
cursor: pointer;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.btn-block {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import { mapState } from '@/libs/store';
|
||||
import paymentsMixin from '../../mixins/payments';
|
||||
import paymentsButtons from '@/components/payments/buttons/list';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
paymentsButtons,
|
||||
},
|
||||
mixins: [paymentsMixin],
|
||||
data () {
|
||||
return {
|
||||
amazonPayments: {},
|
||||
PAGES: {
|
||||
CREATE_GROUP: 'create-group',
|
||||
UPGRADE_GROUP: 'upgrade-group',
|
||||
PAY: 'pay',
|
||||
},
|
||||
PAYMENTS: {
|
||||
AMAZON: 'amazon',
|
||||
STRIPE: 'stripe',
|
||||
},
|
||||
activePage: 'create-group',
|
||||
newGroup: {
|
||||
type: 'guild',
|
||||
privacy: 'private',
|
||||
name: '',
|
||||
leaderOnly: {
|
||||
challenges: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({ user: 'user.data' }),
|
||||
newGroupIsReady () {
|
||||
return Boolean(this.newGroup.name);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
changePage (page) {
|
||||
this.activePage = page;
|
||||
window.scrollTo(0, 0);
|
||||
},
|
||||
createGroup () {
|
||||
this.changePage(this.PAGES.PAY);
|
||||
},
|
||||
pay (paymentMethod) {
|
||||
const subscriptionKey = 'group_monthly';
|
||||
const paymentData = {
|
||||
subscription: subscriptionKey,
|
||||
coupon: null,
|
||||
};
|
||||
|
||||
if (this.upgradingGroup && this.upgradingGroup._id) {
|
||||
paymentData.groupId = this.upgradingGroup._id;
|
||||
paymentData.group = this.upgradingGroup;
|
||||
} else {
|
||||
paymentData.groupToCreate = this.newGroup;
|
||||
}
|
||||
|
||||
this.paymentMethod = paymentMethod;
|
||||
if (this.paymentMethod === this.PAYMENTS.STRIPE) {
|
||||
this.redirectToStripe(paymentData);
|
||||
} else if (this.paymentMethod === this.PAYMENTS.AMAZON) {
|
||||
paymentData.type = 'subscription';
|
||||
return paymentData;
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,16 +1,13 @@
|
||||
<template>
|
||||
<b-modal
|
||||
id="create-group"
|
||||
:title="activePage === PAGES.CREATE_GROUP ? 'Create your Group' : 'Select Payment'"
|
||||
:title="$t('createGroupTitle')"
|
||||
:hide-footer="true"
|
||||
:hide-header="true"
|
||||
size="md"
|
||||
@hide="onHide()"
|
||||
>
|
||||
<div
|
||||
v-if="activePage === PAGES.CREATE_GROUP"
|
||||
class="col-12"
|
||||
>
|
||||
<div class="col-12">
|
||||
<!-- HEADER -->
|
||||
<div
|
||||
class="modal-close"
|
||||
@@ -25,7 +22,7 @@
|
||||
class="btn btn-primary next-button"
|
||||
:value="$t('next')"
|
||||
:disabled="!newGroupIsReady"
|
||||
@click="createGroup()"
|
||||
@click="stripeGroup({ group: newGroup })"
|
||||
>
|
||||
{{ $t('next') }}
|
||||
</button>
|
||||
@@ -101,25 +98,12 @@
|
||||
<button
|
||||
class="btn btn-primary btn-lg btn-block btn-payment"
|
||||
:disabled="!newGroupIsReady"
|
||||
@click="createGroup()"
|
||||
@click="stripeGroup({ group: newGroup })"
|
||||
>
|
||||
{{ $t('nextPaymentMethod') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- PAYMENT -->
|
||||
<!-- @TODO: Separate payment into a separate modal -->
|
||||
<div
|
||||
v-if="activePage === PAGES.PAY"
|
||||
class="col-12 payments"
|
||||
>
|
||||
<div class="text-center">
|
||||
<payments-buttons
|
||||
:stripe-fn="() => pay(PAYMENTS.STRIPE)"
|
||||
:amazon-data="pay(PAYMENTS.AMAZON)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</b-modal>
|
||||
</template>
|
||||
|
||||
@@ -195,9 +179,6 @@
|
||||
width: 200px;
|
||||
height: 215px;
|
||||
|
||||
.dollar {
|
||||
}
|
||||
|
||||
.number {
|
||||
font-size: 60px;
|
||||
}
|
||||
@@ -248,31 +229,17 @@
|
||||
<script>
|
||||
import paymentsMixin from '../../mixins/payments';
|
||||
import { mapState } from '@/libs/store';
|
||||
import paymentsButtons from '@/components/payments/buttons/list';
|
||||
import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray';
|
||||
import lockableLabel from '@/components/tasks/modal-controls/lockableLabel';
|
||||
import * as Analytics from '@/libs/analytics';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
paymentsButtons,
|
||||
selectTranslatedArray,
|
||||
lockableLabel,
|
||||
},
|
||||
mixins: [paymentsMixin],
|
||||
data () {
|
||||
return {
|
||||
amazonPayments: {},
|
||||
PAGES: {
|
||||
CREATE_GROUP: 'create-group',
|
||||
// UPGRADE_GROUP: 'upgrade-group',
|
||||
PAY: 'pay',
|
||||
},
|
||||
PAYMENTS: {
|
||||
AMAZON: 'amazon',
|
||||
STRIPE: 'stripe',
|
||||
},
|
||||
paymentMethod: '',
|
||||
newGroup: {
|
||||
type: 'guild',
|
||||
privacy: 'private',
|
||||
@@ -284,7 +251,6 @@ export default {
|
||||
demographics: null,
|
||||
user: '',
|
||||
},
|
||||
activePage: 'create-group',
|
||||
type: 'guild',
|
||||
};
|
||||
},
|
||||
@@ -302,55 +268,9 @@ export default {
|
||||
close () {
|
||||
this.$root.$emit('bv::hide::modal', 'create-group');
|
||||
},
|
||||
changePage (page) {
|
||||
this.activePage = page;
|
||||
},
|
||||
createGroup () {
|
||||
this.changePage(this.PAGES.PAY);
|
||||
},
|
||||
pay (paymentMethod) {
|
||||
const subscriptionKey = 'group_monthly'; // @TODO: Get from content API?
|
||||
const demographicsKey = this.newGroup.demographics;
|
||||
const paymentData = {
|
||||
subscription: subscriptionKey,
|
||||
coupon: null,
|
||||
demographics: demographicsKey,
|
||||
};
|
||||
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventName: 'group plan create',
|
||||
eventAction: 'group plan create',
|
||||
eventCategory: 'behavior',
|
||||
demographics: this.newGroup.demographics,
|
||||
type: this.newGroup.type,
|
||||
}, { trackOnClient: true });
|
||||
|
||||
if (this.upgradingGroup && this.upgradingGroup._id) {
|
||||
paymentData.groupId = this.upgradingGroup._id;
|
||||
paymentData.group = this.upgradingGroup;
|
||||
} else {
|
||||
paymentData.groupToCreate = this.newGroup;
|
||||
}
|
||||
|
||||
this.paymentMethod = paymentMethod;
|
||||
|
||||
if (this.paymentMethod === this.PAYMENTS.AMAZON) {
|
||||
paymentData.type = 'subscription';
|
||||
return paymentData;
|
||||
}
|
||||
|
||||
if (this.paymentMethod === this.PAYMENTS.STRIPE) {
|
||||
this.redirectToStripe(paymentData);
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
|
||||
onHide () {
|
||||
this.sendingInProgress = false;
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -1,377 +0,0 @@
|
||||
<template>
|
||||
<b-modal
|
||||
id="group-plan-overview"
|
||||
title="Empty"
|
||||
size="lg"
|
||||
hide-footer="hide-footer"
|
||||
>
|
||||
<div
|
||||
slot="modal-header"
|
||||
class="header-wrap text-center"
|
||||
>
|
||||
<h2 v-once>
|
||||
{{ $t('gettingStarted') }}
|
||||
</h2>
|
||||
<p v-once>
|
||||
{{ $t('congratsOnGroupPlan') }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="card"
|
||||
:class="{expanded: expandedQuestions.question1}"
|
||||
>
|
||||
<div class="question-head">
|
||||
<div class="q">
|
||||
Q.
|
||||
</div>
|
||||
<div class="title">
|
||||
{{ $t('whatsIncludedGroup') }}
|
||||
</div>
|
||||
<div
|
||||
class="arrow float-right"
|
||||
@click="toggle('question1')"
|
||||
>
|
||||
<div
|
||||
v-if="expandedQuestions.question1"
|
||||
class="svg-icon"
|
||||
v-html="icons.upIcon"
|
||||
></div>
|
||||
<div
|
||||
v-else
|
||||
class="svg-icon"
|
||||
v-html="icons.downIcon"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="expandedQuestions.question1"
|
||||
class="question-body"
|
||||
>
|
||||
<p>{{ $t('whatsIncludedGroupDesc') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="card"
|
||||
:class="{expanded: expandedQuestions.question2}"
|
||||
>
|
||||
<div class="question-head">
|
||||
<div class="q">
|
||||
Q.
|
||||
</div>
|
||||
<div class="title">
|
||||
{{ $t('howDoesBillingWork') }}
|
||||
</div>
|
||||
<div
|
||||
class="arrow float-right"
|
||||
@click="toggle('question2')"
|
||||
>
|
||||
<div
|
||||
v-if="expandedQuestions.question2"
|
||||
class="svg-icon"
|
||||
v-html="icons.upIcon"
|
||||
></div>
|
||||
<div
|
||||
v-else
|
||||
class="svg-icon"
|
||||
v-html="icons.downIcon"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="expandedQuestions.question2"
|
||||
class="question-body"
|
||||
>
|
||||
<p>{{ $t('howDoesBillingWorkDesc') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="card"
|
||||
:class="{expanded: expandedQuestions.question3}"
|
||||
>
|
||||
<div class="question-head">
|
||||
<div class="q">
|
||||
Q.
|
||||
</div>
|
||||
<div class="title">
|
||||
{{ $t('howToAssignTask') }}
|
||||
</div>
|
||||
<div
|
||||
class="arrow float-right"
|
||||
@click="toggle('question3')"
|
||||
>
|
||||
<div
|
||||
v-if="expandedQuestions.question3"
|
||||
class="svg-icon"
|
||||
v-html="icons.upIcon"
|
||||
></div>
|
||||
<div
|
||||
v-else
|
||||
class="svg-icon"
|
||||
v-html="icons.downIcon"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="expandedQuestions.question3"
|
||||
class="question-body"
|
||||
>
|
||||
<p>{{ $t('howToAssignTaskDesc') }}</p>
|
||||
<div class="assign-tasks image-example"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="card"
|
||||
:class="{expanded: expandedQuestions.question4}"
|
||||
>
|
||||
<div class="question-head">
|
||||
<div class="q">
|
||||
Q.
|
||||
</div>
|
||||
<div class="title">
|
||||
{{ $t('howToRequireApproval') }}
|
||||
</div>
|
||||
<div
|
||||
class="arrow float-right"
|
||||
@click="toggle('question4')"
|
||||
>
|
||||
<div
|
||||
v-if="expandedQuestions.question4"
|
||||
class="svg-icon"
|
||||
v-html="icons.upIcon"
|
||||
></div>
|
||||
<div
|
||||
v-else
|
||||
class="svg-icon"
|
||||
v-html="icons.downIcon"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="expandedQuestions.question4"
|
||||
class="question-body"
|
||||
>
|
||||
<p>{{ $t('howToRequireApprovalDesc') }}</p>
|
||||
<div class="requires-approval image-example"></div>
|
||||
<p>{{ $t('howToRequireApprovalDesc2') }}</p>
|
||||
<div class="approval-requested image-example"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div
|
||||
class="card"
|
||||
:class="{expanded: expandedQuestions.question5}"
|
||||
>
|
||||
<div class="question-head">
|
||||
<div class="q">
|
||||
Q.
|
||||
</div>
|
||||
<div class="title">
|
||||
{{ $t('whatIsGroupManager') }}
|
||||
</div>
|
||||
<div
|
||||
class="arrow float-right"
|
||||
@click="toggle('question5')"
|
||||
>
|
||||
<div
|
||||
v-if="expandedQuestions.question5"
|
||||
class="svg-icon"
|
||||
v-html="icons.upIcon"
|
||||
></div>
|
||||
<div
|
||||
v-else
|
||||
class="svg-icon"
|
||||
v-html="icons.downIcon"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="expandedQuestions.question5"
|
||||
class="question-body"
|
||||
>
|
||||
<p>{{ $t('whatIsGroupManagerDesc') }}</p>
|
||||
<div class="promote-leader image-example"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 text-center">
|
||||
<button
|
||||
class="btn btn-primary close-button"
|
||||
@click="close()"
|
||||
>
|
||||
{{ $t('goToTaskBoard') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</b-modal>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
#group-plan-overview___BV_modal_header_ {
|
||||
border-bottom: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import url('https://fonts.googleapis.com/css?family=Varela+Round');
|
||||
|
||||
.header-wrap {
|
||||
padding-left: 4em;
|
||||
padding-right: 4em;
|
||||
|
||||
h2 {
|
||||
font-size: 32px;
|
||||
font-weight: bold;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
p {
|
||||
color: #878190;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.row {
|
||||
margin-bottom: 2em;
|
||||
|
||||
.col-12 {
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
.card.expanded {
|
||||
padding-bottom: 1em;
|
||||
|
||||
.title {
|
||||
color: #4f2a93;
|
||||
}
|
||||
}
|
||||
|
||||
.card {
|
||||
min-height: 60px;
|
||||
border-radius: 4px;
|
||||
background-color: #ffffff;
|
||||
border: none;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
|
||||
|
||||
.question-head {
|
||||
.q {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-size: 20px;
|
||||
color: #a5a1ac;
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
div {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.arrow {
|
||||
margin: 1em;
|
||||
padding-top: .9em;
|
||||
|
||||
.svg-icon {
|
||||
width: 26px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.arrow:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.question-body {
|
||||
padding-left: 4.4em;
|
||||
padding-right: 4em;
|
||||
|
||||
p {
|
||||
color: #4e4a57;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.image-example {
|
||||
background-repeat: no-repeat;
|
||||
margin: 0 auto;
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.assign-tasks {
|
||||
background-image: url('~@/assets/images/group-plans/assign-task@3x.png');
|
||||
width: 400px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.requires-approval {
|
||||
background-image: url('~@/assets/images/group-plans/requires-approval@3x.png');
|
||||
width: 402px;
|
||||
height: 20px;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.approval-requested {
|
||||
background-image: url('~@/assets/images/group-plans/approval-requested@3x.png');
|
||||
width: 471px;
|
||||
height: 204px;
|
||||
}
|
||||
|
||||
.promote-leader {
|
||||
background-image: url('~@/assets/images/group-plans/promote-leader@3x.png');
|
||||
width: 423px;
|
||||
height: 185px;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
margin-top: 1em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import { mapState } from '@/libs/store';
|
||||
|
||||
import upIcon from '@/assets/svg/up.svg';
|
||||
import downIcon from '@/assets/svg/down.svg';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
upIcon,
|
||||
downIcon,
|
||||
}),
|
||||
expandedQuestions: {
|
||||
question1: false,
|
||||
question2: false,
|
||||
question3: false,
|
||||
question4: false,
|
||||
question5: false,
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({ user: 'user.data' }),
|
||||
},
|
||||
methods: {
|
||||
toggle (question) {
|
||||
this.expandedQuestions[question] = !this.expandedQuestions[question];
|
||||
},
|
||||
close () {
|
||||
this.$root.$emit('bv::hide::modal', 'group-plan-overview');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -3,7 +3,6 @@
|
||||
class="standard-page"
|
||||
@click="openCreateBtn ? openCreateBtn = false : null"
|
||||
>
|
||||
<group-plan-overview-modal />
|
||||
<task-modal
|
||||
ref="taskModal"
|
||||
:task="workingTask"
|
||||
@@ -187,7 +186,6 @@ import taskDefaults from '@/../../common/script/libs/taskDefaults';
|
||||
import TaskColumn from '../tasks/column';
|
||||
import TaskModal from '../tasks/taskModal';
|
||||
import TaskSummary from '../tasks/taskSummary';
|
||||
import GroupPlanOverviewModal from './groupPlanOverviewModal';
|
||||
import toggleSwitch from '@/components/ui/toggleSwitch';
|
||||
|
||||
import sync from '../../mixins/sync';
|
||||
@@ -208,7 +206,6 @@ export default {
|
||||
TaskColumn,
|
||||
TaskModal,
|
||||
TaskSummary,
|
||||
GroupPlanOverviewModal,
|
||||
toggleSwitch,
|
||||
},
|
||||
mixins: [sync],
|
||||
@@ -309,10 +306,6 @@ export default {
|
||||
if (!this.searchId) this.searchId = this.groupId;
|
||||
this.load();
|
||||
|
||||
if (this.$route.query.showGroupOverview) {
|
||||
this.$root.$emit('bv::show::modal', 'group-plan-overview');
|
||||
}
|
||||
|
||||
this.$root.$on('habitica:team-sync', () => {
|
||||
this.loadTasks();
|
||||
this.loadGroupCompletedTodos();
|
||||
|
||||
@@ -1,465 +0,0 @@
|
||||
<template>
|
||||
<!-- @TODO: Move to group plans folder-->
|
||||
<div>
|
||||
<group-plan-creation-modal />
|
||||
<div>
|
||||
<div class="header">
|
||||
<h1
|
||||
v-once
|
||||
class="text-center"
|
||||
>
|
||||
{{ $t('groupPlanTitle') }}
|
||||
</h1>
|
||||
<div class="row">
|
||||
<div class="col-8 offset-2 text-center">
|
||||
<h2
|
||||
v-once
|
||||
class="sub-text"
|
||||
>
|
||||
{{ $t('groupBenefitsDescription') }}
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container benefits">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="box">
|
||||
<img
|
||||
class="box1"
|
||||
src="~@/assets/images/group-plans/group-14@3x.png"
|
||||
>
|
||||
<hr>
|
||||
<h2 v-once>
|
||||
{{ $t('teamBasedTasks') }}
|
||||
</h2>
|
||||
<p v-once>
|
||||
{{ $t('teamBasedTasksListDesc') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="box">
|
||||
<img
|
||||
class="box2"
|
||||
src="~@/assets/images/group-plans/group-12@3x.png"
|
||||
>
|
||||
<hr>
|
||||
<h2 v-once>
|
||||
{{ $t('groupManagementControls') }}
|
||||
</h2>
|
||||
<p v-once>
|
||||
{{ $t('groupManagementControlsDesc') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="box">
|
||||
<img
|
||||
class="box3"
|
||||
src="~@/assets/images/group-plans/group-13@3x.png"
|
||||
>
|
||||
<hr>
|
||||
<h2 v-once>
|
||||
{{ $t('inGameBenefits') }}
|
||||
</h2>
|
||||
<p v-once>
|
||||
{{ $t('inGameBenefitsDesc') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Upgrading an existing group -->
|
||||
<div
|
||||
v-if="upgradingGroup._id"
|
||||
id="upgrading-group"
|
||||
class="container payment-options"
|
||||
>
|
||||
<h1 class="text-center purple-header">
|
||||
Are you ready to upgrade?
|
||||
</h1>
|
||||
<div class="row">
|
||||
<div class="col-12 text-center mb-4 d-flex justify-content-center">
|
||||
<div class="purple-box">
|
||||
<div class="amount-section">
|
||||
<div class="dollar">
|
||||
$
|
||||
</div>
|
||||
<div class="number">
|
||||
9
|
||||
</div>
|
||||
<div class="name">
|
||||
Group Owner Subscription
|
||||
</div>
|
||||
</div>
|
||||
<div class="plus">
|
||||
<div
|
||||
class="svg-icon"
|
||||
v-html="icons.positiveIcon"
|
||||
></div>
|
||||
</div>
|
||||
<div class="amount-section">
|
||||
<div class="dollar">
|
||||
$
|
||||
</div>
|
||||
<div class="number">
|
||||
3
|
||||
</div>
|
||||
<div class="name">
|
||||
Each Individual Group Member
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box payment-providers">
|
||||
<payments-buttons
|
||||
:stripe-fn="() => pay(PAYMENTS.STRIPE)"
|
||||
:amazon-data="pay(PAYMENTS.AMAZON)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Create a new group -->
|
||||
<div
|
||||
v-if="!upgradingGroup._id"
|
||||
class="container col-6 offset-3 create-option"
|
||||
>
|
||||
<div class="row">
|
||||
<h1 class="col-12 text-center purple-header">
|
||||
Create Your Group Today!
|
||||
</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
<button
|
||||
class="btn btn-primary create-group"
|
||||
@click="launchModal('create-page')"
|
||||
>
|
||||
Create Your New Group!
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pricing justify-content-center align-items-center">
|
||||
<div class="dollar">
|
||||
$
|
||||
</div>
|
||||
<div class="number">
|
||||
9
|
||||
</div>
|
||||
<div class="name">
|
||||
<div>Group Owner</div>
|
||||
<div>Subscription</div>
|
||||
</div>
|
||||
<div class="plus">
|
||||
+
|
||||
</div>
|
||||
<div class="dollar">
|
||||
$
|
||||
</div>
|
||||
<div class="number">
|
||||
3
|
||||
</div>
|
||||
<div class="name">
|
||||
<div>Each Additional</div>
|
||||
<div>Member</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
#upgrading-group {
|
||||
.amount-section {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.dollar {
|
||||
position: absolute;
|
||||
left: -16px;
|
||||
top: 16px;
|
||||
}
|
||||
|
||||
.purple-box {
|
||||
color: #bda8ff;
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
border-top-left-radius: 8px;
|
||||
border-bottom-left-radius: 8px;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
|
||||
}
|
||||
|
||||
.number {
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.plus .svg-icon{
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
.payment-providers {
|
||||
width: 350px;
|
||||
border-top-right-radius: 8px;
|
||||
border-bottom-right-radius: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.header {
|
||||
background: #432874;
|
||||
background: linear-gradient(180deg, #4F2A93 0%, #432874 100%);
|
||||
color: #fff;
|
||||
padding: 32px;
|
||||
height: 340px;
|
||||
margin-bottom: 32px;
|
||||
margin-left: -12px;
|
||||
margin-right: -12px;
|
||||
|
||||
h1 {
|
||||
font-size: 48px;
|
||||
line-height: 1.16;
|
||||
margin-top: 12px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
h2.sub-text {
|
||||
color: #D5C8FF;
|
||||
font-size: 24px;
|
||||
font-weight: 400;
|
||||
line-height: 1.33;
|
||||
}
|
||||
}
|
||||
|
||||
.benefits {
|
||||
margin-top: -10em;
|
||||
|
||||
.box {
|
||||
height: 416px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #6133b4;
|
||||
}
|
||||
}
|
||||
|
||||
.box {
|
||||
border-radius: 2px;
|
||||
background-color: #ffffff;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
|
||||
padding: 2em;
|
||||
text-align: center;
|
||||
display: inline-block !important;
|
||||
vertical-align: bottom;
|
||||
margin-right: 1em;
|
||||
|
||||
img {
|
||||
margin: 0 auto;
|
||||
margin-top: 2em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
img.box1 {
|
||||
width: 266px;
|
||||
}
|
||||
|
||||
img.box2 {
|
||||
margin-top: 3.5em;
|
||||
width: 262px;
|
||||
margin-bottom: 3.7em;
|
||||
}
|
||||
|
||||
img.box3 {
|
||||
width: 225px;
|
||||
margin-bottom: 3.0em;
|
||||
}
|
||||
|
||||
button.create-group {
|
||||
width: 330px;
|
||||
height: 96px;
|
||||
border-radius: 8px;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.purple-header {
|
||||
color: #6133b4;
|
||||
font-size: 48px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.pricing {
|
||||
margin-top: 32px;
|
||||
margin-bottom: 64px;
|
||||
|
||||
.dollar, .number, .name {
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
color: #a5a1ac;
|
||||
}
|
||||
|
||||
.plus {
|
||||
font-size: 2.125rem;
|
||||
color: #a5a1ac;
|
||||
margin-left: 16px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
.dollar {
|
||||
margin-bottom: 24px;
|
||||
font-size: 2rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.number {
|
||||
font-size: 4.5rem;
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
|
||||
.payment-options {
|
||||
margin-bottom: 64px;
|
||||
|
||||
h4 {
|
||||
color: #34313a;
|
||||
}
|
||||
|
||||
.purple-box {
|
||||
background-color: #4f2a93;
|
||||
color: #fff;
|
||||
padding: 8px;
|
||||
border-radius: 8px;
|
||||
width: 200px;
|
||||
height: 215px;
|
||||
|
||||
.dollar {
|
||||
}
|
||||
|
||||
.number {
|
||||
font-size: 60px;
|
||||
}
|
||||
|
||||
.name {
|
||||
width: 100px;
|
||||
margin-left: 4.8px;
|
||||
}
|
||||
|
||||
.plus {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.box, .purple-box {
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import paymentsMixin from '../../mixins/payments';
|
||||
import { mapState } from '@/libs/store';
|
||||
import positiveIcon from '@/assets/svg/positive.svg';
|
||||
import paymentsButtons from '@/components/payments/buttons/list';
|
||||
import groupPlanCreationModal from '../group-plans/groupPlanCreationModal';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
paymentsButtons,
|
||||
groupPlanCreationModal,
|
||||
},
|
||||
mixins: [paymentsMixin],
|
||||
data () {
|
||||
return {
|
||||
amazonPayments: {},
|
||||
icons: Object.freeze({
|
||||
positiveIcon,
|
||||
}),
|
||||
PAGES: {
|
||||
CREATE_GROUP: 'create-group',
|
||||
UPGRADE_GROUP: 'upgrade-group',
|
||||
PAY: 'pay',
|
||||
},
|
||||
PAYMENTS: {
|
||||
AMAZON: 'amazon',
|
||||
STRIPE: 'stripe',
|
||||
},
|
||||
paymentMethod: '',
|
||||
newGroup: {
|
||||
type: 'guild',
|
||||
privacy: 'private',
|
||||
name: '',
|
||||
leaderOnly: {
|
||||
challenges: false,
|
||||
},
|
||||
},
|
||||
activePage: '',
|
||||
type: 'guild', // Guild or Party @TODO enum this
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
newGroupIsReady () {
|
||||
return Boolean(this.newGroup.name);
|
||||
},
|
||||
upgradingGroup () {
|
||||
return this.$store.state.upgradingGroup;
|
||||
},
|
||||
// @TODO: can we move this to payment mixin?
|
||||
...mapState({ user: 'user.data' }),
|
||||
},
|
||||
mounted () {
|
||||
this.activePage = this.PAGES.BENEFITS;
|
||||
this.$store.dispatch('common:setTitle', {
|
||||
section: this.$t('groupPlans'),
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
launchModal () {
|
||||
this.$root.$emit('bv::show::modal', 'create-group');
|
||||
},
|
||||
createGroup () {
|
||||
this.changePage(this.PAGES.PAY);
|
||||
},
|
||||
pay (paymentMethod) {
|
||||
const subscriptionKey = 'group_monthly'; // @TODO: Get from content API?
|
||||
const paymentData = {
|
||||
subscription: subscriptionKey,
|
||||
coupon: null,
|
||||
};
|
||||
|
||||
if (this.upgradingGroup && this.upgradingGroup._id) {
|
||||
paymentData.groupId = this.upgradingGroup._id;
|
||||
paymentData.group = this.upgradingGroup;
|
||||
} else {
|
||||
paymentData.groupToCreate = this.newGroup;
|
||||
}
|
||||
|
||||
this.paymentMethod = paymentMethod;
|
||||
|
||||
if (this.paymentMethod === this.PAYMENTS.AMAZON) {
|
||||
paymentData.type = 'subscription';
|
||||
return paymentData;
|
||||
}
|
||||
|
||||
if (this.paymentMethod === this.PAYMENTS.STRIPE) {
|
||||
this.redirectToStripe(paymentData);
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -51,10 +51,10 @@
|
||||
:class="{'not-participating': !userIsOnQuest}"
|
||||
>
|
||||
<div class="col-12 text-center">
|
||||
<div
|
||||
<Sprite
|
||||
class="quest-boss"
|
||||
:class="'quest_' + questData.key"
|
||||
></div>
|
||||
:image-name="'quest_' + questData.key"
|
||||
/>
|
||||
<div class="quest-box">
|
||||
<div
|
||||
v-if="questData.collect"
|
||||
@@ -66,7 +66,7 @@
|
||||
class="quest-item-row"
|
||||
>
|
||||
<div class="quest-item-icon">
|
||||
<div :class="'quest_' + questData.key + '_' + key"></div>
|
||||
<Sprite :image-name="'quest_' + questData.key + '_' + key" />
|
||||
</div>
|
||||
<div class="quest-item-info">
|
||||
<span class="label quest-label">{{ value.text() }}</span>
|
||||
@@ -643,6 +643,7 @@ import * as quests from '@/../../common/script/content/quests';
|
||||
import percent from '@/../../common/script/libs/percent';
|
||||
import { mapState } from '@/libs/store';
|
||||
import sidebarSection from '../sidebarSection';
|
||||
import Sprite from '../ui/sprite';
|
||||
|
||||
import questIcon from '@/assets/svg/quest.svg';
|
||||
import swordIcon from '@/assets/svg/sword.svg';
|
||||
@@ -653,6 +654,7 @@ import questActionsMixin from '@/components/groups/questActions.mixin';
|
||||
export default {
|
||||
components: {
|
||||
sidebarSection,
|
||||
Sprite,
|
||||
},
|
||||
mixins: [questActionsMixin],
|
||||
props: ['group'],
|
||||
|
||||
@@ -529,7 +529,7 @@ export default {
|
||||
|
||||
// List of prompts for user on changes.
|
||||
// Sounds like we may need a refactor here, but it is clean for now
|
||||
if (!this.user.flags.welcomed) {
|
||||
if (!this.user.flags.welcomed && !this.$route.name.includes('groupPlan')) {
|
||||
if (this.$store.state.avatarEditorOptions) {
|
||||
this.$store.state.avatarEditorOptions.editingUser = false;
|
||||
}
|
||||
|
||||
@@ -28,12 +28,6 @@
|
||||
:alt="$t('paypal')"
|
||||
>
|
||||
</button>
|
||||
<amazon-button
|
||||
v-if="amazonAvailable"
|
||||
class="payment-item"
|
||||
:disabled="disabled"
|
||||
:amazon-data="amazonData"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -92,21 +86,14 @@
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import amazonButton from '@/components/payments/buttons/amazon';
|
||||
import creditCardIcon from '@/assets/svg/credit-card-icon.svg';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
amazonButton,
|
||||
},
|
||||
props: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
amazonData: {
|
||||
type: Object,
|
||||
},
|
||||
stripeFn: {
|
||||
type: Function,
|
||||
},
|
||||
@@ -128,9 +115,6 @@ export default {
|
||||
paypalAvailable () {
|
||||
return typeof this.paypalFn === 'function';
|
||||
},
|
||||
amazonAvailable () {
|
||||
return this.amazonData !== undefined;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -183,11 +183,10 @@
|
||||
eventStartMonth: eventInfo.startMonth,
|
||||
eventStartOrdinal: eventInfo.startOrdinal,
|
||||
eventStartTime: eventInfo.startTime,
|
||||
eventStartUTC: eventInfo.startUTC,
|
||||
eventEndMonth: eventInfo.endMonth,
|
||||
eventEndOrdinal: eventInfo.endOrdinal,
|
||||
eventEndTime: eventInfo.endTime,
|
||||
eventEndUTC: eventInfo.endUTC,
|
||||
timeZone: eventInfo.timeZoneAbbrev,
|
||||
}) }}
|
||||
</small>
|
||||
</div>
|
||||
@@ -445,19 +444,24 @@ export default {
|
||||
);
|
||||
if (!currentEvent) return null;
|
||||
|
||||
// https://stackoverflow.com/questions/1954397/detect-timezone-abbreviation-using-javascript#answer-66180857
|
||||
const timeZoneAbbrev = new Intl.DateTimeFormat('en-us', { timeZoneName: 'short' })
|
||||
.formatToParts(new Date())
|
||||
.find(part => part.type === 'timeZoneName')
|
||||
.value;
|
||||
|
||||
return {
|
||||
name: currentEvent.event,
|
||||
class: currentEvent.gemsPromo ? `event-${currentEvent.event}` : '',
|
||||
gemsPromo: currentEvent.gemsPromo,
|
||||
promo: currentEvent.promo,
|
||||
timeZoneAbbrev,
|
||||
startMonth: moment(currentEvent.start).format('MMMM'),
|
||||
startOrdinal: moment(currentEvent.start).format('Do'),
|
||||
startTime: moment(currentEvent.start).format('hh:mm A'),
|
||||
startUTC: moment(currentEvent.start).utc().format('hh:mm A'),
|
||||
endMonth: moment(currentEvent.end).format('MMMM'),
|
||||
endOrdinal: moment(currentEvent.end).format('Do'),
|
||||
endTime: moment(currentEvent.end).format('hh:mm A'),
|
||||
endUTC: moment(currentEvent.end).utc().format('hh:mm A'),
|
||||
};
|
||||
},
|
||||
isGemsPromoActive () {
|
||||
|
||||
@@ -39,9 +39,16 @@ export const QuestHelperMixin = {
|
||||
return !drop.onlyOwner;
|
||||
}).map(item => {
|
||||
if (item.type === 'gear') {
|
||||
const contentItem = this.content.gear.flat[item.key];
|
||||
return this.content.gear.flat[item.key];
|
||||
}
|
||||
|
||||
return contentItem;
|
||||
if (item.type === 'quests') {
|
||||
const questScroll = {};
|
||||
Object.assign(questScroll, this.content.quests[item.key]);
|
||||
questScroll.type = 'quests';
|
||||
questScroll.text = item.text();
|
||||
questScroll.onlyOwner = item.onlyOwner;
|
||||
return questScroll;
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<template>
|
||||
<div class="quest-content">
|
||||
<div
|
||||
<Sprite
|
||||
class="quest-image"
|
||||
:class="item.purchaseType === 'bundles' ? `quest_bundle_${item.key}` : `quest_${item.key}`"
|
||||
></div>
|
||||
:image-name="item.purchaseType === 'bundles'
|
||||
? `quest_bundle_${item.key}` : `quest_${item.key}`"
|
||||
/>
|
||||
<h3 class="text-center">
|
||||
{{ itemText }}
|
||||
</h3>
|
||||
@@ -40,6 +41,7 @@
|
||||
margin: 0 auto;
|
||||
margin-bottom: 16px;
|
||||
margin-top: 24px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.leader-label {
|
||||
@@ -67,11 +69,13 @@
|
||||
<script>
|
||||
import QuestInfo from './questInfo.vue';
|
||||
import UserLabel from '../../userLabel';
|
||||
import Sprite from '../../ui/sprite';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
UserLabel,
|
||||
QuestInfo,
|
||||
Sprite,
|
||||
},
|
||||
props: {
|
||||
item: {
|
||||
|
||||
@@ -1,228 +1,204 @@
|
||||
<template>
|
||||
<div class="group-plan-static text-center">
|
||||
<amazon-payments-modal />
|
||||
<div class="container">
|
||||
<div class="row top">
|
||||
<div>
|
||||
<group-plan-creation-modal />
|
||||
<div class="d-flex justify-content-center">
|
||||
<div
|
||||
class="group-plan-page text-center"
|
||||
:class="{ static: isStaticPage }"
|
||||
>
|
||||
<div class="top-left"></div>
|
||||
<div class="col-6 offset-3">
|
||||
<div class="col-6 offset-3 mb-100">
|
||||
<img
|
||||
class="party"
|
||||
src="../../assets/images/group-plans-static/party@3x.png"
|
||||
>
|
||||
<h1>{{ $t('groupPlanTitle') }}</h1>
|
||||
<p>{{ $t('groupPlanDesc') }}</p>
|
||||
<div class="pricing">
|
||||
<h1 class="mt-5" v-if="upgradingGroup._id">{{ $t('upgradeYourCrew') }}</h1>
|
||||
<h1 class="mt-5" v-else>{{ $t('groupPlanTitle') }}</h1>
|
||||
<p class="mb-0">{{ $t('groupPlanDesc') }}</p>
|
||||
<div class="pricing mt-5">
|
||||
<span>Just</span>
|
||||
<span class="number">$9</span>
|
||||
<span class="bold">per month +</span>
|
||||
<span class="number">$3</span>
|
||||
<span class="bold">per member*</span>
|
||||
<span class="bold">per additional member*</span>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<button
|
||||
class="btn btn-primary cta-button"
|
||||
class="btn btn-primary cta-button white mt-4 mb-3"
|
||||
@click="goToNewGroupPage()"
|
||||
>
|
||||
{{ $t('getStarted') }}
|
||||
</button>
|
||||
</div>
|
||||
<small>{{ $t('billedMonthly') }}</small>
|
||||
<p class="gray-200">{{ $t('billedMonthly') }}</p>
|
||||
</div>
|
||||
<div class="top-right"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="text-col col-12 col-md-6 text-left">
|
||||
<h2>{{ $t('teamBasedTasksList') }}</h2>
|
||||
<p>{{ $t('teamBasedTasksListDesc') }}</p>
|
||||
<div class="d-flex justify-content-between align-items-middle w-100 gap-72 mb-100">
|
||||
<div class="ml-auto my-auto w-448 text-left">
|
||||
<h2 class="mt-0">{{ $t('teamBasedTasksList') }}</h2>
|
||||
<p>{{ $t('teamBasedTasksListDesc') }}</p>
|
||||
</div>
|
||||
<div class="mr-auto my-auto">
|
||||
<img src="../../assets/images/group-plans-static/group-management@3x.png">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<div
|
||||
class="team-based"
|
||||
v-html="svg.teamBased"
|
||||
></div>
|
||||
<div class="d-flex justify-content-between align-items-middle w-100 gap-72 mb-100">
|
||||
<div class="ml-auto my-auto">
|
||||
<img src="../../assets/images/group-plans-static/team-based@3x.png">
|
||||
</div>
|
||||
<div class="mr-auto my-auto w-448 text-left">
|
||||
<h2 class="mt-0">{{ $t('groupManagementControls') }}</h2>
|
||||
<p>{{ $t('groupManagementControlsDesc') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<div
|
||||
class="group-management"
|
||||
v-html="svg.groupManagement"
|
||||
></div>
|
||||
</div>
|
||||
<div class="text-col col-12 col-md-6 text-left">
|
||||
<h2>{{ $t('groupManagementControls') }}</h2>
|
||||
<p>{{ $t('groupManagementControlsDesc') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6 offset-md-3 text-center">
|
||||
<div class="d-flex flex-column justify-content-center">
|
||||
<img
|
||||
class="big-gem"
|
||||
class="big-gem mb-3 mx-auto"
|
||||
src="../../assets/images/group-plans-static/big-gem@3x.png"
|
||||
>
|
||||
<h2>{{ $t('inGameBenefits') }}</h2>
|
||||
<p>{{ $t('inGameBenefitsDesc') }}</p>
|
||||
<h2 class="mt-3">{{ $t('inGameBenefits') }}</h2>
|
||||
<p class="final-paragraph mx-auto">{{ $t('inGameBenefitsDesc') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="bot-left"></div>
|
||||
<div class="col-6 offset-3">
|
||||
<h2 class="purple">
|
||||
{{ $t('inspireYourParty') }}
|
||||
</h2>
|
||||
<div class="pricing">
|
||||
<span>Just</span>
|
||||
<span class="number">$9</span>
|
||||
<span class="bold">per month +</span>
|
||||
<span class="number">$3</span>
|
||||
<span class="bold">per member*</span>
|
||||
<div class="text-center mb-128">
|
||||
<div class="bot-left"></div>
|
||||
<div class="col-6 offset-3">
|
||||
<h2 class="purple-300 mt-0 mb-4" v-if="upgradingGroup._id">
|
||||
{{ $t('readyToUpgrade') }}
|
||||
</h2>
|
||||
<h2 v-else class="purple-300 mt-0 mb-4">
|
||||
{{ $t('createGroupToday') }}
|
||||
</h2>
|
||||
<div class="pricing mb-4">
|
||||
<span>Just</span>
|
||||
<span class="number">$9</span>
|
||||
<span class="bold">per month +</span>
|
||||
<span class="number">$3</span>
|
||||
<span class="bold">per member*</span>
|
||||
</div>
|
||||
<div class="text-center mb-3">
|
||||
<button
|
||||
class="btn btn-primary cta-button white"
|
||||
@click="goToNewGroupPage()"
|
||||
>
|
||||
{{ $t('getStarted') }}
|
||||
</button>
|
||||
</div>
|
||||
<p class="gray-200">{{ $t('billedMonthly') }}</p>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<button
|
||||
class="btn btn-primary cta-button"
|
||||
@click="goToNewGroupPage()"
|
||||
>
|
||||
{{ $t('getStarted') }}
|
||||
</button>
|
||||
</div>
|
||||
<small>{{ $t('billedMonthly') }}</small>
|
||||
<div class="bot-right"></div>
|
||||
</div>
|
||||
<div class="bot-right"></div>
|
||||
<b-modal
|
||||
id="group-plan"
|
||||
title
|
||||
size="md"
|
||||
:hide-footer="true"
|
||||
:hide-header="true"
|
||||
>
|
||||
<div>
|
||||
<h2>{{ $t('letsMakeAccount') }}</h2>
|
||||
<auth-form @authenticate="authenticate()" />
|
||||
</div>
|
||||
</b-modal>
|
||||
</div>
|
||||
</div>
|
||||
<b-modal
|
||||
id="group-plan"
|
||||
title
|
||||
size="md"
|
||||
:hide-footer="true"
|
||||
:hide-header="true"
|
||||
<div
|
||||
class="bottom-banner text-center"
|
||||
:class="{ static: isStaticPage }"
|
||||
>
|
||||
<div v-if="modalPage === 'account'">
|
||||
<h2>{{ $t('letsMakeAccount') }}</h2>
|
||||
<auth-form @authenticate="authenticate()" />
|
||||
</div>
|
||||
<div v-if="modalPage === 'purchaseGroup'">
|
||||
<create-group-modal-pages />
|
||||
</div>
|
||||
</b-modal>
|
||||
<h2 class="white">{{ $t('interestedLearningMore') }}</h2>
|
||||
<p class="purple-600" v-html="$t('checkGroupPlanFAQ')"></p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang='scss'>
|
||||
.bottom-banner > .purple-600 {
|
||||
color: #D5C8FF !important;
|
||||
|
||||
a {
|
||||
color: #D5C8FF;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
@import url('https://fonts.googleapis.com/css?family=Varela+Round');
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
// General typography tweaks
|
||||
|
||||
h1, h2 {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.party {
|
||||
width: 386px;
|
||||
margin-top: 4em;
|
||||
}
|
||||
|
||||
.team-based {
|
||||
background-image: url('../../assets/images/group-plans-static/group-management@3x.png');
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
height: 356px;
|
||||
width: 411px;
|
||||
margin-top: -2em;
|
||||
}
|
||||
|
||||
.group-management {
|
||||
background-image: url('../../assets/images/group-plans-static/team-based@3x.png');
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
height: 294px;
|
||||
width: 411px;
|
||||
}
|
||||
|
||||
.top-left, .top-right, .bot-left, .bot-right {
|
||||
width: 273px;
|
||||
height: 396px;
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.top-left {
|
||||
background-image: url('../../assets/images/group-plans-static/top-left@3x.png');
|
||||
left: 4em;
|
||||
height: 420px;
|
||||
}
|
||||
|
||||
.top-right {
|
||||
background-image: url('../../assets/images/group-plans-static/top-right@3x.png');
|
||||
right: 4em;
|
||||
height: 420px;
|
||||
}
|
||||
|
||||
.bot-left {
|
||||
background-image: url('../../assets/images/group-plans-static/bot-left@3x.png');
|
||||
left: 4em;
|
||||
bottom: 1em;
|
||||
}
|
||||
|
||||
.bot-right {
|
||||
background-image: url('../../assets/images/group-plans-static/bot-right@3x.png');
|
||||
right: 4em;
|
||||
bottom: 1em;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 42px;
|
||||
color: #34313a;
|
||||
line-height: 1.17;
|
||||
color: $purple-300;
|
||||
font-size: 48px;
|
||||
line-height: 56px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 29px;
|
||||
color: #34313a;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.purple {
|
||||
color: #6133b4;
|
||||
color: $gray-50;
|
||||
font-size: 32px;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
p {
|
||||
color: $gray-100;
|
||||
font-size: 20px;
|
||||
color: #878190;
|
||||
line-height: 28px;
|
||||
}
|
||||
|
||||
.group-plan-static {
|
||||
margin-top: 6em;
|
||||
position: relative;
|
||||
}
|
||||
// Major layout elements
|
||||
|
||||
.row {
|
||||
margin-top: 10em;
|
||||
margin-bottom: 10em;
|
||||
}
|
||||
.bottom-banner {
|
||||
height: 152px;
|
||||
background-image: linear-gradient(rgba(97, 51, 180), rgba(79, 42, 147));
|
||||
padding-top: 32px;
|
||||
width: 100vw;
|
||||
|
||||
.text-col {
|
||||
margin-top: 3em;
|
||||
}
|
||||
&.static {
|
||||
padding-top: 16px;
|
||||
}
|
||||
|
||||
.big-gem {
|
||||
width: 138.5px;
|
||||
&:not(.static) {
|
||||
margin-left: -12px;
|
||||
}
|
||||
}
|
||||
|
||||
.cta-button {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
padding: 1em 2em;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
border-radius: 4px;
|
||||
background-color: #6133b4;
|
||||
border-radius: 8px;
|
||||
background-color: $purple-300;
|
||||
box-shadow: inset 0 -4px 0 0 rgba(52, 49, 58, 0.4);
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
line-height: 28px;
|
||||
|
||||
&.btn-primary:hover {
|
||||
background-color: $purple-400;
|
||||
}
|
||||
}
|
||||
|
||||
.final-paragraph {
|
||||
width: 684px;
|
||||
margin-bottom: 11rem;
|
||||
}
|
||||
|
||||
.group-plan-page {
|
||||
max-width: 1440px;
|
||||
position: relative;
|
||||
|
||||
&.static {
|
||||
margin-top: 56px;
|
||||
}
|
||||
}
|
||||
|
||||
.pricing {
|
||||
color: #878190;
|
||||
color: $gray-100;
|
||||
font-size: 24px;
|
||||
|
||||
span {
|
||||
@@ -234,40 +210,103 @@
|
||||
}
|
||||
|
||||
.number {
|
||||
color: #1ca372;
|
||||
color: $green-10;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 16px;
|
||||
color: #a5a1ac;
|
||||
// One-off spacing adjustments
|
||||
|
||||
.gap-72 {
|
||||
gap: 72px;
|
||||
}
|
||||
|
||||
.mb-100 {
|
||||
margin-bottom: 100px !important;
|
||||
}
|
||||
|
||||
.mb-128 {
|
||||
margin-bottom: 128px !important;
|
||||
}
|
||||
|
||||
.w-448 {
|
||||
width: 448px;
|
||||
}
|
||||
|
||||
// Images
|
||||
|
||||
.big-gem {
|
||||
width: 138.5px;
|
||||
}
|
||||
|
||||
.bot-left, .bot-right, .top-left, .top-right {
|
||||
width: 246px;
|
||||
height: 340px;
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.bot-left {
|
||||
background-image: url('../../assets/images/group-plans-static/bot-left@3x.png');
|
||||
left: 48px;
|
||||
bottom: 48px;
|
||||
}
|
||||
|
||||
.bot-right {
|
||||
background-image: url('../../assets/images/group-plans-static/bot-right@3x.png');
|
||||
right: 48px;
|
||||
bottom: 48px;
|
||||
}
|
||||
|
||||
.party {
|
||||
width: 386px;
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
.top-left {
|
||||
background-image: url('../../assets/images/group-plans-static/top-left@3x.png');
|
||||
top: 48px;
|
||||
left: 48px;
|
||||
}
|
||||
|
||||
.top-right {
|
||||
background-image: url('../../assets/images/group-plans-static/top-right@3x.png');
|
||||
right: 48px;
|
||||
top: 48px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import { setup as setupPayments } from '@/libs/payments';
|
||||
import amazonPaymentsModal from '@/components/payments/amazonModal';
|
||||
import paymentsMixin from '../../mixins/payments';
|
||||
import AuthForm from '../auth/authForm.vue';
|
||||
import CreateGroupModalPages from '../group-plans/createGroupModalPages.vue';
|
||||
|
||||
import party from '../../assets/images/group-plans-static/party.svg';
|
||||
import GroupPlanCreationModal from '../group-plans/groupPlanCreationModal.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
AuthForm,
|
||||
CreateGroupModalPages,
|
||||
amazonPaymentsModal,
|
||||
GroupPlanCreationModal,
|
||||
},
|
||||
mixins: [paymentsMixin],
|
||||
data () {
|
||||
return {
|
||||
svg: {
|
||||
party,
|
||||
},
|
||||
modalTitle: this.$t('register'),
|
||||
modalOption: '',
|
||||
modalPage: 'account',
|
||||
modalTitle: this.$t('register'),
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
isStaticPage () {
|
||||
return this.$route.meta.requiresLogin === false;
|
||||
},
|
||||
upgradingGroup () {
|
||||
return this.$store.state.upgradingGroup;
|
||||
},
|
||||
user () {
|
||||
return this.$store.state.user?.data;
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.$nextTick(() => {
|
||||
// Load external scripts after the app has been rendered
|
||||
@@ -278,11 +317,19 @@ export default {
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
goToNewGroupPage () {
|
||||
this.$root.$emit('bv::show::modal', 'group-plan');
|
||||
},
|
||||
authenticate () {
|
||||
this.modalPage = 'purchaseGroup';
|
||||
this.$root.$emit('bv::hide::modal', 'group-plan');
|
||||
this.$root.$emit('bv::show::modal', 'create-group');
|
||||
},
|
||||
goToNewGroupPage () {
|
||||
if (this.isStaticPage && !this.user) {
|
||||
this.modalOption = 'static';
|
||||
return this.$root.$emit('bv::show::modal', 'group-plan');
|
||||
}
|
||||
if (this.upgradingGroup._id) {
|
||||
return this.stripeGroup({ group: this.upgradingGroup, upgrade: true });
|
||||
}
|
||||
return this.$root.$emit('bv::show::modal', 'create-group');
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -784,6 +784,7 @@ import debounce from 'lodash/debounce';
|
||||
import isEmail from 'validator/es/lib/isEmail';
|
||||
import { MINIMUM_PASSWORD_LENGTH } from '@/../../common/script/constants';
|
||||
import { buildAppleAuthUrl } from '../../libs/auth';
|
||||
import sanitizeRedirect from '@/mixins/sanitizeRedirect';
|
||||
import googlePlay from '@/assets/images/home/google-play-badge.svg';
|
||||
import iosAppStore from '@/assets/images/home/ios-app-store.svg';
|
||||
import iphones from '@/assets/images/home/iphones.svg';
|
||||
@@ -804,6 +805,7 @@ import makeuseof from '@/assets/images/home/make-use-of.svg';
|
||||
import thenewyorktimes from '@/assets/images/home/the-new-york-times.svg';
|
||||
|
||||
export default {
|
||||
mixins: [sanitizeRedirect],
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
@@ -923,7 +925,9 @@ export default {
|
||||
groupInvite,
|
||||
});
|
||||
|
||||
window.location.href = this.$route.query.redirectTo || '/';
|
||||
const redirect = this.sanitizeRedirect(this.$route.query.redirectTo);
|
||||
|
||||
window.location.href = redirect;
|
||||
},
|
||||
playButtonClick () {
|
||||
this.$router.push('/register');
|
||||
|
||||
@@ -8,7 +8,10 @@
|
||||
'white-header': $route.name === 'plans'
|
||||
}"
|
||||
/>
|
||||
<div class="static-wrapper">
|
||||
<div
|
||||
class="static-wrapper"
|
||||
:class="{ 'groups-bg': $route.name === 'groupPlans' }"
|
||||
>
|
||||
<router-view />
|
||||
</div>
|
||||
<div
|
||||
@@ -205,6 +208,13 @@
|
||||
.strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&.groups-bg {
|
||||
background-color: $white;
|
||||
background-image: url('../../assets/images/group-plans-static/top.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position-y: 56px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import { mapState } from '@/libs/store';
|
||||
import encodeParams from '@/libs/encodeParams';
|
||||
import notificationsMixin from '@/mixins/notifications';
|
||||
import { CONSTANTS, setLocalSetting } from '@/libs/userlocalManager';
|
||||
import * as Analytics from '@/libs/analytics';
|
||||
|
||||
const STRIPE_PUB_KEY = process.env.STRIPE_PUB_KEY;
|
||||
|
||||
@@ -198,6 +199,16 @@ export default {
|
||||
alert(`Error while redirecting to Stripe: ${checkoutSessionResult.error.message}`);
|
||||
throw checkoutSessionResult.error;
|
||||
}
|
||||
if (paymentType === 'groupPlan') {
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventName: 'group plan create',
|
||||
eventAction: 'group plan create',
|
||||
eventCategory: 'behavior',
|
||||
demographics: appState.newGroup.demographics,
|
||||
type: appState.newGroup.type,
|
||||
}, { trackOnClient: true });
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Error while redirecting to Stripe', err); // eslint-disable-line
|
||||
alert(`Error while redirecting to Stripe: ${err.message}`);
|
||||
@@ -370,5 +381,20 @@ export default {
|
||||
window.alert(e.response.data.message); // eslint-disable-line no-alert
|
||||
}
|
||||
},
|
||||
stripeGroup (options = { group: {}, upgrade: false }) {
|
||||
const paymentData = {
|
||||
subscription: 'group_monthly',
|
||||
coupon: null,
|
||||
};
|
||||
|
||||
if (options.upgrade && options.group._id) {
|
||||
paymentData.groupId = options.group._id;
|
||||
paymentData.group = options.group;
|
||||
} else {
|
||||
paymentData.groupToCreate = options.group;
|
||||
}
|
||||
|
||||
this.redirectToStripe(paymentData);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
export default {
|
||||
methods: {
|
||||
sanitizeRedirect (redirect) {
|
||||
if (!redirect) {
|
||||
return '/';
|
||||
}
|
||||
if (process.env.TRUSTED_DOMAINS.split(',').includes(redirect)) {
|
||||
return redirect;
|
||||
}
|
||||
if (redirect.slice(0, 1) !== '/' || redirect.slice(1, 1) === '/') {
|
||||
return '/';
|
||||
}
|
||||
return redirect;
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -24,7 +24,7 @@
|
||||
<app-menu />
|
||||
<div
|
||||
class="container-fluid"
|
||||
:class="{'no-margin': noMargin}"
|
||||
:class="{'no-margin': noMargin, 'groups-background': $route.fullPath === '/group-plans' }"
|
||||
>
|
||||
<app-header />
|
||||
<buyModal
|
||||
@@ -67,6 +67,12 @@
|
||||
|
||||
.container-fluid {
|
||||
flex: 1 0 auto;
|
||||
|
||||
&.groups-background {
|
||||
background-color: white;
|
||||
background-image: url('../assets/images/group-plans-static/top.svg');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
.no-margin {
|
||||
|
||||
@@ -37,15 +37,6 @@ export default function handleRedirect (to, from, next) {
|
||||
|
||||
const newGroup = newAppState.group;
|
||||
if (newGroup && newGroup._id) {
|
||||
// Handle new user signup
|
||||
if (newAppState.newSignup === true) {
|
||||
return next({
|
||||
name: 'groupPlanDetailTaskInformation',
|
||||
params: { groupId: newGroup._id },
|
||||
query: { showGroupOverview: 'true' },
|
||||
});
|
||||
}
|
||||
|
||||
return next({
|
||||
name: 'groupPlanDetailTaskInformation',
|
||||
params: { groupId: newGroup._id },
|
||||
|
||||
@@ -41,7 +41,7 @@ const StablePage = () => import(/* webpackChunkName: "inventory" */'@/components
|
||||
|
||||
// Guilds & Parties
|
||||
const GroupPage = () => import(/* webpackChunkName: "guilds" */ '@/components/groups/group');
|
||||
const GroupPlansAppPage = () => import(/* webpackChunkName: "guilds" */ '@/components/groups/groupPlan');
|
||||
const GroupPlansAppPage = () => import(/* webpackChunkName: "guilds" */ '@/components/static/groupPlans');
|
||||
const LookingForParty = () => import(/* webpackChunkName: "guilds" */ '@/components/groups/lookingForParty');
|
||||
|
||||
// Group Plans
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"communityGuidelinesWarning": "Имайте предвид, че екранното Ви име, профилната снимка и информацията за Вас трябва да отговорят на <a href='https://habitica.com/static/community-guidelines' target='_blank'>Обществените правила</a> (тоест без ругатни, съдържание за възрастни, обиди и т.н.). Ако имате въпроси относно това дали нещо е подходящо или не, можете да пишете на <%= hrefBlankCommunityManagerEmail %>!",
|
||||
"profile": "Профил",
|
||||
"avatar": "Персонализиране на героя",
|
||||
"editAvatar": "Редактиране на героя",
|
||||
"editAvatar": "Редактиране на Героя",
|
||||
"noDescription": "Този хабитиканец не е добавил описание.",
|
||||
"noPhoto": "Този хабитиканец не е добавил снимка.",
|
||||
"other": "Други",
|
||||
@@ -187,5 +187,12 @@
|
||||
"purchasePetItemConfirm": "Тази покупка би надвишила броя на предметите, които са ви нужни за да излюпите всички възможни <%= itemText %> любимци. Сигурни ли сте?",
|
||||
"purchaseForGold": "Купуване за <%= cost %> Злато?",
|
||||
"notEnoughGold": "Недостатъчно злато.",
|
||||
"nextReward": "Следваща награда при влизане"
|
||||
"nextReward": "Следваща награда при влизане",
|
||||
"skins": "Кожи",
|
||||
"titleHaircolor": "Цвят на коса",
|
||||
"titleHairbase": "Прически",
|
||||
"titleFacialHair": "Окосмяване",
|
||||
"customizations": "Персонализации",
|
||||
"chatCastSpellPartyTimes": "<%= username %> използва заклинанието <%= spell %> върху групата <%= times %> пъти.",
|
||||
"chatCastSpellUserTimes": "<%= username %> използва заклинанието <%= spell %> върху <%= target %> <%= times %> пъти."
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"dontDespair": "Не се отчайвайте!",
|
||||
"deathPenaltyDetails": "Изгубихте ниво, всичкото си злато и един предмет от екипировката, но можете да си ги върнете с усърдна работа! Късмет — ще се справите.",
|
||||
"refillHealthTryAgain": "Възстановете здравето си и опитайте отново",
|
||||
"dyingOftenTips": "Това често ли Ви се случва? <a href='http://habitica.fandom.com/wiki/Death_Mechanics#Strategies_for_Staying_Alive' target='_blank'>Ето няколко съвета!</a>",
|
||||
"dyingOftenTips": "Това често ли Ви се случва? <a href='https://habitica.fandom.com/wiki/Death_Mechanics#Strategies_for_Staying_Alive' target='_blank'>Ето няколко съвета!</a>",
|
||||
"losingHealthWarning": "Внимавайте — губите здраве!",
|
||||
"losingHealthWarning2": "Не позволявайте на здравето Ви да спадне до 0! Ако това се случи, ще загубите ниво, златото си и един предмет от екипировката.",
|
||||
"toRegainHealth": "За да възстановите здраве:",
|
||||
@@ -14,4 +14,4 @@
|
||||
"lowHealthTips4": "Ако някоя ежедневна задача не трябва да бъде изпълнявана в определен ден, може да я изключите като натиснете иконката с молива.",
|
||||
"goodLuck": "Късмет!",
|
||||
"cannotRevive": "Само умрелите могат да бъдат съживявани"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,5 +4,7 @@
|
||||
"eggsItemType": "Яйца",
|
||||
"hatchingPotionsItemType": "Излюпващи Отвари",
|
||||
"specialItemType": "Специални предмети",
|
||||
"lockedItem": "Заключен Предмет"
|
||||
"lockedItem": "Заключен Предмет",
|
||||
"petAndMount": "Конюшня",
|
||||
"allItems": "Всички предмети"
|
||||
}
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"unlockedReward": "Получихте <%= reward %>",
|
||||
"earnedRewardForDevotion": "Получихте <%= reward %> за усърдието си в подобряването на живота си.",
|
||||
"nextRewardUnlocksIn": "Брой отчитания до следващата награда: <%= numberOfCheckinsLeft %>",
|
||||
"awesome": "Страхотно!",
|
||||
"countLeft": "Брой отчитания до следващата награда: <%= count %>",
|
||||
"incentivesDescription": "Когато става въпрос за изграждане на навици, ключът е в постоянството. Всеки ден, в който се отчетете, Ви доближава до наградата.",
|
||||
"checkinEarned": "Броячът на отчитанията Ви се увеличи!",
|
||||
"unlockedCheckInReward": "Отключихте награда за отчитане!",
|
||||
"checkinProgressTitle": "Напредък до следващата награда",
|
||||
"incentiveBackgroundsUnlockedWithCheckins": "Заключените едноцветни фонови изображения ще се отключат чрез ежедневните Ви отчитания.",
|
||||
"oneOfAllPetEggs": "по един брой от всяко обикновено яйце за любимец",
|
||||
"twoOfAllPetEggs": "по два броя от всяко обикновено яйце за любимец",
|
||||
"threeOfAllPetEggs": "по три броя от всяко обикновено яйце за любимец",
|
||||
"oneOfAllHatchingPotions": "по един брой от всяка обикновена излюпваща отвара",
|
||||
"threeOfEachFood": "по три броя от всяка обикновена храна за любимци",
|
||||
"fourOfEachFood": "по четири броя от всяка обикновена храна за любимци",
|
||||
"twoSaddles": "две седла",
|
||||
"threeSaddles": "три седла",
|
||||
"incentiveAchievement": "постижението „Царствена преданост“",
|
||||
"royallyLoyal": "Царствена преданост",
|
||||
"royallyLoyalText": "Потребителят се е отчел 500 пъти и е получил всички възможни награди за това!",
|
||||
"checkInRewards": "Награди за отчитане",
|
||||
"backloggedCheckInRewards": "Получихте награди за отчитане! Отворете инвентара и екипировката си, за да видите новите неща."
|
||||
"unlockedReward": "Получихте <%= reward %>",
|
||||
"earnedRewardForDevotion": "Получихте <%= reward %> за усърдието си в подобряването на живота си.",
|
||||
"nextRewardUnlocksIn": "Брой отчитания до следващата награда: <%= numberOfCheckinsLeft %>",
|
||||
"awesome": "Страхотно!",
|
||||
"countLeft": "Брой отчитания до следващата награда: <%= count %>",
|
||||
"incentivesDescription": "Когато става въпрос за изграждане на навици, ключът е в постоянството. Всеки ден, в който се отчетете, Ви доближава до наградата.",
|
||||
"checkinEarned": "Броячът на отчитанията Ви се увеличи!",
|
||||
"unlockedCheckInReward": "Отключихте награда за отчитане!",
|
||||
"checkinProgressTitle": "Напредък до следващата награда",
|
||||
"incentiveBackgroundsUnlockedWithCheckins": "Повече фонови изображения ще се отключат чрез ежедневните Ви отчитания.",
|
||||
"oneOfAllPetEggs": "по един брой от всяко обикновено яйце за любимец",
|
||||
"twoOfAllPetEggs": "по два броя от всяко обикновено яйце за любимец",
|
||||
"threeOfAllPetEggs": "по три броя от всяко обикновено яйце за любимец",
|
||||
"oneOfAllHatchingPotions": "по един брой от всяка обикновена излюпваща отвара",
|
||||
"threeOfEachFood": "по три броя от всяка обикновена храна за любимци",
|
||||
"fourOfEachFood": "по четири броя от всяка обикновена храна за любимци",
|
||||
"twoSaddles": "две седла",
|
||||
"threeSaddles": "три седла",
|
||||
"incentiveAchievement": "постижението „Царствена преданост“",
|
||||
"royallyLoyal": "Царствена преданост",
|
||||
"royallyLoyalText": "Потребителят се е отчел 500 пъти и е получил всички възможни награди за това!",
|
||||
"checkInRewards": "Награди за отчитане",
|
||||
"backloggedCheckInRewards": "Получихте награди за отчитане! Отворете инвентара и екипировката си, за да видите новите неща."
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"needTips": "Имате нужда от съвети как да започнете? Ето кратко ръководство!",
|
||||
"step1": "Стъпка 1: Въведете задачите си",
|
||||
"webStep1Text": "Хабитика трябва да знае какви са истинските Ви цели, затова въведете няколко задачи за изпълнение. Винаги можете да добавите още по-късно, като натиснете бутона „Създаване“.\n * **Създаване на [задачи за изпълнение](http://habitica.fandom.com/wiki/To-Dos):** Въведете задачите, които трябва да свършите веднъж, или които се вършат много рядко, в колоната за задачи, една по една. След това можете да щракнете моливчето и да ги редактирате, като добавите списък от подзадачи, крайна дата и още!\n * **Създаване на [ежедневни задачи](http://habitica.fandom.com/wiki/Dailies):** Въведете дейностите, които трябва да вършите всекидневно или в един и същ ден всяка седмица, в колоната с ежедневни. Щракнете върху задача, за да редактирате дните от седмицата, през които въпросната задача трябва да се върши. Можете също да изискате изпълнението ѝ на определен период, например на всеки 3 дни.\n * **Създаване на [навици](http://habitica.fandom.com/wiki/Habits):** Въведете навиците, които искате да си създадете, в колоната с навици. Може да настроите дали навикът е добър :heavy_plus_sign: или лош :heavy_minus_sign:.\n * **Създаване на [награди](http://habitica.fandom.com/wiki/Rewards):** Освен наградите, предлагани от самата игра, можете да добавите различни дейности или примамливи неща, които да използвате като мотивация, в колоната с награди. Почивката и удоволствията също са важни!\n* Ако имате нужда от малко вдъхновение, можете да разгледате страниците в уикито с [примерни навици](http://habitica.fandom.com/wiki/Sample_Habits), [примерни ежедневни задачи](http://habitica.fandom.com/wiki/Sample_Dailies), [примерни задачи за изпълнение](http://habitica.fandom.com/wiki/Sample_To-Dos), и [примерни награди](http://habitica.fandom.com/wiki/Sample_Custom_Rewards).",
|
||||
"webStep1Text": "Хабитика трябва да знае какви са истинските Ви цели, затова въведете няколко задачи за изпълнение. Винаги можете да добавите още по-късно, като натиснете бутона „Създаване“.\n * **Създаване на [задачи за изпълнение](https://habitica.fandom.com/wiki/To_Do%27s):** Въведете задачите, които трябва да свършите веднъж, или които се вършат много рядко, в колоната за задачи, една по една. След това можете да щракнете моливчето и да ги редактирате, като добавите списък от подзадачи, крайна дата и още!\n * **Създаване на [ежедневни задачи](https://habitica.fandom.com/wiki/Dailies):** Въведете дейностите, които трябва да вършите всекидневно или в един и същ ден всяка седмица, в колоната с ежедневни. Щракнете върху задача, за да редактирате дните от седмицата, през които въпросната задача трябва да се върши. Можете също да изискате изпълнението ѝ на определен период, например на всеки 3 дни.\n * **Създаване на [навици](https://habitica.fandom.com/wiki/Habits):** Въведете навиците, които искате да си създадете, в колоната с навици. Може да настроите дали навикът е добър :heavy_plus_sign: или лош :heavy_minus_sign:.\n * **Създаване на [награди](https://habitica.fandom.com/wiki/Rewards):** Освен наградите, предлагани от самата игра, можете да добавите различни дейности или примамливи неща, които да използвате като мотивация, в колоната с награди. Почивката и удоволствията също са важни!\n* Ако имате нужда от малко вдъхновение, можете да разгледате страниците в уикито с [примерни навици](https://habitica.fandom.com/wiki/Sample_Habits), [примерни ежедневни задачи](https://habitica.fandom.com/wiki/Sample_Dailies), [примерни задачи за изпълнение](https://habitica.fandom.com/wiki/Sample_To-Do%27s), и [примерни награди](https://habitica.fandom.com/wiki/Sample_Custom_Rewards).",
|
||||
"step2": "Стъпка 2: Печелете точки като вършите неща в истинския живот",
|
||||
"webStep2Text": "А сега започнете да преследвате целите си от списъка! Когато завършвате задачи и ги отмятате в Хабитика, ще получавате [опит](http://habitica.fandom.com/wiki/Experience_Points), чрез който качвате ниво и [злато](http://habitica.fandom.com/wiki/Gold_Points), с което можете да си купувате награди. Ако се поддадете на лош навик или пропуснете ежедневна задача, ще загубите [здраве](http://habitica.fandom.com/wiki/Health_Points). Така лентите за опит и здраве представляват своеобразен показател за напредъка към целите Ви. Подобрявайки истинския си живот, Вашият герой в играта ще напредва.",
|
||||
"webStep2Text": "А сега започнете да преследвате целите си от списъка! Когато завършвате задачи и ги отмятате в Хабитика, ще получавате [опит](https://habitica.fandom.com/wiki/Experience_Points), чрез който качвате ниво и [злато](https://habitica.fandom.com/wiki/Gold_Points), с което можете да си купувате награди. Ако се поддадете на лош навик или пропуснете ежедневна задача, ще загубите [здраве](https://habitica.fandom.com/wiki/Health_Points). Така лентите за опит и здраве представляват своеобразен показател за напредъка към целите Ви. Подобрявайки истинския си живот, Вашият герой в играта ще напредва.",
|
||||
"step3": "Стъпка 3: Персонализирайте и изследвайте Хабитика",
|
||||
"webStep3Text": "След като свикнете с нещата, ще можете да се забавлявате още повече с Хабитика, с тези интересни функционалности:\n * Организирайте Задачите си с [етикети](http://habitica.fandom.com/wiki/Tags) (етикетите се добавят в прозорчето за редактиране на Задача);\n * Персонализирайте [Героя](http://habitica.fandom.com/wiki/Avatar) си, като натиснете потребителската иконка в горния десен ъгъл;\n * Купете си [екипировка](http://habitica.fandom.com/wiki/Equipment) от колоната с награди или от [магазините](<%= shopUrl %>) и екипирайте героя си с нея в [Инвентар > Екипировка](<%= equipUrl %>);\n * Свържете се с други потребители посредством [кръчмата](http://habitica.fandom.com/wiki/Tavern);\n * Излюпване на [любимци](http://habitica.fandom.com/wiki/Pets) като събирате [Яйца](http://habitica.fandom.com/wiki/Eggs) и [Излюпващи Отвари](http://habitica.fandom.com/wiki/Hatching_Potions). [Хранете](http://habitica.fandom.com/wiki/Food) ги, за да се превърнат в [превози](http://habitica.fandom.com/wiki/Mounts);\n * След като достигнете ниво 10, ще можете да изберете [Клас](http://habitica.fandom.com/wiki/Class_System) и да използвате Класово-специфични [умения](http://habitica.fandom.com/wiki/Skills) (нива 11 до 14);\n * Сформирайте Група с приятелите си от [Група](<%= partyUrl %>), за да се държите отговорни взаимно и да получите свитък с мисия;\n * Побеждавайте чудовища и събирайте предмети от [Мисии](http://habitica.fandom.com/wiki/Quests) (ще получите мисия, когато достигнете ниво 15).",
|
||||
"overviewQuestions": "Имате въпрос? Вижте нашите [ЧЗВ](<%= faqUrl %>)! Ако не намирате въпроса си там, можете да ни попитате за помощ в [Помощната гилдия на Хабитика](<%= helpGuildUrl %>).\n\nУспех със задачите Ви!"
|
||||
"webStep3Text": "След като свикнете с нещата, ще можете да се забавлявате още повече с Хабитика, с тези интересни функционалности:\n * Организирайте Задачите си с [етикети](https://habitica.fandom.com/wiki/Tags) (етикетите се добавят в прозорчето за редактиране на Задача);\n * Персонализирайте [Героя](https://habitica.fandom.com/wiki/Avatar) си, като натиснете потребителската иконка в горния десен ъгъл;\n * Купете си [екипировка](https://habitica.fandom.com/wiki/Equipment) от колоната с награди или от [магазините](<%= shopUrl %>) и екипирайте героя си с нея в [Инвентар > Екипировка](<%= equipUrl %>);\n * Свържете се с други потребители посредством [Търсене на Група](https://habitica.com/looking-for-party);\n * Излюпване на [любимци](https://habitica.fandom.com/wiki/Pets) като събирате [Яйца](https://habitica.fandom.com/wiki/Eggs) и [Излюпващи Отвари](https://habitica.fandom.com/wiki/Hatching_Potions). [Хранете](https://habitica.fandom.com/wiki/Food) ги, за да се превърнат в [превози](https://habitica.fandom.com/wiki/Mounts);\n * След като достигнете ниво 10, ще можете да изберете [Клас](https://habitica.fandom.com/wiki/Class_System) и да използвате Класово-специфични [умения](https://habitica.fandom.com/wiki/Skills) (нива 11 до 14);\n * Сформирайте Група с приятелите си от [Група](<%= partyUrl %>), за да се държите отговорни взаимно и да получите свитък с мисия;\n * Побеждавайте чудовища и събирайте предмети от [Мисии](https://habitica.fandom.com/wiki/Quests) (ще получите мисия, когато достигнете ниво 15).",
|
||||
"overviewQuestions": "Имате въпрос? Вижте нашите [ЧЗВ](<%= faqUrl %>)! Ако не намирате въпроса си там, можете да ни попитате за помощ в [Помощната гилдия на Хабитика](<%= helpGuildUrl %>).\n\nУспех със задачите Ви!",
|
||||
"overviewQuestionsRevised": "Имате още въпроси? Проверете в <a href='/static/faq'>ЧЗВ</a>!Ако вашият въпрос не е споменат там, можете да поискате допълнителна помощ чрез този формуляр: "
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"rebirthOrb": "Използвал(а) Кълбо на прераждане, за да започне отново след достигане на ниво <%= level %>.",
|
||||
"rebirthOrb100": "Използвал(а) Кълбо на прераждане, за да започне отново след достигане на ниво 100 или по-високо.",
|
||||
"rebirthOrbNoLevel": "Използвал(а) Кълбо на прераждане, за да започне отново.",
|
||||
"rebirthPop": "Рестартиране на героя Ви от ниво 1, запазвайки постиженията, събраните предмети и екипировката. Задачите и историята им ще бъдат запазени, но цветът им ще се промени на жълт. Сериите Ви ще бъдат премахнати, освен задачите, които принадлежат към активните Предизвикателства и Групови Планове. Златото, опитът, маната и ефектите на всички умения ще бъдат премахнати. Всичко това ще бъде извършено на момента. За повече информация вижте страницата в уикито относно <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Кълбото на прераждането</a>.",
|
||||
"rebirthPop": "Рестартиране на героя Ви от ниво 1, запазвайки постиженията, събраните предмети и екипировката. Задачите и историята им ще бъдат запазени, но цветът им ще се промени на жълт. Сериите Ви ще бъдат премахнати, освен задачите, които принадлежат към активните Предизвикателства и Групови Планове. Златото, опитът, маната и ефектите на всички умения ще бъдат премахнати. Всичко това ще бъде извършено на момента.",
|
||||
"rebirthName": "Кълбо за прераждане",
|
||||
"rebirthComplete": "Вие бяхте прероден(а)!",
|
||||
"nextFreeRebirth": "<strong><%= days %> дни</strong> до <strong>БЕЗПЛАТНО</strong> Кълбо на Прераждане"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"spellRogueStealthDaliesAvoided": "<%= originalText %> Брой избегнати ежедневни задачи: <%= number %>.",
|
||||
"spellRogueStealthMaxedOut": "Вие вече сте избегнали всичките си ежедневни задачи. Няма нужда да правите това заклинание отново.",
|
||||
"spellHealerHealText": "Лечебна светлина",
|
||||
"spellHealerHealNotes": "Блестяща светлина възстановява здравето Ви! (Зависи от: ЯКО и ИНТ).",
|
||||
"spellHealerHealNotes": "Блестяща светлина възстановява здравето Ви! (Зависи от: ЯКО и ИНТ)",
|
||||
"spellHealerBrightnessText": "Заслепяваща светлина",
|
||||
"spellHealerBrightnessNotes": "Силна светлина прави задачите Ви по-сини или по-малко червени! (Зависи от: ИНТ)",
|
||||
"spellHealerProtectAuraText": "Защитна аура",
|
||||
@@ -55,5 +55,6 @@
|
||||
"challengeTasksNoCast": "Използването на умения върху задачи от предизвикателства не е позволено.",
|
||||
"groupTasksNoCast": "Използването на умения върху групови задачи не е позволено.",
|
||||
"spellNotOwned": "Не притежавате това умение.",
|
||||
"spellLevelTooHigh": "Трябва да бъдете ниво <%= level %>, за да използвате това умение."
|
||||
}
|
||||
"spellLevelTooHigh": "Трябва да бъдете ниво <%= level %>, за да използвате това умение.",
|
||||
"spellAlreadyCast": "Използването на това умение няма да има допълнителен ефект."
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
"commGuidePara057A": "Manche Beiträge werden eventuell versteckt, da sie persönliche Informationen enthalten oder einen falschen Eindruck erwecken. Normalerweise wird dies nicht als Verstoß gewertet, vor allem nicht beim ersten Mal!",
|
||||
"commGuideHeadingConsequences": "Konsequenzen",
|
||||
"commGuidePara058": "In Habitica hat – wie im echten Leben – jede Handlung eine Konsequenz: man wird fit weil man rennt, bekommt Löcher in den Zähnen weil man zu viel Zucker isst oder besteht eine Prüfung, weil man gelernt hat.",
|
||||
"commGuidePara059": "<strong>Alle Regelverletzungen haben direkte Konsequenzen.</strong> Einige Beispielkonsequenzen sind unten beschrieben.",
|
||||
"commGuidePara059": "<strong>Gemeinschaftsverstöße haben direkte Konsequenzen.</strong> Einige Beispielkonsequenzen sind unten beschrieben.",
|
||||
"commGuidePara060": "<strong>Wenn Deine Verletzung eine mittlere oder schwere Konsequenz hat, wird es einen Beitrag eines Mitarbeiters oder Moderators in dem Forum geben, in dem die Verletzung stattgefunden hat, die erklärt</strong>:",
|
||||
"commGuideList08A": "was Deine Regelverletzung war",
|
||||
"commGuideList08B": "was die Konsequenz ist",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"groupBy": "Gruppieren nach <%= type %>",
|
||||
"classBonus": "(Dieser Gegenstand passt zu Deiner Klasse und erhält deswegen einen zusätzlichen Attributs-Multiplikator von 1,5.)",
|
||||
"classArmor": "Klassen-Rüstung",
|
||||
"featuredset": "Sonderset <%= name %>",
|
||||
"featuredset": "Ausgewähltes Set: <%= name %>",
|
||||
"mysterySets": "Geheimnisvolle Sets",
|
||||
"gearNotOwned": "Du besitzt diesen Gegenstand nicht.",
|
||||
"noGearItemsOfType": "Du besitzt nichts davon.",
|
||||
@@ -2569,7 +2569,7 @@
|
||||
"eyewearMystery202202Text": "Türkise Augen mit Gesichtsröte",
|
||||
"eyewearMystery202202Notes": "Fröhliches Singen bringt Farbe auf Deine Backen. Gewährt keinen Attributbonus. Februar 2022 Abonnentengegenstand",
|
||||
"shieldArmoireSoftVioletPillowNotes": "Der clevere Krieger packt ein Kissen für jede Expedition ein. Beschütze Dich selbst vor durch Prokrastination ausgelöste Panik … selbst während du ein Nickerchen machst. Erhöht Intelligenz um <%= int %>. Verzauberter Schrank: Violettes Loungewear-Set (Gegenstand 3 von 3).",
|
||||
"backMystery202203Text": "Furchtlose Libellenflügel",
|
||||
"backMystery202203Text": "Mutige Libellenflügel",
|
||||
"headAccessoryMystery202203Text": "Furchtloses Libellendiadem",
|
||||
"headAccessoryMystery202203Notes": "Muss es mal besonders schnell gehen? Keine Sorge, die kleinen, ornamentalen Flügel auf diesem Diadem sind kräftiger als sie ausschauen! Gewährt keinen Attributbonus. März 2022 Abonnentengegenstand.",
|
||||
"backMystery202203Notes": "Mit diesen schimmernden Flügeln fliegst Du allen anderen Himmelsgeschöpfen davon. Gewährt keinen Attributbonus. März 2022 Abonnentengegenstand.",
|
||||
@@ -2686,10 +2686,10 @@
|
||||
"weaponArmoirePushBroomText": "Kehrbesen",
|
||||
"weaponArmoireFeatherDusterText": "Staubwedel",
|
||||
"headMystery202208Text": "Frecher Pferdeschwanz",
|
||||
"weaponArmoirePushBroomNotes": "Nimm dieses Reinigungswerkzeug auf deine Abenteuer mit, sodass du immer verrußte Böden säubern oder Spinnweben aus Ecken entfernen kannst. Erhöht Stärke und Intelligenz um jeweils <%= attrs %>. Verzauberter Schrank: Reinigungsset (Gegenstand 1 von 3)",
|
||||
"weaponArmoirePushBroomNotes": "Nimm dieses Aufräumwerkzeug mit auf deine Abenteuer und sei immer in der Lage, eine rußige Treppe zu fegen oder Spinnweben aus Ecken zu entfernen. Erhöht Stärke und Intelligenz jeweils um <%= attrs %>. Verzauberter Schrank: Reinigungs-Set (Gegenstand 1 von 3)",
|
||||
"shieldArmoireDustpanNotes": "Halte diese handliche Mistschaufel bei jeder Reinigung bereit. Ein Verschwinden-Zauberspruch liegt über ihr, damit du nie nach einem Mülleimer suchen musst, um sie zu entleeren. Erhöht Intelligenz und Stärke um jeweils <%= attrs %>. Verzauberter Schrank: Reinigungs-Set (Gegenstand 3 von 3).",
|
||||
"headMystery202208Notes": "Genieße es, mit diesem umfangreichen Haar zu prahlen - im Notfall kann es auch als Peitsche verwendet werden! Gewährt keinen Attributbonus. August 2022 Abonnentengegenstand.",
|
||||
"eyewearMystery202208Notes": "Wiege deine Feinde mit diesen schrecklich süßen Augen in Sicherheit. Gewährt keinen Attributbonus. August 2022 Abonnentengegenstand.",
|
||||
"headMystery202208Notes": "Genieße es, dieses voluminöse Haar zu zeigen - es kann im Notfall auch als Peitsche dienen! Gewährt keinen Attributbonus. August 2022 Abonnentengegenstand.",
|
||||
"eyewearMystery202208Notes": "Wiege Deine Feinde in falscher Sicherheit mit diesen schrecklich niedlichen Glotzern. Gewährt keinen Attributbonus. August 2022 Abonnentengegenstand.",
|
||||
"weaponArmoireFeatherDusterNotes": "Lass diese flotten Federn über alte Gegenstände fliegen, damit sie wie neu erstrahlen. Achte aber auf den aufgewirbelten Staub, damit du nicht niesen musst! Erhöht Ausdauer und Wahrnehmung um jeweils <%= attrs %> . Verzauberter Schrank: Reinigungs-Set (Gegenstand 2 von 3)",
|
||||
"weaponMystery202209Text": "Magie-Anleitung",
|
||||
"weaponMystery202209Notes": "Dieses Buch wird Dich auf Deiner Reise durch die Welt der Magie verzaubern. Gewährt keinen Attributbonus. September 2022 Abonnentengegenstand.",
|
||||
@@ -2742,8 +2742,8 @@
|
||||
"shieldArmoireBubblingCauldronText": "Übersprudelnder Kessel",
|
||||
"shieldArmoireBubblingCauldronNotes": "Der perfekte Kessel, um einen Produktivitätstrank zu brühen oder eine würzige Suppe zu kochen. Um genau zu sein gibt es zwischen diesen beiden kaum einen Unterschied! Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Küchenwerkzeugset (Gegenstand 2 von 2).",
|
||||
"headSpecialNye2022Text": "Fabelhafter Partyhut",
|
||||
"headSpecialNye2022Notes": "Du hast einen Fabelhaften Partyhut erhalten! Trag ihn mit Stolz, während Du das neue Jahr einläutest! Gewährt keinen Attributbonus.",
|
||||
"weaponSpecialWinter2023RogueText": "Grüne Satinschärpe",
|
||||
"headSpecialNye2022Notes": "Du hast einen fabelhaften Partyhut erhalten! Trage ihn mit Stolz, wenn Du das neue Jahr einläutest! Gewährt keinen Nutzen.",
|
||||
"weaponSpecialWinter2023RogueText": "Grüne Satin Schärpe",
|
||||
"weaponSpecialWinter2023WarriorText": "Stoßzahn Speer",
|
||||
"weaponSpecialSpring2023MageText": "Mondstein Magie",
|
||||
"weaponSpecialSpring2023MageNotes": "Je stärker ihr Glühen, desto größer ist ihre Macht. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2023 Frühlingsausrüstung.",
|
||||
@@ -2962,5 +2962,10 @@
|
||||
"armorSpecialFall2024HealerText": "Space Invader Rüstung",
|
||||
"armorSpecialFall2024HealerNotes": "Sei eins mit der Galaxis und hypnotisiere Zuschauer mit dieser Rüstung. Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2024 Herbstausrüstung.",
|
||||
"armorSpecialFall2024MageText": "Unterwelt Hexer Rüstung",
|
||||
"armorSpecialFall2024MageNotes": "Sei eins mit der Unterwelt und umarme die Macht der Magier, die vor dir diese Rüstung trugen. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2024 Herbstaausrüstung."
|
||||
"armorSpecialFall2024MageNotes": "Sei eins mit der Unterwelt und umarme die Macht der Magier, die vor dir diese Rüstung trugen. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2024 Herbstaausrüstung.",
|
||||
"weaponArmoireFunnyFoolBatonNotes": "Du kannst mit einem Schwung Deines Stabes eine Pointe vortragen, die Aufmerksamkeit erregen oder Beifall ernten. Erhöht Ausdauer und Stärke jeweils um <%= attrs %>. Verzauberter Schrank: Lustiges Narren-Set (Gegenstand 3 von 3)",
|
||||
"armorArmoireTeaGownText": "Teeparty Kleid",
|
||||
"armorArmoireTeaGownNotes": "Du bist zäh, kreativ, brilliant und so modisch! Erhöht Stärke und Intelligenz um jeweils <%= attrs %>. Verzauberter Schrank: Teeparty Set (Gegenstand 1 von 3).",
|
||||
"armorMystery202401Text": "Verschneite Zauberer Roben",
|
||||
"armorMystery202401Notes": "Diese Roben erscheinen filigran wie Schneeflocken, aber werden dich reichlich warm halten, während du deine winterliche Magie wirkst. Gewährt keinen Attributbonus. Januar 2024 Abonnentengegenstand."
|
||||
}
|
||||
|
||||
@@ -204,9 +204,9 @@
|
||||
"onboardingAchievs": "Einstiegserfolge",
|
||||
"askQuestion": "Stell eine Frage",
|
||||
"reportEmailPlaceholder": "Deine E-Mail-Adresse",
|
||||
"reportSent": "Fehlermeldung gesendet!",
|
||||
"reportSent": "Vielen Dank für Deinen Beitrag!",
|
||||
"reportBugHeaderDescribe": "Bitte beschreibe den Fehler, auf den Du gestoßen bist, und unser Team wird sich bei Dir melden.",
|
||||
"reportSentDescription": "Vielen Dank für Deine Fehlermeldung. Wir werden uns sobald wie möglich bei Dir melden.",
|
||||
"reportSentDescription": "Wir melden uns bei Dir, sobald unser Team die Möglichkeit hatte, dies zu prüfen.",
|
||||
"reportEmailText": "Diese wird nur benutzt, um Dich bezüglich der Fehlermeldung zu kontaktieren.",
|
||||
"reportEmailError": "Bitte gib eine gültige E-Mail-Adresse an",
|
||||
"emptyReportBugMessage": "Keine Fehlermeldungs-Nachricht vorhanden",
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
"assignedToUser": "Zugewiesen: <strong>@<%- userName %></strong>",
|
||||
"assignedToMembers": "<%= userCount %> Mitgliedern",
|
||||
"assignedToYouAndMembers": "<strong>Dir</strong>, <%= userCount %> Mitgliedern",
|
||||
"youAreAssigned": "Zugewiesen: <strong>Dir<strong>",
|
||||
"youAreAssigned": "Zugewiesen: <strong>Dir</strong>",
|
||||
"taskIsUnassigned": "Diese Aufgabe ist niemandem zugewiesen",
|
||||
"confirmUnClaim": "Bist Du sicher, dass Du diese Aufgabe abgeben möchtest?",
|
||||
"confirmNeedsWork": "Bist Du sicher, dass Du diese Aufgabe auf \"Benötigt Arbeit\" setzen möchtest?",
|
||||
@@ -269,12 +269,12 @@
|
||||
"removeMember": "Mitglied entfernen",
|
||||
"sendMessage": "Nachricht senden",
|
||||
"promoteToLeader": "Gruppenleitung übertragen",
|
||||
"inviteFriendsParty": "Wenn Du Freunde in Deine Party einlädst, erhältst Du eine exklusive <br/>Questschriftrolle, mit der Ihr gemeinsam den Basi-List bekämpfen könnt!",
|
||||
"inviteFriendsParty": "Lade einen anderen Spieler in deine Party ein<br/> und erhalte die exklusive Basi-List Quest Schriftrolle.",
|
||||
"createParty": "Erstelle eine Party",
|
||||
"inviteMembersNow": "Möchtest Du jetzt Mitglieder einladen?",
|
||||
"playInPartyTitle": "Spiele Habitica in einer Party!",
|
||||
"playInPartyDescription": "Bewältige unglaubliche Quests – mit Freunden oder auf Dich allein gestellt. Besiege Monster, erstelle Herausforderungen und hilf Dir selbst, verantwortungsvoll zu bleiben, indem Du einer Party beitrittst.",
|
||||
"wantToJoinPartyTitle": "Möchtest Du einer Party beitreten?",
|
||||
"wantToJoinPartyTitle": "Auf der Suche nach einer Party?",
|
||||
"wantToJoinPartyDescription": "Gib Deinen Benutzernamen einem Freund, der bereits in einer Party ist, oder gehe zur <a href='/groups/guild/f2db2a7f-13c5-454d-b3ee-ea1f5089e601'>Party Wanted Guild</a>, um potenzielle Verbündete zu finden!",
|
||||
"copy": "Kopieren",
|
||||
"inviteToPartyOrQuest": "Party zur Quest einladen",
|
||||
@@ -289,7 +289,7 @@
|
||||
"details": "Details",
|
||||
"participantDesc": "Die Quest beginnt, nachdem alle Mitglieder sie angenommen oder abgelehnt haben. Nur wer \"annehmen\" gewählt hat, kann an der Quest teilnehmen und die Belohnung einstreichen.",
|
||||
"groupGems": "Team-Edelsteine",
|
||||
"groupGemsDesc": "Gilden-Edelsteine können für Herausforderungen verwendet werden! Zukünftig kannst Du weitere Gilden-Edelsteine hinzufügen.",
|
||||
"groupGemsDesc": "Gruppen-Edelsteine können für Herausforderungen ausgegeben werden! Du wirst in Zukunft weitere Gruppen-Edelsteine hinzufügen können.",
|
||||
"groupTaskBoard": "Aufgabenliste",
|
||||
"groupInformation": "Gruppen-Informationen",
|
||||
"groupBilling": "Gruppen-Abrechnung",
|
||||
@@ -312,7 +312,7 @@
|
||||
"teamBasedTasksList": "Gruppenbasierte Aufgabenliste",
|
||||
"teamBasedTasksListDesc": "Richte eine übersichtliche, gemeinsame Aufgabenliste für die Gruppe ein. Weise Deinen Gruppenmitgliedern Aufgaben zu oder lasse sie ihre eigenen Aufgaben beanspruchen, um deutlich zu machen, woran alle arbeiten!",
|
||||
"groupManagementControls": "Gruppen-Management-Steuerungen",
|
||||
"groupManagementControlsDesc": "Verwende die Aufgabenzustimmung um zu überprüfen, ob eine Aufgabe wirklich abgeschlossen wurde; füge Gruppen-Organisatoren hinzu, um Verantwortlichkeiten zu teilen, und genieße einen privaten Gruppenchat für alle Gruppenmitglieder.",
|
||||
"groupManagementControlsDesc": "Zeige den Aufgabenstatus an, um zu überprüfen, ob eine Aufgabe abgeschlossen wurde, füge Gruppen-Manager hinzu, um Verantwortlichkeiten zu teilen, und genieße einen privaten Gruppenchat für alle Gruppenmitglieder.",
|
||||
"inGameBenefits": "Vorteile im Spiel",
|
||||
"inGameBenefitsDesc": "Gruppenmitglieder erhalten ein exklusives Wolpertinger-Reittier sowie volle Abonnementvorteile, einschließlich spezieller monatlicher Ausrüstungssets und der Möglichkeit, Edelsteine mit Gold zu kaufen.",
|
||||
"inspireYourParty": "Inspiriere Deine Party, macht Euer Leben gemeinsam zum Spiel.",
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
"fall2020DeathsHeadMothHealerSet": "Totenkopfschwärmer (Heiler)",
|
||||
"fall2020WraithWarriorSet": "Gespenst (Krieger)",
|
||||
"royalPurpleJackolantern": "Purpurne Kürbislaterne",
|
||||
"g1g1Limitations": "Dies ist eine zeitlich beschränkte Aktion, die am 16. Dezember um 13:00 Uhr (GMT) startet und am 6. Januar um 01:00 Nachts (GMT) endet. Dieses Angebot ist nur gültig, wenn Du einen anderen Habiticaner beschenkst. Wenn Du oder die beschenkte Person bereits ein Abo haben, wird dieses, sobald es abläuft oder gekündigt wird, um die Zeit des Geschenkes verlängert werden.",
|
||||
"g1g1Limitations": "Dies ist eine zeitlich beschränkte Aktion, die am <%= promoStartMonth %> <%= promoStartOrdinal %> um <%= promoStartTime %> startet und am <%= promoEndMonth %> <%= promoEndOrdinal %> um <%= promoEndTime %> endet. Dieses Angebot ist nur gültig, wenn Du einen anderen Habiticaner beschenkst. Wenn Du oder die beschenkte Person bereits ein Abo haben, wird dieses, sobald es abläuft oder gekündigt wird, um die Zeit des Geschenkes verlängert werden.",
|
||||
"limitations": "Einschränkungen",
|
||||
"g1g1HowItWorks": "Gebe den Benutzernamen ein, welchem Du das Geschenk machen willst. Dann wähle die Länge des Abos, das Du verschenken möchtest und schließe den Vorgang ab. Dein Account wird automatisch mit dem selben Abo belohnt, das Du gerade verschenkt hast.",
|
||||
"howItWorks": "So funktioniert es",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"checkinEarned": "Dein Anmeldungszähler ist gestiegen!",
|
||||
"unlockedCheckInReward": "Du hast eine Check-In-Belohnung freigeschaltet!",
|
||||
"checkinProgressTitle": "Fortschritt bis zum nächsten",
|
||||
"incentiveBackgroundsUnlockedWithCheckins": "Gesperrte einfarbige Hintergründe werden durch tägliches Anmelden freigeschalten.",
|
||||
"incentiveBackgroundsUnlockedWithCheckins": "Mehr Standard Hintergründe werden durch tägliches Anmelden freigeschalten.",
|
||||
"oneOfAllPetEggs": "eines von jedem Standard-Haustier-Ei",
|
||||
"twoOfAllPetEggs": "zwei Stück von jedem Standard-Haustier-Ei",
|
||||
"threeOfAllPetEggs": "drei Stück von jedem Standard-Haustier-Ei",
|
||||
|
||||
@@ -995,6 +995,10 @@
|
||||
"backgroundMagicDoorInForestText": "Magic Door in the Forest",
|
||||
"backgroundMagicDoorInForestNotes": "Dare to step through the Magic Door in the Forest.",
|
||||
|
||||
"backgrounds102024": "SET 124: Released September 2024",
|
||||
"backgroundSurroundedByGhostsText": "Surrounded by Ghosts",
|
||||
"backgroundSurroundedByGhostsNotes": "Spend a spooky evening Surrounded by Ghosts.",
|
||||
|
||||
"timeTravelBackgrounds": "Steampunk Backgrounds",
|
||||
"backgroundAirshipText": "Airship",
|
||||
"backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.",
|
||||
|
||||
@@ -267,6 +267,10 @@
|
||||
"questEggRaccoonMountText": "Raccoon",
|
||||
"questEggRaccoonAdjective": "a ravenous",
|
||||
|
||||
"questEggDogText": "Puppy",
|
||||
"questEggDogMountText": "Dog",
|
||||
"questEggDogAdjective": "a friendy",
|
||||
|
||||
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
||||
|
||||
"hatchingPotionBase": "Base",
|
||||
|
||||
@@ -787,6 +787,8 @@
|
||||
"weaponArmoireDragonKnightsLanceNotes": "This red and silver lance has unseated many opponents from their mounts. Increases Constitution by <%= con %>. Enchanted Armoire: Dragon Knight Set (Item 3 of 3)",
|
||||
"weaponArmoireFunnyFoolBatonText": "Funny Fool Baton",
|
||||
"weaponArmoireFunnyFoolBatonNotes": "With a wave of your baton you can deliver a punchline, redirect attention, or summon applause. Increases Constitution and Strength by <%= attrs %> each. Enchanted Armoire: Funny Fool Set (Item 3 of 3)",
|
||||
"weaponArmoireSpookyCandyBucketText": "Spooky Candy Bucket",
|
||||
"weaponArmoireSpookyCandyBucketNotes": "With an epic costume like that, you’re going to get so much candy! Good thing you’ve got this bottomless bucket to hold it all. Try not to snack on any until you get home. Increases Intelligence by <%= int %>. Enchanted Armoire: Fright Night Set (Item 2 of 2)",
|
||||
|
||||
"armor": "armor",
|
||||
"armorCapitalized": "Armor",
|
||||
@@ -3002,6 +3004,8 @@
|
||||
"shieldArmoireThrownVesselNotes": "You know what they say: practice makes progress. And this is the best one you’ve made so far! Increases Constitution by <%= con %>. Enchanted Armoire: Potter Set (Item 3 of 4).",
|
||||
"shieldArmoireBuoyantBeachBallText": "Beachball",
|
||||
"shieldArmoireBuoyantBeachBallNotes": "Got too many balls up in the air already? Here’s one that you can safely set down, roll, bounce and bounce and bounce... Increases Strength by <%= str %>. Enchanted Armoire: Beachside Set (Item 4 of 4).",
|
||||
"shieldArmoireSafetyFlashlightText": "Safety Flashlight",
|
||||
"shieldArmoireSafetyFlashlightNotes": "Wait, did you hear that noise? Quick! Shine your flashlight into the shadows over there. Hmmm. Looks like it was just the wind. Or was it…? Increases Constitution by <%= con %>. Enchanted Armoire: Fright Night Set (Item 1 of 2)",
|
||||
|
||||
"back": "Back Accessory",
|
||||
"backBase0Text": "No Back Accessory",
|
||||
@@ -3082,6 +3086,8 @@
|
||||
"backMystery202402Notes": "Let an aura of loving energy surround you wherever you go! Confers no benefit. February 2024 Subscriber Item.",
|
||||
"backMystery202405Text": "Gilded Drake Wings",
|
||||
"backMystery202405Notes": "These magnificent wings have the glow of pure gold but are as light as a feather. Confers no benefit. May 2024 Subscriber Item.",
|
||||
"backMystery202410Text": "Candy Corn Tail",
|
||||
"backMystery202410Notes": "This tail perks up at the mention of spooky treats. Confers no benefit. October 2024 Subscriber Item.",
|
||||
|
||||
"backSpecialWonderconRedText": "Mighty Cape",
|
||||
"backSpecialWonderconRedNotes": "Swishes with strength and beauty. Confers no benefit. Special Edition Convention Item.",
|
||||
@@ -3325,6 +3331,8 @@
|
||||
"headAccessoryMystery202310Notes": "Like a will-o'-the-wisp, these unearthly lights may lure curious souls to their doom. Confers no benefit. October 2023 Subscriber Item.",
|
||||
"headAccessoryMystery202405Text": "Gilded Drake Horns",
|
||||
"headAccessoryMystery202405Notes": "The metallic sheen of these fine horns reflects the dancing colors of dragon fire. Confers no benefit. May 2024 Subscriber Item.",
|
||||
"headAccessoryMystery202410Text": "Candy Corn Ears",
|
||||
"headAccessoryMystery202410Notes": "Is that the sound of trick-or-treaters at your door? Confers no benefit. October 2024 Subscriber Item.",
|
||||
|
||||
"headAccessoryMystery301405Text": "Headwear Goggles",
|
||||
"headAccessoryMystery301405Notes": "\"Goggles are for your eyes,\" they said. \"Nobody wants goggles that you can only wear on your head,\" they said. Hah! You sure showed them! Confers no benefit. August 3015 Subscriber Item.",
|
||||
|
||||
@@ -339,16 +339,19 @@
|
||||
"worldBossBullet3": "You can continue with normal Quest Bosses, damage will apply to both",
|
||||
"worldBossBullet4": "Check the Tavern regularly to see World Boss progress and Rage attacks",
|
||||
"worldBoss": "World Boss",
|
||||
"groupPlanTitle": "Need more for your crew?",
|
||||
"groupPlanDesc": "Managing a small team or organizing household chores? Our group plans grant you exclusive access to a private task board and chat area dedicated to you and your group members!",
|
||||
"groupPlanTitle": "Need More for Your Crew?",
|
||||
"upgradeYourCrew": "Ready to Upgrade Your Crew?",
|
||||
"groupPlanDesc": "Organizing the household chores or managing a small class project? Habitica’s Group Plans provide a shared task experience and dedicated chat space to help you and your group stay motivated.",
|
||||
"billedMonthly": "*billed as a monthly subscription",
|
||||
"teamBasedTasksList": "Team-Based Task List",
|
||||
"teamBasedTasksListDesc": "Set up an easily-viewed shared task list for the group. Assign tasks to your fellow group members, or let them claim their own tasks to make it clear what everyone is working on!",
|
||||
"groupManagementControls": "Group Management Controls",
|
||||
"groupManagementControlsDesc": "View task status to verify that a task that was completed, add Group Managers to share responsibilities, and enjoy a private group chat for all team members.",
|
||||
"inGameBenefits": "In-Game Benefits",
|
||||
"inGameBenefitsDesc": "Group members get an exclusive Jackalope Mount, as well as full subscription benefits, including special monthly equipment sets and the ability to buy gems with gold.",
|
||||
"inspireYourParty": "Inspire your party, gamify life together.",
|
||||
"teamBasedTasksList": "Shared Task Board",
|
||||
"teamBasedTasksListDesc": "Group members can all work from the same task board to ensure the group is staying on top of things. Complete tasks from the shared task board or copy them to your personal tasks to complete them on the go.",
|
||||
"groupManagementControls": "Flexible Accountability",
|
||||
"groupManagementControlsDesc": "Share responsibilities by assigning tasks to any number of members, or leave tasks open as a challenge to see who can complete it first. Group members can stay up-to-date on each other's progress by viewing the task status.",
|
||||
"inGameBenefits": "All the Benefits!",
|
||||
"inGameBenefitsDesc": "Group members get an exclusive Jackalope Mount, as well as full subscription benefits, including special monthly Equipment sets and the ability to buy Gems with Gold.",
|
||||
"createGroupToday": "Create Your Group Today!",
|
||||
"createGroupTitle": "Create Group",
|
||||
"readyToUpgrade": "Ready to Upgrade?",
|
||||
"letsMakeAccount": "First, let’s make you an account",
|
||||
"nameYourGroup": "Next, Name Your Group",
|
||||
"exampleGroupName": "Example: Avengers Academy",
|
||||
@@ -368,7 +371,7 @@
|
||||
"nameStarText": "Add a title",
|
||||
"descriptionOptional": "Description",
|
||||
"descriptionOptionalText": "Add a description",
|
||||
"nextPaymentMethod": "Next: Payment Method",
|
||||
"nextPaymentMethod": "Next: Payment",
|
||||
"congratsOnGroupPlan": "Congratulations on creating your new Group! Here are a few answers to some of the more commonly asked questions.",
|
||||
"whatsIncludedGroup": "What's included in the subscription",
|
||||
"whatsIncludedGroupDesc": "All members of the Group receive full subscription benefits, including the monthly subscriber items, the ability to buy Gems with Gold, and the Royal Purple Jackalope mount, which is exclusive to users with a Group Plan membership.",
|
||||
@@ -425,5 +428,7 @@
|
||||
"tavernDiscontinued": "The Tavern and Guilds have been discontinued",
|
||||
"tavernDiscontinuedDetail": "Due to a number of factors, including changes in how our player base interacts with Habitica, the resources necessary to maintain these spaces became disproportionate to the number of people participating in them and unsustainable over the long term.",
|
||||
"tavernDiscontinuedLinks": "Read more about the <a href='/static/faq/tavern-and-guilds'>Tavern and Guild Service Discontinuation</a> or head back to the <a href='/'>homepage</a>.",
|
||||
"chatSunsetWarning": "⚠️ <strong>Habitica Guilds and Tavern chat will be discontinued on 8/8/2023.</strong> <a href='/static/faq/tavern-and-guilds'>Click here</a> to read more about this change."
|
||||
"chatSunsetWarning": "⚠️ <strong>Habitica Guilds and Tavern chat will be discontinued on 8/8/2023.</strong> <a href='/static/faq/tavern-and-guilds'>Click here</a> to read more about this change.",
|
||||
"interestedLearningMore": "Interested in Learning More?",
|
||||
"checkGroupPlanFAQ": "Check out the <a href='/static/faq#what-is-group-plan'>Group Plans FAQ</a> to learn how to get the most out of your shared task experience."
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
"g1g1Limitations": "This is a limited time event that starts on <%= promoStartMonth %> <%= promoStartOrdinal %> at <%= promoStartTime %> and will end <%= promoEndMonth %> <%= promoEndOrdinal %> at <%= promoEndTime %>. This promotion only applies when you gift to another Habitican. If you or your gift recipient already have a subscription, the gifted subscription will add months of credit that will only be used after the current subscription is canceled or expires.",
|
||||
"noLongerAvailable": "This item is no longer available.",
|
||||
"gemSaleHow": "Between <%= eventStartMonth %> <%= eventStartOrdinal %> and <%= eventEndOrdinal %>, simply purchase any Gem bundle like usual and your account will be credited with the promotional amount of Gems. More Gems to spend, share, or save for any future releases!",
|
||||
"gemSaleLimitationsText": "This promotion only applies during the limited time event. This event starts on <%= eventStartMonth %> <%= eventStartOrdinal %> at <%= eventStartTime %> local time (<%= eventStartUTC %> UTC) and will end <%= eventEndMonth %> <%= eventEndOrdinal %> at <%= eventEndTime %> local time (<%= eventEndUTC %> UTC). The promo offer is only available when buying Gems for yourself.",
|
||||
"gemSaleLimitationsText": "This promotion only applies during the limited time event. This event starts on <%= eventStartMonth %> <%= eventStartOrdinal %> at <%= eventStartTime %> <%= timeZone %> and will end on <%= eventEndMonth %> <%= eventEndOrdinal %> at <%= eventEndTime %> <%= timeZone %>. The promo offer is only available when buying Gems for yourself.",
|
||||
"anniversaryLimitations": "This is a limited time event that starts on January 30th at 8:00 AM ET (13:00 UTC) and will end February 8th at 11:59 PM ET (04:59 UTC). The Limited Edition Jubilant Gryphatrice and ten Magic Hatching Potions will be available to buy during this time. The other Gifts listed in the Four for Free section will be automatically delivered to all accounts that were active in the 30 days prior to day the gift is sent. Accounts created after the gifts are sent will not be able to claim them.",
|
||||
"anniversaryLimitedDates": "January 30th to February 8th",
|
||||
"limitedEvent": "Limited Event",
|
||||
|
||||
@@ -923,6 +923,16 @@
|
||||
"questRaccoonDropRaccoonEgg": "Raccoon (Egg)",
|
||||
"questRaccoonUnlockText": "Unlocks Raccoon Eggs for purchase in the Market.",
|
||||
|
||||
"questDogText": "Triple Dog Dare!",
|
||||
"questDogNotes": "You’ve been chosen for an expedition to map Habitica’s underground cave systems! Researchers in Habit City theorize that there may be new tools for managing tasks or even undiscovered creatures in these depths.<br><br>As you map rocky tunnels near the foothills of the Meandering Mountains, you notice a glow emanating from a craggy entrance ahead. As you near you see… toys? Stuffed animals and rubber balls are scattered around the cave floor. Is that barking you hear?<br><br>A huge, three-headed dog jumps out, darting for the toy you were right about to pick up! You freeze, almost losing a limb there! But... the dog’s mouths seem too occupied with toys to attack?<br><br>“Woof!” one of the dog's mouths barks, dropping a torn toy raccoon. “Are you here to help me clean?? I reeeally need to tidy up but every time I pick up a toy, I just end up playing with it… Here, think fast!!”<br><br>He launches a ball at you, and then another, and another. Those extra heads really make dodging a workout!",
|
||||
"questDogCompletion": "After gathering all the toys that you (thankfully) dodged, you give Shiberus a gentle pat on his center head.<br><br>“It’s great to be excited about a big task, but it might help to go in with a plan. Maybe next time try starting at the entrance and working backwards? Or doing it 30 minutes at a time with some short play breaks in between.”<br><br>“That’s a good idea,” the pup’s left head chimes in. The right head places some items near you, including what appear to be eggs… “I found some things you might like while we were playing. Thanks for your help!”",
|
||||
"questDogBoss": "Shiberus",
|
||||
"questDogRageTitle": "Triple Toy Toss",
|
||||
"questDogRageDescription": "This bar fills when you don't complete your Dailies. When it's full, Shiberus will take away some of your party's MP!",
|
||||
"questDogRageEffect": "Shiberus throws toys at you rapid-fire and blocks your magic spells! The party’s MP is reduced!",
|
||||
"questDogDropDogEgg": "Dog (Egg)",
|
||||
"questDogUnlockText": "Unlocks Dog Eggs for purchase in the Market.",
|
||||
|
||||
"questFungiText": "The Moody Mushroom",
|
||||
"questFungiNotes": "It’s been a rainy spring in Habitica and the ground around the stables is spongy and damp. You notice quite a few mushrooms have appeared along the wooden stable walls and fences. There’s a fog hanging about, not quite letting the sun peek through, and it’s a bit dispiriting.<br><br>Out of the mist you see the outline of the April Fool, not at all his usual bouncy self.<br><br>”I’d hoped to bring you all some delightful Fungi Magic Hatching Potions so that you can keep your mushroom friends from my special day forever,” he says, his expression alarmingly unsmiling. “But this cold fog is really getting to me, it’s making me feel too tired and dismal to work my usual magic.”<br><br>“Oh no, sorry to hear that,” you say, noticing your own increasingly somber mood. “This fog is really making the day gloomy. I wonder where it came from…”<br><br>A low rumble sounds across the fields, and you see an outline emerging from the mist. You’re alarmed to see a gigantic and unhappy looking mushroom creature, and the mist appears to be emanating from it.<br><br>“Aha,” says the Fool, “I think this fungal fellow may be the source of our blues. Let’s see if we can summon a little cheer for our friend here and ourselves.”",
|
||||
"questFungiCompletion": "You and the April Fool look at each other with a sign of relief as the mushroom retreats to the forest.<br><br>“Ah,” the Fool exclaims, “that was quite a mycelial melancholy. I’m glad we could improve his mood, and ours too! I feel my energy coming back. Come with me and we’ll get those Fungi potions going together.”",
|
||||
|
||||
@@ -166,6 +166,7 @@
|
||||
"mysterySet202407": "Amiable Axolotl Set",
|
||||
"mysterySet202408": "Arcane Aegis Set",
|
||||
"mysterySet202409": "Heliotrope Magus Set",
|
||||
"mysterySet202410": "Candy Corn Fox Set",
|
||||
"mysterySet301404": "Steampunk Standard Set",
|
||||
"mysterySet301405": "Steampunk Accessories Set",
|
||||
"mysterySet301703": "Peacock Steampunk Set",
|
||||
|
||||
@@ -881,5 +881,8 @@
|
||||
"backgroundShellGateNotes": "Passez sous les coraux ornant un Portail de Coquillages.",
|
||||
"backgrounds082024": "Ensemble 123 : Sorti Août 2024",
|
||||
"backgroundSavannaText": "Pâturage sous la Brume",
|
||||
"backgroundSavannaNotes": "Randonnez à travers des Pâturages sous la Brume."
|
||||
"backgroundSavannaNotes": "Randonnez à travers des Pâturages sous la Brume.",
|
||||
"backgroundMagicDoorInForestText": "Porte Magique dans la Forêt",
|
||||
"backgroundMagicDoorInForestNotes": "Osez franchir la Porte Magique pour entrer dans la Forêt.",
|
||||
"backgrounds092024": "Ensemble 124 : Sortie septembre 2024"
|
||||
}
|
||||
|
||||
@@ -386,5 +386,8 @@
|
||||
"questEggGiraffeAdjective": "un empilement",
|
||||
"questEggCrabText": "Crabe",
|
||||
"questEggCrabMountText": "Crabe",
|
||||
"questEggCrabAdjective": "bouineux"
|
||||
"questEggCrabAdjective": "bouineux",
|
||||
"questEggRaccoonText": "Raton Laveur",
|
||||
"questEggRaccoonMountText": "Raton Laveur",
|
||||
"questEggRaccoonAdjective": "vorace"
|
||||
}
|
||||
|
||||
@@ -3189,5 +3189,45 @@
|
||||
"weaponArmoireDragonKnightsLanceNotes": "Cette lance rouge et argent a désarçonner de nombreux opposant·e·s de leur montures. Augmente la Constitution de <%= con %>. Armoire Enchantée : Ensemble Chevalier Dragon (Objet 3 sur 3)",
|
||||
"armorArmoireDragonKnightsArmorNotes": "Canalisez la force et le pouvoir d'un dragon avec cette armure faite d'argent et d'écailles. Augmente la Force de <%= str %>. Armoire Enchantée : Ensemble Chevalier Dragon (Objet 2 sur 3)",
|
||||
"headArmoireDragonKnightsHelmNotes": "Avec ces apparats ardents ornant ce casque, les dragons pourraient vous prendre pour l'un·e des leurs. Augmente l'Intelligence de <%= int %>. Armoire Enchantée : Ensemble Chevalier Dragon (Objet 1 sur 3)",
|
||||
"shieldMystery202408Notes": "De la lumière magique illuminera l'intérieur de votre cachette-bulle, ou dans quel qu'autre endroit nécessitant un peu de lumière ! Ne confère aucun bonus. Équipement d'Abonnement Août 2024."
|
||||
"shieldMystery202408Notes": "De la lumière magique illuminera l'intérieur de votre cachette-bulle, ou dans quel qu'autre endroit nécessitant un peu de lumière ! Ne confère aucun bonus. Équipement d'Abonnement Août 2024.",
|
||||
"armorSpecialFall2024WarriorText": "Armure du Diablotin Ardent",
|
||||
"weaponSpecialFall2024WarriorText": "Épée de Flamme",
|
||||
"weaponSpecialFall2024RogueText": "Baguette Ruban",
|
||||
"weaponSpecialFall2024HealerText": "Faux de l'Espace",
|
||||
"weaponSpecialFall2024MageText": "Bâton de l'Outre-Monde",
|
||||
"weaponArmoireFunnyFoolBatonText": "Marotte du Fou Fanfaron",
|
||||
"armorSpecialFall2024RogueText": "Armure du Chat Noir",
|
||||
"armorSpecialFall2024HealerText": "Armure de l'Envahisseur de l'Espace",
|
||||
"armorSpecialFall2024MageText": "Armure du Sorcier de l'Outre-Monde",
|
||||
"armorArmoireFunnyFoolCostumeText": "Costume du Fou Fanfaron",
|
||||
"headSpecialFall2024WarriorText": "Masque du Diablotin Ardent",
|
||||
"headSpecialFall2024RogueText": "Masque du Chat Noir",
|
||||
"headSpecialFall2024HealerText": "Masque de L'Envahisseur de l'Espace",
|
||||
"headSpecialFall2024MageText": "Masque du Sorcier d'Outre-Monde",
|
||||
"headMystery202409Text": "Chapeau du Mage Héliotrope",
|
||||
"headArmoireFunnyFoolCapText": "Bonnet du Fou Fanfaron",
|
||||
"shieldMystery202409Text": "Bâton du Mage Héliotrope",
|
||||
"shieldSpecialFall2024HealerText": "Bouclier de l'Espace",
|
||||
"shieldSpecialFall2024WarriorText": "Bouclier de Flamme",
|
||||
"shieldSpecialFallRogue2024Text": "Baguette Ruban",
|
||||
"weaponSpecialFall2024WarriorNotes": "Les obstacles à la tâche sont immédiatement éliminés lorsqu'ils font face à cette arme redoutable. Augmente la Force de <%= str %>. Édition Limitée Équipement Automne 2024.",
|
||||
"weaponSpecialFall2024HealerNotes": "Les tâches qui étaient autrefois cosmiquement compliquées sont décimées par cette lame tranchante. Augmente l'intelligence de <%= int %>. Édition Limitée Équipement Automne 2024.",
|
||||
"weaponSpecialFall2024RogueNotes": "Les tâches vont geler sur place grâce aux volutes et méandres de cette arme fascinante. Augmente la Force de <%= str %>. Édition Limitée Équipement Automne 2024.",
|
||||
"weaponSpecialFall2024MageNotes": "Les étapes de vos tâches vont instantanées se simplifier au simple contact de cette arme rutilante. Augmente l'Intelligence de <%= int %> et la Perception de <%= per %>. Édition Limitée Équipement Automne 2024.",
|
||||
"armorSpecialFall2024RogueNotes": "Faites un·e avec les ténèbres et augmentez votre agilité et votre furtivité dans cette armure. Augmente la Perception de <%= per %>. Édition Limitée Équipement Automne 2024.",
|
||||
"armorArmoireFunnyFoolCostumeNotes": "Dou-di-dou ! Petit·e plaisantin·e, ce vêtement coloré vous sied à ravir ! Augmente la Force de <%= str %>. Armoire Enchantée : Ensemble du Fou Fanfaron (Objet 2 sur 3)",
|
||||
"headSpecialFall2024WarriorNotes": "Que vous soyez espiègle ou menaçant·e, vous ne passerez pas inaperçu·e en portant ceci ! Augmente la Force de <%= str %>. Édition Limitée Équipement Automne 2024.",
|
||||
"headSpecialFall2024MageNotes": "Que vous soyez mystérieu·x·se ou fantasque, vous ne passerez pas inaperçu·e en portant ceci ! Augmente la Perception de <%= per %>. Édition Limitée Équipement Automne 2024.",
|
||||
"armorSpecialFall2024WarriorNotes": "Faites un·e avec les flammes et devenez immunisé·e à leurs pouvoirs destructeurs dans cette armure. Augmente la Constitution de <%= con %>. Édition Limitée Équipement Automne 2024.",
|
||||
"armorSpecialFall2024HealerNotes": "Faites un·e avec la galaxie et éblouissez vos admirat·eur·rice·s dans cette armure. Augmente la Constitution de <%= con %>. Édition Limitée Équipement Automne 2024.",
|
||||
"armorSpecialFall2024MageNotes": "Faites un·e avec l'outre-monde et emparez-vous du pouvoir des mages qui vous ont précédé·e·s dans cette armure. Augmente l'Intelligence de <%= int %>. Édition Limitée Équipement Automne 2024.",
|
||||
"weaponArmoireFunnyFoolBatonNotes": "Avec un mouvement de votre marotte, vous pouvez sortir une réplique cinglante, rediriger l'attention ou invoquer des applaudissments. Augmente la Constitution et la Force de <%= attrs %> chacune. Armoire Enchantée : Ensemble du Fou Fanfaron (Objet 3 sur 3)",
|
||||
"headSpecialFall2024RogueNotes": "Que vous soyez câlin·e ou mali·n·gne, vous ne passerez pas inaperçu·e en portant ceci ! Augmente la Perception de <%= per %>. Édition Limitée Équipement Automne 2024.",
|
||||
"headSpecialFall2024HealerNotes": "Que vous défendiez un planète ou en exploriez une nouvelle, vous ne passerez pas inaperçu·e en portant ceci ! Augmente l'Intelligence de <%= int %>. Édition Limitée Équipement Automne 2024.",
|
||||
"shieldSpecialFall2024WarriorNotes": "Les difficultés liées à vos tâches sont absorbées pour votre bouclier et vous rend plus déterminé·e. Augmente la Constitution de <%= con %>. Édition Limitée Équipement Automne 2024.",
|
||||
"shieldSpecialFallRogue2024Notes": "Les tâches elles-mêmes vont être submergées par les tourbillons et spirales de cette arme hypnotique. Augmente la Force de <%= str %>. Édition Limitée Équipement Automne 2024.",
|
||||
"shieldMystery202409Notes": "Les rubis scintillants de ce bâton tirent leurs pouvoirs des dernières lueurs du soleil d'été. Ne confère aucun bonus. Équipement d'Abonnement Septembre 2024.",
|
||||
"headMystery202409Notes": "Au-delà du l'aspect esthétique, les tournesols enchantés de ce chapeau emplissent s·on·a porteu·r·se d'énergie magique puissante. Ne confère aucun bonus. Équipement d'Abonnement Septembre 2024.",
|
||||
"headArmoireFunnyFoolCapNotes": "Les clochettes sur ce chapeau pourraient faire exploser vos adversaires de rire, mais elles vous aident surtout à vous concentrer. Augmente la Constitution de <%= con %>. Armoire Enchantée : Ensemble du Fou Fanfaron (Objet 1 sur 3)",
|
||||
"shieldSpecialFall2024HealerNotes": "Les nouvelles tâches cherchant à attirer votre attention sont déviées tant que vous n'avez pas complété votre mission en cours. Augmente la Constitution de <%= con %>. Édition Limitée Équipement Automne 2024."
|
||||
}
|
||||
|
||||
@@ -306,15 +306,15 @@
|
||||
"worldBossBullet3": "Vous pouvez poursuivre des quêtes de boss standards, les dommages seront infligés aux deux",
|
||||
"worldBossBullet4": "Consultez régulièrement la taverne pour voir les niveaux de santé et de rage du boss mondial",
|
||||
"worldBoss": "Boss mondial",
|
||||
"groupPlanTitle": "Besoin de plus pour votre équipe ?",
|
||||
"groupPlanDesc": "Vous gérez une petite équipe ou vous organisez les corvées domestiques ? Notre offre de groupe vous donne un accès exclusif à un tableau de tâches privées et une zone de discussion dédiée à vous et aux membres de votre groupe !",
|
||||
"groupPlanTitle": "Besoin de Plus pour Votre Troupe ?",
|
||||
"groupPlanDesc": "Vous organisez les corvées domestiques ou gérez un projet de classe ? Les Offres de Groupe d'Habitica proposent un environnement avec des tâches partagées et un chat dédié pour vous encourager, vous et votre groupe, à rester motivé·e·s.",
|
||||
"billedMonthly": "*facturé comme une souscription mensuelle",
|
||||
"teamBasedTasksList": "Liste de tâches pour l'équipe",
|
||||
"teamBasedTasksListDesc": "Créez une liste des tâches partagées facile à voir pour le groupe. Assignez des tâches aux autres membres du groupe, ou laissez les définir leurs propres tâches pour rendre clair qui travaille sur quoi !",
|
||||
"groupManagementControls": "Contrôles de gestion de groupe",
|
||||
"groupManagementControlsDesc": "Regardez l'état d'une tâche pour vérifier si elle a été réalisée, ajoutez des gestionnaires de groupes pour partager les responsabilités, et profiter d'une discussion de groupe privée pour tous les membres de l'équipe.",
|
||||
"inGameBenefits": "Bénéfices dans le jeu",
|
||||
"inGameBenefitsDesc": "Les membres du groupe reçoivent une monture Jackalope exclusive, ainsi que tous les bénéfices d'un abonnement complet, incluant l'équipement mensuel spécial et la capacité d'acheter des gemmes pour de l'or.",
|
||||
"teamBasedTasksList": "Tableau Commun de Tâche",
|
||||
"teamBasedTasksListDesc": "Les membres du Groupe peuvent tou·te·s travailler sur le même tableau de tâche pour s'assurer que tout soit accompli. Remplissez les tâches dans le tableau commun ou copiez-les dans vos tâches personnelles pour les compléter.",
|
||||
"groupManagementControls": "Responsabilité Flexible",
|
||||
"groupManagementControlsDesc": "Partagez les responsabilités en assignant des tâches à certain·e·s membres, ou ne les attribuez à personne en particulier pour voir qui les accomplira en premier. Les membres du Groupe peuvent voir la progression des autres en regardant le statuts des tâches.",
|
||||
"inGameBenefits": "Tous les Avantages !",
|
||||
"inGameBenefitsDesc": "Les membres du groupe reçoivent une monture Jackalope exclusive, ainsi que tous les bénéfices d'un abonnement complet, incluant l'Équipement mensuel spécial et la capacité d'acheter des Gemmes pour de l'Or.",
|
||||
"inspireYourParty": "Inspirez votre équipe, ludifiez votre vie tous ensemble.",
|
||||
"letsMakeAccount": "D’abord, créons-vous un compte",
|
||||
"nameYourGroup": "Ensuite, nommez votre groupe",
|
||||
@@ -408,7 +408,7 @@
|
||||
"createGroup": "Créer un groupe",
|
||||
"groupParentChildren": "Parent(s) qui définissent des tâches pour les enfants",
|
||||
"descriptionOptionalText": "Ajouter une description",
|
||||
"nextPaymentMethod": "Suite : Méthode de paiement",
|
||||
"nextPaymentMethod": "Suite : Paiement",
|
||||
"sendGiftLabel": "Voulez vous envoyer un message avec le cadeau ?",
|
||||
"groupCouple": "Couple qui partage ses tâches",
|
||||
"groupFriends": "Amis qui partagent leurs tâches",
|
||||
@@ -442,5 +442,11 @@
|
||||
"blockedUser": "<strong>Vous avez bloqué ce·tte joueu·r·se. </strong> Il·elle·s ne peuvent pas vous envoyer de Messages Privés mais vous pouvez voir ses publications.",
|
||||
"challengeBannedSlurs": "Votre Challenge contiens une injure qui viole les lignes de conduite de la communauté d'Habitica et vos privilèges tchat et de création de Challenge ont été révoqués. Contactez admin@habitica.com pour plus d'informations.",
|
||||
"challengeBannedWords": "Votre Challenge contient une injure ou une référence à un sujet mature. Merci de bien vouloir modifier votre Challenge afin de pouvoir l'enregistrer. Vous devez enlever le mot en question, pas le censurer.",
|
||||
"challengeBannedSlursPrivate": "Votre Défi contient une injure qui viole les règles de la communauté d'Habitica. Merci de la retirer afin de pouvoir enregistrer votre Défi."
|
||||
"challengeBannedSlursPrivate": "Votre Défi contient une injure qui viole les règles de la communauté d'Habitica. Merci de la retirer afin de pouvoir enregistrer votre Défi.",
|
||||
"upgradeYourCrew": "Prêt·e à Améliorer Votre Troupe ?",
|
||||
"createGroupToday": "Créez Votre Groupe dès Aujourd'hui !",
|
||||
"createGroupTitle": "Créer un Groupe",
|
||||
"readyToUpgrade": "Prêt·e à Passer à la Version Supérieure ?",
|
||||
"interestedLearningMore": "Vous souhaitez en Apprendre Plus ?",
|
||||
"checkGroupPlanFAQ": "Allez voir la <a href='/static/faq#what-is-group-plan'> FAQ des Offres de Groupe</a> pour en apprendre plus sur comment profiter complètement de l'expériences des tâches partagées."
|
||||
}
|
||||
|
||||
@@ -266,5 +266,10 @@
|
||||
"summer2024WhaleSharkWarriorSet": "Ensemble du Requin Baleine (Guerri·er·ère)",
|
||||
"summer2024SeaAnemoneMageSet": "Ensemble de l'Anémone de Mer (Mage)",
|
||||
"summer2024SeaSnailHealerSet": "Ensemble de l'Escargot de Mer (Guérisseu·r·se)",
|
||||
"summer2024NudibranchRogueSet": "Ensemble du Nudibranche (Voleu·r·se)"
|
||||
"summer2024NudibranchRogueSet": "Ensemble du Nudibranche (Voleu·r·se)",
|
||||
"gemSaleLimitationsText": "Cette promotion ne s'applique que pendant un évènement disponible durant un temps limité. Cet évènement commence le <%= eventStartMonth %> <%= eventStartOrdinal %> à <%= eventStartTime %> heure locale (<%= eventStartUTC %> UTC) et se terminera le <%= eventEndMonth %> <%= eventEndOrdinal %> à <%= eventEndTime %> heure locale (<%= eventEndUTC %> UTC). Cette promotion ne s'applique que si vous achetez des Gemmes pour vous-même.",
|
||||
"fall2024FieryImpWarriorSet": "Ensemble du Diablotin Ardent (Guerri·er·ère)",
|
||||
"fall2024BlackCatRogueSet": "Ensemble du Chat Noir (Voleu·r·se)",
|
||||
"fall2024UnderworldSorcerorMageSet": "Ensemble du Sorcier de l'Outre-Monde (Mage)",
|
||||
"fall2024SpaceInvaderHealerSet": "Ensemble de l'Envahisseur de l'Espace (Guérisseu·r·se)"
|
||||
}
|
||||
|
||||
@@ -795,5 +795,14 @@
|
||||
"questCrabRageTitle": "Bouineuse Distrayante",
|
||||
"questCrabRageDescription": "Cette barre se remplit quand vous n'effectuez pas vos Quotidiennes. Quand elle est pleine, La Crabe Bouineuse retirera des PM à toute votre équipe !",
|
||||
"questCrabNotes": "Par une chaude matinée ensoleillée, vous profitez d'une journée à la plage pour lire quelques livres issus de votre liste d'été. Vous sursautez quand vous manquez de marcher sur un cristal brillant posé près d'un trou peu profond dans le sol.<br><br>\"Eh, fais gaffe où tu mets les pieds ! J'me fais un terrier là !\" dit une voix. Une crabe étonnamment imposante couverte d'une carapace décorative vous court devant les orteils en claquant des pinces. <br><br>Ah, c'est un terrier ? demandez-vous en regardant le trou peu profond. Il y a bien des cristaux et des coquillages autour, mais ça ne me semble pas très efficace en terme de cachette.<br><br> La crabe bégaie : \"Eh, c'est une zone sans jugement ici ! C'est en cours, j'y travaille... Je me suis juste laissée un peu emporter par la décoration. Des fois, un·e crabe peut bien bouiner, dit-elle en ajustant un coquillage. <br><br>Tu voudrais pas me filer un coup de main, puisque tu as l'air de si bien t'y connaître en terrier ?\"",
|
||||
"questCrabCompletion": "La crabe et vous trouvez comment travailler ensemble pour tout agencer, et vous réussissez à créer un terrier de sable très confortable. La crabe s'y niche avec plaisir. <br><br>\"Merci bien ! dit-elle en s'installant confortablement. Ça c'est un terrier fait sur-mesure pour moi. Je peux enfin profiter de toutes mes décorations. Tiens, prend ces p'tits gars avec toi comme marque de ma reconnaissance. C'est une offre que tu ne peux pas refuser !\""
|
||||
"questCrabCompletion": "La crabe et vous trouvez comment travailler ensemble pour tout agencer, et vous réussissez à créer un terrier de sable très confortable. La crabe s'y niche avec plaisir. <br><br>\"Merci bien ! dit-elle en s'installant confortablement. Ça c'est un terrier fait sur-mesure pour moi. Je peux enfin profiter de toutes mes décorations. Tiens, prend ces p'tits gars avec toi comme marque de ma reconnaissance. C'est une offre que tu ne peux pas refuser !\"",
|
||||
"questRaccoonBoss": "Raton-Vorace",
|
||||
"questRaccoonRageTitle": "Déferlement de Bibelots",
|
||||
"questRaccoonRageDescription": "Cette barre se remplit quand vous n'effectuez pas vos Quotidiennes. Quand elle est remplie, le Raton-Magnat reprendra des points de vie !",
|
||||
"questRaccoonRageEffect": "Le Raton-Vorace prend quelques unes des pierres que vous aviez collectées et les fourre dans le creux de l'arbre. Le boss regagne 30% de sa vie !",
|
||||
"questRaccoonDropRaccoonEgg": "Raton-Laveur (Œuf)",
|
||||
"questRaccoonUnlockText": "Débloque la possibilité d'acquérir des Œufs de Raton-Laveur au Marché.",
|
||||
"questRaccoonNotes": "Par un chaud jour d'Automne à Habitica, vous vous promenez posément au bord de la Crique de la Conquête. Vous apercevez des jolies pierres semi-précieuses sur la berge qui conviendrait parfaitement à un de vos projets.<br><br>Vous commencez à vous faire une petite réserve au pied d'un arbre. Mais étrangement, à chaque fois que vous revenez près de votre stock, la pile semble rétrécir, et non grossir...<br><br>Quelque chose cloche. Vous regardez autour de vous mais rien ne semble bouger. En tournant la tête vers la crique, vous apercevez une patte en forme de main sortir d'un trou dans le tronc de l'arbre et chaparder quelques unes de vos pierres !<br><br> \"Eh !, protestez-vous, j'ai travaillé dur pour amasser ces pierres, c'est pas cool de vous servir sans demander !\"<br><br>Une bouille masquée sort du trou et vous fait une grimace. \"Qui va à la chasse perd ce qu'il·elle amasse !\" dit le Raton-Laveur. Il se glisse à nouveau dans l'arbre, des sacs de pierres à la main. Vous plongez à sa poursuite ! Ces pierres valent la peine de se battre.",
|
||||
"questRaccoonText": "Raton-Magnat",
|
||||
"questRaccoonCompletion": "\"Honnêtement, je pense qu'il y a largement assez de jolies pierres pour nous deux, dites-vous en récupérant les dernières que vous aviez mises de côté, en voici quelques unes que j'avais mis de côté pendant ma collecte, j'en ai assez pour partager !\"<br><br>\"Anw, c'est sympa de ta part, dit le Raton-Laveur, j'ai aussi de chouettes petits cadeaux pour toi aussi, alors !\""
|
||||
}
|
||||
|
||||
@@ -241,5 +241,6 @@
|
||||
"mysterySet202405": "Ensemble du Dragon Doré",
|
||||
"mysterySet202406": "Ensemble du Spectre Boucanier",
|
||||
"mysterySet202407": "Ensemble de l'Axolotl Aimable",
|
||||
"mysterySet202408": "Ensemble Égide des Arcanes"
|
||||
"mysterySet202408": "Ensemble Égide des Arcanes",
|
||||
"mysterySet202409": "Ensemble du Mage Héliotrope"
|
||||
}
|
||||
|
||||
@@ -356,5 +356,38 @@
|
||||
"hatchingPotionKoi": "Koi",
|
||||
"hatchingPotionRoseGold": "Rózsa arany",
|
||||
"premiumPotionUnlimitedNotes": "Nem használható küldetésen szerzett kisállat tojásokon.",
|
||||
"hatchingPotionFungi": "Gomba"
|
||||
"hatchingPotionFungi": "Gomba",
|
||||
"hatchingPotionDessert": "Desszert",
|
||||
"hatchingPotionWindup": "Robot",
|
||||
"hatchingPotionTeaShop": "Teabolt",
|
||||
"foodPieShade": "Étcsokis pite",
|
||||
"foodPieCottonCandyBlueA": "egy szelet áfonyás pite",
|
||||
"foodPieCottonCandyPink": "Rózsaszín rebarbara pite",
|
||||
"foodPieCottonCandyPinkThe": "a rózsaszín rebarbara pite",
|
||||
"foodPieCottonCandyPinkA": "egy szelet rózsaszín rebarbara pite",
|
||||
"foodPieSkeletonThe": "a csontvelős pite",
|
||||
"foodPieSkeletonA": "egy szelet csontvelős pite",
|
||||
"foodPieBase": "Szimpla almás pite",
|
||||
"foodPieBaseA": "egy szelet szimpla almás pite",
|
||||
"foodPieSkeleton": "Csontvelős pite",
|
||||
"foodPieShadeThe": "az étcsokis pite",
|
||||
"foodPieCottonCandyBlue": "Áfonyás pite",
|
||||
"foodPieShadeA": "egy szelet étcsokis pite",
|
||||
"foodPieWhite": "Vanília pudingos pite",
|
||||
"foodPieCottonCandyBlueThe": "az áfonyás pite",
|
||||
"foodPieZombieA": "egy szelet romlott pite",
|
||||
"foodPieDesert": "Sivatagi desszert pite",
|
||||
"foodPieDesertA": "egy szelet sivatagi desszert pite",
|
||||
"foodPieRed": "Piros cseresznyés pite",
|
||||
"foodPieRedThe": "a piros cseresznyés pite",
|
||||
"foodPieRedA": "egy szelet piros cseresznyés pite",
|
||||
"foodPieWhiteA": "egy szelet vanília pudingos pite",
|
||||
"foodPieWhiteThe": "a vanília pudingos pite",
|
||||
"foodPieZombieThe": "a romlott pite",
|
||||
"foodPieGoldenThe": "az aranyló banánkrémes pite",
|
||||
"foodPieGolden": "Aranyló banánkrémes pite",
|
||||
"foodPieDesertThe": "a sivatagi desszert pite",
|
||||
"foodPieGoldenA": "egy szelet aranyló banánkrémes pite",
|
||||
"foodPieBaseThe": "a szimpla almás pite",
|
||||
"foodPieZombie": "Romlott pite"
|
||||
}
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
"collected": "Összegyűjtve",
|
||||
"abort": "Megszakít",
|
||||
"leaveQuest": "Küldetés elhagyása",
|
||||
"sureLeave": "Biztos, hogy kilépsz az aktuális küldetésből? Ezzel az eddig elért küldetés eredményeid is elvesznek.",
|
||||
"sureLeave": "Biztos, hogy kilépsz a küldetésből? Ezzel az eddig elért eredményeid is elvesznek.",
|
||||
"mustComplete": "Először teljesítened kell a következő küldetést: <%= quest %>.",
|
||||
"mustLvlQuest": "<%= level %> szintűnek kell lenned, hogy megvehesd ezt a küldetést!",
|
||||
"unlockByQuesting": "Ahhoz, hogy felold ezt a küldetést, teljesítened kell: <%= title %>.",
|
||||
"questConfirm": "Biztos vagy benne? Csak <%= questmembers %> a <%= totalmembers %> tagból csatlakozott ehhez a küldetéshez! Küldetések automatikusan elindulnak ha mindenki elfogadta vagy elutasította a meghívást.",
|
||||
"sureCancel": "Biztosan meg akarod szakítani ezt a küldetést? Minden meghívási beleegyezés el fog veszni. A küldetés tulajdonosánál marad a küldetés tekercs.",
|
||||
"sureAbort": "Biztosan meg akarod szakítani ezt a küldetést? Ez mindenkinek meg fogja szakítani a csapatodban, és eddig elért küldetés eredmények is elvesznek. A küldetés tulajdonosa visszakapja a küldetés tekercset.",
|
||||
"questConfirm": "Biztos vagy benne? Nem mindegyik csapattag csatlakozott ehhez a küldetéshez! A küldetések automatikusan elindulnak, ha mindenki reagált a meghívásra.",
|
||||
"sureCancel": "Biztosan meg akarod szakítani ezt a küldetést? A küldetés megszakítása megszünteti az összes elfogadott és folyamatban lévő meghívást. A küldetés tekercs visszakerül a tulajdonos birtokába.",
|
||||
"sureAbort": "Biztosan meg akarod szakítani ezt a küldetést? Ezzel az összes küldetés eredmény is elveszik. A küldetés tekercs visszakerül a tulajdonos birtokába.",
|
||||
"doubleSureAbort": "Tuti biztos vagy benne? Győződj meg róla, hogy nem fognak a többiek utálni!",
|
||||
"bossRageTitle": "Örjöngés",
|
||||
"bossRageDescription": "Ha ez a sáv megtelik, akkor az ellenség egy speciális támadást hajt végre!",
|
||||
@@ -65,7 +65,7 @@
|
||||
"loginIncentiveQuest": "Hogy fel tudd oldani ezt a küldetést, <%= count %> napon keresztül jelentkezz be a Habitica-ba!",
|
||||
"loginReward": "<%= count %> bejelentkezés",
|
||||
"questBundles": "Leárazott küldetéscsomag",
|
||||
"noQuestToStart": "Nincs küldetés amit el tudnál kezdeni? Nézd meg a küldetés boltot a piacon új megjelenésekért!",
|
||||
"noQuestToStart": "Nézz be a <%= questShop %>\">Küldetés boltba</a> egy új tekercsért!",
|
||||
"pendingDamage": "<%= damage %> függőben lévő sebzés",
|
||||
"pendingDamageLabel": "függőben lévő sebzés",
|
||||
"bossHealth": "<%= currentHealth %> / <%= maxHealth %> életerő",
|
||||
@@ -75,5 +75,28 @@
|
||||
"hatchingPotionQuests": "Varázslatos keltetőfőzet küldetések",
|
||||
"bossDamage": "Megsebezted a szörnyet!",
|
||||
"questInvitationNotificationInfo": "Meghívtak, hogy csatlakozz egy küldetéshez",
|
||||
"questItemsPending": "<%= amount %> tárgy elbírálás alatt"
|
||||
"questItemsPending": "<%= amount %> tárgy elbírálás alatt",
|
||||
"questAlreadyStarted": "A küldetés már elkezdődött.",
|
||||
"yourPartyIsNotOnQuest": "A csapatod jelenleg nincs küldetésen",
|
||||
"selectQuest": "Küldetés kiválasztása",
|
||||
"sureLeaveInactive": "Biztos, hogy kilépsz a küldetésből? Így nem fogsz tudni résztvenni benne.",
|
||||
"questAlreadyStartedFriendly": "A küldetés már elkezdődött, de bármikor lehetőséged lesz elcsípni a következőt!",
|
||||
"membersParticipating": "<%= accepted %> / <%= invited %> csapattag vesz részt",
|
||||
"chatBossDamage": "<%= username %> megtámadta <%= bossName %> szörnyet és <%= userDamage %> sebzést okozott. <%= bossName %> megtámadta a csapatot és <%= bossDamage %> sebzést okozott.",
|
||||
"ownerOnly": "Csak tulajdonos",
|
||||
"backToSelection": "Vissza a küldetés választóba",
|
||||
"chatBossDontAttack": "<%= username %> megtámadta <%= bossName %> szörnyet és <%= userDamage %> sebzést okozott. <%= bossName %> nem indított támadást, mert tiszteletben tarjta, hogy rendszer karbantartást követően lehetnek bugok, és nem akar senkit sem igazságtalanul megsebezni. Hamarosan folytatja a pusztítást!",
|
||||
"chatQuestAborted": "<%= username %> kiszállt a(z) <%= questName %> küldetésből.",
|
||||
"noQuestToStartTitle": "Nem találsz egy küldetést sem?",
|
||||
"chatBossDefeated": "Legyőztétek <%= bossName %> szörnyet! A küldetés résztvevői megkapják a győzelemért járó jutalmat.",
|
||||
"chatQuestCancelled": "<%= username %> lefújta a(z) <%= questName %> küldetést.",
|
||||
"newItem": "Új tárgy",
|
||||
"yourQuests": "Küldetéseid",
|
||||
"chatQuestStarted": "<%= questName %> küldetés elkezdődött.",
|
||||
"questOwner": "Küldetés tulajdonos",
|
||||
"tavernBossTired": "<%= bossName %> megpróbál eluszítani egy <%= rageName %> támadást, de túlságosan kimerült.",
|
||||
"chatFindItems": "<%= username %> talált egy <%= items %> tárgyat.",
|
||||
"cancelQuest": "Küldetés lemondása",
|
||||
"chatItemQuestFinish": "Minden tárgy megtalálva! A csapat megkapta a jutalmát.",
|
||||
"selectQuestModal": "Válassz küldetést"
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"questEvilSantaText": "Prémvadász mikulás",
|
||||
"questEvilSantaNotes": "Fájdalmas üvöltések visszhangzanak a jégmezőkön! Követed a vonyítást - melyet néha-néha vihogás szakít meg - egészen, míg a fák közt egy tisztásig el nem jutsz, ahol egy megtermett jeges medvét találsz, egy ketrecben, megláncolva, az életéért küzdve. A ketrece tetején egyrosszmájú kis démon táncol, egy lehordott mikulásjelmezben. Győzd le a prémvadász mikulást és ments meg az állatot!",
|
||||
"questEvilSantaCompletion": "A prémvadász mikulás felvonyít dühében és eltűnik az éjszakában. A hálás mackó különféle morgások és üvöltések útján megpróbál közölni valamit veled. Visszaviszed az istállókhoz, ahol Matt Boch, a bestiamester meghallgatja történetét, majd felhőköl az ijedtségtől. A medvének van egy kisbocsa, ami elmenekült a végtelen jégmezők felé, mikor anyját elfogták.",
|
||||
"questEvilSantaText": "Prémvadász Mikulás",
|
||||
"questEvilSantaNotes": "Fájdalmas üvöltések visszhangzanak a jégmezőkön! Követed a vonyítást - melyet néha-néha vihogás szakít meg - egészen, míg a fák közt egy tisztásig nem érsz, ahol egy megtermett jegesmedvét találsz egy ketrecben, megláncolva, az életéért küzdve. A ketrece tetején egy rosszmájú kis démon táncol leharcolt Mikulás jelmezben. Győzd le a prémvadász Mikulást és ments meg az állatot! <br><br><strong>Megjegyzés</strong>: A “Prémvadász Mikulás” egy összeadodó küldetés teljesítményt add, de a ritka hátas csak egyszer kerül hozzáadásra az istállódhoz.",
|
||||
"questEvilSantaCompletion": "A prémvadász mikulás felvonyít dühében és eltűnik az éjszakában. A hálás mackó különféle morgások és brummogások útján megpróbál közölni valamit veled. Visszaviszed az istállókhoz, ahol Matt Boch, a bestiamester meghallgatja történetét, majd felhőköl az ijedtségtől. A medvének van egy kisbocsa, ami elmenekült a végtelen jégmezők felé, mikor anyját elfogták.",
|
||||
"questEvilSantaBoss": "Prémvadász mikulás",
|
||||
"questEvilSantaDropBearCubPolarMount": "Jegesmedve (hátas)",
|
||||
"questEvilSanta2Text": "Találd meg a kölyköt",
|
||||
"questEvilSanta2Notes": "Amikor a prémvadász mikulás elfogta a jegesmedve hátast, a kisbocsa elfutott a végtelen jégmezők felé. Az erdő csendjében gallyak és a hó ropogását hallod. Mancsnyomok! Sietve elkezditek követni, merre vezetnek. Találd meg az összes nyomot és törött gallyat, és juss el a kisbocshoz!",
|
||||
"questEvilSanta2Completion": "Megtaláltad a kölyköt ! Mindig is veled fog maradni.",
|
||||
"questEvilSanta2Notes": "Amikor a prémvadász mikulás elfogta a jegesmedve hátast, a kisbocsa elfutott a végtelen jégmezők felé. Az erdő csendjében gallyak és a hó ropogását hallod. Mancsnyomok! Sietve elkezditek követni, merre vezetnek. Találd meg az összes nyomot és törött gallyat, és juss el a kisbocshoz! <br><br><strong>Megjegyzés</strong>: A “Találd meg a kölyköt” egy összeadodó küldetés teljesítményt add, de a ritka kisállat csak egyszer kerül hozzáadásra az istállódhoz.",
|
||||
"questEvilSanta2Completion": "Megtaláltad a kölyköt ! Mostantól mindig veled fog maradni.",
|
||||
"questEvilSanta2CollectTracks": "Nyomok",
|
||||
"questEvilSanta2CollectBranches": "Törött gallyak",
|
||||
"questEvilSanta2DropBearCubPolarPet": "Jegesmedve (háziállat)",
|
||||
@@ -15,52 +15,52 @@
|
||||
"questGryphonCompletion": "Miután legyőzted, a hatalmas bestia megszégyenülten visszasomfordál a gazdájához. \"Szavamra! Kiváló munka, kalandorok!\" <strong>baconsaur</strong> felkiált: \"Kérlek fogadjátok el pár grifftojást. Biztos vagyok benne, hogy jól fel fogjátok őket nevelni!\"",
|
||||
"questGryphonBoss": "A tüzes griffmadár",
|
||||
"questGryphonDropGryphonEgg": "Griff (tojás)",
|
||||
"questGryphonUnlockText": "Elérhetővé teszi a griffmadártojások megvásárlását a piacon",
|
||||
"questGryphonUnlockText": "Elérhetővé teszi a griffmadár tojások megvásárlását a piacon",
|
||||
"questHedgehogText": "A sünszörny",
|
||||
"questHedgehogNotes": "Hedgehogs are a funny group of animals. They are some of the most affectionate pets a Habiteer could own. But rumor has it, if you feed them milk after midnight, they grow quite irritable. And fifty times their size. And <strong>InspectorCaracal</strong> did just that. Oops.",
|
||||
"questHedgehogCompletion": "A csapatod sikeresen lenyugtatta a sündisznót! Miután összement normál méretre visszabiceg a tojásaihoz, majd újra megjelenik cincogó hangot hallatva: pár tojást bökdös éppen a csapatod irányába. Remélhetőleg ezek a sünik jobban szeretik a tejet!",
|
||||
"questHedgehogBoss": "Sünszörny",
|
||||
"questHedgehogDropHedgehogEgg": "Sün (tojás)",
|
||||
"questHedgehogUnlockText": "Elérhetővé teszi a sündisznótojások vásárlását a piacon",
|
||||
"questHedgehogUnlockText": "Elérhetővé teszi a sündisznó tojások megvásárlását a piacon",
|
||||
"questGhostStagText": "A tavasz szelleme",
|
||||
"questGhostStagNotes": "Ahh, Spring. The time of year when color once again begins to fill the landscape. Gone are the cold, snowy mounds of winter. Where frost once stood, vibrant plant life takes its place. Luscious green leaves fill in the trees, grass returns to its former vivid hue, a rainbow of flowers rise along the plains, and a white mystical fog covers the land! ... Wait. Mystical fog? \"Oh no,\" <strong>InspectorCaracal</strong> says apprehensively, \"It would appear that some kind of spirit is the cause of this fog. Oh, and it is charging right at you.\"",
|
||||
"questGhostStagCompletion": "A látszólag sértetlen szellem leereszti az orrát a földre. Egy nyugtató hang burkolja be a csapatotokat. \"Elnézést a viselkedésemért. Épp most ébredtem a szunnyadásomból és úgy tűnik az elmém még nem teljesen ébredt fel. Fogadjátok el ezeket bocsánatkérésem jeléül.\" Egy csomag tojás materializálódik előttetek a füvön. A szellem szó nélkül elszelel, virágokat hullajtva maga után.",
|
||||
"questGhostStagBoss": "Szellem szarvas",
|
||||
"questGhostStagDropDeerEgg": "Őz (tojás)",
|
||||
"questGhostStagUnlockText": "Elérhetővé teszi a őztojások vásárlását a piacon",
|
||||
"questGhostStagUnlockText": "Elérhetővé teszi a őz tojások megvásárlását a piacon",
|
||||
"questRatText": "A patkánykirály",
|
||||
"questRatNotes": "Hulladék! Megoldatlan Napi feladatok hatalmas halmai hevernek szerte Habitikában. A probléma annyira komollyá vált, hogy patkányhordák portyáznak mindenütt. Észreveszed, hogy @Pandah az egyiküket babusgatja éppen. Azt magyarázza, hogy a patkányok nemes lények, akik megoldatlan Napi feladatokkal táplálkoznak. A probléma az, hogy a feladatok a csatornába pottyantak, veszélyes gödröt hozva létre, melyet ki kell takarítani. Ahogy épp leereszkedsz a csatornarendszerbe, egy hatalmas véreres szemű és csonka fogú patkány támad rád, védelmezve a hordáját. Elmenekülsz rettegve, vagy szembe szállsz a Patkánykirállyal?",
|
||||
"questRatCompletion": "Az utolsó ütésedtől erőtlenné válik a rettentő patkány és a szemei szürkévé halványodnak. A fenevad számos kis patkánnyá esik szét és rettegve elszaladnak. Észreveszed, ahogy @Pandah áll a hátad mögött, miközben a hajdani hatalmas lényt szemléli. Azt mondja, hogy Habitika lakosait fellelkesítette a hősiességed és gyorsan befejezik a félkész feladataikat. Ennek ellenére figyelmeztet, hogy figyelmesnek kell lenned, hogy a Patkánykirály soha se térjen vissza. Fizetségül @Pandah patkánytojásokat kínál fel neked. Az aggodalmas tekintetedet észrevéve így szól: \"Nagyszerű háziállatok lesznek belőlük.\"",
|
||||
"questRatBoss": "Patkánykirály",
|
||||
"questRatDropRatEgg": "Patkány (tojás)",
|
||||
"questRatUnlockText": "Elérhetővé teszi a patkánytojások megvásárlását a piacon",
|
||||
"questRatUnlockText": "Elérhetővé teszi a patkány tojások megvásárlását a piacon",
|
||||
"questOctopusText": "A polipszörny hívása",
|
||||
"questOctopusNotes": "@Urse, egy lángoló tekintetű ifjú írnok, a segítségeteket kérte egy rejtélyes barlang feltárásában a tengerpart közelében. A szürkületi dagályterek között áll a masszív, függő- és állócseppkövekből álló kapuja a barlangnak. Ahogy közeledtek ehhez a kapuhoz, egy sötét örvény alakul ki. Ledöbbenten figyelitek, ahogy egy tintahal-szerű sárkány emelkedik ki innen. \"A csillagok ragacsos ivadéka felébredt!\" üvölti őrülten @Urse. \"Több decilliárd év után, a nagy Polipszörny újra szabad és örömökre éhes!\"",
|
||||
"questOctopusCompletion": "Egy végső csapás után a szörnyet beszippantja az örvény, ahonnan jött. Nem tudod eldönteni, hogy @Urse boldog-e a győzelmetekkel, vagy szomorú, hogy eltűnt a bestia. Szótlanul rámutat három trutymákos, óriási tojásra, melyek egy fészeknyi arany között hevernek a mellettetek lévő dagálytérben. \"Valószínűleg csak polip-tojások\" - mondod idegesen. Az úton hazafelé @Urse viharosan firkál a naplójába, és olyan érzésetek támad, hogy nem utoljára láttátok a hatalmas Polipszörnyet.",
|
||||
"questOctopusBoss": "Polipszörny",
|
||||
"questOctopusDropOctopusEgg": "Polip (tojás)",
|
||||
"questOctopusUnlockText": "Elérhetővé teszi a poliptojások megvásárlását a piacon",
|
||||
"questOctopusUnlockText": "Elérhetővé teszi a polip tojások megvásárlását a piacon",
|
||||
"questHarpyText": "Segítség! Hárpia!",
|
||||
"questHarpyNotes": "A bátor kalandor @UncommonCriminal eltűnt az erdőben, miközben egy pár napja látott szárnyas szörny nyomát követte. Épp a keresését kezdenétek, amikor egy sebesült papagáj száll a karodra, aminek egy csúnya sebhely borítja gyönyörű tollazatát. A lábához rögzítve egy firkált üzenet található, amiben az szerepel, hogy a papagájok védelmezése közben @UncommonCriminal-t fogjul ejtette egy gonosz Hárpia és kétségbeesetten kell segítségetek a szökéséhez. Követitek a madarat, legyőzitek a Hárpiát és megmentitek @UncommonCriminal-t?",
|
||||
"questHarpyCompletion": "Egy utolsó csapás leteríti a Hárpiát és tollak repülnek minden irányba. Gyorsan felmásztok a fészkébe és megtaláljátok @UncommonCriminal-t és körülötte a papagáj tojásokat. Csapatmunkában gyorsan visszateszitek a tojásokat a környező fészkekbe. Az ijedt papagáj, amelyik megtalált benneteket hangosan károg, miközben több tojást a karjaitokba ejt. \"A Hárpia támadása miatt néhány tojás védelmezésre szorul,\" magyarázza @UncommonCriminal. \"Úgy tűnik, hogy tiszteletbeli papagájok lettetek.\"",
|
||||
"questHarpyBoss": "Hárpia",
|
||||
"questHarpyDropParrotEgg": "Papagáj (tojás)",
|
||||
"questHarpyUnlockText": "Elérhetővé teszi a papagájtojások megvásárlását a piacon",
|
||||
"questHarpyUnlockText": "Elérhetővé teszi a papagáj tojások megvásárlását a piacon",
|
||||
"questRoosterText": "A kakas tombolása",
|
||||
"questRoosterNotes": "A farmer @extrajordanary éveken át kakasokat használt ébresztőórának. De most egy hatalmas kakas megjelent és hangosabban károg, mint bármelyik más korábban - és felébreszt mindenkit Habiticában! Habitica alváshiányos lakói szenvednek a napi feladataikkal. @Pandoro úgy döntött, hogy itt az ideje véget vetni ennek. \"Kérem, van valaki aki csendesebb kukorékolásra tudná bírni a kakast?\" Önként jelentkezel, megközelíted a kakast egy korai reggelen - de megfordul, hatalmas szárnyaival csapkod, éles karmait megvillantja és egy harci rikoltást hallat.",
|
||||
"questRoosterCompletion": "Ravaszsággal és erővel megszelídítetted a vad bestiát. A fülei, amik korábban tollakkal és félig elfeledett teendőkkel voltak tele, már tiszták, mint a vízfolyás. Halkan kukorékol egyet neked és a válladnál átölel a csőrével. A következő nap, amikor már indulnál tovább, @EmeraldOx odarohan hozzád egy letakart kosárral. \"Várj! Amikor bementem a tanyára ma reggel, a kakas odanyomta ezeket az ajtóhoz, ahol aludtál. Szerintem azt szeretné, hogy ez a tied legyen.\" Felfeded a kosár tartalmát és három törékeny tojást látsz benne.",
|
||||
"questRoosterBoss": "Kakas",
|
||||
"questRoosterDropRoosterEgg": "Kakas (tojás)",
|
||||
"questRoosterUnlockText": "Elérhetővé teszi a kakastojások megvásárlását a piacon",
|
||||
"questRoosterUnlockText": "Elérhetővé teszi a kakas tojások megvásárlását a piacon",
|
||||
"questSpiderText": "A fagyos pókféle",
|
||||
"questSpiderNotes": "Ahogy lehűl az idő, vékony dér kezdi beborítani Habitica lakóinak ablaküvegeit, csipkés hálók formájában...kivéve @Arcosine-nak, akinek az ablakait teljesen befagyasztotta a Zúzmarapók, ami beköltözött a házába. Jaj.",
|
||||
"questSpiderCompletion": "A Zúzmarapók összeesik és maga után hagy egy kis halom deret és egy párat az elbűvölt petezsákjából. @Arcosine fölöttébb sietve felajánlja Nektek, mint jutalmat - talán fel tudnátok nevelni néhány fenyegetést nem jelentő pókot, mint háziállatot?",
|
||||
"questSpiderBoss": "Pók",
|
||||
"questSpiderDropSpiderEgg": "Pók (tojás)",
|
||||
"questSpiderUnlockText": "Elérhetővé teszi a póktojások megvásárlását a piacon",
|
||||
"questSpiderUnlockText": "Elérhetővé teszi a pók tojások megvásárlását a piacon",
|
||||
"questGroupVice": "Vice the Shadow Wyrm",
|
||||
"questVice1Text": "Vétek, 1. rész: Szabadulj meg a sárkány befolyásától",
|
||||
"questVice1Notes": "<p>Mendemonda kering egy szörnyű gonoszról ami Habitica hegyének barlangjaiban tanyázik. A szörnyeteg puszta jelenléte a térségben megtöri az erős akaratú hősöket, akik rossz szokásokat kezdenek felvenni és eltunyulnak! A szörnyeteg egy hatalmas sárkány, mérhetetlen hatalommal, árnyakkal körbevéve: Vétek, az állságos Árnyék Wyrm. Bátor kalandorok kerekednek föl, és megkísérlik legyőzni egyszer és mindekorra, de csak akkor ha tényleg hisznek abban, hogy ellen tudnak állni hihetelen hatalmának.</p><h3>Vétek, 1. rész:: </h3><p>Mégis hogyan akartok küzdeni egy olyan szörnyeteggel szemben, ami máris átvette az uralmat felettetek? Ne essetek áldozatúl a lustaságnak és vétkezésnek! Kemény munkával küzdjetek a sárkány sötét befolyásával és rázzátok le azt magatokról!</p>",
|
||||
"questVice1Notes": "Mendemonda kering egy szörnyű gonoszról ami Habitica hegyének barlangjaiban tanyázik. A szörnyeteg puszta jelenléte a térségben megtöri az erős akaratú hősöket, akik rossz szokásokat kezdenek felvenni és eltunyulnak! A szörnyeteg egy hatalmas sárkány, mérhetetlen hatalommal, árnyakkal körbevéve: Vétek, az állságos Árnyék Wyrm. Bátor kalandorok kerekednek föl, és megkísérlik legyőzni egyszer és mindekorra, de csak akkor ha tényleg hisznek abban, hogy ellen tudnak állni hihetelen hatalmának.<br><br>Mégis hogyan akartok küzdeni egy olyan szörnyeteggel szemben, ami máris átvette az uralmat felettetek? Ne essetek áldozatul a lustaságnak és vétkezésnek! Küzdjetek keményen a sárkány sötét befolyásával szemben és rázzátok le azt magatokról!",
|
||||
"questVice1Boss": "A Bűn Árnyékában",
|
||||
"questVice1Completion": "With Vice's influence over you dispelled, you feel a surge of strength you didn't know you had return to you. Congratulations! But a more frightening foe awaits...",
|
||||
"questVice1DropVice2Quest": "Bűn 2. rész (tekercs)",
|
||||
@@ -137,7 +137,7 @@
|
||||
"questSeahorseCompletion": "A most megszelidített tengeri csikó engedelmesen úszik az oldaladon. \"Oh, nézd!\" - mondja Kiwibot. - \"Azt szeretné ha vigyáznál a gyerekeire\". Három tojást ad neked. \"Jól neveld fel őket!\" mondja. \"Várunk sok szeretettel a Halogató Lóverseny bármelyik napján!\"",
|
||||
"questSeahorseBoss": "Tengericsikó",
|
||||
"questSeahorseDropSeahorseEgg": "Csikóhal (tojás)",
|
||||
"questSeahorseUnlockText": "Elérhetővé teszi a csikóhaltojások megvásárlását a piacon",
|
||||
"questSeahorseUnlockText": "Elérhetővé teszi a csikóhal tojások megvásárlását a piacon",
|
||||
"questGroupAtom": "Attack of the Mundane",
|
||||
"questAtom1Text": "Attack of the Mundane, Part 1: Dish Disaster!",
|
||||
"questAtom1Notes": "A jól megérdemelt pihenésedet töltöd a Tisztáramosott tó partján, s amint megérkezel észre veszel valamit..... A tó tele van mosatlan edényekkel! Hogy történhett ez? Ilyen állapotban nem hagyhatod a tavat. Csak egy dolgot tehetsz: elmosogatod az edényeket és megmented a nyaraló helyet. Jobb lesz ha találsz egy szappant és tisztára mosod a piszkot. Jó sok szappan fog kelleni...",
|
||||
@@ -159,13 +159,13 @@
|
||||
"questOwlCompletion": "The Night-Owl fades before the dawn,<br>But even so, you feel a yawn.<br>Perhaps it's time to get some rest?<br>Then on your bed, you see a nest!<br>A Night-Owl knows it can be great<br>To finish work and stay up late,<br>But your new pets will softly peep<br>To tell you when it's time to sleep.",
|
||||
"questOwlBoss": "Az éjjeli bagoly",
|
||||
"questOwlDropOwlEgg": "Bagoly (tojás)",
|
||||
"questOwlUnlockText": "Elérhetővé teszi a bagolytojások megvásárlását a piacon",
|
||||
"questOwlUnlockText": "Elérhetővé teszi a bagoly tojások megvásárlását a piacon",
|
||||
"questPenguinText": "A Baromfi Hideg",
|
||||
"questPenguinNotes": "Habár egy forró nyári nap van Habitica legdélebbi csücskében, egy természetellenes fagy ereszkedett a Tóra. Erős, hideg szelek tombolnak, ahogy a part elkezd befagyni. Jégcsapok szögellnek ki a talajból, arrébb nyomva a füvet és a földet. @Melynnrose és @Breadstrings odaszalad hozzád.<br><br>\"Segíts!\" mondja @Melynnrose. \"Idehoztunk egy óriási pingvint, hogy befagyassza a tavat, hogy korcsolyázhassunk rajta, de elfogyott a halunk, amivel etethetjük!\"<br><br>\"Mérges lett és fagyos leheletével befagyaszt mindent amit lát!!\" mondja @Breadstrings. \"Kérlek, győzd le ezt a pingvint, mielőtt mindnyájunkat beborít jéggel!\" Úgy néz ki, hogy... <em>le kell hűtened</em> ezt a pingvint.",
|
||||
"questPenguinCompletion": "A pingvin legyőzésével elolvadt a jég is. Az óriás pingvin lenyugszik a napsütésben és elszürcsöl egy extra vödör halat, amit találtál. Arrébb korcsolyázik a tavon, finoman maga elé fújva, hogy sima, szikrázó jeget hozzon létre maga előtt. Milyen fura madár! \"Úgy tűnik, hogy egy pár tojást hátrahagyatott\" mondja @Painter de Cluster. <br><br>@Rattify felnevet. \"Talán majd ezek a pingvinek egy kicsit... higgadtabbak lesznek?\"",
|
||||
"questPenguinBoss": "Fagypingvin",
|
||||
"questPenguinDropPenguinEgg": "Pingvin (tojás)",
|
||||
"questPenguinUnlockText": "Elérhetővé teszi a pingvintojások megvásárlását a piacon",
|
||||
"questPenguinUnlockText": "Elérhetővé teszi a pingvin tojások megvásárlását a piacon",
|
||||
"questStressbeastText": "A Stoïkalm Sztyeppék Utálatos Stresszörnye",
|
||||
"questStressbeastNotes": "Complete Dailies and To-Dos to damage the World Boss! Incomplete Dailies fill the Stress Strike Bar. When the Stress Strike bar is full, the World Boss will attack an NPC. A World Boss will never damage individual players or accounts in any way. Only active accounts who are not resting in the inn will have their incomplete Dailies tallied.<br><br>~*~<br><br>The first thing we hear are the footsteps, slower and more thundering than the stampede. One by one, Habiticans look outside their doors, and words fail us.<br><br>We've all seen Stressbeasts before, of course - tiny vicious creatures that attack during difficult times. But this? This towers taller than the buildings, with paws that could crush a dragon with ease. Frost swings from its stinking fur, and as it roars, the icy blast rips the roofs off our houses. A monster of this magnitude has never been mentioned outside of distant legend.<br><br>\"Beware, Habiticans!\" SabreCat cries. \"Barricade yourselves indoors - this is the Abominable Stressbeast itself!\"<br><br>\"That thing must be made of centuries of stress!\" Kiwibot says, locking the Tavern door tightly and shuttering the windows.<br><br>\"The Stoïkalm Steppes,\" Lemoness says, face grim. \"All this time, we thought they were placid and untroubled, but they must have been secretly hiding their stress somewhere. Over generations, it grew into this, and now it's broken free and attacked them - and us!\"<br><br>There's only one way to drive away a Stressbeast, Abominable or otherwise, and that's to attack it with completed Dailies and To-Dos! Let's all band together and fight off this fearsome foe - but be sure not to slack on your tasks, or our undone Dailies may enrage it so much that it lashes out...",
|
||||
"questStressbeastBoss": "Az Utálatos Stresszörny",
|
||||
@@ -634,5 +634,6 @@
|
||||
"questVelociraptorCompletion": "You burst through the grass, confronting the Veloci-Rapper.<br><br><em>See here, rapper, you’re no quitter,<br>You’re Bad Habits' hardest hitter!<br>Check off your To-Dos like a boss,<br>Don’t mourn over one day’s loss!</em><br><br>Filled with renewed confidence, it bounds off to freestyle another day, leaving behind three eggs where it sat.",
|
||||
"questVelociraptorBoss": "Veloci-Rapper",
|
||||
"questVelociraptorDropVelociraptorEgg": "Velociraptor (Egg)",
|
||||
"questVelociraptorUnlockText": "Unlocks purchasable Velociraptor eggs in the Market"
|
||||
"questVelociraptorUnlockText": "Unlocks purchasable Velociraptor eggs in the Market",
|
||||
"evilSantaAddlNotes": "Ne feledd, hogy a “Prémvadász Mikulás” és a “Találd meg a kölyköt” összeadodó küldetés teljesítményt add, de a ritka kisállat és hátas csak egyszer kerül hozzáadásra az istállódhoz."
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"settings": "Beállítások",
|
||||
"language": "Nyelv",
|
||||
"americanEnglishGovern": "Ha a fordításokban ellentmondás alakul ki, akkor az amerikai angol verzió a mérvadó.",
|
||||
"helpWithTranslation": "Szeretnél a Habitica fordításában segíteni? Látogas meg <a href=\"/groups/guild/7732f64c-33ee-4cce-873c-fc28f147a6f7\">the Aspiring Linguists Guild</a> elnevezésű céhet!",
|
||||
"helpWithTranslation": "Szeretnél a Habitica fordításában segíteni? Látogasd meg a <a href=\"/groups/guild/7732f64c-33ee-4cce-873c-fc28f147a6f7\">Habitica Weblate oldalát</a>!",
|
||||
"stickyHeader": "Rögzített fejléc",
|
||||
"newTaskEdit": "Új feladatok megnyitása szerkesztő módban",
|
||||
"dailyDueDefaultView": "A napi feladatok \"határidő\" fülének mutatása alapértelmezettként",
|
||||
@@ -26,7 +26,7 @@
|
||||
"resetAccPop": "Kezdj új kalandot, ezzel elveszítve az összes szintedet, aranyadat, felszerelésedet, előzményeidet és feladataidat.",
|
||||
"deleteAccount": "Fiók törlése",
|
||||
"deleteAccPop": "Habitica fiókod törlése és megszüntetése.",
|
||||
"feedback": "Ha szeretnél nekünk visszajelzést küldeni, írd be az alábbi mezőbe - szeretnénk tudni hogy mi tetszett és mi nem tetszett neked a Habitica-ban! Nem beszélsz jól angolul? Semmi probléma! Használd azt a nyelved amelyiket szeretnéd.",
|
||||
"feedback": "Ha szeretnél nekünk visszajelzést küldeni, írd be az alábbi mezőbe - érdekel a véleményed! Visszajelzésed névtelen lesz amennyiben nem adsz meg elérhetőséget. Nem beszélsz jól angolul? Semmi probléma! Használd azt a nyelved amelyiket szeretnéd.",
|
||||
"qrCode": "QR kód",
|
||||
"dataExport": "Adatok exportálása",
|
||||
"saveData": "Néhány opció az adataid elmentéséhez.",
|
||||
@@ -36,13 +36,13 @@
|
||||
"userData": "Felhasználói adatok",
|
||||
"exportUserData": "Felhasználói adatok exportálása:",
|
||||
"export": "Exportálás",
|
||||
"xml": "(XML)",
|
||||
"json": "(JSON)",
|
||||
"xml": "XML",
|
||||
"json": "JSON",
|
||||
"customDayStart": "Egyéni napkezdés",
|
||||
"sureChangeCustomDayStartTime": "Biztosan meg akarod változtatni az egyéni napkezdést? A napi feladataid legközelebb akkor indulnak újra, amikor a Habitica-t <%= time %> után használod. Bizonyosodj meg róla, hogy ezelőtt befejezed a napi feladataid!",
|
||||
"customDayStartHasChanged": "Egyéni napkezdés időpontja megváltozott.",
|
||||
"nextCron": "A napi feladataid legközelebb akkor indulnak újra, amikor a Habitica-t <%= time %> után használod. Bizonyosodj meg róla, hogy ezelőtt befejezed a napi feladataid!",
|
||||
"customDayStartInfo1": "A Habitica-n a napi feladataid újraindítása a saját időzónádon belül éjfélre van alapértelmezve. Ezt az időt itt tudod testreszabni.",
|
||||
"customDayStartInfo1": "A Habitica újraindítja a napi teendőidet minden nap éjfélkor, saját időzónád szerint. Az alapértelmezettől eltérő időt is megadhatsz.",
|
||||
"misc": "Egyéb",
|
||||
"showHeader": "Fejléc mutatása",
|
||||
"changePass": "Jelszó megváltoztatása",
|
||||
@@ -54,7 +54,7 @@
|
||||
"confirmPass": "Új jelszó megerősítése",
|
||||
"newUsername": "Új felhasználónév",
|
||||
"dangerZone": "Veszélyzóna",
|
||||
"resetText1": "VIGYÁZAT! Ez alap állapotba állítja a fiókod bizonyos részeit. Ezt alapvetően nem ajánljuk, de bizonyos embereknek hasznos lehet, ha még csak egy rövid ideig használták az oldalt.",
|
||||
"resetText1": "<b>VIGYÁZAT!</b> Ez alap állapotba állítja a fiókod bizonyos részeit. Ezt alapvetően nem ajánljuk, de bizonyos embereknek hasznos lehet, ha még csak rövid ideig használták az oldalt.",
|
||||
"resetText2": "El fogod veszíteni az összes szintedet, aranyadat és tapasztalati pontodat. Minden feladatod (kivéve a kihívásokhoz tartozóak) véglegesen törlődik az előzményekkel együtt. Minden tárgyadat elveszíted, de ezeket később visszavásárolhatod a korlátozott példányszámú tárgyak és a rejtélyes tárgyak esetében is, amiket most birtokolsz (megfelelő kasztba kell tartoznod, hogy a kaszt-specifikus tárgyakat megvehesd). A jelenlegi kasztod, háziállataid és hátasaid megmaradnak. Esetleg jobban jársz az újjászületés gömbjével, mely biztonságosabb opció és megőrzi a feladataidat is.",
|
||||
"deleteLocalAccountText": "Biztos vagy benne? Ezzel örökre törlődik a felhasználói fiókod és nem lesz lehetőséged visszaállítani! A Habitica használatához újra regisztrálnod kell. Összegyűjtött vagy elköltött drágakövek nem lesznek visszatérítve. Ha teljesen biztos vagy benne, akkor írd be a jelszavadat az alábbi mezőbe.",
|
||||
"deleteSocialAccountText": "Biztos vagy benne? Ezzel örökre törlődik a felhasználói fiókod és nem lesz lehetőséged visszaállítani! A Habitica használatához újra regisztrálnod kell. Összegyűjtött vagy elköltött drágakövek nem lesznek visszatérítve. Ha teljesen biztos vagy benne, akkor írd be \"<%= magicWord %>\" az alábbi mezőbe.",
|
||||
@@ -189,5 +189,36 @@
|
||||
"onlyPrivateSpaces": "Csak privát helyeken",
|
||||
"everywhere": "Mindenhol",
|
||||
"suggestMyUsername": "Javasolj felhasználónevet",
|
||||
"bannedWordUsedInProfile": "A nyilvános neved és leírásod sértő nyelvezetet tartalmazott."
|
||||
"bannedWordUsedInProfile": "A nyilvános neved és leírásod sértő nyelvezetet tartalmazott.",
|
||||
"generalSettings": "Általános beállítások",
|
||||
"siteData": "Webhely adat",
|
||||
"taskSettings": "Feladat beállítások",
|
||||
"confirmCancelChanges": "Biztos? A nem mentett változtatások el fognak veszni.",
|
||||
"account": "Felhasználó",
|
||||
"loginMethods": "Bejelentkezési mód",
|
||||
"character": "Karakter",
|
||||
"siteLanguage": "Webhely nyelv",
|
||||
"showLevelUpModal": "Szint lépéskor",
|
||||
"showHatchPetModal": "Amikor kikeltesz egy kisállatot",
|
||||
"showRaisePetModal": "Amikor egy kisállatot hátassá nevelsz",
|
||||
"showStreakModal": "Amikor elérsz egy széria jutalmat",
|
||||
"baileyAnnouncement": "Legfrissebb Bailey közlemény",
|
||||
"view": "Megtekintés",
|
||||
"feedbackPlaceholder": "Ide írhatsz visszajelzést",
|
||||
"downloadCSV": "CSV letöltése",
|
||||
"downloadAs": "Letöltés mint",
|
||||
"yourUserData": "Felhasználói adatod",
|
||||
"taskHistory": "Feladat előzmények",
|
||||
"yourUserDataDisclaimer": "Itt tölthetsz le egy másolatot a feladat előzményeidről vagy az összes felhasználói adatodról.",
|
||||
"useridCopied": "Felhasználói azonosító vágólapra másolva.",
|
||||
"userIdTooltip": "A felhasználói azonosító egy egyedi számsor, amit a Habitica automatikusan generál amikor egy új játékos csatlakozik, a felhasználó névhez hasonlóan. Viszont a felhasználó névvel ellentétben az azonosítót nem lehet megváltoztatni.",
|
||||
"developerMode": "Fejlesztői mód",
|
||||
"adjustment": "Beállítás",
|
||||
"dayStartAdjustment": "Nap kezdés beállítása",
|
||||
"developerModeTooltip": "A Habitica rendelkezik egy fejlesztő móddal, ami további funkciók hozzáadását teszi lehetővé API-n keresztül.",
|
||||
"api": "API",
|
||||
"currentPass": "Jelenlegi jelszó",
|
||||
"resetDetail1": "El fogod veszíteni az összes szintedet, aranyad és tapasztalat pontodat.",
|
||||
"resetDetail2": "A jelenlegi osztályod, eredményeid, kisállataid és hátasaid megmaradnak.",
|
||||
"resetDetail3": "Az összes feladatod (a kihívások kivételével) végleg törlésre kerülnek, és az ezekhez kapcsolódó előzmény adataid is elvesznek."
|
||||
}
|
||||
|
||||
@@ -376,5 +376,6 @@
|
||||
"hatchingPotionPinkMarble": "de Mármore Rosa",
|
||||
"hatchingPotionTeaShop": "da Loja de Chá",
|
||||
"hatchingPotionRoseGold": "de Ouro Rosa",
|
||||
"hatchingPotionFungi": "do Reino dos Fungos"
|
||||
"hatchingPotionFungi": "do Reino dos Fungos",
|
||||
"questEggRaccoonAdjective": "um ganancioso"
|
||||
}
|
||||
|
||||
@@ -3098,8 +3098,8 @@
|
||||
"weaponSpecialSummer2024WarriorNotes": "Alguns dentes de tubarão perdidos transformam-se em uma arma capaz de infligir estragos de qualquer direção. Aumenta Força em <%= str %>. Equipamento de Edição Limitada do Verão de 2024.",
|
||||
"weaponSpecialSummer2024MageNotes": "Estes fantásticos tentáculos podem distrair, desviar e direcionar magia, tudo de uma só vez. Aumenta Inteligência em <%= int %> e Percepção em <%= per %>. Equipamento de Edição Limitada do Verão de 2024.",
|
||||
"weaponArmoireOptimistsCloverNotes": "Ora ora, você viu só o que encontrou? Nunca é demais ter um pouco de sorte extra ao seu lado. Aumenta Força e Constituição em <%= attrs %> cada. Armário Encantado: Conjunto do Otimista (Item 4 de 4).",
|
||||
"weaponArmoirePottersWheelNotes": "Jogue um pouco de argila nesta roda e faça uma tigela ou uma caneca ou um vaso ou uma tigela ligeiramente diferente. Se tiver sorte, um fantasma pode vir te prestar uma visita enquanto você cria! Aumenta Percepção em <%= por %>. Armário Encantado: Conjunto de Oleiro (Item 4 de 4).",
|
||||
"weaponArmoireShadyBeachUmbrellaNotes": "A sombra deste guarda-chuva arco-íris esconde você brevemente da estrela do dia e de quaisquer outros incômodos indesejados. Aumenta Percepção em <%= por %>. Armário Encantado: Conjunto À Beira Mar (Item 3 de 4).",
|
||||
"weaponArmoirePottersWheelNotes": "Jogue um pouco de argila nesta roda e faça uma tigela ou uma caneca ou um vaso ou uma tigela ligeiramente diferente. Se tiver sorte, um fantasma pode vir te prestar uma visita enquanto você cria! Aumenta Percepção em <%= per %>. Armário Encantado: Conjunto de Oleiro (Item 4 de 4).",
|
||||
"weaponArmoireShadyBeachUmbrellaNotes": "A sombra deste guarda-chuva arco-íris esconde você brevemente da estrela do dia e de quaisquer outros incômodos indesejados. Aumenta Percepção em <%= per %>. Armário Encantado: Conjunto À Beira Mar (Item 3 de 4).",
|
||||
"weaponSpecialSummer2024MageText": "Varinha da Anêmona do Mar",
|
||||
"weaponSpecialSummer2024HealerText": "Cajado do Caramujo Marinho",
|
||||
"weaponSpecialSummer2024HealerNotes": "Você vai se surpreender ao descobrir o quão dura a concha na ponta deste cajado é. Aumenta Inteligência em <%= int %>. Equipamento de Edição Limitada do Verão de 2024.",
|
||||
|
||||
@@ -780,5 +780,16 @@
|
||||
"questGiraffeNotes": "Você está passeando pela grama alta da Savana de Tvagaresempr, desfrutando de um agradável passeio na natureza - uma maneira de espairecer um pouco em relação às suas tarefas. Enquanto caminha pela paisagem ondulada, você nota uma coleção de itens aglomerando-se a distância. É uma pilha de instrumentos musicais, materiais de arte, equipamentos eletrônicos e mais! Você decide aproximar-se, então, para conferir melhor.<br><br>“Ei, o que você pensa que está fazendo?”, brada uma voz por trás de uma acácia. Uma girafa alta e imponente surge, portando um elegante par de óculos escuros, uma guitarra e uma câmera sofisticada pendurada em seu longo pescoço. “Esses são todos os meus equipamentos e materiais de arte, tenha cuidado e não toque em nada!”<br><br>Você nota a poeira aglomerando-se em muitos dos itens. “Uau, você com certeza tem muitos hobbies!”, diz. “Pode criar alguma coisa para mim ou tocar uma música?”<br><br>A girafa parece ficar desapontada consigo mesma, enquanto percorre com seu olhar todos os seus materiais. “Eu tenho tantas coisas aqui, mas não sei nem por onde começar! Por que você não me dá um pouco da sua motivação, para que eu possa ter a energia produtiva que preciso para finalmente começar?!\"",
|
||||
"questGiraffeCompletion": "Depois de ajudar a Girafartista a fazer uma organização básica em todo o seu material, vocês dois estão se sentindo com muito mais energia e animação!<br><br>Ela pega sua guitarra e um livro de exercícios para principiantes e dedilha algumas notas. “É bom demais dar um passo na direção correta, por menor que seja. Agradeço por me ajudar! Pegue estes ovos, ouvi dizer que você tem uma coleção de mascotes e estes amiguinhos aqui poderiam ser um bom acréscimo!”",
|
||||
"questChameleonBoss": "Camaleão Caótico",
|
||||
"QuestChameleonUnlockText": "Desbloqueia Ovos de Camaleão para compra no Mercado."
|
||||
"QuestChameleonUnlockText": "Desbloqueia Ovos de Camaleão para compra no Mercado.",
|
||||
"questRaccoonText": "O Guaxinim Ganancioso",
|
||||
"questRaccoonRageDescription": "Esta barra se enche conforme você não completa as suas Diárias. Quando estiver cheia, o Guaxinim Magnata irá recuperar parte de sua vida!",
|
||||
"questRaccoonDropRaccoonEgg": "Guaxinim (Ovo)",
|
||||
"questRaccoonUnlockText": "Desbloqueia ovos de Guaxinim para compra no mercado.",
|
||||
"questCrabRageDescription": "Esta barra enche quando você não completa suas tarefas diárias. Quando ela estiver cheia, o Caranguejo Brincalhão irá tirar um pouco do MP do seu grupo!",
|
||||
"questCrabRageEffect": "O Caranguejo Brincalhão distrai você com decorações, retardando o seu trabalho sugando e drenando um pouco da sua magia. O MP do grupo é reduzido!",
|
||||
"questCrabText": "O Caranguejo Brincalhão",
|
||||
"questCrabDropCrabEgg": "Caranguejo (Ovo)",
|
||||
"questCrabUnlockText": "Desbloqueia ovos de Caranguejo para compra no mercado.",
|
||||
"questCrabBoss": "Caranguejo Brincalhão",
|
||||
"questRaccoonBoss": "Guaxinim Ganancioso"
|
||||
}
|
||||
|
||||
@@ -2991,7 +2991,7 @@
|
||||
"weaponSpecialFall2023MageNotes": "Этот сияющий посох с кристаллом в сердцевине заставляет магию проявляться из обыденности. Увеличивает интеллект на <%= int %>.Ограниченный выпуск осени 2023.",
|
||||
"armorSpecialFall2023MageText": "Алая мантия колдуна",
|
||||
"weaponArmoirePottersWheelText": "Гончарный круг",
|
||||
"weaponArmoirePottersWheelNotes": "Бросьте немного глины на это колесо и сделайте миску, кружку, вазу или немного другую миску. Если вам повезет, во время творения вас может посетить призрак! Увеличивает восприятие на <%= за %>. Зачарованный шкаф: гончарный набор (предмет 4 из 4).",
|
||||
"weaponArmoirePottersWheelNotes": "Бросьте немного глины на это колесо и сделайте миску, кружку, вазу или немного другую миску. Если вам повезет, во время творения вас может посетить призрак! Увеличивает восприятие на <%= per %>. Зачарованный шкаф: гончарный набор (предмет 4 из 4).",
|
||||
"weaponMystery202403Text": "Счастливый Изумрудный Меч",
|
||||
"weaponArmoireShadyBeachUmbrellaText": "Пляжный зонт",
|
||||
"weaponArmoireShadyBeachUmbrellaNotes": "Тень этого радужного зонтика ненадолго скроет вас от дневной звезды и нежелательных беспокойств. Увеличивает восприятие на <%= per %>. Зачарованный шкаф: пляжный набор (предмет 3 из 4).",
|
||||
|
||||
@@ -383,5 +383,11 @@
|
||||
"questEggChameleonAdjective": "Chaotický",
|
||||
"questEggGiraffeText": "Žirafa",
|
||||
"questEggGiraffeMountText": "Žirafa",
|
||||
"hatchingPotionKoi": "Koi kapor"
|
||||
"hatchingPotionKoi": "Koi kapor",
|
||||
"questEggCrabText": "Krab",
|
||||
"questEggCrabMountText": "Krab",
|
||||
"questEggCrabAdjective": "Figliarsky",
|
||||
"questEggRaccoonText": "Mýval",
|
||||
"questEggRaccoonMountText": "Mýval",
|
||||
"questEggRaccoonAdjective": "Pažravý"
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"emailNewPass": "Email a Password Reset Link",
|
||||
"forgotPasswordSteps": "Zadaj svoje užívateľské meno alebo emailovú adresu, ktorú si použil/a pri registrácii svojho Habitica účtu.",
|
||||
"sendLink": "Pošli odkaz",
|
||||
"featuredIn": "Featured in",
|
||||
"featuredIn": "Spomenuté v",
|
||||
"footerDevs": "Vývojári",
|
||||
"footerCommunity": "Komunita",
|
||||
"footerCompany": "Naša spoločnosť",
|
||||
@@ -167,22 +167,22 @@
|
||||
"earnRewards": "Získavaj odmeny za plnenie svojich cieľov",
|
||||
"earnRewardsDesc": "Odfajkni si svoje úlohy aby si vyleveloval svojho Avatara a odomkol rôzne odmeny ako výstroj a brnenie, záhadné zvieratká, magické schopnosti a rôzne výpravy!",
|
||||
"battleMonsters": "Bojuj proti príšerám so svojimi priateľmi",
|
||||
"battleMonstersDesc": "Fight monsters with other Habiticans! Use the Gold that you earn to buy in-game or custom rewards, like watching an episode of your favorite TV show.",
|
||||
"playersUseToImprove": "Players Use Habitica to Improve",
|
||||
"healthAndFitness": "Health and Fitness",
|
||||
"healthAndFitnessDesc": "Never motivated to floss? Can't seem to get to the gym? Habitica finally makes it fun to get healthy.",
|
||||
"schoolAndWork": "School and Work",
|
||||
"schoolAndWorkDesc": "Whether you're preparing a report for your teacher or your boss, it's easy to keep track of your progress as you tackle your toughest tasks.",
|
||||
"muchmuchMore": "And much, much more!",
|
||||
"muchmuchMoreDesc": "Our fully customizable task list means that you can shape Habitica to fit your personal goals. Work on creative projects, emphasize self-care, or pursue a different dream -- it's all up to you.",
|
||||
"levelUpAnywhere": "Level Up Anywhere",
|
||||
"levelUpAnywhereDesc": "Our mobile apps make it simple to keep track of your tasks on-the-go. Accomplish your goals with a single tap, no matter where you are.",
|
||||
"joinMany": "Pridaj sa k viac ako 2,000,000 ľudí, ktorí sa bavia plnením svojich cieľov!",
|
||||
"joinToday": "Join Habitica Today",
|
||||
"battleMonstersDesc": "Boju proti príšerám s ostatnými Habitčanmi! Použi získané zlato na nákup in-game alebo vlastných odmien, napr. pozretie epizódy tvojho obľúbeného seriálu.",
|
||||
"playersUseToImprove": "Hráči používajú Habiticu na zlepšenie",
|
||||
"healthAndFitness": "Zdravie a Fitness",
|
||||
"healthAndFitnessDesc": "Nikdy sa ti nechce použiť zubnú niť? Nevieš sa prinútiť chodiť do posilňovne? Habitica ti pomôže urobiť cestu za zdravým zábavnou.",
|
||||
"schoolAndWork": "Škola a práca",
|
||||
"schoolAndWorkDesc": "Či už pripravuješ správu pre svojho učiteľa alebo šéfa, je jednoduché sledovať svoj postup popri tom ako riešiš svoje najťažšie úlohy.",
|
||||
"muchmuchMore": "A ešte oveľa, oveľa viac!",
|
||||
"muchmuchMoreDesc": "Pomocou nášho plne prispôsobiteľného zoznamu úloh si môžete Habiticu prispôsobiť tak, aby bola v súlade s vašimi osobnými cieľmi. Práca na kreatívnom projekte, zlepšenie starostlivosti o seba, alebo nasledovanie iného sna -- to záleží len na vás.",
|
||||
"levelUpAnywhere": "Leveluj kdekoľvek",
|
||||
"levelUpAnywhereDesc": "Naša mobilná aplikácia zjednodušuje prehľad v úlohách aj na cestách. Dokončite vaše úlohy jedným ťuknutím bez ohľadu na to kde sa nachádzate.",
|
||||
"joinMany": "Pridaj sa k viac ako <%= userCountInMillions %> miliónom ľudí, ktorí sa bavia plnením svojich cieľov!",
|
||||
"joinToday": "Pridaj sa k Habitice ešte dnes",
|
||||
"signup": "Sign Up",
|
||||
"getStarted": "Začať!",
|
||||
"mobileApps": "Mobile Apps",
|
||||
"learnMore": "Learn More",
|
||||
"getStarted": "Začať",
|
||||
"mobileApps": "Mobilné aplikácie",
|
||||
"learnMore": "Zistiť viac",
|
||||
"communityInstagram": "Instagram",
|
||||
"enterHabitica": "Vstúp do Habitici",
|
||||
"emailUsernamePlaceholder": "napr. habitrabbit alebo gryphon@example.com",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"rebirthOrb": "Použil Orb znovuzrodenia, aby začal odznovu, po dosiahnutí levelu <%= level %>.",
|
||||
"rebirthOrb100": "Použil Orb znovuzrodenia, aby začal odznovu, po dosiahnutí levelu 100 alebo vyššieho.",
|
||||
"rebirthOrbNoLevel": "Použil Orb znovuzrodenia, aby začal odznovu.",
|
||||
"rebirthPop": "Instantly restart your character as a Level 1 Warrior while retaining achievements, collectibles, and equipment. Your tasks and their history will remain but they will be reset to yellow. Your streaks will be removed except from challenge tasks. Your Gold, Experience, Mana, and the effects of all Skills will be removed. All of this will take effect immediately. For more information, see the wiki's <a href='http://habitica.fandom.com/wiki/Orb_of_Rebirth' target='_blank'>Orb of Rebirth</a> page.",
|
||||
"rebirthPop": "Instantne reštartuje tvoju postavičku ako Bojovníka na Leveli 1 za zachovania odznakov, nazbieraných predmetov a vybavenia. Tvoje úlohy a ich história bude zachovaná ale resetujú sa na žlté. Tvoje série budú odstránené až na úlohy spojené s aktívnymi výzvami a skupinovými plánmi. Tvoje zlato, body skúsenosti, manna a efekty všetkých zručností budú odstránené. Toto všetko nastane okamžite.",
|
||||
"rebirthName": "Orb znovuzrodenia",
|
||||
"rebirthComplete": "Bol si znovuzrodený!",
|
||||
"nextFreeRebirth": "<strong><%= days %> dní</strong> do <strong>bezplatného</strong> Orbu znovuzrodenia"
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
"questEggVelociraptorText": "Велоцираптор",
|
||||
"questEggVelociraptorMountText": "Велоцираптор",
|
||||
"questEggVelociraptorAdjective": "розумний",
|
||||
"eggNotes": "Вилийте на це яйце інкубаційне зілля, і з нього вилупиться <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
||||
"eggNotes": "Знайдіть інкубаційне зілля, аби вилити на це яйце, і з нього вилупиться <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
||||
"hatchingPotionBase": "Звичайний",
|
||||
"hatchingPotionWhite": "Білий",
|
||||
"hatchingPotionDesert": "Пустельний",
|
||||
@@ -194,7 +194,7 @@
|
||||
"hatchingPotionCottonCandyBlue": "Синій цукровий",
|
||||
"hatchingPotionGolden": "Золотий",
|
||||
"hatchingPotionSpooky": "Моторошний",
|
||||
"hatchingPotionPeppermint": "М’ятний",
|
||||
"hatchingPotionPeppermint": "Перцево-м'ятний",
|
||||
"hatchingPotionFloral": "Квітковий",
|
||||
"hatchingPotionAquatic": "Аква",
|
||||
"hatchingPotionEmber": "Тліючий",
|
||||
@@ -206,9 +206,9 @@
|
||||
"hatchingPotionShimmer": "Мерехтливий",
|
||||
"hatchingPotionFairy": "Казковий",
|
||||
"hatchingPotionStarryNight": "Зоряна ніч",
|
||||
"hatchingPotionRainbow": "Веселка",
|
||||
"hatchingPotionGlass": "Скло",
|
||||
"hatchingPotionGlow": "Світиться-вночі",
|
||||
"hatchingPotionRainbow": "Веселковий",
|
||||
"hatchingPotionGlass": "Скляний",
|
||||
"hatchingPotionGlow": "В-темряві-сяючий",
|
||||
"hatchingPotionFrost": "Морозний",
|
||||
"hatchingPotionIcySnow": "Крижаний сніг",
|
||||
"hatchingPotionNotes": "Вилийте це на яйце, і з нього вилупиться улюбленець, типу \"<%= potText(locale) %>\".",
|
||||
@@ -300,7 +300,7 @@
|
||||
"foodCandyDesert": "Піщана цукерка",
|
||||
"foodCandyDesertThe": "Піщана цукерка",
|
||||
"foodCandyDesertA": "Піщана цукерка",
|
||||
"foodCandyRed": "Корична цукерка",
|
||||
"foodCandyRed": "Цукерка з корицею",
|
||||
"foodCandyRedThe": "Цукерка з кориці",
|
||||
"foodCandyRedA": "Цукерка з кориці",
|
||||
"foodSaddleText": "Сідло",
|
||||
@@ -383,5 +383,11 @@
|
||||
"hatchingPotionKoi": "Кої",
|
||||
"questEggGiraffeText": "Жираф",
|
||||
"questEggGiraffeMountText": "Жираф",
|
||||
"questEggGiraffeAdjective": "височезний"
|
||||
"questEggGiraffeAdjective": "височезний",
|
||||
"questEggRaccoonText": "Єнот",
|
||||
"questEggRaccoonMountText": "Єнот",
|
||||
"questEggRaccoonAdjective": "зажерливий",
|
||||
"questEggCrabText": "Краб",
|
||||
"questEggCrabMountText": "Краб",
|
||||
"questEggCrabAdjective": "розбурханий"
|
||||
}
|
||||
|
||||
@@ -71,9 +71,9 @@
|
||||
"editTags2": "Редагувати теги",
|
||||
"toRequired": "Вам слід правильно вказати значення «до»",
|
||||
"startDate": "Дата початку",
|
||||
"streaks": "Досягнення Серії",
|
||||
"streakName": "Досягнень за серію: <%= count %>",
|
||||
"streakText": "Виконано 21-денних серій щоденних завдань: <%= count %>",
|
||||
"streaks": "Досягнення за серію",
|
||||
"streakName": "Досягнень за серії: <%= count %>",
|
||||
"streakText": "Виконано 21-денних серій Щоденок: <%= count %>",
|
||||
"streakSingular": "Серійник",
|
||||
"streakSingularText": "Ви виконали 21-денну серію щоденних завдань",
|
||||
"perfectName": "Ідеальних днів: <%= count %>",
|
||||
|
||||
@@ -632,6 +632,9 @@ const backgrounds = {
|
||||
backgrounds092024: {
|
||||
magic_door_in_forest: { },
|
||||
},
|
||||
backgrounds102024: {
|
||||
surrounded_by_ghosts: { },
|
||||
},
|
||||
eventBackgrounds: {
|
||||
birthday_bash: {
|
||||
price: 0,
|
||||
|
||||
@@ -76,23 +76,6 @@ export const REPEATING_EVENTS = {
|
||||
end: new Date('1970-08-02T03:59-04:00'),
|
||||
foodSeason: 'Cake',
|
||||
},
|
||||
fallGemFest: {
|
||||
start: new Date('1970-09-23T04:00-04:00'),
|
||||
end: new Date('1970-09-27T23:59-04:00'),
|
||||
gemsPromo,
|
||||
},
|
||||
spookyGemFest: {
|
||||
start: new Date('1970-10-28T04:00-04:00'),
|
||||
end: new Date('1970-11-01T23:59-04:00'),
|
||||
gemsPromo,
|
||||
},
|
||||
habitoween: {
|
||||
start: new Date('1970-10-30T04:00-04:00'),
|
||||
end: new Date('1970-11-01T23:59-04:00'),
|
||||
foodSeason: 'Candy',
|
||||
season: 'habitoween',
|
||||
npcImageSuffix: '_halloween',
|
||||
},
|
||||
fallGemSale: {
|
||||
start: new Date('1970-09-23T04:00-04:00'),
|
||||
end: new Date('1970-09-27T23:59-04:00'),
|
||||
@@ -105,6 +88,13 @@ export const REPEATING_EVENTS = {
|
||||
event: 'spooky_extra_gems',
|
||||
gemsPromo,
|
||||
},
|
||||
habitoween: {
|
||||
start: new Date('1970-10-30T04:00-04:00'),
|
||||
end: new Date('1970-11-01T23:59-04:00'),
|
||||
foodSeason: 'Candy',
|
||||
season: 'habitoween',
|
||||
npcImageSuffix: '_halloween',
|
||||
},
|
||||
harvestFeast: {
|
||||
start: new Date('1970-11-20T04:00-05:00'),
|
||||
end: new Date('1970-12-01T03:59-05:00'),
|
||||
|
||||
@@ -11,6 +11,7 @@ export const ARMOIRE_RELEASE_DATES = {
|
||||
corsairSet: { year: 2024, month: 7 },
|
||||
dragonKnightSet: { year: 2024, month: 8 },
|
||||
funnyFoolSet: { year: 2024, month: 9 },
|
||||
frightNightSet: { year: 2024, month: 10 },
|
||||
};
|
||||
|
||||
export const EGGS_RELEASE_DATES = {
|
||||
@@ -18,6 +19,7 @@ export const EGGS_RELEASE_DATES = {
|
||||
Chameleon: { year: 2024, month: 7, day: 14 },
|
||||
Crab: { year: 2024, month: 8, day: 14 },
|
||||
Raccoon: { year: 2024, month: 9, day: 14 },
|
||||
Dog: { year: 2024, month: 10, day: 14 },
|
||||
};
|
||||
|
||||
export const HATCHING_POTIONS_RELEASE_DATES = {
|
||||
|
||||
@@ -527,6 +527,7 @@ export const MONTHLY_SCHEDULE = {
|
||||
'rock',
|
||||
'ferret',
|
||||
'hedgehog',
|
||||
'dog',
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -417,6 +417,12 @@ const quests = {
|
||||
adjective: t('questEggRaccoonAdjective'),
|
||||
canBuy: hasQuestAchievementFunction('raccoon'),
|
||||
},
|
||||
Dog: {
|
||||
text: t('questEggDogText'),
|
||||
mountText: t('questEggDogMountText'),
|
||||
adjective: t('questEggDogAdjective'),
|
||||
canBuy: hasQuestAchievementFunction('dog'),
|
||||
},
|
||||
};
|
||||
|
||||
applyEggDefaults(drops, {
|
||||
|
||||
@@ -1370,6 +1370,10 @@ const shield = {
|
||||
str: 12,
|
||||
set: 'beachsideSet',
|
||||
},
|
||||
safetyFlashlight: {
|
||||
con: 10,
|
||||
set: 'frightNightSet',
|
||||
},
|
||||
};
|
||||
|
||||
const headAccessory = {
|
||||
@@ -1869,6 +1873,10 @@ const weapon = {
|
||||
str: 15,
|
||||
set: 'funnyFoolSet',
|
||||
},
|
||||
spookyCandyBucket: {
|
||||
int: 10,
|
||||
set: 'frightNightSet',
|
||||
},
|
||||
};
|
||||
|
||||
const releaseDay = 7;
|
||||
|
||||
@@ -110,6 +110,7 @@ const back = {
|
||||
202401: { },
|
||||
202402: { },
|
||||
202405: { },
|
||||
202410: { },
|
||||
};
|
||||
|
||||
const body = {
|
||||
@@ -262,6 +263,7 @@ const headAccessory = {
|
||||
202309: { },
|
||||
202310: { },
|
||||
202405: { },
|
||||
202410: { },
|
||||
301405: { },
|
||||
};
|
||||
|
||||
|
||||
@@ -398,6 +398,45 @@ const QUEST_PETS = {
|
||||
unlock: t('questSeahorseUnlockText'),
|
||||
},
|
||||
},
|
||||
dog: {
|
||||
text: t('questDogText'),
|
||||
notes: t('questDogNotes'),
|
||||
completion: t('questDogCompletion'),
|
||||
value: 4,
|
||||
category: 'pet',
|
||||
boss: {
|
||||
name: t('questDogBoss'),
|
||||
hp: 600,
|
||||
str: 1.5,
|
||||
rage: {
|
||||
title: t('questDogRageTitle'),
|
||||
description: t('questDogRageDescription'),
|
||||
value: 50,
|
||||
mpDrain: 0.3,
|
||||
effect: t('questDogRageEffect'),
|
||||
},
|
||||
},
|
||||
drop: {
|
||||
items: [
|
||||
{
|
||||
type: 'eggs',
|
||||
key: 'Dog',
|
||||
text: t('questDogDropDogEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Dog',
|
||||
text: t('questDogDropDogEgg'),
|
||||
}, {
|
||||
type: 'eggs',
|
||||
key: 'Dog',
|
||||
text: t('questDogDropDogEgg'),
|
||||
},
|
||||
],
|
||||
gp: 55,
|
||||
exp: 500,
|
||||
unlock: t('questDogUnlockText'),
|
||||
},
|
||||
},
|
||||
dolphin: {
|
||||
text: t('questDolphinText'),
|
||||
notes: t('questDolphinNotes'),
|
||||
|
||||
@@ -29,6 +29,7 @@ const potentialFeaturedPetQuests = [
|
||||
'raccoon',
|
||||
|
||||
'snail',
|
||||
'dog',
|
||||
|
||||
'kangaroo',
|
||||
'owl',
|
||||
|
||||