Compare commits

..

50 Commits

Author SHA1 Message Date
Sabe Jones bceccd55bf 4.145.1 2020-06-16 13:35:51 -05:00
Sabe Jones 0116c56abb chore(news): Bailey 2020-06-16 13:35:32 -05:00
Sabe Jones e6b65871e7 4.145.0 2020-06-11 16:38:15 -05:00
Sabe Jones 873ac53e27 Squashed commit of the following:
commit f461c07ca7997362512a366eebc7d3a8fba854ee
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Thu Jun 11 16:37:14 2020 -0500

    fix(sprites): wolf alignment

commit 6ceb4ba6d1ea62892e9b335307043d78971328d0
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Thu Jun 11 14:53:07 2020 -0500

    chore(sprites): compile

commit 8b517309f531c7f151c5c18a5ca9847ab7aa5dbb
Author: Sabe Jones <sabrecat@gmail.com>
Date:   Thu Jun 11 14:52:49 2020 -0500

    feat(content): Fluorite Magic Hatching Potion and quest
2020-06-11 16:38:05 -05:00
Sabe Jones 51d20ef7e8 4.144.1 2020-06-09 15:27:43 -05:00
Matteo Pagliazzi 692d02984b unlock: fix unlocking hair items 2020-06-09 22:13:22 +02:00
Sabe Jones e31ce11052 4.144.0 2020-06-09 14:17:30 -05:00
Sabe Jones c4688b77fd Merge branch 'sabrecat/armoire-bgs-202006' into release 2020-06-09 14:17:15 -05:00
Sabe Jones 9ab79ef225 4.143.3 2020-06-08 14:47:16 -05:00
Sabe Jones 7e4c8938e5 Merge branch 'unlock-fixes' into release 2020-06-08 14:45:34 -05:00
Sabe Jones 604b866113 Merge branch 'develop' into release 2020-06-08 14:44:28 -05:00
dependabot-preview[bot] c0afae1e84 build(deps): bump mongoose from 5.9.16 to 5.9.18 (#12284)
Bumps [mongoose](https://github.com/Automattic/mongoose) from 5.9.16 to 5.9.18.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/History.md)
- [Commits](https://github.com/Automattic/mongoose/compare/5.9.16...5.9.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-08 11:42:29 +02:00
dependabot-preview[bot] 61dc94ada0 build(deps): bump @google-cloud/trace-agent from 4.2.5 to 5.0.0 (#12281)
Bumps [@google-cloud/trace-agent](https://github.com/googleapis/cloud-trace-nodejs) from 4.2.5 to 5.0.0.
- [Release notes](https://github.com/googleapis/cloud-trace-nodejs/releases)
- [Changelog](https://github.com/googleapis/cloud-trace-nodejs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/googleapis/cloud-trace-nodejs/compare/v4.2.5...v5.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-08 11:41:48 +02:00
dependabot-preview[bot] f71ee7be18 build(deps): bump sass from 1.26.7 to 1.26.8 in /website/client (#12279)
Bumps [sass](https://github.com/sass/dart-sass) from 1.26.7 to 1.26.8.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.26.7...1.26.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-08 11:41:23 +02:00
PitiTheGrey 8935885637 Renaming a party shows you the placeholder text for renaming a guild #12273 (#12278)
* NewPartyPlaceholder "Enter your party's name"

* Added new placeholder and if statement to display either "party's name" or "guild's name" (issue 12273)
2020-06-07 12:59:12 +02:00
Alex Jeffrey 1ebda8281b Enable resizing of message box (#11950) (#12251)
* Enable resizing of message box (#11950)

* Added maximum height to textarea (#11950)

Co-authored-by: Alex Jeffrey <alex@alexjeffrey.mee>
2020-06-07 12:53:36 +02:00
citrusella eae8ed946f Blockquote styling (fixes #9476) (#12227)
* Added blockquote styling based on Zeplin example

* Commit new changes to style blockquotes

* Fix bottom of post margins after markdown class addition
2020-06-07 12:52:01 +02:00
dependabot-preview[bot] d7fe140012 build(deps): [security] bump websocket-extensions in /website/client (#12277)
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. **This update includes a security fix.**
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-07 12:51:49 +02:00
Alys c317d1d040 moved two words from slurs to banned - TRIGGER / CONTENT WARNING: slurs, swearwords, assault, etc
Refer to the new comment in bannedWords.js for the reason.
2020-06-06 16:26:58 +10:00
Matteo Pagliazzi d63aafc7f1 fix lint 2020-06-03 18:03:25 +02:00
Matteo Pagliazzi 08b2be684b improve error message 2020-06-03 18:00:58 +02:00
Matteo Pagliazzi 4c653aa511 unlock: minor fixes and increase tests coverage 2020-06-03 17:56:06 +02:00
Matteo Pagliazzi 0896837528 working code and original tests pass 2020-06-02 23:58:48 +02:00
Sabe Jones 8a1c1af461 Merge branch 'release' into develop 2020-06-01 16:41:00 -05:00
Sabe Jones db7d1d0e14 4.143.2 2020-06-01 16:40:41 -05:00
Sabe Jones 6253359d31 chore(news): Bailey 2020-06-01 16:40:33 -05:00
Matteo Pagliazzi ce4bbe5552 fix(ui): make sure three columns of rewards are displayed + fix rewards top margin when no custom reward exists (#12257) 2020-06-01 17:35:52 +02:00
Frank Maximus 3a4abac8b0 Store original quantities, to avoid reordering in Inventory Items screen (#12205)
* Store original quantities, to avoid reordering

Create a quantity snapshot when loading the screen.
Sort based on the snapshot after updates.

Fixes: 12040

* Avoid initial branching

Co-authored-by: Bart Enkelaar <benkelaar@gmail.com>

* Add comment

Co-authored-by: Bart Enkelaar <benkelaar@gmail.com>
2020-06-01 17:25:55 +02:00
Carl Vuorinen 44eb245184 New notification type for boss damage (#12249)
* Add new notification type for boss damage with sword icon

* Use vars for color
2020-06-01 15:42:54 +02:00
dependabot-preview[bot] 050fd15c97 build(deps): bump vue-router from 3.2.0 to 3.3.2 in /website/client (#12268)
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.2.0 to 3.3.2.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.2.0...v3.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-01 10:37:40 +02:00
dependabot-preview[bot] e1f1a264b4 build(deps): bump @babel/preset-env from 7.9.6 to 7.10.2 (#12260)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.9.6 to 7.10.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.2/packages/babel-preset-env)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-01 10:35:22 +02:00
Matteo Pagliazzi 3bfcc4a605 chore(deps): upgrade vue cli plugins 2020-06-01 10:34:36 +02:00
dependabot-preview[bot] 4beac98383 build(deps): bump @babel/register from 7.9.0 to 7.10.1 (#12263)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.9.0 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-register)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-01 10:29:50 +02:00
dependabot-preview[bot] 4da794271d build(deps): bump @babel/core from 7.9.6 to 7.10.2 (#12265)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.9.6 to 7.10.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.2/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-01 10:29:42 +02:00
dependabot-preview[bot] b18eb0d3f8 build(deps): bump mongoose from 5.9.15 to 5.9.16 (#12269)
Bumps [mongoose](https://github.com/Automattic/mongoose) from 5.9.15 to 5.9.16.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/History.md)
- [Commits](https://github.com/Automattic/mongoose/compare/5.9.15...5.9.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-01 10:27:32 +02:00
dependabot-preview[bot] 79f6f47b16 build(deps): bump sass from 1.26.5 to 1.26.7 in /website/client (#12258)
Bumps [sass](https://github.com/sass/dart-sass) from 1.26.5 to 1.26.7.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.26.5...1.26.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-01 10:26:15 +02:00
Frank Maximus 6ff8254137 Only show attainable and owned special pets/mounts (#12206)
* Only show attainable and owned special pets/mounts

Fixes #9498

* #9498: Handle comments

Don't change API,
put canFind in petInfo and mountInfo

* #9498: Move canFind to itemInfo, to allow sync

* #9498: Create a show method, to allow update without reload.
2020-05-31 22:08:18 +02:00
Bart Enkelaar 1c00d7de5b Fix empty link bug and proper error logging in highlightMentions.js (#12228)
* fix(chat) - Don't insert user link in url-less link and properly log source-mapping failures

* fix(chat) - Add link to markdown spec and list of known issues

* fix(chat) - Log regular expression as String
2020-05-31 18:09:43 +02:00
Alys 61d970db86 remove codetriage.com information (#12250)
It's a nice service but currently we can't control which issues
appear there, so it's advertising ones that are on hold, in
progress, etc.
2020-05-31 17:49:31 +02:00
Matteo Pagliazzi b911ecdcf0 Merge branch 'develop' into unlock-fixes 2020-05-31 17:47:37 +02:00
Sabe Jones 74d0b25c54 refactor(backgrounds): programmatic text and notes tokens 2020-05-29 17:15:32 -05:00
Sabe Jones 830c4fb926 chore(sprites): compile 2020-05-29 14:26:16 -05:00
Sabe Jones 8aad136622 feat(content): Armoire and Background items for Jun 2020
also big refactor of Armoire content
2020-05-29 14:26:02 -05:00
Sabe Jones 8d80792093 Merge branch 'release' into develop 2020-05-29 10:34:54 -05:00
Melior 3be42e9545 Merge branch 'origin/develop' into Weblate. 2020-05-28 23:54:45 +02:00
Melior 8a7b8f92d4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (230 of 230 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/pt_BR/

Translated using Weblate (Spanish (Latin America))

Currently translated at 92.7% (77 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/

Translated using Weblate (Dutch)

Currently translated at 94.2% (1975 of 2095 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (Dutch)

Currently translated at 100.0% (696 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/nl/

Translated using Weblate (Dutch)

Currently translated at 97.5% (81 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nl/

Translated using Weblate (Japanese)

Currently translated at 95.4% (664 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Dutch)

Currently translated at 94.1% (1973 of 2095 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (Japanese)

Currently translated at 100.0% (492 of 492 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/

Translated using Weblate (Dutch)

Currently translated at 94.0% (1971 of 2095 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (Japanese)

Currently translated at 95.4% (664 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Italian)

Currently translated at 98.6% (227 of 230 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/it/

Translated using Weblate (Italian)

Currently translated at 89.9% (476 of 529 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/

Translated using Weblate (Russian)

Currently translated at 99.2% (691 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Malay)

Currently translated at 6.0% (20 of 328 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/ms/

Translated using Weblate (Italian)

Currently translated at 82.6% (205 of 248 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/

Translated using Weblate (Italian)

Currently translated at 89.3% (320 of 358 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/it/

Translated using Weblate (Italian)

Currently translated at 22.8% (19 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/it/

Translated using Weblate (Dutch)

Currently translated at 93.9% (1969 of 2095 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (Japanese)

Currently translated at 100.0% (211 of 211 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/

Translated using Weblate (Russian)

Currently translated at 100.0% (492 of 492 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (492 of 492 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (491 of 492 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ru/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (4 of 4 strings)

Translation: Habitica/Noscript
Translate-URL: https://translate.habitica.com/projects/habitica/noscript/pt/

Translated using Weblate (Portuguese)

Currently translated at 82.3% (149 of 181 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (27 of 27 strings)

Translation: Habitica/Loginincentives
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (15 of 15 strings)

Translation: Habitica/Death
Translate-URL: https://translate.habitica.com/projects/habitica/death/pt/

Translated using Weblate (Russian)

Currently translated at 100.0% (211 of 211 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ru/

Translated using Weblate (Dutch)

Currently translated at 100.0% (211 of 211 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/nl/

Translated using Weblate (Russian)

Currently translated at 92.7% (230 of 248 strings)

Translation: Habitica/Subscriber
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (57 of 57 strings)

Translation: Habitica/Spells
Translate-URL: https://translate.habitica.com/projects/habitica/spells/ru/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (140 of 140 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (140 of 140 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (140 of 140 strings)

Translation: Habitica/Quests
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ru/

Translated using Weblate (Polish)

Currently translated at 100.0% (143 of 143 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pl/

Translated using Weblate (Polish)

Currently translated at 100.0% (143 of 143 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pl/

Translated using Weblate (Spanish (Latin America))

Currently translated at 97.9% (140 of 143 strings)

Translation: Habitica/Pets
Translate-URL: https://translate.habitica.com/projects/habitica/pets/es_419/

Translated using Weblate (Russian)

Currently translated at 97.6% (168 of 172 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ru/

Translated using Weblate (Japanese)

Currently translated at 100.0% (172 of 172 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/

Translated using Weblate (Russian)

Currently translated at 100.0% (8 of 8 strings)

Translation: Habitica/Overview
Translate-URL: https://translate.habitica.com/projects/habitica/overview/ru/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (6 of 6 strings)

Translation: Habitica/Inventory
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/es_419/

Translated using Weblate (Japanese)

Currently translated at 100.0% (181 of 181 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (492 of 492 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 97.3% (2040 of 2095 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Dutch)

Currently translated at 93.8% (1967 of 2095 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/nl/

Translated using Weblate (Russian)

Currently translated at 99.6% (297 of 298 strings)

Translation: Habitica/Generic
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (328 of 328 strings)

Translation: Habitica/Front
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (56 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 98.2% (55 of 56 strings)

Translation: Habitica/Faq
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ru/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (696 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 99.2% (691 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (126 of 126 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (126 of 126 strings)

Translation: Habitica/Communityguidelines
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (230 of 230 strings)

Translation: Habitica/Character
Translate-URL: https://translate.habitica.com/projects/habitica/character/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ru/

Translated using Weblate (Japanese)

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ja/

Translated using Weblate (Portuguese)

Currently translated at 87.9% (73 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Portuguese)

Currently translated at 87.9% (73 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Russian)

Currently translated at 99.5% (210 of 211 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ru/

Translated using Weblate (Russian)

Currently translated at 99.1% (488 of 492 strings)

Translation: Habitica/Groups
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (696 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Japanese)

Currently translated at 95.4% (664 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Russian)

Currently translated at 100.0% (134 of 134 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ru/

Translated using Weblate (Japanese)

Currently translated at 96.0% (508 of 529 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/

Translated using Weblate (Portuguese)

Currently translated at 60.2% (50 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Japanese)

Currently translated at 92.7% (77 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ja/

Translated using Weblate (Hungarian)

Currently translated at 34.9% (29 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/hu/

Translated using Weblate (Portuguese)

Currently translated at 59.0% (49 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Portuguese)

Currently translated at 59.0% (49 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pt/

Translated using Weblate (Japanese)

Currently translated at 95.4% (664 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Japanese)

Currently translated at 95.4% (664 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (695 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.8% (695 of 696 strings)

Translation: Habitica/Questscontent
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/

Translated using Weblate (Hungarian)

Currently translated at 33.7% (28 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/hu/

Translated using Weblate (Russian)

Currently translated at 98.3% (178 of 181 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (211 of 211 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/vi/

Translated using Weblate (Vietnamese)

Currently translated at 74.6% (62 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/

Translated using Weblate (Czech)

Currently translated at 67.4% (56 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/cs/

Translated using Weblate (Japanese)

Currently translated at 99.5% (210 of 211 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/

Translated using Weblate (Russian)

Currently translated at 97.5% (81 of 83 strings)

Translation: Habitica/Achievements
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ru/
2020-05-28 23:54:35 +02:00
Matteo Pagliazzi 44ded945dd Merge branch 'develop' into unlock-fixes 2020-05-25 19:00:56 +02:00
Matteo Pagliazzi ebd22296df wip 2020-05-07 16:15:11 +02:00
Matteo Pagliazzi 613895e294 Merge branch 'develop' into unlock-fixes 2020-05-06 11:49:28 +02:00
Matteo Pagliazzi 26437e7e2e wip: valid unlocked sets 2020-04-24 19:01:03 +02:00
212 changed files with 28709 additions and 29023 deletions
-5
View File
@@ -13,8 +13,3 @@ Habitica uses [this Google form](https://docs.google.com/forms/d/e/1FAIpQLScPhrw
# Contributing Code
See [Contributing to Habitica](http://habitica.fandom.com/wiki/Contributing_to_Habitica#Coders_.28Web_.26_Mobile.29)
## Issue Triage [![Open Source Helpers](https://www.codetriage.com/habitrpg/habitica/badges/users.svg)](https://www.codetriage.com/habitrpg/habitica)
You can triage issues which may include reproducing bug reports or asking for vital information, such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is to [subscribe to habitrpg on CodeTriage](https://www.codetriage.com/habitrpg/habitica).
+1 -1
View File
@@ -1,4 +1,4 @@
Habitica ![Build Status](https://github.com/HabitRPG/habitica/workflows/Test/badge.svg) [![Code Climate](https://codeclimate.com/github/HabitRPG/habitrpg.svg)](https://codeclimate.com/github/HabitRPG/habitrpg) [![Bountysource](https://api.bountysource.com/badge/tracker?tracker_id=68393)](https://www.bountysource.com/trackers/68393-habitrpg?utm_source=68393&utm_medium=shield&utm_campaign=TRACKER_BADGE) [![Open Source Helpers](https://www.codetriage.com/habitrpg/habitica/badges/users.svg)](https://www.codetriage.com/habitrpg/habitica)
Habitica ![Build Status](https://github.com/HabitRPG/habitica/workflows/Test/badge.svg) [![Code Climate](https://codeclimate.com/github/HabitRPG/habitrpg.svg)](https://codeclimate.com/github/HabitRPG/habitrpg) [![Bountysource](https://api.bountysource.com/badge/tracker?tracker_id=68393)](https://www.bountysource.com/trackers/68393-habitrpg?utm_source=68393&utm_medium=shield&utm_campaign=TRACKER_BADGE)
===============
[Habitica](https://habitica.com) is an open source habit building program which treats your life like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor.
+834 -853
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -1,13 +1,13 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.143.1",
"version": "4.145.1",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.9.6",
"@babel/preset-env": "^7.9.6",
"@babel/register": "^7.9.0",
"@google-cloud/trace-agent": "^4.2.5",
"@babel/core": "^7.10.2",
"@babel/preset-env": "^7.10.2",
"@babel/register": "^7.10.1",
"@google-cloud/trace-agent": "^5.0.0",
"@slack/client": "^4.12.0",
"accepts": "^1.3.5",
"amazon-payments": "^0.2.8",
@@ -48,7 +48,7 @@
"method-override": "^3.0.0",
"moment": "^2.26.0",
"moment-recur": "^1.0.7",
"mongoose": "^5.9.15",
"mongoose": "^5.9.18",
"morgan": "^1.10.0",
"nconf": "^0.10.0",
"node-gcm": "^1.0.2",
+17 -8
View File
@@ -1,4 +1,5 @@
import mongoose from 'mongoose';
import highlightMentions from '../../../../website/server/libs/highlightMentions';
describe('highlightMentions', () => {
@@ -101,12 +102,28 @@ describe('highlightMentions', () => {
expect(result[0]).to.equal('http://www.medium.com/@user/blog [@user](/profile/111)');
});
// https://spec.commonmark.org/0.29/#example-483
it('doesn\'t highlight user in a link without url', async () => {
const text = '[@user2]()';
const result = await highlightMentions(text);
expect(result[0]).to.equal(text);
});
// https://github.com/HabitRPG/habitica/issues/12217
it('doesn\'t highlight user in link with url-escapable characters', async () => {
const text = '[test](https://habitica.fandom.com/ru/@wiki/Снаряжение)';
const result = await highlightMentions(text);
expect(result[0]).to.equal(text);
});
// https://github.com/HabitRPG/habitica/issues/12223
it('matches a link in between two the same links', async () => {
const text = '[here](http://habitica.wikia.com/wiki/The_Keep:Pirate_Cove/FAQ)\n@user\n[hier](http://habitica.wikia.com/wiki/The_Keep:Pirate_Cove/FAQ)';
const result = await highlightMentions(text);
expect(result[0]).to.equal('[here](http://habitica.wikia.com/wiki/The_Keep:Pirate_Cove/FAQ)\n[@user](/profile/111)\n[hier](http://habitica.wikia.com/wiki/The_Keep:Pirate_Cove/FAQ)');
});
});
describe('exceptions in code blocks', () => {
@@ -149,14 +166,6 @@ describe('highlightMentions', () => {
expect(result[0]).to.equal('[@user](/profile/111) `@user`');
});
it('matches a link in between two the same links', async () => {
const text = '[here](http://habitica.wikia.com/wiki/The_Keep:Pirate_Cove/FAQ)\n@user\n[hier](http://habitica.wikia.com/wiki/The_Keep:Pirate_Cove/FAQ)';
const result = await highlightMentions(text);
expect(result[0]).to.equal('[here](http://habitica.wikia.com/wiki/The_Keep:Pirate_Cove/FAQ)\n[@user](/profile/111)\n[hier](http://habitica.wikia.com/wiki/The_Keep:Pirate_Cove/FAQ)');
});
});
it('github issue 12118, method crashes when square brackets are used', async () => {
+217 -18
View File
@@ -1,3 +1,4 @@
import get from 'lodash/get';
import unlock from '../../../website/common/script/ops/unlock';
import i18n from '../../../website/common/script/i18n';
import { generateUser } from '../../helpers/common.helper';
@@ -8,8 +9,10 @@ describe('shared.ops.unlock', () => {
const unlockPath = 'shirt.convict,shirt.cross,shirt.fire,shirt.horizon,shirt.ocean,shirt.purple,shirt.rainbow,shirt.redblue,shirt.thunder,shirt.tropical,shirt.zombie';
const unlockGearSetPath = 'items.gear.owned.headAccessory_special_bearEars,items.gear.owned.headAccessory_special_cactusEars,items.gear.owned.headAccessory_special_foxEars,items.gear.owned.headAccessory_special_lionEars,items.gear.owned.headAccessory_special_pandaEars,items.gear.owned.headAccessory_special_pigEars,items.gear.owned.headAccessory_special_tigerEars,items.gear.owned.headAccessory_special_wolfEars';
const backgroundUnlockPath = 'background.giant_florals';
const unlockCost = 1.25;
const usersStartingGems = 5;
const backgroundSetUnlockPath = 'background.archery_range,background.giant_florals,background.rainbows_end';
const hairUnlockPath = 'hair.color.rainbow,hair.color.yellow,hair.color.green,hair.color.purple,hair.color.blue,hair.color.TRUred';
const facialHairUnlockPath = 'hair.mustache.1,hair.mustache.2,hair.beard.1,hair.beard.2,hair.beard.3';
const usersStartingGems = 50 / 4;
beforeEach(() => {
user = generateUser();
@@ -48,32 +51,100 @@ describe('shared.ops.unlock', () => {
});
it('returns an error when user already owns a full set', done => {
let expectedBalance;
try {
unlock(user, { query: { path: unlockPath } });
expectedBalance = user.balance;
unlock(user, { query: { path: unlockPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyUnlocked'));
expect(user.balance).to.equal(3.75);
expect(user.balance).to.equal(expectedBalance);
done();
}
});
it('returns an error when user already owns a full set of gear', done => {
let expectedBalance;
try {
unlock(user, { query: { path: unlockGearSetPath } });
expectedBalance = user.balance;
unlock(user, { query: { path: unlockGearSetPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
expect(err.message).to.equal(i18n.t('alreadyUnlocked'));
expect(user.balance).to.equal(3.75);
expect(user.balance).to.equal(expectedBalance);
done();
}
});
xit('returns an error when user already owns items in a full set', done => {
it('returns an error if an item does not exists', done => {
try {
unlock(user, { query: { path: unlockPath.split(',').splice(2).join(',') } });
unlock(user, { query: { path: 'background.invalid_background' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error if there are items from multiple sets', done => {
try {
unlock(user, { query: { path: 'shirt.convict,skin.0ff591' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error if gear is not from the animal set', done => {
try {
unlock(user, { query: { path: 'items.gear.owned.back_mystery_202004' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error if the item is free', done => {
try {
unlock(user, { query: { path: 'shirt.black' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error if an item does not belong to a set (appearances)', done => {
try {
unlock(user, { query: { path: 'shirt.pink' } });
} catch (err) {
expect(err).to.be.an.instanceof(BadRequest);
expect(err.message).to.equal(i18n.t('invalidUnlockSet'));
done();
}
});
it('returns an error when user already owns items in a full set and it would be more expensive to buy the entire set', done => {
try {
// There are 11 shirts in the set, each cost 2 gems, the full set 5 gems
// In order for the full purchase not to be worth, we must own 9
const partialUnlockPaths = unlockPath.split(',');
unlock(user, { query: { path: partialUnlockPaths[0] } });
unlock(user, { query: { path: partialUnlockPaths[1] } });
unlock(user, { query: { path: partialUnlockPaths[2] } });
unlock(user, { query: { path: partialUnlockPaths[3] } });
unlock(user, { query: { path: partialUnlockPaths[4] } });
unlock(user, { query: { path: partialUnlockPaths[5] } });
unlock(user, { query: { path: partialUnlockPaths[6] } });
unlock(user, { query: { path: partialUnlockPaths[7] } });
unlock(user, { query: { path: partialUnlockPaths[8] } });
unlock(user, { query: { path: unlockPath } });
} catch (err) {
expect(err).to.be.an.instanceof(NotAuthorized);
@@ -82,6 +153,22 @@ describe('shared.ops.unlock', () => {
}
});
it('does not return an error when user already owns items in a full set and it would not be more expensive to buy the entire set', () => {
// There are 11 shirts in the set, each cost 2 gems, the full set 5 gems
// In order for the full purchase to be worth, we can own already 8
const partialUnlockPaths = unlockPath.split(',');
unlock(user, { query: { path: partialUnlockPaths[0] } });
unlock(user, { query: { path: partialUnlockPaths[1] } });
unlock(user, { query: { path: partialUnlockPaths[2] } });
unlock(user, { query: { path: partialUnlockPaths[3] } });
unlock(user, { query: { path: partialUnlockPaths[4] } });
unlock(user, { query: { path: partialUnlockPaths[5] } });
unlock(user, { query: { path: partialUnlockPaths[6] } });
unlock(user, { query: { path: partialUnlockPaths[7] } });
unlock(user, { query: { path: unlockPath } });
});
it('equips an item already owned', () => {
expect(user.purchased.background.giant_florals).to.not.exist;
@@ -107,31 +194,143 @@ describe('shared.ops.unlock', () => {
expect(user.preferences.background).to.equal('');
});
it('unlocks a full set', () => {
it('unlocks a full set of appearance items', () => {
const initialShirts = Object.keys(user.purchased.shirt).length;
const [, message] = unlock(user, { query: { path: unlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
expect(user.purchased.shirt.convict).to.be.true;
const individualPaths = unlockPath.split(',');
individualPaths.forEach(path => {
expect(get(user.purchased, path)).to.be.true;
});
expect(Object.keys(user.purchased.shirt).length)
.to.equal(initialShirts + individualPaths.length);
expect(user.balance).to.equal(usersStartingGems - 1.25);
});
it('unlocks a full set of hair items', () => {
user.purchased.hair.color = {};
const initialHairColors = Object.keys(user.purchased.hair.color).length;
const [, message] = unlock(user, { query: { path: hairUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
const individualPaths = hairUnlockPath.split(',');
individualPaths.forEach(path => {
expect(get(user.purchased, path)).to.be.true;
});
expect(Object.keys(user.purchased.hair.color).length)
.to.equal(initialHairColors + individualPaths.length);
expect(user.balance).to.equal(usersStartingGems - 1.25);
});
it('unlocks the facial hair set', () => {
user.purchased.hair.mustache = {};
user.purchased.hair.beard = {};
const initialMustache = Object.keys(user.purchased.hair.mustache).length;
const initialBeard = Object.keys(user.purchased.hair.mustache).length;
const [, message] = unlock(user, { query: { path: facialHairUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
const individualPaths = facialHairUnlockPath.split(',');
individualPaths.forEach(path => {
expect(get(user.purchased, path)).to.be.true;
});
expect(Object.keys(user.purchased.hair.mustache).length + Object.keys(user.purchased.hair.beard).length) // eslint-disable-line max-len
.to.equal(initialMustache + initialBeard + individualPaths.length);
expect(user.balance).to.equal(usersStartingGems - 1.25);
});
it('unlocks a full set of gear', () => {
const initialGear = Object.keys(user.items.gear.owned).length;
const [, message] = unlock(user, { query: { path: unlockGearSetPath } });
expect(message).to.equal(i18n.t('unlocked'));
expect(user.items.gear.owned.headAccessory_special_wolfEars).to.be.true;
const individualPaths = unlockGearSetPath.split(',');
individualPaths.forEach(path => {
expect(get(user, path)).to.be.true;
});
expect(Object.keys(user.items.gear.owned).length)
.to.equal(initialGear + individualPaths.length);
expect(user.balance).to.equal(usersStartingGems - 1.25);
});
it('unlocks an item', () => {
it('unlocks a full set of backgrounds', () => {
const initialBackgrounds = Object.keys(user.purchased.background).length;
const [, message] = unlock(user, { query: { path: backgroundSetUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
const individualPaths = backgroundSetUnlockPath.split(',');
individualPaths.forEach(path => {
expect(get(user.purchased, path)).to.be.true;
});
expect(Object.keys(user.purchased.background).length)
.to.equal(initialBackgrounds + individualPaths.length);
expect(user.balance).to.equal(usersStartingGems - 3.75);
});
it('unlocks an item (appearance)', () => {
const path = unlockPath.split(',')[0];
const initialShirts = Object.keys(user.purchased.shirt).length;
const [, message] = unlock(user, { query: { path } });
expect(message).to.equal(i18n.t('unlocked'));
expect(Object.keys(user.purchased.shirt).length).to.equal(initialShirts + 1);
expect(get(user.purchased, path)).to.be.true;
expect(user.balance).to.equal(usersStartingGems - 0.5);
});
it('unlocks an item (hair color)', () => {
user.purchased.hair.color = {};
const path = hairUnlockPath.split(',')[0];
const initialColorHair = Object.keys(user.purchased.hair.color).length;
const [, message] = unlock(user, { query: { path } });
expect(message).to.equal(i18n.t('unlocked'));
expect(Object.keys(user.purchased.hair.color).length).to.equal(initialColorHair + 1);
expect(get(user.purchased, path)).to.be.true;
expect(user.balance).to.equal(usersStartingGems - 0.5);
});
it('unlocks an item (facial hair)', () => {
user.purchased.hair.mustache = {};
user.purchased.hair.beard = {};
const path = facialHairUnlockPath.split(',')[0];
const initialMustache = Object.keys(user.purchased.hair.mustache).length;
const initialBeard = Object.keys(user.purchased.hair.beard).length;
const [, message] = unlock(user, { query: { path } });
expect(message).to.equal(i18n.t('unlocked'));
expect(Object.keys(user.purchased.hair.mustache).length).to.equal(initialMustache + 1);
expect(Object.keys(user.purchased.hair.beard).length).to.equal(initialBeard);
expect(get(user.purchased, path)).to.be.true;
expect(user.balance).to.equal(usersStartingGems - 0.5);
});
it('unlocks an item (gear)', () => {
const path = unlockGearSetPath.split(',')[0];
const initialGear = Object.keys(user.items.gear.owned).length;
const [, message] = unlock(user, { query: { path } });
expect(message).to.equal(i18n.t('unlocked'));
expect(Object.keys(user.items.gear.owned).length).to.equal(initialGear + 1);
expect(get(user, path)).to.be.true;
expect(user.balance).to.equal(usersStartingGems - 0.5);
});
it('unlocks an item (background)', () => {
const initialBackgrounds = Object.keys(user.purchased.background).length;
const [, message] = unlock(user, { query: { path: backgroundUnlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
expect(user.purchased.background.giant_florals).to.be.true;
});
it('reduces a user\'s balance', () => {
const [, message] = unlock(user, { query: { path: unlockPath } });
expect(message).to.equal(i18n.t('unlocked'));
expect(user.balance).to.equal(usersStartingGems - unlockCost);
expect(Object.keys(user.purchased.background).length).to.equal(initialBackgrounds + 1);
expect(get(user.purchased, backgroundUnlockPath)).to.be.true;
expect(user.balance).to.equal(usersStartingGems - 1.75);
});
});
+1143 -1067
View File
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -5,12 +5,12 @@
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit --require ./tests/unit/helpers.js",
"lint": "vue-cli-service lint .",
"lint-no-fix": "vue-cli-service lint --no-fix .",
"postinstall": "node ./scripts/npm-postinstall.js",
"storybook:build": "vue-cli-service storybook:build -c config/storybook -o dist/storybook",
"storybook:serve": "vue-cli-service storybook:serve -p 6006 -c config/storybook",
"test:unit": "vue-cli-service test:unit --require ./tests/unit/helpers.js"
"storybook:serve": "vue-cli-service storybook:serve -p 6006 -c config/storybook"
},
"dependencies": {
"@storybook/addon-actions": "^5.3.19",
@@ -18,11 +18,11 @@
"@storybook/addon-links": "^5.3.19",
"@storybook/addon-notes": "^5.3.19",
"@storybook/vue": "^5.3.19",
"@vue/cli-plugin-babel": "^4.3.1",
"@vue/cli-plugin-eslint": "^4.3.1",
"@vue/cli-plugin-router": "^4.3.1",
"@vue/cli-plugin-unit-mocha": "^4.3.1",
"@vue/cli-service": "^4.3.1",
"@vue/cli-plugin-babel": "^4.4.1",
"@vue/cli-plugin-eslint": "^4.4.1",
"@vue/cli-plugin-router": "^4.4.1",
"@vue/cli-plugin-unit-mocha": "^4.4.1",
"@vue/cli-service": "^4.4.1",
"@vue/test-utils": "1.0.0-beta.29",
"amplitude-js": "^5.11.0",
"axios": "^0.19.2",
@@ -44,7 +44,7 @@
"lodash": "^4.17.15",
"moment": "^2.26.0",
"nconf": "^0.10.0",
"sass": "^1.26.5",
"sass": "^1.26.8",
"sass-loader": "^8.0.2",
"smartbanner.js": "^1.15.0",
"svg-inline-loader": "^0.8.2",
@@ -56,7 +56,7 @@
"vue": "^2.6.11",
"vue-cli-plugin-storybook": "^0.6.1",
"vue-mugen-scroll": "^0.2.6",
"vue-router": "^3.2.0",
"vue-router": "^3.3.2",
"vue-template-compiler": "^2.6.11",
"vuedraggable": "^2.23.2",
"vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#5d237615463a84a23dd6f3f77c6ab577d68593ec",
@@ -1,60 +1,30 @@
.promo_armoire_backgrounds_202005 {
.promo_armoire_backgrounds_202006 {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -391px 0px;
background-position: -340px 0px;
width: 423px;
height: 147px;
}
.promo_fairy_sunshine_potions {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -391px -148px;
width: 423px;
height: 147px;
}
.promo_jungle_buddies_bundle {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -434px;
width: 423px;
height: 147px;
}
.promo_mystery_202005 {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -424px -434px;
width: 282px;
height: 147px;
}
.promo_mystery_202006 {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -241px -582px;
background-position: -340px -148px;
width: 282px;
height: 147px;
}
.promo_take_this {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -815px -179px;
background-position: -623px -148px;
width: 96px;
height: 69px;
}
.scene_casting_spells {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -211px;
width: 312px;
height: 222px;
}
.scene_pets_resting {
.scene_achievement {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px 0px;
width: 390px;
width: 339px;
height: 210px;
}
.scene_todos {
.scene_hiking {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -582px;
width: 240px;
height: 195px;
}
.scene_vikte {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -815px 0px;
width: 157px;
height: 178px;
background-position: 0px -211px;
width: 258px;
height: 258px;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,84 +1,102 @@
.quest_TEMPLATE_FOR_MISSING_IMAGE {
.quest_bunny {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -502px -1546px;
width: 221px;
height: 39px;
background-position: 0px -1543px;
width: 210px;
height: 186px;
}
.quest_butterfly {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -220px;
width: 219px;
height: 219px;
}
.quest_cheetah {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -892px;
width: 219px;
height: 219px;
}
.quest_cow {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1762px 0px;
background-position: -1762px -175px;
width: 174px;
height: 213px;
}
.quest_dilatory {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -892px;
background-position: -220px -232px;
width: 219px;
height: 219px;
}
.quest_dilatoryDistress1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -1332px;
background-position: 0px -1332px;
width: 210px;
height: 210px;
}
.quest_dilatoryDistress2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1762px -875px;
background-position: -1762px -1083px;
width: 150px;
height: 150px;
}
.quest_dilatoryDistress3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -232px;
background-position: -660px -220px;
width: 219px;
height: 219px;
}
.quest_dilatory_derby {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px 0px;
background-position: 0px -232px;
width: 219px;
height: 219px;
}
.quest_dolphin {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -232px;
background-position: 0px -452px;
width: 219px;
height: 219px;
}
.quest_dustbunnies {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -232px;
background-position: -220px -452px;
width: 219px;
height: 219px;
}
.quest_egg {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1762px -214px;
background-position: -1762px -573px;
width: 165px;
height: 207px;
}
.quest_evilsanta {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1762px -1026px;
background-position: -1762px -1234px;
width: 118px;
height: 131px;
}
.quest_evilsanta2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -220px;
background-position: -880px 0px;
width: 219px;
height: 219px;
}
.quest_falcon {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -452px;
background-position: -880px -220px;
width: 219px;
height: 219px;
}
.quest_ferret {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -452px;
background-position: -880px -440px;
width: 219px;
height: 219px;
}
.quest_fluorite {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -672px;
width: 219px;
height: 219px;
}
@@ -90,19 +108,19 @@
}
.quest_ghost_stag {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -452px;
background-position: -440px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px 0px;
background-position: -660px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -1546px;
background-position: -1305px -1332px;
width: 250px;
height: 150px;
}
@@ -114,145 +132,145 @@
}
.quest_gryphon {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1091px -1332px;
background-position: -871px -1332px;
width: 216px;
height: 177px;
}
.quest_guineapig {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -672px;
background-position: -1100px -440px;
width: 219px;
height: 219px;
}
.quest_harpy {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -672px;
background-position: -1100px -660px;
width: 219px;
height: 219px;
}
.quest_hedgehog {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -431px -1332px;
background-position: -211px -1332px;
width: 219px;
height: 186px;
}
.quest_hippo {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -672px;
background-position: -220px 0px;
width: 219px;
height: 219px;
}
.quest_horse {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px 0px;
background-position: -440px -892px;
width: 219px;
height: 219px;
}
.quest_kangaroo {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px 0px;
background-position: -660px -892px;
width: 219px;
height: 219px;
}
.quest_kraken {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -874px -1332px;
background-position: -654px -1332px;
width: 216px;
height: 177px;
}
.quest_lostMasterclasser1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -660px;
background-position: -1100px -892px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -892px;
background-position: -1320px 0px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -892px;
background-position: -1100px 0px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1762px -573px;
background-position: -1762px -781px;
width: 150px;
height: 150px;
}
.quest_mayhemMistiflying2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -892px;
background-position: -1320px -660px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -892px;
background-position: -1320px -880px;
width: 219px;
height: 219px;
}
.quest_monkey {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -892px;
background-position: 0px -1112px;
width: 219px;
height: 219px;
}
.quest_moon1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1540px -214px;
background-position: -1540px -431px;
width: 216px;
height: 216px;
}
.quest_moon2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -220px;
background-position: -440px -1112px;
width: 219px;
height: 219px;
}
.quest_moon3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -440px;
background-position: -660px -1112px;
width: 219px;
height: 219px;
}
.quest_moonstone1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -660px;
background-position: -880px -1112px;
width: 219px;
height: 219px;
}
.quest_moonstone2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -880px;
background-position: -1100px -1112px;
width: 219px;
height: 219px;
}
.quest_moonstone3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -1112px;
background-position: -1320px -1112px;
width: 219px;
height: 219px;
}
.quest_nudibranch {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1540px -1082px;
background-position: -1540px -214px;
width: 216px;
height: 216px;
}
.quest_octopus {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -651px -1332px;
background-position: -431px -1332px;
width: 222px;
height: 177px;
}
.quest_owl {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -1112px;
background-position: -220px -1112px;
width: 219px;
height: 219px;
}
@@ -264,25 +282,25 @@
}
.quest_penguin {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -1697px;
background-position: -1762px -389px;
width: 190px;
height: 183px;
}
.quest_pterodactyl {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -1112px;
background-position: -220px -672px;
width: 219px;
height: 219px;
}
.quest_rat {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -1112px;
background-position: -660px 0px;
width: 219px;
height: 219px;
}
.quest_robot {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px -452px;
background-position: -440px -232px;
width: 219px;
height: 219px;
}
@@ -294,109 +312,79 @@
}
.quest_rooster {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1525px -1332px;
background-position: -1762px 0px;
width: 213px;
height: 174px;
}
.quest_ruby {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1320px -1112px;
background-position: 0px -892px;
width: 219px;
height: 219px;
}
.quest_sabretooth {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -220px -1112px;
background-position: -1320px -440px;
width: 219px;
height: 219px;
}
.quest_seaserpent {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -440px;
background-position: -880px -892px;
width: 219px;
height: 219px;
}
.quest_sheep {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -672px;
background-position: -1100px -220px;
width: 219px;
height: 219px;
}
.quest_silver {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -672px;
background-position: -880px -672px;
width: 219px;
height: 219px;
}
.quest_slime {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -220px;
background-position: -660px -452px;
width: 219px;
height: 219px;
}
.quest_sloth {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1100px -220px;
background-position: -440px -452px;
width: 219px;
height: 219px;
}
.quest_snail {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: 0px -1332px;
background-position: -1540px -1082px;
width: 219px;
height: 213px;
}
.quest_snake {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1308px -1332px;
background-position: -1088px -1332px;
width: 216px;
height: 177px;
}
.quest_spider {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -251px -1546px;
background-position: -211px -1543px;
width: 250px;
height: 150px;
}
.quest_squirrel {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px -1112px;
background-position: -440px 0px;
width: 219px;
height: 219px;
}
.quest_stoikalmCalamity1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1762px -422px;
background-position: -1762px -932px;
width: 150px;
height: 150px;
}
.quest_stoikalmCalamity2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -880px -440px;
width: 219px;
height: 219px;
}
.quest_stoikalmCalamity3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -660px 0px;
width: 219px;
height: 219px;
}
.quest_taskwoodsTerror1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1762px -724px;
width: 150px;
height: 150px;
}
.quest_taskwoodsTerror2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -1540px -431px;
width: 216px;
height: 216px;
}
.quest_taskwoodsTerror3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-13.png');
background-position: -440px 0px;
width: 219px;
height: 219px;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 615 KiB

After

Width:  |  Height:  |  Size: 603 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 KiB

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 KiB

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 151 KiB

@@ -41,4 +41,9 @@
img {
max-width: 100%;
}
blockquote {
padding: 0 16px;
border-left: 4px solid #e1e0e3;
}
}
@@ -33,7 +33,7 @@
</p>
<div
ref="markdownContainer"
class="text"
class="text markdown"
v-html="parseMarkdown(msg.text)"
></div>
<hr>
@@ -166,7 +166,6 @@
color: #4e4a57;
text-align: left !important;
min-height: 0rem;
margin-bottom: -0.5rem;
}
}
@@ -13,7 +13,7 @@
<b-form-input
v-model="workingGroup.name"
type="text"
:placeholder="$t('newGuildPlaceholder')"
:placeholder="isParty ? $t('newPartyPlaceholder') : $t('newGuildPlaceholder')"
/>
</div>
<div class="form-group">
@@ -419,6 +419,11 @@ export default {
cardType: '',
messageOptions: 0,
},
quantitySnapshot: {
eggs: null,
hatchingPotions: null,
food: null,
},
};
},
computed: {
@@ -443,7 +448,9 @@ export default {
if (itemQuantity > 0 && isAllowed) {
const item = contentItems[itemKey];
const isSearched = !searchText || item.text().toLowerCase().indexOf(searchText) !== -1;
const isSearched = !searchText || item.text()
.toLowerCase()
.indexOf(searchText) !== -1;
if (isSearched) {
itemsArray.push({
...item,
@@ -458,12 +465,16 @@ export default {
}
});
itemsArray.sort((a, b) => {
if (this.sortBy === 'quantity') {
return b.quantity - a.quantity;
} // AZ
return a.text.localeCompare(b.text);
});
if (this.sortBy === 'quantity') {
// Store original quantities, to avoid reordering when using items.
const quantitySnapshot = this.quantitySnapshot[groupKey] || Object.fromEntries(
itemsArray.map(item => [item.key, item.quantity]),
);
itemsArray.sort((a, b) => quantitySnapshot[b.key] - quantitySnapshot[a.key]);
this.quantitySnapshot[groupKey] = quantitySnapshot;
} else {
itemsArray.sort((a, b) => a.text.localeCompare(b.text));
}
});
const specialArray = itemsByType.special;
@@ -154,6 +154,7 @@
<!-- eslint-enable vue/no-use-v-if-with-v-for -->
<div
v-for="item in group"
v-show="show('pet', item)"
:key="item.key"
v-drag.drop.food="item.key"
class="pet-group"
@@ -216,6 +217,7 @@
<!-- eslint-enable vue/no-use-v-if-with-v-for -->
<div
v-for="item in group"
v-show="show('mount', item)"
:key="item.key"
class="pet-group"
>
@@ -225,6 +227,7 @@
:popover-position="'top'"
:show-popover="true"
@click="selectMount(item)"
>
<span slot="popoverContent">
<h4 class="popover-content-title">{{ item.name }}</h4>
@@ -688,6 +691,11 @@ export default {
setShowMore (key) {
this.$_openedItemRows_toggleByType(key, !this.$_openedItemRows_isToggled(key));
},
show (type, item) {
return item.canFind === undefined
|| isOwned(type, item, this.userItems)
|| item.canFind;
},
getAnimalList (animalGroup, type) {
const { key } = animalGroup;
@@ -706,11 +714,14 @@ export default {
const eggKey = specialKey.split('-')[0];
const potionKey = specialKey.split('-')[1];
const { canFind, text } = this.content[`${type}Info`][specialKey];
animals.push({
key: specialKey,
eggKey,
potionKey,
name: this.content[`${type}Info`][specialKey].text(),
name: text(),
canFind,
isOwned () {
return isOwned(type, this, userItems);
},
@@ -20,7 +20,7 @@
<span v-if="msg.client && user.contributor.level >= 4"> ({{ msg.client }})</span>
</p>
<div
class="text"
class="text markdown"
v-html="parseMarkdown(msg.text)"
></div>
<div
@@ -120,7 +120,6 @@
color: $gray-50;
text-align: left !important;
min-height: 0rem;
margin-bottom: -0.5rem;
}
}
@@ -60,6 +60,21 @@
<div v-html="notification.text"></div>
</div>
</div>
<div
v-if="notification.type === 'damage'"
class="row"
>
<div class="text col-7 offset-1">
<div>{{ message }}</div>
</div>
<div class="icon col-4">
<div
class="svg-icon"
v-html="icons.sword"
></div>
<div v-html="notification.text"></div>
</div>
</div>
<div
v-if="['info', 'success', 'crit', 'lvl'].indexOf(notification.type) !== -1"
class="row"
@@ -86,6 +101,8 @@
</template>
<style lang="scss" scoped>
@import '~@/assets/scss/colors.scss';
.notification {
border-radius: 30px;
background-color: #24cc8f;
@@ -133,6 +150,10 @@
color: #2995cd;
}
.damage .icon {
color: $gray-100;
}
.icon {
background: #fff;
color: #ffa623;
@@ -171,6 +192,7 @@ import health from '@/assets/svg/health.svg';
import gold from '@/assets/svg/gold.svg';
import star from '@/assets/svg/star.svg';
import mana from '@/assets/svg/mana.svg';
import sword from '@/assets/svg/sword.svg';
export default {
props: ['notification'],
@@ -182,6 +204,7 @@ export default {
gold,
star,
mana,
sword,
}),
show: true,
};
@@ -197,6 +220,7 @@ export default {
if (this.notification.type === 'xp') localeKey += 'Experience';
if (this.notification.type === 'gp') localeKey += 'Gold';
if (this.notification.type === 'streak') localeKey = 'streakCoins';
if (this.notification.type === 'damage') localeKey = 'bossDamage';
return this.$t(localeKey);
// This requires eight translatable strings, but that gives the
// translators the most flexibility for matching gender/number
@@ -80,6 +80,7 @@
<draggable
ref="tasksList"
class="sortable-tasks"
v-if="taskList.length > 0"
:options="{disabled: activeFilter.label === 'scheduled' || !isUser, scrollSensitivity: 64}"
:delay-on-touch-only="true"
:delay="100"
@@ -168,7 +169,7 @@
@supports (display: grid) {
display: grid;
justify-content: center;
grid-column-gap: 16px;
grid-column-gap: 10px;
grid-row-gap: 4px;
grid-template-columns: repeat(auto-fill, 94px);
}
@@ -177,7 +178,7 @@
display: flex;
flex-wrap: wrap;
& > div {
margin: 0 16px 4px 0;
margin: 0 10px 4px 0;
}
}
}
+1 -1
View File
@@ -1070,7 +1070,7 @@ export default {
if (quest && user.party.quest && user.party.quest.key) {
const userQuest = Content.quests[user.party.quest.key];
if (quest.progressDelta && userQuest.boss) {
this.quest('questDamage', quest.progressDelta.toFixed(1));
this.damage(quest.progressDelta.toFixed(1));
} else if (quest.collection && userQuest.collect) {
user.party.quest.progress.collectedItems += 1;
this.quest('questCollection', quest.collection);
@@ -29,6 +29,9 @@ export default {
quest (type, val) {
this.notify(this.$t(type, { val }), 'success');
},
damage (val) {
this.notify(`${this.sign(val)}${val}`, 'damage');
},
exp (val) {
const message = getXPMessage(val);
this.notify(message, 'xp', 'glyphicon glyphicon-star', this.sign(val));
+1 -1
View File
@@ -178,7 +178,7 @@ export default {
if (questProgress > 0) {
const userQuest = quests.quests[this.user.party.quest.key];
if (userQuest.boss) {
this.quest('questDamage', questProgress.toFixed(1));
this.damage(questProgress.toFixed(1));
} else if (userQuest.collection && userQuest.collect) {
this.quest('questCollection', questProgress);
}
@@ -429,11 +429,12 @@
}
&.has-content {
--textarea-auto-height: 80px
--textarea-auto-height: 80px;
}
max-height: var(--textarea-auto-height, 40px);
height: var(--textarea-auto-height, 40px);
min-height: var(--textarea-auto-height, 40px);
max-height: 300px;
}
}
+2 -1
View File
@@ -62,5 +62,6 @@
"hideAchievements": "Schovat <%= kategorie %>",
"onboardingCompleteDesc": "Získáš <strong>5 ocenění</strong> a <strong class=\"gold-amount\">100</strong> zlaťáků za dokončení seznamu.",
"onboardingProgress": "<%= percentage %>% postup",
"gettingStartedDesc": "Vytvoř si úkol, splň jej a pak se podívej na své odměny. Dostaneš <strong>5 ocenění</strong> a <strong class=“gold-amount”>100 zlaťáků</strong>, jakmile budeš hotový!"
"gettingStartedDesc": "Vytvoř si úkol, splň jej a pak se podívej na své odměny. Dostaneš <strong>5 ocenění</strong> a <strong class=“gold-amount”>100 zlaťáků</strong>, jakmile budeš hotový!",
"showAllAchievements": "Zobrazit Všechny <%= kategorie %>"
}
@@ -595,6 +595,14 @@
"backgroundStrawberryPatchText": "Strawberry Patch",
"backgroundStrawberryPatchNotes": "Pick fresh treats from a Strawberry Patch.",
"backgrounds062020": "SET 73: Released June 2020",
"backgroundRelaxationRiverText": "Relaxation River",
"backgroundRelaxationRiverNotes": "Drift languorously down the Relaxation River.",
"backgroundSaltLakeText": "Salt Lake",
"backgroundSaltLakeNotes": "Behold the striking red ripples of a Salt Lake.",
"backgroundVikingShipText": "Viking Ship",
"backgroundVikingShipNotes": "Set sail for adventure aboard a Viking Ship.",
"timeTravelBackgrounds": "Steampunk Backgrounds",
"backgroundAirshipText": "Airship",
"backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.",
+1
View File
@@ -300,6 +300,7 @@
"hatchingPotionRuby": "Ruby",
"hatchingPotionBirchBark": "Birch Bark",
"hatchingPotionDessert": "Confection",
"hatchingPotionFluorite": "Fluorite",
"hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> pet.",
"premiumPotionAddlNotes": "Not usable on quest pet eggs. Available for purchase until <%= date(locale) %>.",
+6
View File
@@ -490,6 +490,8 @@
"weaponArmoirePaperCutterNotes": "This may not look fearsome, but have you never had a papercut? Increases Strength by <%= str %>. Enchanted Armoire: Paper Knight Set (Item 1 of 3).",
"weaponArmoireFiddlersBowText": "Fiddler's Bow",
"weaponArmoireFiddlersBowNotes": "You can coax music out of anything with this! ...A violin might work best, though. Increases Strength by <%= str %>. Enchanted Armoire: Fiddler Set (Item 3 of 4).",
"weaponArmoireBeachFlagText": "Beach Flag",
"weaponArmoireBeachFlagNotes": "Rally the troops around your sandcastle and let everyone know where to come for help! Increases Perception by <%= per %>. Enchanted Armoire: Lifeguard Set (Item 1 of 3).",
"armor": "armor",
"armorCapitalized": "Armor",
@@ -1955,6 +1957,8 @@
"shieldArmoireHobbyHorseNotes": "Ride your handsome hobby-horse steed toward your just Rewards! Increases Perception and Constitution by <%= attrs %> each. Enchanted Armoire: Paper Knight Set (Item 2 of 3).",
"shieldArmoireFiddleText": "Fiddler's Violin",
"shieldArmoireFiddleNotes": "A perfect instrument that always strikes the right note in company. Increases Intelligence by <%= int %>. Enchanted Armoire: Fiddler Set (Item 4 of 4).",
"shieldArmoireLifeBuoyText": "Life Buoy",
"shieldArmoireLifeBuoyNotes": "Oh buoy! This will come in handy if you spot someone struggling in a sea of tasks and responsibilities. Increases Constitution by <%= con %>. Enchanted Armoire: Lifeguard Set (Item 2 of 3).",
"back": "Back Accessory",
"backCapitalized": "Back Accessory",
@@ -2086,6 +2090,8 @@
"bodyArmoireCozyScarfText": "Cozy Scarf",
"bodyArmoireCozyScarfNotes": "This fine scarf will keep you warm as you go about your wintry business. Increases Constitution and Perception by <%= attrs %> each. Enchanted Armoire: Lamplighter's Set (Item 4 of 4).",
"bodyArmoireLifeguardWhistleText": "Lifeguard Whistle",
"bodyArmoireLifeguardWhistleNotes": "Call that misbehaving habit to order! It should know the rules! Increases Intelligence by <%= int %>. Enchanted Armoire: Lifeguard Set (Item 3 of 3).",
"headAccessory": "head accessory",
"headAccessoryCapitalized": "Head Accessory",
+1
View File
@@ -371,6 +371,7 @@
"groupPolicyCannotGetGems": "The policy of one group you're part of prevents its members from obtaining gems.",
"viewParty": "View Party",
"newGuildPlaceholder": "Enter your guild's name.",
"newPartyPlaceholder": "Enter your party's name.",
"guildMembers": "Guild Members",
"guildBank": "Guild Bank",
"chatPlaceholder": "Type your message to Guild members here",
+2 -1
View File
@@ -98,7 +98,8 @@
"pathRequired": "Path string is required",
"unlocked": "Items have been unlocked",
"alreadyUnlocked": "Full set already unlocked.",
"alreadyUnlockedPart": "Full set already partially unlocked.",
"alreadyUnlockedPart": "Full set already partially unlocked. It is cheaper to buy the remaining items individually.",
"invalidUnlockSet": "This set of items is invalid and cannot be unlocked.",
"invalidQuantity": "Quantity to purchase must be a positive whole number.",
"USD": "(USD)",
+1 -1
View File
@@ -37,7 +37,7 @@
"questStart": "Once all members have either accepted or rejected, the quest begins. Only those that clicked \"accept\" will be able to participate in the quest and receive the drops. If members are pending too long (inactive?), the quest owner can start the quest without them by clicking \"Begin\". The quest owner can also cancel the quest and regain the quest scroll by clicking \"Cancel\".",
"questStartBroken": "Once all members have either accepted or rejected, the quest begins... Only those that clicked \"accept\" will be able to participate in the quest and receive the drops... If members are pending too long (inactive?), the quest owner can start the quest without them by clicking \"Begin\"... The quest owner can also cancel the quest and regain the quest scroll by clicking \"Cancel\"...",
"questCollection": "+ <%= val %> quest item(s) found",
"questDamage": "+ <%= val %> damage to boss",
"bossDamage": "You damaged the boss!",
"begin": "Begin",
"bossHP": "Boss HP",
"bossStrength": "Boss Strength",
+8 -1
View File
@@ -809,5 +809,12 @@
"questWaffleUnlockText": "Unlocks Confection Hatching Potions for purchase in the Market",
"jungleBuddiesText": "Jungle Buddies Quest Bundle",
"jungleBuddiesNotes": "Contains 'Monstrous Mandrill and the Mischief Monkeys', 'The Somnolent Sloth', and 'The Tangle Tree'. Available until <%= date %>."
"jungleBuddiesNotes": "Contains 'Monstrous Mandrill and the Mischief Monkeys', 'The Somnolent Sloth', and 'The Tangle Tree'. Available until <%= date %>.",
"questFluoriteText": "A Bright Fluorite Fright",
"questFluoriteNotes": "Unusual minerals are in high demand these days, so you and a few friends have trekked deep into the mines of the Meandering Mountains, in search of exciting ores. Its a long and boring expedition, until @-Tyr- stumbles over a large rock, sitting right in the middle of the tunnel.<br><br>“This should help brighten things up,” says @nirbhao, before conjuring up an orb of light.<br><br>A warm brightness fills the tunnel, but something odd starts happening to that large rock. Feeding on the magical light, it begins to glow with fluorescent blues, greens and purples. Then it rears upright into a vaguely humanoid shape, complete with glowing red eyes fixed right on you! You jump into action with flashing spells and shining weapons.",
"questFluoriteCompletion": "As you do battle, the crystal creature seems more and more distracted by the light show you are creating. “So shiny…” it mutters.<br><br>“Of course!” @nirbhao exclaims. “It must be a fluorite elemental. All they want is light to let them glow. Lets help it shine.”<br><br>The elemental giggles happily and glows all the brighter as you light up torches and motes of magic. Its so glad to be shining again that it leads you to a rich deposit of fluorite crystals.<br><br>“This is the perfect ingredient for a new hatching potion,” says @nirbhao. “One which will make our pets as bright as our new fluorescent friend.”",
"questFluoriteBoss": "Fluorite Elemental",
"questFluoriteDropFluoritePotion": "Fluorite Hatching Potion",
"questFluoriteUnlockText": "Unlocks Fluorite Hatching Potions for purchase in the Market"
}
@@ -72,5 +72,8 @@
"foundNewItemsExplanation": "Completar tareas te da la oportunidad de encontrar objectos, así como Huevos, Pociones para Incubar y Comida para Mascotas.",
"foundNewItems": "¡Encontraste nuevos objetos!",
"onboardingCompleteDescSmall": "¡Si quieres aún más, checa los Logros y comienza a coleccionar!",
"onboardingComplete": "¡Completaste tus tareas de incorporación!"
"onboardingComplete": "¡Completaste tus tareas de incorporación!",
"achievementRosyOutlookModalText": "¡Has domesticado todas las monturas de algodón de azúcar rosa!",
"achievementRosyOutlookText": "Has domesticado todas las monturas de algodón de azúcar rosa.",
"achievementRosyOutlook": "Rosy Outlook"
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"noItemsAvailableForType": "No tienes <%= type %>.",
"foodItemType": "Comida",
"foodItemType": "Comida para mascotas",
"eggsItemType": "Huevos",
"hatchingPotionsItemType": "Pociones de Eclosión",
"specialItemType": "Artículos Especiales",
+4 -4
View File
@@ -44,11 +44,11 @@
"hatchingPotion": "poción de eclosión",
"noHatchingPotions": "No tienes pociones de eclosión.",
"inventoryText": "Haz clic en un huevo para ver las pociones utilizables resaltadas en verde, y después haz clic en una de las pociones para que tu mascota eclosione. Si ninguna poción se destacó, cliquea en ese huevo de nuevo para anular la selección, y pulsa primero sobre una poción para destacar los huevos utilizables. También puedes vender los objetos que ya no desees a Alexander el Comerciante.",
"haveHatchablePet": "You have a <%= potion %> hatching potion and <%= egg %> egg to hatch this pet! <b>Click</b> the paw print to hatch.",
"haveHatchablePet": "¡Tienes una poción de eclosión <%= potion %> y un Huevo de <%= egg %> para eclosionar esta mascota! ¡<b>Click</b> para hacerlo!",
"quickInventory": "Inventario rapido",
"foodText": "comida",
"food": "Comida y Monturas",
"noFoodAvailable": "No tienes comida.",
"food": "Comida para Mascota y Monturas",
"noFoodAvailable": "No tienes comida para mascotas.",
"noSaddlesAvailable": "No tienes ninguna silla de montar.",
"noFood": "No tienes ni comida ni monturas.",
"dropsExplanation": "Consigue estos objetos más rápido con Gemas si no quieres esperar a que aparezcan cuando completes una tarea. <a href=\"http://habitica.fandom.com/wiki/Drops\">Lee más acerca del sistema de botines.</a>",
@@ -143,7 +143,7 @@
"notEnoughPets": "No has recolectado suficientes mascotas",
"notEnoughMounts": "No has recolectado suficientes monturas",
"notEnoughPetsMounts": "No has recolectado suficientes mascotas y monturas",
"wackyPets": "Mascotas Locas",
"wackyPets": "Mascotas Chifladas",
"filterByWacky": "Loco",
"gryphatrice": "Grifotriz"
}
+9 -2
View File
@@ -15,10 +15,17 @@
"achievementLostMasterclasserModalText": "Mind a tizenhat küldetést a Kasztmester sorozatban teljesítette, és feltárta az Elveszett Kasztmester rejtélyét!",
"hideAchievements": " <%= category %> elrejtése",
"showAllAchievements": "Minden <%= category %> megtekintése",
"onboardingCompleteDesc": "<strong>5 Teljesítményt</strong> és <strong class=\"gold-amount\">100</strong> Aranyat szerzett a lista befejezéséért.",
"onboardingCompleteDesc": "<strong>5 Teljesítményt</strong> és <strong class=\"gold-amount\">100</strong> Aranyat szerztél a lista befejezéséért.",
"earnedAchievement": "Teljesítményt szerzett!",
"viewAchievements": "Teljesítmények megtekintése",
"letsGetStarted": "Kezdjük el!",
"onboardingProgress": "<%= percentage %>% haladás",
"gettingStartedDesc": "Tűzzünk ki egy feladatot, végezzük el, majd ellenőrizd jutalmaidat. <strong> 5 kitüntetést </strong> és <strong class=\"gold-anount\">száz aranyat</strong> fogsz ezzel megszerezni!"
"gettingStartedDesc": "Tűzz ki egy feladatot, végezd el, majd ellenőrizd jutalmaidat! <strong> 5 kitüntetést </strong> és <strong class=\"gold-anount\">száz aranyat</strong> fogsz ezzel megszerezni!",
"foundNewItemsCTA": "Vedd az irányt raktárad felé, és próbáld ki hogyan tudod kombinálni az új keltető varázsitalod a tojásoddal!",
"foundNewItemsExplanation": "A feladatok elvégzésével tárgyakat, tokásokat, keltető varázsitalokat, valamint kisállat eleséget szerezhetsz.",
"foundNewItems": "Új tárgyat találtál!",
"onboardingCompleteDescSmall": "Ha többre vágysz ellenőrizd a Kitüntetéseket, és kezdd meg begyűjtésüket!",
"onboardingComplete": "Minden kitűzött célod teljesítetted!",
"yourProgress": "Előrehaladásod",
"achievementJustAddWaterText": "Teljesítetted a Polip, a Tengeri csikó, a Tintahal, a Bálna, a Teknős, a Tengeri csupaszcsiga, a Tengeri kígyó, valamint a Delfin kisállat kihívásokat."
}
+3 -1
View File
@@ -15,5 +15,7 @@
"achievementJustAddWaterModalText": "Hai completato le missioni di Polpo, Cavalluccio Marino, Seppia, Balena, Tartaruga, Nudibranco, Serpente di Mare e Delfino!",
"achievementBackToBasics": "Ritorno alle Origini",
"achievementBackToBasicsText": "Ha raccolto tutti gli animali domestici basilari.",
"achievementBackToBasicsModalText": "Hai raccolto tutti gli animali domestici di base!"
"achievementBackToBasicsModalText": "Hai raccolto tutti gli animali domestici di base!",
"foundNewItems": "Hai trovato articoli nuovi!",
"letsGetStarted": "Cominciamo!"
}
+19 -1
View File
@@ -456,5 +456,23 @@
"backgroundGiantDandelionsText": "Denti di Leone Giganti",
"backgroundGiantDandelionsNotes": "Gingillati tra i Denti di un Leone Gigante.",
"backgroundTreehouseText": "Casa sull'Albero",
"backgroundTreehouseNotes": "Rilassati in un rifugio arboricolo tutto per te, nella tua casa sull'albero."
"backgroundTreehouseNotes": "Rilassati in un rifugio arboricolo tutto per te, nella tua casa sull'albero.",
"backgrounds122019": "SET 67: Uscito Dicembre 2019",
"backgroundPotionShopNotes": "Trovi un elisir per alcun disturbo a un Negozio Pozione.",
"backgroundPotionShopText": "Negozio Pozione",
"backgroundFlyingInAThunderstormNotes": "Insegui un Temporale Tumultuoso il più vicino che osi.",
"backgroundFlyingInAThunderstormText": "Temporale Tumultuoso",
"backgroundFarmersMarketNotes": "Compri degli alimenti più freschi a un Mercato Contadino.",
"backgroundFarmersMarketText": "Mercato Contadino",
"backgrounds112019": "SET 66: Uscito Novembre 2019",
"backgroundFoggyMoorNotes": "Stai attento traversando una Palude Nebbiosa.",
"backgroundFoggyMoorText": "Palude Nebbiosa",
"backgrounds102019": "SET 65: Uscito Ottobre 2019",
"backgroundInAClassroomNotes": "Assorbi la conoscenza dai tuoi mentori in un Aula.",
"backgroundInAClassroomText": "Aula",
"backgroundInAnAncientTombText": "Tomba Antica",
"backgroundAutumnFlowerGardenNotes": "Goditi il calore di un Giardino Ornamentale dAutunno.",
"backgroundAutumnFlowerGardenText": "Giardino Ornamentale dAutunno",
"backgrounds092019": "SET 64: Uscito Settembre 2019",
"backgroundUnderwaterVentsNotes": "Fai un tuffo profondo giù, giù alle Correnti Marine."
}
+4 -2
View File
@@ -156,7 +156,7 @@
"optOutOfClasses": "Rinuncia",
"optOutOfPMs": "Rinuncia",
"chooseClass": "Scegli la tua Classe",
"chooseClassLearnMarkdown": "[Maggiori informazioni sul sistema delle classi di Habitica](http://habitica.fandom.com/wiki/Class_System)",
"chooseClassLearnMarkdown": "[Maggiori informazioni sul sistema delle classi di Habitica](https://habitica.fandom.com/wiki/Class_System)",
"optOutOfClassesText": "Il sistema delle classi non ti interessa? Vuoi scegliere in un secondo momento? Nessun problema - sarai un Guerriero senza alcuna abilità speciale. Puoi avere maggiori informazioni sul sistema delle classi nella wiki ed abilitare il sistema delle classi in qualsiasi momento sull'Icona Utente -> Configurazioni.",
"selectClass": "Seleziona <%= heroClass %>",
"select": "Seleziona",
@@ -224,5 +224,7 @@
"mainHand": "Mano principale",
"offHand": "Mano secondaria",
"statPoints": "Punti Statistiche",
"pts": "punti"
"pts": "punti",
"purchasePetItemConfirm": "Questo acquisto supererebbe il numero degli oggetti necessari per far schiudere tutti i possibili animali domestici. Sei sicuro?",
"purchaseForGold": "Acquistare per <%= cost %> oro?"
}
+1 -1
View File
@@ -212,7 +212,7 @@
"hatchingPotionFrost": "Gelo",
"hatchingPotionIcySnow": "Neve Ghiacciata",
"hatchingPotionNotes": "Versa questa pozione su un uovo, e nascerà un animale <%= potText(locale) %>.",
"premiumPotionAddlNotes": "Non utilizzabile su uova di animali ottenute dalle missioni.",
"premiumPotionAddlNotes": "Non utilizzabile su uova di animali ottenute dalle missioni. Disponibile per l'acquisto fino al <%= date(locale) %>.",
"foodMeat": "Carne",
"foodMeatThe": "la Carne",
"foodMeatA": "Carne",
+4 -1
View File
@@ -216,5 +216,8 @@
"gemsRemaining": "gemme rimanenti",
"notEnoughGemsToBuy": "Non puoi comprare quella quantità di gemme",
"subWillBecomeInactive": "Diventerà inattivo",
"confirmCancelSub": "Sei sicuro di voler cancellare il tuo abbonamento? Perderai tutti i tuoi benefici."
"confirmCancelSub": "Sei sicuro di voler cancellare il tuo abbonamento? Perderai tutti i tuoi benefici.",
"mysticHourglassNeededNoSub": "Questo articolo ha bisogno di una Clessidra Mistica. Tu ne ottieni una essendo un abbonato/un' abbonata di Habitica.",
"giftASubscription": "Regala un Abbonamento",
"viewSubscriptions": "Guarda Abbonamenti"
}
+1 -1
View File
@@ -4,7 +4,7 @@
"onwards": "やった!",
"levelup": "実生活での目標達成でレベルアップしました!体力も最大まで回復しました!",
"reachedLevel": "レベル<%= level %>になりました",
"achievementLostMasterclasser": "クエスト完了者: クラス・マスターシリーズ",
"achievementLostMasterclasser": "クエスト完了者クラス・マスターシリーズ",
"achievementLostMasterclasserText": "クラス・マスタークエストシリーズで16のクエストをすべて完了し、失われたクラス・マスターの謎を解き明かしました!",
"achievementLostMasterclasserModalText": "クラス・マスタークエストシリーズで16のクエストをすべて完了し、失われたクラス・マスターの謎を解き明かしました!",
"achievementMindOverMatter": "物体を越える精神力",
+39 -39
View File
@@ -18,7 +18,7 @@
"backgroundOpenWatersNotes": "一面の海を楽しもう。",
"backgroundSeafarerShipText": "船乗りの船",
"backgroundSeafarerShipNotes": "船乗りになりきろう。",
"backgrounds082014": "セット3: 2014年8月リリース",
"backgrounds082014": "セット3 2014年8月リリース",
"backgroundCloudsText": "雲",
"backgroundCloudsNotes": "雲の間を突き抜けよう。",
"backgroundDustyCanyonsText": "埃っぽい峡谷",
@@ -32,14 +32,14 @@
"backgroundAutumnForestNotes": "秋の森で気ままに散歩しよう。",
"backgroundHarvestFieldsText": "豊作の畑",
"backgroundHarvestFieldsNotes": "畑を耕そう。",
"backgrounds102014": "セット5: 2014年10月リリース",
"backgrounds102014": "セット5 2014年10月リリース",
"backgroundGraveyardText": "墓場",
"backgroundGraveyardNotes": "気味の悪い墓場を訪れてみよう。",
"backgroundHauntedHouseText": "幽霊屋敷",
"backgroundHauntedHouseNotes": "幽霊屋敷をそっと通りぬけよう。",
"backgroundPumpkinPatchText": "カボチャ畑",
"backgroundPumpkinPatchNotes": "カボチャ畑でジャック・オ・ランタンを作ろう。",
"backgrounds112014": "セット6: 2014年11月リリース",
"backgrounds112014": "セット6 2014年11月リリース",
"backgroundHarvestFeastText": "収穫祭",
"backgroundHarvestFeastNotes": "収穫祭を楽しもう。",
"backgroundStarrySkiesText": "星空",
@@ -53,56 +53,56 @@
"backgroundTwinklyLightsNotes": "イベントのライトで飾られた木々の間を散歩しよう。",
"backgroundSouthPoleText": "南極",
"backgroundSouthPoleNotes": "凍えるような南極を訪ねよう。",
"backgrounds012015": "セット8: 2015年1月リリース",
"backgrounds012015": "セット8 2015年1月リリース",
"backgroundIceCaveText": "氷の洞窟",
"backgroundIceCaveNotes": "氷の洞窟にに降りて行こう。",
"backgroundFrigidPeakText": "極寒の頂上",
"backgroundFrigidPeakNotes": "極寒の頂上を制覇しよう。",
"backgroundSnowyPinesText": "雪が積もった松",
"backgroundSnowyPinesNotes": "雪が積もった松に囲まれて休もう。",
"backgrounds022015": "セット9: 2015年2月リリース",
"backgrounds022015": "セット9 2015年2月リリース",
"backgroundBlacksmithyText": "鍛冶場",
"backgroundBlacksmithyNotes": "鍛冶場で働こう。",
"backgroundCrystalCaveText": "水晶の洞窟",
"backgroundCrystalCaveNotes": "水晶の洞窟を探検しよう。",
"backgroundDistantCastleText": "遠くの城",
"backgroundDistantCastleNotes": "遠くの城を守ろう。",
"backgrounds032015": "セット10: 2015年3月リリース",
"backgrounds032015": "セット10 2015年3月リリース",
"backgroundSpringRainText": "春の雨",
"backgroundSpringRainNotes": "春の雨の中で踊ろう。",
"backgroundStainedGlassText": "ステンドグラス",
"backgroundStainedGlassNotes": "ステンドグラスに見とれよう。",
"backgroundRollingHillsText": "ゆるやかな丘",
"backgroundRollingHillsNotes": "ゆるやかな丘ではしゃごう。",
"backgrounds042015": "セット11: 2015年4月リリース",
"backgrounds042015": "セット11 2015年4月リリース",
"backgroundCherryTreesText": "桜の木",
"backgroundCherryTreesNotes": "咲いた桜に惚れ惚れしよう。",
"backgroundFloralMeadowText": "花咲く牧草地",
"backgroundFloralMeadowNotes": "花咲く牧草地でピクニックをしよう。",
"backgroundGumdropLandText": "ガムドロップランド",
"backgroundGumdropLandNotes": "ガムドロップランドの景色をかじろう。",
"backgrounds052015": "セット12: 2015年5月リリース",
"backgrounds052015": "セット12 2015年5月リリース",
"backgroundMarbleTempleText": "マーブル神殿",
"backgroundMarbleTempleNotes": "マーブル神殿の前でポーズを取ろう。",
"backgroundMountainLakeText": "山の湖",
"backgroundMountainLakeNotes": "山の湖につま先を浸そう。",
"backgroundPagodasText": "仏塔",
"backgroundPagodasNotes": "仏塔の頂上に登ろう。",
"backgrounds062015": "セット13: 2015年6月リリース",
"backgrounds062015": "セット13 2015年6月リリース",
"backgroundDriftingRaftText": "漂流筏",
"backgroundDriftingRaftNotes": "漂流筏を漕ごう。",
"backgroundShimmeryBubblesText": "キラキラな泡",
"backgroundShimmeryBubblesNotes": "キラキラな泡いっぱいの海に浮こう。",
"backgroundIslandWaterfallsText": "島の滝",
"backgroundIslandWaterfallsNotes": "島の滝の近くでピクニックしよう。",
"backgrounds072015": "セット14: 2015年7月リリース",
"backgrounds072015": "セット14 2015年7月リリース",
"backgroundDilatoryRuinsText": "サキノバシティーの廃墟",
"backgroundDilatoryRuinsNotes": "サキノバシティーの廃墟へ飛び込もう。",
"backgroundGiantWaveText": "高波",
"backgroundGiantWaveNotes": "高波に乗ろう!",
"backgroundSunkenShipText": "沈没船",
"backgroundSunkenShipNotes": "沈没船を探検しよう。",
"backgrounds082015": "セット15: 2015年8月リリース",
"backgrounds082015": "セット15 2015年8月リリース",
"backgroundPyramidsText": "ピラミッド",
"backgroundPyramidsNotes": "ピラミッドをたたえよう。",
"backgroundSunsetSavannahText": "サバンナの夕日",
@@ -137,14 +137,14 @@
"backgroundSnowySunriseNotes": "雪の日の出を見よう。",
"backgroundWinterTownText": "都市の冬",
"backgroundWinterTownNotes": "冬の街の雑踏を歩こう。",
"backgrounds012016": "セット20: 2016年1月リリース",
"backgrounds012016": "セット20 2016年1月リリース",
"backgroundFrozenLakeText": "凍った湖",
"backgroundFrozenLakeNotes": "凍った湖でスケートしよう。",
"backgroundSnowmanArmyText": "雪だるまの軍隊",
"backgroundSnowmanArmyNotes": "雪だるまの軍隊を指揮しよう。",
"backgroundWinterNightText": "冬の夜",
"backgroundWinterNightNotes": "冬の夜の星空を見よう。",
"backgrounds022016": "セット21: 2016年2月リリース",
"backgrounds022016": "セット21 2016年2月リリース",
"backgroundBambooForestText": "竹の森",
"backgroundBambooForestNotes": "竹の森を散歩しよう。",
"backgroundCozyLibraryText": "居心地のいい図書館",
@@ -158,28 +158,28 @@
"backgroundRainforestNotes": "熱帯雨林を探検しましょう。",
"backgroundStoneCircleText": "石の円陣",
"backgroundStoneCircleNotes": "石の円陣で呪文を唱えましょう。",
"backgrounds042016": "セット 23 : 2016年4月リリース",
"backgrounds042016": "セット23 2016年4月リリース",
"backgroundArcheryRangeText": "アーチェリー場",
"backgroundArcheryRangeNotes": "アーチェリー場で弓の練習をしましょう。",
"backgroundGiantFlowersText": "大きな花",
"backgroundGiantFlowersNotes": "大きな花のてっぺんで遊びましょう。",
"backgroundRainbowsEndText": "虹の終わり",
"backgroundRainbowsEndNotes": "虹の終わりでゴールドを見つけましょう。",
"backgrounds052016": "セット 24 : 2016年5月リリース",
"backgrounds052016": "セット24 2016年5月リリース",
"backgroundBeehiveText": "ハチの巣",
"backgroundBeehiveNotes": "ハチの巣で羽をふるわせて踊りましょう。",
"backgroundGazeboText": "あずま屋",
"backgroundGazeboNotes": "あずま屋に戦いを挑みましょう。",
"backgroundTreeRootsText": "木の根",
"backgroundTreeRootsNotes": "木の根を探索しましょう。",
"backgrounds062016": "セット25: 2016年6月リリース",
"backgrounds062016": "セット25 2016年6月リリース",
"backgroundLighthouseShoreText": "灯台が見える海岸",
"backgroundLighthouseShoreNotes": "灯台が見える海岸を散歩しましょう。",
"backgroundLilypadText": "スイレンの葉",
"backgroundLilypadNotes": "スイレンの葉で飛びはねましょう。",
"backgroundWaterfallRockText": "滝の岩",
"backgroundWaterfallRockNotes": "岩で滝に打たれましょう。",
"backgrounds072016": "セット26: 2016年7月リリース",
"backgrounds072016": "セット26 2016年7月リリース",
"backgroundAquariumText": "水槽",
"backgroundAquariumNotes": "水槽の中で跳ねましょう。",
"backgroundDeepSeaText": "深海",
@@ -193,21 +193,21 @@
"backgroundMountainPyramidNotes": "ピラミッド山の幾多の段を登りましょう。",
"backgroundStormyShipText": "嵐の中の船",
"backgroundStormyShipNotes": "嵐の中の船の上で、風と波に立ち向かいましょう。",
"backgrounds092016": "セット28 : 2016年9月リリース",
"backgrounds092016": "セット28 2016年9月リリース",
"backgroundCornfieldsText": "トウモロコシ畑",
"backgroundCornfieldsNotes": "トウモロコシ畑に出かけて、すばらしい日を楽しみましょう。",
"backgroundFarmhouseText": "農場の納屋",
"backgroundFarmhouseNotes": "農場の納屋に行く道で、動物たちにあいさつしましょう。",
"backgroundOrchardText": "果樹園",
"backgroundOrchardNotes": "果樹園で、うれたフルーツをとりましょう。",
"backgrounds102016": "セット29 : 2016年10月リリース",
"backgrounds102016": "セット29 2016年10月リリース",
"backgroundSpiderWebText": "クモの巣",
"backgroundSpiderWebNotes": "クモの巣でもがきましょう。",
"backgroundStrangeSewersText": "奇妙な下水道",
"backgroundStrangeSewersNotes": "奇妙な下水道で滑りましょう。",
"backgroundRainyCityText": "雨の街",
"backgroundRainyCityNotes": "雨の街をピチャピチャ歩きましょう。",
"backgrounds112016": "セット30: 2016年11月リリース",
"backgrounds112016": "セット30 2016年11月リリース",
"backgroundMidnightCloudsText": "闇夜の雲海",
"backgroundMidnightCloudsNotes": "闇夜の雲海を飛びまわろう。",
"backgroundStormyRooftopsText": "嵐の屋上",
@@ -234,14 +234,14 @@
"backgroundWinterFireworksNotes": "冬の花火を打ち上げましょう。",
"backgroundWinterStorefrontText": "冬のショップ",
"backgroundWinterStorefrontNotes": "冬のショップでプレゼントを買いましょう。",
"backgrounds012017": "セット32: 2017年1月リリース",
"backgrounds012017": "セット32 2017年1月リリース",
"backgroundBlizzardText": "大吹雪",
"backgroundBlizzardNotes": "すさまじい大吹雪に立ちむかいましょう。",
"backgroundSparklingSnowflakeText": "キラキラの雪",
"backgroundSparklingSnowflakeNotes": "キラキラの雪を滑りましょう。",
"backgroundStoikalmVolcanoesText": "オダヤカニ火山",
"backgroundStoikalmVolcanoesNotes": "オダヤカニ火山を探検しましょう。",
"backgrounds022017": "セット33: 2017年2月リリース",
"backgrounds022017": "セット33 2017年2月リリース",
"backgroundBellTowerText": "鐘楼",
"backgroundBellTowerNotes": "鐘楼に上ろう。",
"backgroundTreasureRoomText": "宝の部屋",
@@ -255,7 +255,7 @@
"backgroundMeanderingCaveNotes": "曲がりくねった洞窟を探検しよう。",
"backgroundMistiflyingCircusText": "幻想的なサーカス",
"backgroundMistiflyingCircusNotes": "幻想的なサーカスで酔い騒ごう。",
"backgrounds042017": "セット35: 2017年4月リリース",
"backgrounds042017": "セット35 2017年4月リリース",
"backgroundBugCoveredLogText": "虫だらけの丸太",
"backgroundBugCoveredLogNotes": "虫だらけの丸太を調査しよう。",
"backgroundGiantBirdhouseText": "大きな鳥の家",
@@ -283,7 +283,7 @@
"backgroundKelpForestNotes": "海藻の森の中を泳ぎましょう。",
"backgroundMidnightLakeText": "真夜中の湖",
"backgroundMidnightLakeNotes": "真夜中の湖のほとりで休みましょう。",
"backgrounds082017": "セット39: 2017年8月リリース",
"backgrounds082017": "セット39 2017年8月リリース",
"backgroundBackOfGiantBeastText": "巨大な獣の背中",
"backgroundBackOfGiantBeastNotes": "巨大な獣の背中に乗りましょう。",
"backgroundDesertDunesText": "砂丘",
@@ -304,7 +304,7 @@
"backgroundSpookyHotelNotes": "不気味なホテルのホールを忍び歩きしよう。",
"backgroundTarPitsText": "タールの池",
"backgroundTarPitsNotes": "つま先立ちでタールの池を通り抜けよう。",
"backgrounds112017": "セット42: 2017年11月リリース",
"backgrounds112017": "セット42 2017年11月リリース",
"backgroundFiberArtsRoomText": "織物工房",
"backgroundFiberArtsRoomNotes": "織物工房で糸を紡ぎましょう。",
"backgroundMidnightCastleText": "真夜中のお城",
@@ -318,14 +318,14 @@
"backgroundStarryWinterNightNotes": "冬の星空を見上げましょう。",
"backgroundToymakersWorkshopText": "おもちゃ工房",
"backgroundToymakersWorkshopNotes": "おもちゃ工房の驚異を満喫しましょう。",
"backgrounds012018": "セット44: 2018年1月リリース",
"backgrounds012018": "セット44 2018年1月リリース",
"backgroundAuroraText": "オーロラ",
"backgroundAuroraNotes": "冬に輝くオーロラを堪能しましょう。",
"backgroundDrivingASleighText": "そり",
"backgroundDrivingASleighNotes": "雪原をそりで走りましょう。",
"backgroundFlyingOverIcySteppesText": "氷の大平原",
"backgroundFlyingOverIcySteppesNotes": "氷の大平原上空を飛びましょう。",
"backgrounds022018": "セット45: 2018年2月リリース",
"backgrounds022018": "セット45 2018年2月リリース",
"backgroundChessboardLandText": "チェスボードの国",
"backgroundChessboardLandNotes": "チェスボードの国でゲームしましょう。",
"backgroundMagicalMuseumText": "魔法博物館",
@@ -339,14 +339,14 @@
"backgroundElegantBalconyNotes": "優雅なバルコニーからの景観を眺めましょう。",
"backgroundDrivingACoachText": "馬車の御者台",
"backgroundDrivingACoachNotes": "花畑を馬車でドライブしましょう。",
"backgrounds042018": "セット 47 : 2018年4月リリース",
"backgrounds042018": "セット47 2018年4月リリース",
"backgroundTulipGardenText": "チューリップの庭",
"backgroundTulipGardenNotes": "チューリップの庭をつま先立ちで通り抜けましょう。",
"backgroundFlyingOverWildflowerFieldText": "野生の花畑",
"backgroundFlyingOverWildflowerFieldNotes": "野生の花畑で舞い上がりましょう。",
"backgroundFlyingOverAncientForestText": "いにしえの森",
"backgroundFlyingOverAncientForestNotes": "いにしえの森の林冠を飛び越しましょう。",
"backgrounds052018": "セット 48 : 2018年5月リリース",
"backgrounds052018": "セット48 2018年5月リリース",
"backgroundTerracedRiceFieldText": "棚田",
"backgroundTerracedRiceFieldNotes": "田植え時期の棚田を眺めて楽しもう。",
"backgroundFantasticalShoeStoreText": "不思議な靴屋さん",
@@ -374,35 +374,35 @@
"backgroundFlyingOverRockyCanyonNotes": "岩石渓谷の上空を飛び越えるような息をのむ光景をのぞきこみましょう。",
"backgroundBridgeText": "橋",
"backgroundBridgeNotes": "素敵な橋を渡りましょう。",
"backgrounds092018": "セット52: 2018年9月リリース",
"backgrounds092018": "セット52 2018年9月リリース",
"backgroundApplePickingText": "リンゴ狩り",
"backgroundApplePickingNotes": "リンゴ狩りに行って、お家にたくさん持ち帰りましょう。",
"backgroundGiantBookText": "大きな本",
"backgroundGiantBookNotes": "大きな本のページを通って、歩きながら読みましょう。",
"backgroundCozyBarnText": "居心地のいい納屋",
"backgroundCozyBarnNotes": "あなたのペットや乗騎たちと共に、彼らの居心地のいい納屋でくつろぎましょう。",
"backgrounds102018": "セット53: 2018年10月リリース",
"backgrounds102018": "セット53 2018年10月リリース",
"backgroundBayouText": "バイユー",
"backgroundBayouNotes": "霧深いバイユーでホタルの輝きを浴びましょう。",
"backgroundCreepyCastleText": "気味の悪い城",
"backgroundCreepyCastleNotes": "気味の悪い城にあえて近づいてみましょう。",
"backgroundDungeonText": "地下牢",
"backgroundDungeonNotes": "不気味な地下牢に囚われた人々を救い出しましょう。",
"backgrounds112018": "セット54: 2018年11月リリース",
"backgrounds112018": "セット54 2018年11月リリース",
"backgroundBackAlleyText": "裏通り",
"backgroundBackAlleyNotes": "裏通りで怪しげな徘徊を眺めましょう。",
"backgroundGlowingMushroomCaveText": "輝くキノコの洞窟",
"backgroundGlowingMushroomCaveNotes": "驚嘆の目で輝くキノコの洞窟を見ましょう。",
"backgroundCozyBedroomText": "快適な寝室",
"backgroundCozyBedroomNotes": "快適な寝室で丸くなって寝ましょう。",
"backgrounds122018": "セット55: 2018年12月リリース",
"backgrounds122018": "セット55 2018年12月リリース",
"backgroundFlyingOverSnowyMountainsText": "雪山",
"backgroundFlyingOverSnowyMountainsNotes": "夜の雪山の上空を飛んでいきましょう。",
"backgroundFrostyForestText": "凍てつく森",
"backgroundFrostyForestNotes": "凍てつく森の中をハイキングするために暖かい恰好をしましょう。",
"backgroundSnowyDayFireplaceText": "雪の日の暖炉",
"backgroundSnowyDayFireplaceNotes": "雪の日に暖炉のとなりへ寄り添いましょう。",
"backgrounds012019": "セット56: 2019年1月リリース",
"backgrounds012019": "セット56 2019年1月リリース",
"backgroundAvalancheText": "雪崩",
"backgroundAvalancheNotes": "轟轟たる雪崩の力から逃げましょう。",
"backgroundArchaeologicalDigText": "考古学の発掘現場",
@@ -488,7 +488,7 @@
"backgroundPotionShopText": "薬屋",
"backgroundBirthdayPartyNotes": "仲の良いHabitica住民と誕生日を祝いましょう。",
"backgroundBirthdayPartyText": "誕生日パーティー",
"backgrounds012020": "セット68: 2020年1月リリース",
"backgrounds012020": "セット68 2020年1月リリース",
"backgroundElegantBallroomNotes": "雅びやかな舞踏室で夜通し踊りましょう。",
"backgroundElegantBallroomText": "華麗な舞踏室",
"backgroundSnowglobeNotes": "スノードームを振って冬景色の小世界を堪能しましょう。",
@@ -499,10 +499,10 @@
"backgroundHallOfHeroesText": "英雄の殿堂",
"backgroundDesertWithSnowNotes": "珍しい静寂にたたずむ雪の砂漠を目撃しましょう。",
"backgroundDesertWithSnowText": "雪の砂漠",
"backgrounds052020": "セット72:2020年5月リリース",
"backgrounds042020": "セット71:2020年4月リリース",
"backgrounds032020": "セット70:2020年3月リリース",
"backgrounds022020": "セット69:2020年2月リリース",
"backgrounds052020": "セット722020年5月リリース",
"backgrounds042020": "セット712020年4月リリース",
"backgrounds032020": "セット702020年3月リリース",
"backgrounds022020": "セット692020年2月リリース",
"backgroundSucculentGardenNotes": "乾いた美しい多肉の庭を鑑賞しよう。",
"backgroundSucculentGardenText": "多肉植物の庭",
"backgroundButterflyGardenNotes": "花粉の運び屋たちと蝶々の花園でパーティーしよう。",
+1 -1
View File
@@ -43,7 +43,7 @@
"prize": "賞品",
"prizePop": "あなたが作成したチャレンジに参加者が「勝利」できるのならば、オプションでジェムを賞品として設定できます。設定できる最大ジェム数は自分の所持しているジェム数までです(あなたが設定されたチャレンジがあるギルド創立者なら、ギルドの持つジェムも設定できます)。 注意:賞品が設定されたら、後から変更できません。チャレンジがキャンセルされても、返金不可となります。",
"prizePopTavern": "だれかがあなたのチャレンジに「勝利」したときに、賞金としてジェムを贈ることもできます。最大値は、あなたがもっているジェム数。 注意 : 賞金について後で変更することはできず、キャンプ場チャレンジは、たとえチャレンジが中止になったとしても返金されません。",
"publicChallenges": "<strong>公共のチャレンジ</strong>は最小でジェムが1個必要です(スパムを減らすために助かる)。",
"publicChallenges": "<strong>公共のチャレンジ</strong>は最小でジェムが1個必要です(スパム予防のためです)。",
"publicChallengesTitle": "公共のチャレンジ",
"officialChallenge": "Habiticaの公式チャレンジ",
"by": "で",
+22 -22
View File
@@ -54,10 +54,10 @@
"leave": "やめる",
"invitedToParty": "パーティー「<span class=\"notification-bold\"><%= party %></span>」に招待されました",
"invitedToPrivateGuild": "<span class=\"notification-bold\"><%= guild %></span> プライベートギルドに招待されました",
"invitedToPublicGuild": "<span class=\"notification-bold-blue\"><%= guild %></span> ギルドに招待されました",
"invitedToPublicGuild": "<span class=\"notification-bold-blue\"><%= guild %></span> ギルドに招待されました",
"partyInvitationsText": "パーティーへの招待が <%= numberInvites %> 通届いています! パーティーは一度にひとつしか参加できないので、よく考えて選んでください。",
"joinPartyConfirmationText": "本当に「<%= partyName %>」に参加しますか? パーティーは一度にひとつしか参加できません。参加すると、他のすべてのパーティーの招待を辞退することになります。",
"invitationAcceptedHeader": "あなたの招待が承認されました",
"invitationAcceptedHeader": "あなたの招待が承認されました",
"invitationAcceptedBody": "<%= username %> は、あなたからの <%= groupName %> への招待にこたえました!",
"joinNewParty": "新しいパーティーに参加する",
"declineInvitation": "招待を断る",
@@ -106,7 +106,7 @@
"guildsLink": "<a href='http://habitica.fandom.com/wiki/Guilds' target='_blank'>ギルド</a>",
"sureKick": "本当にパーティ/ギルドからこのメンバーを削除してよろしいですか?",
"optionalMessage": "必須でないメッセージ",
"yesRemove": "はい、削除してください。",
"yesRemove": "はい、削除します",
"foreverAlone": "自作のメッセージの「いいね」はできません。そんな人にならないで。",
"sortBackground": "背景で並べ替え",
"sortClass": "クラスで並べ替え",
@@ -128,11 +128,11 @@
"send": "送信する",
"messageSentAlert": "メッセージを送信しました",
"pmHeading": "<%= name %> 宛プライベートメッセージ",
"pmsMarkedRead": "あなたのプライベートメッセージに既読マークが付きました",
"pmsMarkedRead": "あなたのプライベートメッセージに既読マークが付きました",
"possessiveParty": "<%= name %>のパーティー",
"clearAll": "すべてのメッセージを削除する",
"confirmDeleteAllMessages": "受信トレイの全てのメッセージを削除してよろしいですか? 既に送ったメッセージはまだ他のユーザに見られる状態です。",
"PMPlaceholderTitle": "ここにはまだ何もありません",
"PMPlaceholderTitle": "ここにはまだ何もありません",
"PMPlaceholderDescription": "左から会話を選択してください",
"PMPlaceholderTitleRevoked": "あなたのチャットの特権は取り消されました",
"PMPlaceholderDescriptionRevoked": "あなたのチャットの特権は取り消されたため、プライベートメッセージを送ることはできません。もしこのことについて疑問や懸念があるときは、<a href=\"mailto:admin@habitica.com\">admin@habitica.com</a>へメールを送ってスタッフとの話し合いをお願いします。",
@@ -147,8 +147,8 @@
"pm-reply": "返信する",
"inbox": "受信トレイ",
"messageRequired": "メッセージが必要です。",
"toUserIDRequired": "ユーザー ID が必要です",
"gemAmountRequired": "ジェムが必要です",
"toUserIDRequired": "ユーザーIDが必要です",
"gemAmountRequired": "ジェムが必要です",
"notAuthorizedToSendMessageToThisUser": "このユーザーはメッセージを受け取らない設定にしているため、メッセージは送れません。",
"privateMessageGiftGemsMessage": "こんにちは、<%= receiverName %>。<%= senderName %> から <%= gemAmount %> 個のジェムのプレゼントが届きました!",
"privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> カ月分の寄付(有料利用)が届きました! ",
@@ -168,7 +168,7 @@
"needsTextPlaceholder": "ここにメッセージを入力してください。",
"copyMessageAsToDo": "メッセージをコピーしてTo-Doに追加",
"copyAsTodo": "コピーしてTo-Doに追加",
"messageAddedAsToDo": "メッセージを To-Doに追加しました",
"messageAddedAsToDo": "メッセージをTo-Doにコピーしました",
"messageWroteIn": "<%= user %> が <%= group %>に書きました",
"msgPreviewHeading": "メッセージプレビュー",
"leaderOnlyChallenges": "グループリーダーだけがチャレンジを作成できます",
@@ -225,13 +225,13 @@
"onlyLeaderCanRemoveMember": "グループリーダーだけが、メンバーを削除できます!",
"cannotRemoveCurrentLeader": "グループリーダーを削除することはできません。先に新しいリーダーを指定してください。",
"memberCannotRemoveYourself": "自分自身を削除することはできません!",
"groupMemberNotFound": "グループのメンバーの中にユーザーが見つかりません",
"groupMemberNotFound": "グループのメンバーの中にユーザーが見つかりません",
"mustBeGroupMember": "グループのメンバーでなくてはなりません。",
"canOnlyInviteEmailUuid": "招待の宛先に使えるのは、ユーザーID、メールアドレス、ユーザー名のいずれかのみです。",
"inviteMissingEmail": "招待の送り先メールアドレスが見つかりません。",
"inviteMissingUuid": "招待の送り先ユーザーIDが見つかりません",
"inviteMustNotBeEmpty": "招待は空のままでは受け付けません。",
"partyMustbePrivate": "パーティーは、プライベートでなくてはなりません",
"partyMustbePrivate": "パーティーは、プライベートでなくてはなりません",
"userAlreadyInGroup": "UserID: <%= userId %>, ユーザー \"<%= username %>\" はすでにそのグループの一員です。",
"youAreAlreadyInGroup": "あなたはすでにこのグループの一員です。",
"cannotInviteSelfToGroup": "自分自身をグループに招待することはできません。",
@@ -244,8 +244,8 @@
"uuidsMustBeAnArray": "ユーザーID を正確に入力してください。",
"emailsMustBeAnArray": "メールアドレスを正確に入力してください。",
"usernamesMustBeAnArray": "ユーザー名を正確に入力してください。",
"canOnlyInviteMaxInvites": "一度に招待できるのは、<%= maxInvites %>人までです",
"partyExceedsMembersLimit": "パーティーの人数は<%= maxMembersParty %>人以下になります",
"canOnlyInviteMaxInvites": "一度に招待できるのは、<%= maxInvites %>人までです",
"partyExceedsMembersLimit": "パーティーの人数は<%= maxMembersParty %>人以下になります",
"onlyCreatorOrAdminCanDeleteChat": "このメッセージを削除する権限がありません!",
"onlyGroupLeaderCanEditTasks": "タスクを管理する権限がありません!",
"onlyGroupTasksCanBeAssigned": "グループのタスクのみ、割り当てできます",
@@ -269,7 +269,7 @@
"newChatMessageTitle": "<%= groupName %> に 新着メッセージ",
"exportInbox": "メッセージをエクスポート",
"exportInboxPopoverTitle": "メッセージを HTML でエクスポートします",
"exportInboxPopoverBody": "HTML はメッセージをブラウザで読みやすくします。機械可読の形式で出力するには、データ > データをエクスポート を使用してください",
"exportInboxPopoverBody": "HTML はメッセージをブラウザで読みやすくします。機械可読の形式で出力するには、データ > データをエクスポート を使用してください",
"to": "宛:",
"from": "From:",
"desktopNotificationsText": "パーティーチャットの新しいメッセージをデスクトップ通知するため、あなたの認証が必要です! ブラウザに表示される案内にそって、許可をお願いします。<br><br>通知されるのは、Habitica を開いている間だけです。もしお気に召さなければ、ブラウザの設定で無効に設定することもできます。<br><br>このメッセージボックスは、決定がなされた後、自動的に閉じます。",
@@ -338,7 +338,7 @@
"paymentDetails": "支払いについての詳細",
"aboutToJoinCancelledGroupPlan": "あなたはプランが中止されたグループに参加しようとしています。無料の寄付会員特典を得ることはできません。",
"cannotChangeLeaderWithActiveGroupPlan": "グループにアクティブなプランがある間はリーダーを変更できません。",
"leaderCannotLeaveGroupWithActiveGroup": "リーダーはアクティブなプランを持つグループから脱退することはできません",
"leaderCannotLeaveGroupWithActiveGroup": "リーダーはアクティブなプランを持つグループから脱退することはできません",
"youHaveGroupPlan": "あなたはグループプランのメンバーのため、無料で寄付会員特典が受けられます。あなたがもはやグループプランのメンバーではなくなったときに、寄付会員特典は終了します。",
"cancelGroupSub": "グループプランを中止",
"confirmCancelGroupPlan": "本当にグループプランを中止したいですか? グループメンバー全員が寄付会員権と特典を失います。",
@@ -359,8 +359,8 @@
"newGuildPlaceholder": "ギルドの名前を入力してください。",
"guildMembers": "ギルドメンバー",
"guildBank": "ギルド口座",
"chatPlaceholder": "ギルドメンバーへのメッセージをここに入力してください",
"partyChatPlaceholder": "パーティーメンバーへのメッセージをここに入力してください",
"chatPlaceholder": "ギルドメンバーへのメッセージをここに入力してください",
"partyChatPlaceholder": "パーティーメンバーへのメッセージをここに入力してください",
"fetchRecentMessages": "最新のメッセージを取得する",
"like": "いいね",
"liked": "いいね済",
@@ -387,7 +387,7 @@
"silverTier": "シルバー段位",
"bronzeTier": "ブロンズ段位",
"privacySettings": "プライバシー設定",
"onlyLeaderCreatesChallenges": "リーダーだけが、チャレンジをつくることができます",
"onlyLeaderCreatesChallenges": "リーダーだけが、チャレンジをつくることができます",
"onlyLeaderCreatesChallengesDetail": "このオプションを選ぶと、一般のグループメンバーはグループのためのチャレンジを作成することができません。",
"privateGuild": "プライベート ギルド",
"charactersRemaining": "残り<%= characters %>文字",
@@ -437,14 +437,14 @@
"wouldYouParticipate": "参加したいですか?",
"managerAdded": "マネージャーを追加しました",
"managerRemoved": "マネージャーを削除しました",
"leaderChanged": "リーダーが変更されました",
"leaderChanged": "リーダーが変更されました",
"groupNoNotifications": "注 : このギルドはメンバー数が多すぎて通知ができません。自分のメッセージに返信がないか頻繁に確認するようにしてください!",
"whatIsWorldBoss": "ワールドボスって何?",
"worldBossDesc": "ワールドボスは、Habiticaのコミュニティが一緒になってタスクをこなすことで、強力なモンスターを倒す特別なイベントです!全てのHabiticaユーザーには、ロッジで休んでいたりクエストの期間中ずっとHabiticaを使っていない人も含め、討伐の報酬が与えられます。",
"worldBossLink": "WikiでHabiticaの昔のワールドボスについてもっと読んでみよう。",
"worldBossBullet1": "タスクを片付けてワールドボスにダメージを与えよう",
"worldBossBullet2": "ワールドボスからサボったタスクの分のダメージを食らうことはありませんが、そのかわりに怒りメーターが上昇してゆきます。もしメーターが一杯になると、ボスはHabiticaの店主の誰か一人を攻撃してしまいます!",
"worldBossBullet3": "ボスクエストと一緒に続けることができ、ダメージは両方に与えられます",
"worldBossBullet3": "ボスクエストと一緒に続けることができ、ダメージは両方に与えられます",
"worldBossBullet4": "ワールドボスとの戦いの進み具合と怒りの攻撃を確認するために、キャンプ場を定期的にチェックしよう",
"worldBoss": "ワールドボス",
"groupPlanTitle": "チームのためにより高度な機能をお求めですか?",
@@ -477,9 +477,9 @@
"whatIsGroupManagerDesc": "グループマネージャーは、グループの請求明細にアクセスすることはできない役割ですが、グループメンバーのために共有タスクを作ったり、指示したり、承認したりすることができます。グループメンバーリストからグループマネージャーに昇進させましょう。",
"goToTaskBoard": "タスクボードに戻る",
"sharedCompletion": "完了条件",
"recurringCompletion": "なし - グループタスクは完了しません",
"singleCompletion": "シングル - アサインされたユーザーの誰かが終えると完了します",
"allAssignedCompletion": "全員 - アサインされたユーザーの全員が終えると完了します",
"recurringCompletion": "なし - グループタスクは完了しません",
"singleCompletion": "シングル - アサインされたユーザーの誰かが終えると完了します",
"allAssignedCompletion": "全員 - アサインされたユーザーの全員が終えると完了します",
"pmReported": "このメッセージについてご報告ありがとうございます。",
"suggestedGroup": "あなたはHabiticaを始めたばかりのため、提案しました。",
"youHaveBeenAssignedTask": "<%= managerName %>は、あなたにタスク<span class=\"notification-bold\"><%= taskText %></span>を割り当てました。",
+23 -1
View File
@@ -157,5 +157,27 @@
"spring2019RobinHealerSet": "コマドリ(治療師)",
"spring2019CloudRogueSet": "雲(盗賊)",
"summer2019SeaTurtleWarriorSet": "ウミガメ(戦士)",
"june2018": "2018年6月"
"june2018": "2018年6月",
"september2018": "2018年9月",
"september2017": "2017年9月",
"mayYYYY": "<%= year %>年5月",
"marchYYYY": "<%= year %>年3月",
"decemberYYYY": "<%= year %>年12月",
"augustYYYY": "<%= year %>年9月",
"eventAvailabilityReturning": "<%= availableDate(locale) %>まで購入できます。このポーションは<%= previousDate(locale) %>まで購入可能でした。",
"spring2020LapisLazuliRogueSet": "ラピスラズリ(盗賊)",
"spring2020IrisHealerSet": "アイリス(治療師)",
"spring2020PuddleMageSet": "水溜り(魔道士)",
"spring2020BeetleWarriorSet": "カブトムシ(戦士)",
"winter2020LanternSet": "ランタン(盗賊)",
"winter2020WinterSpiceSet": "冬のスパイス(治療師)",
"winter2020CarolOfTheMageSet": "魔道キャロル(魔道士)",
"winter2020EvergreenSet": "常緑樹(戦士)",
"fall2019RavenSet": "カラス(戦士)",
"fall2019LichSet": "リッチ(治療師)",
"fall2019CyclopsSet": "サイクロプス(魔道士)",
"fall2019OperaticSpecterSet": "オペラの亡霊(盗賊)",
"summer2019HammerheadRogueSet": "シュモクザメ(盗賊)",
"summer2019ConchHealerSet": "巻貝(治療師)",
"summer2019WaterLilyMageSet": "スイレン(魔道士)"
}
+1 -1
View File
@@ -18,7 +18,7 @@
"mattShall": "<%= name %>、馬をお連れしましょうか? ペットに十分なエサを与えると乗騎となり、ここに現れます。さあ、またがりましょう!",
"mattBochText1": "動物小屋にようこそ! 私の名前はMatt、猛獣使いだ。タスクを達成するごとに、ペットをかえすための「たまご」と「たまごがえしの薬」を手に入れるランダムなチャンスがあるよ。ペットをかえしたときは、ここに現れるぞ! ペットの画像をクリックしてアバターに追加しよう。見つけた「ペットのえさ」をやると、ペットはたくましい乗騎へと育っていくんだ。",
"welcomeToTavern": "キャンプ場へようこそ!",
"sleepDescription": "休息が必要ですか? ダニエルのロッジにチェックインして、Habiticaにおける手ごわいゲーム要素を停止させましょう。",
"sleepDescription": "休息が必要ですか? Danielのロッジにチェックインして、Habiticaにおける手ごわいゲーム要素を停止させましょう。",
"sleepBullet1": "やり逃した日課によるダメージを受けません",
"sleepBullet2": "タスクの連続実行回数は失われません",
"sleepBullet3": "ボスはあなた自身が逃した日課によるダメージを与えません",
+44 -44
View File
@@ -59,17 +59,17 @@
"questSpiderDropSpiderEgg": "クモ ( たまご )",
"questSpiderUnlockText": "市場でクモのたまごを買えるようになります",
"questGroupVice": "バイス、影のウィルム",
"questVice1Text": "バイス・第1 部:ドラゴンの影響から自分を解放する",
"questVice1Notes": "<p>うわさでは、Habitica山の洞穴に、恐ろしい魔物がひそんでいるそうです。モンスターの存在によって、この国の勇者たちは意思をねじ曲げられ、悪い習慣と怠惰へと向かってしまいます! 彼ら自身の影から成るそのモンスターは、計り知れない力を持つ巨大なドラゴン、その名も「バイス」。堕落と名付けられた危険な影のウィルムです。勇敢な Habitica の挑戦者たちよ! 立ち上がり、力を合わせてこの汚らわしい魔物を打ち倒しましょう。ただし、奴の計り知れない力に立ち向かう自信のある者だけで。</p><h3>バイス・第1 部 : </h3><p>もしあなた自身がすでに魔物に支配されているとしたら、どうやってその魔物と戦うことができるでしょうか? 怠惰と堕落の餌食にならないで! ドラゴンの暗い影響と懸命に戦い、バイスからの支配をはねのけるのです!</p>",
"questVice1Text": "バイス・第部:ドラゴンの影響から自分を解放する",
"questVice1Notes": "<p>うわさでは、Habitica山の洞穴に、恐ろしい魔物がひそんでいるそうです。モンスターの存在によって、この国の勇者たちは意思をねじ曲げられ、悪い習慣と怠惰へと向かってしまいます! 彼ら自身の影から成るそのモンスターは、計り知れない力を持つ巨大なドラゴン、その名も「バイス」。堕落と名付けられた危険な影のウィルムです。勇敢な Habitica の挑戦者たちよ! 立ち上がり、力を合わせてこの汚らわしい魔物を打ち倒しましょう。ただし、奴の計り知れない力に立ち向かう自信のある者だけで。</p><h3>バイス・第1部: </h3><p>もしあなた自身がすでに魔物に支配されているとしたら、どうやってその魔物と戦うことができるでしょうか? 怠惰と堕落の餌食にならないで! ドラゴンの暗い影響と懸命に戦い、バイスからの支配をはねのけるのです!</p>",
"questVice1Boss": "バイスの影",
"questVice1Completion": "あなたを支配していたバイスの影響力は消え去り、いつの間にか取り戻していた力が湧き上がるのをあなたは感じます。おめでとう!しかし、より恐ろしい敵があなたを待ち受けています・・・",
"questVice1DropVice2Quest": "バイス・第 2 部 ( 巻物 )",
"questVice2Text": "バイス・第 2 部:ウィルムの隠れ家を探せ",
"questVice1DropVice2Quest": "バイス・第部 ( 巻物 )",
"questVice2Text": "バイス・第部:ウィルムの隠れ家を探せ",
"questVice2Notes": "影のウィルムであるバイスの影響力に立ち向かえる自分自身と 自分の能力への信頼で、あなたのパーティーは Habitica 山へ向かう道を切り開くことができました。山の洞穴の入り口で、足が止まりました。影のうねりです。まるで霧のようであり、目の前で口を開け、押し寄せてくるようです。前を見ることも不可能です。ランタンからの光は、影がはじまるところで、突然さえぎられてしまいます。奇跡の光だけがドラゴンの地獄のかすみを突きぬけることができると言われています。光のクリスタルを十分探し出すことができれば、ドラゴンへの道を進むことができるはずです。",
"questVice2CollectLightCrystal": "光のクリスタル",
"questVice2Completion": "最後のクリスタルを高く掲げると影は追い散らされ、目の前に道が開けました。胸の高鳴りとともに、あなたは洞窟へと歩みを進めます。",
"questVice2DropVice3Quest": "バイス・第 3 部 ( 巻物 )",
"questVice3Text": "バイス・第 3 部:バイスの覚醒",
"questVice2DropVice3Quest": "バイス・第部 ( 巻物 )",
"questVice3Text": "バイス・第部:バイスの覚醒",
"questVice3Notes": "多くの努力の結果、パーティーはバイスの巣を見つけました。この図体の大きいモンスターはパーティーに嫌悪の目を向けます。まわりを影の渦が取り囲み、ささやき声が頭の中に直接ひびいてくるのです。「もっと愚かな Habitica の市民が私を止めにくる? かわいいものだ。来ない方が賢かったのにな」。うろこで覆われた巨人は頭をもたげて攻撃の構えをとっています。これはチャンスです! これまで得たものすべてをくらわせ、バイスを倒し決着をつけましょう!",
"questVice3Completion": "影は洞穴から消え、鋼のような静けさが訪れました。これは驚いた、あなたはやりました! バイスを倒したのです! あなたとパーティーはやっと、ほっと息をつくことでしょう。勇敢なHabitica の挑戦者たち、勝利を楽しみましょう。しかし、バイスとの戦いで学んだことを教訓に、前に進みましょう。まだやるべきタスク、倒すべき今は目に見えないより凶悪な悪魔も残っているのです。",
"questVice3Boss": "バイス、影のウィルム",
@@ -77,34 +77,34 @@
"questVice3DropDragonEgg": "ドラゴン ( たまご )",
"questVice3DropShadeHatchingPotion": "影のたまごがえしの薬",
"questGroupMoonstone": "復活のリシディヴェート",
"questMoonstone1Text": "リシディヴェート・第 1 部:ムーンストーンの鎖",
"questMoonstone1Text": "リシディヴェート・第部:ムーンストーンの鎖",
"questMoonstone1Notes": "ひどい苦悩が Habiticia の人びとを襲いました。長い間死んだと思われていた悪い習慣が報復のため復活したのです。汚れた皿は積み重なり、教科書は読まれずに放置され、先延ばしが横行しています!<br><br>復活したあなた自身の悪い習慣を追跡すると、ヨドミ沼でその原因を見つけました。…リシディヴェート、幽霊の魔術師を。「常習犯」と名付けられた彼女に駆け寄って武器を振り回しますが、亡霊の彼女が相手ではすり抜けるばかり。<br><br>「邪魔をするな」。彼女は耳障りな乾いたかすれた声でささやきます。「ムーンストーンの鎖がなければ、だれも私を傷つけることはできない…だからあの宝玉使いのマスター @aurakaml は、遥か昔にムーンストーンのすべてを Habitica 中にばらまいたのさ!」あなたは息切れしながら、退却します…が、すべきことはわかりました。",
"questMoonstone1CollectMoonstone": "ムーンストーン",
"questMoonstone1Completion": "ついに、最後のムーンストーンを沼のヘドロから引き上げることができました。次は集めた石から武器をこしらえる番です。リシディヴェートを打ち倒す武器を!",
"questMoonstone1DropMoonstone2Quest": "リシディヴェート・第 2 部:悪事をくり返す魔術師(巻物)",
"questMoonstone2Text": "リシディヴェート・第 2 部:悪事をくり返す魔術師",
"questMoonstone1DropMoonstone2Quest": "リシディヴェート・第部:悪事をくり返す魔術師(巻物)",
"questMoonstone2Text": "リシディヴェート・第部:悪事をくり返す魔術師",
"questMoonstone2Notes": "勇気ある武器かじ屋、@InspectorCaracal が魔法のムーンストーンから鎖を作ってくれました。ついにあなたはリシディヴェートに立ちむかいます。が、ヨドミ沼に足を踏み入れた途端、恐ろしい凍気があなたに吹き付けました。<br><br>腐った息が耳にささやきます。「帰ってきたのか? おもしろい…」 あなたは回転をつけ間合いをつめ、ムーンストーンの光の下、リシディヴェートの肉体を打ち付けました。「お前は、今一度私を現実世界に引き戻したのかもしれないねぇ」とうなります。「だけど…逃げるなら今のうちだよ!」",
"questMoonstone2Boss": "魔術師",
"questMoonstone2Completion": "リシディヴェートはあなたの最後の一撃によろめいてあとずさり、一瞬、あなたの心が明るくなります – しかし彼女は頭をのけぞらせ、身の毛のよだつ笑い声を上げます。何が起こったのでしょう?",
"questMoonstone2DropMoonstone3Quest": "リシディヴェート・第 3 部:姿を変えた常習犯 ( 巻物 )",
"questMoonstone3Text": "リシディヴェート・第 3 部:姿を変えた常習犯",
"questMoonstone2DropMoonstone3Quest": "リシディヴェート・第部:姿を変えた常習犯 ( 巻物 )",
"questMoonstone3Text": "リシディヴェート・第部:姿を変えた常習犯",
"questMoonstone3Notes": "邪悪に笑いながらリシディヴェートは地に崩れ落ち、あなたはムーンストーンの鎖を振り下ろします。しかし怖ろしいことに、リシディヴェートは目を勝利の炎に燃やしながら、鎖の宝石をつかむではありませんか。<br><br>「おろかな肉の生き物よ!」彼女は叫びます。「このムーンストーンは私を肉体へと戻した。たしかに。しかしそれはお前が想像したものとは違う。闇夜に満月がギラギラと姿を現すように、私の力も輝きを増す。闇の中から、お前たちが最も恐れる亡霊を召喚してやろうじゃないか!」 <br><br>吐き気を催すような緑の霧が沼からわき上がり、リシディヴェートを包むと、その肉体はうごめき、歪み、そして恐れていた形へと――不死の身体を得たバイスがおぞましき復活を遂げたのです。",
"questMoonstone3Completion": "不死身のウィルムが倒れたとき、あなたの息は荒く、目に入る汗が痛いほどでした。リシディヴェートの残骸は薄い灰色の霧に変わり、ふいにやってきたさわやかな風がそれさえもかき消していったのです。そしてつい先ほどまで支配していた悪しき習慣が打ち破られたことに歓喜する Habitica の人びとの声が遠くから聞こえてきます。<br><br>グリフォンに乗った猛獣使いの @Baconsaur が、静かに空から舞い降りました。「そなたの最後の戦いを空から見ておった。じつに感動した。ぜひ、この魔法の外衣を受けとってほしい。勇敢な行いは気高い心を物語っておる。そなたは、それをもつにふさわしい人物であると信じておるぞ」",
"questMoonstone3Boss": "ネクロ・バイス",
"questMoonstone3DropRottenMeat": "腐った肉 ( えさ )",
"questMoonstone3DropZombiePotion": "ゾンビのたまごがえしの薬",
"questGroupGoldenknight": "黄金騎士",
"questGoldenknight1Text": "黄金騎士・第 1 部:きびしいお説教",
"questGoldenknight1Text": "黄金騎士・第部:きびしいお説教",
"questGoldenknight1Notes": "黄金騎士が Habiticia の住人の間でちょっとした問題になっています。\n\n日課を全部こなしてない? 悪い習慣をチェックした? これを口実にして、いかに彼女をお手本にすべきかという小言がはじまるのです。彼女は輝ける完璧な Habitica の住人の鏡、あなたは失敗ばかりの無能者…。むむむ、これはよくないですね。だれだってミスはします。それをことさらにネガティブにつつかれるべきではありません。\n\nさて、時は来たようです。傷つけられた Habitica の人々から証言を集め、黄金騎士にきびしいお説教をしなくてはなりません。",
"questGoldenknight1CollectTestimony": "証言",
"questGoldenknight1Completion": "これらの証言の数々を見てください! これなら間違いなく黄金騎士を説得するのに十分でしょう。さて、あとは彼女を見つけるだけです。",
"questGoldenknight1DropGoldenknight2Quest": "黄金騎士・第 2 部:金の騎士 ( 巻物 )",
"questGoldenknight2Text": "黄金騎士・第 2 部:金の騎士",
"questGoldenknight1DropGoldenknight2Quest": "黄金騎士・第部:金の騎士 ( 巻物 )",
"questGoldenknight2Text": "黄金騎士・第部:金の騎士",
"questGoldenknight2Notes": "数十件にわたる Habitica の住人の証言で武装して、あなたはついに黄金騎士の前に立ちふさがりました。\n\nあなたは、彼女に Habitica の住人の苦情を一つ一つ読み上げました。「そして、@Pfeffernusse がいうには、いつもあなたが『上から目線』で…」\n\n彼女はあなたを黙らせるように手を上げると、バカにしたように笑います。「お願い。この人たちはただ私の成功をうらやんでるだけなの。文句なんかいってないで、私みたいに必死で働くべきよ! あなたには私の力を見せてあげるわ。私みたいにマジメにとりくまないあなたには、けっして得られないような力をね!」\n\n彼女はモーニングスターを振りあげ、あなたに攻撃を加えようとしています!",
"questGoldenknight2Boss": "黄金騎士",
"questGoldenknight2Completion": "黄金騎士は狼狽してモーニングスターを下ろしました。\n「軽率に感情を爆発させてしまったこと謝るわ。」\n\n彼女は言います。\n「本当は、知らず知らずのうちに他人を傷つけてきたんだと気づいて苦しかったの。そして、自分を守るために激しく非難してしまった… でも、もしかしたらまだ彼らに謝罪できるかしら?」",
"questGoldenknight2DropGoldenknight3Quest": "黄金騎士・第 3 部:鉄の騎士 ( 巻物 )",
"questGoldenknight3Text": "黄金騎士・第 3 部:鉄の騎士",
"questGoldenknight2DropGoldenknight3Quest": "黄金騎士・第部:鉄の騎士 ( 巻物 )",
"questGoldenknight3Text": "黄金騎士・第部:鉄の騎士",
"questGoldenknight3Notes": "「気をつけろ!」 @Jon Arinbjorn が叫びました。\n\n戦いの直後に、新しい人影が現れたのです。黒鉄に身をおおった騎士がゆっくりとあなたに近づきます。手には剣…。\n\n黄金騎士がその人影にむかって叫びました。\n\n「お父さん、やめて!」\n\nしかし、鉄の騎士は止まる気配がありません。\n彼女はあなたに向き直って告げます。「ごめんなさい、私がバカだったわ。頭でっかちになって、自分がどんなに残酷だったか気がつかなったの。でも、父はもっと残酷よ。もし父を止められなかったら、私たち、いや Habitica は全滅するわ。これ、私のモーニングスターを使って、鉄の騎士を止めて!」",
"questGoldenknight3Completion": "気持ちのいい金属音と共に、鉄の騎士は膝から崩れ落ちました。\n\n「お前は、本当に強いな。」と、息を切らします。\n「今日の私は、謙虚な気持ちになっておるよ。」\n\n黄金騎士が近づいてきて告げました。\n「ありがとう。私たち親子は、あなたに出会ったことで、少しは謙虚な心を手に入れたと信じてるわ。父と話して、私たちへの苦情について説いておきます。きっと私たちは他の Habitica の人々へも謝罪をはじめるべきでしょうね。」\n\n彼女はしばらく考え込んだのち、あなたへ振り返ります。\n「これはお礼の気持ちよ。このモーニングスターは、あなたが持っていてほしいの。もうあなたのものよ。」",
"questGoldenknight3Boss": "鉄の騎士",
@@ -122,7 +122,7 @@
"questEggHuntCollectPlainEgg": "普通のたまご",
"questEggHuntDropPlainEgg": "普通のたまご",
"questDilatoryText": "サキノバシティーのドレッドドラゴン",
"questDilatoryNotes": "警告に注意を払わなくてはいけません。<br><br>暗く光る目。年季の入ったうろこ。巨大なあご、そしてギラリと輝く牙。私たちは、クレバスの奥にいた恐ろしい者を目覚めさせてしまったようです : <strong>サキノバシティーのドレッドドラゴン!</strong> ドラゴンは海から姿を現すと、立ち上がり、その数十メートルはあろうかという長い首を海面から持ち上げました。焼けつくような鳴き声で吠えると、家々の窓がひび割れてしまいました。Habitica の人びとは悲鳴を上げ、さまざまな方向に逃げまどうしかありません。<br><br>「こいつがサキノバシティーを海に沈めたヤツに違いない!」 Lemonessが大声をあげました。「こいつの重さはただの無視されたタスクのものじゃない。赤黒くなった日課たちが注意を発しているんだ!」<br><br>「魔法のエネルギーを引き寄せている!」 @Baconsaur は叫び、「これだけ長生きしてきたということは、自己回復できるようだ! どうやったら倒せるんだ?」<br><br>とんでもない。これまでのすべての魔物をやっつけてきたのと同じ戦い方 - 確実なタスクの達成です。急いで! Habitica の人びとよ、団結してそれぞれのタスクをやっつけることで、いっしょにこのモンスターと戦うのです。(進行中のクエストを放棄する必要はありません。あなたの能力なら、一挙両得の攻撃ができると信じています!) このモンスターが私たちの個々に攻撃してくることはありません。しかし、私たちがやり飛ばす日課が増えるほどに、このモンスターが必殺技、「さぼりの一撃」の引き金に近づいていきます。「さぼりの一撃」の目標がキャンプ場に向けられたりしたら…",
"questDilatoryNotes": "警告に注意を払わなくてはいけません。<br><br>暗く光る目。年季の入ったうろこ。巨大なあご、そしてギラリと輝く牙。私たちは、クレバスの奥にいた恐ろしい者を目覚めさせてしまったようです <strong>サキノバシティーのドレッドドラゴン!</strong> ドラゴンは海から姿を現すと、立ち上がり、その数十メートルはあろうかという長い首を海面から持ち上げました。焼けつくような鳴き声で吠えると、家々の窓がひび割れてしまいました。Habitica の人びとは悲鳴を上げ、さまざまな方向に逃げまどうしかありません。<br><br>「こいつがサキノバシティーを海に沈めたヤツに違いない!」 Lemonessが大声をあげました。「こいつの重さはただの無視されたタスクのものじゃない。赤黒くなった日課たちが注意を発しているんだ!」<br><br>「魔法のエネルギーを引き寄せている!」 @Baconsaur は叫び、「これだけ長生きしてきたということは、自己回復できるようだ! どうやったら倒せるんだ?」<br><br>とんでもない。これまでのすべての魔物をやっつけてきたのと同じ戦い方 - 確実なタスクの達成です。急いで! Habitica の人びとよ、団結してそれぞれのタスクをやっつけることで、いっしょにこのモンスターと戦うのです。(進行中のクエストを放棄する必要はありません。あなたの能力なら、一挙両得の攻撃ができると信じています!) このモンスターが私たちの個々に攻撃してくることはありません。しかし、私たちがやり飛ばす日課が増えるほどに、このモンスターが必殺技、「さぼりの一撃」の引き金に近づいていきます。「さぼりの一撃」の目標がキャンプ場に向けられたりしたら…",
"questDilatoryBoss": "サキノバシティーのドレッドドラゴン",
"questDilatoryBossRageTitle": "さぼりの一撃",
"questDilatoryBossRageDescription": "このバーがいっぱいになると、サキノバシティーのドレッドドラゴンは Habitica の地に大きな被害をもたらします",
@@ -139,17 +139,17 @@
"questSeahorseDropSeahorseEgg": "タツノオトシゴ ( たまご )",
"questSeahorseUnlockText": "市場でタツノオトシゴのたまごを買えるようになります",
"questGroupAtom": "日常の攻撃",
"questAtom1Text": "日常の攻撃・第 1 部:食器の惨事!",
"questAtom1Notes": "がんばったごほうびの骨休めにシンク湖のほとりに着きました。…しかし、湖は洗っていない食器で汚染されています! なぜこんなことに? うーん、この状態の湖を見過ごすわけにはいきません。できることは 1 つだけ : 皿を洗い、憩いの場所を取り戻すのです! この混乱を解決するには、洗剤を見つけた方がいいでしょう。たくさんの洗剤を…",
"questAtom1Text": "日常の攻撃・第部:食器の惨事!",
"questAtom1Notes": "がんばったごほうびの骨休めにシンク湖のほとりに着きました。…しかし、湖は洗っていない食器で汚染されています! なぜこんなことに? うーん、この状態の湖を見過ごすわけにはいきません。できることは 1 つだけ 皿を洗い、憩いの場所を取り戻すのです! この混乱を解決するには、洗剤を見つけた方がいいでしょう。たくさんの洗剤を…",
"questAtom1CollectSoapBars": "せっけん",
"questAtom1Drop": "モンスター、「オヤツナシ」 ( 巻物 )",
"questAtom1Completion": "徹底的な汚れ落としの後、岸の上にすべてのお皿が無事に積み重ねられました!あなたは一歩下がって誇らしげに大変な仕事の成果を眺めるのでした。",
"questAtom2Text": "日常の攻撃・第 2 部:モンスター、「オヤツナシ」",
"questAtom2Text": "日常の攻撃・第部:モンスター、「オヤツナシ」",
"questAtom2Notes": "ふーっ、食器をすべて洗ったので、ぐっと素敵な風景が広がっています。あなたはきっと、いまこの最後のシーンを楽しんでいることでしょう。うわ、湖にピザの箱が浮いているのが見えます。ねえ、本当にもう 1 つ片づけないといけないの?…いや待って、ただのピザの箱ではありません! 突然その箱が水面から浮かび上がるとその正体はモンスターの頭です。ありえない! 伝説のモンスター「オヤツナシ」!? 有史以来、古代の Habitica の民の食べ残しやゴミから生まれた生き物が、湖にひそんでいると伝えられていました。ゲーッ!",
"questAtom2Boss": "「オヤツナシ」モンスター",
"questAtom2Drop": "センタクロマンサー ( 巻物 )",
"questAtom2Completion": "耳をつんざくような悲鳴とともに、5種類のおいしいチーズを勢いよく吐き出して、オヤツナシはバラバラになりました。うまい! 勇敢な冒険者よ、お見事! しかしちょっと待って… この湖は何かがおかしくありませんか?",
"questAtom3Text": "日常の攻撃・第 3 部:センタクロマンサー",
"questAtom3Text": "日常の攻撃・第部:センタクロマンサー",
"questAtom3Notes": "あなたがようやく災難が終わったと思った矢先に、シンク湖が荒々しく泡立ち始めました。「よくもまあ!」 水面の下から声が轟きます。魔法のトイレブラシを振り回しながら、ローブをまとった青い人影が現れました。汚れた洗濯物が湖面で泡立ち始めます。「我が名はセンタクロマンサー!」 その人影は憤りながら告げました。「なんと厚かましいやつよ ―― 我が素晴らしき汚れた皿を洗い、ペットを滅ぼし、あまつさえそんな清潔な服で我が領域に足を踏み入れるとは。我がアンチランドリー魔法の陰湿なる憤怒を食らう覚悟はよいか!」",
"questAtom3Completion": "邪悪なセンタクロマンサーを倒しました! あなたのまわりに落ちて積み重なった洗濯物を洗いましょう。このあたりは前よりずっときれいになりました。あなたがプレスのかかった気持ちのいい防具の間を進むと、金属のきらめきが目をとらえ、視線はピカピカのヘルメットに注がれます。ここにあるアイテムの元の持ち主は知りませんが、身につけると、寛大なる精神の存在をあたたかく感じます。 残念ながら持ち主は名札をぬいつけておくのを忘れたようです。",
"questAtom3Boss": "センタクロマンサー",
@@ -229,13 +229,13 @@
"questWhaleDropWhaleEgg": "クジラ( たまご )",
"questWhaleUnlockText": "市場でクジラのたまごを買えるようになります",
"questGroupDilatoryDistress": "サキノバシティーの危機",
"questDilatoryDistress1Text": "サキノバシティーの危機・第 1 部:びんに入った手紙",
"questDilatoryDistress1Text": "サキノバシティーの危機・第部:びんに入った手紙",
"questDilatoryDistress1Notes": "再建された都市サキノバシティーから、びんに入ったメッセージがとどきました!そこにはこう書いてあります。「親愛なるHabitica人よ、私たちはもう一度あなた方の助けを必要としています。姫が行方不明となり、都市は正体不明の水の悪魔たちに包囲されました!今シャコ達が侵略者を入江で押しとどめています。どうか私達を助けて下さい!」 水中都市への長旅をするには、水中で呼吸できなければなりません。幸いなことに、錬金術士の @Benga と @hazel がこれをしっかり可能にしてくれます!あなたが適切な材料を見つけてきさえすれば、ですが。",
"questDilatoryDistress1Completion": "あなたは水かき付きのよろいを装備し、できる限りのスピードでサキノバシティーへと泳ぎました。マーフォークとシャコ達は、化け物たちが都市へ侵入するのをなんとか一時は防いだようですが、今は劣勢です。あなたが城壁に入るやいなや、怖ろしい包囲軍が襲い掛かってきました!",
"questDilatoryDistress1CollectFireCoral": "炎のサンゴ",
"questDilatoryDistress1CollectBlueFins": "青いひれ",
"questDilatoryDistress1DropArmor": "ひれがついた大海のよろい",
"questDilatoryDistress2Text": "サキノバシティーの危機・第 2 部:クレバスの化け物ども",
"questDilatoryDistress2Text": "サキノバシティーの危機・第部:クレバスの化け物ども",
"questDilatoryDistress2Notes": "包囲網は何マイルにもわたって続いているようです。何千ものドクロどもがクレバスの出口からあふれでて、サキノバシティーへと列をなしています。<br><br>作戦室で面会した Manta 王の眼は沈み込んでおり、その顔は憂いに満ちていました。「私の娘 Adva が、包囲が始まる直前に闇のクレバスに消えたのだ。どうか彼女を探しだし、無事にうちに帰してやってくれ。お前たちに炎サンゴのサークレットを貸そう。もし事がうまく行けば、これはお前たちの物だ」",
"questDilatoryDistress2Completion": "悪夢のようなドクロの群れを退けました。しかし、Adva 姫のもとに近づいたとは思えません。あなたたちは王家捜索隊の @Kiwibot が何かいいアイデアを持っているかもしれないと思い話しかけました。「都市を守っているシャコは、Adva 姫が逃げたところをきっと見ているでしょう」と @Kiwibot は言います。「彼等を闇のクレバスまで追いかけて行ってみましょう」",
"questDilatoryDistress2Boss": "ウミドクロの群れ",
@@ -245,7 +245,7 @@
"questDilatoryDistress2DropSkeletonPotion": "骨のたまごがえしの薬",
"questDilatoryDistress2DropCottonCandyBluePotion": "水色のたまごがえしの薬",
"questDilatoryDistress2DropHeadgear": "炎のサンゴのサークレット(頭装備)",
"questDilatoryDistress3Text": "サキノバシティーの危機・第 3 部:少女に非ず、人魚に非ず",
"questDilatoryDistress3Text": "サキノバシティーの危機・第部:少女に非ず、人魚に非ず",
"questDilatoryDistress3Notes": "シャコを追いかけてクレバスの奥深く潜っていくと、あなた達はそこに深海の要塞を発見しました。水の頭蓋骨に護衛されたAdva姫が、あなた達をメインホールで待ち受けています。「父があなた達をよこしたのね。違って?彼に伝えなさい、私は帰る気はないわ。私は此処で、魔法の練習をしていれば幸せなの。今すぐ立ち去りなさい。さもなくば、あなた達は大海の新たなる女王の怒りに触れる事になるわよ!」Adva姫はとても頑ななようです。しかし彼女が話している間に、あなた達は怪しげなルビーのペンダントが姫の首で不気味に光っているのに気が付きました…ひょっとして、姫の危険な妄想を終わらせる為には、これを壊さなければならないのでは?",
"questDilatoryDistress3Completion": "とうとう、あなた達は Adva 姫の首から魔法のペンダントを引き剥がし遠くに投げ捨てました。Adva 姫は首を振ります。「ここはどこ?ここでなにがあったの?」事の次第を聞いて、彼女は眉をひそめます。「この首飾りは異国の大使から送られたものなの。名を ジーナ と言ったわ。私はその後のことを何も覚えていないのよ!」<br><br>サキノバシティーに戻ると、Manta 王はあなた達がうまくやりとげたことを飛び上がって喜びました。「お前たちに三叉鉾と盾を贈らせてくれ! @aiseant と @starsystemic に Adva への贈り物として作らせたものだが…しばらく彼女の手に、武器は握らせたくないのだよ」",
"questDilatoryDistress3Boss": "王位簒奪の人魚姫 Adva",
@@ -369,24 +369,24 @@
"questBeetleDropBeetleEgg": "カブトムシ ( たまご )",
"questBeetleUnlockText": "市場でカブトムシのたまごを買えるようになります",
"questGroupTaskwoodsTerror": "タスクの森の恐怖",
"questTaskwoodsTerror1Text": "タスクの森の恐怖・第 1 部:タスクの森での山火事",
"questTaskwoodsTerror1Text": "タスクの森の恐怖・第部:タスクの森での山火事",
"questTaskwoodsTerror1Notes": "こんなふうに慌てているジョイフル・リーパーは、見たことがありません。繁栄の地の支配者ともあろう人が、骨のグリフォンの乗騎を、プロダクティブ・センターのど真ん中に着地させたかと思うと、グリフォンを降りながら叫ぶのです。「愛する Habitica のみなさん、力を貸してください! タスクの森で火が起こってしまいました。まだモエツ鬼とのたたかいから十分立ち直っていないというのに。もし鎮火できなかったら、天然の果物園も、果実のなる木々も炎にのみこまれてしまいます!」<br><br>さっそく手助けを買って出て、タスクの森へと急ぎます。Habitica 最大の果物生産地である森に分け入ると、突然、遠くからガチャガチャ、パキパキいう音が聞こえ、かすかに煙のにおいがします。すると、炎をまとったガイコツの群が、ケタケタと笑いながらあなたをとり囲みました。木々の枝にかみつき、火をつけようとしています!",
"questTaskwoodsTerror1Completion": "ジョイフル・リーパーと名高い火占い師の @Beffymaroo の助けがあって、なんとか群れを追い払うことができました。Beffymaroo は、連帯の記念に火占い師のターバンをくれました。森の奥へと進みます。",
"questTaskwoodsTerror1Boss": "炎のガイコツの群れ",
"questTaskwoodsTerror1RageTitle": "群れの復活",
"questTaskwoodsTerror1RageDescription": "群れの復活 : あなた方が日課をやり遂げないと、このバーがたまっていきます。いっぱいになると、炎のガイコツの群れは、残っている体力の 30% を復活させます!",
"questTaskwoodsTerror1RageDescription": "群れの復活 あなた方が日課をやり遂げないと、このバーがたまっていきます。いっぱいになると、炎のガイコツの群れは、残っている体力の 30% を復活させます!",
"questTaskwoodsTerror1RageEffect": "「炎のガイコツの群れは、『群れの復活』を唱えた!」\n\nヤツらは勝利に勢いづき、熱風とともにもっとたくさんのガイコツがあなたのまわりに渦巻いています。",
"questTaskwoodsTerror1DropSkeletonPotion": "骨のたまごがえしの薬",
"questTaskwoodsTerror1DropRedPotion": "赤のたまごがえしの薬",
"questTaskwoodsTerror1DropHeadgear": "火占い師のターバン ( 帽子・ヘルメット )",
"questTaskwoodsTerror2Text": "タスクの森の恐怖・第 2 部:豊穣の妖精を探し出せ",
"questTaskwoodsTerror2Text": "タスクの森の恐怖・第部:豊穣の妖精を探し出せ",
"questTaskwoodsTerror2Notes": "炎のガイコツを蹴散らし進むあなたたちは、森の端で焼け出された農民たちの一群に出会いました。「この人たちの村は、狂った秋の精霊に焼き尽くされてしまったんだ」と聞きなれた声が言います。@Kiwibot、伝説的な猟師です!「私は何とか生き残りの皆を集めることは出来た。しかしここには、タスクの森の果樹をよみがえらせるのに必要な、豊穣の妖精の気配がない。頼む、妖精たちを救い出すのを手伝ってくれ!」",
"questTaskwoodsTerror2Completion": "あなたは何とか最後のドリアードを見つけ、モンスターから逃がすことができました。焼け出された農民たちのところに戻ると、感謝した妖精たちがあなたを喜んで迎えます。彼らは、きらめく魔法と絹で織られたローブをくれました。突然、まさに地を揺るがすような、低く轟く音が木々の間に響き渡りました。「あれこそが狂える精霊だ!」とジョイフル・リーパーが言います。「さあ、急ごう!」",
"questTaskwoodsTerror2CollectPixies": "ピクシー",
"questTaskwoodsTerror2CollectBrownies": "ブラウニー",
"questTaskwoodsTerror2CollectDryads": "ドリアード",
"questTaskwoodsTerror2DropArmor": "火占い師のローブ",
"questTaskwoodsTerror3Text": "タスクの森の恐怖・第 3 部:ジャック・オ・ランタン",
"questTaskwoodsTerror3Text": "タスクの森の恐怖・第部:ジャック・オ・ランタン",
"questTaskwoodsTerror3Notes": "戦いの準備をし、あなた達の一行は森の中心に向かって行進します。そこでは狂った精霊が、実り多いキイチゴに囲まれた、リンゴの古木を破壊しようとしています。彼のかぼちゃに似た頭は彼の向く所全てに恐ろしい光を放っており、その左手にはランタンを吊り下げた長い杖があります。そのランタンには火や炎の代わりに、骨まで凍てつくように暗いクリスタルが収められています。<br><br>ジョイフル・リーパーは骨ばった手で口を覆いました。「あれは…あれは精霊ジャック・オー・ランタン!しかし彼は、農民たちを導く親切な豊穣の霊。どうやったらあの親愛なる魂をこんなになるまで駆り立てられるんだ?」<br><br>「分からない」と@bridgetteempressは言います。「しかし、その『親愛なる魂』は襲ってくるようだぞ!」",
"questTaskwoodsTerror3Completion": "長い戦いのすえ、あなたはジャック・オがもっているランタンと、閉ざされたクリスタルにねらいを定めて、一撃を放つことに成功しました。ジャック・オは突然我に返り、流れる涙が襲います。「うおーっ!! 私の美しい森が…! 私はいったい何をしてしまったんだ!?」 ジャック・オは叫びます。しかし、ジャック・オの涙は、残っていた火を消し、リンゴの木や野生のベリーを守ったのです。<br><br>あなたがジャック・オを落ち着かせると、「このジーナという名の魅惑的な娘と出会った。この光るクリスタルをプレゼントしてくれたのは彼女だ。そして、いう通りにランタンの中にクリスタルを入れると…そこまでしか覚えていない」、そう語りました。ジャック・オは最高の笑顔をむけると、「私は、森をよみがえらせないといけない。その間、安全のためには、これはあなたが持っていた方がいいんだろう。」",
"questTaskwoodsTerror3Boss": "ジャック・オ・ランタン",
@@ -403,17 +403,17 @@
"questDustBunniesCompletion": "ホコリウサギは綿の…いえ、綿ぼこりの中に姿を消しました。\n\nほこりが片付くと、あなたは周りを見渡します。きれいにすれば、ここはこんなに良い場所であったことを、どうやら忘れていたようです。\n\nあなたはこれまでほこりがあった所に、小さなのゴールドの山があるのを見つけました。そうそう、あなたはこれがどこにあるか知りたがってましたよね!",
"questDustBunniesBoss": "野生のホコリウサギ",
"questGroupMoon": "月の戦い",
"questMoon1Text": "月の戦い・第 1 部:奇妙な欠片を探し出せ",
"questMoon1Text": "月の戦い・第部:奇妙な欠片を探し出せ",
"questMoon1Notes": "ねじくれた奇妙な石のかけらが、地一面に現れました。Habiticaの人々は奇妙な出来事のせいで仕事に集中できません。占い師@Starsystemicは、あなたたちを己の塔に呼び出しました。「私はこの、地を荒らし、勤勉なHabitica人の気を散らすかけらについて、恐るべき兆しを読み取りました。私はこれらの源をつきとめることができますが、まずはかけら自体を調べる必要があります。幾つか、持ってきてもらえませんか?」と彼女は言います。",
"questMoon1Completion": "@Starsystemicはあなたたちが集めたかけらを調べに塔の中に消えました。「我々が恐れていたのよりも、事態は複雑なのかもしれない」と彼女の頼れる助手@Beffymarooが言います。「原因を明らかにするにはしばしの時間が必要だろう。毎日ここに通ってくれ。何かわかれば、次のクエストの巻物を君たちに渡そう」",
"questMoon1CollectShards": "月のかけら",
"questMoon1DropHeadgear": "月の戦士の兜(頭装備)",
"questMoon2Text": "月の戦い・第 2 部:影を落とすストレスを止めろ",
"questMoon2Text": "月の戦い・第部:影を落とすストレスを止めろ",
"questMoon2Notes": "欠片を調べた占い師@Starsystemicは、悪い知らせを持ってきました。「古代の怪物がHabiticaに迫り、市民たちには恐ろしいストレスが降りかかっています。私はこの影を人々の心から引き出してこの塔に集め、物理的な形をとらせることができます。しかし、あなたたちは奴が再びバラバラになって飛び散る前に、奴を倒さねばなりません」あなたはうなずき、彼女は呪文を唱え始めました。踊る影が部屋を満たし、ひしめき合います。冷たい風が渦まき、闇が深くなります。影を落とすストレスは床から立ち上がり、現世に現れた悪夢のように笑い…そして襲い掛かってきます!",
"questMoon2Completion": "影は暗い気となって爆発四散し、部屋も、あなたの心も明るくなりました。Habiticaを覆っているストレスも影を減じたようです。あなたは安堵のため息をつきました。でも待って、空を見上げたあなたは、事件は終わったわけではないと感じます。怪物は何者かが自分の影を壊したことに気づいたのです。「何週間かはまだ警戒が必要となるでしょう」@Starsystemicは言います。「時が来たら、あなたにクエストの巻物をお渡ししましょう」",
"questMoon2Boss": "かさむストレス",
"questMoon2DropArmor": "月の戦士の鎧 (鎧)",
"questMoon3Text": "月の戦い・第 3 部:怪物と化した月",
"questMoon3Text": "月の戦い・第部:怪物と化した月",
"questMoon3Notes": "真夜中に@Starsystemicから緊急の巻物を受け取ったあなたは、跳ねるようにして彼女の塔に向かいました。「怪物は満月を利用して我々の世界に侵入しようとしています」と彼女は言います。「もしこれが成功してしまえば、ストレスの衝撃波は抗えない規模になってしまうでしょう!」<br><br>あなたはまさに怪物が月から現れようとしているのを認めてうろたえます。光る瞳が岩肌に開かれ、牙のある開かれた口から長い舌が這い出します。奴を完全に出現させるわけにはいきません!",
"questMoon3Completion": "現れたモンスターはバラバラの影となって四散し、月は銀色の姿を取り戻しました。危機が去ったのです。ドラゴンは再び歌い始め、星々は穏やかに瞬き始めました。預言者@Starsystemicはかがみこみ、月のかけらを拾い上げました。それは彼女の手で銀に輝き、見事なクリスタルの鎌に姿を変えたのです。",
"questMoon3Boss": "怪物と化した月",
@@ -431,7 +431,7 @@
"questTriceratopsDropTriceratopsEgg": "トリケラトプス(たまご)",
"questTriceratopsUnlockText": "市場でトリケラトプスのたまごを買えるようになります",
"questGroupStoikalmCalamity": "オダヤカニの厄災",
"questStoikalmCalamity1Text": "オダヤカニの厄災・第1部:地底からの敵",
"questStoikalmCalamity1Text": "オダヤカニの厄災・第部:地底からの敵",
"questStoikalmCalamity1Notes": "@Kiwibotから短い手紙が届き、霜に覆われたその巻物は触れた指先と同じくらい心臓を凍えさせました。「オダヤカニ草原に来てみたら -- 地面から爆発する怪物が -- 救援を!!」あなたはパーティーを結成して北へ向かいます。しかし危険な山岳地帯を抜けてから間もなく、足元の雪が爆発し、ぞっとするような笑いを浮かべたドクロに取り囲まれてしまいました!<br><br>その時、突如として槍が脇をすり抜け、あなたを雪の中から不意打ちせんとしているドクロを貫きました。砕けたドクロから無造作に槍を引き戻すのに合わせて長い三つ編みがなびき、精巧な鎧をまとった長身の女性がマンモスの背に乗って躍り込んできます。マンモス乗りたちのリーダー、レディ・グラシエイトの助けを借りて、今こそ戦うときです!",
"questStoikalmCalamity1Completion": "あなたがドクロの群れに最後の一撃を食らわせると、それらは魔法の煙の中に掻き消えてしまいました。「忌々しい連中はいなくなったようだ」レディ・グラシエイトは告げます。「しかしもっと厄介な問題が残っている。私についてこい」彼女はあなたに冷たい外気から守ってくれる外套を投げてよこします。そうしてあなたたちは彼女に従い、その場を後にしたのでした。",
"questStoikalmCalamity1Boss": "ツチドクロの群れ",
@@ -441,12 +441,12 @@
"questStoikalmCalamity1DropSkeletonPotion": "骨のたまごがえしの薬",
"questStoikalmCalamity1DropDesertPotion": "砂漠のたまごがえしの薬",
"questStoikalmCalamity1DropArmor": "マンモス乗りの鎧",
"questStoikalmCalamity2Text": "オダヤカニの厄災・第2部:氷の洞窟の探索",
"questStoikalmCalamity2Notes": "マンモス乗りたちの堂々たる総本部は荘厳な名建築ですが、まったくの空っぽです。家具は一つもなく、武器は失われ、柱さえ土台からきれいに引っこ抜かれています。<br><br>「あのドクロたちが根こそぎ持ち去ったのだ」そう述べるレディ・グラシエイトの声色は吹きすさぶ吹雪のようです。「情けない。このことはエイプリル・フールには絶対知られたくないものだな。もしあのふざけた大盗賊がこれを聞いたら、何と言うか」<br><br>「なんて奇っ怪な!」と@Beffymaroo。「しかし賊はいったいどこへ…」<br><br>「氷のドレイクの洞窟だ」レディ・グラシエイト は外の雪の中にこぼれた光るコインを指し示しました。「ずさんなやり口だな」<br><br>「しかし氷のドレイクたちは誇り高き種族のはずでは? 財宝も余るほど持っているし」@Beffymarooは尋ねます。「どうして彼らが……」<br><br>「操られているのだろう」レディ・グラシエイトは全く動じていません。「あるいは同様にメロドラマ的で不都合な何かか」彼女はホールを後にしようとしています。「何故ついて来ぬのだ?」<br><br>急いで追いかけ、氷のコインをたどりましょう!",
"questStoikalmCalamity2Text": "オダヤカニの厄災・第部:氷の洞窟の探索",
"questStoikalmCalamity2Notes": "マンモス乗りたちの堂々たる総本部は荘厳な名建築ですが、まったくの空っぽです。家具は一つもなく、武器は失われ、柱さえ土台からきれいに引っこ抜かれています。<br><br>「あのドクロたちが根こそぎ持ち去ったのだ」そう述べるレディ・グラシエイトの声色は吹きすさぶ吹雪のようです。「情けない。このことはエイプリル・フールには絶対知られたくないものだな。もしあのふざけた大盗賊がこれを聞いたら、何と言うか」<br><br>「なんて奇っ怪な!」と@Beffymaroo。「しかし賊はいったいどこへ…」<br><br>「氷のドレイクの洞窟だ」レディ・グラシエイト は外の雪の中にこぼれた光るコインを指し示しました。「ずさんなやり口だな」<br><br>「しかし氷のドレイクたちは誇り高き種族のはずでは? 財宝も余るほど持っているし」@Beffymarooは尋ねます。「どうして彼らが……」<br><br>「操られているのだろう」レディ・グラシエイトは全く動じていません。「あるいは同様にメロドラマ的で不都合な何かか」彼女はホールを後にしようとしています。「何故ついて来ぬのだ?」<br><br>急いで追いかけ、氷のコインをたどりましょう!",
"questStoikalmCalamity2Completion": "氷のコインはあなたたちを巧妙に隠された洞窟の埋もれた入り口へと導いてくれました。外の天候は穏やかで優しく、日の光が雪に反射してきらきら輝いているのに、その中からは冬の暴風を思わせるうなり声が聞こえてきます。レディ・グラシエイト は眉をひそめ、あなたにマンモス乗りのかぶとを手渡しました。「これを使うといい。きっと必要になるだろうから」",
"questStoikalmCalamity2CollectIcicleCoins": "氷のコイン",
"questStoikalmCalamity2DropHeadgear": "マンモス乗りの兜(頭装備)",
"questStoikalmCalamity3Text": "オダヤカニの厄災・第3部:氷のドレイクは大地を震わす",
"questStoikalmCalamity3Text": "オダヤカニの厄災・第部:氷のドレイクは大地を震わす",
"questStoikalmCalamity3Notes": "洞窟の曲がりくねった通路は霜と…そして無数の金銀財宝できらきらと輝いています。思わず見とれてしまいますが、レディ・グラシエイトは一瞥もくれずに通り過ぎていきます。「派手すぎるな」彼女はそう言います。「しかしこれらはまっとうな傭兵仕事と賢い資産運用から得られたものだ。あれを見ろ」目を向けると、暗がりの中、盗まれた品が山積みになっているのが見えました。<br><br>あなたが近づくと、激しく威嚇するシューシューいう音が聞こえてきます。「私のとっておきの蓄え! お前たちになど盗ませはしないわ!」巨体をくねらせて盗品の山から滑り降りてくるのは、まさに氷のドレイククイーンそのものです! 彼女が大地を揺るがす咆哮を上げる直前、あなたは彼女の手首に奇妙なブレスレットがはまっているのに気がつきました。その瞳には凶暴な光が宿っています。",
"questStoikalmCalamity3Completion": "あなたは氷のドレイククイーンを取り押さえ、その隙にレディ・グラシエイトが不気味に光るブレスレットを粉々に砕きました。女王は明らかに恥ずかしさで身をこわばらせましたが、すぐにそれを傲慢な態度で覆い隠しました。「ここらのどうでもいい品物は好きに持って行ってよくてよ」女王は言います。「ここのインテリアには全く合わない気がしますもの」<br><br>「それらもあなたが盗んできたものですよ」@Beffymarooが教えました。「地底から怪物どもを呼び出してね」<br><br>女王はむっとしたように見えました。「文句はあの忌々しいブレスレットを売りつけてきた商人に言ってちょうだいな」彼女は言いました。「ジーナという女よ。私は実質無関係でしてよ!」<br><br>レディ・グラシエイトはあなたの腕を軽く叩きました。「今日はよくやってくれた」そしてアイテムの山から角笛と槍をあなたに手渡してくれました。「誇りに思うがいい」",
"questStoikalmCalamity3Boss": "氷のドレイククイーン",
@@ -472,7 +472,7 @@
"questButterflyDropButterflyEgg": "イモムシ(たまご)",
"questButterflyUnlockText": "市場でイモムシのたまごを買えるようになります",
"questGroupMayhemMistiflying": "マドワシティーの大騒乱",
"questMayhemMistiflying1Text": "マドワシティーの大騒乱・第 1 部:恐ろしいやっかいごとの巻",
"questMayhemMistiflying1Text": "マドワシティーの大騒乱・第部:恐ろしいやっかいごとの巻",
"questMayhemMistiflying1Notes": "地域の占い師たちは穏やかな天候を予想していましたが、午後には風がとても強くなってきました。あなたは友人の @Kiwibot にありがたく同行させてもらい、家の中に入って強風から逃れます。<br><br>しかしふたりとも、かのエイプリル・フールがキッチンのテーブルでくつろいでいようとは、まったく予想していませんでした。<br><br>「やあ、こんにちは」彼は言います。「こんなところでお会いするとは奇遇ですね。よろしければ、ワタクシが淹れた美味しい紅茶をおすそ分けいたしますよ」<br><br>「それ…」 @Kiwibot が言い始めます。「それは私のっー」<br><br>「ええ、ええ、そうでしょうとも」エイプリル・フールは勝手にクッキーをつまみながら言います。「ワタクシは屋内にパッとひとっ飛びして、あの竜巻を呼ぶドクロどもから離れてゆっくり休憩しようと思ったのですよ」彼はティーカップをさりげなく傾けて一口飲みます。「そういえば、ヤツらは空中都市マドワシティーを襲っているようですねえ」<br><br>恐怖に襲われたあなたと友人たちは動物小屋へ駆けつけ、羽のある乗騎の中でいちばん速いものにまたがります。空に浮かぶ都市へ向かって舞い上がると、あなたは空飛ぶドクロの群れがカタカタと歯を鳴らしながら都市のまわりを包囲しているのを目にします…そして、その中の何体かはあなたへと注意を向けます!",
"questMayhemMistiflying1Completion": "最後の一匹のドクロが、きらきらと輝く虹色のローブを口にくわえたまま地に落ちます。しかし暴風はまだ止みません。ここでは何か別のものが暗躍しているようです。そして、あのぐうたらなエイプリル・フールはどこへ行ってしまったのでしょう? あなたはローブを拾い上げ、マドワシティーめがけて飛び込んでいきます。",
"questMayhemMistiflying1Boss": "風のドクロの群れ",
@@ -482,14 +482,14 @@
"questMayhemMistiflying1DropSkeletonPotion": "骨のたまごがえしの薬",
"questMayhemMistiflying1DropWhitePotion": "白いたまごがえしの薬",
"questMayhemMistiflying1DropArmor": "ゆかいな虹色の配達人ローブ(鎧)",
"questMayhemMistiflying2Text": "マドワシティーの大騒乱・第 2 部:暴風警報の巻",
"questMayhemMistiflying2Notes": "空中都市マドワシティーの浮力を生み出す魔法のハチたちが大風でもみくちゃにされているため、都市は落っこちたりぐらぐら揺れたりしています。必死の捜索の末、あなたはついにエイプリル・フールがコテージの中で、縛りあげられてカンカンになったドクロとのんきにポーカーをしているのを見つけます。<br><br> @Katy133 は鋭い風音の中で声を張り上げます。「いったい何が原因なの? ドクロを倒したのに、状況はもっと悪くなっているよ!」<br><br>「確かに、それは頭の痛い問題でございますね」エイプリル・フールは同意します。「どうかレディ・グラシエイトにはこのことはご内密に。彼女はワタクシが”破滅的なまでに責任感がない”といって、いつもワタクシとのつきあいをやめると脅しているのです。ワタクシは、この状況を彼女が誤解するのではないかということが心配なのですよ」彼はカードデッキを混ぜます。「もし可能なら、マドワシアゲハを追ってみては? あれらには実体がありませんから、風で飛ばされないし、脅威のまわりに集まってくる性質があるのですよ」彼が窓の外に向かってあごを向けると、この都市のシンボルの魔法生物たちの何匹かが東へ向かっていくのが見えます。「それでは、ゲームに集中させてくださいワタクシの相手はかなりのポーカーフェイスでございますからね」",
"questMayhemMistiflying2Completion": "あなたはマドワシアゲハを追って竜巻の発生地に到着しますが、あまりに風が強くて中に入ることができません。<br><br>「これが助けになるでしょう」きゅうに耳のすぐそばで声がしたので、あなたは乗騎からもう少しで落ちるところでした。どういうわけか、エイプリル・フールがあなたのくらの真後ろに座っています。「この郵便配達人のフードは荒天から身を守るオーラを放つと聞いておりますよ飛んでいる間に郵便物を落とさないようにするには、とても役に立つ力でございますね。試してみてはいかがです?」",
"questMayhemMistiflying2Text": "マドワシティーの大騒乱・第部:暴風警報の巻",
"questMayhemMistiflying2Notes": "空中都市マドワシティーの浮力を生み出す魔法のハチたちが大風でもみくちゃにされているため、都市は落っこちたりぐらぐら揺れたりしています。必死の捜索の末、あなたはついにエイプリル・フールがコテージの中で、縛りあげられてカンカンになったドクロとのんきにポーカーをしているのを見つけます。<br><br> @Katy133 は鋭い風音の中で声を張り上げます。「いったい何が原因なの? ドクロを倒したのに、状況はもっと悪くなっているよ!」<br><br>「確かに、それは頭の痛い問題でございますね」エイプリル・フールは同意します。「どうかレディ・グラシエイトにはこのことはご内密に。彼女はワタクシが”破滅的なまでに責任感がない”といって、いつもワタクシとのつきあいをやめると脅しているのです。ワタクシは、この状況を彼女が誤解するのではないかということが心配なのですよ」彼はカードデッキを混ぜます。「もし可能なら、マドワシアゲハを追ってみては? あれらには実体がありませんから、風で飛ばされないし、脅威のまわりに集まってくる性質があるのですよ」彼が窓の外に向かってあごを向けると、この都市のシンボルの魔法生物たちの何匹かが東へ向かっていくのが見えます。「それでは、ゲームに集中させてください――ワタクシの相手はかなりのポーカーフェイスでございますからね」",
"questMayhemMistiflying2Completion": "あなたはマドワシアゲハを追って竜巻の発生地に到着しますが、あまりに風が強くて中に入ることができません。<br><br>「これが助けになるでしょう」きゅうに耳のすぐそばで声がしたので、あなたは乗騎からもう少しで落ちるところでした。どういうわけか、エイプリル・フールがあなたのくらの真後ろに座っています。「この郵便配達人のフードは荒天から身を守るオーラを放つと聞いておりますよ――飛んでいる間に郵便物を落とさないようにするには、とても役に立つ力でございますね。試してみてはいかがです?」",
"questMayhemMistiflying2CollectRedMistiflies": "赤いマドワシアゲハ",
"questMayhemMistiflying2CollectBlueMistiflies": "青いマドワシアゲハ",
"questMayhemMistiflying2CollectGreenMistiflies": "緑のマドワシアゲハ",
"questMayhemMistiflying2DropHeadgear": "ゆかいな虹色の配達人フード(頭装備)",
"questMayhemMistiflying3Text": "マドワシティーの大騒乱・第 3 部:荒ぶる郵便配達人の巻",
"questMayhemMistiflying3Text": "マドワシティーの大騒乱・第部:荒ぶる郵便配達人の巻",
"questMayhemMistiflying3Notes": "竜巻の中ではあまりにも大勢のマドワシアゲハが飛び交っていて、あたりがよく見えません。目を細めたあなたは、この壮絶な嵐の中心に、いくつもの羽を背負った人影が浮かんでいるのを見つけます。<br><br>「ああ、なんたること」エイプリル・フールはため息をつきますが、その声は風の咆哮でほとんどかき消されます。「ウィニーが何者かに取りつかれてしまったようです。とてもありがちな問題でございますね、これは。誰にだって起こることですよ」<br><br>「ウィンド・ワーカーだ!」 @Beffymaroo はあなたに叫びます。「彼はマドワシティーの最も才能ある郵便配達の魔道士なんだ。天候を操る魔法にとても長けているからね。普段はとても礼儀正しい郵便配達人なのに!」<br><br>その発言に対抗するかのように、ウィンド・ワーカーは怒りの叫びを放ち、あなたは魔法のローブを着ているにもかかわらず暴風で乗騎から振り落とされそうになります。<br><br>「あのけばけばしい仮面は見たことがございませんね」エイプリル・フールは気づきます。「あれを外してやったらどうでしょう?」<br><br>いいアイデアです…しかし、かの怒り狂った魔道士は、戦わずして仮面を手放そうとはしないでしょう。",
"questMayhemMistiflying3Completion": "もうこれ以上は暴風に耐えられないと思ったそのとき、あなたはウィンド・ワーカーの顔から仮面を奪い取ることに成功します。その瞬間、竜巻は虚空に吸い込まれてなくなり、あたりにはそよ風と太陽の光だけが残ります。ウィンド・ワーカーは当惑してあたりを見回します。「彼女はどこへ行った?」<br><br>「誰のことだ?」あなたの友人の @khdarkwolf が聞きます。<br><br>「私のかわりに荷物を配達すると申し出てくれた、あの親切な女性、ジーナのことだ」風にさらされた都市を眼下に見るうちに、彼の表情は暗くなります。「と思ったけれど、彼女はそれほど親切じゃなかったのかも…」<br><br>エイプリル・フールは彼の背中をたたき、あなたに二つの輝く封筒を手渡します。「ほら。この悲しみに暮れる男を休ませて、郵便配達を少し手伝ってあげたら? この封筒にこめられた魔法が、あなたの手間に見合うだけの見返りを与えてくれると聞きますよ」",
"questMayhemMistiflying3Boss": "ウィンド・ワーカー",
@@ -518,18 +518,18 @@
"witchyFamiliarsNotes": "「ネズミ王」「氷のクモ」「散らかしカエルの沼」のセット。10月31日まで購入できます。",
"questGroupLostMasterclasser": "クラス・マスターの謎",
"questUnlockLostMasterclasser": "このクエストをアンロックするには、これらの連続クエストの最終話を完了させてください:「サキノバシティーの危機」「マドワシティーの大騒乱」「オダヤカニの厄災」「タスクの森の恐怖」。",
"questLostMasterclasser1Text": "クラス・マスターの謎 第1部:行間を読め",
"questLostMasterclasser1Text": "クラス・マスターの謎 第部:行間を読め",
"questLostMasterclasser1Notes": "思いがけなく @beffymaroo と@LemonessにHabitホールに呼び出されたあなたは、夜明けの光の中、全てのクラス・マスターが待ち構えていたのに仰天しました。あの陽気なジョイフル・リーパーでさえ憂鬱そうです。<br><br>「やあやあ、いらっしゃいましたね」エイプリル・フールが声を上げました。「ワタクシたちもこんな深刻な状況でなければ、あなたを叩き起こしたりなんてしないのですが――」<br><br>「最近の憑りつかれ症候群について、調査を手伝ってほしいのだ」レディ・グラシエイトが割って入りました。「被害者は全員、ジーナという人物のせいだと訴えている」<br><br>エイプリル・フールは要約されて明らかに気分を害しました。「ワタクシのスピーチはどうしてくれるんです?」彼は不快感をあらわにします。「霧と雷雨の演出付きなんですよ?」<br><br>「我々は急いでいる」レディ・グラシエイトは反論します。「そして、お前がリハーサルを繰り返したせいで、私のマンモスたちはすっかりびしょ濡れなのだが」<br><br>「すまないが、尊敬すべき戦士マスターの言うとおりだの」キング・マンタは言います。「事態は急を要する。手伝ってくれるかね?」<br><br>あなたがうなずくと、彼は手を振って魔法の門を開き、水中の部屋を映し出しました。「一緒にサキノバシティーまで潜り、図書館で証拠になりそうなあらゆる資料を探し出してほしいのじゃ」あなたの困惑した顔を見て、彼は付け加えます。「心配はいらんよ、サキノバシティーが海に沈むはるか以前から、紙には魔法がかけられておる。どの本も全く湿っておらん」彼は目配せして、「レディ・グラシエイトのマンモスのようにはの」<br><br>「聞こえているぞ、マンタ」<br><br>あなたが魔道士マスターの後について水に飛び込むと、あなたの足は魔法のようにヒレに変わりました。体は水に浮いているのに、何千もの本棚を目にしたあなたの心は沈んでいきます。読み始めたほうがよさそうですね…",
"questLostMasterclasser1Completion": "何時間もぶっ通しで本を読み込みましたが、未だ有用な情報を得られていません。<br><br>「関連したほんのわずかな手がかりすら得られないなんて、ありえませんよ」司書長の@Tuqjoiが言い、助手の @stefalupagusが不満そうにうなずきます。<br><br>「ありえないのではなく…」キング・マンタは目を細めて言います。「<em>意図的なのだ</em>」 一瞬、彼の手の周りの水が輝き、数冊の本が震えます。「何らかの力が情報を覆い隠しておる」彼は言います。「静的な呪文だけではなく、それ自身が意志を持った何かの。生きている…何か」彼はテーブルから泳ぎ上がります。「ジョイフル・リーパーに伝えねばの。出立の準備をせい」",
"questLostMasterclasser1CollectAncientTomes": "古代の書",
"questLostMasterclasser1CollectForbiddenTomes": "禁断の書",
"questLostMasterclasser1CollectHiddenTomes": "隠された書",
"questLostMasterclasser2Text": "クラス・マスターの謎 第2部:惑乱のメ・クラマシー",
"questLostMasterclasser2Text": "クラス・マスターの謎 第部:惑乱のメ・クラマシー",
"questLostMasterclasser2Notes": "ジョイフル・リーパーは骨の指であなたが持ち帰ってきた本をトントンたたきます。「あらまあ」治療師マスターは言います。「邪悪な生命力が働いているわね。それぞれの事件で毎回動くドクロが襲って来たのを考えるに、何だかそんな気はしていたけれど」彼女の助手である@tricksy.fox が箱を持ってきて、そこから@beffymarooが取り出した物を見てあなたは驚きます。あの謎の女ジーナが人々に憑りつかせたものと全く同じアイテムです。<br><br>「この邪悪な生命体を引きはがすために、今共鳴治癒魔法を使っているところよ」そう言うジョイフル・リーパーに、あなたはこのガイコツが幾分型破りな治療師であることを思い出します。「ほころびが破れたら、浮かんできた情報を素早く読み取ってほしいの」<br><br>彼女が集中すると、渦巻く霧が本から吸い上げられ始め、持ち込まれた物品の周りに絡みつきます。すぐさまあなたはページをめくり、視界のなかでもがく文章の新しい行を読もうと試みましたが、2,3の断片をとらえただけでした。「ムダボネ の砂」―「大災害」―「4つに分かたれ」―「永久に失われた」―ジニアという名前が目に止まるまでは。<br><br>突然、ページが身をよじってあなたの指から逃れたかと思うと自らを細切れにして吠え猛る怪物に変じ、憑依された物品の元に集まって合体しました。<br><br>「あれはメ・クラマシーだわ!」ジョイフル・リーパーは防御魔法をかけながら叫びます。「暗闇と混乱の古代生物よ。もしあれをジーナが操っているのだとしたら、彼女は生命魔法の恐るべき使い手に違いないわ。早く、あれが本に逃げ込む前に倒さないと!」<br><br>",
"questLostMasterclasser2Completion": "メ・クラマシーはついに敗れ去り、あなたは読み取った断片を皆に伝えました。<br><br>「どの情報もピンとこないわね。こんなに長生きな私でさえも」ジョイフル・リーパーは言います。「一つだけ…ムダボネはHabiticaで最も危険な辺境地域にある砂漠の名ね。転移魔法はほぼ失敗するけれど、乗騎ならばすぐにたどり着けるわ。レディ・グラシエイトが喜んで手伝ってくれるでしょう」彼女の声は楽しげです。「つまりどういうことかというと、彼女にぞっこんな盗賊マスターも間違いなく一緒についてくるだろうってこと」彼女はあなたにぼやけたマスクを手渡します。「多分あなたはそれらのアイテムの出所まで、魔力の残滓をたどってみる必要があるでしょう。私は旅の間の食料を採りに行ってきますね」",
"questLostMasterclasser2Boss": "メ・クラマシー",
"questLostMasterclasser2DropEyewear": "エーテルの仮面(アイウエア)",
"questLostMasterclasser3Text": "クラス・マスターの謎 第3部:砂塵都市",
"questLostMasterclasser3Text": "クラス・マスターの謎 第部:砂塵都市",
"questLostMasterclasser3Notes": "ムダボネ砂漠の灼熱の砂上に夜のとばりが降り、案内役の@AnnDeLunと@Kiwibot、@Katy133たちはあなたを先導して歩きます。何本かの風化した柱が砂丘の影から突きだし、あなたが近づくにつれて、無人に思えていた砂原に奇妙なせわしない音が響き渡りました。<br><br>「不可視の獣ですよ!」そう言うエイプリル・フールは妙にやる気を見せています。「ははっ、もうお分かりですよね! これはもうステルスを極めた真の盗賊の出番に間違いありません」<br><br>「この悪党め、我らのそばに潜伏してはいるのだろうが」レディ・グラシエイトは乗騎を降りて槍を構えます。「もし正面から行くなら、相手を怒らせないようにしてもらいたいものだな。火山の二の舞はごめんだぞ」<br><br>彼はレディに微笑みかけました。「ですが、あの救出劇での貴女は最高に輝いていらっしゃった」<br><br>驚いたことにレディ・グラシエイトはそのお世辞に真っ赤になり、廃墟を調べに足早に立ち去ってしまいました。<br><br>「古代都市の廃墟に見えますね」と@AnnDeLune。「ですが……」<br><br>彼女が言い終わるより速く、空中に轟く転移の門が出現しました。この辺りでは転移魔法は使えなかったはずでは? 泡を食って逃げ去る不可視の獣たちの足音が雷鳴のように響く中、空を埋め尽くし叫びをあげるドクロたちの突撃にあなたたちは身構えます。",
"questLostMasterclasser3Completion": "エイプリル・フールに砂を吹きかけられ、不意を突かれた最後のドクロはレディ・グラシエイトに背後を取られて見事に打ち砕かれました。あなたがホッと一息ついて見上げたとき、閉じゆく転移の門の向こう側で何者かの影が動いたのが目に付きました。ふとひらめいて、あなたが以前の憑りつきアイテムであるアミュレットを取りだすと、確かにそれは目に見えない誰かに引き寄せられていきます。レディ・グラシエイトとエイプリル・フールの制止の声も聞かず、あなたは閉じる寸前の門へその身を躍らせると、黒々とした虚無の領域へとまっさかさまに落ちていきました。",
"questLostMasterclasser3Boss": "虚無ドクロの群れ",
@@ -542,7 +542,7 @@
"questLostMasterclasser3DropPinkPotion": "ピンクのたまごがえしの薬",
"questLostMasterclasser3DropShadePotion": "影のたまごがえしの薬",
"questLostMasterclasser3DropZombiePotion": "ゾンビのたまごがえしの薬",
"questLostMasterclasser4Text": "クラス・マスターの謎 第4部:失われしクラス・マスター",
"questLostMasterclasser4Text": "クラス・マスターの謎 第部:失われしクラス・マスター",
"questLostMasterclasser4Notes": "あなたは転移の門から浮上しましたが、未だに奇妙な、遷移する無の世界にとどめられています。「大したものね」冷たい声がしました。「認めるわ。直接顔を合わせることになるなんて、全くの計算外だった」湧き立つ闇の渦から、女性の姿が浮かび上がります。「虚無の領域へようこそ」<br><br>あなたは吐き気をもよおすような嫌悪感をこらえながら問いかけます。「君がジーナ…ジニアなの?」<br><br>「古い名前ね、青臭い理想主義者の」彼女がそう言って口元を歪めると、世界があなたの足元で身震いしました。「そうね、どちらかと言えば、今は昏冥のジニアとでも呼ぶべきだわ。私がしてきたこととしてこなかった全てのことから見れば」<br><br>突然、転移の門が背後で開き、4人のクラス・マスターがあなたを追って飛び込んできました。昏冥のジニア、その瞳に憎しみの光が閃きます。「私の哀れな模造品たちがやっとあなたを追ってきたようね」<br><br>あなたは目を見開きました。「模造品?」<br><br>「エーテル術師マスターとして、私は最初のクラス・マスターだった――世界でただ一人の。そこの4人は私がかつて持っていた力の一部を取り込んだ紛い物に過ぎないのよ! 私はすべての呪文を操り、全てのスキルを習得した。気まぐれでまさにあなたの世界そのものを形作った――私の才能と完璧で合理的な期待の重みに耐えかねた裏切り者のエーテルが自壊するまでは。そしてその結果できた虚無に何千年も捕らわれた末に、力を取り戻した。自分の残したものがすっかり台無しになっているのを知ったときの気持ちを想像できて?」彼女は低くこだまする笑い声を上げました。「私の計画は偽物連中を打ち負かす前に彼らの支配圏を滅ぼすことだったけれど、この際順番は関係ないわね」恐るべき力の爆発とともに、彼女が前に飛び出しました。そして虚無の領域は混沌の炎に飲み込まれていきます。",
"questLostMasterclasser4Completion": "あなたが放った最後のすさまじい一撃によって、失われしクラス・マスターは断末魔の叫びを上げ、その肉体は半透明にちらつきます。彼女が前のめりに崩れ落ちたときも、のたうつ虚無は彼女の周りに未だとどまっていました。一瞬、彼女がより若く、穏やかな姿に変貌し、平穏な感情がその表情に浮かんだ気がしました……しかし、全てはかすかな囁きとともに消え去り、気づくとあなたは再び砂漠の砂に跪いていました。<br><br>「どうやら、わしらは自分たち自身の歴史を十分学んだようだの」崩壊した遺跡を見つめながら、キング・マンタが言います。「エーテル術師マスターは圧倒的な力を得た後その制御を失い、流れ出た虚無が大地の生命力を奪ったのに違いあるまいよ。恐らく、全てがこのような砂漠になってしまったのじゃな」<br><br>「どうりで、Habiticaを発見した古代人たちは生産性と健康のバランスを重視していたわけだわ」ジョイフル・リーパーがつぶやきました。「世界を再建するのはものすごく骨の折れる作業だったろうに、彼らはあんな大災害が再び起きるのを避けたかったのね」<br><br>「おやおや、あそこの元憑りつきアイテムたちを見てごらんなさいよ!」エイプリル・フールが指を指します。果たしてそれら全てが淡く、半透明に光っているではありませんか。それはあなたがあのジニアの魂を安息に導いたときに放たれた、エーテルの最後の輝きでした。「なんてきらびやかな演出効果。あれはぜひともメモっておかなければ」<br><br>「どうやら周囲に残留する濃縮されたエーテルが、動物たちも透明に変えてしまったようだな」レディ・グラシエイトが耳の後ろの何もない空間をひっかきながら言いました。あなたは目に見えないふわふわした頭が手にあたるのを感じ、動物小屋に帰ったらこれをどう説明しようかと頭を悩ませます。最後にあなたが廃墟を一度だけ振り返ったとき、世界最初のクラス・マスターが遺した全てを見つけました。彼女の輝く外套を。それを肩に担ぎあげ、学んできた色々なものを深く思い返しながら、あなたはHabitシティへと帰還するのでした。<br><br>",
"questLostMasterclasser4Boss": "昏冥のジニア",

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