mirror of
https://github.com/HabitRPG/habitica.git
synced 2026-05-20 03:14:01 -05:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a09c6b84d5 | |||
| 3ba161abbe | |||
| 9038572ff9 | |||
| 80825f3478 | |||
| a254c50a8e | |||
| 918a769441 | |||
| 1fab19acf4 | |||
| 5743fb86b0 | |||
| 5443bf2459 | |||
| c0d5566417 | |||
| ded71b46c5 | |||
| 9693ad321c | |||
| dd3679f329 | |||
| f3029953dc | |||
| 01881b2fd8 | |||
| 11a22d0f5d | |||
| 5f9bf07045 | |||
| 719c03e2f5 | |||
| 379afa9554 | |||
| dbc23e89b8 | |||
| 0c6e254742 | |||
| 8327e69bdd | |||
| 2d953f4f59 | |||
| 7118d63949 | |||
| 20af8d038e | |||
| 3d9dfbb5e1 | |||
| ae0b966f45 |
+1
-1
Submodule habitica-images updated: 8ee6f312cb...aa72332019
Generated
+203
-128
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"version": "5.34.2",
|
||||
"version": "5.35.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "habitica",
|
||||
"version": "5.34.2",
|
||||
"version": "5.35.1",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.10",
|
||||
@@ -56,7 +56,7 @@
|
||||
"method-override": "^3.0.0",
|
||||
"moment": "^2.29.4",
|
||||
"moment-recur": "^1.0.7",
|
||||
"mongoose": "^7.8.3",
|
||||
"mongoose": "^8.9.5",
|
||||
"morgan": "^1.10.0",
|
||||
"nconf": "^0.12.1",
|
||||
"node-gcm": "^1.0.5",
|
||||
@@ -3047,7 +3047,7 @@
|
||||
"version": "1.1.9",
|
||||
"resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz",
|
||||
"integrity": "sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==",
|
||||
"optional": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"sparse-bitfield": "^3.0.3"
|
||||
}
|
||||
@@ -3677,14 +3677,15 @@
|
||||
"node_modules/@types/webidl-conversions": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
|
||||
"integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="
|
||||
"integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/whatwg-url": {
|
||||
"version": "8.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
|
||||
"integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
|
||||
"version": "11.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz",
|
||||
"integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/webidl-conversions": "*"
|
||||
}
|
||||
},
|
||||
@@ -6401,10 +6402,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/bson": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/bson/-/bson-6.3.0.tgz",
|
||||
"integrity": "sha512-balJfqwwTBddxfnidJZagCBPP/f48zj9Sdp3OJswREOgsJzHiQSaOIAtApSgDQFYgHqAvFkp53AFSqjMDZoTFw==",
|
||||
"dev": true,
|
||||
"version": "6.10.2",
|
||||
"resolved": "https://registry.npmjs.org/bson/-/bson-6.10.2.tgz",
|
||||
"integrity": "sha512-5afhLTjqDSA3akH56E+/2J6kTDuSIlBxyXPdQslj9hcIgOUE378xdOfZvC/9q3LifJNI6KR/juZ+d0NRNYBwXg==",
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=16.20.1"
|
||||
}
|
||||
@@ -13360,28 +13361,6 @@
|
||||
"resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz",
|
||||
"integrity": "sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA=="
|
||||
},
|
||||
"node_modules/ip-address": {
|
||||
"version": "9.0.5",
|
||||
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
|
||||
"integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
|
||||
"dependencies": {
|
||||
"jsbn": "1.1.0",
|
||||
"sprintf-js": "^1.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12"
|
||||
}
|
||||
},
|
||||
"node_modules/ip-address/node_modules/jsbn": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
|
||||
"integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
|
||||
},
|
||||
"node_modules/ip-address/node_modules/sprintf-js": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
|
||||
"integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
|
||||
},
|
||||
"node_modules/ipaddr.js": {
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
||||
@@ -14296,9 +14275,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/kareem": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz",
|
||||
"integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==",
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz",
|
||||
"integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==",
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
}
|
||||
@@ -14307,7 +14287,7 @@
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/kerberos/-/kerberos-1.1.7.tgz",
|
||||
"integrity": "sha512-1zXg4rARjsh/VMz2jjZeTfRHbJTVNR6f2DYHbLvtUSOW1satj33Fvc7vOJ0YVWB9+/9ITJWd1QKp4w217SsiFA==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"bindings": "^1.5.0",
|
||||
@@ -14965,8 +14945,7 @@
|
||||
"node_modules/memory-pager": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
|
||||
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
|
||||
"optional": true
|
||||
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
|
||||
},
|
||||
"node_modules/meow": {
|
||||
"version": "3.7.0",
|
||||
@@ -15475,43 +15454,47 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mongodb-connection-string-url": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
|
||||
"integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz",
|
||||
"integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@types/whatwg-url": "^8.2.1",
|
||||
"whatwg-url": "^11.0.0"
|
||||
"@types/whatwg-url": "^11.0.2",
|
||||
"whatwg-url": "^14.1.0 || ^13.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mongodb-connection-string-url/node_modules/tr46": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
|
||||
"integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz",
|
||||
"integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"punycode": "^2.1.1"
|
||||
"punycode": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
|
||||
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
|
||||
"license": "BSD-2-Clause",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/mongodb-connection-string-url/node_modules/whatwg-url": {
|
||||
"version": "11.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
|
||||
"integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
|
||||
"version": "14.1.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.0.tgz",
|
||||
"integrity": "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"tr46": "^3.0.0",
|
||||
"tr46": "^5.0.0",
|
||||
"webidl-conversions": "^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/mongodb-core": {
|
||||
@@ -15596,55 +15579,64 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mongoose": {
|
||||
"version": "7.8.3",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.8.3.tgz",
|
||||
"integrity": "sha512-eFnbkKgyVrICoHB6tVJ4uLanS7d5AIo/xHkEbQeOv6g2sD7gh/1biRwvFifsmbtkIddQVNr3ROqHik6gkknN3g==",
|
||||
"version": "8.9.7",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.9.7.tgz",
|
||||
"integrity": "sha512-mvNXmU0V8qZzMR/qoK2mjT4Ti2ALdtfS0teK+twxhlGkwzOD76V02/zWajTu2MJ7QyEmZe9OWvnJsIY0iAuX3Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bson": "^5.5.0",
|
||||
"kareem": "2.5.1",
|
||||
"mongodb": "5.9.2",
|
||||
"bson": "^6.10.1",
|
||||
"kareem": "2.6.3",
|
||||
"mongodb": "~6.12.0",
|
||||
"mpath": "0.9.0",
|
||||
"mquery": "5.0.0",
|
||||
"ms": "2.1.3",
|
||||
"sift": "16.0.1"
|
||||
"sift": "17.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.20.1"
|
||||
"node": ">=16.20.1"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/mongoose"
|
||||
}
|
||||
},
|
||||
"node_modules/mongoose/node_modules/bson": {
|
||||
"version": "5.5.1",
|
||||
"resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz",
|
||||
"integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==",
|
||||
"node_modules/mongoose/node_modules/kerberos": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.1.tgz",
|
||||
"integrity": "sha512-Vlyv1tjAPb0y2VIJ03dKkUjsneGIBuTkH24uGRx6/DrKpFlVuGPmct3m5aEotljVUlw7PAGWABwR5aNeW7y8Zw==",
|
||||
"hasInstallScript": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"node-addon-api": "^6.1.0",
|
||||
"prebuild-install": "^7.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.20.1"
|
||||
"node": ">=12.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mongoose/node_modules/mongodb": {
|
||||
"version": "5.9.2",
|
||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz",
|
||||
"integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==",
|
||||
"version": "6.12.0",
|
||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.12.0.tgz",
|
||||
"integrity": "sha512-RM7AHlvYfS7jv7+BXund/kR64DryVI+cHbVAy9P61fnb1RcWZqOW1/Wj2YhqMCx+MuYhqTRGv7AwHBzmsCKBfA==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"bson": "^5.5.0",
|
||||
"mongodb-connection-string-url": "^2.6.0",
|
||||
"socks": "^2.7.1"
|
||||
"@mongodb-js/saslprep": "^1.1.9",
|
||||
"bson": "^6.10.1",
|
||||
"mongodb-connection-string-url": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.20.1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@mongodb-js/saslprep": "^1.1.0"
|
||||
"node": ">=16.20.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@aws-sdk/credential-providers": "^3.188.0",
|
||||
"@mongodb-js/zstd": "^1.0.0",
|
||||
"kerberos": "^1.0.0 || ^2.0.0",
|
||||
"mongodb-client-encryption": ">=2.3.0 <3",
|
||||
"snappy": "^7.2.2"
|
||||
"@mongodb-js/zstd": "^1.1.0 || ^2.0.0",
|
||||
"gcp-metadata": "^5.2.0",
|
||||
"kerberos": "^2.0.1",
|
||||
"mongodb-client-encryption": ">=6.0.0 <7",
|
||||
"snappy": "^7.2.2",
|
||||
"socks": "^2.7.1"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@aws-sdk/credential-providers": {
|
||||
@@ -15653,6 +15645,9 @@
|
||||
"@mongodb-js/zstd": {
|
||||
"optional": true
|
||||
},
|
||||
"gcp-metadata": {
|
||||
"optional": true
|
||||
},
|
||||
"kerberos": {
|
||||
"optional": true
|
||||
},
|
||||
@@ -15661,6 +15656,9 @@
|
||||
},
|
||||
"snappy": {
|
||||
"optional": true
|
||||
},
|
||||
"socks": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15669,6 +15667,105 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
||||
},
|
||||
"node_modules/mongoose/node_modules/napi-build-utils": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
|
||||
"integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/mongoose/node_modules/node-abi": {
|
||||
"version": "3.74.0",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz",
|
||||
"integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"semver": "^7.3.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/mongoose/node_modules/node-addon-api": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
|
||||
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/mongoose/node_modules/prebuild-install": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
|
||||
"integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"detect-libc": "^2.0.0",
|
||||
"expand-template": "^2.0.3",
|
||||
"github-from-package": "0.0.0",
|
||||
"minimist": "^1.2.3",
|
||||
"mkdirp-classic": "^0.5.3",
|
||||
"napi-build-utils": "^2.0.0",
|
||||
"node-abi": "^3.3.0",
|
||||
"pump": "^3.0.0",
|
||||
"rc": "^1.2.7",
|
||||
"simple-get": "^4.0.0",
|
||||
"tar-fs": "^2.0.0",
|
||||
"tunnel-agent": "^0.6.0"
|
||||
},
|
||||
"bin": {
|
||||
"prebuild-install": "bin.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/mongoose/node_modules/semver": {
|
||||
"version": "7.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
|
||||
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
|
||||
"license": "ISC",
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/mongoose/node_modules/simple-get": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
|
||||
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"decompress-response": "^6.0.0",
|
||||
"once": "^1.3.1",
|
||||
"simple-concat": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/monk": {
|
||||
"version": "7.3.4",
|
||||
"resolved": "https://registry.npmjs.org/monk/-/monk-7.3.4.tgz",
|
||||
@@ -16082,7 +16179,7 @@
|
||||
"version": "2.30.1",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
|
||||
"integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"semver": "^5.4.1"
|
||||
}
|
||||
@@ -16091,7 +16188,7 @@
|
||||
"version": "5.7.2",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
||||
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver"
|
||||
}
|
||||
@@ -16281,7 +16378,7 @@
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
||||
"integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==",
|
||||
"devOptional": true
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/nopt": {
|
||||
"version": "1.0.10",
|
||||
@@ -17896,7 +17993,7 @@
|
||||
"version": "6.1.2",
|
||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.2.tgz",
|
||||
"integrity": "sha512-PzYWIKZeP+967WuKYXlTOhYBgGOvTRSfaKI89XnfJ0ansRAH7hDU45X+K+FZeI1Wb/7p/NnuctPH3g0IqKUuSQ==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"detect-libc": "^1.0.3",
|
||||
"expand-template": "^2.0.3",
|
||||
@@ -17924,7 +18021,7 @@
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@@ -17933,13 +18030,13 @@
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
|
||||
"devOptional": true
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/prebuild-install/node_modules/are-we-there-yet": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
|
||||
"integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"delegates": "^1.0.0",
|
||||
"readable-stream": "^2.0.6"
|
||||
@@ -17949,7 +18046,7 @@
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"detect-libc": "bin/detect-libc.js"
|
||||
},
|
||||
@@ -17961,7 +18058,7 @@
|
||||
"version": "2.7.4",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
||||
"integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"aproba": "^1.0.3",
|
||||
"console-control-strings": "^1.0.0",
|
||||
@@ -17977,7 +18074,7 @@
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||
"integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
},
|
||||
@@ -17989,13 +18086,13 @@
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
||||
"devOptional": true
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/prebuild-install/node_modules/npmlog": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
||||
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"are-we-there-yet": "~1.1.2",
|
||||
"console-control-strings": "~1.1.0",
|
||||
@@ -18007,7 +18104,7 @@
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
|
||||
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
@@ -18022,7 +18119,7 @@
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
@@ -18031,7 +18128,7 @@
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
"integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
@@ -18045,7 +18142,7 @@
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||
"integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
},
|
||||
@@ -19576,9 +19673,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sift": {
|
||||
"version": "16.0.1",
|
||||
"resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz",
|
||||
"integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ=="
|
||||
"version": "17.1.3",
|
||||
"resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz",
|
||||
"integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/signal-exit": {
|
||||
"version": "3.0.7",
|
||||
@@ -19608,7 +19706,7 @@
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
|
||||
"integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"decompress-response": "^4.2.0",
|
||||
"once": "^1.3.1",
|
||||
@@ -19619,7 +19717,7 @@
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
|
||||
"integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"mimic-response": "^2.0.0"
|
||||
},
|
||||
@@ -19631,7 +19729,7 @@
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
|
||||
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
|
||||
"devOptional": true,
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
@@ -19772,15 +19870,6 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/smart-buffer": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
||||
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
|
||||
"engines": {
|
||||
"node": ">= 6.0.0",
|
||||
"npm": ">= 3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/snapdragon": {
|
||||
"version": "0.8.2",
|
||||
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
||||
@@ -19900,19 +19989,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/socks": {
|
||||
"version": "2.8.3",
|
||||
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
|
||||
"integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
|
||||
"dependencies": {
|
||||
"ip-address": "^9.0.5",
|
||||
"smart-buffer": "^4.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10.0.0",
|
||||
"npm": ">= 3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sort-keys": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
|
||||
@@ -19990,7 +20066,6 @@
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
|
||||
"integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"memory-pager": "^1.0.2"
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "5.34.2",
|
||||
"version": "5.35.1",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.10",
|
||||
@@ -51,7 +51,7 @@
|
||||
"method-override": "^3.0.0",
|
||||
"moment": "^2.29.4",
|
||||
"moment-recur": "^1.0.7",
|
||||
"mongoose": "^7.8.3",
|
||||
"mongoose": "^8.9.5",
|
||||
"morgan": "^1.10.0",
|
||||
"nconf": "^0.12.1",
|
||||
"node-gcm": "^1.0.5",
|
||||
|
||||
+253
-122
@@ -2,13 +2,22 @@
|
||||
import moment from 'moment';
|
||||
import nconf from 'nconf';
|
||||
import requireAgain from 'require-again';
|
||||
import { recoverCron, cron } from '../../../../website/server/libs/cron';
|
||||
import { v4 as generateUUID } from 'uuid';
|
||||
import {
|
||||
generateRes,
|
||||
generateReq,
|
||||
generateTodo,
|
||||
generateDaily,
|
||||
} from '../../../helpers/api-unit.helper';
|
||||
import { cron, cronWrapper } from '../../../../website/server/libs/cron';
|
||||
import { model as User } from '../../../../website/server/models/user';
|
||||
import * as Tasks from '../../../../website/server/models/task';
|
||||
import common from '../../../../website/common';
|
||||
import * as analytics from '../../../../website/server/libs/analyticsService';
|
||||
import { model as Group } from '../../../../website/server/models/group';
|
||||
|
||||
// const scoreTask = common.ops.scoreTask;
|
||||
const CRON_TIMEOUT_WAIT = new Date(5 * 60 * 1000).getTime();
|
||||
const CRON_TIMEOUT_UNIT = new Date(60 * 1000).getTime();
|
||||
|
||||
const pathToCronLib = '../../../../website/server/libs/cron';
|
||||
|
||||
@@ -1200,7 +1209,7 @@ describe('cron', async () => {
|
||||
it('increments perfect day achievement if all (at least 1) due dailies were completed', async () => {
|
||||
daysMissed = 1;
|
||||
tasksByType.dailys[0].completed = true;
|
||||
tasksByType.dailys[0].startDate = moment(new Date()).subtract({ days: 1 });
|
||||
tasksByType.dailys[0].isDue = true;
|
||||
|
||||
await cron({
|
||||
user, tasksByType, daysMissed, analytics,
|
||||
@@ -1212,7 +1221,7 @@ describe('cron', async () => {
|
||||
it('does not increment perfect day achievement if no due dailies', async () => {
|
||||
daysMissed = 1;
|
||||
tasksByType.dailys[0].completed = true;
|
||||
tasksByType.dailys[0].startDate = moment(new Date()).add({ days: 1 });
|
||||
tasksByType.dailys[0].isDue = false;
|
||||
|
||||
await cron({
|
||||
user, tasksByType, daysMissed, analytics,
|
||||
@@ -1224,7 +1233,7 @@ describe('cron', async () => {
|
||||
it('gives perfect day buff if all (at least 1) due dailies were completed', async () => {
|
||||
daysMissed = 1;
|
||||
tasksByType.dailys[0].completed = true;
|
||||
tasksByType.dailys[0].startDate = moment(new Date()).subtract({ days: 1 });
|
||||
tasksByType.dailys[0].isDue = true;
|
||||
|
||||
const previousBuffs = user.stats.buffs.toObject();
|
||||
|
||||
@@ -1242,7 +1251,7 @@ describe('cron', async () => {
|
||||
user.preferences.sleep = true;
|
||||
daysMissed = 1;
|
||||
tasksByType.dailys[0].completed = true;
|
||||
tasksByType.dailys[0].startDate = moment(new Date()).subtract({ days: 1 });
|
||||
tasksByType.dailys[0].isDue = true;
|
||||
|
||||
const previousBuffs = user.stats.buffs.toObject();
|
||||
|
||||
@@ -1259,7 +1268,7 @@ describe('cron', async () => {
|
||||
it('clears buffs if user does not have a perfect day (no due dailys)', async () => {
|
||||
daysMissed = 1;
|
||||
tasksByType.dailys[0].completed = true;
|
||||
tasksByType.dailys[0].startDate = moment(new Date()).add({ days: 1 });
|
||||
tasksByType.dailys[0].isDue = false;
|
||||
|
||||
user.stats.buffs = {
|
||||
str: 1,
|
||||
@@ -1488,78 +1497,6 @@ describe('cron', async () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('notifications', async () => {
|
||||
it('adds a user notification', async () => {
|
||||
const mpBefore = user.stats.mp;
|
||||
tasksByType.dailys[0].completed = true;
|
||||
|
||||
const statsComputedRes = common.statsComputed(user);
|
||||
const stubbedStatsComputed = sinon.stub(common, 'statsComputed');
|
||||
stubbedStatsComputed.returns(Object.assign(statsComputedRes, { maxMP: 100 }));
|
||||
|
||||
daysMissed = 1;
|
||||
const hpBefore = user.stats.hp;
|
||||
tasksByType.dailys[0].startDate = moment(new Date()).subtract({ days: 1 });
|
||||
|
||||
await cron({
|
||||
user, tasksByType, daysMissed, analytics,
|
||||
});
|
||||
|
||||
expect(user.notifications.length).to.be.greaterThan(0);
|
||||
expect(user.notifications[1].type).to.equal('CRON');
|
||||
expect(user.notifications[1].data).to.eql({
|
||||
hp: user.stats.hp - hpBefore,
|
||||
mp: user.stats.mp - mpBefore,
|
||||
});
|
||||
|
||||
common.statsComputed.restore();
|
||||
});
|
||||
|
||||
it('condenses multiple notifications into one', async () => {
|
||||
const mpBefore1 = user.stats.mp;
|
||||
tasksByType.dailys[0].completed = true;
|
||||
|
||||
const statsComputedRes = common.statsComputed(user);
|
||||
const stubbedStatsComputed = sinon.stub(common, 'statsComputed');
|
||||
stubbedStatsComputed.returns(Object.assign(statsComputedRes, { maxMP: 100 }));
|
||||
|
||||
daysMissed = 1;
|
||||
const hpBefore1 = user.stats.hp;
|
||||
tasksByType.dailys[0].startDate = moment(new Date()).subtract({ days: 1 });
|
||||
|
||||
await cron({
|
||||
user, tasksByType, daysMissed, analytics,
|
||||
});
|
||||
|
||||
expect(user.notifications.length).to.be.greaterThan(0);
|
||||
expect(user.notifications[1].type).to.equal('CRON');
|
||||
expect(user.notifications[1].data).to.eql({
|
||||
hp: user.stats.hp - hpBefore1,
|
||||
mp: user.stats.mp - mpBefore1,
|
||||
});
|
||||
|
||||
const notifsBefore2 = user.notifications.length;
|
||||
const hpBefore2 = user.stats.hp;
|
||||
const mpBefore2 = user.stats.mp;
|
||||
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
|
||||
await cron({
|
||||
user, tasksByType, daysMissed, analytics,
|
||||
});
|
||||
|
||||
expect(user.notifications.length - notifsBefore2).to.equal(0);
|
||||
expect(user.notifications[0].type).to.not.equal('CRON');
|
||||
expect(user.notifications[1].type).to.equal('CRON');
|
||||
expect(user.notifications[1].data).to.eql({
|
||||
hp: user.stats.hp - hpBefore2 - (hpBefore2 - hpBefore1),
|
||||
mp: user.stats.mp - mpBefore2 - (mpBefore2 - mpBefore1),
|
||||
});
|
||||
expect(user.notifications[0].type).to.not.equal('CRON');
|
||||
common.statsComputed.restore();
|
||||
});
|
||||
});
|
||||
|
||||
describe('private messages', async () => {
|
||||
let lastMessageId;
|
||||
|
||||
@@ -1606,7 +1543,7 @@ describe('cron', async () => {
|
||||
await cron({
|
||||
user, tasksByType, daysMissed, analytics,
|
||||
});
|
||||
expect(user.notifications.length).to.be.greaterThan(1);
|
||||
expect(user.notifications.length).to.eql(1);
|
||||
expect(user.notifications[0].type).to.eql('LOGIN_INCENTIVE');
|
||||
});
|
||||
|
||||
@@ -1820,64 +1757,258 @@ describe('cron', async () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('recoverCron', async () => {
|
||||
let locals; let status; let
|
||||
execStub;
|
||||
describe('cron wrapper', () => {
|
||||
let res; let
|
||||
req;
|
||||
let user;
|
||||
|
||||
beforeEach(async () => {
|
||||
execStub = sandbox.stub();
|
||||
sandbox.stub(User, 'findOne').returns({ exec: execStub });
|
||||
|
||||
status = { times: 0 };
|
||||
locals = {
|
||||
user: new User({
|
||||
auth: {
|
||||
local: {
|
||||
username: 'username',
|
||||
lowerCaseUsername: 'username',
|
||||
email: 'email@example.com',
|
||||
salt: 'salt',
|
||||
hashed_password: 'hashed_password', // eslint-disable-line camelcase
|
||||
},
|
||||
},
|
||||
}),
|
||||
};
|
||||
res = generateRes();
|
||||
req = generateReq();
|
||||
user = await res.locals.user.save();
|
||||
res.analytics = analytics;
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
afterEach(() => {
|
||||
sandbox.restore();
|
||||
});
|
||||
|
||||
it('throws an error if user cannot be found', async () => {
|
||||
execStub.returns(Promise.resolve(null));
|
||||
it('calls next when user is not attached', async () => {
|
||||
res.locals.user = null;
|
||||
await cronWrapper(req, res);
|
||||
});
|
||||
|
||||
it('calls next when days have not been missed', async () => {
|
||||
await cronWrapper(req, res);
|
||||
});
|
||||
|
||||
it('should clear todos older than 30 days for free users', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const task = generateTodo(user);
|
||||
task.dateCompleted = moment(new Date()).subtract({ days: 31 });
|
||||
task.completed = true;
|
||||
await task.save();
|
||||
await user.save();
|
||||
|
||||
await cronWrapper(req, res);
|
||||
const taskRes = await Tasks.Task.findOne({ _id: task._id });
|
||||
expect(taskRes).to.not.exist;
|
||||
});
|
||||
|
||||
it('should not clear todos older than 30 days for subscribed users', async () => {
|
||||
user.purchased.plan.customerId = 'subscribedId';
|
||||
user.purchased.plan.dateUpdated = moment('012013', 'MMYYYY');
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const task = generateTodo(user);
|
||||
task.dateCompleted = moment(new Date()).subtract({ days: 31 });
|
||||
task.completed = true;
|
||||
await Promise.all([task.save(), user.save()]);
|
||||
|
||||
await cronWrapper(req, res);
|
||||
const taskRes = await Tasks.Task.findOne({ _id: task._id });
|
||||
expect(taskRes).to.exist;
|
||||
});
|
||||
|
||||
it('should clear todos older than 90 days for subscribed users', async () => {
|
||||
user.purchased.plan.customerId = 'subscribedId';
|
||||
user.purchased.plan.dateUpdated = moment('012013', 'MMYYYY');
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
|
||||
const task = generateTodo(user);
|
||||
task.dateCompleted = moment(new Date()).subtract({ days: 91 });
|
||||
task.completed = true;
|
||||
await task.save();
|
||||
await user.save();
|
||||
|
||||
await cronWrapper(req, res);
|
||||
const taskRes = await Tasks.Task.findOne({ _id: task._id });
|
||||
expect(taskRes).to.not.exist;
|
||||
});
|
||||
|
||||
it('should call next if user was not modified after cron', async () => {
|
||||
const hpBefore = user.stats.hp;
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
await user.save();
|
||||
|
||||
await cronWrapper(req, res);
|
||||
expect(hpBefore).to.equal(user.stats.hp);
|
||||
});
|
||||
|
||||
it('runs cron if previous cron was incomplete', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 1 });
|
||||
user.auth.timestamps.loggedin = moment(new Date()).subtract({ days: 4 });
|
||||
const now = new Date();
|
||||
await user.save();
|
||||
|
||||
await cronWrapper(req, res);
|
||||
expect(moment(now).isSame(user.lastCron, 'day'));
|
||||
expect(moment(now).isSame(user.auth.timestamps.loggedin, 'day'));
|
||||
});
|
||||
|
||||
it('updates user.auth.timestamps.loggedin and lastCron', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const now = new Date();
|
||||
await user.save();
|
||||
|
||||
await cronWrapper(req, res);
|
||||
expect(moment(now).isSame(user.lastCron, 'day'));
|
||||
expect(moment(now).isSame(user.auth.timestamps.loggedin, 'day'));
|
||||
});
|
||||
|
||||
it('does damage for missing dailies', async () => {
|
||||
const hpBefore = user.stats.hp;
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const daily = generateDaily(user);
|
||||
daily.startDate = moment(new Date()).subtract({ days: 2 });
|
||||
await daily.save();
|
||||
await user.save();
|
||||
|
||||
await cronWrapper(req, res);
|
||||
const updatedUser = await User.findOne({ _id: user._id });
|
||||
expect(updatedUser.stats.hp).to.be.lessThan(hpBefore);
|
||||
});
|
||||
|
||||
it('updates tasks', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const todo = generateTodo(user);
|
||||
const todoValueBefore = todo.value;
|
||||
await Promise.all([todo.save(), user.save()]);
|
||||
|
||||
await cronWrapper(req, res);
|
||||
const todoFound = await Tasks.Task.findOne({ _id: todo._id });
|
||||
expect(todoFound.value).to.be.lessThan(todoValueBefore);
|
||||
});
|
||||
|
||||
it('updates large number of tasks', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const todo = generateTodo(user);
|
||||
const todoValueBefore = todo.value;
|
||||
const start = new Date();
|
||||
const saves = [todo.save(), user.save()];
|
||||
for (let i = 0; i < 200; i += 1) {
|
||||
const newTodo = generateTodo(user);
|
||||
newTodo.value = i;
|
||||
saves.push(newTodo.save());
|
||||
}
|
||||
await Promise.all(saves);
|
||||
|
||||
await cronWrapper(req, res);
|
||||
const duration = new Date() - start;
|
||||
expect(duration).to.be.lessThan(1000);
|
||||
const todoFound = await Tasks.Task.findOne({ _id: todo._id });
|
||||
expect(moment(start).isSame(user.lastCron, 'day'));
|
||||
expect(moment(start).isSame(user.auth.timestamps.loggedin, 'day'));
|
||||
expect(todoFound.value).to.be.lessThan(todoValueBefore);
|
||||
});
|
||||
|
||||
it('fails entire cron if one task is failing', async () => {
|
||||
const lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
user.lastCron = lastCron;
|
||||
const todo = generateTodo(user);
|
||||
const todoValueBefore = todo.value;
|
||||
const badTodo = generateTodo(user);
|
||||
badTodo.text = 'bad todo';
|
||||
badTodo.attribute = 'bad';
|
||||
await Promise.all([badTodo.save({ validateBeforeSave: false }), todo.save(), user.save()]);
|
||||
|
||||
try {
|
||||
await recoverCron(status, locals);
|
||||
throw new Error('no exception when user cannot be found');
|
||||
await cronWrapper(req, res);
|
||||
} catch (err) {
|
||||
expect(err.message).to.eql(`User ${locals.user._id} not found while recovering.`);
|
||||
expect(err).to.exist;
|
||||
}
|
||||
const todoFound = await Tasks.Task.findOne({ _id: todo._id });
|
||||
expect(moment(lastCron).isSame(user.lastCron, 'day'));
|
||||
expect(todoFound.value).to.be.equal(todoValueBefore);
|
||||
});
|
||||
|
||||
it('applies quest progress', async () => {
|
||||
const hpBefore = user.stats.hp;
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const daily = generateDaily(user);
|
||||
daily.startDate = moment(new Date()).subtract({ days: 2 });
|
||||
await daily.save();
|
||||
|
||||
const questKey = 'dilatory';
|
||||
user.party.quest.key = questKey;
|
||||
|
||||
const party = new Group({
|
||||
type: 'party',
|
||||
name: generateUUID(),
|
||||
leader: user._id,
|
||||
});
|
||||
party.quest.members[user._id] = true;
|
||||
party.quest.key = questKey;
|
||||
await party.save();
|
||||
|
||||
user.party._id = party._id;
|
||||
await user.save();
|
||||
|
||||
party.startQuest(user);
|
||||
|
||||
await cronWrapper(req, res);
|
||||
const updatedUser = await User.findOne({ _id: user._id });
|
||||
expect(updatedUser.stats.hp).to.be.lessThan(hpBefore);
|
||||
});
|
||||
|
||||
it('cronSignature less than 5 minutes ago should error', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const now = new Date();
|
||||
await User.updateOne({
|
||||
_id: user._id,
|
||||
}, {
|
||||
$set: {
|
||||
_cronSignature: now.getTime() - CRON_TIMEOUT_WAIT + CRON_TIMEOUT_UNIT,
|
||||
},
|
||||
}).exec();
|
||||
await user.save();
|
||||
try {
|
||||
await cronWrapper(req, res);
|
||||
} catch (err) {
|
||||
expect(err).to.exist;
|
||||
}
|
||||
});
|
||||
|
||||
it('increases status.times count and reruns up to 4 times', async () => {
|
||||
execStub.returns(Promise.resolve({ _cronSignature: 'RUNNING_CRON' }));
|
||||
execStub.onCall(4).returns(Promise.resolve({ _cronSignature: 'NOT_RUNNING' }));
|
||||
it('cronSignature longer than an hour ago should allow cron', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const now = new Date();
|
||||
await User.updateOne({
|
||||
_id: user._id,
|
||||
}, {
|
||||
$set: {
|
||||
_cronSignature: now.getTime() - CRON_TIMEOUT_WAIT - CRON_TIMEOUT_UNIT,
|
||||
},
|
||||
}).exec();
|
||||
await user.save();
|
||||
|
||||
await recoverCron(status, locals);
|
||||
|
||||
expect(status.times).to.eql(4);
|
||||
expect(locals.user).to.eql({ _cronSignature: 'NOT_RUNNING' });
|
||||
await cronWrapper(req, res);
|
||||
expect(moment(now).isSame(user.auth.timestamps.loggedin, 'day'));
|
||||
expect(user._cronSignature).to.be.equal('NOT_RUNNING');
|
||||
});
|
||||
|
||||
it('throws an error if recoverCron runs 5 times', async () => {
|
||||
execStub.returns(Promise.resolve({ _cronSignature: 'RUNNING_CRON' }));
|
||||
it('cron should not run more than once', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
await user.save();
|
||||
|
||||
try {
|
||||
await recoverCron(status, locals);
|
||||
throw new Error('no exception when recoverCron runs 5 times');
|
||||
} catch (err) {
|
||||
expect(status.times).to.eql(5);
|
||||
expect(err.message).to.eql(`Impossible to recover from cron for user ${locals.user._id}.`);
|
||||
}
|
||||
const result = await Promise.allSettled([
|
||||
cronWrapper(req, res),
|
||||
cronWrapper(req, res),
|
||||
new Promise((resolve, reject) => {
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
const runResult = await cronWrapper(req, res);
|
||||
if (runResult !== null) {
|
||||
reject(new Error('cron ran more than once'));
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}
|
||||
}, 200);
|
||||
}),
|
||||
]);
|
||||
|
||||
expect(result.filter(r => r.status === 'fulfilled')).to.have.lengthOf(2);
|
||||
expect(result.filter(r => r.status === 'rejected')).to.have.lengthOf(1);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -171,23 +171,23 @@ describe('emails', () => {
|
||||
expect(got.post).not.to.be.called;
|
||||
});
|
||||
|
||||
it('throws error when mail target is only a string', () => {
|
||||
it('throws error when mail target is only a string', async () => {
|
||||
const emailType = 'an email type';
|
||||
const mailingInfo = 'my email';
|
||||
|
||||
expect(sendTxn(mailingInfo, emailType)).to.throw;
|
||||
await expect(sendTxn(mailingInfo, emailType)).to.be.rejectedWith('Argument Error mailingInfoArray: does not contain email or _id');
|
||||
});
|
||||
|
||||
it('throws error when mail target has no _id or email', () => {
|
||||
it('throws error when mail target has no _id or email', async () => {
|
||||
const emailType = 'an email type';
|
||||
const mailingInfo = {
|
||||
|
||||
};
|
||||
|
||||
expect(sendTxn(mailingInfo, emailType)).to.throw;
|
||||
await expect(sendTxn(mailingInfo, emailType)).to.be.rejectedWith('Argument Error mailingInfoArray: does not contain email or _id');
|
||||
});
|
||||
|
||||
it('throws error when variables not an array', () => {
|
||||
it('throws error when variables not an array', async () => {
|
||||
const emailType = 'an email type';
|
||||
const mailingInfo = {
|
||||
name: 'my name',
|
||||
@@ -195,9 +195,10 @@ describe('emails', () => {
|
||||
};
|
||||
const variables = {};
|
||||
|
||||
expect(sendTxn(mailingInfo, emailType, variables)).to.throw;
|
||||
await expect(sendTxn(mailingInfo, emailType, variables)).to.be.rejectedWith('Argument Error variables: is not an array');
|
||||
});
|
||||
it('throws error when variables array not contain name/content', () => {
|
||||
|
||||
it('throws error when variables array not contain name/content', async () => {
|
||||
const emailType = 'an email type';
|
||||
const mailingInfo = {
|
||||
name: 'my name',
|
||||
@@ -209,8 +210,9 @@ describe('emails', () => {
|
||||
},
|
||||
];
|
||||
|
||||
expect(sendTxn(mailingInfo, emailType, variables)).to.throw;
|
||||
await expect(sendTxn(mailingInfo, emailType, variables)).to.be.rejectedWith('Argument Error variables: does not contain name or content');
|
||||
});
|
||||
|
||||
it('throws no error when variables array contain name but no content', () => {
|
||||
const emailType = 'an email type';
|
||||
const mailingInfo = {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import os from 'os';
|
||||
import nconf from 'nconf';
|
||||
import requireAgain from 'require-again';
|
||||
|
||||
const pathToMongoLib = '../../../../website/server/libs/mongodb';
|
||||
@@ -29,22 +28,4 @@ describe('mongodb', () => {
|
||||
expect(string).to.equal('mongodb://hostname:3030');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getDefaultConnectionOptions', () => {
|
||||
it('returns development config when IS_PROD is false', () => {
|
||||
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(false);
|
||||
const mongoLibOverride = requireAgain(pathToMongoLib);
|
||||
|
||||
const options = mongoLibOverride.getDefaultConnectionOptions();
|
||||
expect(options).to.have.all.keys(['useNewUrlParser', 'useUnifiedTopology']);
|
||||
});
|
||||
|
||||
it('returns production config when IS_PROD is true', () => {
|
||||
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
|
||||
const mongoLibOverride = requireAgain(pathToMongoLib);
|
||||
|
||||
const options = mongoLibOverride.getDefaultConnectionOptions();
|
||||
expect(options).to.have.all.keys(['useNewUrlParser', 'useUnifiedTopology']);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,332 +0,0 @@
|
||||
import moment from 'moment';
|
||||
import { v4 as generateUUID } from 'uuid';
|
||||
import {
|
||||
generateRes,
|
||||
generateReq,
|
||||
generateTodo,
|
||||
generateDaily,
|
||||
} from '../../../helpers/api-unit.helper';
|
||||
import cronMiddleware from '../../../../website/server/middlewares/cron';
|
||||
import { model as User } from '../../../../website/server/models/user';
|
||||
import { model as Group } from '../../../../website/server/models/group';
|
||||
import * as Tasks from '../../../../website/server/models/task';
|
||||
import * as analyticsService from '../../../../website/server/libs/analyticsService';
|
||||
import * as cronLib from '../../../../website/server/libs/cron';
|
||||
|
||||
const CRON_TIMEOUT_WAIT = new Date(60 * 60 * 1000).getTime();
|
||||
const CRON_TIMEOUT_UNIT = new Date(60 * 1000).getTime();
|
||||
|
||||
describe('cron middleware', () => {
|
||||
let res; let
|
||||
req;
|
||||
let user;
|
||||
|
||||
beforeEach(async () => {
|
||||
res = generateRes();
|
||||
req = generateReq();
|
||||
user = await res.locals.user.save();
|
||||
res.analytics = analyticsService;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
sandbox.restore();
|
||||
});
|
||||
|
||||
it('calls next when user is not attached', done => {
|
||||
res.locals.user = null;
|
||||
cronMiddleware(req, res, done);
|
||||
});
|
||||
|
||||
it('calls next when days have not been missed', done => {
|
||||
cronMiddleware(req, res, done);
|
||||
});
|
||||
|
||||
it('should clear todos older than 30 days for free users', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const task = generateTodo(user);
|
||||
task.dateCompleted = moment(new Date()).subtract({ days: 31 });
|
||||
task.completed = true;
|
||||
await task.save();
|
||||
await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
|
||||
Tasks.Task.findOne({ _id: task }).then(foundTask => {
|
||||
expect(foundTask).to.not.exist;
|
||||
resolve();
|
||||
});
|
||||
|
||||
return null;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should not clear todos older than 30 days for subscribed users', async () => {
|
||||
user.purchased.plan.customerId = 'subscribedId';
|
||||
user.purchased.plan.dateUpdated = moment('012013', 'MMYYYY');
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const task = generateTodo(user);
|
||||
task.dateCompleted = moment(new Date()).subtract({ days: 31 });
|
||||
task.completed = true;
|
||||
await task.save();
|
||||
await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
Tasks.Task.findOne({ _id: task }).then(foundTask => {
|
||||
expect(foundTask).to.exist;
|
||||
return resolve();
|
||||
});
|
||||
return null;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should clear todos older than 90 days for subscribed users', async () => {
|
||||
user.purchased.plan.customerId = 'subscribedId';
|
||||
user.purchased.plan.dateUpdated = moment('012013', 'MMYYYY');
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
|
||||
const task = generateTodo(user);
|
||||
task.dateCompleted = moment(new Date()).subtract({ days: 91 });
|
||||
task.completed = true;
|
||||
await task.save();
|
||||
await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
Tasks.Task.findOne({ _id: task }).then(foundTask => {
|
||||
expect(foundTask).to.not.exist;
|
||||
return resolve();
|
||||
});
|
||||
return null;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should call next if user was not modified after cron', async () => {
|
||||
const hpBefore = user.stats.hp;
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
expect(hpBefore).to.equal(user.stats.hp);
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('runs cron if previous cron was incomplete', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 1 });
|
||||
user.auth.timestamps.loggedin = moment(new Date()).subtract({ days: 4 });
|
||||
const now = new Date();
|
||||
await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
expect(moment(now).isSame(user.lastCron, 'day'));
|
||||
expect(moment(now).isSame(user.auth.timestamps.loggedin, 'day'));
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('updates user.auth.timestamps.loggedin and lastCron', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const now = new Date();
|
||||
await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
expect(moment(now).isSame(user.lastCron, 'day'));
|
||||
expect(moment(now).isSame(user.auth.timestamps.loggedin, 'day'));
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('does damage for missing dailies', async () => {
|
||||
const hpBefore = user.stats.hp;
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const daily = generateDaily(user);
|
||||
daily.startDate = moment(new Date()).subtract({ days: 2 });
|
||||
await daily.save();
|
||||
await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
return User.findOne({ _id: user._id }).then(updatedUser => {
|
||||
expect(updatedUser.stats.hp).to.be.lessThan(hpBefore);
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('updates tasks', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const todo = generateTodo(user);
|
||||
const todoValueBefore = todo.value;
|
||||
await Promise.all([todo.save(), user.save()]);
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
return Tasks.Task.findOne({ _id: todo._id }).then(todoFound => {
|
||||
expect(todoFound.value).to.be.lessThan(todoValueBefore);
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('applies quest progress', async () => {
|
||||
const hpBefore = user.stats.hp;
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const daily = generateDaily(user);
|
||||
daily.startDate = moment(new Date()).subtract({ days: 2 });
|
||||
await daily.save();
|
||||
|
||||
const questKey = 'dilatory';
|
||||
user.party.quest.key = questKey;
|
||||
|
||||
const party = new Group({
|
||||
type: 'party',
|
||||
name: generateUUID(),
|
||||
leader: user._id,
|
||||
});
|
||||
party.quest.members[user._id] = true;
|
||||
party.quest.key = questKey;
|
||||
await party.save();
|
||||
|
||||
user.party._id = party._id;
|
||||
await user.save();
|
||||
|
||||
party.startQuest(user);
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
return User.findOne({ _id: user._id }).then(updatedUser => {
|
||||
expect(updatedUser.stats.hp).to.be.lessThan(hpBefore);
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('recovers from failed cron and does not error when user is already cronning', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
await user.save();
|
||||
|
||||
const updatedUser = user.toObject();
|
||||
updatedUser.matchedCount = 0;
|
||||
|
||||
sandbox.spy(cronLib, 'recoverCron');
|
||||
|
||||
sandbox.stub(User, 'updateOne')
|
||||
.withArgs({
|
||||
_id: user._id,
|
||||
$or: [
|
||||
{ _cronSignature: 'NOT_RUNNING' },
|
||||
{ _cronSignature: { $lt: sinon.match.number } },
|
||||
],
|
||||
})
|
||||
.returns({
|
||||
exec () {
|
||||
return Promise.resolve(updatedUser);
|
||||
},
|
||||
});
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
expect(cronLib.recoverCron).to.be.calledOnce;
|
||||
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('cronSignature less than an hour ago should error', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const now = new Date();
|
||||
await User.updateOne({
|
||||
_id: user._id,
|
||||
}, {
|
||||
$set: {
|
||||
_cronSignature: now.getTime() - CRON_TIMEOUT_WAIT + CRON_TIMEOUT_UNIT,
|
||||
},
|
||||
}).exec();
|
||||
await user.save();
|
||||
const expectedErrMessage = `Impossible to recover from cron for user ${user._id}.`;
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (!err) return reject(new Error('Cron should have failed.'));
|
||||
expect(err.message).to.be.equal(expectedErrMessage);
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('cronSignature longer than an hour ago should allow cron', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
const now = new Date();
|
||||
await User.updateOne({
|
||||
_id: user._id,
|
||||
}, {
|
||||
$set: {
|
||||
_cronSignature: now.getTime() - CRON_TIMEOUT_WAIT - CRON_TIMEOUT_UNIT,
|
||||
},
|
||||
}).exec();
|
||||
await user.save();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
expect(moment(now).isSame(user.auth.timestamps.loggedin, 'day'));
|
||||
expect(user._cronSignature).to.be.equal('NOT_RUNNING');
|
||||
return resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('cron should not run more than once', async () => {
|
||||
user.lastCron = moment(new Date()).subtract({ days: 2 });
|
||||
await user.save();
|
||||
|
||||
sandbox.spy(cronLib, 'cron');
|
||||
|
||||
await Promise.all([new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
return resolve();
|
||||
});
|
||||
}), new Promise((resolve, reject) => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
return resolve();
|
||||
});
|
||||
}), new Promise((resolve, reject) => {
|
||||
setTimeout(() => {
|
||||
cronMiddleware(req, res, err => {
|
||||
if (err) return reject(err);
|
||||
return resolve();
|
||||
});
|
||||
}, 400);
|
||||
}),
|
||||
]);
|
||||
|
||||
expect(cronLib.cron).to.be.calledOnce;
|
||||
});
|
||||
});
|
||||
@@ -10,6 +10,7 @@ describe('GET /heroes/:heroId', () => {
|
||||
const heroFields = [
|
||||
'_id', 'id', 'auth', 'balance', 'contributor', 'flags', 'items',
|
||||
'lastCron', 'party', 'preferences', 'profile', 'purchased', 'secret', 'achievements',
|
||||
'stats',
|
||||
];
|
||||
|
||||
before(async () => {
|
||||
|
||||
@@ -11,6 +11,7 @@ describe('PUT /heroes/:heroId', () => {
|
||||
const heroFields = [
|
||||
'_id', 'auth', 'balance', 'contributor', 'flags', 'items', 'lastCron',
|
||||
'party', 'preferences', 'profile', 'purchased', 'secret', 'permissions', 'achievements',
|
||||
'stats',
|
||||
];
|
||||
|
||||
before(async () => {
|
||||
|
||||
@@ -64,6 +64,18 @@ describe('POST /user/auth/social', () => {
|
||||
await expect(getProperty('users', response.id, 'profile.name')).to.eventually.equal('a google user');
|
||||
});
|
||||
|
||||
it('fails if allowRegister is false and user does not exist', async () => {
|
||||
await expect(api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
allowRegister: false,
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
error: 'NotFound',
|
||||
message: t('userNotFound'),
|
||||
});
|
||||
});
|
||||
|
||||
it('logs an existing user in', async () => {
|
||||
const registerResponse = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
@@ -131,6 +143,36 @@ describe('POST /user/auth/social', () => {
|
||||
expect(response.newUser).to.be.false;
|
||||
});
|
||||
|
||||
it('logs an existing user into their social account if allowRegister is false', async () => {
|
||||
const registerResponse = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
});
|
||||
expect(registerResponse.newUser).to.be.true;
|
||||
// This is important for existing accounts before the new social handling
|
||||
passport._strategies.google.userProfile.restore();
|
||||
const expectedResult = {
|
||||
id: randomGoogleId,
|
||||
displayName: 'a google user',
|
||||
emails: [
|
||||
{ value: user.auth.local.email },
|
||||
],
|
||||
};
|
||||
sandbox.stub(passport._strategies.google, 'userProfile').yields(null, expectedResult);
|
||||
|
||||
const response = await api.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
network,
|
||||
allowRegister: false,
|
||||
});
|
||||
|
||||
expect(response.apiToken).to.eql(registerResponse.apiToken);
|
||||
expect(response.id).to.eql(registerResponse.id);
|
||||
expect(response.apiToken).not.to.eql(user.apiToken);
|
||||
expect(response.id).not.to.eql(user._id);
|
||||
expect(response.newUser).to.be.false;
|
||||
});
|
||||
|
||||
it('add social auth to an existing user', async () => {
|
||||
const response = await user.post(endpoint, {
|
||||
authResponse: { access_token: randomAccessToken }, // eslint-disable-line camelcase
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
import {
|
||||
translate as t,
|
||||
requester,
|
||||
generateUser,
|
||||
} from '../../../../helpers/api-integration/v4';
|
||||
|
||||
const ENDPOINT = '/user/auth/check-email';
|
||||
|
||||
describe('POST /user/auth/check-email', () => {
|
||||
const email = 'SOmE-nEw-emAIl_2@example.net';
|
||||
let api;
|
||||
|
||||
beforeEach(async () => {
|
||||
api = requester();
|
||||
});
|
||||
|
||||
it('returns email if it is not used yet', async () => {
|
||||
const response = await api.post(ENDPOINT, {
|
||||
email,
|
||||
});
|
||||
expect(response.email).to.eql(email);
|
||||
});
|
||||
|
||||
it('rejects if email is not provided', async () => {
|
||||
await expect(api.post(ENDPOINT, {
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: 'Invalid request parameters.',
|
||||
});
|
||||
});
|
||||
|
||||
it('rejects if email is already taken', async () => {
|
||||
const user = await generateUser();
|
||||
|
||||
await expect(api.post(ENDPOINT, {
|
||||
email: user.auth.local.email,
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('emailTaken'),
|
||||
});
|
||||
});
|
||||
|
||||
it('rejects if casing is different', async () => {
|
||||
const user = await generateUser();
|
||||
|
||||
await expect(api.post(ENDPOINT, {
|
||||
email: user.auth.local.email.toUpperCase(),
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
error: 'NotAuthorized',
|
||||
message: t('emailTaken'),
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -190,7 +190,7 @@ describe('Content Schedule', () => {
|
||||
const date = new Date('2024-04-15');
|
||||
const matchers = getAllScheduleMatchingGroups(date);
|
||||
expect(matchers.premiumHatchingPotions).to.exist;
|
||||
expect(matchers.premiumHatchingPotions.items.length).to.equal(5);
|
||||
expect(matchers.premiumHatchingPotions.items.length).to.equal(6);
|
||||
expect(matchers.premiumHatchingPotions.items.indexOf('Veggie')).to.not.equal(-1);
|
||||
expect(matchers.premiumHatchingPotions.items.indexOf('Porcelain')).to.not.equal(-1);
|
||||
});
|
||||
|
||||
@@ -74,15 +74,10 @@ export async function getDocument (collectionName, doc) {
|
||||
}
|
||||
|
||||
before(done => {
|
||||
mongoose.connection.on('open', err => {
|
||||
if (err) return done(err);
|
||||
return resetHabiticaDB()
|
||||
.then(() => {
|
||||
done();
|
||||
})
|
||||
.catch(error => {
|
||||
throw error;
|
||||
});
|
||||
mongoose.connection.once('open', async err => {
|
||||
if (err) throw err;
|
||||
await resetHabiticaDB();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
height: 219px;
|
||||
}
|
||||
|
||||
.Pet_HatchingPotion_Dessert, .Pet_HatchingPotion_Veggie, .Pet_HatchingPotion_Windup, .Pet_HatchingPotion_VirtualPet, .Pet_HatchingPotion_Fungi {
|
||||
.Pet_HatchingPotion_Dessert, .Pet_HatchingPotion_Veggie, .Pet_HatchingPotion_Windup,
|
||||
.Pet_HatchingPotion_VirtualPet, .Pet_HatchingPotion_Fungi, .Pet_HatchingPotion_Cryptid {
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
@@ -47,6 +48,10 @@
|
||||
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Fungi.gif") no-repeat;
|
||||
}
|
||||
|
||||
.Pet_HatchingPotion_Cryptid {
|
||||
background: url("https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Cryptid.gif") no-repeat;
|
||||
}
|
||||
|
||||
.Gems {
|
||||
display:inline-block;
|
||||
margin-right:5px;
|
||||
|
||||
@@ -1255,6 +1255,17 @@
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.background_garden_with_flower_beds {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_garden_with_flower_beds.png');
|
||||
width: 141px;
|
||||
height: 147px;
|
||||
}
|
||||
.customize-option.background_garden_with_flower_beds {
|
||||
background-position: -25px -15px;
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_garden_with_flower_beds.png');
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.background_gazebo {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_gazebo.png');
|
||||
width: 141px;
|
||||
@@ -29914,6 +29925,16 @@
|
||||
width: 117px;
|
||||
height: 120px;
|
||||
}
|
||||
.broad_armor_armoire_sillierBlueTuxedo {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_sillierBlueTuxedo.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_armoire_sillyOrangeTuxedo {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_sillyOrangeTuxedo.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_armoire_smileyShirt {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_smileyShirt.png');
|
||||
width: 114px;
|
||||
@@ -30499,6 +30520,16 @@
|
||||
width: 117px;
|
||||
height: 120px;
|
||||
}
|
||||
.head_armoire_sillierBlueTophat {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_sillierBlueTophat.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.head_armoire_sillyOrangeTophat {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_sillyOrangeTophat.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.head_armoire_snowyTrapperHat {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_snowyTrapperHat.png');
|
||||
width: 114px;
|
||||
@@ -31429,6 +31460,16 @@
|
||||
width: 117px;
|
||||
height: 120px;
|
||||
}
|
||||
.slim_armor_armoire_sillierBlueTuxedo {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_sillierBlueTuxedo.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_armoire_sillyOrangeTuxedo {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_sillyOrangeTuxedo.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_armoire_smileyShirt {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_smileyShirt.png');
|
||||
width: 114px;
|
||||
@@ -35469,6 +35510,21 @@
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_mystery_202504 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_202504.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.head_mystery_202504 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_mystery_202504.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.slim_armor_mystery_202504 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_mystery_202504.png');
|
||||
width: 114px;
|
||||
height: 90px;
|
||||
}
|
||||
.broad_armor_mystery_301404 {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png');
|
||||
width: 90px;
|
||||
@@ -40402,6 +40458,56 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-Base.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-CottonCandyBlue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-CottonCandyBlue.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-CottonCandyPink {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-CottonCandyPink.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-Desert {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-Desert.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-Golden {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-Golden.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-Red {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-Red.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-Shade {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-Shade.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-Skeleton {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-Skeleton.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-White {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-White.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Alpaca-Zombie {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Alpaca-Zombie.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Armadillo-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Armadillo-Base.png');
|
||||
width: 105px;
|
||||
@@ -40572,6 +40678,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_BearCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_BearCub-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_BearCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_BearCub-Base.png');
|
||||
width: 105px;
|
||||
@@ -41022,6 +41133,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Cactus-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Cactus-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Cactus-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Cactus-Base.png');
|
||||
width: 105px;
|
||||
@@ -41767,6 +41883,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dragon-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dragon-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Dragon-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Dragon-Base.png');
|
||||
width: 105px;
|
||||
@@ -42212,6 +42333,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_FlyingPig-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_FlyingPig-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_FlyingPig-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_FlyingPig-Base.png');
|
||||
width: 105px;
|
||||
@@ -42507,6 +42633,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Fox-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Fox-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Fox-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Fox-Base.png');
|
||||
width: 105px;
|
||||
@@ -43237,6 +43368,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_LionCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_LionCub-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_LionCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_LionCub-Base.png');
|
||||
width: 105px;
|
||||
@@ -43807,6 +43943,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_PandaCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_PandaCub-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_PandaCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_PandaCub-Base.png');
|
||||
width: 105px;
|
||||
@@ -45107,6 +45248,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_TigerCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_TigerCub-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_TigerCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_TigerCub-Base.png');
|
||||
width: 105px;
|
||||
@@ -45712,6 +45858,11 @@
|
||||
width: 135px;
|
||||
height: 135px;
|
||||
}
|
||||
.Mount_Body_Wolf-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Wolf-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Body_Wolf-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Body_Wolf-Base.png');
|
||||
width: 135px;
|
||||
@@ -46087,6 +46238,56 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-Base.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-CottonCandyBlue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-CottonCandyBlue.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-CottonCandyPink {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-CottonCandyPink.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-Desert {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-Desert.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-Golden {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-Golden.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-Red {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-Red.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-Shade {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-Shade.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-Skeleton {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-Skeleton.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-White {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-White.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Alpaca-Zombie {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Alpaca-Zombie.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Armadillo-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Armadillo-Base.png');
|
||||
width: 105px;
|
||||
@@ -46257,6 +46458,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_BearCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_BearCub-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_BearCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_BearCub-Base.png');
|
||||
width: 105px;
|
||||
@@ -46707,6 +46913,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Cactus-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Cactus-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Cactus-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Cactus-Base.png');
|
||||
width: 105px;
|
||||
@@ -47452,6 +47663,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dragon-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dragon-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Dragon-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Dragon-Base.png');
|
||||
width: 105px;
|
||||
@@ -47897,6 +48113,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_FlyingPig-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_FlyingPig-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_FlyingPig-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_FlyingPig-Base.png');
|
||||
width: 105px;
|
||||
@@ -48192,6 +48413,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Fox-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Fox-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Fox-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Fox-Base.png');
|
||||
width: 105px;
|
||||
@@ -48922,6 +49148,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_LionCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_LionCub-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_LionCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_LionCub-Base.png');
|
||||
width: 105px;
|
||||
@@ -49492,6 +49723,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_PandaCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_PandaCub-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_PandaCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_PandaCub-Base.png');
|
||||
width: 105px;
|
||||
@@ -50792,6 +51028,11 @@
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_TigerCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_TigerCub-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_TigerCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_TigerCub-Base.png');
|
||||
width: 105px;
|
||||
@@ -51397,6 +51638,11 @@
|
||||
width: 135px;
|
||||
height: 135px;
|
||||
}
|
||||
.Mount_Head_Wolf-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Wolf-Balloon.png');
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
.Mount_Head_Wolf-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Mount_Head_Wolf-Base.png');
|
||||
width: 135px;
|
||||
@@ -51772,6 +52018,56 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-Base.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-CottonCandyBlue {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-CottonCandyBlue.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-CottonCandyPink {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-CottonCandyPink.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-Desert {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-Desert.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-Golden {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-Golden.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-Red {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-Red.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-Shade {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-Shade.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-Skeleton {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-Skeleton.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-White {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-White.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Alpaca-Zombie {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Alpaca-Zombie.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Armadillo-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Armadillo-Base.png');
|
||||
width: 81px;
|
||||
@@ -51947,6 +52243,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-BearCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-BearCub-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-BearCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-BearCub-Base.png');
|
||||
width: 81px;
|
||||
@@ -51982,6 +52283,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-BearCub-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-BearCub-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-BearCub-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-BearCub-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -52422,6 +52728,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Cactus-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Cactus-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-Cactus-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Cactus-Base.png');
|
||||
width: 81px;
|
||||
@@ -52457,6 +52768,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Cactus-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Cactus-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Cactus-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Cactus-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -53197,6 +53513,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dragon-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dragon-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-Dragon-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dragon-Base.png');
|
||||
width: 81px;
|
||||
@@ -53232,6 +53553,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dragon-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dragon-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Dragon-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Dragon-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -53677,6 +54003,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-FlyingPig-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-FlyingPig-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-FlyingPig-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-FlyingPig-Base.png');
|
||||
width: 81px;
|
||||
@@ -53712,6 +54043,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-FlyingPig-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-FlyingPig-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-FlyingPig-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-FlyingPig-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -53997,6 +54333,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Fox-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Fox-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-Fox-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Fox-Base.png');
|
||||
width: 81px;
|
||||
@@ -54032,6 +54373,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Fox-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Fox-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Fox-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Fox-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -54762,6 +55108,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-LionCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-LionCub-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-LionCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-LionCub-Base.png');
|
||||
width: 81px;
|
||||
@@ -54797,6 +55148,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-LionCub-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-LionCub-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-LionCub-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-LionCub-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -55352,6 +55708,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-PandaCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-PandaCub-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-PandaCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-PandaCub-Base.png');
|
||||
width: 81px;
|
||||
@@ -55387,6 +55748,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-PandaCub-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-PandaCub-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-PandaCub-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-PandaCub-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -56682,6 +57048,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-TigerCub-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-TigerCub-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-TigerCub-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-TigerCub-Base.png');
|
||||
width: 81px;
|
||||
@@ -56717,6 +57088,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-TigerCub-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-TigerCub-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-TigerCub-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-TigerCub-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -57312,6 +57688,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Wolf-Balloon {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Wolf-Balloon.png');
|
||||
width: 78px;
|
||||
height: 96px;
|
||||
}
|
||||
.Pet-Wolf-Base {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Wolf-Base.png');
|
||||
width: 81px;
|
||||
@@ -57347,6 +57728,11 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Wolf-Cryptid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Wolf-Cryptid.png');
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet-Wolf-Cupid {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet-Wolf-Cupid.png');
|
||||
width: 81px;
|
||||
@@ -57667,8 +58053,3 @@
|
||||
width: 81px;
|
||||
height: 99px;
|
||||
}
|
||||
.Pet_HatchingPotion_Jade {
|
||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/Pet_HatchingPotion_Jade.png');
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
top: -16px !important;
|
||||
}
|
||||
|
||||
$foolPets: Veggie, Dessert, VirtualPet, TeaShop, Fungi;
|
||||
$foolPets: Veggie, Dessert, VirtualPet, TeaShop, Fungi, Cryptid;
|
||||
|
||||
@each $foolPet in $foolPets {
|
||||
.Pet.Pet-FlyingPig-#{$foolPet} {
|
||||
|
||||
@@ -92,8 +92,6 @@ export default {
|
||||
params: { userIdentifier },
|
||||
}).catch(failure => {
|
||||
if (isNavigationFailure(failure, NavigationFailureType.duplicated)) {
|
||||
// the admin has requested that the same user be displayed again so reload the page
|
||||
// (e.g., if they changed their mind about changes they were making)
|
||||
this.$router.go();
|
||||
}
|
||||
});
|
||||
@@ -101,14 +99,16 @@ export default {
|
||||
|
||||
async loadUser (userIdentifier) {
|
||||
const id = userIdentifier || this.user._id;
|
||||
|
||||
this.$router.push({
|
||||
if (this.$router.currentRoute.name === 'adminPanelUser') {
|
||||
await this.$router.push({
|
||||
name: 'adminPanel',
|
||||
});
|
||||
}
|
||||
await this.$router.push({
|
||||
name: 'adminPanelUser',
|
||||
params: { userIdentifier: id },
|
||||
}).catch(failure => {
|
||||
if (isNavigationFailure(failure, NavigationFailureType.duplicated)) {
|
||||
// the admin has requested that the same user be displayed again so reload the page
|
||||
// (e.g., if they changed their mind about changes they were making)
|
||||
this.$router.go();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
import VueRouter from 'vue-router';
|
||||
|
||||
const { isNavigationFailure, NavigationFailureType } = VueRouter;
|
||||
|
||||
export default {
|
||||
methods: {
|
||||
async saveHero ({ hero, msg = 'User', clearData }) {
|
||||
async saveHero ({
|
||||
hero,
|
||||
msg = 'User',
|
||||
clearData,
|
||||
reloadData,
|
||||
}) {
|
||||
await this.$store.dispatch('hall:updateHero', { heroDetails: hero });
|
||||
await this.$store.dispatch('snackbars:add', {
|
||||
title: '',
|
||||
@@ -14,6 +23,20 @@ export default {
|
||||
// The admin should re-fetch the data if they need to keep working on that user.
|
||||
this.$emit('clear-data');
|
||||
this.$router.push({ name: 'adminPanel' });
|
||||
} else if (reloadData) {
|
||||
if (this.$router.currentRoute.name === 'adminPanelUser') {
|
||||
await this.$router.push({
|
||||
name: 'adminPanel',
|
||||
});
|
||||
}
|
||||
await this.$router.push({
|
||||
name: 'adminPanelUser',
|
||||
params: { userIdentifier: hero._id },
|
||||
}).catch(failure => {
|
||||
if (isNavigationFailure(failure, NavigationFailureType.duplicated)) {
|
||||
this.$router.go();
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -7,7 +7,11 @@
|
||||
>
|
||||
Could not find any matching users.
|
||||
</div>
|
||||
<loading-spinner class="mx-auto mb-2" dark-color="true" v-if="isSearching" />
|
||||
<loading-spinner
|
||||
v-if="isSearching"
|
||||
class="mx-auto mb-2"
|
||||
dark-color="true"
|
||||
/>
|
||||
<div
|
||||
v-if="users.length > 0"
|
||||
class="list-group"
|
||||
@@ -59,6 +63,10 @@ export default {
|
||||
components: {
|
||||
LoadingSpinner,
|
||||
},
|
||||
beforeRouteUpdate (to, from, next) {
|
||||
this.userIdentifier = to.params.userIdentifier;
|
||||
next();
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
userIdentifier: '',
|
||||
@@ -70,10 +78,6 @@ export default {
|
||||
computed: {
|
||||
...mapState({ user: 'user.data' }),
|
||||
},
|
||||
beforeRouteUpdate (to, from, next) {
|
||||
this.userIdentifier = to.params.userIdentifier;
|
||||
next();
|
||||
},
|
||||
watch: {
|
||||
userIdentifier () {
|
||||
this.isSearching = true;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<li
|
||||
v-for="item in achievements"
|
||||
:key="item.path"
|
||||
v-b-tooltip.hover="item.notes"
|
||||
>
|
||||
<form @submit.prevent="saveItem(item)">
|
||||
<span
|
||||
@@ -27,7 +28,7 @@
|
||||
{{ item.value }}
|
||||
</span>
|
||||
:
|
||||
{{ itemText(item) }}
|
||||
{{ item.text || item.key }} - <i> {{ item.key }} </i>
|
||||
</span>
|
||||
|
||||
<div
|
||||
@@ -68,6 +69,7 @@
|
||||
<li
|
||||
v-for="item in nestedAchievements[achievementType]"
|
||||
:key="item.path"
|
||||
v-b-tooltip.hover="item.notes"
|
||||
>
|
||||
<form @submit.prevent="saveItem(item)">
|
||||
<span
|
||||
@@ -78,7 +80,7 @@
|
||||
{{ item.value }}
|
||||
</span>
|
||||
:
|
||||
{{ itemText(item) }}
|
||||
{{ item.text || item.key }} - <i> {{ item.key }} </i>
|
||||
</span>
|
||||
|
||||
<div
|
||||
@@ -143,79 +145,28 @@ function getText (achievementItem) {
|
||||
}
|
||||
const { titleKey } = achievementItem;
|
||||
if (titleKey !== undefined) {
|
||||
return i18n.t(titleKey, 'en');
|
||||
return i18n.t(titleKey);
|
||||
}
|
||||
const { singularTitleKey } = achievementItem;
|
||||
if (singularTitleKey !== undefined) {
|
||||
return i18n.t(singularTitleKey, 'en');
|
||||
return i18n.t(singularTitleKey);
|
||||
}
|
||||
return achievementItem.key;
|
||||
}
|
||||
|
||||
function collateItemData (self) {
|
||||
const achievements = [];
|
||||
const nestedAchievements = {};
|
||||
const basePath = 'achievements';
|
||||
const ownedAchievements = self.hero.achievements;
|
||||
const allAchievements = content.achievements;
|
||||
|
||||
for (const key of Object.keys(ownedAchievements)) {
|
||||
const value = ownedAchievements[key];
|
||||
if (typeof value === 'object') {
|
||||
nestedAchievements[key] = [];
|
||||
for (const nestedKey of Object.keys(value)) {
|
||||
const valueIsInteger = self.integerTypes.includes(key);
|
||||
let text = nestedKey;
|
||||
if (allAchievements[key] && allAchievements[key][nestedKey]) {
|
||||
text = getText(allAchievements[key][nestedKey]);
|
||||
}
|
||||
nestedAchievements[key].push({
|
||||
key: nestedKey,
|
||||
text,
|
||||
achievementType: key,
|
||||
modified: false,
|
||||
path: `${basePath}.${key}.${nestedKey}`,
|
||||
value: value[nestedKey],
|
||||
valueIsInteger,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
const valueIsInteger = self.integerTypes.includes(key);
|
||||
achievements.push({
|
||||
key,
|
||||
text: getText(allAchievements[key]),
|
||||
modified: false,
|
||||
path: `${basePath}.${key}`,
|
||||
value: ownedAchievements[key],
|
||||
valueIsInteger,
|
||||
});
|
||||
}
|
||||
function getNotes (achievementItem, count) {
|
||||
if (achievementItem === undefined) {
|
||||
return '';
|
||||
}
|
||||
|
||||
for (const key of Object.keys(allAchievements)) {
|
||||
if (key !== '' && !key.endsWith('UltimateGear') && !key.endsWith('Quest')) {
|
||||
if (ownedAchievements[key] === undefined) {
|
||||
const valueIsInteger = self.integerTypes.includes(key);
|
||||
achievements.push({
|
||||
key,
|
||||
text: getText(allAchievements[key]),
|
||||
modified: false,
|
||||
path: `${basePath}.${key}`,
|
||||
value: valueIsInteger ? 0 : false,
|
||||
valueIsInteger,
|
||||
neverOwned: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
const { textKey } = achievementItem;
|
||||
if (textKey !== undefined) {
|
||||
return i18n.t(textKey, { count });
|
||||
}
|
||||
|
||||
self.achievements = achievements;
|
||||
self.nestedAchievements = nestedAchievements;
|
||||
}
|
||||
|
||||
function resetData (self) {
|
||||
collateItemData(self);
|
||||
self.nestedAchievementKeys.forEach(itemType => { self.expandItemType[itemType] = false; });
|
||||
const { singularTextKey } = achievementItem;
|
||||
if (singularTextKey !== undefined) {
|
||||
return i18n.t(singularTextKey, { count });
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
export default {
|
||||
@@ -241,26 +192,34 @@ export default {
|
||||
},
|
||||
nestedAchievementKeys: ['quests', 'ultimateGearSets'],
|
||||
integerTypes: ['streak', 'perfect', 'birthday', 'habiticaDays', 'habitSurveys', 'habitBirthdays',
|
||||
'valentine', 'congrats', 'shinySeed', 'goodluck', 'thankyou', 'seafoam', 'snowball', 'quests'],
|
||||
'valentine', 'congrats', 'shinySeed', 'goodluck', 'thankyou', 'seafoam', 'snowball', 'quests',
|
||||
'rebirths', 'rebirthLevel', 'greeting', 'spookySparkles', 'nye', 'costumeContests', 'congrats',
|
||||
'getwell', 'beastMasterCount', 'mountMasterCount', 'triadBingoCount',
|
||||
],
|
||||
cardTypes: ['greeting', 'birthday', 'valentine', 'goodluck', 'thankyou', 'greeting', 'nye',
|
||||
'congrats', 'getwell'],
|
||||
achievements: [],
|
||||
nestedAchievements: {},
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
resetCounter () {
|
||||
resetData(this);
|
||||
this.resetData();
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
resetData(this);
|
||||
this.resetData();
|
||||
},
|
||||
methods: {
|
||||
async saveItem (item) {
|
||||
// prepare the item's new value and path for being saved
|
||||
this.hero.achievementPath = item.path;
|
||||
this.hero.achievementVal = item.value;
|
||||
|
||||
await this.saveHero({ hero: this.hero, msg: item.path });
|
||||
await this.saveHero({
|
||||
hero: {
|
||||
_id: this.hero._id,
|
||||
achievementPath: item.path,
|
||||
achievementVal: item.value,
|
||||
},
|
||||
msg: item.path,
|
||||
});
|
||||
item.modified = false;
|
||||
},
|
||||
enableValueChange (item) {
|
||||
@@ -270,14 +229,84 @@ export default {
|
||||
item.value = !item.value;
|
||||
}
|
||||
},
|
||||
itemText (item) {
|
||||
if (item.key === 'npc') {
|
||||
return this.$t('npcAchievementName', { key: this.hero.backer && this.hero.backer.npc });
|
||||
resetData () {
|
||||
this.collateItemData();
|
||||
this.nestedAchievementKeys.forEach(itemType => { this.expandItemType[itemType] = false; });
|
||||
},
|
||||
collateItemData () {
|
||||
const achievements = [];
|
||||
const nestedAchievements = {};
|
||||
const basePath = 'achievements';
|
||||
const ownedAchievements = this.hero.achievements;
|
||||
const allAchievements = content.achievements;
|
||||
|
||||
const ownedKeys = Object.keys(ownedAchievements).sort();
|
||||
for (const key of ownedKeys) {
|
||||
const value = ownedAchievements[key];
|
||||
let contentKey = key;
|
||||
if (this.cardTypes.indexOf(key) !== -1) {
|
||||
contentKey += 'Cards';
|
||||
}
|
||||
if (typeof value === 'object') {
|
||||
nestedAchievements[key] = [];
|
||||
for (const nestedKey of Object.keys(value)) {
|
||||
const valueIsInteger = this.integerTypes.includes(key);
|
||||
let text = nestedKey;
|
||||
if (allAchievements[key] && allAchievements[key][contentKey]) {
|
||||
text = getText(allAchievements[key][contentKey]);
|
||||
}
|
||||
let notes = '';
|
||||
if (allAchievements[key] && allAchievements[key][contentKey]) {
|
||||
notes = getNotes(allAchievements[key][contentKey], ownedAchievements[key]);
|
||||
}
|
||||
nestedAchievements[key].push({
|
||||
key: nestedKey,
|
||||
text,
|
||||
notes,
|
||||
achievementType: key,
|
||||
modified: false,
|
||||
path: `${basePath}.${key}.${nestedKey}`,
|
||||
value: value[nestedKey],
|
||||
valueIsInteger,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
const valueIsInteger = this.integerTypes.includes(key);
|
||||
achievements.push({
|
||||
key,
|
||||
text: getText(allAchievements[contentKey]),
|
||||
notes: getNotes(allAchievements[contentKey], ownedAchievements[key]),
|
||||
modified: false,
|
||||
path: `${basePath}.${key}`,
|
||||
value: ownedAchievements[key],
|
||||
valueIsInteger,
|
||||
});
|
||||
}
|
||||
}
|
||||
if (item.key === 'kickstarter') {
|
||||
return this.$t('kickstartName', { key: this.hero.backer && this.hero.backer.tier });
|
||||
|
||||
const allKeys = Object.keys(allAchievements).sort();
|
||||
|
||||
for (const key of allKeys) {
|
||||
if (key !== '' && !key.endsWith('UltimateGear') && !key.endsWith('Quest')) {
|
||||
const ownedKey = key.replace('Cards', '');
|
||||
if (ownedAchievements[ownedKey] === undefined) {
|
||||
const valueIsInteger = this.integerTypes.includes(ownedKey);
|
||||
achievements.push({
|
||||
key: ownedKey,
|
||||
text: getText(allAchievements[key]),
|
||||
notes: getNotes(allAchievements[key], 0),
|
||||
modified: false,
|
||||
path: `${basePath}.${ownedKey}`,
|
||||
value: valueIsInteger ? 0 : false,
|
||||
valueIsInteger,
|
||||
neverOwned: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
return item.text || item.key;
|
||||
|
||||
this.achievements = achievements;
|
||||
this.nestedAchievements = nestedAchievements;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
<template>
|
||||
<form @submit.prevent="saveHero({ hero, msg: 'Contributor details', clearData: true })">
|
||||
<form
|
||||
@submit.prevent="saveHero({ hero: {
|
||||
_id: hero._id,
|
||||
contributor: hero.contributor,
|
||||
secret: hero.secret,
|
||||
permissions: hero.permissions,
|
||||
}, msg: 'Contributor details', clearData: true })"
|
||||
>
|
||||
<div class="card mt-2">
|
||||
<div class="card-header">
|
||||
<h3
|
||||
@@ -8,6 +15,12 @@
|
||||
@click="expand = !expand"
|
||||
>
|
||||
Contributor Details
|
||||
<b
|
||||
v-if="hasUnsavedChanges && !expand"
|
||||
class="text-warning float-right"
|
||||
>
|
||||
Unsaved changes
|
||||
</b>
|
||||
</h3>
|
||||
</div>
|
||||
<div
|
||||
@@ -104,13 +117,16 @@
|
||||
</div>
|
||||
<div
|
||||
v-if="expand"
|
||||
class="card-footer"
|
||||
class="card-footer d-flex align-items-center justify-content-between"
|
||||
>
|
||||
<input
|
||||
type="submit"
|
||||
value="Save"
|
||||
class="btn btn-primary mt-1"
|
||||
>
|
||||
<b v-if="hasUnsavedChanges" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -190,6 +206,10 @@ export default {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
hasUnsavedChanges: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
<template>
|
||||
<form @submit.prevent="saveHero({ hero, msg: 'Authentication' })">
|
||||
<form
|
||||
@submit.prevent="saveHero({ hero: {
|
||||
_id: hero._id,
|
||||
auth: hero.auth,
|
||||
preferences: hero.preferences,
|
||||
}, msg: 'Authentication' })"
|
||||
>
|
||||
<div class="card mt-2">
|
||||
<div class="card-header">
|
||||
<h3
|
||||
@@ -38,7 +44,10 @@
|
||||
<strong v-else>No</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="cronError" class="form-group row">
|
||||
<div
|
||||
v-if="cronError"
|
||||
class="form-group row"
|
||||
>
|
||||
<label class="col-sm-3 col-form-label">lastCron value:</label>
|
||||
<strong>{{ hero.lastCron | formatDate }}</strong>
|
||||
<br>
|
||||
@@ -53,12 +62,12 @@
|
||||
<div class="col-sm-9 col-form-label">
|
||||
<strong>
|
||||
{{ hero.auth.timestamps.loggedin | formatDate }}</strong>
|
||||
<button
|
||||
<a
|
||||
class="btn btn-warning btn-sm ml-4"
|
||||
@click="resetCron()"
|
||||
>
|
||||
Reset Cron to Yesterday
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
@@ -110,13 +119,14 @@
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">API Token</label>
|
||||
<div class="col-sm-9">
|
||||
<button
|
||||
<a
|
||||
href="#"
|
||||
value="Change API Token"
|
||||
class="btn btn-danger"
|
||||
@click="changeApiToken()"
|
||||
>
|
||||
Change API Token
|
||||
</button>
|
||||
</a>
|
||||
<div
|
||||
v-if="tokenModified"
|
||||
>
|
||||
@@ -268,13 +278,24 @@ export default {
|
||||
return false;
|
||||
},
|
||||
async changeApiToken () {
|
||||
this.hero.changeApiToken = true;
|
||||
await this.saveHero({ hero: this.hero, msg: 'API Token' });
|
||||
await this.saveHero({
|
||||
hero: {
|
||||
_id: this.hero._id,
|
||||
changeApiToken: true,
|
||||
},
|
||||
msg: 'API Token',
|
||||
});
|
||||
this.tokenModified = true;
|
||||
},
|
||||
resetCron () {
|
||||
this.hero.resetCron = true;
|
||||
this.saveHero({ hero: this.hero, msg: 'Last Cron', clearData: true });
|
||||
this.saveHero({
|
||||
hero: {
|
||||
_id: this.hero._id,
|
||||
resetCron: true,
|
||||
},
|
||||
msg: 'Last Cron',
|
||||
clearData: true,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
:
|
||||
<span :class="{ ownedItem: !item.neverOwned }">{{ item.text }}</span>
|
||||
</span>
|
||||
{{ item.set }}
|
||||
- {{ itemType }}.{{item.key}} - <i> {{ item.set }}</i>
|
||||
|
||||
<div
|
||||
v-if="item.modified"
|
||||
@@ -232,11 +232,14 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
async saveItem (item) {
|
||||
// prepare the item's new value and path for being saved
|
||||
this.hero.purchasedPath = item.path;
|
||||
this.hero.purchasedVal = item.value;
|
||||
|
||||
await this.saveHero({ hero: this.hero, msg: item.path });
|
||||
await this.saveHero({
|
||||
hero: {
|
||||
_id: this.hero._id,
|
||||
purchasedPath: item.path,
|
||||
purchasedVal: item.value,
|
||||
},
|
||||
msg: item.path,
|
||||
});
|
||||
item.modified = false;
|
||||
},
|
||||
enableValueChange (item) {
|
||||
|
||||
@@ -15,10 +15,17 @@
|
||||
<privileges-and-gems
|
||||
:hero="hero"
|
||||
:reset-counter="resetCounter"
|
||||
:has-unsaved-changes="hasUnsavedChanges([hero.flags, unModifiedHero.flags],
|
||||
[hero.auth, unModifiedHero.auth],
|
||||
[hero.balance, unModifiedHero.balance],
|
||||
[hero.secret, unModifiedHero.secret])"
|
||||
/>
|
||||
|
||||
<subscription-and-perks
|
||||
:hero="hero"
|
||||
:group-plans="groupPlans"
|
||||
:has-unsaved-changes="hasUnsavedChanges([hero.purchased.plan,
|
||||
unModifiedHero.purchased.plan])"
|
||||
/>
|
||||
|
||||
<cron-and-auth
|
||||
@@ -29,6 +36,7 @@
|
||||
<user-profile
|
||||
:hero="hero"
|
||||
:reset-counter="resetCounter"
|
||||
:has-unsaved-changes="hasUnsavedChanges([hero.profile, unModifiedHero.profile])"
|
||||
/>
|
||||
|
||||
<party-and-quest
|
||||
@@ -47,6 +55,12 @@
|
||||
:preferences="hero.preferences"
|
||||
/>
|
||||
|
||||
<stats
|
||||
:hero="hero"
|
||||
:has-unsaved-changes="hasUnsavedChanges([hero.stats, unModifiedHero.stats])"
|
||||
:reset-counter="resetCounter"
|
||||
/>
|
||||
|
||||
<items-owned
|
||||
:hero="hero"
|
||||
:reset-counter="resetCounter"
|
||||
@@ -67,8 +81,18 @@
|
||||
:reset-counter="resetCounter"
|
||||
/>
|
||||
|
||||
<user-history
|
||||
:hero="hero"
|
||||
:reset-counter="resetCounter"
|
||||
/>
|
||||
|
||||
<contributor-details
|
||||
:hero="hero"
|
||||
:hasUnsavedChanges="hasUnsavedChanges(
|
||||
[hero.contributor, unModifiedHero.contributor],
|
||||
[hero.permissions, unModifiedHero.permissions],
|
||||
[hero.secret, unModifiedHero.secret],
|
||||
)"
|
||||
:reset-counter="resetCounter"
|
||||
@clear-data="clearData"
|
||||
/>
|
||||
@@ -109,6 +133,7 @@
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import isEqualWith from 'lodash/isEqualWith';
|
||||
import BasicDetails from './basicDetails';
|
||||
import ItemsOwned from './itemsOwned';
|
||||
import CronAndAuth from './cronAndAuth';
|
||||
@@ -121,6 +146,8 @@ import Transactions from './transactions';
|
||||
import SubscriptionAndPerks from './subscriptionAndPerks';
|
||||
import CustomizationsOwned from './customizationsOwned.vue';
|
||||
import Achievements from './achievements.vue';
|
||||
import UserHistory from './userHistory.vue';
|
||||
import Stats from './stats.vue';
|
||||
|
||||
import { userStateMixin } from '../../../mixins/userState';
|
||||
|
||||
@@ -135,6 +162,8 @@ export default {
|
||||
PrivilegesAndGems,
|
||||
ContributorDetails,
|
||||
Transactions,
|
||||
UserHistory,
|
||||
Stats,
|
||||
SubscriptionAndPerks,
|
||||
UserProfile,
|
||||
Achievements,
|
||||
@@ -148,8 +177,10 @@ export default {
|
||||
return {
|
||||
userIdentifier: '',
|
||||
resetCounter: 0,
|
||||
unModifiedHero: {},
|
||||
hero: {},
|
||||
party: {},
|
||||
groupPlans: [],
|
||||
hasParty: false,
|
||||
partyNotExistError: false,
|
||||
adminHasPrivForParty: true,
|
||||
@@ -168,6 +199,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
clearData () {
|
||||
this.unModifiedHero = {};
|
||||
this.hero = {};
|
||||
},
|
||||
|
||||
@@ -176,6 +208,7 @@ export default {
|
||||
this.$emit('changeUserIdentifier', id); // change user identifier in Admin Panel's form
|
||||
|
||||
this.hero = await this.$store.dispatch('hall:getHero', { uuid: id });
|
||||
this.unModifiedHero = JSON.parse(JSON.stringify(this.hero));
|
||||
|
||||
if (!this.hero.flags) {
|
||||
this.hero.flags = {
|
||||
@@ -206,8 +239,38 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
if (this.hero.purchased.plan.planId === 'group_plan_auto') {
|
||||
try {
|
||||
this.groupPlans = await this.$store.dispatch('hall:getHeroGroupPlans', { heroId: this.hero._id });
|
||||
} catch (e) {
|
||||
this.groupPlans = [];
|
||||
}
|
||||
}
|
||||
|
||||
this.resetCounter += 1; // tell child components to reinstantiate from scratch
|
||||
},
|
||||
hasUnsavedChanges (...comparisons) {
|
||||
for (const index in comparisons) {
|
||||
if (index && comparisons[index]) {
|
||||
const objs = comparisons[index];
|
||||
const obj1 = objs[0];
|
||||
const obj2 = objs[1];
|
||||
if (!isEqualWith(obj1, obj2, (x, y) => {
|
||||
if (typeof x === 'object' && typeof y === 'object') {
|
||||
return undefined;
|
||||
}
|
||||
if (x === false && y === undefined) {
|
||||
// Special case for checkboxes
|
||||
return true;
|
||||
}
|
||||
return x == y; // eslint-disable-line eqeqeq
|
||||
})) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -269,16 +269,19 @@ export default {
|
||||
methods: {
|
||||
async saveItem (item) {
|
||||
// prepare the item's new value and path for being saved
|
||||
this.hero.itemPath = item.path;
|
||||
const toSave = {
|
||||
_id: this.hero._id,
|
||||
};
|
||||
toSave.itemPath = item.path;
|
||||
if (item.value === null) {
|
||||
this.hero.itemVal = 'null';
|
||||
toSave.itemVal = 'null';
|
||||
} else if (item.value === false) {
|
||||
this.hero.itemVal = 'false';
|
||||
toSave.itemVal = 'false';
|
||||
} else {
|
||||
this.hero.itemVal = item.value;
|
||||
toSave.itemVal = item.value;
|
||||
}
|
||||
|
||||
await this.saveHero({ hero: this.hero, msg: item.key });
|
||||
await this.saveHero({ hero: toSave, msg: item.key });
|
||||
item.neverOwned = false;
|
||||
item.modified = false;
|
||||
},
|
||||
|
||||
@@ -31,22 +31,41 @@
|
||||
v-html="questErrors"
|
||||
></p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Party:
|
||||
<span v-if="userHasParty">
|
||||
yes: party ID {{ groupPartyData._id }},
|
||||
member count {{ groupPartyData.memberCount }} (may be wrong)
|
||||
<br>
|
||||
<div v-if="userHasParty">
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Party ID
|
||||
</label>
|
||||
<strong class="col-sm-9 col-form-label">
|
||||
{{ groupPartyData._id }}
|
||||
</strong>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Estimated Member Count
|
||||
</label>
|
||||
<strong class="col-sm-9 col-form-label">
|
||||
{{ groupPartyData.memberCount }}
|
||||
</strong>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Leader
|
||||
</label>
|
||||
<strong class="col-sm-9 col-form-label">
|
||||
<span v-if="userIsPartyLeader">User is the party leader</span>
|
||||
<span v-else>Party leader is
|
||||
<router-link :to="{'name': 'userProfile', 'params': {'userId': groupPartyData.leader}}">
|
||||
{{ groupPartyData.leader }}
|
||||
</router-link>
|
||||
</span>
|
||||
</span>
|
||||
<span v-else>no</span>
|
||||
</strong>
|
||||
</div>
|
||||
<div
|
||||
class="btn btn-danger"
|
||||
@click="removeFromParty()">Remove from Party</div>
|
||||
</div>
|
||||
<strong v-else>User is not in a party.</strong>
|
||||
<div class="subsection-start">
|
||||
<p v-html="questStatus"></p>
|
||||
</div>
|
||||
@@ -56,6 +75,7 @@
|
||||
|
||||
<script>
|
||||
import * as quests from '@/../../common/script/content/quests';
|
||||
import saveHero from '../mixins/saveHero';
|
||||
|
||||
function determineQuestStatus (self) {
|
||||
// Quest data is in the user doc and party doc. They can be out of sync.
|
||||
@@ -271,6 +291,7 @@ function resetData (self) {
|
||||
}
|
||||
|
||||
export default {
|
||||
mixins: [saveHero],
|
||||
props: {
|
||||
resetCounter: {
|
||||
type: Number,
|
||||
@@ -318,5 +339,14 @@ export default {
|
||||
mounted () {
|
||||
resetData(this);
|
||||
},
|
||||
methods: {
|
||||
removeFromParty () {
|
||||
this.saveHero({
|
||||
hero: { _id: this.userId, removeFromParty: true },
|
||||
msg: 'Removed from party',
|
||||
reloadData: true,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
<template>
|
||||
<form @submit.prevent="saveHero({hero, msg: 'Privileges or Gems or Moderation Notes'})">
|
||||
<form @submit.prevent="saveHero({hero: {
|
||||
_id: hero._id,
|
||||
flags: hero.flags,
|
||||
balance: hero.balance,
|
||||
auth: hero.auth,
|
||||
secret: hero.secret,
|
||||
}, msg: 'Privileges or Gems or Moderation Notes'})">
|
||||
<div class="card mt-2">
|
||||
<div class="card-header">
|
||||
<h3
|
||||
@@ -8,6 +14,9 @@
|
||||
@click="expand = !expand"
|
||||
>
|
||||
Privileges, Gem Balance
|
||||
<b v-if="hasUnsavedChanges && !expand" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</h3>
|
||||
</div>
|
||||
<div
|
||||
@@ -117,13 +126,16 @@
|
||||
</div>
|
||||
<div
|
||||
v-if="expand"
|
||||
class="card-footer"
|
||||
class="card-footer d-flex align-items-center justify-content-between"
|
||||
>
|
||||
<input
|
||||
type="submit"
|
||||
value="Save"
|
||||
class="btn btn-primary mt-1"
|
||||
>
|
||||
<b v-if="hasUnsavedChanges" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -169,6 +181,10 @@ export default {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
hasUnsavedChanges: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
<template>
|
||||
<div class="form-group row">
|
||||
<label
|
||||
class="col-sm-3 col-form-label"
|
||||
:class="color"
|
||||
>{{ label }}</label>
|
||||
<div class="col-sm-9">
|
||||
<input
|
||||
:value="value"
|
||||
class="form-control"
|
||||
type="number"
|
||||
:step="step"
|
||||
:max="max"
|
||||
:min="min"
|
||||
@input="$emit('input', parseInt($event.target.value, 10))"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.about-row {
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.red-label {
|
||||
color: $red_100;
|
||||
}
|
||||
.blue-label {
|
||||
color: $blue_100;
|
||||
}
|
||||
.purple-label {
|
||||
color: $purple_300;
|
||||
}
|
||||
.yellow-label {
|
||||
color: $yellow_50;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
model: {
|
||||
prop: 'value',
|
||||
event: 'input',
|
||||
},
|
||||
props: {
|
||||
label: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
color: {
|
||||
type: String,
|
||||
default: 'text-label',
|
||||
},
|
||||
value: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
step: {
|
||||
type: String,
|
||||
default: 'any',
|
||||
},
|
||||
min: {
|
||||
},
|
||||
max: {
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,286 @@
|
||||
<template>
|
||||
<form @submit.prevent="submitClicked()">
|
||||
<div class="card mt-2">
|
||||
<div class="card-header">
|
||||
<h3
|
||||
class="mb-0 mt-0"
|
||||
:class="{'open': expand}"
|
||||
@click="expand = !expand"
|
||||
>
|
||||
Stats
|
||||
<b v-if="hasUnsavedChanges && !expand" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</h3>
|
||||
</div>
|
||||
<div
|
||||
v-if="expand"
|
||||
class="card-body"
|
||||
>
|
||||
<stats-row
|
||||
label="Health"
|
||||
color="red-label"
|
||||
:max="maxHealth"
|
||||
v-model="hero.stats.hp" />
|
||||
<stats-row
|
||||
label="Experience"
|
||||
color="yellow-label"
|
||||
min="0"
|
||||
:max="maxFieldHardCap"
|
||||
v-model="hero.stats.exp" />
|
||||
<stats-row
|
||||
label="Mana"
|
||||
color="blue-label"
|
||||
min="0"
|
||||
:max="maxFieldHardCap"
|
||||
v-model="hero.stats.mp" />
|
||||
<stats-row
|
||||
label="Level"
|
||||
step="1"
|
||||
min="0"
|
||||
:max="maxLevelHardCap"
|
||||
v-model="hero.stats.lvl" />
|
||||
<stats-row
|
||||
label="Gold"
|
||||
min="0"
|
||||
:max="maxFieldHardCap"
|
||||
v-model="hero.stats.gp" />
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">Selected Class</label>
|
||||
<div class="col-sm-9">
|
||||
<select
|
||||
id="selectedClass"
|
||||
v-model="hero.stats.class"
|
||||
class="form-control"
|
||||
:disabled="hero.stats.lvl < 10"
|
||||
>
|
||||
<option value="warrior">Warrior</option>
|
||||
<option value="wizard">Mage</option>
|
||||
<option value="healer">Healer</option>
|
||||
<option value="rogue">Rogue</option>
|
||||
</select>
|
||||
<small>
|
||||
When changing class, players usually need stat points deallocated as well.
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>Stat Points</h3>
|
||||
<stats-row
|
||||
label="Unallocated"
|
||||
min="0"
|
||||
step="1"
|
||||
:max="maxStatPoints"
|
||||
v-model="hero.stats.points" />
|
||||
<stats-row
|
||||
label="Strength"
|
||||
color="red-label"
|
||||
min="0"
|
||||
:max="maxStatPoints"
|
||||
step="1"
|
||||
v-model="hero.stats.str" />
|
||||
<stats-row
|
||||
label="Intelligence"
|
||||
color="blue-label"
|
||||
min="0"
|
||||
:max="maxStatPoints"
|
||||
step="1"
|
||||
v-model="hero.stats.int" />
|
||||
<stats-row
|
||||
label="Perception"
|
||||
color="purple-label"
|
||||
min="0"
|
||||
:max="maxStatPoints"
|
||||
step="1"
|
||||
v-model="hero.stats.per" />
|
||||
<stats-row
|
||||
label="Constitution"
|
||||
color="yellow-label"
|
||||
min="0"
|
||||
:max="maxStatPoints"
|
||||
step="1"
|
||||
v-model="hero.stats.con" />
|
||||
<div class="form-group row">
|
||||
<div class="offset-sm-3 col-sm-9">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-warning btn-sm"
|
||||
@click="deallocateStatPoints">
|
||||
Deallocate all stat points
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row" v-if="statPointsIncorrect">
|
||||
<div class="offset-sm-3 col-sm-9 text-danger">
|
||||
Error: Sum of stat points should equal the users level
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>Buffs</h3>
|
||||
<stats-row
|
||||
label="Strength"
|
||||
color="red-label"
|
||||
min="0"
|
||||
step="1"
|
||||
v-model="hero.stats.buffs.str" />
|
||||
<stats-row
|
||||
label="Intelligence"
|
||||
color="blue-label"
|
||||
min="0"
|
||||
step="1"
|
||||
v-model="hero.stats.buffs.int" />
|
||||
<stats-row
|
||||
label="Perception"
|
||||
color="purple-label"
|
||||
min="0"
|
||||
step="1"
|
||||
v-model="hero.stats.buffs.per" />
|
||||
<stats-row
|
||||
label="Constitution"
|
||||
color="yellow-label"
|
||||
min="0"
|
||||
step="1"
|
||||
v-model="hero.stats.buffs.con" />
|
||||
<div class="form-group row">
|
||||
<div class="offset-sm-3 col-sm-9">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-warning btn-sm"
|
||||
@click="resetBuffs">
|
||||
Reset Buffs
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="expand"
|
||||
class="card-footer d-flex align-items-center justify-content-between"
|
||||
>
|
||||
<input
|
||||
type="submit"
|
||||
value="Save"
|
||||
class="btn btn-primary mt-1"
|
||||
>
|
||||
<b v-if="hasUnsavedChanges" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.about-row {
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import {
|
||||
MAX_HEALTH,
|
||||
MAX_STAT_POINTS,
|
||||
MAX_LEVEL_HARD_CAP,
|
||||
MAX_FIELD_HARD_CAP,
|
||||
} from '@/../../common/script/constants';
|
||||
import markdownDirective from '@/directives/markdown';
|
||||
import saveHero from '../mixins/saveHero';
|
||||
|
||||
import { mapState } from '@/libs/store';
|
||||
import { userStateMixin } from '../../../mixins/userState';
|
||||
|
||||
import StatsRow from './stats-row';
|
||||
|
||||
function resetData (self) {
|
||||
self.expand = false;
|
||||
}
|
||||
|
||||
export default {
|
||||
directives: {
|
||||
markdown: markdownDirective,
|
||||
},
|
||||
components: {
|
||||
StatsRow,
|
||||
},
|
||||
mixins: [
|
||||
userStateMixin,
|
||||
saveHero,
|
||||
],
|
||||
computed: {
|
||||
...mapState({ user: 'user.data' }),
|
||||
statPointsIncorrect () {
|
||||
if (this.hero.stats.lvl >= 10) {
|
||||
return (parseInt(this.hero.stats.points, 10)
|
||||
+ parseInt(this.hero.stats.str, 10)
|
||||
+ parseInt(this.hero.stats.int, 10)
|
||||
+ parseInt(this.hero.stats.per, 10)
|
||||
+ parseInt(this.hero.stats.con, 10)
|
||||
) !== this.hero.stats.lvl;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
},
|
||||
props: {
|
||||
resetCounter: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
hero: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
hasUnsavedChanges: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
expand: false,
|
||||
maxHealth: MAX_HEALTH,
|
||||
maxStatPoints: MAX_STAT_POINTS,
|
||||
maxLevelHardCap: MAX_LEVEL_HARD_CAP,
|
||||
maxFieldHardCap: MAX_FIELD_HARD_CAP,
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
resetCounter () {
|
||||
resetData(this);
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
resetData(this);
|
||||
},
|
||||
methods: {
|
||||
submitClicked () {
|
||||
if (this.statPointsIncorrect) {
|
||||
return;
|
||||
}
|
||||
this.saveHero({
|
||||
hero: {
|
||||
_id: this.hero._id,
|
||||
stats: this.hero.stats,
|
||||
},
|
||||
msg: 'Stats',
|
||||
});
|
||||
},
|
||||
resetBuffs () {
|
||||
this.hero.stats.buffs = {
|
||||
str: 0,
|
||||
int: 0,
|
||||
per: 0,
|
||||
con: 0,
|
||||
};
|
||||
},
|
||||
deallocateStatPoints () {
|
||||
this.hero.stats.points = this.hero.stats.lvl;
|
||||
this.hero.stats.str = 0;
|
||||
this.hero.stats.int = 0;
|
||||
this.hero.stats.per = 0;
|
||||
this.hero.stats.con = 0;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,30 +1,135 @@
|
||||
<template>
|
||||
<form @submit.prevent="saveHero({ hero, msg: 'Subscription Perks' })">
|
||||
<form
|
||||
@submit.prevent="saveHero({ hero: {
|
||||
_id: hero._id,
|
||||
purchased: hero.purchased
|
||||
}, msg: 'Subscription Perks' })"
|
||||
>
|
||||
<div class="card mt-2">
|
||||
<div class="card-header">
|
||||
<div class="card-header"
|
||||
@click="expand = !expand">
|
||||
<h3
|
||||
class="mb-0 mt-0"
|
||||
:class="{ 'open': expand }"
|
||||
@click="expand = !expand"
|
||||
>
|
||||
Subscription, Monthly Perks
|
||||
<b v-if="hasUnsavedChanges && !expand" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</h3>
|
||||
</div>
|
||||
<div
|
||||
v-if="expand"
|
||||
class="card-body"
|
||||
>
|
||||
<div v-if="hero.purchased.plan.paymentMethod">
|
||||
Payment method:
|
||||
<strong>{{ hero.purchased.plan.paymentMethod }}</strong>
|
||||
<div
|
||||
class="form-group row"
|
||||
>
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Payment method:
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<input v-model="hero.purchased.plan.paymentMethod"
|
||||
class="form-control"
|
||||
type="text"
|
||||
v-if="!isRegularPaymentMethod"
|
||||
>
|
||||
<select
|
||||
v-else
|
||||
v-model="hero.purchased.plan.paymentMethod"
|
||||
class="form-control"
|
||||
type="text"
|
||||
>
|
||||
<option value="groupPlan">Group Plan</option>
|
||||
<option value="Stripe">Stripe</option>
|
||||
<option value="Apple">Apple</option>
|
||||
<option value="Google">Google</option>
|
||||
<option value="Amazon Payments">Amazon</option>
|
||||
<option value="PayPal">PayPal</option>
|
||||
<option value="Gift">Gift</option>
|
||||
<option value="">Clear out</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="hero.purchased.plan.planId">
|
||||
Payment schedule ("basic-earned" is monthly):
|
||||
<strong>{{ hero.purchased.plan.planId }}</strong>
|
||||
<div
|
||||
class="form-group row"
|
||||
>
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Payment schedule:
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<input v-model="hero.purchased.plan.planId"
|
||||
class="form-control"
|
||||
type="text"
|
||||
v-if="!isRegularPlanId"
|
||||
>
|
||||
<select
|
||||
v-else
|
||||
v-model="hero.purchased.plan.planId"
|
||||
class="form-control"
|
||||
type="text"
|
||||
>
|
||||
<option value="basic_earned">Monthly recurring</option>
|
||||
<option value="basic_3mo">3 Months recurring</option>
|
||||
<option value="basic_6mo">6 Months recurring</option>
|
||||
<option value="basic_12mo">12 Months recurring</option>
|
||||
<option value="group_monthly">Group Plan (legacy)</option>
|
||||
<option value="group_plan_auto">Group Plan (auto)</option>
|
||||
<option value="">Clear out</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="hero.purchased.plan.planId == 'group_plan_auto'">
|
||||
Group plan ID:
|
||||
<strong>{{ hero.purchased.plan.owner }}</strong>
|
||||
<div
|
||||
class="form-group row"
|
||||
>
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Customer ID:
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<input
|
||||
v-model="hero.purchased.plan.customerId"
|
||||
class="form-control"
|
||||
type="text"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row"
|
||||
v-if="hero.purchased.plan.planId === 'group_plan_auto'">
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Group Plan Memberships:
|
||||
</label>
|
||||
<div class="col-sm-9 col-form-label">
|
||||
<loading-spinner
|
||||
v-if="!groupPlans"
|
||||
dark-color=true
|
||||
/>
|
||||
<b
|
||||
v-else-if="groupPlans.length === 0"
|
||||
class="text-danger col-form-label"
|
||||
>User is not part of an active group plan!</b>
|
||||
<div
|
||||
v-else
|
||||
v-for="group in groupPlans"
|
||||
:key="group._id"
|
||||
class="card mb-2">
|
||||
<div class="card-body">
|
||||
<h6 class="card-title">{{ group.name }}
|
||||
<small class="float-right">{{ group._id }}</small>
|
||||
</h6>
|
||||
<p class="card-text">
|
||||
<strong>Leader: </strong>
|
||||
<a
|
||||
v-if="group.leader !== hero._id"
|
||||
@click="switchUser(group.leader)"
|
||||
>{{ group.leader }}</a>
|
||||
<strong v-else class="text-success">This user</strong>
|
||||
</p>
|
||||
<p class="card-text">
|
||||
<strong>Members: </strong> {{ group.memberCount }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="hero.purchased.plan.dateCreated"
|
||||
@@ -85,8 +190,18 @@
|
||||
<strong class="input-group-text">
|
||||
{{ dateFormat(hero.purchased.plan.dateTerminated) }}
|
||||
</strong>
|
||||
<a class="btn btn-danger"
|
||||
href="#"
|
||||
v-b-modal.sub_termination_modal
|
||||
v-if="!hero.purchased.plan.dateTerminated && hero.purchased.plan.planId">
|
||||
Terminate
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<small v-if="!hero.purchased.plan.dateTerminated
|
||||
&& hero.purchased.plan.planId" class="text-success">
|
||||
The subscription does not have a termination date and is active.
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
@@ -101,6 +216,35 @@
|
||||
min="0"
|
||||
step="1"
|
||||
>
|
||||
<small class="text-secondary">
|
||||
Cumulative subscribed months across subscription periods.
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Extra months:
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="input-group">
|
||||
<input
|
||||
v-model="hero.purchased.plan.extraMonths"
|
||||
class="form-control"
|
||||
type="number"
|
||||
min="0"
|
||||
step="any"
|
||||
>
|
||||
<div class="input-group-append">
|
||||
<a class="btn btn-warning"
|
||||
@click="applyExtraMonths"
|
||||
v-if="hero.purchased.plan.dateTerminated && hero.purchased.plan.extraMonths > 0">
|
||||
Apply Credit
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<small class="text-secondary">
|
||||
Additional credit that is applied if a subscription is cancelled.
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
@@ -174,10 +318,6 @@
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="hero.purchased.plan.extraMonths > 0">
|
||||
Additional credit (applied upon cancellation):
|
||||
<strong>{{ hero.purchased.plan.extraMonths }}</strong>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Mystery Items:
|
||||
@@ -199,18 +339,64 @@
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row"
|
||||
v-if="!isConvertingToGroupPlan && hero.purchased.plan.planId !== 'group_plan_auto'">
|
||||
<div class="offset-sm-3 col-sm-9">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary btn-sm"
|
||||
@click="beginGroupPlanConvert">
|
||||
Begin converting to group plan subscription
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row"
|
||||
v-if="isConvertingToGroupPlan">
|
||||
<label class="col-sm-3 col-form-label">
|
||||
Group Plan group ID:
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<input
|
||||
v-model="groupPlanID"
|
||||
class="form-control"
|
||||
type="text"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="expand"
|
||||
class="card-footer"
|
||||
class="card-footer d-flex align-items-center justify-content-between"
|
||||
>
|
||||
<input
|
||||
type="submit"
|
||||
value="Save"
|
||||
class="btn btn-primary mt-1"
|
||||
@click="saveClicked"
|
||||
>
|
||||
<b v-if="hasUnsavedChanges" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</div>
|
||||
</div>
|
||||
<b-modal id="sub_termination_modal" title="Set Termination Date">
|
||||
<p>
|
||||
You can set the sub benefit termination date to today or to the last
|
||||
day of the current billing cycle. Any extra subscription credit will
|
||||
then be processed and automatically added onto the selected date.
|
||||
</p>
|
||||
<template #modal-footer>
|
||||
<div class="mt-3 btn btn-secondary" @click="$bvModal.hide('sub_termination_modal')">
|
||||
Close
|
||||
</div>
|
||||
<div class="mt-3 btn btn-danger" @click="terminateSubscription()">
|
||||
Set to Today
|
||||
</div>
|
||||
<div class="mt-3 btn btn-danger" @click="terminateSubscription(todayWithRemainingCycle)">
|
||||
Set to {{ todayWithRemainingCycle.utc().format('MM/DD/YYYY') }}
|
||||
</div>
|
||||
</template>
|
||||
</b-modal>
|
||||
</form>
|
||||
</template>
|
||||
|
||||
@@ -231,21 +417,38 @@
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import isUUID from 'validator/es/lib/isUUID';
|
||||
import moment from 'moment';
|
||||
import { getPlanContext } from '@/../../common/script/cron';
|
||||
import saveHero from '../mixins/saveHero';
|
||||
import subscriptionBlocks from '../../../../../common/script/content/subscriptionBlocks';
|
||||
import LoadingSpinner from '@/components/ui/loadingSpinner';
|
||||
|
||||
export default {
|
||||
mixins: [saveHero],
|
||||
components: {
|
||||
LoadingSpinner,
|
||||
},
|
||||
props: {
|
||||
hero: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
hasUnsavedChanges: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
groupPlans: {
|
||||
type: Array,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
expand: false,
|
||||
isConvertingToGroupPlan: false,
|
||||
groupPlanID: '',
|
||||
subscriptionBlocks,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -255,6 +458,30 @@ export default {
|
||||
if (!currentPlanContext.nextHourglassDate) return 'N/A';
|
||||
return currentPlanContext.nextHourglassDate.format('MMMM YYYY');
|
||||
},
|
||||
isRegularPlanId () {
|
||||
return this.subscriptionBlocks[this.hero.purchased.plan.planId] !== undefined;
|
||||
},
|
||||
isRegularPaymentMethod () {
|
||||
return [
|
||||
'groupPlan',
|
||||
'Group Plan',
|
||||
'Stripe',
|
||||
'Apple',
|
||||
'Google',
|
||||
'Amazon Payments',
|
||||
'PayPal',
|
||||
'Gift',
|
||||
].includes(this.hero.purchased.plan.paymentMethod);
|
||||
},
|
||||
todayWithRemainingCycle () {
|
||||
const now = moment();
|
||||
const monthCount = subscriptionBlocks[this.hero.purchased.plan.planId].months;
|
||||
const terminationDate = moment(this.hero.purchased.plan.dateCurrentTypeCreated || new Date());
|
||||
while (terminationDate.isBefore(now)) {
|
||||
terminationDate.add(monthCount, 'months');
|
||||
}
|
||||
return terminationDate;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
dateFormat (date) {
|
||||
@@ -263,6 +490,46 @@ export default {
|
||||
}
|
||||
return moment(date).format('YYYY/MM/DD');
|
||||
},
|
||||
terminateSubscription (terminationDate) {
|
||||
if (terminationDate) {
|
||||
this.hero.purchased.plan.dateTerminated = terminationDate.utc().format();
|
||||
} else {
|
||||
this.hero.purchased.plan.dateTerminated = moment(new Date()).utc().format();
|
||||
}
|
||||
this.applyExtraMonths();
|
||||
this.saveHero({ hero: this.hero, msg: 'Subscription Termination', reloadData: true });
|
||||
},
|
||||
applyExtraMonths () {
|
||||
if (this.hero.purchased.plan.extraMonths > 0 || this.hero.purchased.plan.extraMonths !== '0') {
|
||||
const date = moment(this.hero.purchased.plan.dateTerminated || new Date());
|
||||
const extraMonths = Math.max(this.hero.purchased.plan.extraMonths, 0);
|
||||
const extraDays = Math.ceil(30.5 * extraMonths);
|
||||
this.hero.purchased.plan.dateTerminated = date.add(extraDays, 'days').utc().format();
|
||||
this.hero.purchased.plan.extraMonths = 0;
|
||||
}
|
||||
},
|
||||
beginGroupPlanConvert () {
|
||||
this.isConvertingToGroupPlan = true;
|
||||
this.hero.purchased.plan.owner = '';
|
||||
},
|
||||
saveClicked (e) {
|
||||
e.preventDefault();
|
||||
if (this.isConvertingToGroupPlan) {
|
||||
if (!isUUID(this.groupPlanID)) {
|
||||
alert('Invalid group ID');
|
||||
return;
|
||||
}
|
||||
this.hero.purchased.plan.convertToGroupPlan = this.groupPlanID;
|
||||
this.saveHero({ hero: this.hero, msg: 'Group Plan Subscription', reloadData: true });
|
||||
} else {
|
||||
this.saveHero({ hero: this.hero, msg: 'Subscription Perks', reloadData: true });
|
||||
}
|
||||
},
|
||||
switchUser (id) {
|
||||
if (window.confirm('Switch to this user?')) {
|
||||
this.$emit('changeUserIdentifier', id);
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,263 @@
|
||||
<template>
|
||||
<div class="card mt-2">
|
||||
<div class="card-header">
|
||||
<h3
|
||||
class="mb-0 mt-0"
|
||||
:class="{'open': expand}"
|
||||
@click="toggleHistoryOpen"
|
||||
>
|
||||
User History
|
||||
</h3>
|
||||
</div>
|
||||
<div
|
||||
v-if="expand"
|
||||
class="card-body"
|
||||
>
|
||||
<div>
|
||||
<div class="clearfix">
|
||||
<div class="mb-4 float-left">
|
||||
<button
|
||||
class="page-header btn-flat tab-button textCondensed"
|
||||
:class="{'active': selectedTab === 'armoire'}"
|
||||
@click="selectTab('armoire')"
|
||||
>
|
||||
Armoire
|
||||
</button>
|
||||
<button
|
||||
class="page-header btn-flat tab-button textCondensed"
|
||||
:class="{'active': selectedTab === 'questInvites'}"
|
||||
@click="selectTab('questInvites')"
|
||||
>
|
||||
Quest Invitations
|
||||
</button>
|
||||
<button
|
||||
class="page-header btn-flat tab-button textCondensed"
|
||||
:class="{'active': selectedTab === 'cron'}"
|
||||
@click="selectTab('cron')"
|
||||
>
|
||||
Cron
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div
|
||||
v-if="selectedTab === 'armoire'"
|
||||
class="col-12"
|
||||
>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th
|
||||
v-once
|
||||
>
|
||||
{{ $t('timestamp') }}
|
||||
</th>
|
||||
<th v-once>
|
||||
Client
|
||||
</th>
|
||||
<th
|
||||
v-once
|
||||
>
|
||||
Received
|
||||
</th>
|
||||
</tr>
|
||||
<tr
|
||||
v-for="entry in armoire"
|
||||
:key="entry.timestamp"
|
||||
>
|
||||
<td>
|
||||
<span
|
||||
v-b-tooltip.hover="entry.timestamp"
|
||||
>{{ entry.timestamp | timeAgo }}</span>
|
||||
</td>
|
||||
<td>{{ entry.client }}</td>
|
||||
<td>{{ entry.reward }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div
|
||||
v-if="selectedTab === 'questInvites'"
|
||||
class="col-12"
|
||||
>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th
|
||||
v-once
|
||||
>
|
||||
{{ $t('timestamp') }}
|
||||
</th>
|
||||
<th v-once>
|
||||
Client
|
||||
</th>
|
||||
<th v-once>
|
||||
Quest Key
|
||||
</th>
|
||||
<th v-once>
|
||||
Response
|
||||
</th>
|
||||
</tr>
|
||||
<tr
|
||||
v-for="entry in questInviteResponses"
|
||||
:key="entry.timestamp"
|
||||
>
|
||||
<td>
|
||||
<span
|
||||
v-b-tooltip.hover="entry.timestamp"
|
||||
>{{ entry.timestamp | timeAgo }}</span>
|
||||
</td>
|
||||
<td>{{ entry.client }}</td>
|
||||
<td>{{ entry.quest }}</td>
|
||||
<td>{{ questInviteResponseText(entry.response) }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div
|
||||
v-if="selectedTab === 'cron'"
|
||||
class="col-12"
|
||||
>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th
|
||||
v-once
|
||||
>
|
||||
{{ $t('timestamp') }}
|
||||
</th>
|
||||
<th v-once>
|
||||
Client
|
||||
</th>
|
||||
<th v-once>
|
||||
Checkin Count
|
||||
</th>
|
||||
</tr>
|
||||
<tr
|
||||
v-for="entry in cron"
|
||||
:key="entry.timestamp"
|
||||
>
|
||||
<td>
|
||||
<span
|
||||
v-b-tooltip.hover="entry.timestamp"
|
||||
>{{ entry.timestamp | timeAgo }}</span>
|
||||
</td>
|
||||
<td>{{ entry.client }}</td>
|
||||
<td>{{ entry.checkinCount }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
|
||||
.page-header.btn-flat {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.tab-button {
|
||||
height: 2rem;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
font-stretch: condensed;
|
||||
line-height: 1.33;
|
||||
letter-spacing: normal;
|
||||
color: $gray-10;
|
||||
|
||||
margin-right: 1.125rem;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 2.5rem;
|
||||
|
||||
&.active, &:hover {
|
||||
color: $purple-300;
|
||||
box-shadow: 0px -0.25rem 0px $purple-300 inset;
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import moment from 'moment';
|
||||
import { userStateMixin } from '../../../mixins/userState';
|
||||
|
||||
export default {
|
||||
filters: {
|
||||
timeAgo (value) {
|
||||
return moment(value).fromNow();
|
||||
},
|
||||
},
|
||||
mixins: [userStateMixin],
|
||||
props: {
|
||||
hero: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
resetCounter: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
expand: false,
|
||||
selectedTab: 'armoire',
|
||||
armoire: [],
|
||||
questInviteResponses: [],
|
||||
cron: [],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
resetCounter () {
|
||||
if (this.expand) {
|
||||
this.retrieveUserHistory();
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
selectTab (type) {
|
||||
this.selectedTab = type;
|
||||
},
|
||||
async toggleHistoryOpen () {
|
||||
this.expand = !this.expand;
|
||||
if (this.expand) {
|
||||
this.retrieveUserHistory();
|
||||
}
|
||||
},
|
||||
async retrieveUserHistory () {
|
||||
const history = await this.$store.dispatch('adminPanel:getUserHistory', { userIdentifier: this.hero._id });
|
||||
this.armoire = history.armoire;
|
||||
this.questInviteResponses = history.questInviteResponses;
|
||||
this.cron = history.cron;
|
||||
},
|
||||
questInviteResponseText (response) {
|
||||
if (response === 'accept') {
|
||||
return 'Accepted';
|
||||
}
|
||||
if (response === 'reject') {
|
||||
return 'Rejected';
|
||||
}
|
||||
if (response === 'leave') {
|
||||
return 'Left active quest';
|
||||
}
|
||||
if (response === 'invite') {
|
||||
return 'Accepted as owner';
|
||||
}
|
||||
if (response === 'abort') {
|
||||
return 'Aborted by owner';
|
||||
}
|
||||
if (response === 'abortByLeader') {
|
||||
return 'Aborted by party leader';
|
||||
}
|
||||
if (response === 'cancel') {
|
||||
return 'Cancelled before start';
|
||||
}
|
||||
if (response === 'cancelByLeader') {
|
||||
return 'Cancelled before start by party leader';
|
||||
}
|
||||
return response;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,5 +1,10 @@
|
||||
<template>
|
||||
<form @submit.prevent="saveHero({hero, msg: 'Users Profile'})">
|
||||
<form
|
||||
@submit.prevent="saveHero({hero: {
|
||||
_id: hero._id,
|
||||
profile: hero.profile
|
||||
}, msg: 'Users Profile'})"
|
||||
>
|
||||
<div class="card mt-2">
|
||||
<div class="card-header">
|
||||
<h3
|
||||
@@ -8,6 +13,9 @@
|
||||
@click="expand = !expand"
|
||||
>
|
||||
User Profile
|
||||
<b v-if="hasUnsavedChanges && !expand" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</h3>
|
||||
</div>
|
||||
<div
|
||||
@@ -51,13 +59,16 @@
|
||||
</div>
|
||||
<div
|
||||
v-if="expand"
|
||||
class="card-footer"
|
||||
class="card-footer d-flex align-items-center justify-content-between"
|
||||
>
|
||||
<input
|
||||
type="submit"
|
||||
value="Save"
|
||||
class="btn btn-primary mt-1"
|
||||
>
|
||||
<b v-if="hasUnsavedChanges" class="text-warning float-right">
|
||||
Unsaved changes
|
||||
</b>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -101,6 +112,10 @@ export default {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
hasUnsavedChanges: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
||||
@@ -944,24 +944,28 @@ export default {
|
||||
},
|
||||
async jumpTime (amount) {
|
||||
const response = await axios.post('/api/v4/debug/jump-time', { offsetDays: amount });
|
||||
if (amount > 0) {
|
||||
Vue.config.clock.jump(amount * 24 * 60 * 60 * 1000);
|
||||
} else {
|
||||
Vue.config.clock.setSystemTime(moment().add(amount, 'days').toDate());
|
||||
}
|
||||
this.lastTimeJump = response.data.data.time;
|
||||
this.triggerGetWorldState(true);
|
||||
setTimeout(() => {
|
||||
if (amount > 0) {
|
||||
Vue.config.clock.jump(amount * 24 * 60 * 60 * 1000);
|
||||
} else {
|
||||
Vue.config.clock.setSystemTime(moment().add(amount, 'days').toDate());
|
||||
}
|
||||
this.lastTimeJump = response.data.data.time;
|
||||
this.triggerGetWorldState(true);
|
||||
}, 1000);
|
||||
},
|
||||
async resetTime () {
|
||||
const response = await axios.post('/api/v4/debug/jump-time', { reset: true });
|
||||
const time = new Date(response.data.data.time);
|
||||
Vue.config.clock.restore();
|
||||
Vue.config.clock = sinon.useFakeTimers({
|
||||
now: time,
|
||||
shouldAdvanceTime: true,
|
||||
});
|
||||
this.lastTimeJump = response.data.data.time;
|
||||
this.triggerGetWorldState(true);
|
||||
setTimeout(() => {
|
||||
Vue.config.clock.restore();
|
||||
Vue.config.clock = sinon.useFakeTimers({
|
||||
now: time,
|
||||
shouldAdvanceTime: true,
|
||||
});
|
||||
this.lastTimeJump = response.data.data.time;
|
||||
this.triggerGetWorldState(true);
|
||||
}, 1000);
|
||||
},
|
||||
addExp () {
|
||||
// @TODO: Name these variables better
|
||||
|
||||
@@ -155,7 +155,6 @@
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import some from 'lodash/some';
|
||||
import moment from 'moment';
|
||||
import { mapState } from '@/libs/store';
|
||||
import foolPet from '../mixins/foolPet';
|
||||
@@ -203,11 +202,11 @@ export default {
|
||||
},
|
||||
width: {
|
||||
type: String,
|
||||
default: '140px',
|
||||
default: '141px',
|
||||
},
|
||||
height: {
|
||||
type: String,
|
||||
default: undefined,
|
||||
default: '147px',
|
||||
},
|
||||
centerAvatar: {
|
||||
type: Boolean,
|
||||
@@ -322,11 +321,10 @@ export default {
|
||||
return null;
|
||||
},
|
||||
petClass () {
|
||||
if (some(
|
||||
this.currentEventList,
|
||||
event => moment().isBetween(event.start, event.end) && event.aprilFools && event.aprilFools === 'Fungi',
|
||||
)) {
|
||||
return this.foolPet(this.member.items.currentPet);
|
||||
const foolEvent = this.currentEventList?.find(event => moment()
|
||||
.isBetween(event.start, event.end) && event.aprilFools);
|
||||
if (foolEvent) {
|
||||
return this.foolPet(this.member.items.currentPet, foolEvent.aprilFools);
|
||||
}
|
||||
if (this.member?.items.currentPet) return `Pet-${this.member.items.currentPet}`;
|
||||
return '';
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
>
|
||||
<div
|
||||
v-for="option in items"
|
||||
:key="option.key"
|
||||
:id="option.imageName"
|
||||
:key="option.key"
|
||||
class="outer-option-background"
|
||||
:class="{
|
||||
premium: Boolean(option.gem),
|
||||
@@ -28,15 +28,14 @@
|
||||
v-if="!option.none"
|
||||
class="sprite"
|
||||
:prefix="option.isGear ? 'shop' : 'icon'"
|
||||
:imageName="option.imageName"
|
||||
:image-name="option.imageName"
|
||||
/>
|
||||
<div
|
||||
v-else
|
||||
class="redline-outer"
|
||||
>
|
||||
<div class="redline"></div>
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
class="redline-outer"
|
||||
>
|
||||
<div class="redline"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
<avatar
|
||||
v-if="user._id !== msg.uuid && msg.uuid !== 'system'"
|
||||
class="avatar-left"
|
||||
:height="null"
|
||||
:class="{ invisible: avatarUnavailable(msg) }"
|
||||
:member="msg.userStyles || cachedProfileData[msg.uuid] || {}"
|
||||
:avatar-only="true"
|
||||
@@ -50,6 +51,7 @@
|
||||
v-if="user._id === msg.uuid"
|
||||
:class="{ invisible: avatarUnavailable(msg) }"
|
||||
:member="msg.userStyles || cachedProfileData[msg.uuid] || {}"
|
||||
:height="null"
|
||||
:avatar-only="true"
|
||||
:hide-class-badge="true"
|
||||
:override-top-padding="'14px'"
|
||||
|
||||
@@ -114,7 +114,6 @@
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import some from 'lodash/some';
|
||||
import moment from 'moment';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { mapState } from '@/libs/store';
|
||||
@@ -183,13 +182,12 @@ export default {
|
||||
return 'GreyedOut';
|
||||
},
|
||||
imageName () {
|
||||
if (this.isOwned() && some(
|
||||
this.currentEventList,
|
||||
event => moment().isBetween(event.start, event.end) && event.aprilFools && event.aprilFools === 'Fungi',
|
||||
)) {
|
||||
if (this.isSpecial()) return `stable_${this.foolPet(this.item.key)}`;
|
||||
const foolEvent = this.currentEventList?.find(event => moment()
|
||||
.isBetween(event.start, event.end) && event.aprilFools);
|
||||
if (this.isOwned() && foolEvent) {
|
||||
if (this.isSpecial()) return `stable_${this.foolPet(this.item.key, foolEvent.aprilFools)}`;
|
||||
const petString = `${this.item.eggKey}-${this.item.key}`;
|
||||
return `stable_${this.foolPet(petString)}`;
|
||||
return `stable_${this.foolPet(petString, foolEvent.aprilFools)}`;
|
||||
}
|
||||
|
||||
if (this.isOwned() || (this.mountOwned() && this.isHatchable())) {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<div
|
||||
class="svg-icon mr-1"
|
||||
:title="$t('liked')"
|
||||
v-html="icons.liked"
|
||||
v-html="likedIcon"
|
||||
></div>
|
||||
+{{ likeCount }}
|
||||
</div>
|
||||
@@ -47,7 +47,7 @@
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
&.isLiked {
|
||||
&.isLiked.currentUserLiked {
|
||||
color: $purple-200;
|
||||
font-weight: bold;
|
||||
|
||||
@@ -95,7 +95,11 @@ export default {
|
||||
}),
|
||||
};
|
||||
},
|
||||
|
||||
computed: {
|
||||
likedIcon () {
|
||||
return this.likedByCurrentUser ? this.icons.liked : this.icons.like;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
async like () {
|
||||
this.$emit('toggle-like');
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
:avatar-only="true"
|
||||
:show-weapon="true"
|
||||
:debug-mode="false"
|
||||
:height="null"
|
||||
:override-top-padding="'0'"
|
||||
:hide-class-badge="true"
|
||||
@click.native="showMemberModal(msg.uuid)"
|
||||
@@ -59,6 +60,7 @@
|
||||
v-if="user && user._id === msg.uuid"
|
||||
class="avatar-right"
|
||||
:member="user"
|
||||
:height="null"
|
||||
:avatar-only="true"
|
||||
:show-weapon="true"
|
||||
:debug-mode="false"
|
||||
|
||||
@@ -843,7 +843,6 @@ export default {
|
||||
purchasedPlanIdInfo () {
|
||||
if (!this.subscriptionBlocks[this.user.purchased.plan.planId]) {
|
||||
// @TODO: find which subs are in the common
|
||||
// console.log(this.subscriptionBlocks
|
||||
// [this.user.purchased.plan.planId]); // eslint-disable-line
|
||||
return {
|
||||
price: 0,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<div
|
||||
v-for="currency of currencies"
|
||||
:key="currency.key"
|
||||
:needed-currency-only="neededCurrencyOnly"
|
||||
class="d-flex align-items-center"
|
||||
>
|
||||
<div
|
||||
@@ -54,6 +55,9 @@ export default {
|
||||
amountNeeded: {
|
||||
type: Number,
|
||||
},
|
||||
neededCurrencyOnly: {
|
||||
type: Boolean,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
@@ -66,34 +70,34 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
currencies () {
|
||||
const currencies = [];
|
||||
currencies.push({
|
||||
const currencies = [{
|
||||
type: 'hourglasses',
|
||||
icon: this.icons.hourglasses,
|
||||
value: this.userHourglasses,
|
||||
});
|
||||
},
|
||||
|
||||
currencies.push({
|
||||
{
|
||||
type: 'gems',
|
||||
icon: this.icons.gem,
|
||||
value: this.userGems,
|
||||
});
|
||||
},
|
||||
|
||||
currencies.push({
|
||||
{
|
||||
type: 'gold',
|
||||
icon: this.icons.gold,
|
||||
value: this.userGold,
|
||||
});
|
||||
}];
|
||||
|
||||
for (const currency of currencies) {
|
||||
if (
|
||||
currency.type === this.currencyNeeded
|
||||
&& !this.enoughCurrency(this.currencyNeeded, this.amountNeeded)
|
||||
if (currency.type === this.currencyNeeded
|
||||
&& !this.enoughCurrency(this.currencyNeeded, this.amountNeeded)
|
||||
) {
|
||||
currency.notEnough = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.neededCurrencyOnly) {
|
||||
return currencies.filter(curr => curr.type === this.currencyNeeded);
|
||||
}
|
||||
return currencies;
|
||||
},
|
||||
},
|
||||
|
||||
@@ -2,54 +2,55 @@ import includes from 'lodash/includes';
|
||||
|
||||
export default {
|
||||
methods: {
|
||||
foolPet (pet) {
|
||||
foolPet (pet, prank) {
|
||||
const SPECIAL_PETS = [
|
||||
'Wolf-Veteran',
|
||||
'Wolf-Cerberus',
|
||||
'Dragon-Hydra',
|
||||
'Turkey-Base',
|
||||
'BearCub-Polar',
|
||||
'MantisShrimp-Base',
|
||||
'JackOLantern-Base',
|
||||
'Mammoth-Base',
|
||||
'Tiger-Veteran',
|
||||
'Phoenix-Base',
|
||||
'Turkey-Gilded',
|
||||
'MagicalBee-Base',
|
||||
'Lion-Veteran',
|
||||
'Gryphon-RoyalPurple',
|
||||
'JackOLantern-Ghost',
|
||||
'Jackalope-RoyalPurple',
|
||||
'Orca-Base',
|
||||
'Bear-Veteran',
|
||||
'Hippogriff-Hopeful',
|
||||
'Fox-Veteran',
|
||||
'JackOLantern-Glow',
|
||||
'Gryphon-Gryphatrice',
|
||||
'Gryphatrice-Jubilant',
|
||||
'JackOLantern-RoyalPurple',
|
||||
'BearCub-Polar',
|
||||
'Cactus-Veteran',
|
||||
'Dragon-Hydra',
|
||||
'Dragon-Veteran',
|
||||
'Fox-Veteran',
|
||||
'Gryphatrice-Jubilant',
|
||||
'Gryphon-Gryphatrice',
|
||||
'Gryphon-RoyalPurple',
|
||||
'Hippogriff-Hopeful',
|
||||
'Jackalope-RoyalPurple',
|
||||
'JackOLantern-Base',
|
||||
'JackOLantern-Ghost',
|
||||
'JackOLantern-Glow',
|
||||
'JackOLantern-RoyalPurple',
|
||||
'Lion-Veteran',
|
||||
'MagicalBee-Base',
|
||||
'Mammoth-Base',
|
||||
'MantisShrimp-Base',
|
||||
'Orca-Base',
|
||||
'Phoenix-Base',
|
||||
'Tiger-Veteran',
|
||||
'Turkey-Base',
|
||||
'Turkey-Gilded',
|
||||
'Wolf-Cerberus',
|
||||
'Wolf-Veteran',
|
||||
];
|
||||
const BASE_PETS = [
|
||||
'Wolf',
|
||||
'TigerCub',
|
||||
'PandaCub',
|
||||
'LionCub',
|
||||
'Fox',
|
||||
'FlyingPig',
|
||||
'BearCub',
|
||||
'Dragon',
|
||||
'Cactus',
|
||||
'Dragon',
|
||||
'FlyingPig',
|
||||
'Fox',
|
||||
'LionCub',
|
||||
'PandaCub',
|
||||
'TigerCub',
|
||||
'Wolf',
|
||||
];
|
||||
if (!pet) return 'Pet-TigerCub-Fungi';
|
||||
if (!pet) return `Pet-TigerCub-${prank}`;
|
||||
if (SPECIAL_PETS.indexOf(pet) !== -1) {
|
||||
return 'Pet-Dragon-Fungi';
|
||||
return `Pet-Dragon-${prank}`;
|
||||
}
|
||||
const species = pet.slice(0, pet.indexOf('-'));
|
||||
if (includes(BASE_PETS, species)) {
|
||||
return `Pet-${species}-Fungi`;
|
||||
return `Pet-${species}-${prank}`;
|
||||
}
|
||||
return 'Pet-BearCub-Fungi';
|
||||
return `Pet-BearCub-${prank}`;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
class="balance-info"
|
||||
:currency-needed="currencyNeeded"
|
||||
:amount-needed="amountNeeded"
|
||||
:neededCurrencyOnly="true"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
<your-balance
|
||||
:amount-needed="amountNeeded"
|
||||
currency-needed="gems"
|
||||
class="d-flex align-items-center"
|
||||
/>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -5,3 +5,9 @@ export async function searchUsers (store, payload) {
|
||||
const response = await axios.get(url);
|
||||
return response.data.data;
|
||||
}
|
||||
|
||||
export async function getUserHistory (store, payload) {
|
||||
const url = `/api/v4/admin/user/${payload.userIdentifier}/history`;
|
||||
const response = await axios.get(url);
|
||||
return response.data.data;
|
||||
}
|
||||
|
||||
@@ -32,3 +32,9 @@ export async function getHeroParty (store, payload) {
|
||||
const response = await axios.get(url);
|
||||
return response.data.data;
|
||||
}
|
||||
|
||||
export async function getHeroGroupPlans (store, payload) {
|
||||
const url = `/api/v4/hall/heroes/${payload.heroId}/group-plans`;
|
||||
const response = await axios.get(url);
|
||||
return response.data.data;
|
||||
}
|
||||
|
||||
@@ -897,5 +897,8 @@
|
||||
"backgrounds022025": "Set 129: Veröffentlicht im Februar 2025",
|
||||
"backgrounds032025": "SET 130: Veröffentlicht im März 2025",
|
||||
"backgroundMountainSceneWithBlossomsText": "Bergszene mit Blüten",
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Erlebe den entzückenden Anblick und Geruch einer Bergszene mit Blüten."
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Erlebe den entzückenden Anblick und Geruch einer Bergszene mit Blüten.",
|
||||
"backgroundGardenWithFlowerBedsNotes": "Genieße das Blühen des Frühlings in einem Garten mit Blumenbeeten.",
|
||||
"backgrounds0420205": "SET 131: Veröffentlicht im April 2025",
|
||||
"backgroundGardenWithFlowerBedsText": "Garten mit Blumenbeeten"
|
||||
}
|
||||
|
||||
@@ -399,5 +399,12 @@
|
||||
"questEggOtterText": "Otter",
|
||||
"questEggOtterMountText": "Otter",
|
||||
"hatchingPotionJade": "Jade",
|
||||
"questEggOtterAdjective": "Ein perfider"
|
||||
"questEggOtterAdjective": "Ein perfider",
|
||||
"questEggAlpacaText": "Alpaka",
|
||||
"questEggAlpacaMountText": "Alpaka",
|
||||
"questEggAlpacaAdjective": "ein überladenes",
|
||||
"hatchingPotionBalloon": "Ballon",
|
||||
"wackyPotionAddlNotes": "Kann nicht zum Reittier großgezogen oder für Quest-Haustier Eier benutzt werden.",
|
||||
"hatchingPotionCryptid": "Kryptisch",
|
||||
"wackyPotionNotes": "Schütte dies über ein Ei und es wird als Durchgeknalltes <%= potText(locale) %> Haustier schlüpfen."
|
||||
}
|
||||
|
||||
@@ -3287,5 +3287,31 @@
|
||||
"headSpecialSpring2025HealerText": "Plumeria Kopfschmuck",
|
||||
"headSpecialSpring2025HealerNotes": "Diese Blume symbolisiert Geburt, Liebe und Neubeginn! Sie verbreitet auch einen schönen Duft, den du genießen kannst, während du an deinen Aufgaben arbeitest. Erhöht Intelligenz um <%= int %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"headSpecialSpring2025MageText": "Fangschrecken Maske",
|
||||
"headSpecialSpring2025MageNotes": "Die Fangschrecke ist bekannt dafür, sich zu tarnen oder sich langsam zu bewegen. Wähle eine Taktik zu Hilfe für jedes einzelne Ziel, sei aber gewiss, daß du Taktiken jederzeit ändern kannst, wenn du musst. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2025 Frühlingsausrüstung."
|
||||
"headSpecialSpring2025MageNotes": "Die Fangschrecke ist bekannt dafür, sich zu tarnen oder sich langsam zu bewegen. Wähle eine Taktik zu Hilfe für jedes einzelne Ziel, sei aber gewiss, daß du Taktiken jederzeit ändern kannst, wenn du musst. Erhöht Wahrnehmung um <%= per %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"headMystery202503Text": "Jade Juggernaut Haar",
|
||||
"headMystery202503Notes": "Diese grüne Frisur passt perfekt zu einem tapferen Krieger und Verteidiger des Planeten. Gewährt keinen Attributbonus. März 2025 Abonnentengegenstand.",
|
||||
"armorArmoireSpringPetalYukataText": "Frühlingsblüten Yukata",
|
||||
"armorArmoireSpringPetalYukataNotes": "Diesen Yukata kann man perfekt zum Feiern des kommenden Frühlings anziehen. Stell sicher, daß du für ein Foto neben Kirschblüten posierst. Erhöht Ausdauer und Stärke um jeweils <%= attrs %> . Verzauberter Schrank: Frühlingsblüten Set (Gegenstand 1 von 2).",
|
||||
"shieldSpecialSpring2025RogueText": "Kristallspitzen-Flegel",
|
||||
"shieldSpecialSpring2025RogueNotes": "Du kannst den Kristall nutzen, um eine produktive Zukunft für dich weiszusagen. Nutze die Gelegenheit und spring vorwärts! Erhöht Stärke um <%= str %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"shieldSpecialSpring2025HealerText": "Plumeria Schild",
|
||||
"shieldSpecialSpring2025HealerNotes": "Du kannst dieses spezielle Blütenblatt verwenden, um Güte zu sammeln oder um negative Gedanken wegzuschnipsen. Nutze die Gelegenheit und spring vorwärts! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2025 Ausrüstung.",
|
||||
"shieldSpecialSpring2025WarriorText": "Sonnenstrahl Schild",
|
||||
"shieldSpecialSpring2025WarriorNotes": "Du kannst deine Gegner für den Moment blenden, wenn die Sonne diesen Schild genau richtig trifft. Nutze den Vorteil und spring vorwärts! Erhöht Ausdauer um <%= con %>. Limitierte Ausgabe 2025 Frühlingsausrüstung.",
|
||||
"shieldArmoireSpringPetalUchiwaNotes": "Dieser tragbare Fächer mit schönem Blütenmuster bewirkt eine leichte Brise nur für dich, wenn das Wetter wärmer wird. Erhöht Intelligenz und Wahrnehmung um jeweils <%= attrs %>. Verzauberter Schrank: Frühlingsblüten Set (Gegenstand 2 von 2).",
|
||||
"shieldArmoireSpringPetalUchiwaText": "Frühlingsblütenfächer",
|
||||
"eyewearMystery202503Text": "Jade Juggernaut Augen",
|
||||
"eyewearMystery202503Notes": "Dieser stechende Blick wird jeden Kämpfer, der es wagt, dich herauszufordern, in Panik versetzen! Gewährt keinen Attributbonus. März 2025 Abonnentengegenstand.",
|
||||
"armorMystery202504Text": "Scheues Yeti Rüstung",
|
||||
"armorMystery202504Notes": "Abscheulich? Eher anbetungswürdig! Gewährt keinen Attributbonus. April 2025 Abonnentengegenstand.",
|
||||
"armorArmoireSillyOrangeTuxedoText": "Alberner Orangen-Smoking",
|
||||
"armorArmoireSillyOrangeTuxedoNotes": "Dein eigener persönlicher Anzug des Tages. Erhöht Ausdauer um <%= con %>. Verzauberter Schrank: Lächerlicher Smoking Set (Gegenstand 1 von 2).",
|
||||
"armorArmoireSillierBlueTuxedoNotes": "Verbreite Stimmung in diesem einzigartigen Outfit. Erhöht Stärke um <%= str %>. Verzauberter Schrank: Noch Lächerlicherer Smoking Set (Gegenstand 1 von 2).",
|
||||
"armorArmoireSillierBlueTuxedoText": "Noch Lächerlicherer Blauer Smoking",
|
||||
"headMystery202504Text": "Scheues Yeti Kutte",
|
||||
"headArmoireSillyOrangeTophatText": "Alberner Orangen-Zylinder",
|
||||
"headArmoireSillyOrangeTophatNotes": "Passt gut zu einem Kürbiskuchen-Haarschnitt. Erhöht Stärke und Ausdauer um jeweils <%= attrs %>. Verzauberter Schrank: Lächerlicher Smoking Set (Gegenstand 2 von 2).",
|
||||
"headArmoireSillierBlueTophatText": "Noch Lächerlicherer Blauer Zylinder",
|
||||
"headMystery202504Notes": "Trage diese mysteriöse Visage, um unentdeckt unter den oskursten Fabelwesen der Welt zu verweilen. Gewährt keinen Attributbonus. April 2025 Abonnentengegenstand.",
|
||||
"headArmoireSillierBlueTophatNotes": "Etwas Klasse, etwas Raffinesse. Erhöht Stärke und Ausdauer um jeweils <%= attrs %>. Verzauberter Schrank: Noch Lächerlicherer Smoking Set (Gegenstand 2 von 2)."
|
||||
}
|
||||
|
||||
@@ -261,5 +261,6 @@
|
||||
"mysterySet202411": "Borstenkämpfer Set",
|
||||
"mysterySet202501": "Frostbinder-Set",
|
||||
"mysterySet202502": "Herzliches Harlekin-Set",
|
||||
"mysterySet202503": "Jade Juggernaut Set"
|
||||
"mysterySet202503": "Jade Juggernaut Set",
|
||||
"mysterySet202504": "Scheues Yeti Set"
|
||||
}
|
||||
|
||||
@@ -1019,6 +1019,10 @@
|
||||
"backgroundMountainSceneWithBlossomsText": "Mountain Scene with Blossoms",
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Take in the lovely sights and scents of a Mountain Scene with Blossoms.",
|
||||
|
||||
"backgrounds0420205": "SET 131: Released April 2025",
|
||||
"backgroundGardenWithFlowerBedsText": "Garden with Flower Beds",
|
||||
"backgroundGardenWithFlowerBedsNotes": "Enjoy the blooms of spring in a Garden with Flower Beds.",
|
||||
|
||||
"timeTravelBackgrounds": "Steampunk Backgrounds",
|
||||
"backgroundAirshipText": "Airship",
|
||||
"backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.",
|
||||
|
||||
@@ -279,6 +279,10 @@
|
||||
"questEggOtterMountText": "Otter",
|
||||
"questEggOtterAdjective": "a perfidious",
|
||||
|
||||
"questEggAlpacaText": "Alpaca",
|
||||
"questEggAlpacaMountText": "Alpaca",
|
||||
"questEggAlpacaAdjective": "an overpacked",
|
||||
|
||||
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
||||
|
||||
"hatchingPotionBase": "Base",
|
||||
@@ -345,9 +349,13 @@
|
||||
"hatchingPotionKoi": "Koi",
|
||||
"hatchingPotionGingerbread": "Gingerbread",
|
||||
"hatchingPotionJade": "Jade",
|
||||
"hatchingPotionBalloon": "Balloon",
|
||||
"hatchingPotionCryptid": "Cryptid",
|
||||
|
||||
"hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> Pet.",
|
||||
"premiumPotionUnlimitedNotes": "Not usable on Quest Pet eggs.",
|
||||
"wackyPotionNotes": "Pour this on an egg, and it will hatch as a Wacky <%= potText(locale) %> Pet.",
|
||||
"wackyPotionAddlNotes": "Cannot be raised to Mounts or used on Quest Pet eggs.",
|
||||
|
||||
"foodMeat": "Meat",
|
||||
"foodMeatThe": "the Meat",
|
||||
|
||||
@@ -1472,7 +1472,9 @@
|
||||
"armorMystery202412Notes": "A fun and fluffy look to keep you snug on a winter day. Confers no benefit. December 2024 Subscriber Item.",
|
||||
"armorMystery202502Text": "Heartfelt Harlequin Suit",
|
||||
"armorMystery202502Notes": "You’re full of kind-hearted jokes and japes from your ruffled collar to your gigantic shoes! Confers no benefit. February 2025 Subscriber Item.",
|
||||
|
||||
"armorMystery202504Text": "Elusive Yeti Armor",
|
||||
"armorMystery202504Notes": "Abominable? More like adorable! Confers no benefit. April 2025 Subscriber Item.",
|
||||
|
||||
"armorMystery301404Text": "Steampunk Suit",
|
||||
"armorMystery301404Notes": "Dapper and dashing, wot! Confers no benefit. February 3015 Subscriber Item.",
|
||||
"armorMystery301703Text": "Steampunk Peacock Gown",
|
||||
@@ -1702,6 +1704,10 @@
|
||||
"armorArmoireSnowyFluffTrimmedCoatNotes": "As the first flakes fall around you, this coat will not only keep you toasty but also help you blend in perfectly with your snowy surroundings. Glide along the ice in style! Increases Strength and Intelligence by <%= attrs %> each. Enchanted Armoire: Snowy Trapper Hat Set (Item 2 of 2).",
|
||||
"armorArmoireSpringPetalYukataText": "Spring Petal Yukata",
|
||||
"armorArmoireSpringPetalYukataNotes": "This yukata is perfect to wear to celebrate the coming of spring. Be sure to pose by cherry blossoms for a photo. Increases Constitution and Strength by <%= attrs %> each. Enchanted Armoire: Spring Petal Set (Item 1 of 2).",
|
||||
"armorArmoireSillyOrangeTuxedoText": "Silly Orange Tuxedo",
|
||||
"armorArmoireSillyOrangeTuxedoNotes": "Your own personal suit du jour. Increases Constitution by <%= con %>. Enchanted Armoire: Silly Tuxedo Set (Item 1 of 2).",
|
||||
"armorArmoireSillierBlueTuxedoText": "Sillier Blue Tuxedo",
|
||||
"armorArmoireSillierBlueTuxedoNotes": "Put out the vibe in this unique outfit. Increases Strength by <%= str %>. Enchanted Armoire: Sillier Tuxedo Set (Item 1 of 2).",
|
||||
|
||||
"headgear": "helm",
|
||||
"headgearCapitalized": "Headgear",
|
||||
@@ -2406,6 +2412,8 @@
|
||||
"headMystery202502Notes": "This jaunty little hat is sure to inspire joy in anyone who sees you! Confers no benefit. February 2025 Subscriber Item.",
|
||||
"headMystery202503Text": "Jade Juggernaut Hair",
|
||||
"headMystery202503Notes": "This verdant hairdo perfectly suits a brave warrior and defender of the planet. Confers no benefit. March 2025 Subscriber Item.",
|
||||
"headMystery202504Text": "Elusive Yeti Cowl",
|
||||
"headMystery202504Notes": "Wear this mysterious visage to dwell undetected among the world’s most obscure cyptids. Confers no benefit. April 2025 Subscriber Item.",
|
||||
|
||||
"headMystery301404Text": "Fancy Top Hat",
|
||||
"headMystery301404Notes": "A fancy top hat for the finest of gentlefolk! January 3015 Subscriber Item. Confers no benefit.",
|
||||
@@ -2615,7 +2623,11 @@
|
||||
"headArmoireSnowyTrapperHatText": "Snowy Trapper Hat",
|
||||
"headArmoireSnowyTrapperHatNotes": "Blue, frostbitten ears will be a thing of the past. Embrace cozy warmth in style! Increases Constitution and Perception by <%= attrs %> each. Enchanted Armoire: Snowy Trapper Hat Set (Item 1 of 2).",
|
||||
"headArmoireFancyFloralHatText": "Fancy Floral Hat",
|
||||
"headArmoireFancyFloralHatNotes": "Feast your eyes on this fancy hat full of fantastic flowers and frilly fastenings. Increases Intelligence by <%= int %>. Enchanted Armoire: Fancy Floral Accessories Set (Item 1 of 2).",
|
||||
"headArmoireFancyFloralHatNotes": "Feast your eyes on this fancy hat full of fantastic flowers and frilly fastenings. Increases Intelligence by <%= int %>. Enchanted Armoire: Fancy Floral Accessories Set (Item 1 of 2).",
|
||||
"headArmoireSillyOrangeTophatText": "Silly Orange Tophat",
|
||||
"headArmoireSillyOrangeTophatNotes": "Goes well with a pumpkin pie hair cut. Increases Strength and Constitution by <%= attrs %> each. Enchanted Armoire: Silly Tuxedo Set (Item 2 of 2).",
|
||||
"headArmoireSillierBlueTophatText": "Sillier Blue Tophat",
|
||||
"headArmoireSillierBlueTophatNotes": "A little class, a little sophistication. Increases Strength and Constitution by <%= attrs %> each. Enchanted Armoire: Sillier Tuxedo Set (Item 2 of 2).",
|
||||
|
||||
"offhand": "off-hand item",
|
||||
"offHandCapitalized": "Off-Hand Item",
|
||||
|
||||
@@ -960,6 +960,15 @@
|
||||
"questJadeDropJadePotion": "Jade Hatching Potion",
|
||||
"questJadeUnlockText": "Unlocks Jade Hatching Potion for Purchase in the Market.",
|
||||
|
||||
"questAlpacaText": "The Overpacked Alpaca",
|
||||
"questAlpacaNotes": "The sun beams down as you hike up the rocky trailheads of the Meandering Mountains. You’ve been planning this expedition for your friend group for months, researching every aspect of the trip. The weight of supplies on your back is so much to bear, each step feels more like a burden than an adventure.<br><br>You hear a soft crunch of hooves on the trail behind you. A fluffy alpaca approaches with a gigantic stack of luggage on her back.<br><br>“Seems like you’re dragging a bit, friend, and all you’re carrying is a little backpack!” she says as she passes by.<br><br>“You make it look so easy,” you sigh. “I planned this trip for so long, but now that we’re here, I’m not even having fun…”<br><br>“Don’t get down on yourself,” the alpaca snorts. “I’ll teach you a lesson I learned long ago!” She bucks, and suddenly a bundled bedroll is flying at you! How is this helping again?!",
|
||||
"questAlpacaCompletion": "Luckily none of the bags the alpaca threw your way were heavy, but your hands are definitely full. “What was that about?” you ask, annoyed.<br><br>“If you’re planning a trip with friends, you shouldn’t be carrying your burden alone! I’m sure your friends would rather you shake off a few things onto them than for you to collapse under the weight by yourself. Anyway, you can hand me those bags back. I’m a seasoned pack animal and I’ve made my point,” she says with a wink. “But keep that blue bundle as a reward for a hard lesson learned. I’ll see you at the peak!”",
|
||||
"questAlpacaBoss": "The Overpacked Alpaca",
|
||||
"questAlpacaRageTitle": "Pack-Quake",
|
||||
"questAlpacaRageDescription": "This bar fills when you don't complete your Dailies. When it's full, The Overpacked Alpaca will regain some of its health!",
|
||||
"questAlpacaRageEffect": "The Overpacked Alpaca launches luggage at you! The boss regains 30% of its health!",
|
||||
"questAlpacaDropAlpacaEgg": "Alpaca (egg)",
|
||||
"questAlpacaUnlockText": "Unlocks Alpaca Eggs for Purchase in the Market",
|
||||
|
||||
"questFungiText": "The Moody Mushroom",
|
||||
"questFungiNotes": "It’s been a rainy spring in Habitica and the ground around the stables is spongy and damp. You notice quite a few mushrooms have appeared along the wooden stable walls and fences. There’s a fog hanging about, not quite letting the sun peek through, and it’s a bit dispiriting.<br><br>Out of the mist you see the outline of the April Fool, not at all his usual bouncy self.<br><br>”I’d hoped to bring you all some delightful Fungi Magic Hatching Potions so that you can keep your mushroom friends from my special day forever,” he says, his expression alarmingly unsmiling. “But this cold fog is really getting to me, it’s making me feel too tired and dismal to work my usual magic.”<br><br>“Oh no, sorry to hear that,” you say, noticing your own increasingly somber mood. “This fog is really making the day gloomy. I wonder where it came from…”<br><br>A low rumble sounds across the fields, and you see an outline emerging from the mist. You’re alarmed to see a gigantic and unhappy looking mushroom creature, and the mist appears to be emanating from it.<br><br>“Aha,” says the Fool, “I think this fungal fellow may be the source of our blues. Let’s see if we can summon a little cheer for our friend here and ourselves.”",
|
||||
|
||||
@@ -172,6 +172,7 @@
|
||||
"mysterySet202501": "Frostbinder Set",
|
||||
"mysterySet202502": "Heartfelt Harlequin Set",
|
||||
"mysterySet202503": "Jade Juggernaut Set",
|
||||
"mysterySet202504": "Elusive Yeti Set",
|
||||
"mysterySet301404": "Steampunk Standard Set",
|
||||
"mysterySet301405": "Steampunk Accessories Set",
|
||||
"mysterySet301703": "Peacock Steampunk Set",
|
||||
|
||||
@@ -2258,5 +2258,26 @@
|
||||
"weaponSpecialSpring2023HealerNotes": "With a puff and a sparkle, you deploy new growth, joy, and colour. Increases Intelligence by <%= int %>. Limited Edition 2023 Spring Gear.",
|
||||
"gearItemsCompleted": "You own all <%= klass %> gear! New gear is released during the seasonal Galas.",
|
||||
"moreArmoireGearAvailable": "Until then, there's <%= armoireCount %> pieces of gear in the Enchanted Wardrobe to find!",
|
||||
"moreArmoireGearComing": "The Enchanted Wardrobe gets new stock every month too!"
|
||||
"moreArmoireGearComing": "The Enchanted Wardrobe gets new stock every month too!",
|
||||
"weaponSpecialSummer2021HealerText": "Staff of Corn",
|
||||
"weaponSpecialSpring2021WarriorNotes": "Harness the power of the sun against your enemies, and let the sunstone bring you luck! Increases Strength by <%= str %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSummer2021WarriorText": "Watery Blade",
|
||||
"weaponSpecialSpring2021MageText": "Swan Plume",
|
||||
"weaponSpecialSummer2021WarriorNotes": "This shimmering blade may flow like water, but it can cut to the heart of the trickiest problems! Increases Strength by <%= str %>. Limited Edition 2021 Summer Gear.",
|
||||
"weaponSpecialSummer2021RogueText": "Anemone Tentacles",
|
||||
"weaponSpecialSummer2021HealerNotes": "Not to get corny, but this staff is a lifesaver. Increases Intelligence by <%= int %>. Limited Edition 2021 Summer Gear.",
|
||||
"weaponSpecialSpring2021MageNotes": "Throw, beat, treadle, rest! Swish this magnificent feather in time to conduct the music of your magic. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSpring2021HealerNotes": "The bark and leaves of this fresh cutting are known for their ability to relieve pain. Or you can plant it and watch it grow! Increases Intelligence by <%= int %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSpring2021HealerText": "Willow Branch",
|
||||
"weaponSpecialSpring2021RogueNotes": "You know what's better than dual-wielding flowers? QUADRUPLE wielding flowers! Increases Strength by <%= str %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSummer2021RogueNotes": "Any predatory monster that dares approach will feel the sting of your protective friends! Increases Strength by <%= str %>. Limited Edition 2021 Summer Gear.",
|
||||
"weaponSpecialSummer2021MageText": "Nautiloid Cane",
|
||||
"weaponSpecialSpring2021RogueText": "Twin Flower Bloom",
|
||||
"weaponSpecialSummer2021MageNotes": "Whether your magical ambitions run twenty thousand leagues deep, or if you intend only to dip in the shallows of the art, this shining implement will serve you well! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2021 Summer Gear.",
|
||||
"weaponSpecialSpring2021WarriorText": "Hammer of the Sun",
|
||||
"weaponSpecialFall2021RogueText": "Dripping Goo",
|
||||
"weaponSpecialFall2021RogueNotes": "What on Earth did you get into? When people say Rogues have sticky fingers, this is not what they mean! Increases Strength by <%= str %>. Limited Edition 2021 Autumn Gear.",
|
||||
"weaponSpecialFall2021WarriorText": "Horse Rider's Axe",
|
||||
"weaponSpecialFall2021WarriorNotes": "This stylized, single-bladed axe is ideal for chopping... pumpkins! Increases Strength by <%= str %>. Limited Edition 2021 Autumn Gear.",
|
||||
"weaponSpecialFall2021MageText": "Staff of Pure Thought"
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"user": "User",
|
||||
"market": "Market",
|
||||
"newSubscriberItem": "You have new <span class=\"notification-bold-blue\">Mystery Items</span>",
|
||||
"subscriberItemText": "Each month, subscribers will receive a mystery item. It becomes available at the beginning of the month. See the wiki's 'Mystery Item' page for more information.",
|
||||
"subscriberItemText": "Subscribers receive a new mystery gear set at the beginning of each month!",
|
||||
"all": "All",
|
||||
"none": "None",
|
||||
"more": "<%= count %> more",
|
||||
@@ -189,7 +189,7 @@
|
||||
"dismissAll": "Dismiss All",
|
||||
"messages": "Messages",
|
||||
"emptyMessagesLine1": "You don't have any messages",
|
||||
"emptyMessagesLine2": "You can send a new message to a user by visiting their profile and clicking the \"Message\" button.",
|
||||
"emptyMessagesLine2": "Send a message to start a conversation with your Party members or another Habitica player! You can send a new message to a user by visiting their profile and clicking the \"Message\" button.",
|
||||
"userSentMessage": "<span class=\"notification-bold\"><%- user %></span> sent you a message",
|
||||
"letsgo": "Let's Go!",
|
||||
"selected": "Selected",
|
||||
@@ -238,5 +238,8 @@
|
||||
"whyReportingPlayer": "Why are you reporting this player?",
|
||||
"whyReportingPlayerPlaceholder": "Reason for report",
|
||||
"playerReportModalBody": "You should only report a player who violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Submitting a false report is a violation of Habitica’s Community Guidelines.",
|
||||
"titleCustomizations": "Customisations"
|
||||
"titleCustomizations": "Customisations",
|
||||
"newMessage": "New Message",
|
||||
"targetUserNotExist": "Target User: '<%= userName %>' does not exist.",
|
||||
"rememberToBeKind": "Please remember to be kind, respectful, and follow the <a href='/static/community-guidelines' target='_blank'>Community Guidelines</a>."
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
"tourPartyPage": "Welcome to your new Party! You can invite other players to your Party by username, email, or from a list of players looking for a Party to earn the exclusive Basi-List Quest Scroll.<br/><br/>Select <a href='/static/faq#parties'>FAQ</a> from the Help dropdown to learn more about how Parties work.",
|
||||
"tourChallengesPage": "Challenges are themed task lists created by users! Joining a Challenge will add its tasks to your account. Compete against other users to win Gem prizes!",
|
||||
"tourMarketPage": "Every time you complete a task, you'll have a random chance at receiving an Egg, a Hatching Potion, or a piece of Pet Food. You can also buy these items here.",
|
||||
"tourHallPage": "Welcome to the Hall of Heroes, where open-source contributors to Habitica are honoured. Whether through code, art, music, writing, or even just helpfulness, they have earned Gems, exclusive equipment, and prestigious titles. You can contribute to Habitica, too!",
|
||||
"tourHallPage": "Welcome to the Hall of Heroes, where open-source contributors to Habitica are honoured. Whether through code, art, music, writing, or even just helpfulness, they have earned Gems, exclusive Equipment, and prestigious titles. You can contribute to Habitica, too!",
|
||||
"tourPetsPage": "Welcome to the stable! Every time you complete a task, you'll have a random chance at receiving an Egg or a Hatching Potion to hatch Pets. When you hatch a Pet, it will appear here! Click a Pet's image to add it to your Avatar. Feed them with the Pet Food you find and they'll grow into hardy Mounts.",
|
||||
"tourMountsPage": "Once you've fed a pet enough food to turn it into a mount, it will appear here. Click a mount to saddle up!",
|
||||
"tourEquipmentPage": "This is where your Equipment is stored! Your Battle Gear affects your Stats. If you want to show different Equipment on your avatar without changing your Stats, click \"Enable Costume.\"",
|
||||
@@ -117,7 +117,7 @@
|
||||
"paymentAutoRenew": "This subscription will auto-renew until it is cancelled. If you need to cancel this subscription, you can do so from your settings.",
|
||||
"paymentCanceledDisputes": "We’ve sent a cancellation confirmation to your email. If you don’t see the email, please contact us to prevent future billing disputes.",
|
||||
"cannotUnpinItem": "This item cannot be unpinned.",
|
||||
"paymentSubBillingWithMethod": "Your subscription will be billed <strong>$<%= amount %></strong> every <strong><%= months %> months</strong> via <strong><%= paymentMethod %></strong>.",
|
||||
"paymentSubBillingWithMethod": "Your subscription will be billed<br><strong>$<%= amount %>.00 USD</strong> every <strong><%= months %> month(s) </strong> via <strong><%= paymentMethod %></strong>.",
|
||||
"invalidUnlockSet": "This set of items is invalid and cannot be unlocked.",
|
||||
"nMonthsSubscriptionGift": "<%= nMonths %> Month(s) Subscription (Gift)",
|
||||
"nGemsGift": "<%= nGems %> Gems (Gift)",
|
||||
@@ -130,5 +130,7 @@
|
||||
"limitedAvailabilityDays": "Available for <%= days %>d <%= hours %>h <%= minutes %>m",
|
||||
"limitedAvailabilityHours": "Available for <%= hours %>h <%= minutes %>m",
|
||||
"sellItems": "Sell Items",
|
||||
"customizationsShopText": "Want to change up your style? You came to the right place! We stock the freshest looks to fit the season."
|
||||
"customizationsShopText": "Want to change up your style? You came to the right place! We stock the freshest looks to fit the season.",
|
||||
"notAvailable": "This item isn't available.",
|
||||
"paymentYouSentSubscriptionG1G1": "You sent <strong><%- name %></strong><br> a <%= months %> month Habitica subscription, and the same subscription was applied to your account for our Gift One Get One promotion!"
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
"welcomeStable": "Welcome to your Pets and Mounts!",
|
||||
"welcomeStableText": "Welcome to the stable! I’m Matt, the beastmaster. Every time you complete a task, you'll have a random chance at receiving an Egg or a Hatching Potion to hatch Pets. When you hatch a Pet, it will appear here! Click a Pet's image to add it to your Avatar. Feed them with the Pet Food you find and they'll grow into hardy Mounts.",
|
||||
"petLikeToEat": "What does my Pet like to eat?",
|
||||
"petLikeToEatText": "Pets will grow no matter what you feed them, but they'll grow faster if you feed them the one Pet Food that they like best. Experiment to find out the pattern, or see the answers here: <br/> <a href=\"https://habitica.fandom.com/wiki/Food_Preferences\" target=\"_blank\">https://habitica.fandom.com/wiki/Food_Preferences</a>",
|
||||
"petLikeToEatText": "Pets will grow no matter what you feed them, but they'll grow faster if you feed them the one Pet Food that they like best. Experiment to find out the pattern, or see the answers here: <br/> <a href=\"/static/faq#pet-foods\" target=\"_blank\">https://habitica.com/static/faq#pet-foods</a>",
|
||||
"filterByStandard": "Standard",
|
||||
"filterByMagicPotion": "Magic Potion",
|
||||
"filterByQuest": "Quest",
|
||||
|
||||
@@ -497,7 +497,7 @@
|
||||
"questMayhemMistiflying3DropShield": "Roguish Rainbow Message (Off-Hand Item)",
|
||||
"questMayhemMistiflying3DropWeapon": "Roguish Rainbow Message (Main-Hand Item)",
|
||||
"featheredFriendsText": "Feathered Friends Quest Bundle",
|
||||
"featheredFriendsNotes": "Contains 'Help! Harpy!,' 'The Night-Owl,' and 'The Birds of Preycrastination.'",
|
||||
"featheredFriendsNotes": "Contains Quests to obtain Owl, Parrot, and Hawk Pet eggs: The Night-Owl, Help! Harpy!, and The Birds of Preycrastination.",
|
||||
"questNudibranchText": "Infestation of the NowDo Nudibranchs",
|
||||
"questNudibranchNotes": "You finally get around to checking your To Do's on a lazy day in Habitica. Bright against your deepest red tasks are a gaggle of vibrant blue sea slugs. You are entranced! Their sapphire colors make your most intimidating tasks look as easy as your best Habits. In a feverish stupor you get to work, tackling one task after the other in a ceaseless frenzy...<br><br>The next thing you know, @LilithofAlfheim is pouring cold water over you. “The NowDo Nudibranchs have been stinging you all over! You need to take a break!”<br><br>Shocked, you see that your skin is as bright red as your To Do list was. \"Being productive is one thing,\" @beffymaroo says, \"but you've also got to take care of yourself. Hurry, let's get rid of them!\"",
|
||||
"questNudibranchCompletion": "You see the last of the NowDo Nudibranchs sliding off of a pile of completed tasks as @amadshade washes them away. One leaves behind a cloth bag, and you open it to reveal some gold and a few little ellipsoids you guess are eggs.",
|
||||
@@ -505,7 +505,7 @@
|
||||
"questNudibranchDropNudibranchEgg": "Nudibranch (Egg)",
|
||||
"questNudibranchUnlockText": "Unlocks Nudibranch Eggs for purchase in the Market",
|
||||
"splashyPalsText": "Splashy Pals Quest Bundle",
|
||||
"splashyPalsNotes": "Contains 'The Dilatory Derby', 'Guide the Turtle', and 'Wail of the Whale'.",
|
||||
"splashyPalsNotes": "Contains Quests to obtain Turtle, Whale, and Seahorse Pet eggs: Guide the Turtle, Wail of the Whale, and The Dilatory Derby.",
|
||||
"questHippoText": "What a Hippo-Crite",
|
||||
"questHippoNotes": "You and @awesomekitty collapse into the shade of a palm tree, exhausted. The sun beats down over the Sloensteadi Savannah, scorching the ground below. It’s been a productive day so far, conquering your Dailies, and this oasis looks like a nice place to take a break and refresh. Stooping near the water to get a drink, you stumble back in shock as a massive hippopotamus rises. “Resting so soon? Don’t be so lazy, get back to work.” You try and protest that you’ve been working hard and need a break, but the hippo isn’t having any of it.<br><br>@khdarkwolf whispers to you, “Notice how it’s lounging around all day but has the nerve to call you lazy? It’s the Hippo-Crite!”<br><br>Your friend @jumorales nods. “Let’s show it what hard work looks like!”",
|
||||
"questHippoCompletion": "The hippo bows in surrender. “I underestimated you. It seems you weren’t being lazy. My apologies. Truth be told, I may have been projecting a bit. Perhaps I should get some work done myself. Here, take these eggs as a sign of my gratitude.” Grabbing them, you settle down by the water, ready to relax at last.",
|
||||
@@ -513,9 +513,9 @@
|
||||
"questHippoDropHippoEgg": "Hippo (Egg)",
|
||||
"questHippoUnlockText": "Unlocks Hippo Eggs for purchase in the Market",
|
||||
"farmFriendsText": "Farm Friends Quest Bundle",
|
||||
"farmFriendsNotes": "Contains 'The Mootant Cow', 'Ride the Night-Mare', and 'The Thunder Ram'.",
|
||||
"farmFriendsNotes": "Contains Quests to obtain Horse, Sheep, and Cow Pet eggs: Ride the Night-Mare, The Thunder Ram, and The Mootant Cow.",
|
||||
"witchyFamiliarsText": "Witchy Familiars Quest Bundle",
|
||||
"witchyFamiliarsNotes": "Contains 'The Rat King', 'The Icy Arachnid', and 'Swamp of the Clutter Frog'.",
|
||||
"witchyFamiliarsNotes": "Contains Quests to obtain Frog, Spider, and Rat Pet eggs: Swamp of the Clutter Frog, The Icy Arachnid, and The Rat King.",
|
||||
"questGroupLostMasterclasser": "Mystery of the Masterclassers",
|
||||
"questUnlockLostMasterclasser": "To unlock this quest, complete the final quests of these quest chains: 'Dilatory Distress', 'Mayhem in Mistiflying', 'Stoïkalm Calamity', and 'Terror in the Taskwoods'.",
|
||||
"questLostMasterclasser1Text": "The Mystery of the Masterclassers, Part 1: Read Between the Lines",
|
||||
@@ -559,7 +559,7 @@
|
||||
"questYarnDropYarnEgg": "Yarn (Egg)",
|
||||
"questYarnUnlockText": "Unlocks Yarn Eggs for purchase in the Market",
|
||||
"winterQuestsText": "Winter Quest Bundle",
|
||||
"winterQuestsNotes": "Contains 'Trapper Santa', 'Find the Cub', and 'The Fowl Frost'. Note that Trapper Santa and Find the Cub have stackable quest achievements but give a rare pet and mount that can only be added to your stable once.",
|
||||
"winterQuestsNotes": "Contains Quests to obtain the Polar Bear Pet, the Polar Bear Mount, and Penguin Pet eggs: Find the Cub, Trapper Santa, and The Fowl Frost.",
|
||||
"questPterodactylText": "The Pterror-dactyl",
|
||||
"questPterodactylNotes": "You're taking a stroll along the peaceful Stoïkalm Cliffs when an evil screech rends the air. You turn to find a hideous creature flying towards you and are overcome by a powerful terror. As you turn to flee, @Lilith of Alfheim grabs you. \"Don't panic! It's just a Pterror-dactyl.\"<br><br>@Procyon P nods. \"They nest nearby, but they're attracted to the scent of negative Habits and undone Dailies.\"<br><br>\"Don't worry,\" @Katy133 says. \"We just need to be extra productive to defeat it!\" You are filled with a renewed sense of purpose and turn to face your foe.",
|
||||
"questPterodactylCompletion": "With one last screech the Pterror-dactyl plummets over the side of the cliff. You run forward to watch it soar away over the distant steppes. \"Phew, I'm glad that's over,\" you say. \"Me too,\" replies @GeraldThePixel. \"But look! It's left some eggs behind for us.\" @Edge passes you three eggs, and you vow to raise them in tranquility, surrounded by positive Habits and blue Dailies.",
|
||||
@@ -594,7 +594,7 @@
|
||||
"questDysheartenerDropHippogriffMount": "Hopeful Hippogriff (Mount)",
|
||||
"dysheartenerArtCredit": "Artwork by @AnnDeLune",
|
||||
"hugabugText": "Hug a Bug Quest Bundle",
|
||||
"hugabugNotes": "Contains 'The CRITICAL BUG,' 'The Snail of Drudgery Sludge,' and 'Bye, Bye, Butterfry.'",
|
||||
"hugabugNotes": "Contains Quests to obtain Beetle, Caterpillar, and Snail Pet eggs: The CRITICAL BUG, Bye Bye Butterfry, and The Snail of Drudgery Sludge.",
|
||||
"questSquirrelText": "The Sneaky Squirrel",
|
||||
"questSquirrelNotes": "You wake up and find you’ve overslept! Why didn’t your alarm go off? … How did an acorn get stuck in the ringer?<br><br>When you try to make breakfast, the toaster is stuffed with acorns. When you go to retrieve your mount, @Shtut is there, trying unsuccessfully to unlock their stable. They look into the keyhole. “Is that an acorn in there?”<br><br>@randomdaisy cries out, “Oh no! I knew my pet squirrels had gotten out, but I didn’t know they’d made such trouble! Can you help me round them up before they make any more of a mess?”<br><br>Following the trail of mischievously placed oak nuts, you track and catch the wayward sciurines, with @Cantras helping secure each one safely at home. But just when you think your task is almost complete, an acorn bounces off your helm! You look up to see a mighty beast of a squirrel, crouched in defence of a prodigious pile of seeds.<br><br>“Oh dear,” says @randomdaisy, softly. “She’s always been something of a resource guarder. We’ll have to proceed very carefully!” You circle up with your party, ready for trouble!",
|
||||
"questSquirrelCompletion": "With a gentle approach, offers of trade, and a few soothing spells, you’re able to coax the squirrel away from its hoard and back to the stables, which @Shtut has just finished de-acorning. They’ve set aside a few of the acorns on a worktable. “These ones are squirrel eggs! Maybe you can raise some that don’t play with their food quite so much.”",
|
||||
@@ -602,9 +602,9 @@
|
||||
"questSquirrelDropSquirrelEgg": "Squirrel (Egg)",
|
||||
"questSquirrelUnlockText": "Unlocks Squirrel Eggs for purchase in the Market",
|
||||
"cuddleBuddiesText": "Cuddle Buddies Quest Bundle",
|
||||
"cuddleBuddiesNotes": "Contains 'The Killer Bunny', 'The Nefarious Ferret', and 'The Guinea Pig Gang'.",
|
||||
"cuddleBuddiesNotes": "Contains Quests to obtain Rabbit, Ferret, and Guinea Pig Pet eggs: The Killer Bunny, The Nefarious Ferret, and The Guinea Pig Gang.",
|
||||
"aquaticAmigosText": "Aquatic Amigos Quest Bundle",
|
||||
"aquaticAmigosNotes": "Contains 'The Magical Axolotl', 'The Kraken of Inkomplete', and 'The Call of Octothulu'.",
|
||||
"aquaticAmigosNotes": "Contains Quests to obtain Cuttlefish, Octopus, and Axolotl Pet eggs: The Kraken of Inkomplete, The Call of Octothulu, and The Magical Axolotl.",
|
||||
"questSeaSerpentText": "Danger in the Depths: Sea Serpent Strike!",
|
||||
"questSeaSerpentNotes": "Your streaks have you feeling lucky—it’s the perfect time for a trip to the seahorse racetrack. You board the submarine at Diligent Docks and settle in for the trip to Dilatory, but you’ve barely submerged when an impact rocks the sub, sending its occupants tumbling. “What’s going on?” @AriesFaries shouts.<br><br>You glance through a nearby porthole and are shocked by the wall of shimmering scales passing by it. “Sea serpent!” Captain @Witticaster calls through the intercom. “Brace yourselves, it’s coming ‘round again!” As you grip the arms of your seat, your unfinished tasks flash before your eyes. ‘Maybe if we work together and complete them,’ you think, ‘we can drive this monster away!’",
|
||||
"questSeaSerpentCompletion": "Battered by your commitment, the sea serpent flees, disappearing into the depths. When you arrive in Dilatory, you breathe a sigh of relief before noticing @*~Seraphina~ approaching with three translucent eggs cradled in her arms. “Here, you should have these,” she says. “You know how to handle a sea serpent!” As you accept the eggs, you vow anew to remain steadfast in completing your tasks to ensure that there’s not a repeat occurrence.",
|
||||
@@ -618,7 +618,7 @@
|
||||
"questKangarooDropKangarooEgg": "Kangaroo (Egg)",
|
||||
"questKangarooUnlockText": "Unlocks Kangaroo Eggs for purchase in the Market",
|
||||
"forestFriendsText": "Forest Friends Quest Bundle",
|
||||
"forestFriendsNotes": "Contains 'The Spirit of Spring', 'The Hedgebeast', and 'The Tangle Tree'.",
|
||||
"forestFriendsNotes": "Contains Quests to obtain Treeling, Deer, and Hedgehog Pet eggs: The Tangle Tree, The Spirit of Spring, and The Hedgebeast.",
|
||||
"questAlligatorText": "The Insta-Gator",
|
||||
"questAlligatorNotes": "“Crikey!” exclaims @gully. “An Insta-Gator in its natural habitat! Careful, it distracts its prey with things that seem urgent THIS INSTANT, and it feeds on the unchecked Dailies that result.” You fall silent to avoid attracting its attention, but to no avail. The Insta-Gator spots you and charges! Distracting voices rise up from Swamps of Stagnation, grabbing for your attention: “Read this post! See this photo! Pay attention to me THIS INSTANT!” You scramble to mount a counterattack, completing your Dailies and bolstering your good Habits to fight off the dreaded Insta-Gator.",
|
||||
"questAlligatorCompletion": "With your attention focused on what’s important and not the Insta-Gator’s distractions, the Insta-Gator flees. Victory! “Are those eggs? They look like gator eggs to me,” asks @mfonda. “If we care for them correctly, they’ll be loyal pets or faithful steeds,” answers @UncommonCriminal, handing you three to care for. Let’s hope so, or else the Insta-Gator might make a return…",
|
||||
@@ -626,9 +626,9 @@
|
||||
"questAlligatorDropAlligatorEgg": "Alligator (Egg)",
|
||||
"questAlligatorUnlockText": "Unlocks Alligator Eggs for purchase in the Market",
|
||||
"oddballsText": "Oddballs Quest Bundle",
|
||||
"oddballsNotes": "Contains 'The Jelly Regent,' 'Escape the Cave Creature,' and 'A Tangled Yarn.'",
|
||||
"oddballsNotes": "Contains Quests to obtain Slime, Yarn, and Rock Pet eggs: The Jelly Regent, A Tangled Yarn, and Escape the Cave Creature.",
|
||||
"birdBuddiesText": "Bird Buddies Quest Bundle",
|
||||
"birdBuddiesNotes": "Contains 'The Fowl Frost,' 'Rooster Rampage,' and 'The Push-and-Pull Peacock.'",
|
||||
"birdBuddiesNotes": "Contains Quests to obtain Peacock, Penguin, and Rooster Pet eggs: The Push-and-Pull Peacock, The Fowl Frost, and Rooster Rampage.",
|
||||
"questVelociraptorText": "The Veloci-Rapper",
|
||||
"questVelociraptorNotes": "You’re sharing honey cakes with @*~Seraphina~*, @Procyon P, and @Lilith of Alfheim by a lake in the Stoïkalm Steppes. Suddenly, a mournful voice interrupts your picnic.<br><br><em>My Habits took a hit, I missed my Dailies,<br>I’m losing it, sinking with doubt and maybes,<br>At the top of my game I used to be so fly,<br>But now I just let my Due Dates go by.</em><br><br>@*~Seraphina~* peers behind a stand of grass. “It’s the Veloci-Rapper. It seems... distraught?”<br><br>You pump a fist in determination. “There's only one thing to do. Rap battle time!”",
|
||||
"questVelociraptorCompletion": "You burst through the grass, confronting the Veloci-Rapper.<br><br><em>See here, rapper, you’re no quitter,<br>You’re Bad Habits' hardest hitter!<br>Check off your To Do's like a boss,<br>Don’t mourn over one day’s loss!</em><br><br>Filled with renewed confidence, it bounds off to freestyle another day, leaving behind three eggs where it sat.",
|
||||
@@ -636,7 +636,7 @@
|
||||
"questVelociraptorDropVelociraptorEgg": "Velociraptor (Egg)",
|
||||
"questVelociraptorUnlockText": "Unlocks Velociraptor Eggs for purchase in the Market",
|
||||
"mythicalMarvelsText": "Mythical Marvels Quest Bundle",
|
||||
"mythicalMarvelsNotes": "Contains 'Convincing the Unicorn Queen,' 'The Fiery Gryphon,' and 'Danger in the Depths: Sea Serpent Strike!'",
|
||||
"mythicalMarvelsNotes": "Contains Quests to obtain Unicorn, Gryphon, and Sea Serpent Pet eggs: Convincing the Unicorn Queen, The Fiery Gryphon, and Danger in the Depths: Sea Serpent Strike!",
|
||||
"questSilverDropSilverPotion": "Silver Hatching Potion",
|
||||
"questSilverCollectSilverIngots": "Silver Ingots",
|
||||
"rockingReptilesText": "Rocking Reptiles Quest Bundle",
|
||||
@@ -667,9 +667,9 @@
|
||||
"questBronzeNotes": "On a refreshing break between tasks, you and some friends take a stroll through the forest trails of the Taskwoods. You come upon a large hollow log and a sparkle from inside catches your attention.<br><br>Why, it's a cache of Magic Hatching Potions! The shimmering bronze liquid swirls gently in the bottles, and @Hachiseiko reaches to pick one up to examine it.<br><br>“Halt!” hisses a voice from behind you. It's a gigantic beetle with a carapace of gleaming bronze, raising her clawed feet in a fighting stance. “Those are my potions, and if you wish to earn them, you must prove yourself in a gentlefolks' duel!”",
|
||||
"questBronzeText": "Brazen Beetle Battle",
|
||||
"evilSantaAddlNotes": "Note that Trapper Santa and Find the Cub have stackable quest achievements but give a rare pet and mount that can only be added to your stable once.",
|
||||
"rockingReptilesNotes": "Contains 'The Insta-Gator,' 'The Serpent of Distraction,' and 'The Veloci-Rapper.'",
|
||||
"rockingReptilesNotes": "Contains Quests to obtain Alligator, Velociraptor, and Snake Pet eggs: The Insta-Gator, The Veloci-Rapper, and The Serpent of Distraction.",
|
||||
"delightfulDinosText": "Delightful Dinos Quest Bundle",
|
||||
"delightfulDinosNotes": "Contains 'The Pterror-dactyl,' 'The Trampling Triceratops,' and 'The Dinosaur Unearthed.'",
|
||||
"delightfulDinosNotes": "Contains Quests to obtain Triceratops, T-Rex, and Pterodactyl Pet eggs: The Trampling Triceratops, The Dinosaur Unearthed, and The Pterror-dactyl.",
|
||||
"questAmberText": "The Amber Alliance",
|
||||
"questAmberNotes": "You’re sitting in the Tavern with @beffymaroo and @-Tyr- when @Vikte bursts through the door and excitedly tells you about the rumors of another type of Magic Hatching Potion hidden in the Taskwoods. Having completed your Dailies, the three of you immediately agree to help @Vikte on their search. After all, what’s the harm in a little adventure?<br><br>After walking through the Taskwoods for hours, you’re beginning to regret joining such a wild chase. You’re about to head home, when you hear a surprised yelp and turn to see a huge lizard with shiny amber scales coiled around a tree, clutching @Vikte in her claws. @beffymaroo reaches for her sword.<br><br>“Wait!” cries @-Tyr-. “It’s the Trerezin! She’s not dangerous, just dangerously clingy!”",
|
||||
"questAmberCompletion": "“Trerezin?” @-Tyr- says calmly. “Could you let @Vikte go? I don’t think they’re enjoying being so high up.”<br><br>The Trerezin’s amber skin blushes crimson and she gently lowers @Vikte to the ground. “My apologies! It’s been so long since I’ve had any guests that I’ve forgotten my manners!” She slithers forward to greet you properly before disappearing into her treehouse, and returning with an armful of Amber Hatching Potions as thank-you gifts!<br><br>“Magic Potions!” @Vikte gasps.<br><br>“Oh, these old things?” The Trerezin's tongue flickers as she thinks. “How about this? I’ll give you this whole stack if you promise to visit me every so often...”<br><br>And so you leave the Taskwoods, excited to tell everyone about the new potions--and your new friend!",
|
||||
@@ -691,9 +691,9 @@
|
||||
"questWaffleText": "Waffling with the Fool: Disaster Breakfast!",
|
||||
"questWaffleUnlockText": "Unlocks Confection Hatching Potions for purchase in the Market",
|
||||
"questWaffleDropDessertPotion": "Confection Hatching Potion",
|
||||
"questWaffleRageEffect": "`Awful Waffle uses MAPLE MIRE!` Sticky sappy syrup slows your swings and spells!",
|
||||
"questWaffleRageEffect": "`Awful Waffle uses MAPLE MIRE!` Sticky sappy syrup slows your swings and spells! Pending damage reduced.",
|
||||
"questWaffleRageDescription": "Maple Mire: This bar fills when you don't complete your Dailies. When it is full, the Awful Waffle will set back the party's attack progress!",
|
||||
"jungleBuddiesNotes": "Contains 'Monstrous Mandrill and the Mischief Monkeys', 'The Somnolent Sloth', and 'The Tangle Tree'.",
|
||||
"jungleBuddiesNotes": "Contains Quests to obtain Monkey, Treeling, and Sloth Pet eggs: Monstrous Mandrill and the Mischief Monkeys, The Tangle Tree, and The Somnolent Sloth.",
|
||||
"jungleBuddiesText": "Jungle Buddies Quest Bundle",
|
||||
"questFluoriteUnlockText": "Unlocks Fluorite Hatching Potions for purchase in the Market",
|
||||
"questFluoriteDropFluoritePotion": "Fluorite Hatching Potion",
|
||||
@@ -709,7 +709,7 @@
|
||||
"questBlackPearlCompletion": "As you batter and blast the beastie, it sheds black pearls across the sands. Their glistening surfaces catch your eye as you dodge another smashing tentacle.<br><br>You may be in mortal peril, but you can’t help thinking of how beautifully they glimmer. Then you can’t help thinking that this is a terrible time for a new potion idea.<br><br>Suddenly the monster freezes. @jjgame83 and @PixelStormArt exchange baffled looks and lower their weapons.<br><br>“YOU HAVE YOUR WISH, MORTAL. MY WORK IS DONE.”<br><br>Asteroidea vanishes, and the sky and waters clear. @QuartzFox stares at you. “Care to explain?”<br><br>You try your best, and together you fill the picnic basket with black pearls. An afternoon of alchemy later, you have to admit it was a pretty good idea.",
|
||||
"questBlackPearlNotes": "You’ve been feeling uninspired lately, so when @jjgame83 suggests a trip to Lively Lake, you jump at the chance for a change of scenery. As @QuartzFox lays out a picnic on the shore, you find something glinting in the shallows. A strange black pearl.<br><br>“I wish I had a new idea,” you sigh.<br><br>A chill washes over the shore. The lake turns to black ink. The stars rise as noon becomes midnight in a heartbeat.<br><br>“Those aren’t good signs,” says @PixelStormArt.<br><br>A towering mass of arms bursts from the lake in a spray of foam, and from its beak, it booms: “BEHOLD ASTEROIDEA, THE IDEA FROM BEYOND THE STARS!”<br><br>A tentacle slams down onto the picnic basket. Good idea or not, you leap into action.",
|
||||
"questBlackPearlText": "A Startling Starry Idea",
|
||||
"sandySidekicksNotes": "Contains 'The Indulgent Armadillo', 'The Serpent of Distraction', and 'The Icy Arachnid'.",
|
||||
"sandySidekicksNotes": "Contains Quests to obtain Spider, Armadillo, and Snake Pet eggs: The Icy Arachnid, The Indulgent Armadillo, and The Serpent of Distraction.",
|
||||
"sandySidekicksText": "Sandy Sidekicks Quest Bundle",
|
||||
"questTurquoiseUnlockText": "Unlocks Turquoise Hatching Potions for purchase in the Market",
|
||||
"questTurquoiseDropTurquoisePotion": "Turquoise Hatching Potion",
|
||||
@@ -771,5 +771,68 @@
|
||||
"questPinkMarbleRageDescription": "This bar fills when you don't complete your Dailies. When it is full, Cupido will take away some of your party's pending damage!",
|
||||
"questPinkMarbleRageEffect": "`Cupido uses Pink Punch!` That wasn't affectionate at all! Your partymates are taken aback. Pending damage reduced.",
|
||||
"questPinkMarbleDropPinkMarblePotion": "Pink Marble Hatching Potion",
|
||||
"questPinkMarbleText": "Calm the Corrupted Cupid"
|
||||
"questPinkMarbleText": "Calm the Corrupted Cupid",
|
||||
"questGiraffeText": "The Gear-affe",
|
||||
"questGiraffeCompletion": "After helping the Gear-Affe with some basic organisation of his stash, you’re both feeling more energised and upbeat!<br><br>He grabs his guitar and a book of beginner exercises and strums a few notes. “It feels good to take a step in the right direction, even a small one. Thanks for helping me out! Take these, I hear you have a stash of pets and these fellas could be a nice addition!”",
|
||||
"questGiraffeBoss": "Gear-affe",
|
||||
"questGiraffeDropGiraffeEgg": "Giraffe (Egg)",
|
||||
"questChameleonText": "The Chaotic Chameleon",
|
||||
"questChameleonCompletion": "After a few lively turns the Chameleon went through every colour of the rainbow, perfectly matching each colour you requested.<br><br>“Wow,” he says, “working together and making it into a game really helped me concentrate! Please take these as a reward, you’ve earned them! Teach these little guys how to change to all the colours of the rainbow when they hatch.”",
|
||||
"questChameleonBoss": "Chaotic Chameleon",
|
||||
"questChameleonDropChameleonEgg": "Chameleon (Egg)",
|
||||
"questDogText": "Triple Dog Dare!",
|
||||
"questDogCompletion": "After gathering all the toys that you (thankfully) dodged, you give Shiberus a gentle pat on his middle head.<br><br>“It’s great to be excited about a big task, but it might help to go in with a plan. Maybe next time try starting at the entrance and working backwards? Or doing it 30 minutes at a time with some short play breaks in between.”<br><br>“That’s a good idea,” the pup’s left head chimes in. The right head places some items near you, including what appear to be eggs… “I found some things you might like while we were playing. Thanks for your help!”",
|
||||
"questDogBoss": "Shiberus",
|
||||
"questDogRageTitle": "Triple Toy Toss",
|
||||
"questDogRageDescription": "This bar fills when you don't complete your Dailies. When it's full, Shiberus will take away some of your party's MP!",
|
||||
"questDogRageEffect": "Shiberus throws toys at you rapid-fire and blocks your magic spells! The party’s MP is reduced!",
|
||||
"questDogDropDogEgg": "Dog (Egg)",
|
||||
"questDogUnlockText": "Unlocks Dog Eggs for purchase in the Market.",
|
||||
"questRaccoonText": "Raccoon Tycoon",
|
||||
"questRaccoonCompletion": "\"Really, I think there are plenty of neat rocks for both of us,\" you say as you retrieve the last of your items. \"Here are a few that you can have from what I collected, I have enough to share!\"<br><br>\"Aw, that’s pretty nice of you,\" says the raccoon. \"Actually, here are some neat little prizes for you, too!\"",
|
||||
"questRaccoonBoss": "Ravenous Raccoon",
|
||||
"questRaccoonRageTitle": "Trinket Tsunami",
|
||||
"questRaccoonRageDescription": "This bar fills when you don't complete your Dailies. When it's full, the Raccoon Tycoon will regain some of his health!",
|
||||
"questRaccoonRageEffect": "The Ravenous Raccoon takes some items you’ve rescued and crams them back into the tree trunk. The boss regains 30% of its health!",
|
||||
"questRaccoonDropRaccoonEgg": "Raccoon (Egg)",
|
||||
"questRaccoonUnlockText": "Unlocks Raccoon Eggs for purchase in the Market.",
|
||||
"questOtterText": "The Perfidious Plotter!",
|
||||
"questOtterRageTitle": "To-do Tear-Up!",
|
||||
"questOtterRageDescription": "This bar fills when you don't complete your Dailies. When it's full, The Plotter will regain some of its health!",
|
||||
"questOtterRageEffect": "The Plotter throws pieces of your to-do list into the air! The boss regains 30% of its health!",
|
||||
"questOtterDropOtterEgg": "Otter (egg)",
|
||||
"questOtterUnlockText": "Unlocks Otter Eggs for Purchase in the Market",
|
||||
"questJadeText": "A Jaded Jinx",
|
||||
"questOtterBoss": "The Plotter",
|
||||
"questJadeCompletion": "After countless setbacks, you somehow managed to roll the jade boulder up to the top of the mountain! The stony figure catches up to you and smiles. He gives the boulder a gentle push and you watch in horror as it rolls all the way back to the bottom.<br><br>“Why would you do that? Someone will have to do it all over again now!” you balk.<br><br>“Just because you have to do something more than once doesn’t mean your accomplishments are meaningless,” the stone figure says. “For now, focus on what you achieved and enjoy a reward!”<br><br>You jolt awake back on your couch, phone fallen to the floor. In its place are three bottles filled with flowing jade! Maybe it’s time to clean today’s dishes and then take a break to see how these potions work on some pet eggs...",
|
||||
"questJadeBoss": "Jaded Jinx",
|
||||
"questJadeDropJadePotion": "Jade Hatching Potion",
|
||||
"questJadeUnlockText": "Unlocks Jade Hatching Potion for Purchase in the Market.",
|
||||
"questGiraffeNotes": "You’re strolling across the tall grass of the Sloenstedi Savannah, enjoying a nice walk in nature as a break from your tasks. As you pass through the rolling landscape, you notice a collection of items in the distance. It’s a pile of musical instruments, art supplies, electronic equipment, and more! You venture near for a better look.<br><br>“Hey, what do you think you’re doing?” yells a voice from behind an acacia. A tall and imposing giraffe emerges, wearing a fancy pair of shades, a guitar, and a fancy camera around its long neck. “This is all my gear. Be careful and don’t touch anything!”<br><br>You notice dust on many of the items. “Wow, you sure have a lot of hobbies!” you say. “Can you show me some art or play me a tune?”<br><br>The giraffe’s face falls as he looks at all his supplies. “I have so much of this stuff but don’t know where to begin! Why don't you give me some of your motivation so I can have the productive energy I need to finally get started!”",
|
||||
"questGiraffeUnlockText": "Unlocks Giraffe Eggs for purchase in the Market.",
|
||||
"questChameleonNotes": "It’s a beautiful day in a warm, rainy corner of the Taskwoods. You’re on the hunt for new additions to your leaf collection when a branch in front of you changes colour without warning! Then it moves!<br><br>Stumbling backwards, you realize this is not a branch at all, but a huge chameleon! Each part of his body keeps changing colours as his eyes dart in different directions.<br><br>“Are you all right?” you ask the chameleon.<br><br>“Ahhh, well,” he says, looking a little flustered. “I’ve been trying to blend in… but it’s so overwhelming… the colours keep coming and going! It’s hard to focus on just one....”<br><br>“Aha,” you say, “I think I can help. We’ll sharpen your focus with a little challenge! Get your colours ready!”<br><br>“You’re on!” replied the chameleon.",
|
||||
"questCrabNotes": "It’s a warm sunny morning, and you’re enjoying a visit to the beach to catch up on some of the books on your summer reading list. You’re startled when you nearly step on a shiny crystal near a shallow hole in the sand.<br><br>“Ey, watch where you’re goin’! I’m makin’ a burrow here!” says a voice. A surprisingly large crab with a decorative shell runs out in front of your toes, snapping her claws as she speaks.<br><br>“Hmm.. is this a burrow?” you ask, looking at the shallow depression. There are shells and crystals arranged around it, but it’s not much in the way of a hiding place.<br><br>The crab stammers. \"Ey, this is a judgment-free zone! I'm gettin' to it, I'm gettin' to it... I just got caught up on decorating. Sometimes a crab's gotta fiddle,\" she says, adjusting a shell.<br><br>\"Why don't you lend me a claw and help if you've got some big ideas on what a burrow should look like?\"",
|
||||
"questRaccoonNotes": "It’s a warm autumn day in Habitica and you’re taking a slow stroll along Conquest Creek. You see some nifty semi-precious stones along the bank that would be perfect for a project you’ve been planning.<br><br>You start stashing your best finds in a pile beneath a tree. Strangely, each time you return the pile seems to be getting smaller, not larger...<br><br>That can't be right. You look all around but nothing odd stands out. Just as you turn around to head back to the creek, you catch a hand-like paw reaching out of a hollow in the trunk and snatch some of your stones!<br><br>\"Hey!\" you yell, \"I’ve been working hard collecting those. It’s not cool to take them without asking!\"<br><br>A masked face pops out of the hole and grins at you. \"Finders keepers!\" says the Raccoon. He slips back inside the tree, bags of stones in hand. You dive in after him! These stones are worth fighting for!",
|
||||
"questDogNotes": "You’ve been chosen for an expedition to map Habitica’s underground cave systems! Researchers in Habit City theorise that there may be new tools for managing tasks or even undiscovered creatures in these depths.<br><br>As you map rocky tunnels near the foothills of the Meandering Mountains, you notice a glow emanating from a craggy entrance ahead. As you near you see… toys? Stuffed animals and rubber balls are scattered around the cave floor. Is that barking you hear?<br><br>A huge, three-headed dog jumps out, darting for the toy you were right about to pick up! You freeze, almost losing a limb there! But... the dog’s mouths seem too occupied with toys to attack?<br><br>“Woof!” one of the dog's mouths barks, dropping a torn toy raccoon. “Are you here to help me clean?? I reeeally need to tidy up but every time I pick up a toy, I just end up playing with it… Here, think fast!!”<br><br>He launches a ball at you, and then another, and another. Those extra heads really make dodging a workout!",
|
||||
"questCatNotes": "On this fine day you find yourself in Habit City's Enchanted Efficiency Emporium workshop. You've been assigned a tough task: create a new magic motivation spell to help Habiticans everywhere complete their goals with ease.<br><br>Sitting on a table in front of you is a variety of magical objects. All the tomes said they were supposed to resonate together with productive energy… but so far there's not even a spark of motivation.<br><br>The creaking of a door alerts you to a new guest entering your workshop. Scampering feet and a blur of fluff dart onto the table. A... cat? Before you even have a chance to compliment how fluffy she is, she's lifting a paw to one of the crystals you set up and… knocking it off the table!<br><br>\"Hey!\" you shout, \"You're really cute but I'm trying to do some work over here...\"<br><br>She looks at you with her pretty blue eyes, tilts her head, and bats a bundle of herbs off the table. \"I'm helping!\" she purrs.<br><br>You see her paw reaching out toward the rest of the items you've collected and dive to the floor to catch the next one to go down!",
|
||||
"questOtterNotes": "To-do lists are great! You can spend hours meticulously documenting each step you need to take and feel productive without actually doing those things. Your three-page list gets stuffed into your pocket. Time for a refreshing walk!<br><br>You depart towards the Routine River to take a stroll along the banks. This is exactly what you needed to finally get started! Time to take out your to-do list and–ah! A gust of wind has your list flying out of your hand and headed right for the water!<br><br>Right before the paper hits the water, an otter head pops up to the surface intercepting the sheet’s sure demise. Phew! He grasps the list in his paws and a mischievous grin spreads across his face… uh-oh.<br><br>“Hmm...” he hums, flipping the paper around to read your list. “Looks like you need some help prioritising.” Riiiip.<br><br>The otter just ripped your carefully crafted list into pieces! “If you want to get these done, you’re going to have to decide what’s the most important first!” he says, tossing your list items into the breeze one at a time.",
|
||||
"questJadeNotes": "You’re in your home staring at the stack of dirty dishes in the sink. The pile of dirty laundry in a random corner of the room. The empty cups and snack wrappers around your desk...<br><br>You sigh. “Why are there always more dishes… ? The mess is never-ending. It’s so demotivating.\" You find yourself dazing on the couch, mindlessly scrolling the latest trends. Who knows how long you’ve been there...<br><br>When you look up from your phone, everything is green. This isn’t your living room. Standing up, you find yourself on the side of a shiny verdant mountain.<br><br>Movement in the distance draws your attention. A stony green figure grunts, pushing a boulder up the rocky terrain. He makes some progress, but a small slip of his foot has the shiny boulder rolling back down, right towards you!<br><br>He spots you as he runs towards the chunk of jade hurdling your way! “So you think the dishes are bad?” the figure shouts, “Try this!”",
|
||||
"questCatCompletion": "You've thankfully caught everything that pushy cat knocked off the table. As you sit on the floor you notice a bright glow coming from the objects in front of you. Looking up, the ones on the table are reacting too! Putting them at different elevations seems to be a breakthrough in your research!<br><br>\"You know, in the end you did help me. I guess I just needed some fresh eyes on my task to get me unstuck. I wish you would have given me a bit of a heads-up before you started pushing things around, though,\" you say to the cat, patting her gently.<br><br>\"That's a purrfectly reasonable request, please take these as my apology!\" she purrs, nudging some funny-looking eggs in your direction. \"I'm glad I could help you see things from a different purrspective.\"",
|
||||
"questOtterCompletion": "As you caught the pieces of your list you started sorting them by which tasks were the most important and ended up with quite a manageable place to start!<br><br>“I see!” you tell the otter, “that goofy stunt really did help me think about what tasks I needed to prioritise.”<br><br>The otter splashes about, rubbing its cheeks with glee, “I’m glad my little plot got you thinking about your tasks in a different way.” He dives under the water, resurfacing nearby, “Remember to keep your lists achievable. Rewards help too, so take these!”",
|
||||
"questCatText": "A Purrplexing Predicament",
|
||||
"questCatBoss": "The Purrplexer",
|
||||
"questCatRageTitle": "Furious Bapping",
|
||||
"questCatRageDescription": "This bar fills when you don't complete your Dailies. When it's full, the Purrplexer will take away some of your party's MP!",
|
||||
"questCatRageEffect": "The Purrplexer knocks the magic objects you've collected off the table! The party's MP is reduced!",
|
||||
"questCatDropCatEgg": "Cat (Egg)",
|
||||
"questCatUnlockText": "Unlocks Cat Eggs for Purchase in the Market.",
|
||||
"questChameleonUnlockText": "Unlocks Chameleon Eggs for purchase in the Market",
|
||||
"questCrabText": "The Fiddling Crab",
|
||||
"questCrabCompletion": "You and the crab figure out how to work together to get everything in just the right place, ending up with a fine sandy burrow. The crab happily nestles in.<br><br>\"Thank ya!\" she says, making herself comfy. \"Now this is a hole that's made just for me. I can finally enjoy all my perfectly placed decorations. Here, take these lil guys as a token of my appreciation. It's an offer you can't refuse!\"",
|
||||
"questCrabBoss": "Fiddling Crab",
|
||||
"questCrabRageTitle": "Distracting Fiddling",
|
||||
"questCrabRageDescription": "This bar fills when you don't complete your Dailies. When it's full, the Fiddling Crab will take away some of your party's MP!",
|
||||
"questCrabRageEffect": "The Fiddling Crab distracts you with decorating, slowing your work on digging and draining some of your magic. The party's MP is reduced!",
|
||||
"questCrabDropCrabEgg": "Crab (Egg)",
|
||||
"questCrabUnlockText": "Unlocks Crab Eggs for purchase in the Market."
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
"remindersToLogin": "Reminders to check in to Habitica",
|
||||
"unsubscribedSuccessfully": "Unsubscribed successfully!",
|
||||
"unsubscribedTextUsers": "You have successfully unsubscribed from all Habitica emails. You can enable only the emails you want to receive from <a href=\"/user/settings/notifications\">Settings > > Notifications</a> (requires login).",
|
||||
"unsubscribedTextOthers": "You won't receive any other email from Habitica.",
|
||||
"unsubscribedTextOthers": "You won't receive any other mail from Habitica.",
|
||||
"unsubscribeAllEmails": "Unsubscribe from Emails",
|
||||
"unsubscribeAllEmailsText": "Habitica will be unable to notify you via email about important changes to the site or your account.",
|
||||
"unsubscribeAllPush": "Unsubscribe from all Push Notifications",
|
||||
@@ -117,7 +117,7 @@
|
||||
"generate": "Generate",
|
||||
"getCodes": "Get Codes",
|
||||
"webhooks": "Webhooks",
|
||||
"webhooksInfo": "Webhooks provide a way for developers to receive notifications when a particular action is performed, such as scoring or updating a Task, or sending a message in a Group. By creating a webhook, you will be able to listen to changes in Habitica and build apps that respond to these changes.<br><br>For additional information and examples on webhooks, please visit our <a target=\"_blank\" href=\"https://habitica.fandom.com/wiki/Webhooks\">API Docs</a>",
|
||||
"webhooksInfo": "Webhooks provide a way for developers to receive notifications when a particular action is performed, such as scoring or updating a Task, or sending a message in a Group. By creating a webhook, you will be able to listen to changes in Habitica and build apps that respond to these changes.<br><br>For additional information and examples on webhooks, please visit our <a target=\"_blank\" href=\"https://habitica.com/apidoc/#api-Webhook-AddWebhook\">API Docs</a>.",
|
||||
"enabled": "Enabled",
|
||||
"webhookURL": "Webhook URL",
|
||||
"invalidUrl": "invalid URL",
|
||||
@@ -196,10 +196,10 @@
|
||||
"remove": "Remove",
|
||||
"resetTextLocal": "If you're absolutely certain, type your password into the text box below.",
|
||||
"resetTextSocial": "If you're absolutely certain, type <b>\"<%= magicWord %>\"</b> into the text box below.",
|
||||
"APITokenDisclaimer": "<b>Your API Token is like a password; Do not share it publicly.</b> You may occasionally be asked for your User ID, but never post your API Token where others can see it, including on Github.<br><br><b>Note:</b> If you need a new API Token (e.g., if you accidentally shared it), email <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> with your User ID and current Token. Once it is reset you will need to re-authorize everything by logging out of the website and mobile app and by providing the new Token to any other Habitica tools that you use.",
|
||||
"APITokenDisclaimer": "<b>Your API Token is like a password; Do not share it publicly.</b> You may occasionally be asked for your User ID, but never post your API Token where others can see it, including on Github.<br><br><b>Note:</b> If you need a new API Token (e.g., if you accidentally shared it), email <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> with your User ID and current Token. Once it is reset you will need to re-authorise everything by logging out of the website and mobile app and by providing the new Token to any other Habitica tools that you use.",
|
||||
"audioThemeDisclaimer": "Audio themes add optional sound effects to the Habitica website. Volume levels are controlled using your computer's volume settings.",
|
||||
"gemCap": "Gem Cap",
|
||||
"nextHourglass": "Next Hourglass",
|
||||
"nextHourglass": "Next Mystic Hourglass Delivery",
|
||||
"transaction_buy_gold": "<b>Bought</b> with gold",
|
||||
"transaction_create_challenge": "<b>Created</b> challenge",
|
||||
"transaction_create_bank_challenge": "<b>Created</b> bank challenge",
|
||||
@@ -220,7 +220,7 @@
|
||||
"transaction_debug": "Debug Action",
|
||||
"transaction_buy_money": "<b>Bought</b> with money",
|
||||
"transaction_contribution": "<b>Tier</b> change",
|
||||
"nextHourglassDescription": "Subscribers receive Mystic Hourglasses within\nthe first three days of the month.",
|
||||
"nextHourglassDescription": "Subscribers receive a Mystic Hourglass, a Mystery Gear Set, and have their Gems restocked in the Market within the first two days of the month.",
|
||||
"transaction_spend": "<b>Spent</b> on",
|
||||
"transaction_gift_receive": "<b>Received</b> from",
|
||||
"generalSettings": "General Settings",
|
||||
@@ -233,7 +233,7 @@
|
||||
"siteLanguage": "Site Language",
|
||||
"showLevelUpModal": "When Gaining a Level",
|
||||
"showHatchPetModal": "When Hatching a Pet",
|
||||
"showRaisePetModal": "When Raising a Pet into a Mount",
|
||||
"showRaisePetModal": "When Growing a Pet into a Mount",
|
||||
"showStreakModal": "When Attaining a Streak Achievement",
|
||||
"baileyAnnouncement": "Latest Bailey Announcement",
|
||||
"view": "View",
|
||||
@@ -257,5 +257,6 @@
|
||||
"APITokenTitle": "API Token",
|
||||
"userNameSuccess": "Username successfully changed",
|
||||
"addWebhook": "Add Webhook",
|
||||
"changeEmailDisclaimer": "This is the email address that you use to log in to Habitica, as well as receive notifications."
|
||||
"changeEmailDisclaimer": "This is the email address that you use to log in to Habitica, as well as receive notifications.",
|
||||
"transaction_subscription_bonus": "<b>Subscription</b> bonus"
|
||||
}
|
||||
|
||||
@@ -897,5 +897,8 @@
|
||||
"backgroundOldFashionedTeaShopNotes": "Deléitate con una infusión restauradora en la Tienda de Té Entrañable.",
|
||||
"backgrounds032025": "CONJUNTO 130: Publicado en Marzo 2025",
|
||||
"backgroundMountainSceneWithBlossomsText": "Floreada Escena Montañosa",
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Disfruta de las hermosas vistas y delicados aromas en una Floreada Escena Montañosa."
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Disfruta de las hermosas vistas y delicados aromas en una Floreada Escena Montañosa.",
|
||||
"backgrounds0420205": "CONJUNTO 131: Publicado en Abril 2025",
|
||||
"backgroundGardenWithFlowerBedsText": "Jardín con Parterres de Flores",
|
||||
"backgroundGardenWithFlowerBedsNotes": "Disfruta la explosión floral de la primavera en el Jardín con Parterres de Flores."
|
||||
}
|
||||
|
||||
@@ -399,5 +399,12 @@
|
||||
"questEggOtterMountText": "Nutria",
|
||||
"questEggOtterAdjective": "latrocida",
|
||||
"hatchingPotionJade": "Jade",
|
||||
"questEggOtterText": "Nutria"
|
||||
"questEggOtterText": "Nutria",
|
||||
"questEggAlpacaText": "Alpaca",
|
||||
"questEggAlpacaMountText": "Alpaca",
|
||||
"hatchingPotionBalloon": "Globo",
|
||||
"questEggAlpacaAdjective": "una colmada",
|
||||
"hatchingPotionCryptid": "Críptido",
|
||||
"wackyPotionNotes": "Vierte esto en un huevo y eclosionará como una Mascota Absurda <%= potText(locale) %>.",
|
||||
"wackyPotionAddlNotes": "No puede convertirse en una Montura o usarse en huevos de Mascotas de Misión."
|
||||
}
|
||||
|
||||
@@ -3301,5 +3301,17 @@
|
||||
"shieldSpecialSpring2025HealerNotes": "Puedes usar este pétalo mutante para promover la bondad y repeler el mal o para alejar los pensamientos negativos. ¡Aprovecha que ya es primavera en el…! Aumenta la Constitución en <%= con %>. Equipamiento de edición limitada Primavera 2025.",
|
||||
"shieldMystery202502Notes": "Este día de San Valentín y cada día al ser el hazmerreír de aquellos que te rodeen, que tu corazón sea tan ligero como estos globos flotantes que sostienes. No otorga ningún beneficio. Artículo de Suscriptor Febrero 2025.",
|
||||
"shieldArmoireSpringPetalUchiwaText": "Abanico Uchiwa de Pétalo Primaveral",
|
||||
"eyewearMystery202503Text": "Ojos Jade de Juggernaut"
|
||||
"eyewearMystery202503Text": "Ojos Jade de Juggernaut",
|
||||
"armorMystery202504Text": "Armadura de Yeti Esquivo",
|
||||
"armorMystery202504Notes": "¿Abominable? ¡Yo mas bien diría adorable! No otorga ningún beneficio. Artículo de Suscriptor Abril 2025.",
|
||||
"armorArmoireSillyOrangeTuxedoText": "Esmoquin Tonto Anaranjado",
|
||||
"armorArmoireSillierBlueTuxedoText": "Esmoquin MasTonto Azulado",
|
||||
"armorArmoireSillierBlueTuxedoNotes": "Saca tu auténtico ser con este traje único. Aumenta la fuerza en <%= str %>. Armario Encantado: Conjunto Esmoquin MasTonto (Artículo 1 de 2).",
|
||||
"headMystery202504Text": "Careta de Yeti Esquivo",
|
||||
"headMystery202504Notes": "Lleva esta misteriosa careta y pasa así totalmente desapercibido como parte de la gran familia de oscuros críptidos. No otorga ningún beneficio. Artículo de Suscriptor Abril 2025.",
|
||||
"headArmoireSillyOrangeTophatText": "Sombrero de Copa Tonto Anaranjado",
|
||||
"headArmoireSillyOrangeTophatNotes": "Con un corte de pelo estilo tarta de calabaza vas a estar divino de la muerte. Aumenta la fuerza y la constitución en <%= attrs %> cada uno. Armario Encantado: Conjunto Esmoquin Tonto (Artículo 2 de 2).",
|
||||
"headArmoireSillierBlueTophatText": "Sombrero de Copa MasTonto Azulado",
|
||||
"headArmoireSillierBlueTophatNotes": "Un poco de clase, un gran abismo en tus cotas de sofisticación. Aumenta la fuerza y la constitución en <%= attrs %> cada uno. Armario Encantado: Conjunto Esmoquin MasTonto (Artículo 2 de 2).",
|
||||
"armorArmoireSillyOrangeTuxedoNotes": "Un traje adecuado para tus labores diarias. Aumenta la Constitución en <%= con %>. Armario Encantado: Conjunto Esmoquin Tonto (Artículo 1 de 2)."
|
||||
}
|
||||
|
||||
@@ -834,5 +834,14 @@
|
||||
"questJadeDropJadePotion": "Poción de Eclosión Jade",
|
||||
"questJadeUnlockText": "Desbloqueas la Poción de Eclosión Jade y así que puedas comprarla en el Mercado.",
|
||||
"questJadeBoss": "Jadeando Jarto",
|
||||
"questJadeCompletion": "¡Después de incontables recaídas de alguna manera inexplicable has conseguido hacer rodar el pedrusco de jade hasta la cima del risco! La figura de aspecto pétreo te alcanza y te ofrece una bonita sonrisa. Empuja el pedrusco con suave gesto y ves horrorizado como vuelve a rodar cuesta abajo hasta la posición que estaba justo cuando empezaste tu ardua tarea.<br><br> “¡Eh! ¿por qué has hecho eso? ¡Alguien va a tener que volver a hacer todo el trabajo otra vez!” le espetas.<br><br> “Solo por que tengas que intentar hacer las cosas más de una vez no significa que no hayas logrado nada,” te dice la criatura. “Por ahora, ¡céntrate en lo que has conseguido y disfruta de tu recompensa!”<br><br>Te despiertas sobresaltado en tu sofá, el trozo de papiro caído en el suelo. ¡Encima de la mesa tres botellas llenas con un líquido mantecoso color jade! Quizás debas lavar los platos y dejar eso solucionado y después tomarte un descanso para ver que resulta de rociar estas pociones sobre algunos huevos de mascota en los establos…"
|
||||
"questJadeCompletion": "¡Después de incontables recaídas de alguna manera inexplicable has conseguido hacer rodar el pedrusco de jade hasta la cima del risco! La figura de aspecto pétreo te alcanza y te ofrece una bonita sonrisa. Empuja el pedrusco con suave gesto y ves horrorizado como vuelve a rodar cuesta abajo hasta la posición que estaba justo cuando empezaste tu ardua tarea.<br><br> “¡Eh! ¿por qué has hecho eso? ¡Alguien va a tener que volver a hacer todo el trabajo otra vez!” le espetas.<br><br> “Solo por que tengas que intentar hacer las cosas más de una vez no significa que no hayas logrado nada,” te dice la criatura. “Por ahora, ¡céntrate en lo que has conseguido y disfruta de tu recompensa!”<br><br>Te despiertas sobresaltado en tu sofá, el trozo de papiro caído en el suelo. ¡Encima de la mesa tres botellas llenas con un líquido mantecoso color jade! Quizás debas lavar los platos y dejar eso solucionado y después tomarte un descanso para ver que resulta de rociar estas pociones sobre algunos huevos de mascota en los establos…",
|
||||
"questAlpacaText": "La Alpaca Colmada",
|
||||
"questAlpacaNotes": "Los rayos de sol brillan con fuerza mientras caminas por los senderos rocosos de las Montañas Crueles. Has estado planeando por meses esta expedición para tu grupo de amigos, investigando todos los detalles del viaje. Sin embargo la cantidad de suministros que llevas en la espalda es demasiado pesado, a cada paso te sientes más cargado y con menos ganas de aventura.<br><br>De repente escuchas el estrépito de unas pezuñas andando por la senda que acabas de dejar atrás. Una alpaca con su esponjoso pelaje se acerca hacia ti colmada hasta las trancas con un montón de paquetes y de aperos a la espalda.<br><br> “Estás arrastrando los pies, ¡campeón!¡ Y eso que solo llevas una mochilita!” Te dice mientras te adelanta.<br><br> “Para ti es fácil de decir,” suspiras. “Invertí mucho tiempo en planear esta aventura, y ahora estoy aquí, sufriendo, ni siquiera un ápice de diversión…”<br><br> “No te desanimes,” te grita la alpaca. “¡Te voy a enseñar algo que aprendí hace tiempo, pequeño saltamontes!” Ella se encabrita, ¡y de repente un saco de dormir sale volando hacia ti ¿Qué clase de ayuda es esta?!",
|
||||
"questAlpacaCompletion": "Felizmente ninguno de las cosas que la alpaca te va arrojando es demasiado pesada, pero ya tienes las manos llenas. “¿Qué es todo esto?” le preguntas un poco cabreado.<br><br> “Si planeas un viaje con amigos, ¡no deberías llevar tu todas las cosas, melón! Estoy segura que tus amigos prefieren que dejes algunas cosas en vez de ir arrastrándote destruido psicológicamente por el peso. De todas maneras, venga, dame algunos de tus suministros, campeón. Soy una animal entrenada y preparada para este tipo de cosas y creo que ya has aprendido la lección, burro,” te dice guiñándote un ojo. “Quédate con ese paquete azul como premio por otra lección de vida aprendida, calamar. ¡Te veo en el pico!”",
|
||||
"questAlpacaBoss": "La Alpaca Colmada",
|
||||
"questAlpacaRageTitle": "Bultos-Tambaleantes",
|
||||
"questAlpacaRageDescription": "Está barra de estado se llena cuando no completas tus Tareas Diarias. Cuando está completa, ¡La Alpaca Colmada recupera parte de su salud!",
|
||||
"questAlpacaRageEffect": "¡La Alpaca Colmada te lanza parte de su equipaje! ¡El monstruo recupera el 30% de su salud!",
|
||||
"questAlpacaDropAlpacaEgg": "Alpaca (huevo)",
|
||||
"questAlpacaUnlockText": "Desbloqueados los Huevos de Alpaca para su Compra en el Mercado"
|
||||
}
|
||||
|
||||
@@ -261,5 +261,6 @@
|
||||
"maxGemCapGift": "Ellos tendrán el máximo <strong>Capacidad de Gemas</strong>",
|
||||
"mysterySet202501": "Conjunto Vinculaescarcha Pálido",
|
||||
"mysterySet202502": "Conjunto de Arlequín Sincero",
|
||||
"mysterySet202503": "Conjunto de Juggernaut Jade"
|
||||
"mysterySet202503": "Conjunto de Juggernaut Jade",
|
||||
"mysterySet202504": "Conjunto de Yeti Esquivo"
|
||||
}
|
||||
|
||||
@@ -18,15 +18,15 @@
|
||||
"webFaqAnswer30": "Si tu HP llega a cero, perderás un nivel, todo tu oro y una pieza de equipo que podrás volver a comprar.",
|
||||
"faqQuestion31": "¿Por qué perdí HP al interactuar con una tarea que no es negativa?",
|
||||
"webFaqAnswer31": "Si completas una tarea y pierdes HP cuando no deberías, es porque hubo un retraso mientras el servidor sincronizaba los cambios hechos en otras plataformas. Por ejemplo, si usas oro, maná o pierdes HP en la aplicación móvil y luego completas una tarea en el sitio web, el servidor simplemente está confirmando que todo esté sincronizado.",
|
||||
"faqQuestion32": "¿Cuándo puedo elegir una clase?",
|
||||
"webFaqAnswer32": "En Habitica hay cuatro clases: Guerrero, Mago, Pícaro y Sanador. Todos los jugadores comienzan como Guerreros hasta alcanzar el nivel 10. Una vez que llegues al nivel 10, podrás elegir una nueva clase o continuar como Guerrero.\n\nCada clase tiene su propio Equipo y Habilidades. Si no quieres elegir una clase, puedes seleccionar \"No participar\". Si decides no participar, siempre podrás activar el Sistema de Clases más adelante desde la Configuración.",
|
||||
"faqQuestion32": "¿Cómo puedo elegir una clase?",
|
||||
"webFaqAnswer32": "Todos los jugadores empiezan como clase Guerrero hasta que alcanzan el nivel 10. Una vez alcanzado el nivel 10, se te dará a elegir entre seleccionar una nueva clase o continuar como Guerrero.\n\nCada clase tiene diferente Equipo y Habilidades. Si no quieres elegir una clase, puedes seleccionar «Opt Out». Si eliges «Opt Out», siempre puedes activar el Sistema de Clases desde Ajustes más tarde.\n\nSi quieres cambiar tu clase después del Nivel 10, puedes hacerlo usando el Orbe de Renacimiento. El Orbe del Renacimiento está disponible en el Mercado por 6 Gemas en el nivel 50 o gratis en el nivel 100.\n\nTambién puedes cambiar de clase en cualquier momento desde Ajustes por 3 gemas. Esto no restablecerá tu nivel como el Orbe del Renacimiento, pero te permitirá reasignar los puntos de habilidad que has acumulado al subir de nivel para que coincidan con tu nueva clase.",
|
||||
"webFaqAnswer36": "¡Hay infinitas formas de personalizar la apariencia de tu Avatar en Habitica! Puedes cambiar la forma del cuerpo, el estilo y color de cabello, el color de piel o agregar gafas y ayudas para la movilidad seleccionando \"Personalizar Avatar\" desde el menú.\n\nPara personalizar tu Avatar en la aplicación móvil:\n*Desde el menú, selecciona \"Personalizar Avatar\"\n\nPara personalizar tu Avatar en el sitio web:\n*Desde el menú de usuario en la navegación, selecciona \"Personalizar Avatar\"",
|
||||
"faqQuestion33": "¿Qué es la barra azul que aparece después del nivel 10?",
|
||||
"webFaqAnswer33": "Después de desbloquear el Sistema de Clases, también obtienes acceso a Habilidades que requieren Maná para usarse. La cantidad de Maná depende de tu estadística de INT y puede modificarse con Habilidades y Equipamiento.",
|
||||
"faqQuestion34": "¿Qué tipo de comida le gusta a mi mascota?",
|
||||
"webFaqAnswer34": "Las mascotas prefieren la comida que coincide con su color. Las mascotas base son la excepción, pero todas ellas disfrutan del mismo alimento. A continuación, puedes ver qué comida prefiere cada tipo de mascota:\n\nMascotas base → Carne\nMascotas blancas → Leche\nMascotas del desierto → Papas\nMascotas rojas → Fresas\nMascotas sombrías → Chocolate\nMascotas esqueléticas → Pescado\nMascotas zombis → Carne podrida\nMascotas de Algodón de Azúcar Rosa → Algodón de azúcar rosa\nMascotas de Algodón de Azúcar Azul → Algodón de azúcar azul\nMascotas doradas → Miel",
|
||||
"faqQuestion35": "¡Alimenté a mi mascota y desapareció! ¿Qué pasó?",
|
||||
"webFaqAnswer35": "Una vez que hayas alimentado a tu mascota lo suficiente para convertirla en una Montura, necesitarás eclosionar otra mascota del mismo tipo si quieres tenerla nuevamente en tu establo.\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas\n\nPara ver tus Monturas en la aplicación móvil:\nDesde el Menú, selecciona \"Mascotas y Monturas\" y cambia a la pestaña de Monturas.\n\nPara ver tus Monturas en el sitio web:\nDesde el menú de Inventario, selecciona \"Mascotas y Monturas\" y desplázate hacia abajo hasta la sección de Monturas",
|
||||
"webFaqAnswer35": "Una vez que hayas alimentado a tu mascota lo suficiente como para convertirla en una montura, tendrás que volver a incubar ese tipo de mascota para tenerla en tu establo.\n\nPara ver las Monturas en las aplicaciones móviles:\n\n * En el menú, selecciona «Mascotas y monturas» y ve a la pestaña «Monturas»\n\nPara ver monturas en el sitio web:\n\n * En el menú Inventario, selecciona «Mascotas y monturas» y desplázate hasta la sección Monturas",
|
||||
"faqQuestion36": "¿Cómo cambio la apariencia de mi Avatar?",
|
||||
"faqQuestion37": "¿Por qué mi equipamiento no se muestra en mi Avatar?",
|
||||
"webFaqAnswer37": "Revisa si la opción de Disfraz está activada. Si tu Avatar está usando un Disfraz, ese conjunto de Equipamiento se mostrará en lugar de tu Equipo de Batalla.\n\nPara activar o desactivar el Disfraz en la aplicación móvil:\n*Desde el menú, selecciona \"Equipamiento\" para encontrar el interruptor del Disfraz.\n\nPara activar o desactivar el Disfraz en el sitio web:\n*Desde tu Inventario, selecciona \"Equipamiento\" y ubica el interruptor del Disfraz en la pestaña de Disfraz en el cajón de Equipamiento",
|
||||
@@ -37,11 +37,11 @@
|
||||
"faqQuestion40": "¿Que son gemas, y como puedo obtenerlas?",
|
||||
"webFaqAnswer40": "Las gemas son la moneda premium de Habitica y se usan para comprar equipamiento, personalizaciones de avatar, fondos y más.\nPuedes comprarlas en paquetes o con oro si eres suscriptor de Habitica. También puedes ganarlas si eres seleccionado como ganador de un desafío.",
|
||||
"faqQuestion41": "¿Qué son los Relojes de Arena Místicos y cómo los obtengo?",
|
||||
"webFaqAnswer41": "Los Relojes de Arena Místicos son la moneda exclusiva de los suscriptores de Habitica y se usan en la Tienda del Viajero en el Tiempo.\nLos suscriptores reciben un Reloj de Arena Místico al inicio de cada mes en el que disfrutan de beneficios de suscripción, junto con muchas otras recompensas.\nSi te interesan los fondos, mascotas, misiones y equipamiento especiales de la Tienda del Viajero en el Tiempo, ¡consulta nuestras opciones de suscripción!",
|
||||
"webFaqAnswer41": "Los Relojes de Arena Místicos son la moneda exclusiva para suscriptores de Habitica que se utiliza en la Tienda de los Viajeros en el Tiempo. Los suscriptores reciben un Reloj de Arena Místico al comienzo de cada mes en el que tienen beneficios de suscripción, junto con un montón de otras ventajas. Asegúrate de consultar nuestras opciones de suscripción si estás interesado en los fondos, mascotas, misiones y equipamiento especiales que se ofrecen en la Tienda de los Viajeros en el Tiempo!",
|
||||
"faqQuestion42": "¿Qué puedo hacer para aumentar la responsabilidad?",
|
||||
"webFaqAnswer42": "Una de las mejores formas de motivarte y mantenerte responsable con tus tareas es unirte a un Grupo.\nFormar parte de un Grupo con otros jugadores de Habitica te permite participar en Misiones para obtener mascotas y equipo, recibir mejoras de habilidades de tus compañeros y aumentar tu motivación.\n\nOtra forma de mejorar tu compromiso es unirte a un Desafío. Los desafíos agregan automáticamente tareas relacionadas con un objetivo específico a tu lista. También añaden un elemento de competencia contra otros jugadores, lo que puede darte un impulso extra mientras intentas ganar el premio de Gemas.Existen Desafíos oficiales creados por el equipo de Habitica, así como desafíos creados por otros jugadores.",
|
||||
"faqQuestion43": "¿Cómo puedo tomar misiones?",
|
||||
"webFaqAnswer43": "Para comenzar una Misión, primero debes ser miembro de un Grupo.\nLos Grupos pueden ser aventuras en solitario, donde enfrentas las Misiones por tu cuenta, o puedes invitar a otros jugadores de Habitica para completarlas más rápido.\n\nPara iniciar una Misión, selecciona un Pergamino de Misión desde tu inventario y presiona el botón \"Comenzar Misión\" en tu Grupo. Luego, completa tus tareas como de costumbre para avanzar en la Misión.En una Misión contra un Jefe, infligirás daño al enemigo.En una Misión de Colección, tendrás la oportunidad de encontrar objetos\nEl progreso pendiente se aplica al día siguiente. Cuando inflijas suficiente daño o reúnas todos los objetos, la Misión se completará y recibirás tus recompensas!",
|
||||
"webFaqAnswer43": "Para empezar una misión, necesitarás ser miembro de un grupo. Los grupos pueden ser aventuras en solitario en las que te enfrentas a las misiones en solitario, o puedes invitar a otros jugadores de Habitica para enfrentarte a las misiones a un ritmo más rápido.\n\nElige un pergamino de misión de tu inventario seleccionando el botón «Comenzar misión» de tu grupo. Completa las tareas como lo harías normalmente para avanzar en la misión. Acumularás daño contra un monstruo si te enfrentas a una misión de jefe, o tendrás la oportunidad de encontrar objetos si te enfrentas a una misión de recolección. Todo el progreso pendiente se aplica al día siguiente.\n\nCuando hagas suficiente daño o recojas todos los objetos, la misión se habrá completado y recibirás tu recompensa!",
|
||||
"faqQuestion44": "¿Cómo puedo eliminar tareas de un desafío?",
|
||||
"webFaqAnswer44": "**Necesitarás salir del Desafío o esperar a que se cierre para eliminar las tareas asociadas.** Un ícono de megáfono rojo indica que el Desafío ha sido cerrado, mientras que un megáfono gris indica que el Desafío aún está activo.\n\n**Para eliminar tareas de Desafíos en la app de *Android*:**\n1. Toca la tarea que pertenece al Desafío.\n2. Toca en **\"Eliminar\"** en la esquina superior derecha de la pantalla.\n3. Elige eliminar las tareas del Desafío de tu lista de tareas.\n\n**Para eliminar tareas de Desafíos en la app de *iOS*:**\n1. Encuentra la tarea del Desafío que deseas eliminar y verifica el ícono de megáfono.\n2. Si el ícono de megáfono está rojo, toca la tarea y selecciona **\"Eliminar\"** en la parte inferior.\n3. Si el ícono de megáfono está gris, deberás buscar el Desafío y salir de él para eliminar la tarea.\n\n**Para eliminar tareas de Desafíos en el *sitio web*:**\n1. Encuentra la tarea del Desafío que deseas eliminar y verifica el ícono de megáfono.\n2. Si el ícono de megáfono está rojo, haz clic en él y elige eliminar las tareas de tu lista.\n3. Si el ícono de megáfono está gris, necesitarás buscar el Desafío y salir de él para eliminar la tarea.",
|
||||
"faqQuestion45": "Mi avatar se transformó en un muñeco de nieve, estrella de mar, flor o fantasma. ¿Cómo puedo volver a mi apariencia original?",
|
||||
@@ -182,5 +182,66 @@
|
||||
"contentAnswer301": "<strong>7. de cada mes:</strong>Se añaden nuevos objetos al Armario Encantado y se lanza un nuevo fondo.Los nuevos disponibles en la Tienda de Personalizacion rotan.",
|
||||
"contentAnswer60": "¡Todos los demás eventos continuarán con normalidad! Todos seguirán recibiendo sus recompensas especiales y comida temática como hasta ahora.",
|
||||
"contentAnswer61": "Las tarjetas del Día de San Valentín y de Año Nuevo se lanzarán en fechas específicas.",
|
||||
"contentAnswer410": "¡Quédate para descubrirlo! Muchas de las nuevas incorporaciones fueron muy solicitadas y se lanzarán a lo largo del año."
|
||||
"contentAnswer410": "¡Quédate para descubrirlo! Muchas de las nuevas incorporaciones fueron muy solicitadas y se lanzarán a lo largo del año.",
|
||||
"subscriptionBenefitsAdjustments": "Ajustes a los Beneficios de Suscriptores",
|
||||
"subscriptionBenefitsFaqTitle": "Preguntas frecuentes: Ajustes a beneficios de suscriptores",
|
||||
"subscriptionHeading0": "Cambios en los Relojes de Arena Místicos",
|
||||
"subscriptionDetail001": "Todos los suscriptores recibirán los Relojes de Arena Místicos en el mismo calendario, coincidiendo con el cronograma de lanzamiento de los Sets de Equipo Misteriosos mensuales.",
|
||||
"subscriptionHeading1": "Cambios en las Gemas de Suscriptor",
|
||||
"subscriptionDetail451": "Cada suscripción regalada se sumará a la cantidad de meses que un jugador tiene beneficios de suscripción, lo que le permitirá seguir recibiendo más relojes de arena místicos y aumentos de su tope de gemas cada mes que pase.",
|
||||
"subscriptionDetail470": "Los beneficios de los suscriptores del Plan de grupo se comportarán igual que los de una suscripción periódica de 1 mes. Recibirás un Reloj de arena místico al principio de cada mes y la cantidad de Gemas que puedes comprar cada mes en el Mercado aumentará en 2 hasta llegar a 50.",
|
||||
"contentAnswer62": "Las Pociones Mágicas de San Valentín (de eclosión) ya forman parte de la programación mensual.",
|
||||
"contentAnswer63": "Las Mascotas Extravagantes no se irán hasta finales de abril.",
|
||||
"contentAnswer70": "Los Fondos, Misiones, Mascotas y Monturas disponibles en la Tienda del Viajero en el Tiempo permanecerán disponibles durante todo el año.",
|
||||
"contentAnswer71": "Manténganse atentos para más actualizaciones sobre las mejoras planeadas para la experiencia de la Tienda del Viajero del Tiempo.",
|
||||
"subscriptionPara0": "¡Estamos mejorando las suscripciones de Habitica como nunca, con más Relojes de Arena Místicos y Gemas! Estos cambios harán que tus beneficios de suscripción sean mucho más claros.",
|
||||
"subscriptionDetail000": "Al estar suscrito por 12 meses, recibirás 12 Relojes de Arena Místicos, en lugar de los 4 anteriores.",
|
||||
"subscriptionDetail002": "Los suscriptores ya no tendrán que esperar hasta el mes siguiente a su pago recurrente para recibir los Relojes de Arena Místicos.",
|
||||
"subscriptionDetail01": "Las nuevas suscripciones recurrentes de 12 meses recibirán un bono único inicial de 12 Relojes de Arena Místicos adicionales al momento de la compra.",
|
||||
"subscriptionDetail010": "Esto será adicional al Reloj de Arena Místico mensual que todos los nuevos suscriptores reciben después de su compra inicial.",
|
||||
"subscriptionDetail012": "Este bono no aplica para suscripciones regaladas.",
|
||||
"subscriptionDetail100": "Las nuevas suscripciones de 1, 3 y 6 meses comenzarán con 24 gemas por mes, y esa cantidad aumentará cada mes que tengan beneficios.",
|
||||
"subscriptionDetail101": "Los suscriptores que actualmente tengan una cantidad impar de gemas por mes verán su límite de gemas redondeado al número par más cercano.",
|
||||
"subscriptionDetail11": "La cantidad de gemas que puedes comprar cada mes a cambio de oro ya no se restablecerá si caduca tu suscripción.",
|
||||
"subscriptionHeading2": "¿Por qué hacemos estos cambios?",
|
||||
"subscriptionDetail20": "Con la estructura actual, puede resultar difícil entender cuántos relojes de arena místicos recibirías y cuándo.",
|
||||
"subscriptionDetail21": "Se sabía que los cuatro niveles de suscripción causaban complicaciones al subir o bajar de nivel.",
|
||||
"subscriptionDetail22": "Las suscripciones regaladas y recurrentes tenían experiencias de beneficios y normas contradictorias que queríamos simplificar.",
|
||||
"subscriptionDetail24": "Queríamos que los suscriptores tuvieran más de cuatro oportunidades al año para recoger artículos de la Tienda de los Viajeros en el Tiempo.",
|
||||
"subscriptionDetail25": "Entendemos que las finanzas cambian y no queríamos castigar a los abonados por suscripciones caducadas quitándoles los beneficios que se habían ganado.",
|
||||
"subscriptionHeading3": "Premios del día del lanzamiento",
|
||||
"subscriptionDetail30": "Los jugadores con suscripciones recurrentes de 1 mes o suscripciones de Plan de grupo recibirán 2 relojes de arena místicos y 20 gemas.",
|
||||
"subscriptionDetail31": "Los jugadores con suscripciones recurrentes de 3 o 6 meses recibirán 4 relojes de arena místicos y 20 gemas.",
|
||||
"subscriptionDetail33": "Para recibir estas recompensas, su cuenta debe tener una suscripción recurrente activa antes del 19 de noviembre.",
|
||||
"subscriptionDetail41": "¿Cambiará el precio de las suscripciones cuando salga a la venta?",
|
||||
"subscriptionDetail410": "Estos cambios no afectarán al precio actual de las suscripciones.",
|
||||
"subscriptionDetail42": "Si no me conecto durante un mes mientras estoy suscrito, ¿perderé esas ventajas?",
|
||||
"subscriptionDetail420": "Al igual que con los Conjuntos de equipo misterioso, no perderás ningún Reloj de arena místico ni ningún aumento de gemas si no inicias sesión mientras estás suscrito. La próxima vez que inicies sesión, recibirás todos los beneficios adeudados por cada mes que hayas estado suscrito.",
|
||||
"subscriptionDetail43": "Si me suscribo a una suscripción periódica y luego la cancelo, ¿seguiré recibiendo beneficios?",
|
||||
"subscriptionDetail44": "Soy abonado actual, ¿cuántas gemas tendré disponibles en el mercado cada mes tras el cambio?",
|
||||
"subscriptionDetail4400": "Si actualmente has desbloqueado <%= númeroinicial %> Gemas al mes, se te fijará <%= númeroredondeado %>.",
|
||||
"subscriptionDetail45": "¿Conseguiré más relojes de arena místicos o un límite de gemas más alto más rápido comprando suscripciones con más regalos?",
|
||||
"subscriptionDetail46": "Si estuve abonado en el pasado, ¿puedo desbloquear mi antiguo límite de Gemas si me vuelvo a abonar ahora?",
|
||||
"subscriptionDetail460": "Como antes reiniciábamos la cantidad de gemas que podías comprar cada mes cuando se agotaban tus beneficios, los jugadores con beneficios de suscripción caducados tendrán que empezar de cero con este nuevo sistema.",
|
||||
"subscriptionDetail47": "Tengo una suscripción al Plan de Grupo, ¿cómo me afecta esto?",
|
||||
"subscriptionDetail48": "¿Hay algún cambio en otras ventajas de las suscripciones, como los Mystery Gear Sets?",
|
||||
"subscriptionPara2": "Si tiene alguna pregunta no cubierta por las respuestas anteriores, siempre puede ponerse en contacto con nuestro equipo en <%= mailto %>.",
|
||||
"contentQuestion7": "¿Qué otros artículos están disponibles en la Tienda del Viajero en el Tiempo, además de los Sets de Suscriptor pasados?",
|
||||
"contentFaqPara3": "Si tienes alguna pregunta no cubierta arriba, ¡siempre puedes contactar a nuestro equipo en <%= mailto %>! Estamos emocionados con este nuevo calendario de lanzamientos y ansiosos por futuros proyectos para mejorar Habitica para todos los jugadores.",
|
||||
"subscriptionDetail00": "Todos los suscriptores, incluyendo aquellos con suscripciones regaladas, recibirán 1 Reloj de Arena Místico al inicio de cada mes con beneficios activos.",
|
||||
"subscriptionDetail003": "Todos los nuevos suscriptores recibirán 1 Reloj de Arena Místico inmediatamente después de su compra. Esto contará como la entrega del Reloj de Arena Místico del mes actual.",
|
||||
"subscriptionDetail011": "Los jugadores actuales con una suscripción recurrente activa de 12 meses recibirán este bono el día en que estos cambios entren en vigor.",
|
||||
"subscriptionDetail10": "La cantidad de Gemas que los suscriptores pueden comprar con Oro en el Mercado aumentará en 2 cada mes con beneficios activos, hasta alcanzar un máximo de 50.",
|
||||
"subscriptionDetail102": "Las nuevas suscripciones de 12 meses empezarán inmediatamente con la cantidad máxima de gemas al mes, 50 gemas en lugar de las 45 anteriores.",
|
||||
"subscriptionPara1": "Para facilitar la transición al nuevo horario, los suscriptores actuales pueden esperar algunos regalos extra el día del lanzamiento. Queremos agradecerles sinceramente su apoyo durante este cambio!",
|
||||
"subscriptionDetail32": "Los jugadores con suscripciones recurrentes de 12 meses recibirán la bonificación de 12 Relojes de arena místicos mencionada anteriormente y 20 Gemas.",
|
||||
"subscriptionDetail400": "Los suscriptores actuales recibirán su primer reloj de arena místico y +2 gemas añadidas a su límite mensual en su primer inicio de sesión del mes posterior al lanzamiento. Esto significa que si ya has iniciado sesión en noviembre, tu primer aumento regular se producirá en diciembre.",
|
||||
"subscriptionDetail430": "Al cancelar una suscripción recurrente se fijará una fecha de finalización de tus ventajas, pero seguirás teniendo acceso completo a todas las ventajas de una suscripción anterior a esa fecha. Eso significa que seguirás recibiendo mensualmente relojes de arena místicos y aumentos en el tope de gemas al principio de cada mes en el que tengas acceso a esas ventajas.",
|
||||
"subscriptionDetail110": "Si aumentas la cantidad de gemas que puedes comprar cada mes y luego cancelas tu suscripción, podrás volver a comprar la misma cantidad en cualquier momento en el futuro, aunque adquieras un nivel de suscripción inferior.",
|
||||
"subscriptionDetail23": "Regalar un Reloj de arena místico al mes permite a los suscriptores disfrutar de los artículos rotatorios de la Tienda de los Viajeros en el Tiempo.",
|
||||
"subscriptionDetail440": "El día en que estos cambios entren en vigor, los abonados actuales con un número impar de Gemas al mes verán estos ajustes en su tope de Gemas:",
|
||||
"subscriptionDetail40": "Soy suscriptor, ¿cuándo recibiré mi primer Reloj de arena místico normal y el aumento del tope de gemas del nuevo calendario?",
|
||||
"subscriptionDetail450": "Dado que los Relojes de arena místicos y el aumento del tope de gemas son ahora un beneficio mensual, la compra de varias suscripciones de regalos no otorgará más beneficios a la vez.",
|
||||
"subscriptionDetail480": "Estos cambios solo afectan a los relojes de arena místicos y a las gemas de abonado. Todas las demás ventajas seguirán siendo las mismas.",
|
||||
"subscriptionPara3": "Esperamos que este nuevo calendario sea más predecible, permita un mayor acceso a las increíbles existencias de artículos de la Tienda de los Viajeros en el Tiempo y ofrezca aún más motivación para progresar en tus tareas cada mes!"
|
||||
}
|
||||
|
||||
@@ -2528,5 +2528,271 @@
|
||||
"weaponSpecialFall2023HealerText": "Martillo Tronco Grande",
|
||||
"weaponSpecialFall2023HealerNotes": "Este martillo retorcido, con ataques lentos y pesados, inflige golpes curativos en lugar de daño. Aumenta la inteligencia en <%= int %>. Edición limitada de equipo de otoño de 2023.",
|
||||
"weaponSpecialSpring2024MageText": "Bastón de Hibisco",
|
||||
"weaponSpecialSpring2024RogueText": "Cuchillo de Plata"
|
||||
"weaponSpecialSpring2024RogueText": "Cuchillo de Plata",
|
||||
"armorArmoireSoftVioletSuitText": "Traje violeta suave",
|
||||
"weaponMystery202408Text": "Égida Arcana",
|
||||
"weaponArmoireScholarlyTextbooksText": "Libros de texto académicos",
|
||||
"weaponMystery202408Notes": "Un escudo mágico de burbujas que te protege de los hechizos enemigos o te ayuda a flotar en el aire o el agua. No confiere ningún beneficio. Objeto de suscriptor de agosto de 2024.",
|
||||
"weaponArmoireOptimistsCloverText": "Trébol de cuatro hojas",
|
||||
"weaponArmoireScholarlyTextbooksNotes": "Aquí tienes la oportunidad de profundizar y aprender sobre cualquier tema que te interese. ¿Cuál es tu hiperfijación actual? Aumenta la Inteligencia en <%= int %>. Armario Encantado: Conjunto de Uniformes Escolares (Artículo 3 de 4).",
|
||||
"weaponArmoireDragonKnightsLanceText": "Lanza del Caballero Dragón",
|
||||
"armorSpecialBirthday2023Text": "Fabulosas batas de fiesta",
|
||||
"weaponArmoireCorsairsBladeNotes": "Ya sea que lo uses para saquear o para proteger, puedes estar feliz de haber traído esta feroz espada al mar contigo. Solo asegúrate de guardarla de manera segura cuando no la estés usando. Aumenta la Fuerza en <%= str %>. Armario Encantado: Conjunto Corsario (Ítem 3 de 3)",
|
||||
"armorSpecialWinter2024RogueText": "Túnicas de búho nival",
|
||||
"armorSpecialWinter2024RogueNotes": "¿Quién serás con esta túnica? Cubierta de plumas y pelusa, ¡estarás abrigada y discreta! Aumenta la percepción en <%= per %>. Edición limitada 2023-2024.",
|
||||
"armorSpecialWinter2024MageText": "Túnicas de mago narval",
|
||||
"armorSpecialWinter2024MageNotes": "Prácticas y bonitas, estas túnicas te mantendrán abrigado mientras realizas tus habilidades mágicas en el frío. Aumenta la inteligencia en <%= int %>. Edición limitada 2023-2024.",
|
||||
"armorSpecialSpring2024HealerText": "Traje de pájaro azul",
|
||||
"armorSpecialSpring2024MageNotes": "Estos bonitos pétalos te ayudarán a lucir tu poder con estilo. Aumenta tu inteligencia en <%= int %>. Edición limitada primavera 2024.",
|
||||
"armorSpecialSummer2024WarriorText": "Cola de tiburón ballena",
|
||||
"armorSpecialSummer2024RogueText": "Cola de nudibranquio",
|
||||
"armorSpecialSummer2024RogueNotes": "Puede que seas una babosa marina sin caparazón, ¡pero eres una babosa marina con alas! Aumenta la Percepción en <%= per %>. Equipo de edición limitada de verano de 2024.",
|
||||
"armorSpecialSummer2024HealerText": "Armadura de caracol marino",
|
||||
"armorSpecialSummer2024HealerNotes": "No hagas caso a los detractores. ¡Despacio y con constancia es una estrategia válida para afrontar las tareas! Aumenta la Constitución en <%= con %>. Edición limitada de verano de 2024.",
|
||||
"armorMystery202406Notes": "¡Atormenta a tus enemigos con estilo y elegancia! No ofrece ningún beneficio. Artículo de suscriptor de junio de 2024.",
|
||||
"weaponArmoireSpookyCandyBucketNotes": "Con un disfraz tan épico como ese, ¡vas a recibir un montón de dulces! Menos mal que tienes este cubo sin fondo para guardarlos todos. Intenta no picar nada hasta llegar a casa. Aumenta la inteligencia en <%= int %>. Armario Encantado: Set Noche de Terror (Artículo 2 de 2)",
|
||||
"weaponArmoirePottersWheelText": "Torno de alfarero",
|
||||
"armorSpecialSpring2024RogueText": "Túnica de nieve derretida",
|
||||
"weaponSpecialSpring2024WarriorText": "Lanza de fluorita",
|
||||
"weaponSpecialSpring2024HealerText": "Varita de plumas Bluebird",
|
||||
"weaponSpecialSummer2024RogueText": "Nudibranquio Tridente",
|
||||
"weaponSpecialSummer2024WarriorNotes": "Algunos dientes de tiburón desprendidos la transforman en un arma capaz de infligir daño desde cualquier dirección. Aumenta la fuerza en <%= str %>. Edición limitada del equipo de verano de 2024.",
|
||||
"weaponMystery202404Text": "Bastón del Mago Micelial",
|
||||
"weaponSpecialFall2024WarriorText": "Espada de fuego",
|
||||
"weaponSpecialFall2024WarriorNotes": "Esta formidable arma derriba inmediatamente cualquier obstáculo. Aumenta la fuerza en <%= str %>. Edición limitada de otoño de 2024.",
|
||||
"weaponSpecialFall2024RogueText": "Varita de cinta",
|
||||
"weaponSpecialFall2024RogueNotes": "Las tareas se paralizarán ante los giros y vueltas de esta arma hipnotizadora. Aumenta la Fuerza en <%= str %>. Edición limitada de otoño de 2024.",
|
||||
"weaponSpecialFall2024HealerText": "Guadaña espacial",
|
||||
"weaponSpecialFall2024MageText": "Bastón del inframundo",
|
||||
"weaponSpecialFall2024MageNotes": "Los pasos de las tareas se simplificarán al instante con un toque de esta arma brillante. Aumenta la Inteligencia en <%= int %> y la Percepción en <%= per %>. Edición limitada de otoño de 2024.",
|
||||
"armorSpecialBirthday2024Text": "Batas de fiesta ridículas",
|
||||
"weaponArmoireSpookyCandyBucketText": "Cubo de dulces espeluznante",
|
||||
"armorSpecialBirthday2024Notes": "¡Feliz cumpleaños, Habitica! Ponte estas ridículas batas de fiesta para celebrar este maravilloso día. No aporta ningún beneficio.",
|
||||
"armorSpecialSpring2024RogueNotes": "Esta túnica rústica te oculta incluso con el cambio de estaciones. Aumenta la percepción en un <%= per %>. Edición limitada primavera 2024.",
|
||||
"weaponSpecialWinter2025WarriorText": "Hacha de guerra Moose",
|
||||
"weaponSpecialWinter2025WarriorNotes": "¡Un hacha poderosa para un alce poderoso! ¡Serás imparable! Aumenta la Fuerza en <%= str %>. Edición Limitada Invierno 2024-2025.",
|
||||
"weaponSpecialWinter2025HealerNotes": "Lo que necesitas ahora son más luces y una estrella que brille en lo alto. ¡Serás imparable! Aumenta la Inteligencia en <%= int %>. Engranaje de invierno 2024-2025 de edición limitada.",
|
||||
"weaponArmoireDragonKnightsLanceNotes": "Esta lanza roja y plateada ha derribado a muchos oponentes de sus monturas. Aumenta la Constitución en <%= con %>. Armario Encantado: Conjunto de Caballero Dragón (Artículo 3 de 3)",
|
||||
"weaponArmoireFunnyFoolBatonText": "Bastón del tonto gracioso",
|
||||
"armorSpecialWinter2024WarriorNotes": "Resulta que el chocolate, la menta y el glaseado son materiales más resistentes de lo que crees. Aumenta la Constitución en <%= con %>. Edición limitada 2023-2024.",
|
||||
"armorSpecialSpring2022HealerText": "Armadura de peridoto",
|
||||
"armorSpecialWinter2024HealerText": "Armadura congelada",
|
||||
"armorSpecialWinter2024HealerNotes": "Este brillante bloque de hielo mágico te protege mientras planeas tu escape. Aumenta la Constitución en <%= con %>. Edición limitada 2023-2024.",
|
||||
"armorSpecialFall2024RogueText": "Armadura de gato negro",
|
||||
"armorSpecialFall2024WarriorText": "Armadura de diablillo ardiente",
|
||||
"armorSpecialFall2024HealerText": "Armadura de invasor espacial",
|
||||
"armorSpecialFall2024HealerNotes": "Conéctate con la galaxia y cautiva a los espectadores con esta armadura. Aumenta la Constitución en <%= con %>. Edición limitada de otoño de 2024.",
|
||||
"armorSpecialFall2024MageText": "Armadura de hechicero del inframundo",
|
||||
"armorSpecialWinter2025WarriorText": "Armadura de guerrero alce",
|
||||
"armorSpecialWinter2025RogueText": "disfraz de nieve",
|
||||
"armorSpecialWinter2025MageText": "Capa de aurora",
|
||||
"armorMystery202112Text": "Cola de ondina antártica",
|
||||
"armorMystery202401Notes": "Estas túnicas parecen tan delicadas como copos de nieve de cristal, pero te mantendrán abrigado mientras realizas tu magia invernal. No aportan ningún beneficio. Artículo de suscriptor de enero de 2024.",
|
||||
"armorMystery202407Notes": "¡Deslízate por lagos y canales con tu cola rosada! No aporta ningún beneficio. Artículo para suscriptores de julio de 2024.",
|
||||
"armorMystery202412Text": "Abrigo de cola de algodón de bastón de caramelo",
|
||||
"weaponMystery202403Text": "Espada Esmeralda de la Suerte",
|
||||
"weaponMystery202403Notes": "Llevar la espada más grande es sin duda una forma de crear tu propia suerte. No confiere ningún beneficio. Artículo de suscriptor de marzo de 2024.",
|
||||
"weaponArmoireHattersShearsText": "Tijeras afiladas",
|
||||
"armorSpecialWinter2024WarriorText": "Armadura de corteza de menta",
|
||||
"armorMystery202504Text": "Armadura de Yeti esquiva",
|
||||
"weaponSpecialWinter2024HealerNotes": "¡Deshazte de este atasco en un santiamén! Aumenta la Inteligencia en <%= int %>. Edición limitada Invierno 2023-2024.",
|
||||
"weaponArmoireShadyBeachUmbrellaText": "Sombrilla",
|
||||
"weaponArmoireShadyBeachUmbrellaNotes": "La sombra de este paraguas con los colores del arco iris te oculta brevemente de la estrella del día y de cualquier molestia no deseada. Aumenta la percepción en un <%= por %>. Armario encantado: Conjunto junto a la playa (Objeto 3 de 4).",
|
||||
"armorMystery202406Text": "Atuendo del bucanero fantasma",
|
||||
"weaponSpecialSpring2024RogueNotes": "Los desafíos duros como el hielo pueden cortarse en trozos más pequeños. Aumenta la Fuerza en <%= str %>. Edición limitada de primavera de 2024.",
|
||||
"weaponSpecialSpring2024WarriorNotes": "Este colorido cristal te ayudará a concentrar toda tu energía en un ataque. Aumenta la Fuerza en <%= str %>. Edición limitada de primavera de 2024.",
|
||||
"weaponSpecialSpring2024MageNotes": "Este bastón arremolinado está lleno de florituras. Aumenta la Inteligencia en <%= int %> y la Percepción en <%= per %>. Edición limitada de primavera de 2024.",
|
||||
"weaponSpecialSpring2024HealerNotes": "Una brizna de felicidad surge a voluntad para mejorar cualquier estado de ánimo. Aumenta la Inteligencia en <%= int %>. Edición limitada de primavera de 2024.",
|
||||
"weaponSpecialSummer2024RogueNotes": "¡Vuelve los aguijones afilados de los demás contra ellos! Aumenta la Fuerza en <%= str %>. Edición limitada del equipo de verano de 2024.",
|
||||
"weaponSpecialSummer2024WarriorText": "Cortador de dientes de tiburón ballena",
|
||||
"weaponSpecialSummer2024MageText": "Varita de anémona de mar",
|
||||
"weaponSpecialSummer2024MageNotes": "Estos terribles tentáculos pueden distraer, desviar y dirigir la magia a la vez. Aumenta la Inteligencia en <%= int %> y la Percepción en <%= per %>. Engranaje de edición limitada de verano de 2024.",
|
||||
"weaponSpecialSummer2024HealerText": "Caracol de mar Personal",
|
||||
"weaponSpecialSummer2024HealerNotes": "Te sorprenderá descubrir lo duro que es el caparazón del extremo de este bastón. Aumenta la Inteligencia en <%= int %>. Edición limitada de verano de 2024.",
|
||||
"weaponSpecialFall2024HealerNotes": "Tareas que antes eran cósmicamente complicadas son diezmadas por esta impactante hoja. Aumenta la Inteligencia en <%= int %>. Edición limitada de otoño de 2024.",
|
||||
"weaponSpecialSpring2025RogueNotes": "Con un solo golpe, puedes eliminar cualquier obstáculo que se interponga en el camino hacia tus objetivos. Aumenta la fuerza en <%= str %>. Edición limitada del equipo Primavera 2025.",
|
||||
"weaponSpecialWinter2025RogueText": "Ráfaga de copos de nieve",
|
||||
"weaponSpecialWinter2025RogueNotes": "¡Golpea y deslumbra hasta la sumisión a esas tareas difíciles! ¡Serás imparable! Aumenta la Fuerza en <%= str %>. Edición limitada Invierno 2024-2025.",
|
||||
"weaponSpecialWinter2025MageText": "Auroras Boreales",
|
||||
"weaponSpecialSpring2025RogueText": "Mayal de punta de cristal",
|
||||
"weaponSpecialSpring2025HealerNotes": "Con una onda, puedes invocar polinizadores a tu lado para que te ayuden en tus aventuras. Aumenta la Inteligencia en <%= int %>. Engranaje Primavera 2025 de edición limitada.",
|
||||
"weaponSpecialSpring2025MageText": "Bastón Mantis",
|
||||
"weaponMystery202404Notes": "Este bastón te otorgará una sabiduría ancestral tan eterna como las rocas y los árboles. No confiere ningún beneficio. Artículo de suscriptor de abril de 2024.",
|
||||
"weaponSpecialWinter2025HealerText": "Varita de estrella",
|
||||
"weaponSpecialWinter2025MageNotes": "Este impresionante y colorido espectáculo es el telón de fondo perfecto. ¡Serás imparable! Aumenta la Inteligencia en <%= int %> y la Percepción en <%= per %>. Engranaje de invierno 2024-2025 de edición limitada.",
|
||||
"weaponSpecialSpring2025HealerText": "Plumeria Crook1",
|
||||
"weaponSpecialSpring2025MageNotes": "Con un solo tajo, puedes usar la magia elemental para controlar el entorno que te rodea. ¡Aprovecha y salta hacia delante! Aumenta la Inteligencia en <%= int %> y la Percepción en <%= per %>. Edición limitada Spring 2025 Gear.",
|
||||
"weaponArmoireOptimistsCloverNotes": "Bueno, ¿mirarías lo que encontraste? Nunca está de más tener un poco más de buena suerte de tu lado. Aumenta la Fuerza y la Constitución en un <%= attrs %> cada una. Armario encantado: Conjunto optimista (Objeto 4 de 4).",
|
||||
"weaponArmoireFunnyFoolBatonNotes": "Con un solo movimiento de bastón, puedes lanzar un remate, redirigir la atención o provocar aplausos. Aumenta la Constitución y la Fuerza en <%= attrs %> cada una. Armario Encantado: Set del Tonto Divertido (Artículo 3 de 3)",
|
||||
"armorSpecialSpring2024WarriorText": "Armadura de fluorita",
|
||||
"armorSpecialSpring2024WarriorNotes": "Esta armadura de piedra estabilizadora te ayudará a mantenerte firme mientras deslumbra a todo lo que enfrentes. Aumenta la Constitución en <%= con %>. Edición limitada de primavera de 2024.",
|
||||
"armorSpecialSpring2024MageText": "Túnicas de hibisco",
|
||||
"armorSpecialSummer2024MageNotes": "¡Cuidado con una anémona! (Ahora dile que lo repita cinco veces rápido). Aumenta la inteligencia en <%= int %>. Edición limitada de verano de 2024.",
|
||||
"armorSpecialFall2024WarriorNotes": "Conviértete en uno con las llamas y vuélvete inmune a sus poderes destructivos con esta armadura. Aumenta la Constitución en <%= con %>. Edición limitada de otoño de 2024.",
|
||||
"armorSpecialFall2024MageNotes": "Conéctate con el inframundo y abraza el poder de los magos que te precedieron con esta armadura. Aumenta la inteligencia en <%= int %>. Edición limitada de otoño de 2024.",
|
||||
"armorSpecialWinter2025WarriorNotes": "Todos se harán a un lado y te dejarán paso cuando uses esta armadura. Aumenta la Constitución en <%= con %>. Equipo de edición limitada de invierno 2024-2025.",
|
||||
"armorSpecialWinter2025RogueNotes": "Aunque parezca que estás cubierto de nieve fría, te sientes cálido, calentito, alegre y feliz con este disfraz. Aumenta la percepción en <%= per %>. Edición limitada de invierno 2024-2025.",
|
||||
"armorSpecialWinter2025HealerText": "Túnica de luces de cadena",
|
||||
"armorSpecialWinter2025MageNotes": "Maravilla, fantasía, encanto y esplendor llenarán tus días cuando bailes con esta capa. Aumenta la inteligencia en <%= int %>. Edición limitada de invierno 2024-2025.",
|
||||
"armorSpecialSpring2025RogueNotes": "Esta impresionante capa contiene cristales adicionales con poderes secretos especiales que solo tú conoces. Aumenta la percepción en <%= per %>. Edición limitada de primavera de 2025.",
|
||||
"armorMystery202401Text": "Túnicas de hechicero nevado",
|
||||
"armorMystery202407Text": "Traje de ajolote amigable",
|
||||
"armorMystery202412Notes": "Un look divertido y esponjoso para abrigarte en un día de invierno. No ofrece ningún beneficio. Artículo para suscriptores de diciembre de 2024.",
|
||||
"armorMystery202502Text": "Traje de arlequín sincero",
|
||||
"armorSpecialWinter2025HealerNotes": "Afina tu progreso en tus tareas. Pero ten cuidado: si una bombilla se apaga, todas se apagan. Aumenta la Constitución en <%= con %>. Edición limitada de invierno 2024-2025.",
|
||||
"armorMystery202502Notes": "¡Estás lleno de chistes y bromas desde tu cuello con volantes hasta tus zapatos gigantescos! No aporta ningún beneficio. Artículo para suscriptores de febrero de 2025.",
|
||||
"armorMystery202504Notes": "¿Abominable? ¡Más bien adorable! No aporta ningún beneficio. Artículo de suscriptor de abril de 2025.",
|
||||
"weaponArmoireStormKnightAxeText": "Hacha del Caballero Tormenta",
|
||||
"weaponSpecialSpring2025WarriorText": "Cimitarra del Sol",
|
||||
"weaponSpecialSpring2025WarriorNotes": "Con un solo corte, puedes atravesar tallos de flores para hacer un ramo o atravesar obstáculos para cumplir tus tareas. Aumenta la fuerza en <%= str %>. Edición limitada Primavera 2025.",
|
||||
"weaponArmoireHattersShearsNotes": "Corta a través del agobio y las complicaciones. Estas tijeras también cortan muy bien la tela, por supuesto. Aumenta la Fuerza en <%= str %>. Armario Encantado: Set de Sombrerero (Artículo 3 de 4).",
|
||||
"weaponArmoirePottersWheelNotes": "Echa un poco de arcilla en esta rueda y haz un cuenco o una taza o un jarrón o un cuenco ligeramente diferente. Si tienes suerte, ¡un fantasma podría visitarte mientras creas! Aumenta la percepción en un <%= por %>. Armario encantado: Conjunto de alfarero (Objeto 4 de 4).",
|
||||
"weaponArmoireCorsairsBladeText": "Espada de corsario",
|
||||
"weaponArmoireStormKnightAxeNotes": "¡Reúne tu furia y asesta un golpe como un trueno! Aumenta la fuerza en <%= str %>. Armario encantado: Conjunto de caballero de la tormenta (objeto 3 de 3)",
|
||||
"armorSpecialSpring2024HealerNotes": "Estas fabulosas plumas harán realidad tus sueños más felices. Aumenta tu Constitución en <%= con %>. Edición limitada primavera 2024.",
|
||||
"armorSpecialSummer2024WarriorNotes": "Tras transformarte en un auténtico guerrero tiburón ballena, ¡nada con valentía hacia tus objetivos! Aumenta tu Constitución en <%= con %>. Edición limitada de verano de 2024.",
|
||||
"armorSpecialSummer2024MageText": "Cola de anémona de mar",
|
||||
"armorSpecialFall2024RogueNotes": "Únete a la oscuridad y aumenta tu agilidad y sigilo con esta armadura. Aumenta la percepción en <%= per %>. Edición limitada de otoño de 2024.",
|
||||
"armorSpecialSpring2025WarriorText": "Armadura de sol",
|
||||
"armorSpecialSpring2025WarriorNotes": "Esta impresionante armadura luce colores que podrían verse en el cielo en pleno día soleado de primavera. Aumenta la Constitución en <%= con %>. Edición limitada de primavera de 2025.",
|
||||
"armorSpecialSpring2025RogueText": "Capa de punta de cristal",
|
||||
"armorSpecialSpring2025HealerText": "Túnicas de plumeria",
|
||||
"armorSpecialSpring2025HealerNotes": "Esta impresionante túnica contiene pétalos de plumeria suaves y vaporosos. Aumenta la Constitución en <%= con %>. Edición limitada primavera 2025.",
|
||||
"armorSpecialSpring2025MageText": "Uniforme de mantis",
|
||||
"armorSpecialSpring2025MageNotes": "Este impresionante uniforme luce colores llamativos y te permite acechar con sigilo tus tareas más difíciles. Aumenta tu inteligencia en <%= int %>. Edición limitada de primavera de 2025.",
|
||||
"weaponArmoireOrangeKiteText": "Cometa naranja",
|
||||
"weaponArmoirePinkKiteText": "Cometa rosa",
|
||||
"weaponArmoireBlueKiteText": "Cometa azul",
|
||||
"armorMystery202304Notes": "¡Aquí tienes tu mango y tu boquilla! No ofrece ningún beneficio. Artículo de suscriptor de abril de 2023.",
|
||||
"armorSpecialSummer2023WarriorText": "Armadura de pez dorado",
|
||||
"armorSpecialSummer2023WarriorNotes": "Los Guerreros Pez Dorado tienen una memoria excelente porque siempre mantienen sus Diarias y Tareas pendientes organizadas en listas. Aumenta la Constitución en <%= con %>. Edición limitada de verano de 2023.",
|
||||
"armorSpecialSummer2023HealerText": "Kirtle de algas marinas",
|
||||
"armorMystery202210Text": "Armadura ofidia siniestra",
|
||||
"weaponMystery202306Text": "Paraguas arco iris",
|
||||
"weaponMystery202306Notes": "Brilla con orgullo y lleva un resplandeciente prisma de color allá donde vayas. No confiere ningún beneficio. Artículo de suscriptor de junio de 2023.",
|
||||
"weaponArmoireHuntingHornText": "Cuerno de caza",
|
||||
"armorSpecialSummer2022WarriorText": "Armadura de tromba marina",
|
||||
"armorSpecialSummer2022WarriorNotes": "Prepárate para una batalla acuática rodeándote de esta columna de aire y niebla que gira y se arremolina. Aumenta tu Constitución en <%= con %>. Edición limitada de verano de 2022.",
|
||||
"armorSpecialSummer2022RogueText": "Armadura de cangrejo",
|
||||
"armorSpecialSummer2022RogueNotes": "Perfecto para un paseo informal por la playa. Aumenta la percepción en <%= per %>. Edición limitada de verano 2022.",
|
||||
"armorSpecialSpring2023WarriorText": "Armadura de colibrí",
|
||||
"weaponMystery202311Text": "Personal que todo lo ve",
|
||||
"weaponMystery202311Notes": "Ver más allá de los límites del espacio y el tiempo. No confiere ningún beneficio. Artículo de suscriptor de noviembre de 2023.",
|
||||
"weaponArmoireHuntingHornNotes": "¡Dos! ¡Dwoo! ¡Twoo! Reúne a tu grupo para una aventura o búsqueda tocando este cuerno. Aumenta la Fuerza en <%= str %> y la Inteligencia en <%= int %>. Armoire Enchanted: Musical Instrument Set 1 (Artículo 1 de 3)",
|
||||
"weaponArmoireGreenKiteText": "Cometa Verde",
|
||||
"weaponArmoireOrangeKiteNotes": "Con colores como el amanecer y el atardecer, ¡veamos lo alto que puede llegar tu cometa! Aumenta todas las estadísticas en <%= attrs %> cada una. Armario encantado: Juego de cometas (objeto 3 de 5)",
|
||||
"weaponArmoirePinkKiteNotes": "En picado, girando, volando alto, tu cometa destaca en el cielo. Aumenta todas las estadísticas en <%= attrs %> cada una. Armario encantado: Juego de cometas (objeto 4 de 5)",
|
||||
"weaponArmoireYellowKiteNotes": "Deslízate de un lado a otro con tu alegre cometa. Aumenta todas las estadísticas en <%= attrs %> cada una. Armario encantado: Juego de cometas (objeto 5 de 5)",
|
||||
"weaponArmoirePushBroomText": "Escoba de empuje",
|
||||
"weaponArmoireFeatherDusterText": "Plumero",
|
||||
"weaponArmoireFinelyCutGemText": "Gema finamente tallada",
|
||||
"weaponArmoireFinelyCutGemNotes": "¡Menudo hallazgo! Esta impresionante gema tallada con precisión será el premio de su colección. Y puede que contenga una magia especial, esperando a que la aproveches. Aumenta la Constitución en <%= con %>. Armario Encantado: Set de Joyero (Artículo 4 de 4).",
|
||||
"weaponArmoireMopNotes": "Paso 1: Sumerja la fregona en un cubo con agua y espuma. Paso 2: Arrastra la fregona por el suelo. Paso 3: Imagina que el extremo del mango de la fregona es un micrófono y canta con todas tus fuerzas. Paso 4: Repite los pasos 1-3 hasta que el suelo esté limpio. Aumenta la Constitución y la Percepción en <%= attrs %> cada una. Armoire Enchanted: Cleaning Supplies Set Two (Item 2 of 3)",
|
||||
"weaponArmoireRidingBroomText": "Escoba de equitación",
|
||||
"weaponArmoireRidingBroomNotes": "Haz todos tus recados más mágicos con esta escoba o, simplemente, llévala a pasear por el vecindario. ¡Vaya! Aumenta la Fuerza en <%= str %> y la Inteligencia en <%= int %>. Armario Encantado: Set de Hechicería Espeluznante (Artículo 1 de 3)",
|
||||
"weaponArmoireRollingPinText": "Rodillo",
|
||||
"weaponArmoireCleaningClothNotes": "Llévate esta herramienta de orden en tus aventuras y siempre podrás pulir una bonita placa o limpiar un alféizar de madera. Aumenta la Fuerza y la Constitución en <%= attrs %> cada una. Armario encantado: set dos de artículos de limpieza (unidad 3 de 3)",
|
||||
"weaponArmoireRollingPinNotes": "Enrolla tu pasta tan fina como quieras entre golpear malos hábitos cuando aparezcan a tu alrededor como cierto juego de golpear roedores. Aumenta la Fuerza en <%= str %>. Armario encantado: Set de utensilios de cocina 2 (objeto 2 de 2).",
|
||||
"armorSpecialHeroicTunicNotes": "Dicen que los héroes no deberían dormirse en los laureles, pero tú puedes descansar con esta prenda cómoda y a la moda. Aumenta todas las estadísticas en <%= attrs %>.",
|
||||
"weaponArmoireMagicSpatulaText": "Espátula mágica",
|
||||
"weaponArmoireMagicSpatulaNotes": "Observa cómo tu comida vuela y da vueltas en el aire. Tendrás suerte si por arte de magia vuelca tres veces y vuelve a caer sobre tu espátula. Aumenta la percepción en <%= por %>. Armoire Enchanted: Cooking Implements Set (Item 1 of 2).",
|
||||
"armorSpecialSpring2022RogueNotes": "Con un azul grisáceo metálico iridiscente y manchas más claras en las plumas, ¡serás el mejor compañero de vuelo en la fiesta de primavera! Aumenta la percepción en <%= per %>. Edición limitada de artículos de primavera 2022.",
|
||||
"armorSpecialSpring2022WarriorNotes": "Este impermeable y botas son tan formidables que podrías cantar bajo la lluvia o saltar en cada charco, ¡sin perder la calidez y la sequedad! Aumenta la constitución en <%= con %>. Edición limitada de primavera 2022.",
|
||||
"armorSpecialSpring2022MageText": "Túnica de forsitia",
|
||||
"armorSpecialSpring2022MageNotes": "Demuestra que estás lista para la primavera con esta bata adornada con pétalos de forsitia. Aumenta tu inteligencia en <%= int %>. Edición limitada de primavera 2022.",
|
||||
"armorSpecialSpring2022HealerNotes": "Ahuyenta miedos y pesadillas con esta prenda de gema verde. Aumenta la Constitución en <%= con %>. Edición limitada de primavera de 2022.",
|
||||
"armorSpecialSummer2022MageText": "Armadura de mantarrayas",
|
||||
"armorSpecialSummer2022MageNotes": "Con esta armadura, te deslizarás con facilidad por el trabajo como una mantarraya en el agua. Aumenta la inteligencia en <%= int %>. Edición limitada de verano de 2022.",
|
||||
"armorSpecialSummer2022HealerText": "Cola de pez ángel",
|
||||
"armorSpecialFall2022RogueText": "Armadura Kappa",
|
||||
"armorSpecialFall2022WarriorNotes": "¡Rawr! ¡Los hombros anchos significan que eres MUY FUERTE! Aumenta la Constitución en <%= con %>. Edición limitada de otoño de 2022.",
|
||||
"armorSpecialFall2022MageText": "Armadura de arpía",
|
||||
"armorSpecialFall2022MageNotes": "Vuela tan rápido como el viento con estas maravillosas alas y sujeta con fuerza lo que más quieres con estas aterradoras garras. Aumenta la inteligencia en <%= int %>. Edición limitada de otoño de 2022.",
|
||||
"armorSpecialSpring2023RogueNotes": "Puede que solo tengas cuatro extremidades, pero puedes trepar y arrastrarte con las larvas más grandes. Aumenta la Percepción en <%= per %>. Edición Limitada 2023, Equipo de Primavera.",
|
||||
"armorSpecialSpring2023WarriorNotes": "Ese zumbido que oyes es el aleteo de tus alas, que se acelera de lo imaginable. Aumenta tu Constitución en <%= con %>. Edición limitada de primavera de 2023.",
|
||||
"armorSpecialWinter2023RogueText": "Envoltura de cinta",
|
||||
"armorSpecialWinter2023WarriorText": "Traje de morsa",
|
||||
"armorSpecialWinter2023WarriorNotes": "Este resistente traje de morsa es perfecto para pasear por la playa en plena noche. Aumenta la Constitución en <%= con %>. Edición limitada 2022-2023.",
|
||||
"armorSpecialFall2022HealerNotes": "¿Cuántos peeps podría un Peeker, si un Peeker pudiera peeps? Aumenta la Constitución en <%= con %>. Edición limitada de otoño de 2022.",
|
||||
"armorSpecialWinter2023HealerNotes": "Este brillante traje cardenal es perfecto para superar tus problemas. Aumenta la Constitución en <%= con %>. Edición limitada 2022-2023.",
|
||||
"armorSpecialSpring2023MageText": "Traje de piedra lunar",
|
||||
"armorSpecialSpring2023HealerNotes": "Una explosión de gloria verde que te convertirá en la envidia del grupo. Aumenta la Constitución en <%= con %>. Edición limitada de primavera de 2023.",
|
||||
"armorSpecialSummer2023RogueNotes": "¡Arriba! ¡Abajo! ¡Demasiado lento! Aumenta la percepción en <%= per %>. Edición limitada de verano 2023.",
|
||||
"armorSpecialSummer2023MageText": "Túnicas de coral",
|
||||
"armorSpecialSummer2023MageNotes": "Siéntete protegida y cómoda con estas túnicas fluidas, con colores perfectos para tus aventuras submarinas. Aumenta tu inteligencia en <%= int %>. Edición limitada de verano 2023.",
|
||||
"armorSpecialSummer2023HealerNotes": "Mantén tus metas y convicciones firmes con este elegante vestido verde. Aumenta tu Constitución en un <%= con %>. Edición limitada de verano 2023.",
|
||||
"armorSpecialFall2023RogueText": "Caldero maldito",
|
||||
"armorSpecialFall2023RogueNotes": "Te atrajeron con la promesa de un buen baño caliente... ¡Te lo tomaste a mal! Aumenta la Percepción en <%= per %>. Edición Limitada de Otoño 2023.",
|
||||
"armorSpecialFall2023WarriorText": "Armadura del reproductor de vídeo",
|
||||
"armorSpecialFall2023WarriorNotes": "¿Reproduce DVD? ¿VHS? ¿Qué tipo de cables necesita para conectarlo al televisor? ¡Resulta que esta es la parte más aterradora! Aumenta la Constitución en <%= con %>. Edición limitada de verano 2023.",
|
||||
"armorSpecialFall2023MageText": "Túnica de brujo escarlata",
|
||||
"armorSpecialFall2023MageNotes": "Con hilos escarlata y detalles dorados, este atuendo es una maravilla para los sentidos. Aumenta la inteligencia en <%= int %>. Edición limitada de otoño de 2023.",
|
||||
"armorSpecialFall2023HealerText": "Cuerpo de criatura del pantano",
|
||||
"armorSpecialFall2023HealerNotes": "Con musgo, roca, madera y agua de pantano fusionados en uno, este atuendo a veces es resistente y a veces esponjoso (pero siempre intimidante). Aumenta la Constitución en <%= con %>. Edición limitada de otoño de 2023.",
|
||||
"armorMystery202204Text": "Cápsula de aventurero virtual",
|
||||
"armorArmoireHeraldsTunicNotes": "Prepárate para difundir buenas noticias por todas partes con este colorido atuendo real. Aumenta la Constitución en <%= con %>. Armario Encantado: Conjunto de Heraldo (Objeto 1 de 4).",
|
||||
"armorArmoireSoftBlackSuitText": "Traje negro suave",
|
||||
"armorArmoireSoftBlackSuitNotes": "El negro es un color misterioso. Sin duda, inspirará los sueños más fascinantes. Aumenta la Constitución y la Percepción en <%= attrs %> cada una. Armario Encantado: Conjunto de Ropa de Estar por Casa Negra (Artículo 2 de 3).",
|
||||
"armorArmoireShootingStarCostumeNotes": "Se rumorea que surgió del mismísimo cielo nocturno. Este vestido fluido te permite superar cualquier obstáculo en tu camino. Aumenta la Constitución en <%= con %>. Armario Encantado: Conjunto de Polvo de Estrellas (Artículo 2 de 3).",
|
||||
"armorArmoireSoftVioletSuitNotes": "El morado es un color lujoso. Relájate con estilo después de completar tus tareas diarias. Aumenta la Constitución y la Fuerza en <%= attrs %> cada una. Armario Encantado: Conjunto de Ropa de Estar Violeta (Artículo 2 de 3).",
|
||||
"armorArmoireGardenersOverallsNotes": "No tengas miedo de trabajar en la tierra con este resistente overol. Aumenta la Constitución en <%= con %>. Armario Encantado: Set de Jardinero (Artículo 1 de 4).",
|
||||
"armorArmoireStrawRaincoatNotes": "Esta capa de paja tejida te mantendrá seco y evitará que tu armadura se oxide durante tu misión. ¡Eso sí, no te acerques demasiado a una vela! Aumenta la Constitución en <%= con %>. Armario Encantado: Conjunto de Impermeable de Paja (Objeto 1 de 2).",
|
||||
"armorArmoireFancyPirateSuitText": "Chaqueta pirata elegante",
|
||||
"armorArmoireFancyPirateSuitNotes": "Lleva esta elegante chaqueta para organizar la biblioteca de tu barco o para hablar sobre ella con la tripulación. Aumenta la Constitución y la Inteligencia en <%= attrs %> cada una. Armario Encantado: Conjunto Pirata Elegante (Objeto 1 de 3).",
|
||||
"armorArmoireSheetGhostCostumeText": "Disfraz de fantasma de sábana",
|
||||
"armorArmoireStrawRaincoatText": "Chubasquero de paja",
|
||||
"armorArmoireSheetGhostCostumeNotes": "¡Buuu! Este es el disfraz más aterrador de Habitica, así que úsalo con cuidado... y ten cuidado al pisar para no tropezar. Aumenta la Constitución en <%= con %>. Armario Encantado: Objeto independiente.",
|
||||
"armorArmoireJewelersApronText": "Delantal de joyero",
|
||||
"armorArmoireJewelersApronNotes": "Este delantal resistente es ideal para usar cuando te sientes creativo. Lo mejor de todo es que tiene docenas de bolsillos pequeños para guardar todo lo que necesitas. Aumenta la inteligencia en <%= int %>. Armario Encantado: Conjunto de Joyero (Artículo 1 de 4).",
|
||||
"armorArmoireShawlCollarCoatText": "Abrigo con cuello chal",
|
||||
"armorArmoireShawlCollarCoatNotes": "Un mago sabio dijo una vez que no hay nada mejor que estar cómodo y ser productivo. Ponte este abrigo cálido y elegante para superar los desafíos del año. Aumenta la Constitución en <%= con %>. Armario Encantado: Objeto independiente.",
|
||||
"armorArmoireBagpipersKiltText": "Falda escocesa de gaitero",
|
||||
"weaponMystery202209Notes": "Este libro te guiará en tu viaje hacia la creación de magia. No confiere ningún beneficio. Artículo para suscriptores de septiembre de 2022.",
|
||||
"weaponArmoireBlueKiteNotes": "Navegando en lo alto del azul, ¿qué trucos puedes hacer con tu cometa? Aumenta todas las estadísticas en <%= attrs %> cada una. Armario encantado: Juego de cometas (objeto 1 de 5)",
|
||||
"weaponArmoireGreenKiteNotes": "Una cometa más impresionante que nunca, con sus tonos amarillos y verdes. Aumenta todas las estadísticas en <%= attrs %> cada una. Armario encantado: Juego de cometas (objeto 2 de 5)",
|
||||
"weaponArmoireYellowKiteText": "Milano amarillo",
|
||||
"armorSpecialSpring2023MageNotes": "Este elegante traje de primavera potencia la magia de la piedra lunar. Aumenta la inteligencia en <%= int %>. Edición limitada de primavera de 2023.",
|
||||
"armorSpecialSpring2023HealerText": "Vestido de hoja de lirio",
|
||||
"armorArmoireGardenersOverallsText": "Overol de jardinero",
|
||||
"weaponArmoirePushBroomNotes": "Llévate esta herramienta de limpieza a tus aventuras y siempre podrás barrer un escalón lleno de hollín o quitar las telarañas de los rincones. Aumenta la Fuerza y la Inteligencia en <%= attrs %> cada una. Armario encantado: Set de artículos de limpieza (Artículo 1 de 3)",
|
||||
"weaponArmoireFeatherDusterNotes": "Deja que estas elegantes plumas vuelen sobre todos tus objetos viejos para que brillen como nuevos. Ten cuidado con el polvo que levantan para no estornudar. Aumenta la Constitución y la Percepción en <%= attrs %> cada una. Armario encantado: set de artículos de limpieza (objeto 2 de 3)",
|
||||
"armorSpecialSummer2022HealerNotes": "Usa tus coloridas aletas para deslizarte por el arrecife y ayudar a quienes necesitan descansar y sanar. Aumenta tu Constitución en <%= con %>. Edición limitada de verano 2022.",
|
||||
"armorSpecialFall2022RogueNotes": "Ya sea que nades, te escabulles o luches, estarás seguro con esta armadura. Aumenta la percepción en <%= per %>. Edición limitada de otoño de 2022.",
|
||||
"armorSpecialFall2022WarriorText": "Armadura orca",
|
||||
"armorSpecialWinter2023RogueNotes": "Consigue objetos. Envuélvelos en papel bonito. ¡Y dáselo a tu pícaro local! La temporada lo exige. Aumenta la Percepción en <%= per %>. Edición limitada 2022-2023.",
|
||||
"armorSpecialWinter2023MageText": "Vestido de luz de hadas",
|
||||
"armorMystery202212Text": "Vestido Glacial",
|
||||
"armorMystery202212Notes": "El universo puede ser frío, pero este encantador vestido te mantendrá abrigado mientras vuelas. No aporta ningún beneficio. Artículo para suscriptores de diciembre de 2022.",
|
||||
"armorArmoireBagpipersKiltNotes": "Un buen kilt resistente te será muy útil. Aumenta la Constitución en <%= con %>. Armario encantado: Conjunto de gaitero (Objeto 2 de 3).",
|
||||
"weaponMystery202212Text": "Varita Glacial",
|
||||
"weaponMystery202212Notes": "El copo de nieve brillante de esta varita tiene el poder de calentar los corazones incluso en las noches más frías de invierno. No confiere ningún beneficio. Artículo para suscriptores de diciembre de 2022.",
|
||||
"armorSpecialHeroicTunicText": "Túnica heroica",
|
||||
"weaponArmoirePaintbrushText": "Pincel",
|
||||
"weaponArmoirePaintbrushNotes": "Cuando coges este pincel, te invade una oleada de pura inspiración que te permite pintar cualquier cosa que imagines. Aumenta la Inteligencia en <%= int %>. Armoire Encantado: Set de Pintor (Item 3 of 4).",
|
||||
"armorSpecialFall2022HealerText": "Profusión de cápsulas de peeker",
|
||||
"weaponArmoireMopText": "Mopa",
|
||||
"weaponArmoireCleaningClothText": "Paño de limpieza",
|
||||
"armorSpecialWinter2023MageNotes": "¡Que tengas luces encendidas no te convierte en un árbol! ...quizás otro año. Aumenta la inteligencia en <%= int %>. Edición limitada 2022-2023.",
|
||||
"armorSpecialWinter2023HealerText": "Traje cardenal",
|
||||
"armorSpecialSpring2023RogueText": "Capa de oruga",
|
||||
"armorMystery202112Notes": "Deslízate por mares helados y no pases frío con esta cola brillante. No aporta ningún beneficio. Artículo de suscripción de diciembre de 2021.",
|
||||
"armorMystery202204Notes": "¡Parece que ahora necesitas pulsar estos botones misteriosos para completar tus tareas! ¿Qué podrían hacer? No aportan ningún beneficio. Artículo para suscriptores de abril de 2022.",
|
||||
"armorMystery202207Text": "Armadura de gelatina Jammin'",
|
||||
"armorArmoireShootingStarCostumeText": "Vestido estrella",
|
||||
"armorMystery202307Text": "Los tentáculos del Kraken",
|
||||
"armorMystery202307Notes": "Las ventosas ofrecen la mejor tracción en el fondo marino y en los costados de barcos descarriados. No aportan ningún beneficio. Artículo de suscriptor de julio de 2023.",
|
||||
"weaponMystery202211Text": "Bastón de electromante",
|
||||
"weaponMystery202211Notes": "Aprovecha el impresionante poder de una tormenta eléctrica con este bastón. No otorga ningún beneficio. Artículo de suscriptor de noviembre de 2022.",
|
||||
"armorSpecialBirthday2023Notes": "¡Feliz cumpleaños, Habitica! Luce estas fabulosas batas de fiesta para celebrar este maravilloso día. No aporta ningún beneficio.",
|
||||
"armorSpecialSummer2023RogueText": "Envoltura de guppys",
|
||||
"armorMystery202110Text": "Armadura de gárgola musgosa",
|
||||
"armorMystery202110Notes": "El musgo aterciopelado te da una apariencia suave por fuera, pero estás protegido por una piedra sólida. No aporta ningún beneficio. Artículo de suscriptor de octubre de 2021.",
|
||||
"armorMystery202207Notes": "Esta armadura te hará lucir glamurosa y gelatinosa. No ofrece ningún beneficio. Artículo de suscriptor de julio de 2022.",
|
||||
"armorMystery202210Notes": "Prueba a deslizarte para variar; ¡quizás descubras que es un medio de transporte bastante eficiente! No aporta ningún beneficio. Artículo para suscriptores de octubre de 2022.",
|
||||
"armorMystery202304Text": "Armadura de tetera Tiptop",
|
||||
"armorMystery202306Text": "Parka arcoiris",
|
||||
"armorMystery202306Notes": "¡Nadie te va a amargar la fiesta! Y si lo intentan, ¡mantendrás la frescura y la sequedad! No ofrece ningún beneficio. Artículo para suscriptores de junio de 2023.",
|
||||
"armorMystery202310Text": "Túnica de espectro",
|
||||
"armorMystery202310Notes": "Una prenda fantasmal que se riza y se mueve con gracia mientras flotas entre los pantanos y páramos embrujados. No ofrece ningún beneficio. Artículo de suscriptor de octubre de 2023.",
|
||||
"armorArmoireHeraldsTunicText": "Túnica del heraldo"
|
||||
}
|
||||
|
||||
@@ -57,11 +57,11 @@
|
||||
"mountMasterText2": " y ha liberado todas sus 90 monturas un total de <%= count %> vez (o veces)",
|
||||
"triadBingoName": "Tríada de Bingo",
|
||||
"triadBingoText": "Ha encontrado las 90 mascotas, las 90 monturas, y todas las mascotas DE NUEVO (¡¿CÓMO LO HICISTE?!)",
|
||||
"triadBingoText2": " y ha liberado a su establo completo un total de <%= count %> vez (veces)",
|
||||
"triadBingoText2": " y ha liberado todas sus Mascotas y Monturas un total de <%= count %> vez(s)",
|
||||
"triadBingoAchievement": "¡Has ganado el logro \"Tríada de Bingo\" por encontrar todas las mascotas, domesticar todas las monturas y encontrar todas las mascotas de nuevo!",
|
||||
"hatchedPet": "¡Eclosionaste un/a <%= egg %> <%= potion %>!",
|
||||
"hatchedPetGeneric": "¡Has incubado una nueva mascota!",
|
||||
"hatchedPetHowToUse": "¡Visita el [Establo](<%= stableUrl %>) para alimentar y equipar tu nueva mascota!",
|
||||
"hatchedPetHowToUse": "Visita [Mascotas y monturas](<%= stableUrl %>) para alimentar y equipar a tu nueva mascota!",
|
||||
"petNotOwned": "No tienes esta mascota.",
|
||||
"mountNotOwned": "No tienes esta montura.",
|
||||
"feedPet": "¿Dar de comer <%= text %> a tu <%= name %>?",
|
||||
@@ -83,10 +83,10 @@
|
||||
"petsReleased": "Mascotas liberadas.",
|
||||
"mountsAndPetsReleased": "Monturas y mascotas liberadas",
|
||||
"mountsReleased": "Monturas liberadas",
|
||||
"welcomeStable": "¡Bienvenidos al Establo!",
|
||||
"welcomeStableText": "¡Bienvenido/a al establo! Soy Matt, el domador de bestias. Cada vez que completas una tarea, tendrás un chance aleatorio de recibir un Huevo o una Poción de Eclosión para incubar Mascotas. Cuando incubes una Mascota, ¡Aparecerá aquí! Haz clic en la imagen de una Mascota para añadirla a tu Personaje. Aliméntalas con la Comida para Mascotas que encuentres y se convertirán en fuertes Monturas.",
|
||||
"welcomeStable": "¡Bienvenidos a sus Mascotas y Monturas!",
|
||||
"welcomeStableText": "¡Bienvenidos al establo! Soy Matt, el amo de las bestias. Cada vez que completes una tarea, tendrás una oportunidad aleatoria de recibir un huevo o una poción para incubar mascotas. Cuando nazca una mascota, aparecerá aquí. Haz clic en la imagen de una mascota para añadirla a tu avatar. Aliméntala con la comida para mascotas que encuentres y se convertirá en una resistente montura.",
|
||||
"petLikeToEat": "¿Qué le gusta comer a mi mascota?",
|
||||
"petLikeToEatText": "Las Mascotas crecerán sin importar con qué las alimentes, pero crecerán más rápido si las alimentas con la Comida para Mascotas que más les gusta. Experimenta para encontrar el patrón, o encuentra las respuestas aquí: <br/><a href=\"https://habitica.fandom.com/es/wiki/Preferencias_de_Comida\" target=\"_blank\">https://habitica.fandom.com/es/wiki/Preferencias_de_Comida</a>",
|
||||
"petLikeToEatText": "Las mascotas crecerán sin importar qué les des de comer, pero crecerán más rápido si les das el alimento que más les gusta. Experimenta para descubrir el patrón o consulta las respuestas aquí:\n<a href=\"/static/faq#pet-foods\" target=\"_blank\">https://habitica.com/static/faq#pet-foods</a>",
|
||||
"filterByStandard": "Estándar",
|
||||
"filterByMagicPotion": "Poción Mágica",
|
||||
"filterByQuest": "Misión",
|
||||
@@ -111,5 +111,6 @@
|
||||
"invalidAmount": "Cantidad de comida inválida, debe ser un número entero positivo",
|
||||
"tooMuchFood": "Estás intentando darle demasiada comida a tu mascota, acción cancelada",
|
||||
"veteranCactus": "Cáctus Veterano",
|
||||
"veteranDragon": "Dragón Veterano"
|
||||
"veteranDragon": "Dragón Veterano",
|
||||
"jubilantGryphatrice": "Gryphatrice jubilosa"
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"questEvilSantaText": "Santa Trampero",
|
||||
"questEvilSantaNotes": "Escuchas rugidos agonizantes en lo profundo de los campos de hielo. Sigues los gruñidos (interrumpidos por carcajadas) hasta un claro en el bosque, donde ves una osa polar adulta. Está enjaulada y encadenada, luchando por su vida. Bailando encima de la jaula se encuentra un diablillo malicioso vestido de náufrago. Vence al Santa Trampero ¡y salva a la bestia! <br><br><strong>Nota</strong>: “Santa Trampero” otorga un logro de misión acumulable, pero da una montura rara que sólo puede ser agregada a tu establo una vez.",
|
||||
"questEvilSantaCompletion": "Santa Trampero chilla furioso y se adentra en la noche saltando. La osa agradecida intenta decirte algo mediante rugidos y gruñidos. La llevas de vuelta a los establos, donde Matt Boch, el Maestro de las Bestias, escucha su historia con un soplido de horror. ¡La osa tiene un cachorro! Éste escapó hacia los campos de hielo cuando mamá osa fue capturada.",
|
||||
"questEvilSantaNotes": "Escuchas rugidos lastimosos en las profundidades de los campos de hielo. Sigues los gruñidos - interrumpidos por carcajadas - hasta un claro en el bosque, donde ves una osa polar adulta. Está enjaulada y encadenada, luchando por su vida. Bailando encima de la jaula se encuentra un diablillo malicioso vestido como un náufrago. Vence a Santa Trampero ¡y salva a la bestia! <br><br><strong>Nota</strong>: “Santa Trampero ” premia una misión apilable además da una montura rara que solo puede ser agregada a tu establo una unica vez.",
|
||||
"questEvilSantaCompletion": "Trapper Santa chilla de rabia y se aleja hacia la noche. La osita agradecida, entre rugidos y gruñidos, intenta decirte algo. La llevas de vuelta a los establos, donde Matt Boch, el Amo de las Bestias, escucha su historia con un grito de horror. Tiene un cachorro. Huyó a los campos de hielo cuando mamá osa fue capturada.",
|
||||
"questEvilSantaBoss": "Santa Trampero",
|
||||
"questEvilSantaDropBearCubPolarMount": "Oso Polar (Montura)",
|
||||
"questEvilSanta2Text": "Encuentra al Cachorro",
|
||||
"questEvilSanta2Notes": "Cuando Santa Trampero capturó a la osa polar, su cachorro escapó hacia los campos de hielo. Escuchas el ruido de ramas rotas y el crujido de la nieve a través del sonido cristalino del bosque. ¡Huellas de oso! Comienzas a correr siguiendo el rastro. !Encuentra todas las huellas y las ramitas rotas, y rescata al cachorro! <br><br><strong>Nota</strong>: \"Encuentra al Cachorro\" premia una mission apilable pero da una mascota rara que solo se puede agregar a tu establo una vez.",
|
||||
"questEvilSanta2Notes": "Cuando Santa Trampero capturó a la osa polar, su cachorro escapó hacia los campos de hielo. Escuchas el ruido de ramas rotas y el crujido de la nieve a través del sonido cristalino del bosque. ¡Huellas de oso! Comienzas a correr siguiendo el rastro. Encuentra todas las huellas y las ramitas rotas, ¡y rescata al cachorro! <br><br><strong>Nota</strong>: \"Encuentra al Cachorro\" premia una mission apilable pero da una mascota rara que solo se puede agregar a tu establo una vez.",
|
||||
"questEvilSanta2Completion": "¡Has encontrado al cachorro! Te hará compañía por siempre.",
|
||||
"questEvilSanta2CollectTracks": "Huellas",
|
||||
"questEvilSanta2CollectBranches": "Ramitas rotas",
|
||||
@@ -15,19 +15,19 @@
|
||||
"questGryphonCompletion": "Derrotada, la poderosa bestia se escabulle avergonzada hacia su amo. \"¡Oh, bien hecho, aventureros!\" exclama <strong>baconsaur</strong>. \"Por favor, tomen algunos de los huevos de la grifo. ¡Estoy seguro de que criarán bien a estos pequeños!\"",
|
||||
"questGryphonBoss": "Grifo de Fuego",
|
||||
"questGryphonDropGryphonEgg": "Grifo (Huevo)",
|
||||
"questGryphonUnlockText": "Desbloquea Huevos de Grifo, para comprar en el Mercado",
|
||||
"questGryphonUnlockText": "Desbloquea huevos de Grifo, adquiribles en el Mercado",
|
||||
"questHedgehogText": "La Erizobestia",
|
||||
"questHedgehogNotes": "Los erizos son un grupo divertido de animales. Son algunas de las mascotas más cariñosas que un Habiticano podría tener. Pero se rumorea que si les das leche después de la medianoche, se vuelven bastante irritables. Y cincuenta veces su tamaño. Y <strong> InspectorCaracal </strong> hizo exactamente eso. Ups.",
|
||||
"questHedgehogCompletion": "¡Tu equipo ha conseguido calmar al erizo! Después de volver a su tamaño normal, se va cojeando hacia sus huevos. Vuelve chillando y empujando algunos de sus huevos hacia ustedes. ¡Esperemos que a estos erizos les guste más la leche!",
|
||||
"questHedgehogBoss": "Erizobestia",
|
||||
"questHedgehogDropHedgehogEgg": "Erizo (Huevo)",
|
||||
"questHedgehogUnlockText": "Desbloquea Huevos de Erizo para comprar en el Mercado",
|
||||
"questHedgehogUnlockText": "Desbloquea huevos de erizo adquiribles en el Mercado",
|
||||
"questGhostStagText": "El Espíritu de la Primavera",
|
||||
"questGhostStagNotes": "Ahh, primavera. La época del año cuando el color una vez más comienza a llenar el paisaje. Atrás quedaron los fríos, montículos nevados de invierno. Donde una vez estuvo la helada, la vida vegetal vibrante toma su lugar. Exuberantes hojas verdes llenan los árboles, la hierba vuelve a su antiguo tono vívido, un arco iris de flores se eleva a lo largo de las llanuras, ¡y una niebla blanca mística cubre la tierra! ... Espera. Niebla mística? \"Oh, no\", dice el <strong> Inspector Caracal </strong> con aprensión, \"Parece que algún tipo de espíritu es la causa de esta niebla. Ah, y se está cargando directamente hacia ti.\"",
|
||||
"questGhostStagCompletion": "El espíritu, aparentemente ileso, baja su nariz hasta el suelo. Una voz tranquilizante envuelve a tu grupo. \"Pido disculpas por mi comportamiento. Es sólo que acabo de despertar de mi sueño, y al parecer mi buen juicio no ha vuelto completamente. Por favor tomen esto como una muestra de mi disculpa\". Un racimo de huevos se materializa sobre el pasto frente al espíritu. Sin decir una palabra, el espíritu se escapa hacia el bosque dejando caer flores a su paso.",
|
||||
"questGhostStagBoss": "Ciervo Fantasma",
|
||||
"questGhostStagDropDeerEgg": "Ciervo (Huevo)",
|
||||
"questGhostStagUnlockText": "Desbloquea Huevos de Ciervo para comprar en el Mercado",
|
||||
"questGhostStagUnlockText": "Desbloquea Huevos de Ciervo adquiribles en el Mercado",
|
||||
"questRatText": "El Rey de las Ratas",
|
||||
"questRatNotes": "¡Basura! Pilas masivas de Diarias sin marcar yacen por toda Habitica. El problema se ha vuelto tan grave que ahora se ven hordas de ratas por todas partes. Ves que @Pandah acaricia a una de las bestias con amor. Ella explica que las ratas son criaturas apacibles que se alimentan de las Diarias sin marcar. El verdadero problema es que las Diarias han caído en las alcantarillas, creando un pozo peligroso que se debe despejar. Al descender a las cloacas, una rata enorme con ojos rojos y dientes amarillos destrozados te ataca, defendiendo su horda. ¿Vas a encogerte de miedo o enfrentarás al legendario Rey de las Ratas?",
|
||||
"questRatCompletion": "Tu último golpe debilita a la gigantesca rata, haciendo que sus ojos cambien a un gris apagado. La bestia se divide en varias ratas pequeñas que salen huyendo de miedo. Ves que @Pandah está de pie detrás de ti, observando a lo que alguna vez fue una poderosa criatura. Ella explica que los ciudadanos de Habitica han sido inspirados por tu valentía y están completando rápidamente sus Diarias. Te advierte que debemos ser vigilantes, porque si bajamos la guardia el Rey de las ratas regresará. Como pago, @Pandah te ofrece varios huevos de rata. Al ver tu expresión de incomodidad, sonríe y te dice: \"Son maravillosas mascotas.\"",
|
||||
@@ -75,7 +75,7 @@
|
||||
"questVice3Boss": "Vicio, el Guiverno de las Sombras",
|
||||
"questVice3DropWeaponSpecial2": "La Vara del Dragón de Stephen Weber",
|
||||
"questVice3DropDragonEgg": "Dragón (Huevo)",
|
||||
"questVice3DropShadeHatchingPotion": "Poción de Eclosión de Sombra",
|
||||
"questVice3DropShadeHatchingPotion": "Poción eclosionadora de Sombra",
|
||||
"questGroupMoonstone": "El Surgimiento de Reincidencia",
|
||||
"questMoonstone1Text": "Reincidencia, Parte 1: La Cadena de Piedra Lunar",
|
||||
"questMoonstone1Notes": "Una terrible aflicción ha golpeado a los Habiticanos. Malos Hábitos que se creían muertos hace tiempo se han levantado de nuevo en venganza. Los platos se encuentran sin lavar, los libros de texto permanecen sin leer, ¡Y la procrastinación corre sin nadie que la detenga!<br><br>Sigues el rastro de algunos de tus propios Malos Hábitos a las Ciénagas del Estancamiento y descubres a la culpable: el fantasmal Necromante, Reincidencia. Te lanzas a atacarla, pero tus armas atraviesan su cuerpo espectral inútilmente.<br><br>\"No te molestes,\" susurra con un tono áspero y seco. \"Sin una cadena de piedras lunares, nada puede hacerme daño – ¡Y el maestro joyero @aurakami dispersó todas las piedras lunares a través de Habitica hace mucho tiempo!\" Jadeante, te retiras... pero sabes qué es lo que debes hacer.",
|
||||
@@ -92,7 +92,7 @@
|
||||
"questMoonstone3Completion": "Respiras difícilmente y el sudor hace que ardan tus ojos mientras el Guiverno colapsa. Los restos de Reincidencia se desvanecen formando una fina bruma gris que desaparece rápidamente bajo la ráfaga de una refrescante brisa, y escuchas en la distancia los gritos de multitudes de Habiticanos derrotando a sus Malos Hábitos de una vez por todas.<br><br>@Baconsaur, el maestro de las bestias, se abalanza montado en un grifo. \"Vi el final de tu batalla desde el cielo, y fue increíblemente conmovedora. Por favor, toma esta túnica encantada – tu valentía habla de un noble corazón, y creo que estabas destinado a tenerla.\"",
|
||||
"questMoonstone3Boss": "Necro-Vicio",
|
||||
"questMoonstone3DropRottenMeat": "Carne Podrida (Comida)",
|
||||
"questMoonstone3DropZombiePotion": "Poción de Eclosión Zombi",
|
||||
"questMoonstone3DropZombiePotion": "Poción de eclosión Zombi",
|
||||
"questGroupGoldenknight": "La Caballera Dorada",
|
||||
"questGoldenknight1Text": "La Caballera Dorada, Parte 1: Un Regaño Severo",
|
||||
"questGoldenknight1Notes": "La Caballera Dorada ha estado molestando a los pobres Habiticanos. ¿No cumpliste todas tus Diarias? ¿Marcaste un Hábito negativo? Ella usará estas cosas como razón para acosarte y decirte que tienes que seguir su ejemplo. Ella es el ejemplo brillante de un Habiticano perfecto y tú no eres más que un fracaso. Bueno, ¡eso no es nada amable! Todos cometen errores, y no deberían enfrentar tanta negatividad por ello. ¡Tal vez sea hora de reunir unos cuantos testimonios de Habiticanos ofendidos y darle a la Caballera Dorada un regaño severo!",
|
||||
@@ -100,7 +100,7 @@
|
||||
"questGoldenknight1Completion": "¡Mira todos estos testimonios! Seguramente esto será suficiente para convencer a la Caballera Dorada. Ahora todo lo que tienes que hacer es encontrarla.",
|
||||
"questGoldenknight1DropGoldenknight2Quest": "La Caballera Dorada Parte 2: Caballera de Oro (Pergamino)",
|
||||
"questGoldenknight2Text": "La Caballera Dorada, Parte 2: Caballera de Oro",
|
||||
"questGoldenknight2Notes": "Armado con docenas de testimonios de Habiticanos, finalmente te enfrentas a la Caballera Dorada. Comienzas a recitar las quejas de los Habitcanos hacia ella, una por una. \"Y @Pfeffernusse dice que tu alardeo constante...-\" La caballera levanta su mano para silenciarte y se burla, \"Por favor, estas personas sólo están celosas de mi éxito. ¡En lugar de quejarse, simplemente deberían trabajar tan duro como yo! ¡Tal vez deba mostrarte el poder que puedes alcanzar con diligencia como la mía! \" Dicho esto, ¡levanta su lucero del alba y se prepara para atacarte!",
|
||||
"questGoldenknight2Notes": "Armado con docenas de testimonios de Habiticanos, finalmente te enfrentas al Caballero Dorado. Comienzas a recitar las quejas de los Habitcanos a ella, una por una. \"Y @Pfeffernusse dice que estás presumiendo constantemente-\" El caballero levanta su mano para silenciarte y se burla, \"Por favor, estas personas simplemente están celosas de mi éxito. En lugar de quejarse, ¡simplemente deberían trabajar tan duro como yo! le mostraré el poder que puede alcanzar a través de la diligencia como la mía! \" ¡Ella levanta su morningstar y se prepara para atacarte!",
|
||||
"questGoldenknight2Boss": "Caballera de Oro",
|
||||
"questGoldenknight2Completion": "La Caballera Dorada baja su Lucero del Alba, consternada. \"Me disculpo por mi estallido de ira\", dice. \"Lo cierto es que es doloroso pensar que he lastimado a otros sin darme cuenta, y eso me hizo desquitarme en defensa... pero ¿tal vez aún puedo disculparme?\"",
|
||||
"questGoldenknight2DropGoldenknight3Quest": "La Caballera Dorada Parte 3: El Caballero de Hierro (Pergamino)",
|
||||
@@ -109,7 +109,7 @@
|
||||
"questGoldenknight3Completion": "Con un satisfactorio sonido metálico, el Caballero de Hierro cae de rodillas y se desploma. \"Eres bastante fuerte\", jadea. \"Hoy he sido humillado\". La Caballera de Oro se acerca a ti y dice: \"Gracias. Creo que hemos ganado algo de humildad al enfrentarnos contigo. Hablaré con mi padre y le explicaré las quejas sobre nosotros. Quizás deberíamos empezar por disculparnos con los otros Habiticanos\". Se detiene a pensar por un momento antes de volverse nuevamente hacia ti. \"Toma: como obsequio, quiero que te quedes con mi lucero del alba. Es tuyo ahora.\"",
|
||||
"questGoldenknight3Boss": "El Caballero de Hierro",
|
||||
"questGoldenknight3DropHoney": "Miel (Comida)",
|
||||
"questGoldenknight3DropGoldenPotion": "Poción de Eclosión Dorada",
|
||||
"questGoldenknight3DropGoldenPotion": "Poción eclosionadora de Oro",
|
||||
"questGoldenknight3DropWeapon": "Lucero del Alba Pulverizador de Hitos de Mustaine (Arma de Mano Secundaria)",
|
||||
"questGroupEarnable": "Misiones Adquiribles",
|
||||
"questBasilistText": "La Basi-Lista",
|
||||
@@ -153,7 +153,7 @@
|
||||
"questAtom3Notes": "Justo cuando creíste que tus pruebas habían terminado, el lago Lavado comienza a espumar violentamente. \"¡¿CÓMO TE ATREVES?!\" retumba una voz debajo de la superficie. Una figura azul con una túnica emerge del agua, esgrimiendo un cepillo mágico para el inodoro. Ropa sucia empieza a flotar a la superficie del lago. \"¡Soy el Lavadomante!\", anuncia enojado. \"Eres descarado, lavando mis encantadores platos sucios, destruyendo mi mascota y entrando a mis dominios con esa ropa limpia. ¡Prepárate para sentir la ira pastosa de mi magia anti-lavadora!\"",
|
||||
"questAtom3Completion": "¡El malvado Lavandomante ha sido vencido! Ropa limpia cae en pilas a tu alrededor. Las cosas se ven mucho mejor por aquí. Mientras comienzas a vadear entre la armadura recién planchada, un centelleo metálico llama tu atención, y tu mirada cae sobre un yelmo resplandeciente. El dueño original de este objeto radiante puede ser desconocido, pero al ponértelo sientes la presencia alentadora de un espíritu generoso. Lástima que no le cosió sus iniciales.",
|
||||
"questAtom3Boss": "El Lavandomante",
|
||||
"questAtom3DropPotion": "Poción de eclosión Básica",
|
||||
"questAtom3DropPotion": "Base Hatching Potion",
|
||||
"questOwlText": "El Búho Nocturno",
|
||||
"questOwlNotes": "La luz de la Taberna queda encendida hasta el amanecer<br>¡Hasta que una tarde su brillo comienza a desaparecer!<br>¿Cómo podremos ver en la noche oscura?<br>@Twitching grita, \"¡Necesito guerreros que luchen con premura!<br>¿Ven a ese Búho Nocturno por las estrellas iluminado?<br>¡Peleen con valentía hasta que sea derrotado!<br>A su sombra de nuestra puerta alejaremos,<br>¡y una vez más la noche brillar haremos!\"",
|
||||
"questOwlCompletion": "El Búho Nocturno se desvanece antes del amanecer,<br>Pero aún así, sientes un bostezo emerger.<br>Quizás sea el momento de tomarse un descanso bien merecido.<br>Sin embargo, cuando llegas a tu cama, ¡encuentras un nido!<br>Un Búho Nocturno sabe que no es mala idea<br>Quedarse despierto hasta tarde y terminar una tarea,<br>Pero a tus nuevas mascotas piar podrás oír<br>Porque estarán intentando decirte que es tiempo de dormir.",
|
||||
@@ -161,7 +161,7 @@
|
||||
"questOwlDropOwlEgg": "Búho (Huevo)",
|
||||
"questOwlUnlockText": "Desbloquea Huevos de Buho para comprar en el Mercado",
|
||||
"questPenguinText": "Un Ave Álgida",
|
||||
"questPenguinNotes": "Aunque es un caluroso día de verano en el sur de Habitica, un extraño frío ha caído sobre el Lago Animado. Vientos helados y fuertes soplan mientras la orilla del lago empieza a congelarse. Pinchos de hielo salen del suelo, desplazando al pasto y la tierra. @Melynnrose y @Breadstrings corren hacia ti.<br><br>\"¡Auxilio!\" dice @Melynnrose. \"Trajimos un pingüino gigante para congelar el lago para que pudiéramos patinar sobre hielo, ¡Pero ya nos quedamos sin pescado para darle de comer!\"<br><br>\"¡El pingüino se enojó y está usando su aliento helado para congelar todo lo que ve!\" dice @Breadstrings. \"Por favor, ¡tienes que vencerlo antes de que todos terminemos cubiertos de hielo!\" Parece que necesitas que este pingüino se... <em>enfríe.</em>",
|
||||
"questPenguinNotes": "Aunque es un caluroso día de verano en el sur de Habitica, un extraño frío ha caído sobre el Lago Alegre. Vientos helados y fuertes soplan mientras la orilla del lago empieza a congelarse. Pinchos de hielo salen del suelo, desplazando al pasto y la tierra. @Melynnrose y @Breadstrings corren hacia ti.<br><br>\"¡Auxilio!\" dice @Melynnrose. \"Trajimos un pingüino gigante para congelar el lago para que pudiéramos patinar sobre hielo, ¡pero ya nos quedamos sin pescado para darle de comer!\"<br><br>\"¡El pingüino se enojó y está usando su aliento helado para congelar todo lo que ve!\" dice @Breadstrings. \"Por favor, ¡tienes que vencerlo antes de que todos terminemos cubiertos de hielo!\" Parece que necesitas que este pingüino se... <em>enfríe.</em>",
|
||||
"questPenguinCompletion": "Al vencer al pingüino, el hielo se derrite. El pingüino gigante se relaja bajo el sol, comiendo de una cubeta de pescado que encontraste por ahí. Al terminar, se va patinando a través del lago, soplando suavemente para crear una superficie de hielo lisa y brillante. ¡Qué ave tan rara! \"Parece que también ha dejado algunos huevos,\" dice @Painter de Cluster. <br><br>@Rattify ríe. \"Tal vez estos pingüinos sean un poco más... ¿cool?\"",
|
||||
"questPenguinBoss": "Pingüino Álgido",
|
||||
"questPenguinDropPenguinEgg": "Pingüino (Huevo)",
|
||||
@@ -207,8 +207,8 @@
|
||||
"questSlimeText": "La Jalea Regente",
|
||||
"questSlimeNotes": "Mientras te ocupas de tus tareas, te das cuenta de que te estás moviendo más y más lento. \"Es como caminar a través de melaza,\" se queja @Leephon. \"¡No, como atravesar jalea!\" dice @starsystemic. \"Esa babosa Jalea Regente ha untado su sustancia por toda Habitica. Está arruinando los trabajos. Todo el mundo se está volviendo más lento.\" Tú miras alrededor. Las calles se están llenando de a poco con un cieno claro y colorido, y los Habiticanos están luchando para poder terminar algo. Mientras otros huyen del área, ¡tú agarras un trapeador y te preparas para la batalla!",
|
||||
"questSlimeBoss": "Jalea Regente",
|
||||
"questSlimeCompletion": "Con un golpe final, atrapas a la Jalea Regente en una dona demasiado grande que te fue alcanzada por @Overomega, @LordDarkly y @Shaner, los líderes con reflejos rápidos del club de pastelería. Mientras todos te dan palmadas en la espalda, sientes a alguien poner discretamente algo en tu bolsillo. Es la recompensa por tu dulce éxito: tres huevos de Baba de Malvavisco.",
|
||||
"questSlimeDropSlimeEgg": "Baba de Malvavisco (Huevo)",
|
||||
"questSlimeCompletion": "Con un golpe final, atrapas a la Jalea Regente en una dona demasiado grande que te fue alcanzada por @Overomega, @LordDarkly y @Shaner, los líderes con reflejos rápidos del club de pastelería. Mientras todos te dan palmadas en la espalda, sientes a alguien poner discretamente algo en tu bolsillo. Es la recompensa por tu dulce éxito: tres huevos de Limo de Malvavisco.",
|
||||
"questSlimeDropSlimeEgg": "Limo de Malvavisco (Huevo)",
|
||||
"questSlimeUnlockText": "Desbloquea Huevos de Baba de Malvavisco para comprar en el Mercado",
|
||||
"questSheepText": "El Carnero del Trueno",
|
||||
"questSheepNotes": "Mientras deambulas por las campiñas de Taskan con tus amigos, tomando un \"corto descanso\" de tus obligaciones, encuentras una acogedora tienda de estambre. Estás tan sumergido en tu procrastinación que apenas te das cuenta de las siniestras nubes que cubren el cielo. \"Tengo un ma-a-a-al presentimiento de este clima\", murmura @Misceo, y tú miras hacia arriba. Las tempestuosas nubes se arremolinan y se parecen mucho a un... \"¡No tenemos tiempo para mirar nubes!\" grita @starsystemic. \"¡Está atacando!\" ¡El Carnero del Trueno se abalanza, lanzando rayos hacia ti!",
|
||||
@@ -220,7 +220,7 @@
|
||||
"questKrakenNotes": "Es un día cálido y soleado mientras navegas a través de la Bahía Inkompleta, pero tus pensamientos están llenos de preocupaciones sobre todo lo que aún te queda por hacer. Pareciera que apenas terminas una tarea, otra brota de la nada, y luego otra...<br><br>De pronto el bote da una horrible sacudida, ¡y tentáculos babosos emergen del agua por todas partes! \"¡Estamos siendo atacados por el Kraken de Inkompleta!\" grita Wolvenhalo.<br><br>\"¡Rápido!\" te llama Lemoness. \"¡Derriba la mayor cantidad de tentáculos que puedas antes de que otros se alzen y tomen su lugar!\"",
|
||||
"questKrakenBoss": "El Kraken de Inkompleta",
|
||||
"questKrakenCompletion": "Mientras el Kraken huye, varios huevos flotan hacia la superficie del agua. Lemoness los examina, y su recelo se transforma en placer. \"¡Huevos de Sepia!\" dice. \"Aquí tienes, tómalos como recompensa por todo lo que has completado.\"",
|
||||
"questKrakenDropCuttlefishEgg": "Sepia (Huevo)",
|
||||
"questKrakenDropCuttlefishEgg": "Calamar (Huevo)",
|
||||
"questKrakenUnlockText": "Desbloquea Huevos de Sepia para comprar en el Mercado",
|
||||
"questWhaleText": "El Llanto de la Ballena",
|
||||
"questWhaleNotes": "Llegas a los Muelles Diligentes, esperando abordar un submarino para ver el Derby de Dilatoria. De pronto, un bramido ensordecedor te obliga a detenerte y tapar tus oídos. \"¡Por allí resopla!\" grita el Capitán @krazjega, señalando a una enorme ballena que se lamenta. \"¡No es seguro enviar a los submarinos mientras ella está dando vueltas!\"<br><br>\"Rápido,\" dice @UncommonCriminal. \"¡Ayúdenme a calmar a esta pobre criatura así podemos averiguar por qué está haciendo todo este ruido!\"",
|
||||
@@ -242,7 +242,7 @@
|
||||
"questDilatoryDistress2RageTitle": "Regeneración del Enjambre",
|
||||
"questDilatoryDistress2RageDescription": "Regeneración del Enjambre: Esta barra se llena cuando no completas tus Tareas Diarias. Cuando está llena, ¡el Enjambre de Calaveras Acuáticas curará el 30% de su salud restante!",
|
||||
"questDilatoryDistress2RageEffect": "`¡El Enjambre de Calaveras Acuáticas usa REGENERACIÓN DE ENJAMBRE!`\n\n¡Incentivadas por sus victorias, más calaveras salen de la grieta, fortaleciendo al enjambre!",
|
||||
"questDilatoryDistress2DropSkeletonPotion": "Poción de eclosión Esqueleto",
|
||||
"questDilatoryDistress2DropSkeletonPotion": "Poción de Eclosión Calavera",
|
||||
"questDilatoryDistress2DropCottonCandyBluePotion": "Poción de eclosión de Algodón de Azúcar Azul",
|
||||
"questDilatoryDistress2DropHeadgear": "Diadema de Coral de Fuego (Equipamiento para la cabeza)",
|
||||
"questDilatoryDistress3Text": "Desazón Dilatoria, Parte 3: Ninguna Simple Doncella",
|
||||
@@ -313,7 +313,7 @@
|
||||
"questSnailDropSnailEgg": "Caracol (Huevo)",
|
||||
"questSnailUnlockText": "Desbloquea Huevos de Caracol para comprar en el Mercado",
|
||||
"questBewilderText": "El Obnubilave",
|
||||
"questBewilderNotes": "La fiesta comienza como cualquier otra.<br><br>Los aperitivos son excelentes, la música es jovial, e incluso los elefantes danzantes se han vuelto normales. Los Habiticanos ríen y se divierten en medio de los centros de mesa florales desbordantes, felices de poder distraerse lejos de sus tareas más desagradables, y el Santo Inocente da vueltas entre ellos, mostrando con entusiasmo un truco entretenido por aquí y un ingenioso giro por allá.<br><br>Al tiempo que el reloj de la torre de Desconcertaire da la medianoche, el Santo Inocente se sube de un salto al escenario para dar un discurso.<br><br>\"¡Amigos! ¡Enemigos! ¡Conocidos tolerantes! Escuchen con atención.\" La multitud se ríe por lo bajo mientras orejas de animales brotan de sus cabezas, y todos posan con sus nuevos accesorios.<br><br>\"Como saben,\" el Inocente continúa, \"mis ilusiones confusas generalmente duran sólo un día. Pero estoy feliz de anunciar que he descubierto un atajo que nos garantizará diversión sin fin, sin tener que lidiar con el molesto peso de nuestras responsabilidades. Encantadores Habiticanos, conozcan a mi nuevo y mágico amigo... ¡el Obnubilave!\"<br><br>Lemoness palidece repentinamente, dejando caer sus aperitivos. \"¡Esperen! No confíen en--\"<br><br>Pero de forma súbita una neblina se vierte en la sala, brillante y densa, y se arremolina alrededor del Santo Inocente, fusionándose en forma de plumas nubosas y un cuello estirado. La multitud se queda sin palabras mientras una monstruosa ave aparece frente a ella, sus alas centelleando llenas de ilusiones. El ave deja escapar una horrible risa chirriante.<br><br>\"¡Ah, han pasado siglos desde que un Habiticano fue lo suficientemente tonto como para convocarme! Qué fabuloso se siente tener al fin una forma tangible.\"<br><br>Zumbando aterrorizadas, las abejas mágicas de Desconcertaire huyen de la ciudad flotante, que se alza en el cielo. Una por una, las radiantes flores primaverales se marchitan y desaparecen en una voluta de humo.<br><br>\"Mis queridos amigos, ¿por qué están tan asustados?\" cacarea el Obnubilave, agitando sus alas. \"Ya no hay necesidad de trabajar duro para conseguir recompensas. ¡Yo les daré todas las cosas que desean!\"<br><br>Una lluvia de monedas cae del cielo, golpeando el suelo con una fuerza brutal, y la muchedumbre grita y corre a buscar refugio. \"¿Esto es una broma?\" aúlla Baconsaur, mientras el oro rompe ventanas y destroza tejados.<br><br>PainterProphet se agacha al mismo tiempo que rayos restallan por encima suyo y una niebla bloquea el sol. \"¡No! ¡Esta vez, no creo que lo sea!\"<br><br>Rápido, Habiticanos, ¡no dejemos que este Jefe Global nos distraiga de nuestros objetivos! Manténganse enfocados en las tareas que deben completar para que podamos rescatar a Desconcertaire -- y, con suerte, a nosotros mismos.",
|
||||
"questBewilderNotes": "La fiesta comienza como cualquier otra.<br><br>Los aperitivos están excelentes, la música suena con ritmo, e incluso los elefantes bailarines se han vuelto rutina. Los Habiticanos ríen y saltan entre los desbordantes centros de mesa florales, felices de tener una distracción de sus tareas menos favoritas, mientras el April Fool gira entre ellos, proporcionando con entusiasmo un truco divertido aquí y un giro ingenioso allá.<br><br>Cuando el reloj de la torre de Mistiflying marca la medianoche, el April Fool salta al escenario para dar un discurso.<br><br>\"¡Amigos! ¡Enemigos! ¡Conocidos tolerantes! Denme sus oídos.\" La multitud se ríe mientras orejas de animales brotan de sus cabezas y posan con sus nuevos accesorios.<br><br>\"Como saben,\" continúa el Fool, \"mis confusas ilusiones usualmente solo duran un día. ¡Pero me complace anunciar que he descubierto un atajo que nos garantizará diversión sin fin, sin tener que lidiar con el molesto peso de nuestras responsabilidades. Encantadores Habiticanos, conozcan a mi nuevo amigo mágico... ¡el Be-Wilder!\"<br><br>Lemoness palidece repentinamente, dejando caer sus aperitivos. \"¡Espera! ¡No confíen--!\"<br><br>Pero de repente, niebla comienza a inundar la habitación, brillante y espesa, y se arremolina alrededor del April Fool, cohesionándose en plumas nubladas y un cuello que se alarga. La multitud está en shock mientras un monstruoso pájaro se despliega ante ellos, sus alas resplandecen con ilusiones. Suelta una horrible risa estridente.<br><br>\"¡Oh, ha pasado tanto tiempo desde que un Habiticano fue tan tonto como para invocarme! Qué maravilloso se siente, tener una forma tangible por fin.\"<br><br>Los zumbidos de terror se escuchan mientras las abejas mágicas de Mistiflying huyen de la ciudad flotante, que se desploma del cielo. Una por una, las brillantes flores de primavera se marchitan y desaparecen en el aire.<br><br>\"Mis queridos amigos, ¿por qué tan alarmados?\" canta el Be-Wilder, batiendo sus alas. \"No es necesario esforzarse por sus recompensas ya. ¡Solo les daré todo lo que deseen!\"<br><br>Una lluvia de monedas cae del cielo, golpeando el suelo con fuerza brutal, y la multitud grita y huye a cubrirse. \"¿Es esto una broma?\" grita Baconsaur, mientras el oro destroza ventanas y rompe tejas del techo.<br><br>PainterProphet se agacha mientras los rayos chisporrotean por encima, y la niebla tapa el sol. \"¡No! ¡Esta vez no creo que sea una broma!\"<br><br>¡Rápido, Habiticanos, no dejen que este World Boss nos distraiga de nuestros objetivos! Manténganse enfocados en las tareas que deben completar para que podamos rescatar a Mistiflying -- y, con suerte, a nosotros mismos.",
|
||||
"questBewilderCompletion": "<strong>¡El Obnubilave ha sido DERROTADO!</strong><br><br>¡Lo logramos! El Obnubilave deja escapar un aullido mientras se retuerce en el aire, perdiendo plumas que caen como gotas de lluvia. Lenta y gradualmente, se enrolla formando una nube de niebla centelleante. Mientras el sol recién despejado atraviesa la niebla, ésta es consumida por el calor, revelando las formas afortunadamente humanas de Bailey, Matt, Alex... y del mismísimo Santo Inocente.<br><br><strong>¡Desconcertaire ha sido salvada!</strong><br><br>El Santo Inocente tiene el suficiente remordimiento como para mostrarse avergonzado. \"Ah, hm,\" dice. \"Tal vez... me dejé llevar un poco.\"<br><br>La multitud murmura. Flores empapadas son arrastradas a las aceras. A la distancia, en alguna parte, un techo se derrumba con un ruido espectacular.<br><br>\"Eh, sí,\" dice el Santo Inocente. \"Lo que quise decir es que lo siento terriblemente.\" Deja salir un suspiro. \"Supongo que no todo en la vida puede ser diversión. No me haría daño enfocarme de vez en cuando. Quizás me adelante para la broma del año que viene.\"<br><br>Redphoenix tose exageradamente.<br><br>\"Quiero decir, ¡quizás me adelante para la limpieza general!\" dice el Santo Inocente. \"No hay nada que temer, pronto dejaré a Ciudad Hábito como nueva. Por suerte nadie me supera en el manejo de dos trapeadores al mismo tiempo.\"<br><br>Animada, la banda de música comienza a tocar.<br><br>No pasa mucho tiempo hasta que todo vuelve a la normalidad en Ciudad Hábito. Además, ahora que el Obnubilave se ha evaporado, las abejas mágicas de Desconcertaire vuelven a trabajar con un ritmo ajetreado, y pronto las flores brotan y la ciudad flota una vez más.<br><br>Mientras los Habiticanos abrazan a las peludas abejas mágicas, los ojos del Santo Inocente se iluminan. \"¡Ajá, se me ha ocurrido algo! ¿Por qué no se quedan con algunas de estas peluditas abejas como mascotas y monturas? Es un regalo que simboliza perfectamente el equilibrio entre el trabajo duro y las dulces recompensas, si me voy a poner aburrido y alegórico.\" El Inocente guiña. \"Además, ¡no tienen aguijones! Palabra de Inocente.\"",
|
||||
"questBewilderCompletionChat": "`¡El Obnubilave ha sido DERROTADO!`\n\n¡Lo logramos! El Obnubilave deja escapar un aullido mientras se retuerce en el aire, perdiendo plumas que caen como gotas de lluvia. Lenta y gradualmente, se enrolla formando una nube de niebla centelleante. Mientras el sol recién despejado atraviesa la niebla, ésta es consumida por el calor, revelando las formas afortunadamente humanas de Bailey, Matt, Alex... y del mismísimo Santo Inocente.\n\n`¡Desconcertaire ha sido salvada!`\n\nEl Santo Inocente tiene el suficiente remordimiento como para mostrarse avergonzado. \"Ah, hm,\" dice. \"Tal vez... me dejé llevar un poco.\"\n\nLa multitud murmura. Flores empapadas son arrastradas a las aceras. A la distancia, en alguna parte, un techo se derrumba con un ruido espectacular.\n\n\"Eh, sí,\" dice el Santo Inocente. \"Lo que quise decir es que lo siento terriblemente.\" Deja salir un suspiro. \"Supongo que no todo en la vida puede ser diversión. No me haría daño enfocarme de vez en cuando. Quizás me adelante para la broma del año que viene.\"\n\nRedphoenix tose exageradamente.\n\n\"Quiero decir, ¡quizás me adelante para la limpieza general!\" dice el Santo Inocente. \"No hay nada que temer, pronto dejaré a Ciudad Hábito como nueva. Por suerte nadie me supera en el manejo de dos trapeadores al mismo tiempo.\"\n\nAnimada, la banda de música comienza a tocar.\n\nNo pasa mucho tiempo hasta que todo vuelve a la normalidad en Ciudad Hábito. Además, ahora que el Obnubilave se ha evaporado, las abejas mágicas de Desconcertaire vuelven a trabajar con un ritmo ajetreado, y pronto las flores brotan y la ciudad flota una vez más.\n\nMientras los Habiticanos abrazan a las peludas abejas mágicas, los ojos del Santo Inocente se iluminan. \"¡Ajá, se me ha ocurrido algo! ¿Por qué no se quedan con algunas de estas peluditas abejas como mascotas y monturas? Es un regalo que simboliza perfectamente el equilibrio entre el trabajo duro y las dulces recompensas, si me voy a poner aburrido y alegórico.\" El Inocente guiña. \"Además, ¡no tienen aguijones! Palabra de Inocente.\"",
|
||||
"questBewilderBossRageTitle": "Ataque Engañador",
|
||||
@@ -340,7 +340,7 @@
|
||||
"questAxolotlCompletion": "Después de derrotar al Ajolote Mágico, te das cuenta de que has recuperado tu fuerza de voluntad por tu cuenta.<br><br>\"¿La fuerza de voluntad? ¿La regeneración? ¿Fue todo una ilusión?\" pregunta @Kiwibot.<br><br>\"La mayoría de la magia lo es\", contesta el Ajolote Mágico. \"Siento tanto haberlos engañado. Por favor acepten estos huevos como una disculpa. ¡Confío en que los criaran para usar su magia para hábitos buenos, y no para el mal!\"<br><br>@hazel40 y tú toman los huevos nuevos en una mano y se despiden con la otra mientras el Ajolote Mágico regresa al lago.",
|
||||
"questAxolotlBoss": "Ajolote Mágico",
|
||||
"questAxolotlDropAxolotlEgg": "Ajolote (Huevo)",
|
||||
"questAxolotlUnlockText": "Desbloquea Huevos de Ajolote para comprar en el Mercado",
|
||||
"questAxolotlUnlockText": "Desbloquea huevos de Ajolote adquiribles en el Mercado",
|
||||
"questAxolotlRageTitle": "Regeneración de Ajolote",
|
||||
"questAxolotlRageDescription": "Esta barra se va llenando cuando no completas tus Diarias. Cuando se llene completamente, ¡el Ajolote Mágico sanará 30% de su salud restante!",
|
||||
"questAxolotlRageEffect": "`¡El Ajolote Mágico usa REGENERACIÓN AJOLOTE!`\n\n`¡Una cortina de burbujas coloridas nubla al monstruo por un momento y, cuando se despeja, algunas de sus heridas han desaparecido!`",
|
||||
@@ -361,13 +361,13 @@
|
||||
"questCowCompletion": "Ordeñas tus buenos hábitos todo lo que puedes hasta que la vaca regresa a su forma original. La vaca te mira con sus lindos ojos cafés y te acerca tres huevos con un empujoncito.<br><br>@fuzzytrees se ríe y te da los huevos, \"De pronto todavía está muuutada si hay vaquitas en esos huevos. ¡Pero confío en que seguirás con tus buenos hábitos mientras los crías!\"",
|
||||
"questCowBoss": "Vaca Muutante",
|
||||
"questCowDropCowEgg": "Vaca (Huevo)",
|
||||
"questCowUnlockText": "Desbloquea Huevos de Vaca para comprar en el mercado",
|
||||
"questCowUnlockText": "Desbloquea Huevos de Vaca adquiribles en el mercado",
|
||||
"questBeetleText": "El ERROR CRÍTICO",
|
||||
"questBeetleNotes": "Algo anda mal en el dominio de Habitica. Las forjas de los Herreros se han extinguido y errores extraños están apareciendo en todas partes. Con un temblor ominoso, un insidioso enemigo sale retorciéndose de la tierra... ¡un BICHO CRÍTICO! Te preparas mientras infecta la tierra, y fallas empiezan a controlar a los Habitianos alrededor tuyo. @starsystemic grita, \"¡Necesitamos ayudar a los Herreros a controlar este Bicho!\" Parece que tendrás que hacer de esta plaga de los programadores tu prioridad número uno.",
|
||||
"questBeetleCompletion": "Con un ataque final, aplastas al BICHO CRÍTICO. @starsystemic y los Herreros se acercan corriendo, felices. \"¡No te puedo agradecer lo suficiente por destruir ese bicho! Toma, llévate estos.\" Te regalan tres huevos brillantes de escarabajo.Con suerte estos pequeños bichos crecerán para ayudar a Habitica, no para lastimarla.",
|
||||
"questBeetleBoss": "ERROR CRÍTICO",
|
||||
"questBeetleDropBeetleEgg": "Escarabajo (Huevo)",
|
||||
"questBeetleUnlockText": "Desbloquea Huevos de Escarabajo para comprar en el Mercado",
|
||||
"questBeetleUnlockText": "Desbloquea Huevos de Escarabajo adquiribles en el Mercado",
|
||||
"questGroupTaskwoodsTerror": "Terror en Bosquetareas",
|
||||
"questTaskwoodsTerror1Text": "Terror en Bosquetareas, Parte 1: El Resplandor en Bosquetareas",
|
||||
"questTaskwoodsTerror1Notes": "Nunca has visto a la Parca Alegre tan agitada. La soberana de los Campos Florecientes aterriza su montura de grifo esqueleto justo en el medio de Plaza Productividad y grita sin desmontar: \"¡Queridos Habitianos, necesitamos su ayuda! Algo está iniciando incendios en Bosquetareas, y aún no nos hemos recuperado completamente de nuestra batalla contra Burnout. Si no es detenido, ¡las llamas podrían envolver todos nuestros huertos salvajes y arbustos de bayas!\"<br><br>Te ofreces como voluntario rápidamente, y te apresuras a Bosquetareas. Mientras te arrastras al interior del bosque de fruta más grande de Habitica, repentinamente escuchas cacareos y voces entrecortadas de más adelante, y detectas el débil olor a humo. Poco después, ¡una horda de criaturas de calavera cacareando y en llamas pasa volando, mordiendo ramas y prendiendo fuego a las copas de los árboles!",
|
||||
@@ -376,8 +376,8 @@
|
||||
"questTaskwoodsTerror1RageTitle": "Regeneración del Enjambre",
|
||||
"questTaskwoodsTerror1RageDescription": "Regeneración del Enjambre: Esta barra se llena cuando no completas tus Tareas Diarias. Cuando está llena, ¡el Enjambre de Calaveras de Fuego curará el 30% de su salud restante!",
|
||||
"questTaskwoodsTerror1RageEffect": "`¡El Enjambre de Calaveras de Fuego usa REGENERACIÓN DEL ENJAMBRE!`\n\n¡Alentadas por sus victorias, más calaveras se arremolinan a tu alrededor en una llamarada!",
|
||||
"questTaskwoodsTerror1DropSkeletonPotion": "Poción de eclosión Esqueleto",
|
||||
"questTaskwoodsTerror1DropRedPotion": "Poción de Eclosión Roja",
|
||||
"questTaskwoodsTerror1DropSkeletonPotion": "Poción de Eclosión Calavera",
|
||||
"questTaskwoodsTerror1DropRedPotion": "Posión de eclosión roja",
|
||||
"questTaskwoodsTerror1DropHeadgear": "Turbante de Piromante (Equipamiento de cabeza)",
|
||||
"questTaskwoodsTerror2Text": "Terror en Bosquetareas, Parte 2: Encontrando las Hadas Florecientes",
|
||||
"questTaskwoodsTerror2Notes": "Habiendo luchado a través del enjambre de calaveras en llamas, llegas a un gran grupo de granjeros refugiados al borde del bosque. \"Su pueblo fue quemado por un espíritu otoñal renegado\" dice una voz familiar. Es @Kiwibot, ¡el rastreador legendario! \"Logré reunir a los sobrevivientes, pero no hay señal de las Hadas Florecientes que ayudan a crecer la fruta silvestre de Bosquetareas. Por favor, ¡tienes que ayudarme a rescatarlas!\"",
|
||||
@@ -397,7 +397,7 @@
|
||||
"questFerretCompletion": "Derrotas al estafador de pelaje suave y @UncommonCriminal devuelve el dinero a la multitud. Incluso queda un poco de dinero para ti. Además, ¡parece que el Hurón Nefario dejó caer algunos huevos en su prisa por huir!",
|
||||
"questFerretBoss": "Hurón Nefario",
|
||||
"questFerretDropFerretEgg": "Hurón (Huevo)",
|
||||
"questFerretUnlockText": "Desbloquea Huevos de Hurón para comprar en el Mercado",
|
||||
"questFerretUnlockText": "Desbloquea Huevos de Hurón adquiribles en el Mercado",
|
||||
"questDustBunniesText": "Los Conejos de Polvo Salvajes",
|
||||
"questDustBunniesNotes": "Ha pasado un rato desde la última vez que limpiaste aquí, pero no estás muy preocupado; un poco de polvo nunca hizo daño a nadie ¿cierto? No es hasta que metes la mano en uno de los rincones más polvorientos y sientes que algo te muerde que recuerdas la advertencia de @InspectorCaracal: ¡dejar acumulado el polvo inofensivo mucho tiempo hace que se convierta en feroces conejos de polvo! ¡Más vale que los derrotes antes de que cubran todo Habitica con finas partículas de mugre!",
|
||||
"questDustBunniesCompletion": "Los conejos de polvo se desvanecen en una nube de... bueno, polvo. Mientras desaparece, miras a tu alrededor. Habías olvidado lo lindo que se ve este lugar cuando está limpio. Encuentras una pequeña montaña de oro en donde antes estaba el polvo. ¡Ah, te estabas preguntando en dónde estaba eso!",
|
||||
@@ -423,13 +423,13 @@
|
||||
"questSlothCompletion": "¡Lo lograste! Al derrotar al Perezoso Somnoliento, sus esmeraldas se caen. \"Gracias por liberarme de mi maldición\", dice el perezoso. \"Finalmente puedo dormir bien, sin esas pesadas esmeraldas en mi espalda. Toma estos huevos como agradecimiento, y puedes quedarte con las esmeraldas también.\" El perezoso te da tres huevos de perezoso y se va a climas más cálidos.",
|
||||
"questSlothBoss": "Perezoso Somnoliento",
|
||||
"questSlothDropSlothEgg": "Perezoso (Huevo)",
|
||||
"questSlothUnlockText": "Desbloquea Huevos de Perezoso para comprar en el Mercado",
|
||||
"questSlothUnlockText": "Desbloquea Huevos de Perezoso adquiribles en el Mercado",
|
||||
"questTriceratopsText": "El Aplastante Triceratops",
|
||||
"questTriceratopsNotes": "Los Volcanes nevados de Stoïkalm siempre están rebosantes de excursionistas y visitantes. Un turista, @plumilla, llama a la multitud. \"¡Miren! ¡Encanté el suelo para que brille y así podamos jugar en él a las actividades de nuestras Tareas Diarias al aire libre!\" Efectivamente, el suelo está llenándose con patrones rojos brillantes. Incluso algunas de las mascotas prehistóricas del área se acercan para jugar.<br><br>De repente, se escucha un fuerte crujido -- ¡un Triceratops curioso ha pisado la varita de @plumilla! Este es envuelto en un estallido de energía mágica, y el suelo empieza a temblar y sacudirse. ¡Los ojos del Triceratops se tornan de rojo, ruge y empieza a salir en estampida!<br><br>\"Eso no es bueno,\" anuncia @McCoyly, apuntando a la distancia. ¡Cada pisada rebosante de magia está causando que los volcanes entren en erupción y el brillante suelo está volviéndose en lava debajo de los pies del dinosaurio! Rápido, debes contener al Aplastante Triceratops hasta que alguien pueda revertir el hechizo!",
|
||||
"questTriceratopsCompletion": "Pensando rápidamente, guías a la criatura hacia las calmantes Estepas de Stoïkalm para que @*~Seraphina~* y @PainterProphet puedan deshacer el hechizo de lava sin distracciones. El aura calmante de las Estepas hace efecto y el Triceratops se acurruca mientras los volcanes vuelven a quedar inactivos. @PainterProphet te pasa unos huevos que fueron rescatados de la lava. \"Sin ustedes, no habríamos podido concentrarnos para detener las erupciones. Den un buen hogar a estas mascotas.\"",
|
||||
"questTriceratopsBoss": "Aplastante Triceratops",
|
||||
"questTriceratopsDropTriceratopsEgg": "Triceratops (Huevo)",
|
||||
"questTriceratopsUnlockText": "Desbloquea Huevos de Triceratops para comprar en el Mercado",
|
||||
"questTriceratopsUnlockText": "Desbloquea Huevos de Triceratops adquiribles en el Mercado",
|
||||
"questGroupStoikalmCalamity": "Calamidad de Stoïkalm",
|
||||
"questStoikalmCalamity1Text": "Calamidad de Stoïkalm, Parte 1: Enemigos Terrosos",
|
||||
"questStoikalmCalamity1Notes": "Llega una breve misiva de @Kiwibot, y el pergamino cubierto de escarcha te hiela el corazón al igual que las yemas de tus dedos. \"Visitando las estepas de Stoïkalm -- monstruos brotando de la tierra -- ¡Envíen ayuda!\" Reúnes a tu equipo y cabalgan hacia el norte, pero tan pronto como se aventuran a bajar de las montañas, ¡la nieve bajo tus pies explota y te rodean calaveras repugnantemente sonrientes!<br><br>De repente, una lanza surca el cielo, enterrándose en una calavera que estaba escarbando a través de la nieve en un intento de atraparte desprevenido. Una mujer alta con una armadura finamente elaborada galopa hacia la contienda en el lomo de un mastodonte, su larga trenza se balancea mientras ella arranca la lanza sin miramientos de la bestia derrotada. ¡Es hora de luchar contra estos enemigos con la ayuda de Lady Glacial, la líder de los Jinetes de Mamut!",
|
||||
@@ -438,8 +438,8 @@
|
||||
"questStoikalmCalamity1RageTitle": "Regeneración del Enjambre",
|
||||
"questStoikalmCalamity1RageDescription": "Regeneración del Enjambre: Esta barra se llena cuando no completas tus Tareas Diarias. Cuando está llena, ¡el Enjambre de Calaveras Terrestres curará el 30% de su salud restante!",
|
||||
"questStoikalmCalamity1RageEffect": "`¡El Enjambre de Calaveras Terrestres usa REGENERACIÓN DEL ENJAMBRE!`\n\n¡Más calaveras salen de la tierra, con sus dientes castañeteando de frío!",
|
||||
"questStoikalmCalamity1DropSkeletonPotion": "Poción de Eclosión Esqueleto",
|
||||
"questStoikalmCalamity1DropDesertPotion": "Poción de Eclosión del Desierto",
|
||||
"questStoikalmCalamity1DropSkeletonPotion": "Poción de Eclosión Calavera",
|
||||
"questStoikalmCalamity1DropDesertPotion": "Posión de eclosión del desierto",
|
||||
"questStoikalmCalamity1DropArmor": "Armadura del Jinete de Mamut",
|
||||
"questStoikalmCalamity2Text": "Calamidad de Stoïkalm, Parte 2: Busca las Cavernas de Carámbanos",
|
||||
"questStoikalmCalamity2Notes": "La majestuosa sala de los Jinetes de Mamut es una austera obra maestra de arquitectura, pero además está completamente vacía. No hay muebles, las armas están perdidas, e incluso las columnas han sido limpiadas de sus incrustaciones.<br><br>\"Esas calaveras arrasaron el lugar,\" dice Lady Glacial, y hay una tormenta avecinándose en su tono. \"Humillante. Que ni un alma mencione esto al Santo Inocente, o nunca escucharé el final de esto.\"<br><br>\"¡Que misterioso!\" dice @Beffymaroo. \"¿Pero adónde--\"<br><br>\"Las cavernas del draco de carámbano.\" Lady Glacial gesticula hacia las monedas brillantes esparcidas en la nieve de afuera. \"Descuidado.\"<br><br>\"¿Pero los dracones no son criaturas honorables con sus propias reservas de tesoros?\" pregunta @Beffymaroo. \"¿Porqué podrían--\"<br><br>\"Control mental,\" dice Lady Glacial, sin inmutarse. \"O algo igualmente melodramático e inconveniente.\" Empieza a salir de la sala a grandes zancadas. \"¿Porqué solo están parados ahí?\"<br><br>Rápido, ¡Vamos a seguir el rastro de las Monedas del Carámbano!",
|
||||
@@ -458,28 +458,28 @@
|
||||
"questGuineaPigCompletion": "\"¡No sometemos!\" El Jefe de la Pandilla de Conejillos de Indias te agita con sus patas, con su cabeza esponjosa sacudiendo en señal de rendición. De debajo de su sombrero cae una lista, y @snazzyorange te la pasa rápidamente como evidencia. \"Espera un minuto,\" dices. \"¡No es de extrañarse que estabas recibiendo daño! Tienes demasiadas Tareas Diarias. Tú no necesitas pociones de salud -- solo necesitas ayuda para organizarte.\"<br><br>\"¿De verdad?\" chilla el Jefe de la Pandilla de Conejillos de Indias. \"¡Hemos robado a tantas personas por esto! Por favor toma estos huevos como una disculpa por nuestras torcidas acciones.\"",
|
||||
"questGuineaPigBoss": "Pandilla de Conejillos de Indias",
|
||||
"questGuineaPigDropGuineaPigEgg": "Conejillo de Indias (Huevo)",
|
||||
"questGuineaPigUnlockText": "Desbloquea Huevos de Conejillo de Indias para comprar en el Mercado",
|
||||
"questGuineaPigUnlockText": "Desbloquea Huevos de Conejillo de Indias adquiribles en el Mercado",
|
||||
"questPeacockText": "El Pavo Real del Tira y Afloja",
|
||||
"questPeacockNotes": "Caminas a través del Bosquetareas, preguntándote cual de los nuevos objetivos tentadores deberías escoger. Mientras te adentras al bosque, te das cuenta de que no estás solo en tu indecisión. \"Podría aprender un nuevo idioma, o ir al gimnasio...\" murmura @Cecily Perez. \"Podría dormir más,\" medita @Lilith of Alfheim, \"o pasar tiempo con mis amigos...\" Parece que @PainterProphet, @Pfeffernusse, y @Draayder están igualmente paralizados por las abrumadoras opciones.<br><br>Te das cuenta de que estos sentimientos cada vez más demandantes no son realmente tuyos... ¡Has tropezado directamente con la trampa del pernicioso Pavo Real del Tira y Afloja! Antes de que puedas correr, salta de los arbustos. Con cada una de las cabezas tirando de ti en direcciones contrarias, empiezas a sentir que el agotamiento te supera. No puedes derrotar a ambos enemigos a la vez, así que solo tienes una opción -- ¡concentrarse en la tarea más cercana para contraatacar!",
|
||||
"questPeacockCompletion": "El Pavo Real Tira-y-Afloja es sorprendido por tu repentina convicción. Derrotado por tu sólida determinación, sus cabezas se fusionan de nuevo en una sola, revelando la criatura más hermosa que has visto. \"Gracias\", dice el pavo real. \"He pasado tanto tiempo dispersándome en direcciones diferentes que perdí de vista lo que realmente quería. Por favor, acepta estos huevos como muestra de mi gratitud.\"",
|
||||
"questPeacockBoss": "Pavo Real del Tira y Afloja",
|
||||
"questPeacockDropPeacockEgg": "Pavo real (Huevo)",
|
||||
"questPeacockUnlockText": "Desbloquea Huevos de Pavo Real para comprar en el Mercado",
|
||||
"questPeacockUnlockText": "Desbloquea Huevos de Pavo real adquiribles en el Mercado",
|
||||
"questButterflyText": "Adios, Mariposa",
|
||||
"questButterflyNotes": "Tu amiga jardinera @Megan te envía una invitación: \"Estos días cálidos son el tiempo perfecto para visitar el jardín de mariposas de Habitica en las Campiñas de Taskan. ¡Ven a ver la migración de las mariposas!\" Cuando llegas, sin embargo, el jardín está destrozado -- poco más que hierba quemada y maleza seca. Ha hecho tanto calor que los Habiticanos no han salido a regar las flores, y las Tareas Diarias rojas más oscuras se han convertido en un seco, bronceado, peligro de incendio. Sólo hay una mariposa allí, y hay algo extraño en ella...<br><br>\"¡Oh no! Esta es la tierra perfecta para la eclosión de la Mariposa Llameante,\" grita @Leephon.<br><br>“¡Si no la atrapamos, destruirá todo!\" jadea @Eevachu.<br><br>¡Tiempo para decir adiós Mariposa!",
|
||||
"questButterflyCompletion": "Después de una fuerte batalla, la Mariposa Llameante es capturada. “Buen trabajo atrapando esa incendiaria en potencia” dice @Megan con un suspiro de alivio. “Aún así, es difícil afrentar incluso a la mariposa más vil. Deberíamos soltar esta Mariposa en un lugar seguro…como el desierto.”<br><br>Uno de los otros jardineros, @Beffymaroo, se te acerca, quemado pero sonriente. “¿Nos ayudas a criar a las crisálidas abandonadas que encontramos? Tal vez el año que viene tengamos un jardín más verde para ellas.\"",
|
||||
"questButterflyBoss": "Mariposa Llameante",
|
||||
"questButterflyBoss": "Mariposa Flameante",
|
||||
"questButterflyDropButterflyEgg": "Oruga (Huevo)",
|
||||
"questButterflyUnlockText": "Desbloquea Huevos de Oruga para comprar en el Mercado",
|
||||
"questButterflyUnlockText": "Desbloquea Huevos de Oruga adquiribles en el Mercado",
|
||||
"questGroupMayhemMistiflying": "Caos en Desconcertaire",
|
||||
"questMayhemMistiflying1Text": "Caos en Desconcertaire, Parte 1: En la que Desconcertaire Experimenta una Terrible Molestia",
|
||||
"questMayhemMistiflying1Notes": "Aunque los adivinos locales pronosticaron un clima agradable, la tarde es extremadamente ventosa, así que sigues agradecidamente a tu amigo @Kiwibot a su casa para escapar del tempestuoso día.<br><br>Ninguno de ustedes esperaba encontrar al Santo Inocente holgazaneando en la mesa de la cocina.<br><br>“Oh, hola,” dice. “Encantado de verlos aquí. Por favor, déjenme ofrecerles un poco de este delicioso té.”<br><br>“Eso es…” @Kiwibot empieza. “Eso es MI—”<br><br>“Sí, sí, por supuesto,” dice el Santo Inocente, sirviéndose unas galletas. “Sólo pensé en meterme y tomar un buen respiro de todas esas calaveras invoca-tornados.” Toma un sorbo casual de su taza de té. “Por cierto, la ciudad de Desconcertaire está bajo ataque.”<br><br>Horrorizados, tú y tus amigos corren a los Establos y ensillan sus monturas aladas más rápidas. Mientras vuelan a la ciudad flotante, ves un enjambre de voladoras y parlanchinas calaveras asediando a la ciudad… ¡y varias de ellas giran su atención hacia ti!",
|
||||
"questMayhemMistiflying1Notes": "Aunque los adivinos locales predijeron un clima agradable, la tarde está extremadamente ventosa, así que sigues agradecido a tu amigo @Kiwibot dentro de su casa para escapar del día ventoso.<br><br>Ninguno de los dos espera encontrar al April Fool descansando en la mesa de la cocina.<br><br>\"Oh, hola,\" dice él. \"Qué curioso verlos aquí. Por favor, déjenme ofrecerles un poco de este delicioso té.\"<br><br>\"Eso es...\" comienza @Kiwibot. \"¡Ese es MI—\"<br><br>\"Sí, sí, claro,\" dice el April Fool, sirviéndose unas galletas. \"Solo pensé en pasar dentro y tomar un buen respiro de todos esos cráneos que invocan tornados.\" Toma un sorbo de su taza de té. \"Por cierto, la ciudad de Mistiflying está siendo atacada.\"<br><br>Aterrados, tú y tus amigos corren hacia los establos y montan a sus más veloces monturas aladas. Mientras se elevan hacia la ciudad flotante, ven que un enjambre de cráneos parlantes y voladores está sitiando la ciudad… ¡y varios de ellos dirigen su atención hacia ustedes!",
|
||||
"questMayhemMistiflying1Completion": "La última calavera cae del cielo con un brillante conjunto de ropajes iridiscentes entre sus dientes, pero el viento constante no ha amainado. Hay algo más en juego aquí. Y ¿en dónde está ese Santo Inocente holgazán? Recoges los ropajes y te precipitas a la ciudad.",
|
||||
"questMayhemMistiflying1Boss": "Enjambre de Calaveras Aéreas",
|
||||
"questMayhemMistiflying1RageTitle": "Regeneración del Enjambre",
|
||||
"questMayhemMistiflying1RageDescription": "Regeneración del Enjambre: Esta barra se llena cuando no completas tus Tareas Diarias. Cuando está llena, ¡el Enjambre de Calaveras Aéreas curará el 30% de su salud restante!",
|
||||
"questMayhemMistiflying1RageEffect": "`¡El Enjambre de Calaveras Aéreas usa REGENERACIÓN DEL ENJAMBRE!`\n\n¡Alentadas por sus victorias, más calaveras salen arremolinándose de las nubes!",
|
||||
"questMayhemMistiflying1DropSkeletonPotion": "Poción de Eclosión Esqueleto",
|
||||
"questMayhemMistiflying1DropSkeletonPotion": "Poción de Eclosión Calavera",
|
||||
"questMayhemMistiflying1DropWhitePotion": "Poción de Eclosión Blanca",
|
||||
"questMayhemMistiflying1DropArmor": "Túnicas de Mensajero Arcoiris Picarón (Armadura)",
|
||||
"questMayhemMistiflying2Text": "Caos en Desconcertaire, Parte 2: En la Cual el Viento Empeora",
|
||||
@@ -489,7 +489,7 @@
|
||||
"questMayhemMistiflying2CollectBlueMistiflies": "Mistiposas Azules",
|
||||
"questMayhemMistiflying2CollectGreenMistiflies": "Mistiposas Verdes",
|
||||
"questMayhemMistiflying2DropHeadgear": "Capucha del Mensajero Arcoiris Picarón (Gorro)",
|
||||
"questMayhemMistiflying3Text": "Caos en Desconcertaire, Parte 3: En la Cual un Cartero es Extremadamente Grosero",
|
||||
"questMayhemMistiflying3Text": "Caos en Desconcertaire, Parte 3: En la Cuál un Cartero es Extremadamente Grosero",
|
||||
"questMayhemMistiflying3Notes": "Las Mistiposas se arremolinan tan densamente en el tornado que es difícil ver. Entrecerrando tus ojos, detectas una silueta con muchas alas flotando en el centro de tremenda tormenta.<br><br>“Oh, no,” suspira el Santo Inocente, casi ahogado por el aullido del clima. “Parece que Winny fue y quedó poseído. Puedo entender eso, también. Podría pasarle a cualquiera.”<br><br>“¡El Trabajador del Viento!” te grita @Beffymaroo. “Es el mago-mensajero más talentoso de Desconcertaire, porque es tan hábil con la magia del clima. ¡Normalmente es un cartero muy cortés!”<br><br>Como para contradecir esta afirmación, el Trabajador del Viento deja salir un grito de furia, e incluso con tus túnicas mágicas, la tormenta casi te tumba de tu montura.<br><br>“Esa llamativa máscara es nueva,” remarca el Santo Inocente. “¿Tal vez debas librarlo de ella?”<br><br>Es una buena idea… pero el enfurecido mago no va a rendirse sin luchar.",
|
||||
"questMayhemMistiflying3Completion": "Justo cuando crees que no puedes soportar más el viento, logras arrebatar la máscara de la cara del Trabajador del Viento. Instantáneamente, el tornado es absorbido, dejando sólo una brisa suave y luz de sol. El Trabajador del Viento mira desconcertado a su alrededor. “¿Adónde se fue?”<br><br>“¿Quién? pregunta tu amigo @khdarkwolf.<br><br>“Aquella dulce mujer quien se ofreció a entregar un paquete por mí. Tzina.” Mientras contempla la ciudad barrida por el viento bajo sus pies, su expresión se ensombrece. “Por otra parte, tal vez no era tan dulce…”<br><br>El Santo Inocente le da una palmadita en la espalda, luego te entrega dos sobres brillantes. “Toma. ¿Porqué no dejas a este angustiado amigo descansar y te encargas del correo un rato? Escuché que la magia en esos sobres hará que valga la pena.”",
|
||||
"questMayhemMistiflying3Boss": "El Trabajador del Viento",
|
||||
@@ -497,7 +497,7 @@
|
||||
"questMayhemMistiflying3DropShield": "Mensaje Arcoiris Picaresco (Artículo de Mano Secundaria)",
|
||||
"questMayhemMistiflying3DropWeapon": "Mensaje Arcoíris Picaresco (Artículo de Mano Principal)",
|
||||
"featheredFriendsText": "Paquete de Misión Amigos Emplumados",
|
||||
"featheredFriendsNotes": "Contiene '¡Ayuda!, ¡Arpía!', 'El Búho Nocturno', y 'Las Aves de la Procrastinación'. Disponible hasta el 31 de Mayo.",
|
||||
"featheredFriendsNotes": "Contiene misiones para conseguir huevos de lechuza, loro y halcón: El Búho Nocturno, ¡Socorro! Arpía!, y Las Aves de la Precariedad.",
|
||||
"questNudibranchText": "Infestación de los HazAhora Nudibranquios",
|
||||
"questNudibranchNotes": "Finalmente te pones a revisar tus Tareas Pendientes en un día de descanso en Habitica. Brillante contra tus tareas más rojas profundo es una manada de vibrantes babosas marinas azules. ¡Estás en trance! Sus colores zafiro hacen que tus tareas más intimidantes parezcan tan fáciles como tus mejores hábitos. En un estupor febril te pones a trabajar, enfrentando una tarea tras otra en un frenesí incesante...<br><br>La próxima cosa que sabes, @LilithofAlfheim está vertiendo agua fría sobre tí. “¡Los HazAhora Nudibranquios te han estado picando por todas partes! ¡Necesitas tomar un descanso!”<br><br>Sorprendido, ves que tu piel están tan roja brillante como estaba tu lista de Tareas Pendientes. \"Ser productivo es una cosa,\" dice @beffymaroo, \"pero también tienes que cuidarte a ti mismo. ¡Deprisa, vamos a deshacernos de ellos!\"",
|
||||
"questNudibranchCompletion": "Ves el último de los HazAhora Nudibranquios deslizándose de una montaña de tareas completadas mientras @amadshade los lava. Uno deja una bolsa de tela al irse, y la abres para revelar algo de oro y unos elipsoides que supones que son huevos.",
|
||||
@@ -505,17 +505,17 @@
|
||||
"questNudibranchDropNudibranchEgg": "Nudibranquia (Huevo)",
|
||||
"questNudibranchUnlockText": "Desbloquea Huevos de Nudibranquia para comprar en el Mercado",
|
||||
"splashyPalsText": "Paquete de Misión Compas Chapoteantes",
|
||||
"splashyPalsNotes": "Contiene 'El Derbi de Dilatoria', 'Guía a la Tortuga' y 'Llanto de la Ballena'. Disponible hasta el 31 de Julio.",
|
||||
"splashyPalsNotes": "Contiene misiones para conseguir huevos de tortuga, ballena y caballito de mar: Guía a la Tortuga, Lamento de la Ballena y El Derby Dilatorio.",
|
||||
"questHippoText": "Qué Hippo-Crita",
|
||||
"questHippoNotes": "Tú y @awesomekitty colapsan bajo la sombra de una palmera, exhaustos. El sol golpea de lleno la Sabana Sloensteadi, abrasando el suelo. Ha sido un día productivo hasta ahora, conquistando tus Tareas Diarias, y este oasis parece un buen lugar para tomar un descanso y refrescarse. Acercándote al agua para beberlo, te tropiezas con la sorpresa de un masivo hipopótamo surgiendo. “¿Descansando tan pronto? No seas tan perezoso, regresa al trabajo.” Intentas protestar que has estado trabajando duro y necesitas un descanso, pero el hipopótamo no quiere enterarse de nada<br><br>@khdarkwolf te susurra, “¿Notaste como está holgazaneando todo el día pero tiene el coraje de llamarte perezoso? ¡Es el Hippo-Crita!”<br><br>Tu amigo @jumorales asiente. “¡Vamos a enseñarle cómo es el trabajo duro!”",
|
||||
"questHippoCompletion": "El hipopótamo se inclina en señal de rendición. “Te subestimé. Parece que no estabas siendo perezoso. Mis disculpas. A decir verdad, puede que haya estado proyectando un poco. Tal vez yo también debería hacer algo de trabajo por mi cuenta. Aquí, toma estos huevos como señal de mi gratitud.” Recibiéndolos, te sientas junto al agua, dispuesto a relajarte al fin.",
|
||||
"questHippoBoss": "El Hippo-Crita",
|
||||
"questHippoDropHippoEgg": "Hipopótamo (Huevo)",
|
||||
"questHippoUnlockText": "Desbloquea Huevos de Hipopótamo para comprar en el Mercado",
|
||||
"questHippoUnlockText": "Desbloquea Huevos de Hipo para comprar en el Mercado",
|
||||
"farmFriendsText": "Paquete de Misión Amigos de la Granja",
|
||||
"farmFriendsNotes": "Contiene 'La Vaca Muutante', 'Monta la Pesadi-Yegua', y el 'Carnero del Trueno'. Disponible hasta el 31 de Agosto.",
|
||||
"farmFriendsNotes": "Contiene misiones para obtener huevos de mascota de caballo, oveja y vaca: Cabalga la Yegua Nocturna, El Carnero del Trueno y La Vaca Mootante.",
|
||||
"witchyFamiliarsText": "Paquete de Misión Familiares de Brujas",
|
||||
"witchyFamiliarsNotes": "Contiene 'El Rey de las Ratas', 'El Arácnido Glacial', y 'El Pantano de la Rana Desastrosa'. Disponible hasta el 31 de Octubre.",
|
||||
"witchyFamiliarsNotes": "Contiene misiones para obtener huevos de mascotas rana, araña y rata: El pantano de la rana desordenada, El arácnido helado y El rey rata.",
|
||||
"questGroupLostMasterclasser": "El Misterio de los Maestros de Clase",
|
||||
"questUnlockLostMasterclasser": "Para desbloquear esta misión, completa las misiones finales de las siguientes cadenas de misión: 'Desazón Dilatoria', 'Caos en Desconcertaire', 'Calamidad en Stoïkalm' y 'Terror en Bosquetareas'.",
|
||||
"questLostMasterclasser1Text": "El Misterio de los Maestros de Clase, Parte 1: Leer Entre Líneas",
|
||||
@@ -537,14 +537,14 @@
|
||||
"questLostMasterclasser3RageDescription": "Regeneración del Enjambre: Esta barra se llena cuando no completas tus Tareas Diarias. Cuando está llena, ¡el Enjambre de Calaveras Huecas curará el 30% de su salud restante!",
|
||||
"questLostMasterclasser3RageEffect": "`¡El Enjambre de Calaveras Huecas usa REGENERACIÓN DEL ENJAMBRE!`\n\n¡Envalentonadas por sus victorias, más calaveras bajan gritando desde los cielos, reforzando el enjambre!",
|
||||
"questLostMasterclasser3DropBodyAccessory": "Amuleto de Éter (Accessorio para el Cuerpo)",
|
||||
"questLostMasterclasser3DropBasePotion": "Poción de Eclosión Base",
|
||||
"questLostMasterclasser3DropGoldenPotion": "Poción de Eclosión de Oro",
|
||||
"questLostMasterclasser3DropBasePotion": "Base Hatching Potion",
|
||||
"questLostMasterclasser3DropGoldenPotion": "Poción eclosionadora de Oro",
|
||||
"questLostMasterclasser3DropPinkPotion": "Poción de Eclosión de Algodón de Azúcar Rosa",
|
||||
"questLostMasterclasser3DropShadePotion": "Poción de Eclosión de Sombra",
|
||||
"questLostMasterclasser3DropZombiePotion": "Poción de Eclosión de Zombi",
|
||||
"questLostMasterclasser3DropShadePotion": "Poción eclosionadora de Sombra",
|
||||
"questLostMasterclasser3DropZombiePotion": "Poción de eclosión Zombi",
|
||||
"questLostMasterclasser4Text": "El Misterio de los Maestros de Clase, Parte 4: La Maestra de la Clase Perdida",
|
||||
"questLostMasterclasser4Notes": "Sales a la superficie del portal, pero aún sigues suspendido en un extraño y cambiante mundo subterráneo. “Eso fue audaz,” dice una fría voz. “Tengo que admitirlo, todavía no he planeado una confrontación directa.” Una mujer surge del agitado remolino de oscuridad. “Bienvenido al Reino del Vacio.”<br><br>Tratas de luchar contra tus crecientes malestares. “¿Tú eres Zinnya?” preguntas.<br><br>“Aquel viejo nombre para una joven idealista,” dice, con una mueca torcida, y el mundo retorciéndose debajo de ti. “No. De todas formas, debes llamarme la Anti-Zinnya ahora, dado todo lo que he hecho y deshecho.”<br><br>De repente, el portal se vuelve a abrir detrás tuyo, y mientras los cuatro Maestros de Clase salen disparados hacia ti, los ojos de Anti-Zinnya brillan con odio. “Veo que mis patéticos sustitutos han logrado seguirte.”<br><br>La miras fijamente. “¿Sustitutos?”<br><br>“Como la Maestra Éterista, fui la primera Maestra de Clase — la única Maestra de Clase. ¡Estos cuatro son una burla, cada uno posee sólo un fragmento de lo que yo una vez tuve! Dominé todos los hechizos y aprendí todas las habilidades. Moldeé tu mundo a mi antojo — hasta que el traicionero éter se colapsó bajo el peso de mis talentos y mis expectativas perfectamente razonables. He estado atrapada por milenios en este vacio resultante, recuperándome. Imagina mi disgusto cuando supe como mi legado se había corrompido.” Deja salir una risa baja y resonante. “Mi plan era destruir sus dominios antes de destruirlos a ellos, pero supongo que el orden es irrelevante.” Con una ráfaga de fuerza asombrosa, embiste hacia adelante, y el Reino del Vacio estalla en un caos.",
|
||||
"questLostMasterclasser4Completion": "Bajo la arremetida de tu ataque final, la Maestra de Clase Perdida grita de frustración, volviéndo su cuerpo translúcido. El apaleante vacio se suaviza alrededor de ella mientras se desploma hacia adelante, por un momento, parecía cambiar, volviéndose más joven, más tranquila, con una expresión de paz en su rostro… pero luego todo desaparece con apenas un suspiro, y te arrodillas una vez más en las arenas del desierto.<br><br>“Parece que tenemos mucho que aprender sobre nuestra propia historia,” dice el Rey Manta, contemplando las ruinas rotas. “Despúes de que la Maestra Éterista creciera agobiándose y perdiera el control de sus habilidades, el desbordamiento del vacio debió haber filtrado la vida de la tierra entera. Probablemente todo se convirtió en desiertos como este.”<br><br>“No es de extrañar que los antiguos quienes fundaron Habitica enfatizaran en un balance de productividad y bienestar,” murmura la Parca Alegre. “Reconstruir su mundo podría haber sido una titánica tarea que requería un considerable trabajo duro, pero podría haber querido prevenir que una catástrofe así ocurriera de nuevo.”<br><br>“¡Ajá, miren en esos objetos previamente poseídos!” dice el Santo Inocente. Efectivamente, todos brillan con una pálida y resplandeciente translucidez debido a la última ráfaga de éter liberado cuando pusiste el espíritu de Anti-Zinnya a descansar. “Qué efecto tan resplandeciente. Debo tomar notas.”<br><br>“Los restos concentrados de éter en esta área probablemente causó que esos animales también se volvieran invisibles,” dice Lady Glacial, rascándose una parte vacia detrás de su oreja. Sientes que una esponjosa cabeza invisible te da un empujón en la mano, y sospechas que tendrás que dar algunas explicaciones en los Establos de vuelta a casa. Mientras miras las ruinas por última vez, detectas todo lo que queda de la primera Maestra: su capa brillante. Te la pones sobre los hombros y regresas a Ciudad Hábito, reflexionando sobre todo lo que has aprendido.<br><br>",
|
||||
"questLostMasterclasser4Completion": "Bajo el embate de tu ataque final, la Lost Masterclasser grita de frustración, su cuerpo parpadeando hasta volverse translúcido. El vacío que la rodea se calma mientras se desploma hacia adelante, y por un momento, parece transformarse, volviéndose más joven, más tranquila, con una expresión de paz en su rostro… pero luego todo se derrite con apenas un susurro, y te encuentras de rodillas una vez más en la arena del desierto.<br><br>\"Parece que tenemos mucho que aprender sobre nuestra propia historia,\" dice el Rey Manta, mirando las ruinas rotas. \"Después de que la Maestra Aethermancer se vio abrumada y perdió el control de sus habilidades, el derrame de vacío debió haber drenado la vida de toda la tierra. Probablemente todo se convirtió en desiertos como este.\"<br><br>\"No es de extrañar que los antiguos que fundaron Habitica subrayaran un equilibrio entre productividad y bienestar,\" murmura el Segador Alegre. \"Reconstruir su mundo habría sido una tarea descomunal que requeriría un trabajo arduo considerable, pero habrían querido evitar que tal catástrofe sucediera nuevamente.\"<br><br>\"¡Oho, miren esos objetos que antes estaban poseídos!\" dice el April Fool. Efectivamente, todos brillan con una translúcida resplandecencia pálida, del último estallido de éter liberado cuando descansaste el espíritu de Anti’zinnya. \"Qué efecto deslumbrante. Debo tomar notas.\"<br><br>\"Los restos concentrados de éter en esta área probablemente causaron que estos animales se volvieran invisibles también,\" dice Lady Glaciate, rascando una zona vacía detrás de las orejas. Sientes una cabeza suave e invisible empujando tu mano, y sospechas que tendrás que dar algunas explicaciones en los establos al regresar a casa. Al mirar las ruinas por última vez, ves todo lo que queda de la primera Masterclasser: su capa resplandeciente. Colocándola sobre tus hombros, te diriges de regreso a Habit City, reflexionando sobre todo lo que has aprendido.<br><br>",
|
||||
"questLostMasterclasser4Boss": "Anti-Zinnya",
|
||||
"questLostMasterclasser4RageTitle": "Vacio Sifónico",
|
||||
"questLostMasterclasser4RageDescription": "Vacio Sifónico: Esta barra se llena cuando no completas tus Tareas Diarias. ¡Cuando está llena, Anti-Zinnya removerá maná del equipo!",
|
||||
@@ -559,7 +559,7 @@
|
||||
"questYarnDropYarnEgg": "Hilo (Huevo)",
|
||||
"questYarnUnlockText": "Desbloquea Huevos de Hilo para comprar en el Mercado",
|
||||
"winterQuestsText": "Paquete de Misiones de Invierno",
|
||||
"winterQuestsNotes": "Contiene \"Santa Trampero\", \"Encuentra al Cachorro\", y \"Un Ave Álgida\". Disponible hasta el 31 de Enero. Recuerda que \"Santa Trampero\" y \"Encuentra al Cachorro\" tienen logros de misión acumulables, pero dan una mascota y una montura raras que sólo pueden añadirse a tu establo una vez.",
|
||||
"winterQuestsNotes": "Contiene misiones para conseguir la Mascota Oso Polar, la Montura Oso Polar y huevos de Mascota Pingüino: Encuentra al Cachorro, Trampero Santa y La Escarcha Aviar.",
|
||||
"questPterodactylText": "El Pterror-dáctilo",
|
||||
"questPterodactylNotes": "Estás dando un paseo a un lado de los pacíficos Acantilados Stoïkalm cuando un chirrido malévolo llena el aire. Te das la vuelta y solo para ver una horrible criatura volar hacia ti y te invade un poderoso terror. Mientras das la vuelta para huir, @Lilith of Alfheim te sujeta. \"¡No entres en panico! Es solo un Pterror-dáctilo.\"<br><br>@Procyon P afirma. \"Sus nidos estan cerca, pero fueron atraídos por la esencia de los Hábitos negativos y Tareas Diarias sin hacer.\"<br><br>\"No te preocupes,\" dice @Katy133. \"¡Sólo necesitamos ser extra productivos para derrotarlo!\" Te llena un renovado sentido de propósito y volteas la cara a tu enemigo.",
|
||||
"questPterodactylCompletion": "Con un último chillido, el Pterror-dáctilo se desploma sobre el lado del acantilado. Corres hacia adelante para verlo volar sobre las lejanas estepas. \"Fiu, me alegro de que haya terminado\", dices. \"Yo también\", responde @GeraldThePixel. \"¡Pero mira! Nos dejó algunos huevos\". @Edge te pasa tres huevos, y prometes criarlos en tranquilidad, rodeado de Hábitos positivos y Tareas Diarias azules.",
|
||||
@@ -594,7 +594,7 @@
|
||||
"questDysheartenerDropHippogriffMount": "Hipogrifo Esperanzado (Montura)",
|
||||
"dysheartenerArtCredit": "Trabajo artistico por @AnnDeLune",
|
||||
"hugabugText": "Paquete de Misión Besa un Bicho",
|
||||
"hugabugNotes": "Contiene 'El ERROR CRÍTICO,' 'El Caracol del Cieno de Rutinaria,' y 'Adiós, Mariposa.' Disponible hasta el 31 de Marzo.",
|
||||
"hugabugNotes": "Contiene misiones para obtener huevos de mascotas escarabajo, oruga y caracol: El BICHO CRÍTICO, Bye Bye Butterfry, y El Caracol de Fango Drudgery.",
|
||||
"questSquirrelText": "La Ardilla Escurridiza",
|
||||
"questSquirrelNotes": "¡Te despiertas y notas que te dormiste! ¿Por qué tu despertador no sonó? … ¿Cómo se atascó una bellota en el timbre?<br><br>Cuando tratas de hacer el desayuno, la tostadora está llena de bellotas. Cuando tratas de sacar tu montura, @Shtut está allí, intentando abrir su establo sin éxito. Mira a través del ojo de la cerradura. “¿Eso es una bellota ahí adentro?”<br><br>@randomdaisy grita, “¡Oh no! ¡Sabía que mis mascotas ardillas se han escapado, pero no sabía que habian causado tantos problemas! ¿Puedes ayudarme a reunirlas antes de que hagan más travesuras?”<br><br>Siguiendo el rastro de las nueces de roble colocadas maliciosamente, rastreas y atrapas a las ardillas descarriadas, con @Cantras ayudando a poner a cada una a salvo en casa. Pero cuando piensas que tu tarea está casi completa, ¡una bellota rebota en tu casco! Miras hacia arriba para ver a una poderosa bestia de ardilla, agazapada en defensa de una prodigiosa pila de semillas.<br><br>“Oh cariño,” dice @randomdaisy, suavemente. “Siempre ha sido una especie de guardiana de los recursos. ¡Tendremos que proceder muy cuidadosamente!” ¡Te rodeas de tu equipo, preparado para problemas!",
|
||||
"questSquirrelCompletion": "Con un acercamiento amable, ofertas de intercambio, y un poco de hechizos tranquilizadores, eres capaz de convencer a la ardilla de alejarse de su provisión y regresarla a los establos, los cuales @Shtut recién termina de desbellotar. Han apartado algunas de las bellotas en una mesa de trabajo. “¡Esos son huevos de ardillas! Tal vez puedas criar algunas que no jueguen demasiado con su comida.”",
|
||||
@@ -602,9 +602,9 @@
|
||||
"questSquirrelDropSquirrelEgg": "Ardilla (Huevo)",
|
||||
"questSquirrelUnlockText": "Desbloquea Huevos de Ardilla para comprar en el Mercado",
|
||||
"cuddleBuddiesText": "Paquete de Misión Compañeros Mimosos",
|
||||
"cuddleBuddiesNotes": "Contiene 'El Conejito Asesino', 'El Hurrón Nefario', y 'La Pandilla de Conejillos de Indias'. Disponible hasta el 31 de Marzo.",
|
||||
"cuddleBuddiesNotes": "Contiene misiones para conseguir huevos de conejo, hurón y cobaya: El Conejo Asesino, El Hurón Nefasto y La Pandilla de Cobayas.",
|
||||
"aquaticAmigosText": "Paquete de Misión Amigos Acuáticos",
|
||||
"aquaticAmigosNotes": "Contiene 'El Ajolote Mágico', 'El Kraken de Inkompleta' y 'La Llamada de Octothulu'. Disponible hasta el 31 de Agosto.",
|
||||
"aquaticAmigosNotes": "Contiene misiones para obtener huevos de sepia, pulpo y Axolotl: El Kraken de Inkomplete, La Llamada de Octothulu, y El Axolotl Mágico.",
|
||||
"questSeaSerpentText": "Peligro en las Profundidades: ¡Ataque de la Serpiente Marina!",
|
||||
"questSeaSerpentNotes": "Tus rachas te están haciendo sentir con suerte. Es el momento perfecto para un viaje al hipódromo de caballitos de mar. Abordas el submarino en los Muelles Diligentes y te acomodas para el viaje a Dilatoria. Pero, apenas se han sumergido, cuando un impacto sacude el submarino haciendo caer a sus ocupantes. \"¿Qué está pasando?\", grita @AriesFaries.<br><br>Miras por una portilla cercana y te espanta la pared de escamas brillantes que está pasando en frente. \"¡Serpiente Marina!\" exclama el Capitán @Witticaster por el altavoz. \"¡Prepárense, ahí viene otra vez!” Mientras agarras los brazos de tu silla, tus tareas incompletas pasan delante de tus ojos. \"Tal vez, si trabajamos juntos y las completamos\", piensas, \"¡podremos ahuyentar a este monstruo!\"",
|
||||
"questSeaSerpentCompletion": "Abatida por tu compromiso, la serpiente marina huye, desapareciendo en las profundidades. Cuando llegas a Dilatoria, respiras un suspiro de alivio antes de notar que @*~Seraphina~ se acerca con tres huevos traslúcidos en sus brazos. \"Toma, tú deberías tenerlos,\" dice, \"¡sabes manejar a una serpiente marina!\". Al aceptar los huevos, juras de nuevo mantenerte firme en completar tus tareas para asegurarte de que el evento no se repita.",
|
||||
@@ -618,7 +618,7 @@
|
||||
"questKangarooDropKangarooEgg": "Canguro (Huevo)",
|
||||
"questKangarooUnlockText": "Desbloquea Huevos de Canguro para comprar en el Mercado",
|
||||
"forestFriendsText": "Paquete de Misión Amigos del Bosque",
|
||||
"forestFriendsNotes": "Contiene 'El Espíritu de la Primavera', 'La Erizobestia', y 'El Árbol Enredado'. Disponible hasta el 30 de Septiembre.",
|
||||
"forestFriendsNotes": "Contiene misiones para obtener huevos de mascotas Treeling, Ciervo y Erizo: El Árbol Enredado, El Espíritu de la Primavera y La Bestia Erizo.",
|
||||
"questAlligatorText": "El Insta-Drilo",
|
||||
"questAlligatorNotes": "“¡Rayos!” exclama @gully. “¡Un Insta-Drilo en su hábitat natural! Cuidado, distrae a sus presas con cosas que parecen urgentes EN ESTE INSTANTE, y se alimenta de las Tareas Diarias no controladas que resultan.\" Guardas silencio no llamar su atención, pero es inútil. ¡El Insta-Drilo te descubre y te ataca! Las voces de distracción surgen de las Ciénagas del Estancamiento, reclamando tu atención: \"¡Lee este post! ¡Mira esta foto! ¡Pon atención en mí EN ESTE INSTANTE!\" Te apresuras a preparar un contraataque, completando tus Tareas Diarias y reforzando tus buenos Hábitos para luchar contra el temido Insta-Drilo.",
|
||||
"questAlligatorCompletion": "Con tu atención concentrada en lo que es importante y no en las distracciones del Insta-Drilo, el Insta-Drilo escapa. ¡Victoria! \"¿Esos son huevos? A mí me parecen huevos de caimán,\" pregunta @mfonda. \"Si los cuidamos correctamente, serán fieles mascotas o leales corceles,\" responde @UncommonCriminal, entregándote tres para cuidarlos, Esperamos que así sea, o de lo contrario el Insta-Drilo podría hacer un regreso…",
|
||||
@@ -626,9 +626,9 @@
|
||||
"questAlligatorDropAlligatorEgg": "Caimán (Huevo)",
|
||||
"questAlligatorUnlockText": "Desbloquea Huevos de Caimán para comprar en el Mercado",
|
||||
"oddballsText": "Paquete de Misión de Raritos",
|
||||
"oddballsNotes": "Contiene 'La Jalea Regente', 'Escapa de la Criatura de las Cuevas', y 'Un Hilo Enredado'. Disponible hasta el 30 de Abril.",
|
||||
"oddballsNotes": "Contiene misiones para obtener huevos de Baba, Hilo y Mascota de Roca: El regente gelatinoso, Un hilo enredado y Escapa de la criatura cavernícola.",
|
||||
"birdBuddiesText": "Paquete de Misión Aves Amigables",
|
||||
"birdBuddiesNotes": "Contiene 'Un Ave Álgida,' 'Alboroto del Gallo,' y 'El Pavo Real del Tira y Afloja.' Disponible hasta el 30 de Septiembre.",
|
||||
"birdBuddiesNotes": "Contiene misiones para obtener huevos de mascotas Pavo real, Pingüino y Gallo: El pavo real de empujar y tirar, La gallina escarcha y El gallo salvaje.",
|
||||
"questVelociraptorText": "El Veloci-Rapero",
|
||||
"questVelociraptorNotes": "Estás compartiendo pasteles de miel con @*~Seraphina~*, @Procyon P, y @Lilith of Alfheim junto a un lago en las estepas de Stoïkalm. De repente, una lúgubre voz interrumpe tu pícnic.<br><br><em>Mis Hábitos se han visto afectados, he perdido mis Tareas Diarias,<br>Estoy perdiendo la cabeza, hundiendome en las dudas y en los tal vez,<br>En la cima de mi juego yo era tan productivo,<br>Pero ahora dejo pasar mis fechas de vencimiento.</em><br><br>@*~Seraphina~* se asoma destrás de un matorral de hierba. “Es el Veloci-Rapero. Parece... ¿disgustado?”<br><br>Levantas un puño con determinación. “Solo hay una cosa que hacer. ¡Tiempo de Batalla de Rap!”",
|
||||
"questVelociraptorCompletion": "Irrumpes a través de la hierba, confrontando al Veloci-Rapero.<br><br><em>Mira aquí, rapero, no eres un desertor,<br>¡De los Malos Hábitos eres el más duro bateador!<br>Marca tus Tareas Pendientes como un jefe,<br>¡Por un día perdido no lamentes!</em><br><br>Lleno de confianza renovada, saltará al estilo libre otro día, dejando atrás tres huevos donde se sentó.",
|
||||
@@ -683,16 +683,16 @@
|
||||
"questDolphinBoss": "Delfín de la Duda",
|
||||
"questDolphinText": "El Delfín de la Duda",
|
||||
"questBronzeUnlockText": "Desbloquea Pociones de Eclosión de Bronce para comprar en el Mercado",
|
||||
"questBronzeDropBronzePotion": "Poción de Eclosión de Bronce",
|
||||
"questBronzeDropBronzePotion": "Poción de Eclosión de Cobre",
|
||||
"mythicalMarvelsText": "Paquete de Misión Maravillas Míticas",
|
||||
"rockingReptilesText": "Paquete de Misión Reptiles Roqueros",
|
||||
"delightfulDinosText": "Paquete de Misión Dinos Deleitosos",
|
||||
"jungleBuddiesText": "Paquete de Misión Amigos Selváticos",
|
||||
"sandySidekicksText": "Paquete de Misión Ayudantes Arenosos",
|
||||
"questBronzeText": "La Batalla del Escarabajo de Bronce",
|
||||
"mythicalMarvelsNotes": "Contiene 'Convenciendo a la Reina Unicornio', 'El Grifo de Fuego', y 'Peligro en las Profundidades: ¡Ataque de la Serpiente Marina!' Disponible hasta el 28 de Febrero.",
|
||||
"mythicalMarvelsNotes": "Contiene misiones para obtener huevos de mascotas unicornio, grifo y serpiente marina: Convencer a la Reina Unicornio, El Grifo Ardiente y Peligro en las Profundidades: Golpe de la serpiente marina.",
|
||||
"questBronzeBoss": "Escarabajo de Bronce",
|
||||
"jungleBuddiesNotes": "Contiene 'Mandril Monstruoso y los Monos Maliciosos', 'El Perezoso Somnoliento' y 'El Árbol Enredado'. ",
|
||||
"jungleBuddiesNotes": "Contiene misiones para obtener huevos de mascotas Mono, Treeling y Perezoso: El Mandril Monstruoso y los Monos Traviesos, El Árbol Enredado y El Perezoso Somnoliento.",
|
||||
"questTurquoiseNotes": "@gawrone entra corriendo a tu cuarto sosteniendo su Diploma de Habiticano y en una mano y y un tomo con cubierta de cuero, extraordinariamente grande y empolvado, en la otra.<br><br>“¿A que no adivinas lo que descubrí?” dicen. “El motivo por el que los Campos Florecientes son tan fértiles es que en algún momento estuvieron cubiertos por un vasto océano. Se rumora que un pueblo ancestral vivía en el fondo de ese océano en ciudades encantadas. Usando mapas olvidados, ¡yo encontré la ubicación más probable de estas ciudades! ¡Trae tu pala!\"<br><br>Se encuentran al día siguiente en la tarde, con @QuartzFox y @starsystemic en el grupo, y comienzan a cavar. En lo profundo del suelo ¡encuentran una runa con una gema turquesa al lado!<br><br>“¡Sigan cavando!”, insiste @gawrone. “¡Si encontramos suficientes, podremos preparar una de sus pociones ancestrales y hacer historia al mismo tiempo!”",
|
||||
"questBronzeCompletion": "\"¡Buen encuentro, guerrero!\" dice el escarabajo mientras se sienta en el suelo. ¿Está sonriendo? Es difícil de decir por esas mandíbulas. \"¡Realmente te has ganado estas pociones!\"<br<br>\"Oh guau, ¡Nunca habíamos recibido una recompensa como esta por ganar una batalla antes!\" dice @UncommonCriminal, girando una botella brillante en su mano. \"¡Vamos a eclosionar a nuestras nuevas mascotas!\"",
|
||||
"questBronzeNotes": "En un refrescante descanso entre tareas, tú y algunos amigos dan un paseo por los senderos del Bosquetareas. Te topas con un gran tronco hueco y un destello desde el interior llama tu atención.<br><br>¡Porqué, es un alijo de Pociones Mágicas de Eclosión! El brillante líquido de bronce se arremolina suavemente en las botellas, y @Hachiseiko alcanza a recoger una para examinarla.<br><br>\"¡Detente!\" silba una voz desde atrás de ti. Es un escarabajo gigantesco con un caparazón de bronce brillante, alzando sus pies con garras en una postura de lucha. \"Esas son mis pociones, y si deseas ganártelas, debes probarte a ti mismo en un duelo de caballeros!\"",
|
||||
@@ -706,16 +706,16 @@
|
||||
"questRubyCompletion": "Con los acrtículos necesarios bien guardados, los tres se apresuran a volver a Ciudad Hábito y se reúnen en el laboratorio de @beffymaroo. \"¡Excelente trabajo!\" dice @beffymaroo. \"¡Ustedes han recolectado los ingredientes para la poción!\" @beffymaroo combina cuidadosamente las runas y los rubíes para crear una brillante poción roja y vierte un poco de ella en dos huevos de mascota. ¡Mientras observas los resultados, te das cuenta de que las dos mascotas parecen completamente desinteresadas la una en la otra!<br><br>\"¿No funcionó? pregunta @gully. Pero antes de que nadie pueda contestar, de repente te das cuenta de que no es la poción la que crea la amistad y el amor, sino es la experiencia de trabajar juntos hacia un objetivo común. Sales de la misión habiendo ganado algunos nuevos amigos…¡y algunas nuevas y llamativas mascotas!",
|
||||
"questRubyNotes": "Los picos de los Volcanes de Stoïkalm, normalmente bulliciosos, permanecen en silencio bajo la nieve. \"¿Supongo que los montañeros y los excursionistas están hibernando?\" @gully te dice a ti y a @Aspiring_Advocate. \"Eso hace nuestra búsqueda más fácil.\"<br><br>Al llegar a la cima, el viento helado se funde con el vapor que sale del cráter. \"¡Allí!\" exclama @Aspiring_Advocate, apuntando hacia una fuente termal. \"¿Qué mejor lugar para encontrar las frías runas de Acuario y las apasionadas runas de Venus que dónde el hielo y el fuego se encuentran?\"<br><br>Los tres se apresuran hacia la fuente termal. \"De acuerdo a mi investigación,\" dice @Aspiring_Advocate, \"¡Combinando las runas con rubíes en forma de corazón creará una poción de eclosión que puede fomentar la amistad y el amor!\"<br><br>Emocionados por la expectativa de un nuevo descubrimiento, todos ustedes sonríen. \"De acuerdo,\" dice @gully, \"¡Empecemos a buscar!\"",
|
||||
"questSilverNotes": "El reciente descubrimiento de las Pociones de Eclosión de Bronce tiene a toda Habitica hablando. ¿Serán posibles las pociones de metales aún más brillantes? Te diriges a la Biblioteca Pública Central de Ciudad Hábito, acompañado de @QuartzFox y @starsystemic, y recolectas grandes cargamentos de libros sobre alquimia para estudiarlos.<br><br> Después de horas de trabajo de fatiga ocular, @QuartzFox dejar salir un grito de triunfo no del todo apropiado para la biblioteca. \"¡Ajá! ¡Lo he encontrado!\" Te apresuras para ver. \"Una Poción de Eclosión de Plata puede ser hecha con runas zodiacales del signo de Cáncer, disueltas en plata pura derretida sobre llamas infundidas con el poder de las runas de Luna.\"<br><br>\"Necesitaremos muchos de esos ingredientes,\" medita @starsystemic. \"En caso de que un intento salga mal.\"<br><br>“Sólo hay un lugar para encontrar enormes cantidades de esos materiales de artesanía aleatorios,\" dice @Edge, de pie a la sombra de las pilas con los brazos cruzados. ¿Ha estado allí todo el tiempo? \"Los Calabozos de la Monotonía. Pongámonos en marcha.\"",
|
||||
"rockingReptilesNotes": "Contiene 'El Insta-Drilo,' 'La Serpiente de la Distracción,' y 'El Veloci-Rapero.' Disponible hasta el 30 de Septiembre.",
|
||||
"rockingReptilesNotes": "Contiene misiones para obtener huevos de mascotas caimán, velociraptor y serpiente: El Insta-Gator, El Velociraptor y La Serpiente de la Distracción.",
|
||||
"questRobotCompletion": "Mientras @Rev y el Compañero de Responsabilidad colocan el último tornillo en su lugar, la máquina del tiempo resuena de vida. @FolleMente y @McCoyly saltan a bordo. \"¡Gracias por la ayuda! ¡Nos veremos en el futuro! Por cierto, ¡estos deberían ayudarte en tu próximo invento!\" Con ello, los viajeros del tiempo desaparecen, pero dejando atrás entre los restos del viejo Estabilizador de Productividad tres huevos de mecanismo de reloj. ¡Tal vez sean los componentes cruciales para una nueva línea de producción de Compañeros de Responsabilidad!",
|
||||
"questRobotNotes": "En los labotatorios Máxima Capacidad, @Rev está dando los últimos retoques a su más reciente invento, un Compañero de Responsabilidad robótico, cuando un extraño vehículo metálico aparece de repente en una columna de humo, ¡A centímetros del Detector de Fluctuaciones del robot! Sus ocupantes, dos extrañas figuras vestidas de plata, emergen y se quitan sus cascos espaciales, revelándose como @FolleMente y @McCoyly.<br><br>\"Mi hipótesis es que había una anormalidad en nuestra implementación de productividad,\" dice @FolleMente tímidamente.<br><br>@McCoyly cruza sus brazos. \"Eso significa que rechazaron completar sus Tareas Diarias, lo que supongo derivó a la desintegración de nuestro Estabilizador de Productividad. Es un componente esencial para viajar en el tiempo que necesita consistencia para trabajar apropiadamente. ¡Nuestros logros potencian nuestro movimiento a través del espacio y tiempo! No tengo tiempo para explicar más, @Rev. Lo descubrirás en 37 años, o a lo mejor tus aliados los Misteriosos Viajeros del Tiempo puedan informarte. Por ahora, ¿Puedes ayudarnos a arreglar nuestra máquina del tiempo?\"",
|
||||
"questWaffleText": "Waffleando con el Inocente: ¡Desastre del Desayuno!",
|
||||
"questWindupText": "Un Torbellino con un Guerrero A Cuerda",
|
||||
"delightfulDinosNotes": "Contiene 'El Pterror-dáctilo,' 'El Aplastante Triceratops,' y 'El Dinosaurio Desenterrado.' Disponible hasta el 30 de Noviembre.",
|
||||
"sandySidekicksNotes": "Contiene 'El Armadillo Indulgente,' 'La Serpiente de la Distracción,' y 'El Arácnido Glacial'. ",
|
||||
"delightfulDinosNotes": "Contiene misiones para obtener huevos de mascotas Triceratops, T-Rex y Pterodáctilo: El Triceratops pisoteador, El Dinosaurio desenterrado y El Pterodáctilo.",
|
||||
"sandySidekicksNotes": "Contiene misiones para obtener huevos de mascotas Araña, Armadillo y Serpiente: El Arácnido Helado, El Armadillo Indulgente y La Serpiente de Distracción.",
|
||||
"questWaffleRageEffect": "`¡El Waffle Horrible usa MAPLE DE ARCE!`¡El jarabe pegajoso ralentiza los golpes y los hechizos! Daño pendiente reducido.",
|
||||
"questWaffleRageDescription": "Maple de Arce: Esta barra se llena cuando no completas tus Tareas Diarias. ¡Cuando está llena, el Waffle Horrible restará el daño pendiente que los miembros del equipo hayan acumulado!",
|
||||
"questSilverCompletion": "Has excavado. Has profundizado. Has rebuscado. Por fin emerges de los Calabozos, cargado de runas y lingotes de plata, cubierto de lodo pero eufórico de triunfo. Regresas a Ciudad Hábito y te pones a trabajar en un laboratorio de alquimia. Tú y @starsystemic siguen las fórmulas que @QuartzFox encontró, bajo la cuidadosa supervisión de @Edge. Finalmente en una gran ráfaga de brillo y humo, ¡tu brebaje se asienta en la familiar viscosidad de una Poción de Eclosión!<br><br>@Edge recoge la mezcla en frascos y sonríe. \"Vamos a probarla, ¿Te parece?¿Alguien tiene algún Huevo?\"<br><br>Te apresuras a los Establos, preguntándote que secretos brillantes permanecen sin descubrir...",
|
||||
"questSilverCompletion": "Has cavado. Has dragado. Has saqueado. ¡Finalmente emerges de las Mazmorras, cargado de runas y lingotes de plata, cubierto de barro pero exultante de éxito! Viajas de regreso a Habit City y te pones a trabajar en un laboratorio de alquimia. Tú y @starsystemic siguen las fórmulas que @QuartzFox encontró, bajo la atenta supervisión de @Edge. Finalmente, en una gran explosión de brillantina y humo, tu mezcla se asienta en la familiar viscosidad de una Poción de Eclosión.<br><br>@Edge recoge la mezcla en frascos y sonríe. “¿Vamos a probarla, no? ¿Alguien tiene algún Huevo?”<br><br>Corres a los establos, preguntándote qué secretos brillantes aún pueden quedar por descubrir…",
|
||||
"questTurquoiseCompletion": "Acalorados y sudorosos, tu equipo finalmente se detiene a descansar junto a la tierra levantada y miran el montón de runas y gemas que han encontrado.<br><br>“Increíble,\" murmura @QuartzFox. \"Esto reescribirá los libros e historia.\"<br><br>\"Déjame llevar estos materiales a la Universidad de Habitica para analizarlos,\" dice @gawrone. \"¡Debe haber mucho para estudiar y hacer algunas pociones de turquesa para todos nosotros! ¿Quién sabe qué más podríamos encontrar enterrado por aquí?\"<br><br>@starsystemic interviene: \"¡Es increíble todo lo que se puede conseguir con un poco de trabajo duro!\"",
|
||||
"questBlackPearlNotes": "Últimamente te has sentido poco inspirado, así que cuando @jjgame83 sugiere un viaje al Lago Animado, aprovechas la oportunidad para cambiar de aires. Mientras @QuartzFox prepara un picnic en la orilla, encuentras algo brillante en las aguas poco profundas. Una extraña perla negra.<br><br>“Desearía tener una nueva idea,\" suspiras.<br><br>Un escalofrío inunda la orilla. El lago se convierte en tinta negra. Las estrellas salen y el mediodía se convierte en medianoche en un abrir y cerrar de ojos.<br><br>“Ésas no son buenas señales\" dice @PixelStormArt.<br><br>Una imponente masa de ramas estalla del lago en un chorro de espuma, y desde lo más alto, retumba: \"¡CONTEMPLA A ASTEROIDEA, LA IDEA DESDE MÁS ALLÁ DE LAS ESTRELLAS!\"<br><br>Un tentáculo se abalanza sobre la canasta de picnic, Buena idea o no, saltas a la acción.",
|
||||
"questWindupNotes": "Ciudad Hábito raramente es silenciosa, pero no estabas preparado para la cacofonía de crujidos, chirridos y gritos que escapan del Buen Medidor Temporal, el mejor emporio de relojería de Habitica. Suspiras--sólo querías arreglar tu reloj. El propietario, conocido sólo como \"El Grandioso y Poderoso\", sale, derribando la puerta ¡y perseguido por un chirriante coloso de bronce!<br><br>“¡Ki-! ¡Ki-! ¡K-i!\" repiquetea, manoteando con sus brazos arriba y abajo. Sus engranajes rechinan y crujen en señal de protesta.<br><br>“¡Mi robot Clankton se ha vuelto loco! ¡Está tratando de matarme!\" chilla el supuestamente Poderoso.<br><br>Incluso con un reloj roto, sabes cuando es tiempo para luchar. Saltas hacia adelante para defender al relojero en pánico. ¡@Vikte y @a_diamond también dan un paso adelante para ayudar!<br><br>“¡Ki-! ¡Ki-! ¡Ki-!” canturrea Clankton con cada golpe. \"¡Miau!\"<br><br>Espera, ¿qué fue ese maullido mecánico en medio de la monotonía mortífera?",
|
||||
@@ -744,5 +744,104 @@
|
||||
"questOnyxCollectLeoRunes": "Runas de Leo",
|
||||
"questOnyxCollectOnyxStones": "Piedras del Onyx",
|
||||
"questOnyxDropOnyxPotion": "Poción de Eclosión de Onyx",
|
||||
"questOnyxUnlockText": "Desbloquea Pociones de Eclosión de Onyx para comprar en el Mercado"
|
||||
"questOnyxUnlockText": "Desbloquea Pociones de Eclosión de Onyx para comprar en el Mercado",
|
||||
"questGiraffeText": "La Gear-affe",
|
||||
"questGiraffeCompletion": "Después de ayudar al Gear-Affe con la organización básica de su equipo, ¡ambos se sienten más energizados y animados!<br><br>Él agarra su guitarra y un libro de ejercicios para principiantes y toca algunas notas. “Se siente bien dar un paso en la dirección correcta, aunque sea pequeño. ¡Gracias por ayudarme! Toma estos, escuché que tienes un montón de mascotas y estos chicos podrían ser una buena adición.”",
|
||||
"questGiraffeBoss": "Mono Gear",
|
||||
"questGiraffeDropGiraffeEgg": "Jirafa (huevo)",
|
||||
"questChameleonText": "El camaleón caótico",
|
||||
"questDogText": "Triple desafío canino!",
|
||||
"questDogCompletion": "Después de recoger todos los juguetes que (afortunadamente) esquivaste, le das a Shiberus una suave palmadita en su cabeza central.<br><br>“Es genial estar emocionado por una gran tarea, pero tal vez ayudaría tener un plan. ¿Quizás la próxima vez empieza desde la entrada y trabaja hacia atrás? O hazlo en bloques de 30 minutos con pequeños descansos para jugar entre medio.”<br><br>“Es una buena idea,” comenta la cabeza izquierda del perrito. La cabeza derecha coloca algunos objetos cerca de ti, incluidos lo que parecen ser huevos… “Encontré algunas cosas que podrías querer mientras jugábamos. ¡Gracias por tu ayuda!”",
|
||||
"questDogBoss": "Shiberuss",
|
||||
"questDogRageTitle": "Lanzamiento triple de juguetes",
|
||||
"questDogRageDescription": "Esta barra se llena cuando no completas tus Dailies. Cuando esté llena, Shiberus quitará parte de los PM de tu grupo!",
|
||||
"questDogRageEffect": "Shiberus te lanza juguetes rápidamente y bloquea tus hechizos mágicos. Los PM del grupo se reducen!",
|
||||
"questDogDropDogEgg": "Perro (huevo)",
|
||||
"questDogUnlockText": "Desbloquea huevos de perro para comprar en el mercado.",
|
||||
"questFungiRageTitle": "Niebla de hongos",
|
||||
"questFungiRageDescription": "Esta barra se llena cuando no completas tus Dailies. Cuando esté llena, el hongo Moody eliminará parte del daño pendiente de tu grupo",
|
||||
"questFungiDropFungiPotion": "Poción para incubar hongos",
|
||||
"questChameleonBoss": "El camaleón caótico",
|
||||
"questChameleonDropChameleonEgg": "Camaleón (huevo)",
|
||||
"questFungiRageEffect": "Una Niebla emana del Hongo Malhumorado y rodea a tu grupo, empañando el ambiente y apagando tu magia. Los PM del grupo se reducen!",
|
||||
"questFungiUnlockText": "Desbloquea pociones de incubación de hongos para comprar en el mercado.",
|
||||
"questRaccoonText": "Mapache Tycoon",
|
||||
"questRaccoonCompletion": "\"En realidad, creo que hay suficientes piedras interesantes para los dos,\" dices mientras recuperas lo último de tus cosas. \"¡Aquí tienes algunas de las que recogí, tengo suficiente para compartir!\"<br><br>\"¡Oh, eso es bastante amable de tu parte!\" dice el mapache. \"En realidad, aquí tienes algunos pequeños premios para ti también.\"",
|
||||
"questRaccoonBoss": "Mapache voraz",
|
||||
"questRaccoonRageTitle": "Tsunami de baratijas",
|
||||
"questRaccoonRageDescription": "Esta barra se llena cuando no completas tus Diarios. Cuando esté llena, el mapache Tycoon recuperará parte de su salud.",
|
||||
"questRaccoonRageEffect": "El mapache voraz coge algunos objetos que has rescatado y los vuelve a meter en el tronco del árbol. El jefe recupera un 30% de su salud!",
|
||||
"questRaccoonDropRaccoonEgg": "Mapache (Huevo)",
|
||||
"questRaccoonUnlockText": "Desbloquea huevos de mapache para comprarlos en el mercado.",
|
||||
"questOtterText": "¡El Pérfido Conspirador!",
|
||||
"questOtterNotes": "Te apresuras a recoger los pedazos de tu lista mientras flotan por el aire como confeti. El nutria, aún sonriendo, te observa con ojos traviesos. Parece estar divirtiéndose demasiado con esto, y no puedes evitar suspirar. \"Bueno, parece que ya no puedo tachar todo ahora, ¿verdad?\" dices, recogiendo los trozos. \"Supongo que es hora de volver a enfocarme y decidir qué es lo más importante. ¿Gracias por la... inspiración?\" La nutria sonríe con picardía, “¡De nada! Priorizar es el nombre del juego. ¡Tómate tu tiempo! Después de todo, no se trata de hacerlo todo de una vez, sino de hacer las *cosas correctas*.\" Mientras sigues recogiendo tus pensamientos dispersos (y trozos de papel), notas que la nutria tira unos huevos extraños frente a ti. \"Aquí, estos pueden ayudarte a concentrarte,\" dice. \"Tal vez te enseñen a ordenar tus tareas un poco más rápido la próxima vez.\" Le das una asentimiento de agradecimiento, aunque no puedes decidir si estás más molesto o divertido. Pero esos huevos definitivamente tienen potencial.",
|
||||
"questOtterBoss": "El trazador",
|
||||
"questOtterRageTitle": "Tareas pendientes!",
|
||||
"questOtterRageDescription": "Esta barra se llena cuando no completas tus diarios. Cuando esté llena, ¡el Plotter recuperará parte de su salud!",
|
||||
"questOtterRageEffect": "¡El Trazador lanza al aire trozos de tu lista de tareas! ¡El jefe recupera el 30% de su salud!",
|
||||
"questOtterDropOtterEgg": "Nutria (huevo)",
|
||||
"questOtterUnlockText": "Desbloquea los huevos de nutria para comprarlos en el mercado",
|
||||
"questJadeText": "Un gafe hastiado",
|
||||
"questJadeNotes": "e tiras fuera del camino justo a tiempo cuando la roca pasa a gran velocidad, casi rozándote los pies. Te levantas rápidamente y te das la vuelta para enfrentar a la figura de piedra, que ahora está allí con las manos en las caderas, respirando ligeramente agitado.<br><br>“¿Entonces, qué pasa aquí?” preguntas, tratando de recuperar el aliento. La figura, hecha completamente de piedra parecida al jade, parece menos agresiva y más... cansada.<br><br>“La vida es como esta roca,” dice, sacudiendo la cabeza. “Cada vez que pienso que estoy avanzando, simplemente se desplaza de vuelta. Empujo y empujo, pero nunca llego a ningún lado. Es interminable.”<br><br>Miras alrededor de la montaña, tomando en cuenta la vasta extensión de la misma. Las pilas de rocas, las pendientes empinadas, y los desafíos inminentes. “Lo entiendo ahora,” dices. “Es como intentar lavar los platos y hacer la lavandería, ¿verdad? Siento que no importa cuánto hagas, el desorden siempre regresa.”<br><br>La figura de piedra asiente lentamente. “Exactamente. Es desalentador. Intentas mantener todo en orden, pero es como si el mismo universo conspirara para hacer las cosas peor. Nunca termina.”<br><br>“Bueno,” respondes, “el truco está en tomarlo un paso a la vez. Desglosarlo en pedazos manejables. Incluso si la roca se desplaza hacia atrás, eso no significa que el progreso que hiciste haya desaparecido. Y a veces, tienes que concentrarte en pequeñas victorias para seguir adelante.”<br><br>La figura te mira con una expresión pensativa. “Tal vez tengas razón. Quizá deba intentarlo.” Vuelve a levantar la roca, esta vez moviéndose con más propósito y un poco menos de peso en sus hombros.<br><br>“Tómatelo con calma, y no olvides celebrar cuando muevas esa roca solo un poquito más,” añades sonriendo.<br><br>Con un gruñido de esfuerzo, empuja la roca hacia arriba de la pendiente nuevamente, esta vez avanzando de manera más estable.<br><br>“Gracias,” dice. “Creo que esto realmente puede funcionar.”<br><br>Hace una pausa y saca una pequeña piedra brillante de la superficie de la roca, entregándotela. “Por ayudarme a ver las cosas desde una perspectiva diferente. Tal vez este pequeño avance también te ayude a ti.”<br><br>Cuando tomas la piedra, sientes un pequeño impulso de motivación. Tal vez no todo necesita ser perfecto de inmediato. Está bien comenzar con solo unos pocos pasos.!\"",
|
||||
"questJadeBoss": "Un gafe hastiado",
|
||||
"questJadeDropJadePotion": "Poción de eclosión de jade",
|
||||
"questJadeUnlockText": "Desbloquea la poción de incubación de jade para comprarla en el mercado.",
|
||||
"questAlpacaText": "La alpaca con exceso de equipaje",
|
||||
"questAlpacaCompletion": "Afortunadamente, ninguno de los bolsos que la alpaca lanzó hacia ti era pesado, pero tus manos definitivamente están llenas. \"¿Qué fue eso?\" preguntas, molesto.<br><br>\"Si estás planeando un viaje con amigos, ¡no deberías cargar con tu carga solo! Estoy seguro de que tus amigos preferirían que les soltaras algunas cosas en vez de que colapses bajo el peso por ti mismo. De todos modos, puedes devolverme esos bolsos. Soy un animal de carga experimentado y he hecho mi punto,\" dice ella con un guiño. \"Pero quédate con ese paquete azul como recompensa por una lección bien aprendida. ¡Nos vemos en la cima!\"",
|
||||
"questAlpacaBoss": "La alpaca con exceso de equipaje",
|
||||
"questAlpacaRageTitle": "Pack-Quake2",
|
||||
"questAlpacaRageDescription": "Esta barra se llena cuando no completas tus Dailies. Cuando esté llena, la alpaca sobrecargada recuperará parte de su salud!",
|
||||
"questAlpacaRageEffect": "¡La alpaca sobrecargada te lanza equipaje! ¡El jefe recupera un 30% de su salud!",
|
||||
"questAlpacaDropAlpacaEgg": "Alpaca (huevo)",
|
||||
"questAlpacaUnlockText": "Desbloquea la compra de huevos de alpaca en el mercado",
|
||||
"questFungiNotes": "Ha sido una primavera lluviosa en Habitica y el suelo alrededor de los establos está esponjoso y húmedo. Notas que han aparecido bastantes setas a lo largo de las paredes y cercas de madera de los establos. Hay una niebla flotando, que no deja que el sol asome, y se siente algo desmotivante.<br><br>De entre la niebla ves la silueta del April Fool, nada en su habitual y animado estado.<br><br>\"Esperaba traerles a todos unas deliciosas pociones de magia de hongos para que puedan mantener a sus amigos hongos por siempre en mi día especial,\" dice, con una expresión alarmantemente seria. \"Pero esta niebla fría realmente me está afectando, me hace sentir demasiado cansado y sombrío para hacer mi magia habitual.\" <br><br>\"Oh no, siento escuchar eso,\" dices, notando tu propio ánimo cada vez más sombrío. \"Esta niebla realmente está volviendo el día lúgubre. Me pregunto de dónde habrá venido...\"<br><br>Un bajo rugido suena a través de los campos y ves una silueta emergiendo de la niebla. Te alarmas al ver una criatura gigante y de aspecto descontento hecha de hongos, y parece que la niebla está emanando de ella.<br><br>\"Aja,\" dice el Fool, \"Creo que este amigo hongo puede ser la fuente de nuestra tristeza. Vamos a ver si podemos invocar un poco de alegría para él y para nosotros.\"",
|
||||
"questFungiCompletion": "Tú y el April Fool se miran con una señal de alivio mientras el hongo se retira al bosque.<br><br>\"Ah,\" exclama el Fool, \"esa fue una melancolía micelial bastante fuerte. Me alegra que hayamos mejorado su ánimo, ¡y el nuestro también! Siento que mi energía vuelve. Ven conmigo y juntos haremos esas pociones de hongos.\"",
|
||||
"questCatText": "Un dilema desconcertante",
|
||||
"questCatBoss": "El Purrplexer",
|
||||
"questCatRageTitle": "Golpes furiosos",
|
||||
"questCatRageDescription": "Esta barra se llena cuando no completas tus Dailies. Cuando esté llena, el Purrplexer te quitará parte de los PM de tu grupo!",
|
||||
"questCatRageEffect": "El Purrplexer derriba de la mesa los objetos mágicos que has recogido. Los PM del grupo se reducen!",
|
||||
"questCatDropCatEgg": "Gato (huevo)",
|
||||
"questCatUnlockText": "Desbloquea huevos de gato para comprar en el mercado.",
|
||||
"questFungiText": "La seta de mal humor",
|
||||
"questFungiBoss": "La seta de mal humor",
|
||||
"questPinkMarbleUnlockText": "Desbloquea pociones de eclosión de canica rosa para comprar en el mercado.",
|
||||
"questGiraffeUnlockText": "Desbloquea huevos de jirafa para comprarlos en el mercado.",
|
||||
"questChameleonUnlockText": "Desbloquea los huevos de camaleón para comprarlos en el mercado",
|
||||
"questCrabText": "El cangrejo violinista",
|
||||
"questCrabCompletion": "Tú y el cangrejo logran trabajar juntos para poner todo en su lugar, terminando con una excelente madriguera de arena. El cangrejo se acomoda felizmente dentro.<br><br>\"¡Gracias!\" dice, acomodándose cómodamente. \"Ahora sí, este es un agujero hecho justo para mí. Finalmente puedo disfrutar de todas mis decoraciones perfectamente colocadas. Aquí, toma a estos pequeñitos como muestra de mi agradecimiento. ¡Es una oferta que no puedes rechazar!\"",
|
||||
"questCrabBoss": "El cangrejo violinista",
|
||||
"questCrabRageTitle": "Jugueteo de distracción",
|
||||
"questCrabRageEffect": "El Cangrejo Juguetón te distrae con adornos, ralentizando tu trabajo de excavación y drenando parte de tu magia. Los PM del grupo se reducen!",
|
||||
"questCrabDropCrabEgg": "Cangrejo (huevo)",
|
||||
"questCrabUnlockText": "Desbloquea huevos de cangrejo para comprarlos en el mercado.",
|
||||
"questGiraffeNotes": "Estás caminando por la alta hierba de la Sabana Sloenstedi, disfrutando de una agradable caminata por la naturaleza como un descanso de tus tareas. Al pasar por el paisaje ondulante, notas una colección de objetos a lo lejos. ¡Es una pila de instrumentos musicales, materiales de arte, equipos electrónicos y más! Te acercas para echar un mejor vistazo.<br><br>“¡Oye, ¿qué crees que estás haciendo?” grita una voz desde detrás de una acacia. Una jirafa alta e imponente aparece, usando un par de gafas elegantes, una guitarra y una cámara elegante colgada de su largo cuello. “¡Todo esto es mi equipo, ten cuidado y no toques nada!”<br><br>Notas polvo en muchos de los objetos. “¡Vaya, seguro que tienes muchos pasatiempos!” dices. “¿Puedes mostrarme algo de arte o tocarme una melodía?”<br><br>La cara de la jirafa se entristece mientras observa todo su equipo. “¡Tengo tantas de estas cosas pero no sé por dónde empezar! ¿Por qué no me das algo de tu motivación para que pueda tener la energía productiva que necesito para finalmente comenzar?”",
|
||||
"questVirtualPetCompletion": "Algunos cuidadosos ajustes de botones parecen haber satisfecho las misteriosas necesidades de la mascota virtual, que finalmente se calma y parece estar contenta.<br><br>De repente, en una explosión de confeti, el Bromista de Abril aparece con una canasta llena de extrañas pociones que emiten suaves pitidos.<br><br>“Qué buen momento, Bromista de Abril”, dice @Beffymaroo con una sonrisa irónica. “Sospecho que este gran compañero ruidoso es un conocido tuyo”.<br><br>“Eh, sí”, responde el Bromista, algo avergonzado. “Lamento mucho eso, y gracias a ambos por cuidar de Wotchimon. ¡Tomen estas pociones como muestra de agradecimiento! Con ellas, pueden traer de vuelta a sus mascotas virtuales cuando quieran”.<br><br>No estás 100% seguro de estar de acuerdo con tanto pitido, pero son tan adorables que vale la pena intentarlo!",
|
||||
"questChameleonNotes": "Es un hermoso día en una cálida y lluviosa esquina de los Bosques de Tareas. Estás en busca de nuevas adiciones para tu colección de hojas cuando, ¡de repente, una rama frente a ti cambia de color sin previo aviso! ¡Luego se mueve!<br><br>Tropezando hacia atrás, te das cuenta de que esto no es una rama en absoluto, ¡sino un enorme camaleón! Cada parte de su cuerpo sigue cambiando de color mientras sus ojos se mueven en diferentes direcciones.<br><br>“¿Estás bien?” le preguntas al camaleón.<br><br>“Ahhh, bueno,” dice, viéndose un poco desconcertado. “He estado tratando de camuflarme... pero es tan abrumador... ¡los colores siguen viniendo y yendo! Es difícil concentrarse solo en uno....”<br><br>“Aja,” dices, “creo que puedo ayudar. ¡Vamos a agudizar tu enfoque con un pequeño reto! ¡Prepara tus colores!”<br><br>“¡Allá vamos!” responde el camaleón.",
|
||||
"questChameleonCompletion": "Después de unos turnos animados, el Camaleón pasó por todos los colores del arco iris, combinando perfectamente cada color que le pediste.<br><br>“Vaya,” dice, “trabajar juntos y convertirlo en un juego realmente me ayudó a concentrarme. ¡Por favor, toma estos como recompensa, los has ganado! Enseña a estos pequeños cómo cambiar todos los colores del arco iris cuando nazcan.”",
|
||||
"questCrabNotes": "Es una cálida mañana soleada, y estás disfrutando de una visita a la playa para ponerte al día con algunos de los libros en tu lista de lectura de verano. Te asustas cuando casi pisas un cristal brillante cerca de un pequeño agujero en la arena.<br><br>“¡Ey, ten cuidado por dónde vas! ¡Estoy haciendo una madriguera aquí!” dice una voz. Un sorprendentemente grande cangrejo con un caparazón decorativo sale corriendo frente a tus dedos de los pies, chasqueando su pinza mientras habla.<br><br>“¿Hm, esto es una madriguera?” preguntas, mirando la depresión poco profunda. Hay conchas y cristales dispuestos alrededor, pero no parece mucho como un lugar para esconderse.<br><br>El cangrejo tartamudea. “¡Ey, esto es una zona libre de juicios! Estoy en eso, ¡estoy en eso!… Me entretuve un poco decorando. A veces, un cangrejo tiene que juguetear,” dice, ajustando una concha.<br><br>“¿Por qué no me prestas una pinza y ayudas si tienes algunas grandes ideas sobre cómo debería lucir una madriguera?”",
|
||||
"questCrabRageDescription": "Esta barra se llena cuando no completas tus diarios. Cuando esté llena, el Cangrejo Juguetón te quitará parte de los PM de tu grupo!",
|
||||
"questRaccoonNotes": "Es un cálido día de otoño en Habitica y estás dando un paseo tranquilo a lo largo de Conquest Creek. Ves algunas piedras semipreciosas bastante interesantes a lo largo de la orilla que serían perfectas para un proyecto que has estado planeando.<br><br>Comienzas a guardar tus mejores hallazgos en una pila debajo de un árbol. Extrañamente, cada vez que regresas, la pila parece hacerse más pequeña, no más grande...<br><br>Eso no puede ser. Miras a tu alrededor, pero nada raro destaca. Justo cuando te das la vuelta para regresar al arroyo, ves una pata parecida a una mano saliendo de un hueco en el tronco ¡y roba algunas de tus piedras!<br><br>\"¡Oye!\" gritas, \"¡He estado trabajando duro recogiendo esas! ¡No está bien tomarlas sin pedir permiso!\"<br><br>Una cara enmascarada aparece por el hueco y te sonríe. \"¡El que encuentra, se queda!\" dice el mapache. Se desliza de nuevo dentro del árbol, con bolsas de piedras en las manos. ¡Saltas tras él! Esas piedras valen la pena pelear por ellas.",
|
||||
"questDogNotes": "¡Has sido elegido para una expedición para mapear los sistemas de cuevas subterráneas de Habitica! Los investigadores en Habit City teorizan que podría haber nuevas herramientas para gestionar tareas o incluso criaturas no descubiertas en estas profundidades.<br><br>Mientras mapeas los túneles rocosos cerca de las estribaciones de las Montañas Errantes, notas un resplandor proveniente de una entrada escarpada por delante. A medida que te acercas ves... ¿juguetes? Animales de peluche y pelotas de goma están esparcidos por el suelo de la cueva. ¿Es eso lo que escuchas, un ladrido?<br><br>¡Un enorme perro de tres cabezas salta, lanzándose hacia el juguete que justo ibas a recoger! Te quedas paralizado, ¡casi pierdes un miembro allí! Pero... ¿las bocas del perro parecen demasiado ocupadas con los juguetes para atacar?<br><br>“¡Guau!” ladra una de las bocas del perro, dejando caer un juguete de mapache desgarrado. “¿Estás aquí para ayudarme a limpiar?? Realmente necesito poner orden, pero cada vez que recojo un juguete, ¡termino jugando con él! ¡Aquí, piensa rápido!!”<br><br>Lanza una pelota hacia ti, luego otra, y otra más. ¡Esas cabezas extra realmente hacen que esquivar sea todo un ejercicio!",
|
||||
"questOtterCompletion": "Mientras recogías los pedazos de tu lista, comenzaste a organizarlos según cuáles eran las tareas más importantes y terminaste con un lugar bastante manejable para empezar.<br><br>\"¡Ya veo!\" le dices al nutria, \"esa broma realmente me ayudó a pensar en qué tareas debía priorizar.\"<br><br>La nutria salpica, frotándose las mejillas con alegría, \"Me alegra que mi pequeño truco te haya ayudado a pensar en tus tareas de una manera diferente.\" Se zambulle bajo el agua, emergiendo cerca de ti, \"Recuerda hacer tus listas alcanzables. Las recompensas también ayudan, ¡así que toma estas!\"",
|
||||
"questCatNotes": "En este hermoso día te encuentras en el taller de la *Enchanted Efficiency Emporium* de Habit City. Se te ha asignado una tarea difícil: crear un nuevo hechizo mágico de motivación para ayudar a los Habiticans a completar sus metas con facilidad.<br><br>En una mesa frente a ti hay una variedad de objetos mágicos. Todos los tomos decían que deberían resonar juntos con energía productiva… pero hasta ahora no ha habido ni una chispa de motivación.<br><br>El chirrido de una puerta te alerta de que ha llegado un nuevo invitado a tu taller. Pies que corren y una ráfaga de pelusa se lanzan sobre la mesa. ¿Un… gato? Antes de que siquiera tengas oportunidad de elogiar lo esponjosa que es, ella levanta una pata hacia uno de los cristales que pusiste y… ¡lo derriba de la mesa!<br><br>“¡Oye!” gritas, “Eres realmente linda, pero estoy tratando de trabajar aquí…”<br><br>Te mira con sus hermosos ojos azules, inclina la cabeza y derriba un montón de hierbas de la mesa. “¡Estoy ayudando!” dice mientras ronronea.<br><br>Ves su pata alcanzando hacia el resto de los objetos que has reunido y te lanzas al suelo para atrapar el siguiente que va a caer!",
|
||||
"questCatCompletion": "Afortunadamente, has atrapado todo lo que la gata traviesa derribó de la mesa. Mientras te sientas en el suelo, notas un resplandor brillante proveniente de los objetos frente a ti. Al mirar hacia arriba, ves que los de la mesa también están reaccionando. ¡Colocarlos a diferentes alturas parece ser un avance en tu investigación!<br><br>\"Sabes, al final me ayudaste. Supongo que solo necesitaba un par de ojos frescos en mi tarea para salir del atolladero. Aunque, me hubiera gustado un poco de aviso antes de que comenzaras a mover cosas,\" le dices a la gata, dándole una palmadita suave.<br><br>\"Es una solicitud perfectamente razonable, ¡toma estos como disculpa!\" ronronea ella, empujando unos huevos de aspecto extraño hacia ti. \"Me alegra haber podido ayudarte a ver las cosas desde una perspectiva diferente.\"",
|
||||
"questJadeCompletion": "Después de innumerables contratiempos, ¡finalmente lograste hacer rodar la roca de jade hasta la cima de la montaña! La figura de piedra te alcanza y sonríe. Le da un suave empujón a la roca y, con horror, ves cómo rueda hasta la parte inferior.<br><br>\"¿Por qué hiciste eso? ¡Ahora alguien tendrá que hacerlo todo de nuevo!\" te alarmas.<br><br>\"El hecho de que tengas que hacer algo más de una vez no significa que tus logros sean en vano,\" dice la figura de piedra. \"Por ahora, concéntrate en lo que lograste y disfruta de una recompensa.\"<br><br>De repente, despiertas en tu sofá, con el teléfono caído al suelo. En su lugar, hay tres botellas llenas de jade fluido. Tal vez sea hora de limpiar los platos de hoy y luego tomar un descanso para ver cómo funcionan estas pociones en algunos huevos de mascota...",
|
||||
"questAlpacaNotes": "El sol brilla mientras subes por los senderos rocosos de las Montañas Meandering. Has estado planeando esta expedición para tu grupo de amigos durante meses, investigando cada aspecto del viaje. El peso de los suministros en tu espalda es tan grande que cada paso se siente más como una carga que como una aventura.<br><br>Escuchas un suave crujido de cascos en el sendero detrás de ti. Una alpaca esponjosa se acerca con una gigantesca pila de equipaje sobre su espalda.<br><br>\"Parece que vas un poco lento, amigo, ¡y todo lo que llevas es una mochilita!\" dice mientras te pasa.<br><br>\"Lo haces parecer tan fácil,\" suspiras. \"Planeé este viaje durante tanto tiempo, pero ahora que estamos aquí, ni siquiera me estoy divirtiendo...\"<br><br>\"No te deprimas,\" resopla la alpaca. \"¡Te voy a enseñar una lección que aprendí hace mucho tiempo!\" Da un salto, ¡y de repente un rollo de cama enrollado vuela hacia ti! ¿Cómo se supone que esto ayuda?!",
|
||||
"questVirtualPetText": "Caos virtual con el Bromista de Abril: El Beepening",
|
||||
"questVirtualPetNotes": "Es una tranquila y agradable mañana de primavera en Habitica, una semana después de un memorable Día de los Inocentes. Tú y @Beffymaroo están en los establos cuidando de sus mascotas (que aún están un poco confundidas por su tiempo pasado en el mundo virtual).<br><br>A lo lejos, escuchas un retumbo y un pitido, suave al principio, pero que aumenta de volumen como si se acercara. En el horizonte aparece una forma ovalada y, al aproximarse con pitidos cada vez más fuertes, te das cuenta de que es una gigantesca mascota virtual.<br><br>“Oh no”, exclama @Beffymaroo, “creo que el Bromista de Abril dejó algunos asuntos pendientes con este grandulón, parece que quiere atención”.<br><br>La mascota virtual pita con furia, haciendo un berrinche digital y avanzando cada vez más cerca.",
|
||||
"questVirtualPetBoss": "Pichimon",
|
||||
"questVirtualPetRageTitle": "El pitido",
|
||||
"questVirtualPetRageDescription": "Esta barra se llena cuando no completas tus Dailies. Cuando esté llena, ¡el Wotchimon te quitará parte del daño pendiente de tu grupo!",
|
||||
"questVirtualPetRageEffect": "Wotchimon emite un pitido molesto y su barra de felicidad desaparece de repente. Daño pendiente reducido.",
|
||||
"questVirtualPetDropVirtualPetPotion": "Poción para incubar mascotas virtuales",
|
||||
"questVirtualPetUnlockText": "Desbloquea la poción para incubar mascotas virtuales que se puede comprar en el mercado",
|
||||
"questPinkMarbleText": "Calmar al Cupido Corrompido",
|
||||
"questPinkMarbleNotes": "Después de escuchar rumores sobre una cueva en las Montañas Errantes que tiene rocas rosas y polvo saliendo de ella, tu grupo comienza a investigar. Al acercarse a la cueva, efectivamente hay una enorme nube de polvo rosa, y extrañamente, escuchas el grito de batalla de una voz diminuta, seguido por el sonido de rocas rompiéndose.<br><br>@Empress42 accidentalmente inhala algo del polvo y de repente se siente soñadora y menos productiva. “¡A mí también!” dice @QuartzFox, “¡De repente estoy fantaseando con una persona que apenas conozco!”<br><br>@a_diamond asoma la cabeza en la cueva y encuentra a un pequeño ser dando vueltas y triturando rocas de mármol rosa en polvo. “¡Cúbranlo! ¡Este Cupido ha sido corrompido y está usando su magia para causar limerencia e infatuaciones poco realistas! ¡Tenemos que someterlo!”",
|
||||
"questPinkMarbleCompletion": "Logras atrapar al pequeño finalmente; era mucho más duro y rápido de lo que esperabas. Antes de que se mueva nuevamente, le quitas su aljaba de flechas brillantes. Parpadea y de repente mira a su alrededor sorprendido. “Para escapar de mi propia tristeza y desamor por un tiempo, me pinché con una de mis flechas… ¡No recuerdo nada después de eso!”<br><br>Está a punto de huir de la cueva cuando nota que @Loremi ha tomado una muestra del polvo de mármol y sonríe. “¡Prueba usar un poco de este polvo de mármol rosa en una poción! Cuida a las mascotas que nazcan de ella y verás que las relaciones reales nacen de la comunicación, la confianza mutua y el cuidado. ¡Les deseo suerte y les deseo amor!”",
|
||||
"questPinkMarbleBoss": "Cupido",
|
||||
"questPinkMarbleRageTitle": "Ponche rosa",
|
||||
"questPinkMarbleRageDescription": "Esta barra se llena cuando no completas tus Dailies. Cuando esté llena, Cupido te quitará parte del daño pendiente de tu grupo!",
|
||||
"questPinkMarbleRageEffect": "`¡Cupido usa Pink Punch!` ¡Eso no ha sido nada cariñoso! Tus compañeros están desconcertados. Daño pendiente reducido.",
|
||||
"questPinkMarbleDropPinkMarblePotion": "Poción de eclosión de mármol rosa"
|
||||
}
|
||||
|
||||
@@ -897,5 +897,8 @@
|
||||
"backgroundOldFashionedTeaShopNotes": "Profitez d'une boisson réconfortante dans une Boutique de Thé Vintage.",
|
||||
"backgroundMountainSceneWithBlossomsText": "Montagne scénique sous les Bourgeons",
|
||||
"backgrounds032025": "Ensemble 130 : Sortie Mars 2025",
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Profitez d'une superbe vue et de parfums délicats d'une Montagne scénique sous les Bourgeons."
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Profitez d'une superbe vue et de parfums délicats d'une Montagne scénique sous les Bourgeons.",
|
||||
"backgroundGardenWithFlowerBedsNotes": "Profitez des bourgeons du printemps dans un Jardin avec Parterres de Fleurs.",
|
||||
"backgrounds0420205": "Ensemble 131 : Sortie Avril 2025",
|
||||
"backgroundGardenWithFlowerBedsText": "Jardin avec Parterres de Fleurs"
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
"allocatePerPop": "Ajouter un point à votre attribut de perception",
|
||||
"allocateInt": "Points alloués en intelligence :",
|
||||
"allocateIntPop": "Ajouter un point à votre attribut d'intelligence",
|
||||
"noMoreAllocate": "Maintenant que vous avez atteint le niveau 100, vous ne gagnerez plus de Points d'Attributs. Vous pouvez continuer à monter en niveau, ou commencer une nouvelle aventure au niveau 1 en utilisant l'<<a href='/shops/market'>>Orbe de Renaissance</a> !",
|
||||
"noMoreAllocate": "Maintenant que vous avez atteint le niveau 100, vous ne gagnerez plus de Points d'Attributs. Vous pouvez continuer à monter en niveau, ou commencer une nouvelle aventure au niveau 1 en utilisant l'<a href='/shops/market'>>Orbe de Renaissance</a> !",
|
||||
"stats": "Attributs",
|
||||
"strength": "Force",
|
||||
"strText": "La force augmente votre chance de réaliser un \"coup critique\" aléatoire et d'obtenir l'or, l'expérience, et le butin qui vont avec. Elle aide également à infliger des dégâts aux boss.",
|
||||
|
||||
@@ -399,5 +399,12 @@
|
||||
"questEggOtterMountText": "Loutre",
|
||||
"questEggOtterAdjective": "perfide",
|
||||
"questEggOtterText": "Loutre",
|
||||
"hatchingPotionJade": "de Jade"
|
||||
"hatchingPotionJade": "de Jade",
|
||||
"questEggAlpacaText": "Alpaca",
|
||||
"questEggAlpacaMountText": "Alpaca",
|
||||
"questEggAlpacaAdjective": "un surchargé",
|
||||
"hatchingPotionBalloon": "Ballon",
|
||||
"wackyPotionAddlNotes": "Ne peut se transformer en Monture ni être utilisée sur les œufs de Familier de Quête.",
|
||||
"hatchingPotionCryptid": "Cyptide",
|
||||
"wackyPotionNotes": "Versez-la sur un œuf et il en sortira un Familier <%= potText(locale) %> Farfelu."
|
||||
}
|
||||
|
||||
@@ -3301,5 +3301,17 @@
|
||||
"headMystery202503Notes": "Cette coiffure verdoyante convient parfaitement à un·e guerri·er·ère et défenseu·r·se de la planète. Ne confère aucun bonus. Équipement d'Abonnement Mars 2025.",
|
||||
"shieldSpecialSpring2025WarriorNotes": "Vous pouvez momentanément aveugler vos ennemi·e·s quand le soleil se reflète au bon moment sur ce bouclier. Profitez-en et prenez en de la graine ! Augmente la Constitution de <%= con %>. Équipement Édition Limitée Printemps 2025.",
|
||||
"shieldSpecialSpring2025HealerNotes": "Vous pouvez utiliser ce pétale spécial pour recueillir de la positivité et éloigner les pensées négatives. Profitez-en et prenez en de la graine ! Augmente la Constitution de <%= con %>. Équipement Édition Limitée Printemps 2025.",
|
||||
"eyewearMystery202503Notes": "Ce regard perçant va instiller la terreur dans tout·e combattant·e qui vous lancera un défi ! Ne confère aucun bonus. Équipement d'Abonnement Mars 2025."
|
||||
"eyewearMystery202503Notes": "Ce regard perçant va instiller la terreur dans tout·e combattant·e qui vous lancera un défi ! Ne confère aucun bonus. Équipement d'Abonnement Mars 2025.",
|
||||
"armorArmoireSillyOrangeTuxedoText": "Smoking Orange Rigolodicule",
|
||||
"armorArmoireSillyOrangeTuxedoNotes": "Votre propre costume \"du jour\" (ndlt : en Français dans le texte). Augmente la Constitution de <%= con %>. Armoire Enchantée : Ensemble Smoking Rigolodicule (Objet 1 sur 2).",
|
||||
"armorMystery202504Text": "Armure du Yéti Insaisissable",
|
||||
"armorMystery202504Notes": "Abominable ! Disons plutôt adorable ! Ne confère aucun bonus. Équipement d'Abonnement Avril 2025.",
|
||||
"armorArmoireSillierBlueTuxedoText": "Smoking Bleu encore plus Rigolodicule",
|
||||
"armorArmoireSillierBlueTuxedoNotes": "Envoyez du lourd dans cette tenue unique. Augmente la Force de <%= str %>. Armoire enchantée : Ensemble Smoking encore plus Rigolodicule (Objet 1 sur 2).",
|
||||
"headMystery202504Text": "Cagoule du Yéti Insaisissable",
|
||||
"headMystery202504Notes": "Arborez cette façade mystérieuse pour vous mélanger discrètement aux cryptides les plus mystérieu·x·ses. Ne confère aucun bonus. Équipement d'Abonnement Avril 2025.",
|
||||
"headArmoireSillyOrangeTophatNotes": "Va très bien avec une coupe au bol. Augmente la Force et la Constitution de <%= attrs %> chacune. Armoire enchantée : Ensemble Smoking Rigolodicule (Objet 2 sur 2).",
|
||||
"headArmoireSillyOrangeTophatText": "Haut-de-Forme Orange Rigolodicule",
|
||||
"headArmoireSillierBlueTophatText": "Haut-de-Forme Bleu encore plus Rigolodicule",
|
||||
"headArmoireSillierBlueTophatNotes": "Un peu de classe, un peu de sophistication. Augmente la Force et la Constitution de <%= attrs %> chacune. Armoire Enchantée : Ensemble Smoking encore plus Rigolodicule (Objet 2 sur 2)."
|
||||
}
|
||||
|
||||
@@ -834,5 +834,14 @@
|
||||
"questOtterNotes": "Les listes \"à faire\", c'est génial ! On peut passer des heures à inscrire méticuleusement toutes les choses à faire et se sentir producti·f·ve sans accomplir les tâches en question. D'ailleurs, vous fourrez votre liste de trois pages dans votre poche. Il est temps d'aller faire une petit balade !<br><br>Vous vous engagez vers la Rivière de la Routine pour vous promener le long de la berge. Voilà ce qu'il vous manquait pour vous y mettre ! Il est temps de consulter votre liste \"à faire\" et-ah ! Une bourrasque de vent emporte votre liste vers l'eau !<br><br>Juste avant que votre liste ne soit immergée, une loutre sort la tête de l'eau et intercepte votre précieuse liste. Ouf ! Il saisit celle-ci dans ses pattes, la détaille, puis un rictus vient lui fendre le visage... Oh-oh.<br><br>\"Hmmm, fredonne-t-il en retournant votre papier dans tous les sens, On dirait que tu as besoin d'aide pour définir tes priorités.\" Scccrrtch.<br><br>La loutre vient de déchirer votre liste bien-aimée en petits morceaux ! \"Si tu veux réussir à faire tes tâches, tu vas devoir dans un premier temps choisir les plus importantes !\" dit-il, en lançant des petits bouts de papiers en l'air.",
|
||||
"questJadeNotes": "Vous êtes dans votre domicile, et regardez la pile de vaisselle sale dans l'évier. Le tas de linge sale aux quatre coins de la pièces. Les verres vides et les papiers de friandises autour de votre bureau...<br><br>Vous soupirez. \"Pourquoi y a-t-il toujours plus de vaisselle... Le bazar ne s'arrête jamais.\" C'est tellement démotivant. Vous vous retrouvez donc affalé·e sur le canapé, en train de scroller sans but. Va savoir depuis combien de temps vous êtes là...<br><br>En levant les yeux de votre téléphone, tout est vert. Vous n'êtes plus dans votre salon. Vous vous levez, et vous trouvez au cœur d'une montagne verdoyante.<br><br>Du mouvement au loin attire votre attention. Une silhouette de pierre verte grogne en poussant un rocher sur une côte rocailleuse. Le golem avance, mais il glisse légèrement et le rocher déboule dans la pente, dans votre direction !<br><br>Il vous repère, court puis arrête l'énorme morceau de jade qui a manqué de vous écraser ! \"Alors, tu penses que faire la vaisselle, c'est éreintant ? crie-t-il, essaye ça alors !\"",
|
||||
"questOtterCompletion": "Après avoir attrapé toutes les pièces de votre liste, vous les réorganisez par ordre d'importance et vos tâches semblent plus simples à commencer !<br><br>\"J'y vois plus clair ! dites-vous à la loutre, ce tour que tu m'as joué m'a vraiment permis de revoir mes priorités.\"<br><br>La loutre batifole gaiement dans l'eau en frottant ses joues avec malice : \"Je suis content que mon plan machiavélique t'ait aidé à réfléchir différemment à tes tâches.\" Il plonge sous l'eau, puis remonte à la surface : \"N'oublie pas de faire en sorte de pouvoir accomplir tes listes. Les récompenses, ça aide aussi, alors prends ce cadeau !\"",
|
||||
"questJadeCompletion": "Après de nombreuses épreuves, vous avez miraculeusement réussi à rouler le rocher de jade en haut de la montagne ! Le golem vous rattrape et vous sourit. Il pousse légèrement le rocher que vous regardez avec effarement rouler vers le bas.<br><br>\"Pourquoi avoir fait ça ? Quelqu'un d'autre tout recommencer maintenant !\" trépignez-vous.<br><br>\"Ce n'est pas parce que tu as quelque chose à faire plusieurs fois que tes réussites n'ont pas de sens, dit le golem. Pour le moment, concentre-toi sur ce que tu as accompli et profite de ta récompense !\"<br><br>Vous vous réveillez en sursaut sur votre canapé, votre téléphone au sol. Dans votre main se trouvent maintenant trois bouteilles remplies de jade liquide ! Peut-être est-il temps de faire la vaisselle, puis de vous accorder une pause pour voir quel effet a cette potion sur des œufs de familier..."
|
||||
"questJadeCompletion": "Après de nombreuses épreuves, vous avez miraculeusement réussi à rouler le rocher de jade en haut de la montagne ! Le golem vous rattrape et vous sourit. Il pousse légèrement le rocher que vous regardez avec effarement rouler vers le bas.<br><br>\"Pourquoi avoir fait ça ? Quelqu'un d'autre tout recommencer maintenant !\" trépignez-vous.<br><br>\"Ce n'est pas parce que tu as quelque chose à faire plusieurs fois que tes réussites n'ont pas de sens, dit le golem. Pour le moment, concentre-toi sur ce que tu as accompli et profite de ta récompense !\"<br><br>Vous vous réveillez en sursaut sur votre canapé, votre téléphone au sol. Dans votre main se trouvent maintenant trois bouteilles remplies de jade liquide ! Peut-être est-il temps de faire la vaisselle, puis de vous accorder une pause pour voir quel effet a cette potion sur des œufs de familier...",
|
||||
"questAlpacaRageDescription": "Cette barre se remplit quand vous n'effectuez pas vos Quotidiennes. Quand elle sera pleine, L'Alpaca Surchargée regagnera des points de vie !",
|
||||
"questAlpacaNotes": "Le soleil darde ardemment durant votre randonnée sur les sentiers escarpés des Montagnes des Méandres. Vous avez préparé cette expédition pour votre groupe d'ami·e·s depuis des mois, étudiant les moindres détails pour ce voyage. Le poids du matériel sur votre dos est si lourd à porter, chaque pas ressemble plus à une punition qu'à une aventure.<br><br>Vous entendez de doux craquements de sabots venant du chemin derrière vous. Une alpaca particulièrement duveteuse s'approche de vous avec un énorme tas de bagages sur son dos.<br><br>\"Il semblerait que vous soyez un peu à la traîne mon ami·e, alors que vous ne portez qu'un petit sac à dos !\" dit-elle en vous dépassant.<br><br>\"Ç'a l'air si simple pour vous ! soupirez-vous, J'ai préparé ce voyage depuis longtemps, mais maintenant que je suis là, je ne m'amuse même pas...\"<br><br>\"Ne vous découragez pas, s'ébroue l'alpaca, je vais vous apprendre une leçon que j'ai retenue il y a bien longtemps !\" Elle se cabre, et envoie vers vous un sac de couchage enroulé ! En quoi c'est censé aider ça ? !",
|
||||
"questAlpacaCompletion": "Heureusement, aucun des sacs que l'alpaca vous a envoyés n'étaient très lourds, mais vous en avez tout de même plein le dos. \"C'était quoi le but là ?\" demandez-vous, énervé·e.<br><br>\"Si vous avez l'intention de faire ce voyage avec vos ami·e·s, vous ne devriez pas avoir à en porter seul·e le fardeau ! Je suis sûre que vos ami·e·s préfèreraient que vous répartissiez la charge plutôt que de vous effondrer sous son poids. Bref, vous pouvez me rendre ces sacs. Je suis une bête de somme expérimentée et je pense que vous avez compris mon intention, dit-elle en vous lançant un clin d'œil. Mais gardez ce paquet bleu comme récompense pour cette leçon durement apprise. On se retrouve au sommet !\"",
|
||||
"questAlpacaText": "L'Alpaca Surchargée",
|
||||
"questAlpacaBoss": "L'Alpaca Surchargée",
|
||||
"questAlpacaRageTitle": "Tremblement de Surcharge",
|
||||
"questAlpacaRageEffect": "L'Alpaca Surchargée vous lance des bagages ! La boss regagne 30% des ses points de vie !",
|
||||
"questAlpacaDropAlpacaEgg": "Alpaca (œuf)",
|
||||
"questAlpacaUnlockText": "Débloque la possibilité d'acquérir des Œufs d'Alpaca au Marché"
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"generate": "Générer",
|
||||
"getCodes": "Obtenir les Codes",
|
||||
"webhooks": "Webhooks",
|
||||
"webhooksInfo": "Webhooks propose aux Développeu·r·se·s de recevoir des notification quand une action en particulier est faite, tel que valider ou mettre à jour une Tâche, ou envoyé un message dans un Groupe. En créant un webhook, vous pourrez écouter les changements dans Habitica et mettre au point des applis qui répondent à ces changement. <br><br>Pour des informations complémentaires et des exemples de webhooks, merci de visiter nos<a target=\"_blank\" href=\"https://habitica.com/apidoc/#api-Webhook-AddWebhook\"> Documents API</a>",
|
||||
"webhooksInfo": "Webhooks propose aux Développeu·r·se·s de recevoir des notification quand une action en particulier est faite, tel que valider ou mettre à jour une Tâche, ou envoyé un message dans un Groupe. En créant un webhook, vous pourrez écouter les changements dans Habitica et mettre au point des applis qui répondent à ces changement. <br><br>Pour des informations complémentaires et des exemples de webhooks, merci de visiter nos<a target=\"_blank\" href=\"https://habitica.com/apidoc/#api-Webhook-AddWebhook\"> Documents API</a>.",
|
||||
"enabled": "Activé",
|
||||
"webhookURL": "URL du webhook",
|
||||
"invalidUrl": "URL invalide",
|
||||
|
||||
@@ -261,5 +261,6 @@
|
||||
"mysterySet202412": "Ensemble Lapin Sucre d'Orge",
|
||||
"mysterySet202501": "Ensemble Envoûteu·r·se de Glace",
|
||||
"mysterySet202502": "Ensemble Arlequin Amical",
|
||||
"mysterySet202503": "Ensemble Poids Lourd de Jade"
|
||||
"mysterySet202503": "Ensemble Poids Lourd de Jade",
|
||||
"mysterySet202504": "Ensemble Yéti Insaisissable"
|
||||
}
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
"onwards": "Előre!",
|
||||
"levelup": "A való életbeli céljaid teljesítésével szintet léptél, és teljesen meggyógyultál!",
|
||||
"reachedLevel": "Elérted a <%= level %>. szintet",
|
||||
"achievementLostMasterclasser": "Küldetés maximalista: Kasztmester sorozat",
|
||||
"achievementLostMasterclasserText": "Teljesítetted mind a tizenhat küldetést a Kasztmester küldetéssorozatban és megoldottad az Elveszett kasztmester rejtélyét!",
|
||||
"achievementLostMasterclasser": "Küldetés maximalista: Nagymester sorozat",
|
||||
"achievementLostMasterclasserText": "Teljesítetted mind a tizenhat küldetést a Nagymester küldetéssorozatban és megoldottad az Elveszett nagymester rejtélyét!",
|
||||
"achievementMindOverMatter": "Az elme hatalma az anyag felett",
|
||||
"achievementJustAddWater": "Elég egy vízcsepp",
|
||||
"achievementBackToBasics": "Vissza az alapokhoz",
|
||||
"achievementBackToBasicsText": "Összegyűjtötte az összes alap kisállatot.",
|
||||
"achievementMindOverMatterModalText": "Teljesítetted a kő, nyálka, és a fonál háziállat küldetéseket!",
|
||||
"achievementMindOverMatterText": "Teljesítette a kő, nyálka, és fonál háziállat küldetéseket.",
|
||||
"achievementLostMasterclasserModalText": "Teljesítetted mind a tizenhat küldetést a Kasztmester küldetéssorozatban és megoldottad az Elveszett kasztmester rejtélyét!",
|
||||
"achievementLostMasterclasserModalText": "Teljesítetted mind a tizenhat küldetést a Nagymester küldetéssorozatban és megoldottad az Elveszett nagymester rejtélyét!",
|
||||
"hideAchievements": "<%= category %> elrejtése",
|
||||
"showAllAchievements": "Minden <%= category %> megtekintése",
|
||||
"onboardingCompleteDesc": "<strong>5 kitüntetést</strong> és <strong class=\"gold-amount\">100</strong> aranyat szerztél a lista befejezéséért.",
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
"backgroundHarvestFeastNotes": "Élvezd az aratási ünnepet.",
|
||||
"backgroundStarrySkiesText": "Csillagos égbolt",
|
||||
"backgroundStarrySkiesNotes": "Bámuld a csillagos égboltot.",
|
||||
"backgroundSunsetMeadowText": "Naplementi rét",
|
||||
"backgroundSunsetMeadowNotes": "Csodáld meg a naplementi rétet.",
|
||||
"backgroundSunsetMeadowText": "Naplemente egy réten",
|
||||
"backgroundSunsetMeadowNotes": "Csodáld meg a rétet a naplementében.",
|
||||
"backgrounds122014": "KÉSZLET 7: Megjelent 2014. december",
|
||||
"backgroundIcebergText": "Jéghegy",
|
||||
"backgroundIcebergNotes": "Sodródj egy jéghegy hátán.",
|
||||
@@ -104,13 +104,13 @@
|
||||
"backgrounds082015": "KÉSZLET 15: Megjelent 2015. augusztus",
|
||||
"backgroundPyramidsText": "Piramisok",
|
||||
"backgroundPyramidsNotes": "Csodáld meg a piramisokat.",
|
||||
"backgroundSunsetSavannahText": "Naplementi szavanna",
|
||||
"backgroundSunsetSavannahNotes": "Sétálj keresztül a naplementi szavannán.",
|
||||
"backgroundSunsetSavannahText": "Naplemente a szavannán",
|
||||
"backgroundSunsetSavannahNotes": "Osonj át a naplementés szavannán.",
|
||||
"backgroundTwinklyPartyLightsText": "Ragyogó party fények",
|
||||
"backgroundTwinklyPartyLightsNotes": "Táncolj a ragyogó party fények alatt!",
|
||||
"backgrounds092015": "KÉSZLET 16: Megjelent 2015. szeptember",
|
||||
"backgroundMarketText": "Habitica piactér",
|
||||
"backgroundMarketNotes": "Vásárolj a Habitica piactéren.",
|
||||
"backgroundMarketText": "Habitica piac",
|
||||
"backgroundMarketNotes": "Vásárolj a Habitica piacterén.",
|
||||
"backgroundStableText": "Habitica istálló",
|
||||
"backgroundStableNotes": "Hátasok ápolása a Habitica istállóban.",
|
||||
"backgroundTavernText": "Habitica fogadó",
|
||||
@@ -127,20 +127,20 @@
|
||||
"backgroundFloatingIslandsNotes": "Ugrálj keresztül a lebegő szigeteken.",
|
||||
"backgroundNightDunesText": "Éjszakai dűnék",
|
||||
"backgroundNightDunesNotes": "Sétálj békésen az éjszakai dűnék között.",
|
||||
"backgroundSunsetOasisText": "Naplementi oázis",
|
||||
"backgroundSunsetOasisNotes": "Sütkérezz a naplementi oázisban.",
|
||||
"backgroundSunsetOasisText": "Naplemente egy oázisban",
|
||||
"backgroundSunsetOasisNotes": "Sütkérezz a naplementében egy oázisban.",
|
||||
"backgrounds122015": "KÉSZLET 19: Megjelent 2015. december",
|
||||
"backgroundAlpineSlopesText": "Alpesi lejtők",
|
||||
"backgroundAlpineSlopesNotes": "Sielj az alpesi lejtőkön.",
|
||||
"backgroundSnowySunriseText": "Havas napkelte",
|
||||
"backgroundSnowySunriseNotes": "Bámuld a havasi napkeltét.",
|
||||
"backgroundSnowySunriseNotes": "Bámuld a napkeltét a havas tájon.",
|
||||
"backgroundWinterTownText": "Téli város",
|
||||
"backgroundWinterTownNotes": "Siess át egy téli városon.",
|
||||
"backgroundWinterTownNotes": "Nyüzsgés egy téli városban.",
|
||||
"backgrounds012016": "KÉSZLET 20: Megjelent 2016. január",
|
||||
"backgroundFrozenLakeText": "Fagyott tó",
|
||||
"backgroundFrozenLakeText": "Befagyott tó",
|
||||
"backgroundFrozenLakeNotes": "Korcsolyázz egy befagyott tavon.",
|
||||
"backgroundSnowmanArmyText": "Hóember hadsereg",
|
||||
"backgroundSnowmanArmyNotes": "Vezess egy hóember hadsereget.",
|
||||
"backgroundSnowmanArmyNotes": "Vezesd a hóember hadsereget.",
|
||||
"backgroundWinterNightText": "Téli éjszaka",
|
||||
"backgroundWinterNightNotes": "Nézegesd a téli éjszaka csillagait.",
|
||||
"backgrounds022016": "KÉSZLET 21: Megjelent 2016. február",
|
||||
@@ -152,21 +152,21 @@
|
||||
"backgroundGrandStaircaseNotes": "Vonulj le az impozáns lépcsősoron.",
|
||||
"backgrounds032016": "KÉSZLET 22: Megjelent 2016. március",
|
||||
"backgroundDeepMineText": "Mély bánya",
|
||||
"backgroundDeepMineNotes": "Találj értékes rögöket egy mély bányában.",
|
||||
"backgroundDeepMineNotes": "Találj értékes érceket egy mély bányában.",
|
||||
"backgroundRainforestText": "Esőerdő",
|
||||
"backgroundRainforestNotes": "Kalandozz egy esőerdőben.",
|
||||
"backgroundStoneCircleText": "Sziklakör",
|
||||
"backgroundStoneCircleNotes": "Varázsolj egy sziklakörben.",
|
||||
"backgroundRainforestNotes": "Merészkedj be az esőerdőbe.",
|
||||
"backgroundStoneCircleText": "Kőtenger",
|
||||
"backgroundStoneCircleNotes": "Végez varázslatokat egy kőtenger közepén.",
|
||||
"backgrounds042016": "KÉSZLET 23: Megjelent 2016. április",
|
||||
"backgroundArcheryRangeText": "Íjász pálya",
|
||||
"backgroundArcheryRangeNotes": "Gyakorolj az íjász pályán.",
|
||||
"backgroundGiantFlowersText": "Óriás virágok",
|
||||
"backgroundGiantFlowersNotes": "Bolondozz az órás virágok tetején.",
|
||||
"backgroundGiantFlowersNotes": "Szökdécselj az óriás virágok tetején.",
|
||||
"backgroundRainbowsEndText": "A szivárvány vége",
|
||||
"backgroundRainbowsEndNotes": "Találd meg az aranyat a szivárvány tövében.",
|
||||
"backgrounds052016": "KÉSZLET 24: Megjelent 2016. május",
|
||||
"backgroundBeehiveText": "Méhkaptár",
|
||||
"backgroundBeehiveNotes": "Zümmögj és táncolj egy méhkaptárban.",
|
||||
"backgroundBeehiveText": "Méh kaptár",
|
||||
"backgroundBeehiveNotes": "Zümmögj és táncolj egy kaptárban.",
|
||||
"backgroundGazeboText": "Kilátó",
|
||||
"backgroundGazeboNotes": "Harcolj egy kilátóval.",
|
||||
"backgroundTreeRootsText": "Fagyökerek",
|
||||
@@ -174,13 +174,13 @@
|
||||
"backgrounds062016": "KÉSZLET 25: Megjelent 2016. június",
|
||||
"backgroundLighthouseShoreText": "A világítorony partja",
|
||||
"backgroundLighthouseShoreNotes": "Csatangolj a világítorony partján.",
|
||||
"backgroundLilypadText": "Tavirózsa",
|
||||
"backgroundLilypadNotes": "Ugorj rá egy tavirózsára.",
|
||||
"backgroundLilypadText": "Tavirózsa levél",
|
||||
"backgroundLilypadNotes": "Ugrálj egy tavirózsa levélen.",
|
||||
"backgroundWaterfallRockText": "A vízesés sziklája",
|
||||
"backgroundWaterfallRockNotes": "Csobbanj egyet a a vízesés sziklájánál.",
|
||||
"backgrounds072016": "KÉSZLET 26: Megjelent 2016. július",
|
||||
"backgroundAquariumText": "Akvárium",
|
||||
"backgroundAquariumNotes": "Úszkálj egy akváriumban.",
|
||||
"backgroundAquariumNotes": "Lebegj egy akváriumban.",
|
||||
"backgroundDeepSeaText": "Mélytenger",
|
||||
"backgroundDeepSeaNotes": "Merülj le a mélytengerhez.",
|
||||
"backgroundDilatoryCastleText": "Halogatás város kastélya",
|
||||
@@ -252,8 +252,8 @@
|
||||
"backgroundMagicBeanstalkNotes": "Mássz meg egy mágikus paszulyt.",
|
||||
"backgroundMeanderingCaveText": "Kígyózó barlang",
|
||||
"backgroundMeanderingCaveNotes": "Fedezd fel a kigyózó barlangot.",
|
||||
"backgroundMistiflyingCircusText": "Szállongó cirkusz",
|
||||
"backgroundMistiflyingCircusNotes": "Mulass egyet a szállongó cirkuszban.",
|
||||
"backgroundMistiflyingCircusText": "Ködligeti cirkusz",
|
||||
"backgroundMistiflyingCircusNotes": "Mulass a Ködligeti cirkuszban.",
|
||||
"backgrounds042017": "KÉSZLET 35: Megjelent 2017. április",
|
||||
"backgroundBugCoveredLogText": "Bogárlepte farönk",
|
||||
"backgroundBugCoveredLogNotes": "Vizsgáld meg a bogárlepte farönköt.",
|
||||
@@ -270,7 +270,7 @@
|
||||
"backgroundOnATreeBranchNotes": "Gubbassz egy faágon.",
|
||||
"backgrounds062017": "KÉSZLET 37: Megjelent 2017. június",
|
||||
"backgroundBuriedTreasureText": "Elásott kincs",
|
||||
"backgroundBuriedTreasureNotes": "Ésd ki az elásott kincset.",
|
||||
"backgroundBuriedTreasureNotes": "Ásd ki az elásott kincset.",
|
||||
"backgroundOceanSunriseText": "Óceáni napfelkelte",
|
||||
"backgroundOceanSunriseNotes": "Csodáld az óceáni napfelkeltét.",
|
||||
"backgroundSandcastleText": "Homokvár",
|
||||
@@ -294,8 +294,8 @@
|
||||
"backgroundBesideWellNotes": "Sétálj el egy kút mellett.",
|
||||
"backgroundGardenShedText": "Kerti fészer",
|
||||
"backgroundGardenShedNotes": "Dolgozz egy kerti fészerben.",
|
||||
"backgroundPixelistsWorkshopText": "A pixeles műhelye",
|
||||
"backgroundPixelistsWorkshopNotes": "Készíts remekműveket a pixeles műhelyében.",
|
||||
"backgroundPixelistsWorkshopText": "Pixelista műhelye",
|
||||
"backgroundPixelistsWorkshopNotes": "Alkoss mesterműveket a Pixelista műhelyében.",
|
||||
"backgrounds102017": "KÉSZLET 41: Megjelent 2017. október",
|
||||
"backgroundMagicalCandlesText": "Varázslatos gyertyák",
|
||||
"backgroundMagicalCandlesNotes": "Sütkérezz a varázslatos gyertyák fényében.",
|
||||
@@ -325,8 +325,8 @@
|
||||
"backgroundFlyingOverIcySteppesText": "Jeges pusztaság",
|
||||
"backgroundFlyingOverIcySteppesNotes": "Repülj át a jeges pusztaság felett.",
|
||||
"backgrounds022018": "KÉSZLET 45: Megjelent 2018. február",
|
||||
"backgroundChessboardLandText": "Sakktáblaföld",
|
||||
"backgroundChessboardLandNotes": "Játssz egyet sakktáblaföldön.",
|
||||
"backgroundChessboardLandText": "Sakktábla földje",
|
||||
"backgroundChessboardLandNotes": "Játssz egy játékot a sakktábla földjén.",
|
||||
"backgroundMagicalMuseumText": "Varázslatos múzeum",
|
||||
"backgroundMagicalMuseumNotes": "Járd be a varázslatos múzeumot.",
|
||||
"backgroundRoseGardenText": "Rózsakert",
|
||||
@@ -353,8 +353,8 @@
|
||||
"backgroundChampionsColosseumText": "Bajnokok kolosszeuma",
|
||||
"backgroundChampionsColosseumNotes": "Sütkérezz a bajnoki kolosszeum dicsőségében.",
|
||||
"backgrounds062018": "KÉSZLET 49: Megjelent 2018. június",
|
||||
"backgroundDocksText": "Kikötő",
|
||||
"backgroundDocksNotes": "Horgássz a kikötőben.",
|
||||
"backgroundDocksText": "Móló",
|
||||
"backgroundDocksNotes": "Horgássz a móló tetejéről.",
|
||||
"backgroundRowboatText": "Csónak",
|
||||
"backgroundRowboatNotes": "Dalolássz egy csónakban.",
|
||||
"backgroundPirateFlagText": "Kalóz zászló",
|
||||
@@ -375,7 +375,7 @@
|
||||
"backgroundBridgeNotes": "Menj keresztül ezen az elbűvölő hídon.",
|
||||
"backgrounds092018": "KÉSZLET 52: Megjelent 2018. szeptember",
|
||||
"backgroundApplePickingText": "Alma szedés",
|
||||
"backgroundApplePickingNotes": "Menj almát szedni és hozz haza egy vékával.",
|
||||
"backgroundApplePickingNotes": "Menj almát szedni és hozz haza egy vékával.",
|
||||
"backgroundGiantBookText": "Hatalmas könyv",
|
||||
"backgroundGiantBookNotes": "Lapozz végig egy hatalmas könyvet.",
|
||||
"backgroundCozyBarnText": "Hangulatos istálló",
|
||||
@@ -393,7 +393,7 @@
|
||||
"backgroundGlowingMushroomCaveText": "Ragyogó gomba barlang",
|
||||
"backgroundGlowingMushroomCaveNotes": "Hagyd hogy áhitattal töltsön el egy ragyogó gomba barlang.",
|
||||
"backgroundCozyBedroomText": "Hangulatos hálószoba",
|
||||
"backgroundCozyBedroomNotes": "Fészkeld be magad egy hangulatos hálószobába.",
|
||||
"backgroundCozyBedroomNotes": "Fészkeld be magad egy hangulatos hálószobába.",
|
||||
"backgrounds122018": "KÉSZLET 55: Megjelent 2018. december",
|
||||
"backgroundFlyingOverSnowyMountainsText": "Havas hegyek",
|
||||
"backgroundFlyingOverSnowyMountainsNotes": "Suhanj végig a havas hegyek fölött.",
|
||||
@@ -751,7 +751,7 @@
|
||||
"backgroundCottageConstructionText": "Épülő faház",
|
||||
"backgroundDragonsLairNotes": "Próbáld meg nem felébreszteni a sárkánybarlang lakóját.",
|
||||
"backgrounds092020": "KÉSZLET 76: Megjelent 2020. szeptember",
|
||||
"backgroundGingerbreadHouseNotes": "Élvezd a Mézeskalácsház látványát, illatát és ha mered az ízét is!",
|
||||
"backgroundGingerbreadHouseNotes": "Élvezd a mézeskalácsház látványát, illatát és ha mered az ízét is.",
|
||||
"backgrounds092022": "KÉSZLET 100: Megjelent 2022. szeptember",
|
||||
"backgroundTheatreStageText": "Színházi színpad",
|
||||
"backgroundTheatreStageNotes": "Lépj fel egy színházi színpadon.",
|
||||
@@ -897,5 +897,8 @@
|
||||
"backgroundJackOLanternStacksNotes": "Csodáld meg a tök lámpásokkal teli mezőt.",
|
||||
"backgrounds032025": "KÉSZLET 130: Megjelent 2025. március",
|
||||
"backgroundMountainSceneWithBlossomsText": "Hegyi táj virágokkal",
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Merülj el a hegyi táj virágaival és élvezd a gyönyörű látványt és illatokat."
|
||||
"backgroundMountainSceneWithBlossomsNotes": "Merülj el a hegyi táj virágaival és élvezd a gyönyörű látványt és illatokat.",
|
||||
"backgrounds0420205": "KÉSZLET 131: Megjelent 2025. április",
|
||||
"backgroundGardenWithFlowerBedsText": "Kert virágágyásokkal",
|
||||
"backgroundGardenWithFlowerBedsNotes": "Élvezd a tavaszi virágzást egy kertben, tele virágágyásokkal."
|
||||
}
|
||||
|
||||
@@ -61,10 +61,10 @@
|
||||
"costumeDisabled": "Letiltottad a jelmezed.",
|
||||
"gearAchievement": "Megszerezted a \"Végső felszerelés\" kitüntetést, amiért megszerezted egy kaszthoz tartozó összes felszerelést! A következő teljes felszereléseket szerezted meg eddig:",
|
||||
"gearAchievementNotification": "Megszerezted a \"Végső felszerelés\" kitüntetést, amiért megszerezted egy kaszthoz tartozó összes felszerelést!",
|
||||
"moreGearAchievements": "További Végső felszerelés jelvények megszerzéséhez válts osztályt a <a href='/user/settings/site' target='_blank'>Beállítások > Általános</a> oldalon, és vásárold meg az új osztályod felszerelését!",
|
||||
"moreGearAchievements": "További Végső felszerelés jelvények megszerzéséhez válts kasztot a <a href='/user/settings/site' target='_blank'>Beállítások > Általános</a> oldalon, és vásárold meg az új kasztod felszerelését!",
|
||||
"armoireUnlocked": "További felszerelésekért nézd meg a <strong>Megbűvölt komódot!</strong> Kattints a Megbűvölt komód jutalomra, hogy véletlenszerű eséllyel különleges felszerelést szerezz! Emellett véletlenszerű TP-t vagy élelmet is kaphatsz.",
|
||||
"ultimGearName": "Végső felszerelés - <%= ultClass %>",
|
||||
"ultimGearText": "Elérte a maximális fegyver- és páncélszettet a(z) <%= ultClass %> osztályban.",
|
||||
"ultimGearText": "Elérte a maximális fegyver- és páncélszettet a(z) <%= ultClass %> kasztban.",
|
||||
"level": "Szint",
|
||||
"levelUp": "Szintlépés!",
|
||||
"gainedLevel": "Szintet léptél!",
|
||||
@@ -92,13 +92,13 @@
|
||||
"perception": "Észlelés",
|
||||
"perText": "Az észlelés növeli a szerzett arany mennyiségét, és miután feloldottad a Piacot, növeli az esélyét, hogy tárgyakat találj a feladatok teljesítésekor.",
|
||||
"intelligence": "Intelligencia",
|
||||
"intText": "Az intelligencia növeli a szerzett tapasztalatpontok mennyiségét, és miután feloldottad az osztályokat, meghatározza a maximális manát az osztályképességekhez.",
|
||||
"intText": "Az intelligencia növeli a szerzett tapasztalatpontok mennyiségét, és miután feloldottad a kasztokat, meghatározza a maximális manát a kaszt képességekhez.",
|
||||
"levelBonus": "Szint bónusz",
|
||||
"allocatedPoints": "Elosztott pontok",
|
||||
"allocated": "Elosztva",
|
||||
"buffs": "Megerősítések",
|
||||
"characterBuild": "Karakterfejlődés",
|
||||
"class": "Osztály",
|
||||
"class": "Kaszt",
|
||||
"experience": "Tapasztalat",
|
||||
"warrior": "Harcos",
|
||||
"healer": "Gyógyító",
|
||||
@@ -106,31 +106,31 @@
|
||||
"mage": "Mágus",
|
||||
"wizard": "Mágus",
|
||||
"mystery": "Rejtély",
|
||||
"changeClass": "Osztályváltás, tulajdonság pontok visszaállítása",
|
||||
"lvl10ChangeClass": "Az osztályváltáshoz legalább 10. szintűnek kell lenned.",
|
||||
"changeClassConfirmCost": "Biztosan meg akarod változtatni az osztályodat 3 gyémántért?",
|
||||
"invalidClass": "Érvénytelen osztály. Kérlek, válaszd a következők egyikét: 'harcos', 'tolvaj', 'mágus' vagy 'gyógyító'.",
|
||||
"changeClass": "Kaszt váltás, tulajdonság pontok visszaállítása",
|
||||
"lvl10ChangeClass": "A kaszt váltáshoz legalább 10. szintűnek kell lenned.",
|
||||
"changeClassConfirmCost": "Biztosan meg akarod változtatni a kasztodat 3 gyémántért?",
|
||||
"invalidClass": "Érvénytelen kaszt. Kérlek, válaszd a következők egyikét: 'harcos', 'tolvaj', 'mágus' vagy 'gyógyító'.",
|
||||
"levelPopover": "Minden szintlépéskor kapsz egy pontot, amit egy általad választott tulajdonságra oszthatsz el. Megteheted ezt manuálisan vagy rábízhatod a játékra az Automatikus elosztás egyik beállításával.",
|
||||
"unallocated": "El nem osztott tulajdonság pontok",
|
||||
"autoAllocation": "Automatikus elosztás",
|
||||
"autoAllocationPop": "A szintlépéskor a tulajdonság pontokat az előre beállított preferenciáid szerint osztja el.",
|
||||
"evenAllocation": "Pontok egyenletes elosztása",
|
||||
"evenAllocationPop": "Ugyanannyi pontot oszt ki minden tulajdonságra.",
|
||||
"classAllocation": "Pontok elosztása az osztály alapján",
|
||||
"classAllocationPop": "Több pontot oszt ki az osztályod számára fontos statisztikákra.",
|
||||
"classAllocation": "Pontok elosztása a kaszt alapján",
|
||||
"classAllocationPop": "Több pontot oszt ki a kasztod számára fontos tulajdonságokra.",
|
||||
"taskAllocation": "Pontok elosztása a feladatok aktivitása alapján",
|
||||
"taskAllocationPop": "A pontokat a teljesített feladatokhoz kapcsolódó erő, intelligencia, szívósság és észlelés kategóriák szerint osztja el.",
|
||||
"distributePoints": "El nem osztott pontok kiosztása",
|
||||
"distributePointsPop": "Az összes el nem osztott tulajdonság pontot a kiválasztott elosztási séma szerint osztja szét.",
|
||||
"warriorText": "A harcosok erősebb és gyakoribb „kritikus találatokat” érnek el, amelyek véletlenszerűen extra aranyat, tapasztalatpontot és nagyobb tárgytalálási esélyt biztosítanak. Emellett hatalmas sebzést okoznak az ellenségeknek. Válaszd a harcost, ha a kiszámíthatatlan jackpot-stílusú jutalmak motiválnak vagy ha az ellenségekkel való harc vonz!",
|
||||
"wizardText": "A mágusok gyorsan tanulnak, így gyorsabban szereznek tapasztalatpontokat és lépnek szintet, mint más osztályok. Emellett rengeteg manával rendelkeznek a különleges képességeik használatához. Válaszd a mágust, ha szereted a Habitica taktikai elemeit vagy ha a szintlépés és az új funkciók feloldása motivál!",
|
||||
"mageText": "A mágusok gyorsan tanulnak, így gyorsabban szereznek tapasztalatpontokat és lépnek szintet, mint más osztályok. Emellett rengeteg manával rendelkeznek a különleges képességeik használatához. Válaszd a mágust, ha szereted a Habitica taktikai elemeit vagy ha a szintlépés és az új funkciók feloldása motivál!",
|
||||
"wizardText": "A mágusok gyorsan tanulnak, így gyorsabban szereznek tapasztalatpontokat és lépnek szintet, mint más kasztok. Emellett rengeteg manával rendelkeznek a különleges képességeik használatához. Válaszd a mágust, ha szereted a Habitica taktikai elemeit vagy ha a szintlépés és az új funkciók feloldása motivál!",
|
||||
"mageText": "A mágusok gyorsan tanulnak, így gyorsabban szereznek tapasztalatpontokat és lépnek szintet, mint más kasztok. Emellett rengeteg manával rendelkeznek a különleges képességeik használatához. Válaszd a mágust, ha szereted a Habitica taktikai elemeit vagy ha a szintlépés és az új funkciók feloldása motivál!",
|
||||
"rogueText": "A tolvajok imádják a gazdagságot, több aranyat szereznek, mint bárki más, és kiválóan megtalálják a véletlenszerű tárgyakat. Ikonikus lopakodás képességükkel elkerülhetik a kihagyott napi teendők negatív hatásait. Válaszd a tolvajt, ha a jutalmak és kitüntetések, a zsákmányszerzés és a jelvények motiválnak!",
|
||||
"healerText": "A gyógyítók ellenállóak a sebzéssel szemben, és ezt a védelmet másokra is kiterjesztik. A kihagyott napi teendők és rossz szokások kevésbé hatnak rájuk, és képesek gyógyítani az elhasznált életerőt. Válaszd a gyógyítót, ha szeretsz segíteni a csapatodnak vagy ha inspirál a kemény munkával való „halál kijátszása”!",
|
||||
"optOutOfClasses": "Kilépés",
|
||||
"chooseClass": "Válassz osztályt",
|
||||
"chooseClassLearnMarkdown": "[Tudj meg többet a Habitica osztályrendszeréről](/static/faq#what-classes)",
|
||||
"optOutOfClassesText": "Még nem állsz készen a választásra? Semmi gond! Ha kihagyod, bármikor elolvashatod az egyes osztályokról szóló leírást a <a href='/static/faq#what-classes' target='_blank'>GYIK-ban</a>, és a Beállításokban később bekapcsolhatod az osztályrendszert.",
|
||||
"chooseClass": "Válassz kasztot",
|
||||
"chooseClassLearnMarkdown": "[Tudj meg többet a Habitica kasztrendszeréről](/static/faq#what-classes)",
|
||||
"optOutOfClassesText": "Még nem állsz készen a választásra? Semmi gond! Ha kihagyod, bármikor elolvashatod az egyes kasztokról szóló leírást a <a href='/static/faq#what-classes' target='_blank'>GYIK-ban</a>, és a Beállításokban később bekapcsolhatod a kasztrendszert.",
|
||||
"selectClass": "<%= heroClass %> kiválasztása",
|
||||
"select": "Kiválasztás",
|
||||
"stealth": "Lopakodás",
|
||||
@@ -154,14 +154,14 @@
|
||||
"lostHealth": "Vesztettél egy kis életerőt",
|
||||
"lostExperience": "Vesztettél egy kis tapasztalatot",
|
||||
"equip": "Felszerelés",
|
||||
"unequip": "Levetés",
|
||||
"unequip": "Leszerelés",
|
||||
"animalSkins": "Állat bőrszínek",
|
||||
"str": "ERŐ",
|
||||
"con": "SZÍV",
|
||||
"per": "ÉSZ",
|
||||
"int": "INT",
|
||||
"notEnoughAttrPoints": "Nincs elég tulajdonság pontod.",
|
||||
"classNotSelected": "Ki kell választanod egy osztályt, mielőtt tulajdonság pontokat oszthatsz ki.",
|
||||
"classNotSelected": "Ki kell választanod egy kasztot, mielőtt tulajdonság pontokat oszthatsz ki.",
|
||||
"style": "Stílus",
|
||||
"facialhair": "Arc",
|
||||
"photo": "Fénykép",
|
||||
@@ -175,8 +175,8 @@
|
||||
"headAccess": "Fej kieg.",
|
||||
"backAccess": "Hát kieg.",
|
||||
"bodyAccess": "Test kieg.",
|
||||
"mainHand": "Fő felszerelés",
|
||||
"offHand": "Kiegészítő",
|
||||
"mainHand": "Jobbkezes",
|
||||
"offHand": "Balkezes",
|
||||
"statPoints": "Tulajdonság pontok",
|
||||
"pts": "pont",
|
||||
"chatCastSpellUser": "<%= username %> <%= spell %> varázslatot használta a(z) <%= target %> célponton.",
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
"commGuideList02A": "<strong>Tiszteljétek egymást</strong>. Légy udvarias, kedves, barátságos és segítőkész. Ne feledd: a Habitica közösségének tagjai különböző háttérrel és eltérő életutakkal érkeznek.",
|
||||
"commGuideList02C": "<strong>Ne ossz meg képeket vagy szövegeket, amelyek erőszakosak, fenyegetőek, szexuálisan explicit vagy célzatos tartalmúak, illetve amelyek diszkriminációt, előítéletet, rasszizmust, szexizmust, gyűlöletet, zaklatást vagy bármilyen kárt támogatnak egyénnel vagy csoporttal szemben</strong>. Még vicc vagy mém formájában sem. Ez vonatkozik a sértő kifejezésekre és kijelentésekre is. Nem mindenki érti ugyanúgy a humort, így ami számodra vicces, másnak bántó lehet.",
|
||||
"commGuideList02D": "<strong>Vedd figyelembe, hogy a Habitica közösség tagjai minden korosztályból és háttérből érkeznek</strong>. A Kihívások és a játékosprofilok ne tartalmazzanak felnőtt témákat, trágár kifejezéseket és ne szítsanak vitát vagy konfliktust.",
|
||||
"commGuideList02E": "<strong>Ha egy Staff tag közli veled, hogy egy kifejezés nem megengedett Habiticában – még akkor is, ha nem tudtad, hogy problémás –, az a döntés végleges.</strong> Emellett a sértő kifejezéseket nagyon szigorúan kezeljük, mivel ezek a Felhasználási feltételek megsértését is jelentik.",
|
||||
"commGuideList02G": "<strong>Azonnal teljesítsd a Staff kéréseit.</strong> Ez magában foglalhatja – de nem kizárólag – a bejegyzéseid korlátozását egy adott felületen, a profilod szerkesztését nem megfelelő tartalom eltávolítása érdekében stb. Ne vitatkozz a Staff tagjaival. Ha aggályaid vagy észrevételeid vannak a Staff intézkedéseivel kapcsolatban, írj e-mailt a közösségi menedzserünknek: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuideList02J": "<strong>Ne spammelj</strong>. A spam például a következőket foglalhatja magában, de nem kizárólag: több kéretlen privát üzenet küldése, értelmetlen üzenetek küldése, egy csapat vagy kihívás túlzott reklámozása vagy egymás után több hasonló vagy alacsony minőségű kihívás létrehozása. A Staff saját belátása szerint dönthet arról, hogy egy üzenet spamnek minősül-e.",
|
||||
"commGuideList02E": "<strong>Ha a Habitica csapat egyik tagja közli veled, hogy egy kifejezés nem megengedett az oldalon – még akkor is, ha nem tudtad, hogy problémás –, a döntés végleges.</strong> Emellett a gyűlöletkeltő kifejezéseket különösen szigorúan kezeljük, mivel ezek a Felhasználási feltételek megsértésének is minősülnek.",
|
||||
"commGuideList02G": "<strong>Azonnal teljesítsd a Habitica csapat kéréseit.</strong> Ez magában foglalhatja – de nem kizárólag – a bejegyzéseid korlátozását egy adott felületen, a profilod szerkesztését nem megfelelő tartalom eltávolítása érdekében stb. Ne vitatkozz a csapat tagjaival. Ha aggályaid vagy észrevételeid vannak az intézkedéseikkel kapcsolatban, írj e-mailt a közösségi menedzserünknek: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuideList02J": "<strong>Ne spammelj</strong>. A spam például a következőket foglalhatja magában, de nem kizárólag: több kéretlen privát üzenet küldése, értelmetlen üzenetek küldése, egy csapat vagy kihívás túlzott reklámozása vagy egymás után több hasonló vagy alacsony minőségű kihívás létrehozása. A Habitica csapat saját belátása szerint dönthet arról, mi minősül spamnek.",
|
||||
"commGuideList02K": "<strong>Ne küldj linkeket magyarázat vagy kontextus nélkül</strong>. Ha egy linkre kattintva bármilyen előnyhöz jutsz, ezt egyértelműen jelezned kell. Ez vonatkozik az üzenetekre és a kihívásokra is.",
|
||||
"commGuideList02L": "<strong>Nyomatékosan ellenjavalljuk személyes adatok megosztását – különösen olyan információkét, amelyek alapján beazonosítható vagy</strong>. Ilyen adatok lehetnek például: a címed, az e-mail címed, a jelszavad vagy az API tokened. Ha valaki személyes adatokat kér tőled egy csapat beszélgetésben vagy privát üzenetben, erősen javasoljuk, hogy ne válaszolj, és értesítsd a Staffot. Ezt megteheted az üzenet jelentésével vagy azzal, hogy elküldöd a képernyőképeket a következő e-mail címre, ha további kontextus szükséges: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuideList02L": "<strong>Nyomatékosan ellenjavalljuk személyes adatok megosztását – különösen olyan információkét, amelyek alapján beazonosítható vagy</strong>. Ilyen adatok lehetnek például: a címed, az e-mail címed, a jelszavad vagy az API tokened. Ha valaki személyes adatokat kér tőled egy csapat beszélgetésben vagy privát üzenetben, erősen javasoljuk, hogy ne válaszolj, és értesítsd a csapatunkat. Ezt megteheted az üzenet jelentésével vagy azzal, hogy elküldöd a képernyőképeket a következő e-mail címre, ha további kontextus szükséges: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuidePara037": "<strong>Ne hozz létre csapatot vagy csoportot azzal a céllal, hogy megtámadj egy csoportot vagy egyént</strong>. A rossz szokásokkal harcolj, ne a kalandortársaiddal!",
|
||||
"commGuideHeadingInfractionsEtc": "Szabálysértések, következmények és helyreállítás",
|
||||
"commGuideHeadingInfractions": "Szabálysértések",
|
||||
"commGuidePara050": "A Habitica közösségének tagjai túlnyomó többségben segítőkészek, tisztelettudóak és azon dolgoznak, hogy a légkör vidám és barátságos maradjon. Azonban ritka esetekben előfordulhat, hogy valaki megsérti a fenti irányelvek egyikét. Ilyen esetben a Staff megteszi a szükséges lépéseket annak érdekében, hogy Habitica biztonságos és kellemes hely maradjon mindenki számára.",
|
||||
"commGuidePara051": "<strong>A szabálysértések különböző súlyosságúak lehetnek és ennek megfelelően kezeljük őket</strong>. Az alábbiak nem teljes lista és a Staff saját belátása szerint hozhat döntéseket olyan esetekben is, amelyek itt nincsenek kifejtve. A szabályszegések értékelésekor a Staff mindig figyelembe veszi a körülményeket.",
|
||||
"commGuidePara050": "A Habitica közösségének tagjai túlnyomó többségben segítőkészek, tisztelettudóak és azon dolgoznak, hogy a légkör vidám és barátságos maradjon. Azonban ritka esetekben előfordulhat, hogy valaki megsérti a fenti irányelvek egyikét. Ilyen esetben a Habitica csapata megteszi a szükséges lépéseket annak érdekében, hogy Habitica biztonságos és kellemes hely maradjon mindenki számára.",
|
||||
"commGuidePara051": "<strong>A szabálysértések különböző súlyosságúak lehetnek, és ennek megfelelően kerülnek kezelésre.</strong> A felsorolások nem teljes körűek, a Habitica csapat saját belátása szerint dönthet olyan esetekben is, amelyeket itt nem részletezünk. A csapat a szabálysértések elbírálásakor a körülményeket is figyelembe veszi.",
|
||||
"commGuideHeadingSevereInfractions": "Súlyos szabálysértések",
|
||||
"commGuidePara052": "A súlyos szabálysértések jelentős mértékben veszélyeztetik a Habitica közösségének és felhasználóinak biztonságát, ezért súlyos következményekkel járnak.",
|
||||
"commGuidePara053": "Az alábbiakban néhány példa található a súlyos szabálysértésekre. Ez nem egy teljes lista.",
|
||||
@@ -30,18 +30,18 @@
|
||||
"commGuideList05D": "A Habitica csapatának megszemélyesítése – ide tartozik az is, ha valaki azt állítja, hogy a játékosok által létrehozott, Habiticához nem kapcsolódó felületek hivatalosak és/vagy a Habitica csapata moderálja őket",
|
||||
"commGuideList05E": "Ismétlődő mérsékelt szabálysértések",
|
||||
"commGuideList05F": "Másodlagos fiók létrehozása a következmények elkerülése érdekében",
|
||||
"commGuideList05G": "A Staff szándékos félrevezetése a következmények elkerülése vagy egy másik felhasználó bajba sodrása érdekében",
|
||||
"commGuideList05G": "A Habitica csapat szándékos megtévesztése a következmények elkerülése vagy egy másik felhasználó bajba sodrása érdekében",
|
||||
"commGuideHeadingModerateInfractions": "Mérsékelt szabálysértések",
|
||||
"commGuidePara054": "Ezek a szabálysértések mérsékelt következményekkel járnak. Ha több szabálysértés is történik egyszerre, a következmények súlyosbodhatnak.",
|
||||
"commGuidePara055": "Az alábbiakban néhány példa található a mérsékelt szabálysértésekre. Ez nem egy teljes lista.",
|
||||
"commGuideList06A": "A Staff utasításainak figyelmen kívül hagyása, tiszteletlenség vagy vitatkozás velük. Ha aggályaid vannak egy szabállyal vagy a Staff viselkedésével kapcsolatban, kérjük, lépj kapcsolatba velünk ezen az e-mail címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>.",
|
||||
"commGuideList06A": "A Habitica csapat figyelmen kívül hagyása, tiszteletlen kezelése vagy velük való vitatkozás. Ha aggályod van valamelyik szabállyal vagy a csapat viselkedésével kapcsolatban, kérjük, írj nekünk a <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> e-mail címre.",
|
||||
"commGuideList06C": "Ártatlan kihívások, profilok vagy üzenetek szándékos jelentése.",
|
||||
"commGuideList06E": "Ismétlődő kisebb szabálysértések elkövetése",
|
||||
"commGuideHeadingMinorInfractions": "Kisebb szabálysértések",
|
||||
"commGuidePara056": "Kisebb szabálysértések, bár nem kívánatosak, csak enyhe következményekkel járnak. Ha azonban ismétlődnek, idővel súlyosabb következményekhez vezethetnek. A kisebb szabálysértések általában az irányelvek első alkalommal történő megsértését jelentik, de egyéb körülményeket is magukban foglalhatnak.",
|
||||
"commGuidePara057": "Az alábbiakban néhány példa található a kisebb szabálysértésekre. Ez nem egy teljes lista.",
|
||||
"commGuideList07A": "A nyilvános terek irányelveinek első alkalommal történő megsértése",
|
||||
"commGuideList07B": "Bármilyen kijelentés vagy cselekedet, amelyre egy Staff tag \"Kérlek, ne tedd\" figyelmeztetést ad. Ha nyilvánosan felszólítanak valamire, hogy ne tedd, már önmagában következménynek számíthat. Ha egy felhasználó többször is ilyen figyelmeztetést kap, az súlyosabb szabálysértésnek minősülhet",
|
||||
"commGuideList07B": "Bármilyen megnyilvánulás vagy viselkedés, amelyre a Habitica csapat figyelmeztet, hogy „Kérlek, ezt ne csináld”. Ha nyilvánosan felszólítanak valamire, hogy ne tedd, az már önmagában következmény lehet. Ha ugyanazt a személyt többször is figyelmeztetni kell, az súlyosabb szabálysértésnek minősülhet",
|
||||
"commGuidePara057A": "Néhány bejegyzés elrejthető, ha érzékeny információkat tartalmaz vagy félreérthető lehet. Ez általában nem számít szabálysértésnek, különösen, ha először fordul elő!",
|
||||
"commGuideHeadingConsequences": "Következmények",
|
||||
"commGuidePara059": "<strong>A közösségi szabálysértéseknek közvetlen következményei vannak.</strong> Az alábbiakban néhány lehetséges következményt sorolunk fel.",
|
||||
@@ -54,22 +54,22 @@
|
||||
"commGuideList11A": "Emlékeztetők az irányelvekre",
|
||||
"commGuideList11B": "Figyelmeztetések",
|
||||
"commGuideList11C": "Kérések",
|
||||
"commGuideList11D": "A problémás tartalom törlése a Staff által",
|
||||
"commGuideList11E": "A problémás tartalom módosítása a Staff által",
|
||||
"commGuideList11D": "Problémás tartalom törlése a Habitica csapat által",
|
||||
"commGuideList11E": "Problémás tartalom módosítása a Habitica csapat által",
|
||||
"commGuideHeadingRestoration": "Helyreállítás",
|
||||
"commGuidePara061": "Habitica elkötelezett az önfejlesztés iránt és hiszünk a második esélyekben. <strong>Ha szabálysértést követsz el, és ennek következménye van, tekintsd ezt lehetőségnek arra, hogy átgondold a tetteidet és igyekezz jobb közösségi taggá válni</strong>.",
|
||||
"commGuidePara062": "<strong>Ha kérdéseid vannak a szabálysértéseddel vagy annak következményeivel kapcsolatban, szeretnél bocsánatot kérni vagy kérelmeznéd a visszaállításodat, kérjük, lépj kapcsolatba velünk a következő e-mail címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> és add meg a felhasználói azonosítódat vagy @felhasználónevedet</strong>. Ennek kezdeményezése <strong>a te</strong> felelősséged.",
|
||||
"commGuidePara063": "Ha nem érted a következményeket, a szabálysértésed jellegét vagy egyéb kérdésed van ezzel kapcsolatban, felveheted a kapcsolatot a Staff csapatával a következő e-mail címen: <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a>. Tartsd be a rád kiszabott korlátozásokat és törekedj arra, hogy teljesítsd a feltételeket a büntetések feloldásához.",
|
||||
"commGuideHeadingMeet": "Ismerd meg a Staff csapatát",
|
||||
"commGuidePara007": "A Habitica Staff csapata gondoskodik az alkalmazás és a weboldalak működéséről, valamint moderátorként is eljárhat a csevegésekben. Lila címkéjük van, amelyen egy korona látható. Az ő titulusuk: \"Hősies\".",
|
||||
"commGuidePara063": "Ha nem érted a rád kiszabott következményeket vagy a szabálysértésed jellegét, illetve ha más kérdésed van az üggyel kapcsolatban, írj a Habitica csapatnak a <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> címen. Kérjük, működj együtt az érvényben lévő korlátozások betartásában, és törekedj arra, hogy teljesítsd a feltételeket a büntetés feloldása érdekében.",
|
||||
"commGuideHeadingMeet": "Ismerd meg a Habitica csapatát",
|
||||
"commGuidePara007": "A Habitica csapata gondoskodik az alkalmazás és a weboldalak működéséről, valamint moderátorként is eljárhat a csevegésekben. Lila címkéjük van, amelyen egy korona látható. Az ő titulusuk: \"Hősies\".",
|
||||
"commGuidePara009": "A jelenlegi csapattagok (balról jobbra):",
|
||||
"commGuideAKA": "<%= habitName %>, más néven <%= realName %>",
|
||||
"commGuideOnGitHub": "GitHubon: <%= gitHubName %>",
|
||||
"commGuidePara011b": "a GitHubon/Fandomon",
|
||||
"commGuidePara011c": "a Wikiben",
|
||||
"commGuidePara011d": "GitHubon",
|
||||
"commGuidePara013": "Egy olyan nagy közösségben, mint Habitica, a játékosok jönnek-mennek és néha egy Staff tag vagy moderátor úgy dönt, hogy leteszi nemes köpenyét és pihen egy kicsit. Az alábbiakban a korábbi Staff tagokat és Moderátorokat tüntetjük fel. Ők már nem rendelkeznek Staff vagy Moderátori jogosultságokkal, de továbbra is szeretnénk elismerni a munkájukat!",
|
||||
"commGuidePara014": "Korábbi Staff tagok és moderátorok:",
|
||||
"commGuidePara013": "Egy olyan nagy közösségben, mint a Habitica, a játékosok jönnek-mennek, és néha egy csapattagnak vagy moderátornak is le kell tennie nemes köpenyét, hogy megpihenjen. Az alábbiakban a korábbi Habitica csapattagokat és moderátorokat tüntetjük fel. Ők már nem rendelkeznek hivatalos jogosultságokkal, de szeretnénk elismerni és megköszönni a munkájukat!",
|
||||
"commGuidePara014": "Tiszteletbeli csapattagok és moderátorok:",
|
||||
"commGuideHeadingFinal": "Az utolsó szakasz",
|
||||
"commGuidePara067": "És ezzel meg is volnánk, bátor Habitica lakó – itt vannak a Közösségi irányelvek! Töröld le a verejtéket a homlokodról és adj magadnak egy kis TP-t, amiért mindezt végigolvastad. Ha bármilyen kérdésed vagy aggályod merül fel ezekkel az irányelvekkel kapcsolatban, vedd fel velünk a kapcsolatot a <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> címen, és örömmel segítünk tisztázni a dolgokat.",
|
||||
"commGuidePara068": "Most pedig indulj, bátor kalandor és győzd le a napi teendőidet!",
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"potionText": "Életerő főzet",
|
||||
"potionNotes": "Helyreállít 15 életerő pontot (azonnali használat)",
|
||||
"armoireText": "Elvarázsolt láda",
|
||||
"potionNotes": "Gyógyulj 15 életponttal (Azonnali érvényesül)",
|
||||
"armoireText": "Megbűvölt komód",
|
||||
"armoireNotesFull": "Nyisd ki a Komódot, hogy véletlenszerűen különleges felszerelést, tapasztalatot vagy élelmet szerezz! A hiányzó felszerelési darabok:",
|
||||
"armoireLastItem": "Megtaláltad a ritka felszerelések legutolsó darabját is az elvarázsolt ládában.",
|
||||
"armoireNotesEmpty": "A ládába minden hónap első hetében egy új felszerelés kerül. Addig is további tapasztalat pontokat és állateledelt kaphatsz!",
|
||||
"armoireLastItem": "Megtaláltad az utolsó ritka felszerelést a Megbűvölt komódban.",
|
||||
"armoireNotesEmpty": "A komód minden hónap első hetében új felszereléseket tartalmaz. Addig is kattints tovább tapasztalati pontokért és kisállat eledelért!",
|
||||
"dropEggWolfText": "Farkas",
|
||||
"dropEggWolfMountText": "Farkas",
|
||||
"dropEggWolfAdjective": "egy hűséges",
|
||||
@@ -35,8 +35,8 @@
|
||||
"questEggGryphonText": "Griffmadár",
|
||||
"questEggGryphonMountText": "Griffmadár",
|
||||
"questEggGryphonAdjective": "egy büszke",
|
||||
"questEggHedgehogText": "Sündisznó",
|
||||
"questEggHedgehogMountText": "Sündisznó",
|
||||
"questEggHedgehogText": "Sün",
|
||||
"questEggHedgehogMountText": "Sün",
|
||||
"questEggHedgehogAdjective": "egy szúrós",
|
||||
"questEggDeerText": "Őz",
|
||||
"questEggDeerMountText": "Őz",
|
||||
@@ -68,9 +68,9 @@
|
||||
"questEggPenguinText": "Pingvin",
|
||||
"questEggPenguinMountText": "Pingvin",
|
||||
"questEggPenguinAdjective": "egy éles eszű",
|
||||
"questEggTRexText": "Tyrannosaurus",
|
||||
"questEggTRexMountText": "Tyrannosaurus",
|
||||
"questEggTRexAdjective": "egy kiskarú",
|
||||
"questEggTRexText": "Tirannoszaurusz",
|
||||
"questEggTRexMountText": "Tirannoszaurusz",
|
||||
"questEggTRexAdjective": "egy aprókarú",
|
||||
"questEggRockText": "Szikla",
|
||||
"questEggRockMountText": "Szikla",
|
||||
"questEggRockAdjective": "egy eleven",
|
||||
@@ -152,8 +152,8 @@
|
||||
"questEggButterflyText": "Hernyó",
|
||||
"questEggButterflyMountText": "Pillangó",
|
||||
"questEggButterflyAdjective": "egy cuki",
|
||||
"questEggNudibranchText": "Csupaszkopoltyús csiga",
|
||||
"questEggNudibranchMountText": "Csupaszkopoltyús csiga",
|
||||
"questEggNudibranchText": "Meztelencsiga",
|
||||
"questEggNudibranchMountText": "Meztelencsiga",
|
||||
"questEggNudibranchAdjective": "egy fürge",
|
||||
"questEggHippoText": "Viziló",
|
||||
"questEggHippoMountText": "Viziló",
|
||||
@@ -182,7 +182,7 @@
|
||||
"questEggVelociraptorText": "Velociraptor",
|
||||
"questEggVelociraptorMountText": "Velociraptor",
|
||||
"questEggVelociraptorAdjective": "egy okos",
|
||||
"eggNotes": "Találj egy keltetőfőzetet ehez a tojáshoz, hogy kikeljen belőle egy <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
||||
"eggNotes": "Keress egy keltetőfőzetet, és öntsd rá erre a tojásra – így kikel belőle egy <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
||||
"hatchingPotionBase": "Alap",
|
||||
"hatchingPotionWhite": "Fehér",
|
||||
"hatchingPotionDesert": "Sivatag",
|
||||
@@ -202,7 +202,7 @@
|
||||
"hatchingPotionGhost": "Szellem",
|
||||
"hatchingPotionRoyalPurple": "Fenséges lila",
|
||||
"hatchingPotionHolly": "Magyal",
|
||||
"hatchingPotionCupid": "Kupidó",
|
||||
"hatchingPotionCupid": "Ámor",
|
||||
"hatchingPotionShimmer": "Vibráló",
|
||||
"hatchingPotionFairy": "Tündér",
|
||||
"hatchingPotionStarryNight": "Csillagos éjszaka",
|
||||
@@ -270,38 +270,38 @@
|
||||
"foodCakeDesertThe": "a homoktorta",
|
||||
"foodCakeDesertA": "egy homoktorta",
|
||||
"foodCakeRed": "Epertorta",
|
||||
"foodCakeRedThe": "a epertorta",
|
||||
"foodCakeRedThe": "az epertorta",
|
||||
"foodCakeRedA": "egy epertorta",
|
||||
"foodCandySkeleton": "Csupasz csont cukorka",
|
||||
"foodCandySkeletonThe": "a csupasz csont cukorka",
|
||||
"foodCandySkeletonA": "Csupasz csont cukorka",
|
||||
"foodCandySkeletonA": "egy csupasz csont cukorka",
|
||||
"foodCandyBase": "Sima cukorka",
|
||||
"foodCandyBaseThe": "a sima cukorka",
|
||||
"foodCandyBaseA": "Sima cukorka",
|
||||
"foodCandyBaseA": "egy sima cukorka",
|
||||
"foodCandyCottonCandyBlue": "Kék savanyú cukorka",
|
||||
"foodCandyCottonCandyBlueThe": "a kék savanyú cukorka",
|
||||
"foodCandyCottonCandyBlueA": "Kék savanyú cukorka",
|
||||
"foodCandyCottonCandyBlueA": "egy kék savanyú cukorka",
|
||||
"foodCandyCottonCandyPink": "Rózsaszín savanyú cukorka",
|
||||
"foodCandyCottonCandyPinkThe": "a rózsaszín savanyú cukorka",
|
||||
"foodCandyCottonCandyPinkA": "Rózsaszín savanyú cukorka",
|
||||
"foodCandyCottonCandyPinkA": "egy rózsaszín savanyú cukorka",
|
||||
"foodCandyShade": "Csokis cukorka",
|
||||
"foodCandyShadeThe": "a csokis cukorka",
|
||||
"foodCandyShadeA": "Csokis cukorka",
|
||||
"foodCandyShadeA": "egy csokis cukorka",
|
||||
"foodCandyWhite": "Vaniliás cukorka",
|
||||
"foodCandyWhiteThe": "a vaníliás cukorka",
|
||||
"foodCandyWhiteA": "Vaníliás cukorka",
|
||||
"foodCandyWhiteA": "egy vaníliás cukorka",
|
||||
"foodCandyGolden": "Mézes cukorka",
|
||||
"foodCandyGoldenThe": "a mézes cukorka",
|
||||
"foodCandyGoldenA": "Mézes cukorka",
|
||||
"foodCandyGoldenA": "egy mézes cukorka",
|
||||
"foodCandyZombie": "Romlott cukorka",
|
||||
"foodCandyZombieThe": "a romlott cukorka",
|
||||
"foodCandyZombieA": "Romlott cukorka",
|
||||
"foodCandyZombieA": "egy romlott cukorka",
|
||||
"foodCandyDesert": "Homokos cukorka",
|
||||
"foodCandyDesertThe": "a homokos cukorka",
|
||||
"foodCandyDesertA": "Homokos cukorka",
|
||||
"foodCandyDesertA": "egy homokos cukorka",
|
||||
"foodCandyRed": "Fahéjas cukorka",
|
||||
"foodCandyRedThe": "a fahéjas cukorka",
|
||||
"foodCandyRedA": "Fahéjas cukorka",
|
||||
"foodCandyRedA": "egy fahéjas cukorka",
|
||||
"foodSaddleText": "Nyereg",
|
||||
"foodSaddleNotes": "Azonnal hátassá változtatja egy kisállatodat.",
|
||||
"foodSaddleSellWarningNote": "Hey! Ez aztán egy igazán hasznos tárgy! Tudod hogyan kell használni a nyerget a kisállataiddal?",
|
||||
@@ -399,5 +399,12 @@
|
||||
"questEggOtterText": "Vidra",
|
||||
"questEggOtterMountText": "Vidra",
|
||||
"questEggOtterAdjective": "egy álnok",
|
||||
"hatchingPotionJade": "Jáde"
|
||||
"hatchingPotionJade": "Jáde",
|
||||
"questEggAlpacaText": "Alpaka",
|
||||
"questEggAlpacaMountText": "Alpaka",
|
||||
"questEggAlpacaAdjective": "egy túlrakott",
|
||||
"hatchingPotionBalloon": "Léggömb",
|
||||
"wackyPotionAddlNotes": "Nem lehet hátassá fejleszteni, és küldetéses kisállat tojásra sem használható.",
|
||||
"hatchingPotionCryptid": "Kriptid",
|
||||
"wackyPotionNotes": "Öntsd ezt egy tojásra, és egy bolondos <%= potText(locale) %> kisállat fog kikelni belőle."
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"tier6": "6. támogatói szint (bajnok)",
|
||||
"tier7": "7. támogatói szint (legendás)",
|
||||
"tierModerator": "Moderátor",
|
||||
"tierStaff": "Staff",
|
||||
"tierStaff": "Munkatársak",
|
||||
"tierNPC": "NPC",
|
||||
"friend": "Barát",
|
||||
"elite": "Elit",
|
||||
@@ -16,7 +16,7 @@
|
||||
"legendary": "Legendás",
|
||||
"moderator": "Moderátor",
|
||||
"guardian": "Védelmező",
|
||||
"staff": "Habitica munkatárs",
|
||||
"staff": "Habitica csapat",
|
||||
"heroic": "Hősies",
|
||||
"modalContribAchievement": "Közreműködői kitüntetés!",
|
||||
"contribModal": "Király vagy, <%= name %>! Mostantól <%= level %>. szintű közreműködő vagy, amiért segítetted a Habiticát.",
|
||||
@@ -36,7 +36,7 @@
|
||||
"title": "Rang",
|
||||
"contributions": "Hozzájárulások",
|
||||
"admin": "Adminisztrátor",
|
||||
"gamemaster": "Játék mester (staff/moderátorok)",
|
||||
"gamemaster": "Játékmester (csapattag/moderátor)",
|
||||
"backerTier": "Támogatói szint",
|
||||
"playerTiers": "Játékos szintek",
|
||||
"tier": "Szint",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"androidFaqStillNeedHelp": "Ha olyan kérdésed van, amely nem szerepel ezen a listán vagy a [Wiki GYIK](https://habitica.fandom.com/wiki/FAQ) oldalon, használd a Súgó -> Tegyél fel egy kérdést űrlapot. Szívesen segítünk.",
|
||||
"webFaqStillNeedHelp": "Ha olyan kérdésed van, amely nem szerepel ezen a listán vagy a [Wiki GYIK](https://habitica.fandom.com/wiki/FAQ) oldalon, használd a Súgó -> Tegyél fel egy kérdést űrlapot. Szívesen segítünk.",
|
||||
"webFaqAnswer27": "A feladat színe vizuálisan mutatja a feladat értékét. Minden feladat sárgával kezd, ami semleges, a kék jobb, a piros pedig rosszabb. Íme, hogyan határozza meg minden feladattípus a feladat értékét:\n\nA szokások kékebbek vagy pirosabbak lesznek attól függően, hogy a plusz vagy mínusz gombra kattintasz. A pozitív és negatív szokások idővel sárgává válnak, ha nem végzed el őket. A kettős szokások csak a bemeneteid alapján változtatják a színüket.\n\nA napi teendők színe attól függ, hogy milyen gyakran végzed el őket: kékebbek lesznek, ha elvégzed őket vagy pirosabbak, ha kihagyod őket.\n\nA tennivalók fokozatosan egyre pirosabbak lesznek, minél tovább maradnak befejezetlenek.\n\nMinél pirosabb a feladat, annál több aranyat és tapasztalatot kapsz, ha teljesíted, szóval ne hagyd ki még a legnehezebb feladataidat sem!",
|
||||
"webFaqAnswer32": "Minden játékos harcos osztályban kezdi a játékot, amíg el nem éri a 10. szintet. Amint eléred a 10. szintet, választhatsz egy új osztályt vagy folytathatod tovább harcosként.\n\nMinden osztálynak eltérő felszerelése és képességei vannak. Ha nem szeretnél osztályt választani, választhatod a „Kilépés” lehetőséget. Ha ezt választod, később bármikor engedélyezheted az osztályrendszert a Beállításokban.\n\nHa 10. szint után szeretnéd megváltoztatni az osztályodat, ezt megteheted az újjászületés gömbjének használatával. Az újjászületés gömbje a piacon 6 gyémántért érhető el az 50. szinten vagy ingyen a 100. szinten.\n\nAlternatív megoldásként bármikor változtathatsz osztályt a Beállításokban 3 gyémántért. Ez nem állítja vissza a szintedet, mint az újjászületés gömbje, de lehetővé teszi, hogy újraoszd a fejlődésed során szerzett képességpontjaidat az új osztályodhoz igazítva.",
|
||||
"webFaqAnswer32": "Minden játékos a harcos kasztban kezdi a játékot, amíg el nem éri a 10. szintet. Amint eléred a 10. szintet, választhatsz egy új kasztot vagy folytathatod tovább harcosként.\n\nMinden kasztnak eltérő felszerelése és képességei vannak. Ha nem szeretnél kasztot választani, választhatod a „Kilépés” lehetőséget. Ha ezt választod, később bármikor engedélyezheted a kasztrendszert a Beállításokban.\n\nHa 10. szint után szeretnéd megváltoztatni a kasztodat, ezt megteheted az újjászületés gömbjének használatával. Az újjászületés gömbje a piacon 6 gyémántért érhető el az 50. szinten vagy ingyen a 100. szinten.\n\nAlternatív megoldásként bármikor változtathatsz kasztot a Beállításokban 3 gyémántért. Ez nem állítja vissza a szintedet, mint az újjászületés gömbje, de lehetővé teszi, hogy újraoszd a fejlődésed során szerzett képességpontjaidat az új kasztodhoz igazítva.",
|
||||
"commonQuestions": "Gyakori kérdések",
|
||||
"faqQuestion25": "Mik a különböző feladattípusok?",
|
||||
"faqQuestion26": "Melyek a mintafeladatok?",
|
||||
@@ -19,9 +19,9 @@
|
||||
"webFaqAnswer30": "Ha az életerőd nullára csökken, elveszítesz egy szintet, az összes aranyadat, valamint egy felszerelési tárgyat, amit aztán újra megvehetsz.",
|
||||
"faqQuestion31": "Miért vesztettem életerőt egy nem negatív feladat végrehajtásakor?",
|
||||
"webFaqAnswer31": "Ha teljesítettél egy feladatot, de mégis életerőt vesztettél, akkor valószínűleg egy késés történt a szerver és a különböző platformok közötti szinkronizálás során. Például, ha aranyat költesz, manát használsz vagy életerőt veszítesz a mobilalkalmazásban, majd egy feladatot teljesítesz a weboldalon, a szerver egyszerűen csak megerősíti az adatok szinkronizálását.",
|
||||
"faqQuestion32": "Hogyan választhatok osztályt?",
|
||||
"faqQuestion32": "Hogyan választhatok kasztot?",
|
||||
"faqQuestion33": "Mi az a kék sáv, ami a 10. szint után jelenik meg?",
|
||||
"webFaqAnswer33": "Miután feloldod az osztályrendszert, elérhetővé válnak a képességek is, amelyek manát igényelnek a használathoz. A manamennyiségedet az INT (intelligencia) tulajdonság határozza meg, és ezt a képességek vagy a felszerelések is befolyásolhatják.",
|
||||
"webFaqAnswer33": "Miután feloldod a kasztrendszert, elérhetővé válnak a képességek is, amelyek manát igényelnek a használathoz. A manamennyiségedet az INT (intelligencia) tulajdonság határozza meg, és ezt a képességek vagy a felszerelések is befolyásolhatják.",
|
||||
"faqQuestion34": "Milyen ételt szeret a kisállatom?",
|
||||
"webFaqAnswer34": "A kisállatok olyan ételeket kedvelnek, amelyek színben megegyeznek velük. Az alap kisállatok kivételt képeznek, de mindannyian ugyanazt az ételt szeretik. Az alábbiakban láthatod, melyik kisállat milyen ételt kedvel:\n\n * Az alap kisállatok a húst szeretik\n * A fehér kisállatok a tejet szeretik\n * A sivatagi kisállatok a burgonyát szeretik\n * A vörös kisállatok az epret szeretik\n * Az árny kisállatok a csokoládét szeretik\n * A csontváz kisállatok a halat szeretik\n * A zombi kisállatok a rohadt húst szeretik\n * A vattacukor rózsaszín kisállatok a rózsaszín vattacukrot szeretik\n * A vattacukor kék kisállatok a kék vattacukrot szeretik\n * Az arany kisállatok a mézet szeretik",
|
||||
"webFaqAnswer36": "Végtelen lehetőség áll rendelkezésre a Habitica avatárod megjelenésének testreszabására! Megváltoztathatod az avatárod testalkatát, a haj stílusát és színét, bőrszínét, akár szemüveget vagy mozgáskorlátozott segédeszközöket is hozzáadhatsz a menüben található \"Avatár testreszabása\" lehetőség kiválasztásával.\n\nAz avatárod testreszabása mobilalkalmazásokon:\n * A menüből válaszd ki az \"Avatár testreszabása\" lehetőséget\n\nAz avatárod testreszabása weboldalon:\n * A navigációs sávban található felhasználói menüből válaszd ki az \"Avatár testreszabása\" lehetőséget",
|
||||
@@ -32,9 +32,9 @@
|
||||
"faqQuestion37": "Miért nem jelenik meg a felszerelésem az avatáromon?",
|
||||
"webFaqAnswer37": "Ellenőrizd, hogy a Jelmez opció be van-e kapcsolva. Ha az avatárod jelmezt visel, akkor az a felszerelési készlet jelenik meg, nem a harci felszerelésed.\n\nA jelmez be- és kikapcsolása mobilalkalmazásokon:\n * A menüből válaszd ki a \"Felszerelés\" lehetőséget és keresd meg a Jelmez kapcsolót\n\nA jelmez be- és kikapcsolása weboldalon:\n * A Leltár menüből válaszd ki a \"Felszerelés\" lehetőséget, majd a felszerelés fiókban keresd meg a Jelmez használata kapcsolót a Jelmez fülön",
|
||||
"faqQuestion38": "Miért nem tudok bizonyos termékeket megvásárolni?",
|
||||
"webFaqAnswer38": "Az új Habitica-játékosok csak az alap harcos osztály felszerelését vásárolhatják meg. A játékosoknak sorrendben kell megvásárolniuk a felszereléseket, hogy feloldják a következő darabot.\n\nA felszerelések nagy része osztály specifikus, ami azt jelenti, hogy egy játékos csak az aktuális osztályához tartozó felszerelést vásárolhatja meg.",
|
||||
"webFaqAnswer38": "Az új Habitica-játékosok csak az alap harcos kaszt felszerelését vásárolhatják meg. A játékosoknak sorrendben kell megvásárolniuk a felszereléseket, hogy feloldják a következő darabot.\n\nA felszerelések nagy része kaszt specifikus, ami azt jelenti, hogy egy játékos csak az aktuális kasztjához tartozó felszerelést vásárolhatja meg.",
|
||||
"faqQuestion39": "Hol kaphatok még több felszerelést?",
|
||||
"webFaqAnswer39": "Ha több felszerelést szeretnél szerezni, előfizető lehetsz a Habiticában, próbálkozhatsz a Megbűvölt komód szerencsejátékával vagy elszórhatod az aranyadat az egyik Habitica Nagy gála során.\n\nA Habitica előfizetők minden hónapban egy különleges, exkluzív felszerelés készletet kapnak, valamint misztikus homokórákat, amikkel korábbi felszerelés készleteket vásárolhatnak az Időutazók boltjában.\n\nA Megbűvölt komód kincsesládád a Jutalmak között több mint 350 darab felszerelést rejt! 100 aranyért esélyed van különleges felszerelésekre, kisállatod hátassá neveléséhez szükséges ételre vagy tapasztalati pontokra a szintlépéshez!\n\nA négy évszakos Nagy gála során vadonatúj osztályspecifikus felszerelések válnak elérhetővé aranyért, míg a korábbi Gála-készleteket gyémántokért vásárolhatod meg.",
|
||||
"webFaqAnswer39": "Ha több felszerelést szeretnél szerezni, előfizető lehetsz a Habiticában, próbálkozhatsz a Megbűvölt komód szerencsejátékával vagy elszórhatod az aranyadat az egyik Habitica Nagy gála során.\n\nA Habitica előfizetők minden hónapban egy különleges, exkluzív felszerelés készletet kapnak, valamint misztikus homokórákat, amikkel korábbi felszerelés készleteket vásárolhatnak az Időutazók boltjában.\n\nA Megbűvölt komód kincsesládád a Jutalmak között több mint 350 darab felszerelést rejt! 100 aranyért esélyed van különleges felszerelésekre, kisállatod hátassá neveléséhez szükséges ételre vagy tapasztalati pontokra a szintlépéshez!\n\nA négy évszakos Nagy gála során vadonatúj kaszt specifikus felszerelések válnak elérhetővé aranyért, míg a korábbi Gála-készleteket gyémántokért vásárolhatod meg.",
|
||||
"faqQuestion40": "Mik azok a gyémántok és hogyan szerezhetem meg őket?",
|
||||
"webFaqAnswer40": "A gyémántok a Habitica alkalmazáson belüli fizető valutája, amelyet felszerelések, avatár testreszabások, hátterek és egyéb dolgok vásárlására használhatsz! A gyémántokat csomagokban vásárolhatod meg vagy arannyal is beszerezheted, ha Habitica-előfizető vagy. Ezen kívül nyerhetsz is gyémántokat, ha egy kihívás győzteseként választanak ki.",
|
||||
"faqQuestion41": "Mik azok a misztikus homokórák és hogyan szerezhetem meg őket?",
|
||||
@@ -61,20 +61,20 @@
|
||||
"faqQuestion52": "Leállíthatom a csapat keresését?",
|
||||
"webFaqAnswer52": "Ha már nem szeretnél csapatot keresni, bármikor leállíthatod a keresést.\n\nA csapatkeresés leállítása a mobilalkalmazásokban:\n * A menüből válaszd a \"Csapat\" lehetőséget, majd koppints a képernyő alján található \"Kilépés\" gombra.\n\nA csapatkeresés leállítása a Habitica weboldalán:\n * A navigációs menüből válaszd a \"Csapat\" lehetőséget, majd kattints a felugró ablakban a \"Kilépés\" gombra.",
|
||||
"faqQuestion53": "Van egy csapatom, hogyan találhatok több tagot?",
|
||||
"webFaqAnswer53": "Ha a Habitica weboldalát használod, válaszd a \"Tagok keresése\" lehetőséget a Csapat legördülő menüből. Ha az Android alkalmazást használod, koppints a \"Tagok keresése\" gombra a csapatod taglistája felett. Ez megjeleníti azon játékosok listáját, akik aktívan csapatot keresnek és meghívhatóak a csatlakozásra.\n\nAnnak érdekében, hogy egy megfelelő játékost találj a csapatodhoz, láthatsz néhány információt, például nyelvet, osztályt, szintet és azt, hogy hány napja használják a Habiticát. Ha szeretnél beszélgetni valakivel, mielőtt meghívnád, megnézheted a profilját és üzenetet küldhetsz neki.",
|
||||
"webFaqAnswer53": "Ha a Habitica weboldalát használod, válaszd a \"Tagok keresése\" lehetőséget a Csapat legördülő menüből. Ha az Android alkalmazást használod, koppints a \"Tagok keresése\" gombra a csapatod taglistája felett. Ez megjeleníti azon játékosok listáját, akik aktívan csapatot keresnek és meghívhatóak a csatlakozásra.\n\nAnnak érdekében, hogy egy megfelelő játékost találj a csapatodhoz, láthatsz néhány információt, például nyelvet, kasztot, szintet és azt, hogy hány napja használják a Habiticát. Ha szeretnél beszélgetni valakivel, mielőtt meghívnád, megnézheted a profilját és üzenetet küldhetsz neki.",
|
||||
"faqQuestion54": "Hány játékost hívhatok meg a csapatomba?",
|
||||
"webFaqAnswer54": "A csapatok maximális létszáma 30, a minimum pedig 1 tag. A függőben lévő meghívók is beleszámítanak a tagok számába. Például, ha 29 tag van a csapatban és 1 függőben lévő meghívó, akkor ez 30 tagnak számít. Egy függőben lévő meghívó törléséhez a meghívott játékosnak el kell fogadnia vagy el kell utasítania a meghívást vagy a csapatvezetőnek törölnie kell a meghívót.",
|
||||
"faqQuestion55": "Meghívhatok valakit, akit már ismerek?",
|
||||
"parties": "Csapatok",
|
||||
"faqQuestion67": "Mik az osztályok a Habiticában?",
|
||||
"webFaqAnswer67": "Az osztályok különböző szerepek, amelyeket a karaktered betölthet. Minden osztály sajátos előnyöket és képességeket biztosít, amelyeket szintlépés során szerezhetsz meg. Ezek a képességek segíthetnek a feladataid kezelésében vagy hozzájárulhatnak a csapatod küldetéseinek teljesítéséhez.\n\nAz osztályod meghatározza azt is, hogy milyen felszerelések válnak elérhetővé számodra a Jutalmak között, a Piacon és a Szezonális boltban.\n\nÍme egy összefoglaló az egyes osztályokról, hogy könnyebben kiválaszthasd a játékstílusodhoz legjobban illőt:\n#### **Harcos**\n* A harcosok nagy sebzést okoznak az ellenségeknek, és magas kritikus találati eséllyel rendelkeznek a feladatok teljesítésekor, ami extra tapasztalatpontot és aranyat ad.\n* Az erő az elsődleges tulajdonságuk, amely növeli a sebzésüket.\n* A bátorság a másodlagos tulajdonságuk, amely csökkenti a kapott sebzést.\n* A harcosok képességei növelik csapattársaik bátorságát és erejét.\n* Válaszd a harcost, ha szeretsz ellenségekkel küzdeni, de szeretnél némi védelmet is, ha néha elmulasztasz egy feladatot.\n#### **Gyógyító**\n* A gyógyítók magas védelmet élveznek, és képesek gyógyítani magukat és csapattársaikat.\n* A bátorság az elsődleges tulajdonságuk, amely növeli a gyógyításaik hatékonyságát és csökkenti a kapott sebzést.\n* Az intelligencia a másodlagos tulajdonságuk, amely növeli a manájukat és a tapasztalatpontjaikat.\n* A gyógyítók képességei csökkentik a feladataik negatív hatásait, valamint növelik csapattársaik bátorságát.\n* Válaszd a gyógyítót, ha gyakran hagysz ki feladatokat, és szükséged van arra, hogy meggyógyítsd magad vagy a csapattagjaidat. A gyógyítók emellett gyorsan szintet lépnek.\n#### **Mágus**\n* A mágusok gyorsan szintet lépnek, rengeteg manát szereznek, és jelentős sebzést okoznak a küldetések ellenségeinek.\n* Az intelligencia az elsődleges tulajdonságuk, amely növeli a manájukat és a tapasztalatpontjaikat.\n* Az észlelés a másodlagos tulajdonságuk, amely növeli az arany- és tárgyleleteik számát.\n* A mágusok képességei befagyasztják a feladatcsíkjaikat, visszaállítják csapattársaik manáját és növelik az intelligenciájukat.\n* Válaszd a mágust, ha motivál a gyors szintlépés, és szeretnéd erősen támogatni a csapatodat a ellenség-küldetések során.\n#### **Tolvaj**\n* A tolvajok kapják a legtöbb tárgyleletet és aranyat a feladatok teljesítéséből, emellett magas kritikus találati eséllyel rendelkeznek, így még több tapasztalatpontot és aranyat szerezhetnek.\n* Az észlelés az elsődleges tulajdonságuk, amely növeli az arany- és tárgyleleteik számát.\n* Az erő a másodlagos tulajdonságuk, amely növeli a sebzésüket.\n* A tolvajok képességei segítenek elkerülni a kihagyott napi teendők negatív hatásait, aranyat lopni és növelik csapattársaik észlelését.\n* Válaszd a tolvajt, ha leginkább a jutalmak motiválnak.",
|
||||
"faqQuestion67": "Mik a kasztok a Habiticában?",
|
||||
"webFaqAnswer67": "A kasztok különböző szerepek, amelyeket a karaktered betölthet. Minden kaszt sajátos előnyöket és képességeket biztosít, amelyeket szintlépés során szerezhetsz meg. Ezek a képességek segíthetnek a feladataid kezelésében vagy hozzájárulhatnak a csapatod küldetéseinek teljesítéséhez.\n\nA kasztod meghatározza azt is, hogy milyen felszerelések válnak elérhetővé számodra a Jutalmak között, a Piacon és a Szezonális boltban.\n\nÍme egy összefoglaló az egyes kasztokról, hogy könnyebben kiválaszthasd a játékstílusodhoz legjobban illőt:\n#### **Harcos**\n* A harcosok nagy sebzést okoznak az ellenségeknek, és magas kritikus találati eséllyel rendelkeznek a feladatok teljesítésekor, ami extra tapasztalatpontot és aranyat ad.\n* Az erő az elsődleges tulajdonságuk, amely növeli a sebzésüket.\n* A bátorság a másodlagos tulajdonságuk, amely csökkenti a kapott sebzést.\n* A harcosok képességei növelik csapattársaik bátorságát és erejét.\n* Válaszd a harcost, ha szeretsz ellenségekkel küzdeni, de szeretnél némi védelmet is, ha néha elmulasztasz egy feladatot.\n#### **Gyógyító**\n* A gyógyítók magas védelmet élveznek, és képesek gyógyítani magukat és csapattársaikat.\n* A bátorság az elsődleges tulajdonságuk, amely növeli a gyógyításaik hatékonyságát és csökkenti a kapott sebzést.\n* Az intelligencia a másodlagos tulajdonságuk, amely növeli a manájukat és a tapasztalatpontjaikat.\n* A gyógyítók képességei csökkentik a feladataik negatív hatásait, valamint növelik csapattársaik bátorságát.\n* Válaszd a gyógyítót, ha gyakran hagysz ki feladatokat, és szükséged van arra, hogy meggyógyítsd magad vagy a csapattagjaidat. A gyógyítók emellett gyorsan szintet lépnek.\n#### **Mágus**\n* A mágusok gyorsan szintet lépnek, rengeteg manát szereznek, és jelentős sebzést okoznak a küldetések ellenségeinek.\n* Az intelligencia az elsődleges tulajdonságuk, amely növeli a manájukat és a tapasztalatpontjaikat.\n* Az észlelés a másodlagos tulajdonságuk, amely növeli az arany- és tárgyleleteik számát.\n* A mágusok képességei befagyasztják a feladatcsíkjaikat, visszaállítják csapattársaik manáját és növelik az intelligenciájukat.\n* Válaszd a mágust, ha motivál a gyors szintlépés, és szeretnéd erősen támogatni a csapatodat a ellenség-küldetések során.\n#### **Tolvaj**\n* A tolvajok kapják a legtöbb tárgyleletet és aranyat a feladatok teljesítéséből, emellett magas kritikus találati eséllyel rendelkeznek, így még több tapasztalatpontot és aranyat szerezhetnek.\n* Az észlelés az elsődleges tulajdonságuk, amely növeli az arany- és tárgyleleteik számát.\n* Az erő a másodlagos tulajdonságuk, amely növeli a sebzésüket.\n* A tolvajok képességei segítenek elkerülni a kihagyott napi teendők negatív hatásait, aranyat lopni és növelik csapattársaik észlelését.\n* Válaszd a tolvajt, ha leginkább a jutalmak motiválnak.",
|
||||
"webFaqAnswer55": "Igen! Ha már ismered egy Habitica játékos felhasználónevét vagy e-mail címét, meghívhatod őt a csapatodba. Íme, hogyan küldhetsz meghívást a különböző platformokon:\n\nMeghívó küldése a mobilalkalmazásokban:\n 1. A menüből válaszd a \"Csapat\" lehetőséget és görgess le a Tagok szekcióhoz\n 2. Koppints a \"Tagok keresése\" gombra, majd válts a \"Meghívás\" lapra\n 3. Add meg azoknak a játékosoknak a felhasználónevét vagy e-mail címét, akiket meghívni szeretnél, majd kattints a \"Meghívó küldése\" gombra\n\nMeghívó küldése a weboldalon:\n 1. Navigálj a csapatodhoz és kattints a \"Meghívás a csapatba\" gombra\n 2. Add meg azoknak a játékosoknak a felhasználónevét vagy e-mail címét, akiket meg szeretnél hívni, majd kattints a \"Meghívók küldése\" gombra",
|
||||
"faqQuestion56": "Hogyan tudom visszavonni a függőben lévő meghívást a csapatomba?",
|
||||
"webFaqAnswer56": "Függőben lévő meghívó visszavonása a mobilalkalmazásokban:\n 1. A csapatod megtekintésekor görgess le a taglista aljáig\n 2. Keress rá arra a játékosra, akinek a meghívóját vissza szeretnéd vonni és koppints a \"Meghívó visszavonása\" gombra.\n\nFüggőben lévő meghívó visszavonása a weboldalon:\n 1. Navigálj a csapatod taglistájához és válts a \"Meghívók\" lapra\n 2. Vidd az egeret annak a játékosnak a neve fölé, akinek a meghívását törölni szeretnéd\n 3. Kattints a három pontra és válaszd a \"Meghívó visszavonása\" lehetőséget",
|
||||
"faqQuestion57": "Hogyan állíthatom le a nemkívánatos meghívókat?",
|
||||
"webFaqAnswer57": "Amint csatlakozol egy csapathoz, többé nem fogsz meghívókat kapni. Ha meg szeretnéd akadályozni, hogy egy adott játékos meghívókat küldjön vagy további üzeneteket írjon, látogass el a profiljára és kattints a \"Letiltás\" gombra. Mobil eszközön a profiljukon koppints a jobb felső sarokban található három pontra, majd válaszd a \"Letiltás\" lehetőséget.\n\nHa olyan helyzetbe kerülsz, ahol úgy gondolod, hogy egy másik játékos megsértette a Közösségi Irányelveinket a nevével, profiljával vagy egy üzenetével, kérlek, jelentsd az üzenetet vagy írj nekünk az admin@habitica.com e-mail címre.",
|
||||
"faqQuestion58": "Hogyan szűrhetem a csapatot kereső játékosok listáját?",
|
||||
"webFaqAnswer58": "Jelenleg nincs lehetőség a csapatot kereső játékosok listájának szűrésére. Azonban terveink szerint a jövőben bevezetünk szűrőket, például osztály, szint és nyelv szerint.",
|
||||
"webFaqAnswer58": "Jelenleg nincs lehetőség a csapatot kereső játékosok listájának szűrésére. Azonban terveink szerint a jövőben bevezetünk szűrőket, például kaszt, szint és nyelv szerint.",
|
||||
"groupPlan": "Csoportos csomagok",
|
||||
"webFaqAnswer59": "A Habitica Csoportos csomagok közös élményt nyújtanak, mivel lehetővé teszik a tagok számára, hogy egyszerűen hozzáadhassanak, kioszthassanak és teljesíthessenek feladatokat egy közös feladatlistán. Olyan funkciókkal, mint a tagi szerepek, az állapot nézet és a feladatkiosztás, a Csoportos csomagok tökéletesek családok vagy munkatársi csapatok számára, akik közös célokat szeretnének elérni. Emellett remek módja annak is, hogy motiváljátok egymást a szörnyek elleni harcban és az életetek jobbá tételében.",
|
||||
"faqQuestion59": "Mi az a Csoportos csomag?",
|
||||
@@ -146,7 +146,7 @@
|
||||
"contentAnswer03": "A hátterek, hajszínek, frizurák, bőrszínek, állatfülek, állatfarkak és ingek mostantól megvásárolhatók a vadonatúj <strong>Testreszabás boltban!</strong>",
|
||||
"contentAnswer10": "A Habitica 2013 óta létezik (wow!), és az évek során több ezer gyűjthető tárgyat adtunk ki. Ez elsöprő lehet, különösen az új játékosok számára. Biztosítani szeretnénk, hogy bemutassunk mindent, amit kínálunk és hogy a korábbi időszakokban kiadott kiváló tárgyak ne maradjanak észrevétlenül.",
|
||||
"contentAnswer12": "A játékosok könnyebben tudják majd kiegészíteni gyűjteményüket, ha a tárgyak kiszámíthatóbb ütemezés szerint jelennek meg.",
|
||||
"contentAnswer01": "<strong>A Nagy gálák meghosszabbodnak</strong>, és az egész szezon alatt elérhetők lesznek, beleértve az összes osztály felszerelést, avatár testreszabást és egyéb jutalmakat.",
|
||||
"contentAnswer01": "<strong>A Nagy gálák meghosszabbodnak</strong>, és az egész szezon alatt elérhetők lesznek, beleértve az összes kaszt felszerelést, avatár testreszabást és egyéb jutalmakat.",
|
||||
"contentQuestion2": "Hogyan változnak a Nagy gálák?",
|
||||
"contentAnswer20": "A változtatások hatályba lépése után minden nap aktív lesz egy Nagy gála az év minden napján.",
|
||||
"contentAnswer200": "<strong>Nyári csobbanás</strong>: június 21-től szeptember 20-ig",
|
||||
@@ -165,7 +165,7 @@
|
||||
"contentQuestion6": "Mi történik a többi szezonális eseménnyel, mint a Habitoween, április elseje és a születésnap?",
|
||||
"contentAnswer61": "A Valentin-napi és az Újévi kártyák meghatározott dátumokon jelennek meg.",
|
||||
"contentAnswer62": "A Valentin-napi varázslatos keltetőfőzetek mostantól bekerültek a havi ütemtervbe.",
|
||||
"contentAnswer63": "A vicces kisállatok április nagy részében továbbra is elérhetőek maradnak.",
|
||||
"contentAnswer63": "A bolondos kisállatok április nagy részében továbbra is elérhetőek maradnak.",
|
||||
"subscriptionDetail002": "Az előfizetőknek többé nem kell megvárniuk az ismétlődő fizetésük utáni hónapot, hogy megkapják a misztikus homokórákat.",
|
||||
"subscriptionDetail003": "Minden új előfizető azonnal kap 1 misztikus homokórát a vásárlás után. Ez az adott hónap misztikus homokórájának számít.",
|
||||
"subscriptionDetail011": "Az aktív, 12 hónapos ismétlődő előfizetéssel rendelkező játékosok ezt a bónuszt azon a napon kapják meg, amikor ezek a változások életbe lépnek.",
|
||||
@@ -181,7 +181,7 @@
|
||||
"contentAnswer302": "<strong>Minden hónap 14. napja:</strong> A kisállat küldetések, a főzet küldetések és a küldetés csomagok váltakoznak, amelyek a Küldetés boltban érhetőek el.",
|
||||
"contentAnswer41": "Mik lesznek ezek az új elemek?",
|
||||
"subscriptionDetail01": "Az új, 12 hónapos ismétlődő előfizetések egy egyszeri bónuszként további 12 misztikus homokórát kapnak a vásárláskor.",
|
||||
"contentAnswer21": "Minden Gála-ajándék (osztályfelszerelések, bőr- és hajszínek, átalakító tárgyak, szezonális küldetések) a Gála kezdetekor jelenik meg, és az egész Gála ideje alatt elérhető lesz.",
|
||||
"contentAnswer21": "Minden Gála-ajándék (kaszt felszerelések, bőr- és hajszínek, átalakító tárgyak, szezonális küldetések) a Gála kezdetekor jelenik meg, és az egész Gála ideje alatt elérhető lesz.",
|
||||
"contentAnswer410": "Maradj velünk, hogy megtudd! Az új elemek közül sokat sürgettek a játékosok és az év során fokozatosan jelennek meg.",
|
||||
"subscriptionDetail010": "Ez a bónusz az 1 havi misztikus homokórán felül jár, amelyet minden új előfizető megkap a kezdeti vásárlás után.",
|
||||
"contentAnswer51": "A birtokolt testreszabások (mind az alap, mind a megvásárolt) továbbra is elérhetők lesznek a jelenlegi avatár testreszabási felületen.",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"companyAbout": "Hogyan működik",
|
||||
"companyBlog": "Blog",
|
||||
"companyContribute": "Közreműködés a Habiticában",
|
||||
"companyDonate": "Adományozás a Habiticának",
|
||||
"companyDonate": "Habitica támogatása",
|
||||
"forgotPassword": "Elfelejtetted a jelszavad?",
|
||||
"emailNewPass": "Jelszó visszaállító link küldése e-mailben",
|
||||
"forgotPasswordSteps": "Add meg a felhasználóneved vagy az e-mail címed, amivel regisztráltál a Habiticára.",
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"set": "Szett",
|
||||
"equipmentType": "Típus",
|
||||
"klass": "Osztály",
|
||||
"klass": "Kaszt",
|
||||
"groupBy": "Csoportosítás: <%= type %>",
|
||||
"classBonus": "(Ez a tárgy illik az osztályodhoz, így 1,5-szeres tulajdonság szorzót kap.)",
|
||||
"classArmor": "Osztálypáncél",
|
||||
"classBonus": "(Ez a tárgy illik a kasztodhoz, így 1,5-szeres tulajdonság szorzót kap.)",
|
||||
"classArmor": "Kaszt páncél",
|
||||
"featuredset": "Kiemelt szett: <%= name %>",
|
||||
"mysterySets": "Rejtélyes szettek",
|
||||
"gearNotOwned": "Nem rendelkezel ezzel a tárggyal.",
|
||||
"noGearItemsOfType": "Egyik ilyen tárggyal sem rendelkezel.",
|
||||
"classLockedItem": "Ez a tárgy csak egy adott osztály számára érhető el. 10-es szinttől megváltoztathatod az osztályodat a Felhasználó ikon > Beállítások > Karakterfejlődés menüpont alatt!",
|
||||
"noGearItemsOfType": "Nincs ilyen tárgy a birtokodban.",
|
||||
"classLockedItem": "Ez a tárgy csak egy adott kaszt számára érhető el. 10-es szinttől megváltoztathatod a kasztodat Felhasználó ikon > Beállítások > Karakterfejlődés menüpont alatt!",
|
||||
"tierLockedItem": "Ez a tárgy csak akkor érhető el, ha már megvetted az előzőket a sorozatban. Haladj tovább a fejlődésben!",
|
||||
"sortByType": "Típus",
|
||||
"sortByPrice": "Ár",
|
||||
@@ -18,7 +18,7 @@
|
||||
"sortByStr": "ERŐ",
|
||||
"sortByInt": "INT",
|
||||
"weapon": "fegyver",
|
||||
"weaponCapitalized": "Fő (jobbkezes) felszerelés",
|
||||
"weaponCapitalized": "Jobbkezes felszerelés",
|
||||
"weaponBase0Text": "Nincs fegyver",
|
||||
"weaponBase0Notes": "Nincs fegyver.",
|
||||
"weaponWarrior0Text": "Gyakorlókard",
|
||||
@@ -87,8 +87,8 @@
|
||||
"weaponSpecial3Notes": "Értekezletek, szörnyek, betegségek: megoldva! Zúzz! Növeli az erődet, az intelligenciádat és a szívósságodat <%= attrs %> ponttal.",
|
||||
"weaponSpecialCriticalText": "Brutális programhiba-zúzó kalapács",
|
||||
"weaponSpecialCriticalNotes": "Ez a bajnok legyőzött egy jelentős GitHub ellenséget, akivel szemben már sok harcos elesett. Ez a kalapács, amelyet egy programhiba maradványaiból hoztak létre, képes arra hogy kritikus sebzést okozzon. Növeli az erődet és az észlelésedet <%= attrs %> ponttal.",
|
||||
"weaponSpecialTakeThisText": "\"Take This\" kard",
|
||||
"weaponSpecialTakeThisNotes": "Ezt a kardot azért érdemelted ki, mert részt vettél a „Take This” által szponzorált kihívásban. Gratulálunk! Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"weaponSpecialTakeThisText": "'Take This' kard",
|
||||
"weaponSpecialTakeThisNotes": "Ezt a kardot azért érdemelted ki, mert részt vettél a 'Take This' által szponzorált kihívásban. Gratulálunk! Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"weaponSpecialTridentOfCrashingTidesText": "Az összecsapó hullámok szigonya",
|
||||
"weaponSpecialTridentOfCrashingTidesNotes": "Felruház a képeséggel hogy halakat irányíthass, valamint a feladataid több sebzést fognak okozni. Növeli az intelligenciádat <%= int %> ponttal.",
|
||||
"weaponSpecialTaskwoodsLanternText": "Leckerdői lámpás",
|
||||
@@ -112,7 +112,7 @@
|
||||
"weaponSpecialTachiText": "Tachi",
|
||||
"weaponSpecialTachiNotes": "Ezzel a könnyű és ívelt karddal darabokra tudod szabdalni a feladataidat! Növeli az erődet <%= str %> ponttal.",
|
||||
"weaponSpecialAetherCrystalsText": "Éterkristályok",
|
||||
"weaponSpecialAetherCrystalsNotes": "Ezek a hevederek és kristályok egyszer az elveszett kasztmester birtokában voltak. Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"weaponSpecialAetherCrystalsNotes": "Ezek a hevederek és kristályok egyszer az elveszett nagymester birtokában voltak. Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"weaponSpecialYetiText": "Jetiszelídítő dárda",
|
||||
"weaponSpecialYetiNotes": "Ez a dárda lehetővé teszi felhasználójának, hogy bármilyen yetit irányítson. Növeli az erődet <%= str %> ponttal. Limitált kiadású 2013-2014-es téli felszerelés.",
|
||||
"weaponSpecialSkiText": "Sí-gyilkos bot",
|
||||
@@ -156,7 +156,7 @@
|
||||
"weaponSpecialSpring2015RogueText": "Robbanó petárda",
|
||||
"weaponSpecialSpring2015RogueNotes": "Ne hagyd, hogy a hangja becsapjon - ezek a robbanószerek igazán odavágnak. Növeli az erődet <%= str %> ponttal. Limitált kiadású 2015-ös tavaszi felszerelés.",
|
||||
"weaponSpecialSpring2015WarriorText": "Csont bunkó",
|
||||
"weaponSpecialSpring2015WarriorNotes": "Egy igazi csont bunkó igazán ádáz kutyáknak ami semmiképpen sem egy rágó játék amit a szezonális varázslónőtől kaptál mert, ki a jó kutyus? Ki a jó kutyuuuus?? Te vagy! Te vagy a jó kutyus!!! Növeli az erődet <%= str %> ponttal. Limitált kiadású 2015-ös tavaszi felszerelés.",
|
||||
"weaponSpecialSpring2015WarriorNotes": "Egy igazi csont bunkó igazán ádáz kutyáknak ami semmiképpen sem egy rágó játék amit a szezonális boszorkánytól kaptál mert, ki a jó kutyus? Ki a jó kutyuuuus?? Te vagy! Te vagy a jó kutyus!!! Növeli az erődet <%= str %> ponttal. Limitált kiadású 2015-ös tavaszi felszerelés.",
|
||||
"weaponSpecialSpring2015MageText": "A bűvész varázspálcája",
|
||||
"weaponSpecialSpring2015MageNotes": "Varázsolj elő egy répát ezzel a díszes varázspálcával. Növeli az intelligenciádat <%= int %>ponttal és az észlelésedet <%= per %> ponttal. Limitált kiadású 2015-ös tavaszi felszerelés.",
|
||||
"weaponSpecialSpring2015HealerText": "Macska csörgő",
|
||||
@@ -423,7 +423,7 @@
|
||||
"armorSpecial1Notes": "Fáradhatatlan ereje ellenállóvá teszi viselőjét a hétköznapi kellemetlenségekkel szemben. Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"armorSpecial2Text": "Jean Chalard nemesi tunikája",
|
||||
"armorSpecial2Notes": "Igazán pihepuha leszel tőle! Növeli az intelligenciádat és a szívósságodat <%= attrs %> ponttal.",
|
||||
"armorSpecialTakeThisText": "\"Take This\" páncél",
|
||||
"armorSpecialTakeThisText": "'Take This' páncél",
|
||||
"armorSpecialTakeThisNotes": "Ezt a páncélt azért érdemelted ki, mert részt vettél a 'Take This' által szponzorált kihívásban. Gratulálunk! Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"armorSpecialFinnedOceanicArmorText": "Uszonyos óceáni páncél",
|
||||
"armorSpecialFinnedOceanicArmorNotes": "Bár törékeny, ez a páncél olyan érinthetetlenné teszi a bőrödet, mint egy tűzkorall. Növeli az erődet <%= str %> ponttal.",
|
||||
@@ -865,7 +865,7 @@
|
||||
"headSpecial1Notes": "Azok fejét koronázza, akik példát mutatnak másoknak. Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"headSpecial2Text": "Névtelen sisak",
|
||||
"headSpecial2Notes": "Egy testamentum azoknak, akik segítséget nyújtanak, miközben semmit sem kérnek cserébe. Növeli az intelligenciádat és az erődet <%= attrs %> ponttal.",
|
||||
"headSpecialTakeThisText": "\"Take This\" sisak",
|
||||
"headSpecialTakeThisText": "'Take This' sisak",
|
||||
"headSpecialTakeThisNotes": "Ezt a sisakot azért érdemelted ki, mert részt vettél a 'Take This' által szponzorált kihívásban. Gratulálunk! Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"headSpecialFireCoralCircletText": "Tűzkorall diadém",
|
||||
"headSpecialFireCoralCircletNotes": "Ez a diadém, amit a Habitica legkiválóbb alkimistái készítettek, lehetővé teszi hogy a víz alatt lélegezz és kincseket keress! Növeli az észlelésedet <%= per %> ponttal.",
|
||||
@@ -1267,9 +1267,9 @@
|
||||
"headArmoireJeweledArcherHelmNotes": "Ez a díszes sisak nemcsak látványos, hanem rendkívül könnyű és erős is. Növeli az intelligenciádat <%= int %> ponttal. Megbűvölt komód: Drágaköves íjász szett (1/3 tárgy).",
|
||||
"headArmoireVeilOfSpadesText": "Pikk ász fátyol",
|
||||
"headArmoireVeilOfSpadesNotes": "Egy árnyas és titokzatos fátyol, amely fokozza a lopakodási képességed. Növeli az észlelésedet <%= per %> ponttal. Megbűvölt komód: Pikk ász szett (1/3 tárgy).",
|
||||
"offhand": "kiegészítő felszerelés",
|
||||
"shieldBase0Text": "Nincs kiegészítő felszerelés",
|
||||
"shieldBase0Notes": "Nincs pajzs vagy kiegészítő felszerelés.",
|
||||
"offhand": "balkezes felszerelés",
|
||||
"shieldBase0Text": "Nincs balkezes felszerelés",
|
||||
"shieldBase0Notes": "Nincs pajzs vagy balkezes felszerelés.",
|
||||
"shieldWarrior1Text": "Fapajzs",
|
||||
"shieldWarrior1Notes": "Vastag fából készült kerek pajzs . Növeli a szívósságodat <%= con %> ponttal.",
|
||||
"shieldWarrior2Text": "Kis fapajzs",
|
||||
@@ -1294,8 +1294,8 @@
|
||||
"shieldSpecial0Notes": "A halál fátylán túlra lát, és amit ott talál, azt ellenségeid félelmére tárja eléjük. Növeli az észlelésedet <%= per %> ponttal.",
|
||||
"shieldSpecial1Text": "Kristálypajzs",
|
||||
"shieldSpecial1Notes": "Nyilakat tör össze, és visszaveri a kétkedők szavait. Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"shieldSpecialTakeThisText": "\"Take This\" pajzs",
|
||||
"shieldSpecialTakeThisNotes": "Ezt a pajzsot a Take This által szervezett kihívásban való részvétellel szerezted meg. Gratulálunk! Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"shieldSpecialTakeThisText": "'Take This' pajzs",
|
||||
"shieldSpecialTakeThisNotes": "Ezt a pajzsot a 'Take This' által szervezett kihívásban való részvétellel szerezted meg. Gratulálunk! Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"shieldSpecialGoldenknightText": "Mustaine mérföldkő zúzó tüskés buzogánya",
|
||||
"shieldSpecialGoldenknightNotes": "Találkozók, szörnyek, fásultság: mind kezelve! Csapj le! Növeli az erődet, az intelligenciádat és a szívósságodat <%= attrs %> ponttal.",
|
||||
"shieldSpecialMoonpearlShieldText": "Holdgyöngy pajzs",
|
||||
@@ -1399,7 +1399,7 @@
|
||||
"shieldSpecialWinter2019HealerText": "Megbűvölt jégkristály",
|
||||
"shieldSpecialWinter2019HealerNotes": "A vékony jég megtörhet, de ezek a tökéletes kristályok minden támadást kivédenek. Növeli a szívósságodat <%= con %> ponttal. Limitált kiadású 2018-2019-es téli felszerelés.",
|
||||
"shieldMystery201601Text": "Döntés pusztító",
|
||||
"shieldMystery201601Notes": "Ez a penge arra használható hogy minden figyelemeleterlést elhárítson. Nem jár semmilyen előnnyel. 2016 januári előfizetői tárgy.",
|
||||
"shieldMystery201601Notes": "Ezzel a pengével elháríthatod az összes zavaró tényezőt. Nem jár semmilyen előnnyel. 2016 januári előfizetői tárgy.",
|
||||
"shieldMystery201701Text": "Időfagyasztó pajzs",
|
||||
"shieldMystery201701Notes": "Megállítja az időt, hogy sikeresen elvégezd a feladataidat! Nem jár semmilyen előnnyel. 2017 januári előfizetői tárgy.",
|
||||
"shieldMystery201708Text": "Láva pajzs",
|
||||
@@ -1407,11 +1407,11 @@
|
||||
"shieldMystery201709Text": "Varázsló kézikönyv",
|
||||
"shieldMystery201709Notes": "Ez a könyv segítséget nyújt a varázslás elkezdéséhez. Nem jár semmilyen előnnyel. 2017 szeptemberi előfizetői tárgy.",
|
||||
"shieldMystery201802Text": "Szerelembogár pajzs",
|
||||
"shieldMystery201802Notes": "Habár törékeny cukorkának néz ki, ez a pajzs ellenáll még a legerősebb Megszakadó szív támadásnak is! Nem jár semmilyen előnnyel. 2018 februári előfizetői tárgy.",
|
||||
"shieldMystery201802Notes": "Habár törékeny cukorkának néz ki, ez a pajzs ellenáll még a legerősebb megszakadó szív támadásnak is! Nem jár semmilyen előnnyel. 2018 februári előfizetői tárgy.",
|
||||
"shieldMystery301405Text": "Óra pajzs",
|
||||
"shieldMystery301405Notes": "Az idő veled van, ha ezt a tornyosuló óra pajzsot viseled! Nem jár semmilyen előnnyel. 3015 júniusi előfizetői tárgy.",
|
||||
"shieldMystery301704Text": "Rebbenő legyező",
|
||||
"shieldMystery301704Notes": "Ez a remek legyező segít abban hogy hűvös maradj, valamint elegáns is. Nem jár semmilyen előnnyel. 3017 áprilisi előfizetői tárgy.",
|
||||
"shieldMystery301704Notes": "Ez a remek legyező segít abban, hogy hűvös maradj, valamint elegáns is. Nem jár semmilyen előnnyel. 3017 áprilisi előfizetői tárgy.",
|
||||
"shieldArmoireGladiatorShieldText": "Gladiátor pajzs",
|
||||
"shieldArmoireGladiatorShieldNotes": "Hogy gladiátor lehess nem csak... eh, mindegy, csak verd össze őket a pajzsoddal. Növeli a szívósságodat <%= con %> ponttal és az erődet <%= str %> ponttal. Megbűvölt komód: Gladiátor szett (3/3 tárgy).",
|
||||
"shieldArmoireMidnightShieldText": "Éjpajzs",
|
||||
@@ -1483,41 +1483,41 @@
|
||||
"backMystery201504Text": "Szorgos méh szárnyak",
|
||||
"backMystery201504Notes": "Bzzz bzzz bzzz! Reppenj egyik feladatról a másikra! Nem jár semmilyen előnnyel. 2015 áprilisi előfizetői tárgy.",
|
||||
"backMystery201507Text": "Menő szörfdeszka",
|
||||
"backMystery201507Notes": "Szörfözz a Szorgalmas kikötőben és lovagold meg a hullámokat a Csonka öbölben. Nem jár semmilyen előnnyel. 2015 júliusi előfizetői tárgy.",
|
||||
"backMystery201507Notes": "Szörfözz a Szorgalmas kikötőben és lovagold meg a hullámokat az Elintézetlenség-öbölben. Nem jár semmilyen előnnyel. 2015 júliusi előfizetői tárgy.",
|
||||
"backMystery201510Text": "Kobold farok",
|
||||
"backMystery201510Notes": "Kapós és erős! Nem jár semmilyen előnnyel. 2015 októberi előfizetői tárgy.",
|
||||
"backMystery201602Text": "Szívtipró köpeny",
|
||||
"backMystery201602Notes": "A köpenyed egy suhintásával, elleségeid a lábat előtt hevernek! Nem jár semmilyen előnnyel. 2016 januári előfizetői tárgy.",
|
||||
"backMystery201602Notes": "Egyetlen suhintással elsöpröd az ellenségeidet! Nem jár semmilyen előnnyel. 2016 januári előfizetői tárgy.",
|
||||
"backMystery201608Text": "A mennydörgés köpenye",
|
||||
"backMystery201608Notes": "Repülj keresztül a viharos égen ezzel a hullámzó köpennyel! Nem jár semmilyen előnnyel. 2016 augusztusi előfizetői tárgy.",
|
||||
"backMystery201608Notes": "Szeld át a viharos égboltot ezzel a lobogó köpennyel! Nem jár semmilyen előnnyel. 2016 augusztusi előfizetői tárgy.",
|
||||
"backMystery201702Text": "Nőcsábász köpeny",
|
||||
"backMystery201702Notes": "Egy suhintás ezzel a köpennyel és körülötted mindenki a lábad előtt hever! Nem jár semmilyen előnnyel. 2017 februári előfizetői tárgy.",
|
||||
"backMystery201704Text": "Tündérmese szárnyak",
|
||||
"backMystery201704Notes": "Ezek a csillogó szárnyak bárhová elrepítenek, még olyan titkozatos birodalmakba is amiket varázslények uralnak. Nem jár semmilyen előnnyel. 2017 áprilisi előfizetői tárgy.",
|
||||
"backMystery201704Notes": "Ezek a csillogó szárnyak bárhová elrepítenek, akár a mágikus lények uralta rejtett birodalmakba is. Nem jár semmilyen előnnyel. 2017 áprilisi előfizetői tárgy.",
|
||||
"backMystery201706Text": "Szakadt kalóz zászló",
|
||||
"backMystery201706Notes": "Ez a kalózzászlóval díszített lobogó rettegéssel tölti el bármelyik tennivalót vagy napi teendőt! Nem biztosít semmilyen bónuszt. 2017. júniusi előfizetői tárgy.",
|
||||
"backMystery201706Notes": "Ez a halálfejes zászló félelmet ébreszt minden tennivalóban és napi teendőben! Nem biztosít semmilyen bónuszt. 2017. júniusi előfizetői tárgy.",
|
||||
"backMystery201709Text": "Egy rakás varázslókönyv",
|
||||
"backMystery201709Notes": "A varázslás elsajátításához nagyon sok könyv szükséges, de az biztos hogy te ezt élvezed! Nem jár semmilyen előnnyel. 2017 szeptemberi előfizetői tárgy.",
|
||||
"backMystery201709Notes": "A varázslás megtanulása rengeteg olvasással jár, de biztosan élvezni fogod a tanulást! Nem jár semmilyen előnnyel. 2017 szeptemberi előfizetői tárgy.",
|
||||
"backMystery201801Text": "Fagytündér szárnyak",
|
||||
"backMystery201801Notes": "Habár olyan törékenynek tűnnek mint a hópehely, ezek az elvarázsolt szárnyak bárhová elrepítenek ahová csak szeretnéd! Nem jár semmilyen előnnyel. 2018 januári előfizetői tárgy.",
|
||||
"backMystery201801Notes": "Bár olyan törékenynek tűnnek, mint a hópelyhek, ezek a bűvös szárnyak bárhová elrepítenek! Nem jár semmilyen előnnyel. 2018 januári előfizetői tárgy.",
|
||||
"backMystery201803Text": "A merész szitakötő szárnyai",
|
||||
"backMystery201803Notes": "Ezek a élénken ragyogó szárnyak keresztülrepítenek lágy tavaszi szellőkön és tavirózsákkal borított tavak felett. Nem jár semmilyen előnnyel. 2018 márciusi előfizetői tárgy.",
|
||||
"backMystery201803Notes": "Ezek a fényes, ragyogó szárnyak könnyedén repítenek át a tavaszi szellőkön és a tavirózsás tavakon. Nem jár semmilyen előnnyel. 2018 márciusi előfizetői tárgy.",
|
||||
"backMystery201804Text": "Mókus farok",
|
||||
"backMystery201804Notes": "Persze segít egyensúlyozni miközben az ágakon ugrálsz, de a legfontosabb a MAXIMUM BOLYHOSSÁG. Nem jár semmilyen előnnyel. 2018 áprilisi előfizetői tárgy.",
|
||||
"backMystery201804Notes": "Segít az egyensúlyozásban, amikor az ágakon ugrálsz, de a legfontosabb mégis a MAXIMUM BOLYHOSSÁG. Nem jár semmilyen előnnyel. 2018 áprilisi előfizetői tárgy.",
|
||||
"backMystery201812Text": "Sarkvidéki róka farok",
|
||||
"backMystery201812Notes": "Elegáns farkad úgy csillog mint egy jégcsap és boldogan csóválod miközben a havas dombokon poroszkálsz. Nem jár semmilyen előnnyel. 2018 decemberi előfizetői tárgy.",
|
||||
"backMystery201812Notes": "Ez a pompás farok úgy csillog, mint egy jégcsap, miközben vidáman himbálózik, ahogy nesztelenül suhansz a hómezőkön. Nem jár semmilyen előnnyel. 2018 decemberi előfizetői tárgy.",
|
||||
"backMystery201805Text": "Fenomenális páva farok",
|
||||
"backMystery201805Notes": "Ez a gyönyörű tollas farok tökéletes arra hogy peckesen lépdelj végig egy bájos kerti úton. Nem jár semmilyen előnnyel. 2018 májusi előfizetői tárgy.",
|
||||
"backMystery201805Notes": "Ez a gyönyörű, tollas farok tökéletes egy magabiztos sétához egy virágzó kertben! Nem jár semmilyen előnnyel. 2018 májusi előfizetői tárgy.",
|
||||
"backSpecialWonderconRedText": "Tekintélyes köpeny",
|
||||
"backSpecialWonderconRedNotes": "Erőtől és szépségtől sugárzik. Nem jár semmilyen előnnyel. Külön kiadású tárgy.",
|
||||
"backSpecialWonderconRedNotes": "Erővel és szépséggel suhan. Nem jár semmilyen előnnyel. Különleges kiadású rendezvény tárgy.",
|
||||
"backSpecialWonderconBlackText": "Trükkös lepel",
|
||||
"backSpecialWonderconBlackNotes": "Árnyakból és suttogásokból fonott. Nem jár semmilyen előnnyel. Külön kiadású tárgy.",
|
||||
"backSpecialTakeThisText": "\"Take This\" szárnyak",
|
||||
"backSpecialWonderconBlackNotes": "Árnyakból és suttogásokból szőve. Nem jár semmilyen előnnyel. Különleges kiadású rendezvény tárgy.",
|
||||
"backSpecialTakeThisText": "'Take This' szárnyak",
|
||||
"backSpecialTakeThisNotes": "Ezeket a szárnyakat azért érdemelted ki, mert részt vettél a 'Take This' által szponzorált kihívásban. Gratulálunk! Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"backSpecialSnowdriftVeilText": "Hófuvat fátyol",
|
||||
"backSpecialSnowdriftVeilNotes": "Ettől az átlátszó fátyoltól úgy nézel ki mintha kavargó hó venne körül! Nem jár semmilyen előnnyel.",
|
||||
"backSpecialAetherCloakText": "Éterköpeny",
|
||||
"backSpecialAetherCloakNotes": "Ez a palást egyszer az elveszett kasztmester birtokában volt. Növeli az észlelésedet <%= per %> ponttal.",
|
||||
"backSpecialAetherCloakText": "Éter köpeny",
|
||||
"backSpecialAetherCloakNotes": "Ez a palást egyszer az elveszett nagymester birtokában volt. Növeli az észlelésedet <%= per %> ponttal.",
|
||||
"backSpecialTurkeyTailBaseText": "Pulyka farok",
|
||||
"backSpecialTurkeyTailBaseNotes": "Viseld büszkén ezt a nemes pulyka farkat amíg ünnepelsz! Nem jár semmilyen előnnyel.",
|
||||
"backSpecialTurkeyTailGildedText": "Aranyozott pulyka farok",
|
||||
@@ -1547,7 +1547,7 @@
|
||||
"bodySpecialWonderconGoldNotes": "Egy bájos arany nyaklánc. Nem jár semmilyen előnnyel. Külön kiadású tárgy.",
|
||||
"bodySpecialWonderconBlackText": "Ébenfekete nyaklánc",
|
||||
"bodySpecialWonderconBlackNotes": "Egy bájos ébenfekete nyaklánc. Nem jár semmilyen előnnyel. Külön kiadású tárgy.",
|
||||
"bodySpecialTakeThisText": "\"Take This\" vállpáncél",
|
||||
"bodySpecialTakeThisText": "'Take This' vállpáncél",
|
||||
"bodySpecialTakeThisNotes": "Ezt a vállpáncélt azért érdemelted ki, mert részt vettél a 'Take This' által szponzorált kihívásban. Gratulálunk! Növeli az összes tulajdonságodat <%= attrs %> ponttal.",
|
||||
"bodySpecialAetherAmuletText": "Éter amulett",
|
||||
"bodySpecialAetherAmuletNotes": "Ennek az amulettnek titokzatos története van. Növeli a szívósságodat és az erődet <%= attrs %> ponttal.",
|
||||
@@ -1591,7 +1591,7 @@
|
||||
"headAccessorySpecialSpring2015RogueText": "Sárga egérfülek",
|
||||
"headAccessorySpecialSpring2015RogueNotes": "Ezek a fülek megacálozzák magukat a robbanás hangjával szemben. Nem jár semmilyen előnnyel. Limitált kiadású 2015-ös tavaszi felszerelés.",
|
||||
"headAccessorySpecialSpring2015WarriorText": "Lila kutyafülek",
|
||||
"headAccessorySpecialSpring2015WarriorNotes": "Lila színűek. Kutya fülek. Ne pazarold tovább az idődet más butaságokkal! Nem jár semmilyen előnnyel. Limitált kiadású 2015-ös tavaszi felszerelés.",
|
||||
"headAccessorySpecialSpring2015WarriorNotes": "Lilák. Kutyafülek. Ne vesztegesd az időd további ostobaságokra. Nem jár semmilyen előnnyel. Limitált kiadású 2015-ös tavaszi felszerelés.",
|
||||
"headAccessorySpecialSpring2015MageText": "Kék nyuszifülek",
|
||||
"headAccessorySpecialSpring2015MageNotes": "Ezek a fülek intenzíven hallgatóznak, ha netalán valahol egy bűvész titkokat árulna el. Nem jár semmilyen előnnyel. Limitált kiadású 2015-ös tavaszi felszerelés.",
|
||||
"headAccessorySpecialSpring2015HealerText": "Zöld cicafülek",
|
||||
@@ -1611,9 +1611,9 @@
|
||||
"headAccessorySpecialSpring2017MageText": "Kékeszöld kutyafülek",
|
||||
"headAccessorySpecialSpring2017MageNotes": "Hallod a varázslatot a levegőben! Nem jár semmilyen előnnyel. Limitált kiadású 2017-es tavaszi felszerelés.",
|
||||
"headAccessorySpecialSpring2017HealerText": "Lila egérfülek",
|
||||
"headAccessorySpecialSpring2017HealerNotes": "Ezek a fülek segítenek abban hogy meghalld a gyógyító titkokat. Nem jár semmilyen előnnyel. Limitált kiadású 2017-es tavaszi felszerelés.",
|
||||
"headAccessorySpecialSpring2017HealerNotes": "Ezek a fülek segítenek meghallani a gyógyítás titkait. Nem jár semmilyen előnnyel. Limitált kiadású 2017-es tavaszi felszerelés.",
|
||||
"headAccessoryBearEarsText": "Medve fülek",
|
||||
"headAccessoryBearEarsNotes": "Ezektől a fülektől úgy nézel ki mint egy bátor medve! Nem jár semmilyen előnnyel.",
|
||||
"headAccessoryBearEarsNotes": "Ezektől a fülektől úgy nézel ki, mint egy bátor medve! Nem jár semmilyen előnnyel.",
|
||||
"headAccessoryCactusEarsText": "Kaktusz fülek",
|
||||
"headAccessoryCactusEarsNotes": "Ezektől a fülektől úgy nézel ki, mint egy tüskés kaktusz! Nem jár semmilyen előnnyel.",
|
||||
"headAccessoryFoxEarsText": "Róka fülek",
|
||||
@@ -1651,15 +1651,15 @@
|
||||
"headAccessoryMystery201502Text": "Gondolat szárnyai",
|
||||
"headAccessoryMystery201502Notes": "Engedd a képzeleted szabadon szárnyalni! Nem jár semmilyen előnnyel. 2015 februári előfizetői tárgy.",
|
||||
"headAccessoryMystery201510Text": "Kobold szarvak",
|
||||
"headAccessoryMystery201510Notes": "Ezek a félelmetes szarvak egy kicsit nyálkásak. Nem jár semmilyen előnnyel. 2015 februári előfizetői tárgy.",
|
||||
"headAccessoryMystery201510Notes": "Ezek a félelmetes szarvak kissé nyálkásak. Nem jár semmilyen előnnyel. 2015. októberi előfizetői tárgy.",
|
||||
"headAccessoryMystery201801Text": "Fagytündér agancsok",
|
||||
"headAccessoryMystery201801Notes": "Ezek a jeges agancsok a téli fények ragyogását tükrözik vissza. Nem nyújtanak semmilyen bónuszt. 2018. januári előfizetői tárgy.",
|
||||
"headAccessoryMystery201801Notes": "Ezek a jeges agancsok a téli sarki fény ragyogásában csillognak. Nem jár semmilyen előnnyel. 2018. januári előfizetői tárgy.",
|
||||
"headAccessoryMystery201804Text": "Mókus fülek",
|
||||
"headAccessoryMystery201804Notes": "Ezek a bolyhos hangfogók segítenek hogy biztosan meghalld a levelek zörgését vagy a lehulló makkokat! Nem jár semmilyen előnnyel. 2018 áprilisi előfizetői tárgy.",
|
||||
"headAccessoryMystery201804Notes": "Ezek a bolyhos hangfogók biztosítják, hogy soha ne maradj le egy levél suhogásáról vagy egy lehulló makkról! Nem jár semmilyen előnnyel. 2018. áprilisi előfizetői tárgy.",
|
||||
"headAccessoryMystery201812Text": "Sarkvidéki róka fülek",
|
||||
"headAccessoryMystery201812Notes": "Hallod ahogy a hópelyhek lágyan hullanak a vidéken. Nem jár semmilyen előnnyel. 2018 decemberi előfizetői tárgy.",
|
||||
"headAccessoryMystery301405Text": "Fejre-Szemüveg",
|
||||
"headAccessoryMystery301405Notes": "\"A szemüvegek a szemhez vannak,\" mondták \"Senki sem akar olyan szemüvegeket amit csak a fejeden hordhatsz,\" mondták. Ha! Jól megmutattad nekik! Nem jár semmilyen előnnyel. 3015 augusztusi előfizetői tárgy.",
|
||||
"headAccessoryMystery301405Text": "Fejre tett védőszemüveg",
|
||||
"headAccessoryMystery301405Notes": "„A védőszemüveg a szemre való” – mondták. „Senki sem akar olyan védőszemüveget, amit csak a fején hordhat” – mondták. Hah! Most aztán jól megmutattad nekik! Nem jár semmilyen előnnyel. 3015. augusztusi előfizetői tárgy.",
|
||||
"headAccessoryArmoireComicalArrowText": "Tréfás nyílvessző",
|
||||
"headAccessoryArmoireComicalArrowNotes": "Ez a hóbortos tárgy nem kínál semmilyen bónuszt, de az biztos hogy nagyon jót lehet rajta nevetni! Növeli az erődet <%= str %> ponttal. Megbűvölt komód: önálló tárgy.",
|
||||
"headAccessoryArmoireGogglesOfBookbindingText": "A könyvkötés védőszemüvege",
|
||||
@@ -1688,23 +1688,23 @@
|
||||
"eyewearSpecialSummerWarriorText": "Káprázatos szemkötő",
|
||||
"eyewearSpecialSummerWarriorNotes": "Nem kell egy senkiházinak lenned, hogy meglásd ez mennyire stílusos! Nem jár semmilyen előnnyel. Limitált kiadású 2014-es nyári felszerelés.",
|
||||
"eyewearSpecialWonderconRedText": "Tekintélyes maszk",
|
||||
"eyewearSpecialWonderconRedNotes": "Milyen erős arcfelszerelés! Nem jár semmilyen előnnyel. Külön kiadású tárgy.",
|
||||
"eyewearSpecialWonderconRedNotes": "Micsoda erőteljes arckiegészítő! Nem jár semmilyen előnnyel. Különleges kiadású rendezvény tárgy.",
|
||||
"eyewearSpecialWonderconBlackText": "Trükkös maszk",
|
||||
"eyewearSpecialWonderconBlackNotes": "Az indítékaid határozottan törvényesek. Nem jár semmilyen előnnyel. Külön kiadású tárgy.",
|
||||
"eyewearSpecialWonderconBlackNotes": "A szándékaid egészen biztosan tisztességesek. Nem jár semmilyen előnnyel. Különleges kiadású rendezvény tárgy.",
|
||||
"eyewearMystery201503Text": "Akvamarin szemüveg",
|
||||
"eyewearMystery201503Notes": "Vigyázz nehogy szembe bökjenek ezek a csillogó drágakövek! Nem jár semmilyen előnnyel. 2015 márciusi előfizetői tárgy.",
|
||||
"eyewearMystery201503Notes": "Vigyázz, nehogy szembe bökjenek ezek a csillogó drágakövek! Nem jár semmilyen előnnyel. 2015 márciusi előfizetői tárgy.",
|
||||
"eyewearMystery201506Text": "Neon búvárszemüveg",
|
||||
"eyewearMystery201506Notes": "Ez a neon búvárszemüveg lehetővé teszi a viselőjének hogy a víz alatt lásson. Nem jár semmilyen előnnyel. 2015 júniusi előfizetői tárgy.",
|
||||
"eyewearMystery201506Notes": "Ez a neon búvárszemüveg lehetővé teszi a viselőjének, hogy a víz alatt lásson. Nem jár semmilyen előnnyel. 2015 júniusi előfizetői tárgy.",
|
||||
"eyewearMystery201507Text": "Menő napszemüveg",
|
||||
"eyewearMystery201507Notes": "Ez a napszemüveg hűvösen tart még a legnyagyobb melegben is. Nem jár semmilyen előnnyel. 2015 júliusi előfizetői tárgy.",
|
||||
"eyewearMystery201701Text": "Időtlen napszemüveg",
|
||||
"eyewearMystery201701Notes": "Ez a napszemüveg megvéd a káros sugaraktól és mindig divatosnak néz ki, akármelyik korban is találod magad. Nem jár semmilyen előnnyel. 2017 januári előfizetői tárgy.",
|
||||
"eyewearMystery301404Text": "Szemüveg",
|
||||
"eyewearMystery301404Notes": "Nincs tetszetősebb szemviselet egy szemüvegnél - kivéve, talán a monokli. Nem jár semmilyen előnnyel. 3015 áprilisi előfizetői tárgy.",
|
||||
"eyewearMystery301404Text": "Védőszemüveg",
|
||||
"eyewearMystery301404Notes": "Semmi sem lehet elegánsabb szemkiegészítő, mint egy védőszemüveg – kivéve talán egy monoklit. Nem jár semmilyen előnnyel. 3015. áprilisi előfizetői tárgy.",
|
||||
"eyewearMystery301405Text": "Monokli",
|
||||
"eyewearMystery301405Notes": "Nincs tetszetősebb szemviselet egy monoklinál - kivéve, talán a szemüveg. Nem jár semmilyen előnnyel. 3015 júliusi előfizetői tárgy.",
|
||||
"eyewearMystery301405Notes": "Semmi sem lehet elegánsabb szemkiegészítő, mint egy monokli – kivéve talán egy védőszemüveget. Nem jár semmilyen előnnyel. 3015. júliusi előfizetői tárgy.",
|
||||
"eyewearMystery301703Text": "Álarcosbáli páva maszk",
|
||||
"eyewearMystery301703Notes": "Tökéletes egy előkelő álarcosbálon vagy hogy végiglopakodj egy jól öltözött tömegen. Nem jár semmilyen előnnyel. 3017 márciusi előfizetői tárgy.",
|
||||
"eyewearMystery301703Notes": "Tökéletes egy elegáns álarcosbálra vagy arra, hogy feltűnésmentesen mozogj egy különösen jól öltözött tömegben. Nem jár semmilyen előnnyel. 3017. márciusi előfizetői tárgy.",
|
||||
"eyewearArmoirePlagueDoctorMaskText": "Pestisdoktor maszk",
|
||||
"eyewearArmoirePlagueDoctorMaskNotes": "Ezt az eredeti maszkot azok a doktorok hordják akik a halogatás pestise ellen harcolnak! Növeli a szívósságodat és az intelligenciádat egyaránt <%= attrs %> ponttal. Megbűvölt komód: Pestisdoktor szett (2/3 tárgy).",
|
||||
"eyewearArmoireGoofyGlassesText": "Bolondos szemüveg",
|
||||
@@ -2023,7 +2023,7 @@
|
||||
"armorMystery202502Text": "Szívből jövő harlekin öltözet",
|
||||
"shieldMystery202502Notes": "Ez a Valentin-nap – és minden nap – legyen olyan könnyed, mint ezek a vidám léggömbök! Nem jár semmilyen előnnyel. 2025. februári előfizetői tárgy.",
|
||||
"shieldMystery202502Text": "Szívből jövő harlekin léggömbök",
|
||||
"shieldMystery202408Notes": "A varázsfények megvilágítják buborék rejtekhelyedet vagy bárhol máshol, ahol egy kis fényre van szükséged! Nem jár semmilyen előnnyel. 2024. augusztusi előfizetői tárgy.",
|
||||
"shieldMystery202408Notes": "A varázsfények megvilágítják buborék rejtekhelyedet vagy bármi mást, ahol egy kis fényre van szükséged! Nem jár semmilyen előnnyel. 2024. augusztusi előfizetői tárgy.",
|
||||
"weaponSpecialSpring2025MageText": "Sáska bot",
|
||||
"weaponSpecialSpring2025HealerNotes": "Egyetlen mozdulattal magadhoz hívhatod a beporzókat, hogy segítsenek kalandjaid során. Növeli az intelligenciádat <%= int %> ponttal. Korlátozott kiadású tavaszi 2025-ös felszerelés.",
|
||||
"weaponSpecialSpring2025HealerText": "Plumeria pásztorbot",
|
||||
@@ -2311,7 +2311,7 @@
|
||||
"backMystery202009Notes": "Hatalmas szárnyaid új magasságokba emelnek! Nem jár semmilyen előnnyel. 2020. szeptemberi előfizetői tárgy.",
|
||||
"backMystery202010Text": "Rábeszélő denevérszárnyak",
|
||||
"backMystery202401Text": "Hóvarázs",
|
||||
"backMystery202401Notes": "Hívj elő lágyan hulló hópelyheket vagy parancsolj hatalmas hóvihart! A döntés a tiéd! Nem jár semmilyen előnnyel. 2024. januári előfizetői tárgy.",
|
||||
"backMystery202401Notes": "Idézz meg lágyan hulló hópelyheket vagy hívj elő egy hatalmas hóvihart. A választás a tiéd! Nem jár semmilyen előnnyel. 2024. januári előfizetői tárgy.",
|
||||
"backMystery202402Text": "Paradicsomi rózsaszín szívek",
|
||||
"backMystery202405Text": "Aranyozott sárkányszárnyak",
|
||||
"headSpecialSpring2020MageText": "Esőcsepp sapka",
|
||||
@@ -2356,10 +2356,10 @@
|
||||
"shieldArmoireDustpanText": "Szemeteslapát",
|
||||
"backMystery202005Text": "Csodás sárkányszárnyak",
|
||||
"backMystery202005Notes": "Apró szakadásaik ellenére ezek a szárnyak még mindig bárhová elrepíthetnek! Nem jár semmilyen előnnyel. 2020. májusi előfizetői tárgy.",
|
||||
"backSpecialAnniversaryNotes": "Hagyd, hogy ez a büszke köpeny lobogjon a szélben, és hirdesse mindenkinek, hogy te egy Habitica hős vagy! Nem jár semmilyen előnnyel. Különleges 10. születésnapi tárgy.",
|
||||
"backSpecialAnniversaryNotes": "Hagyd, hogy ez a büszke köpeny lobogjon a szélben, és hirdesse mindenkinek, hogy te egy Habitica hős vagy. Nem jár semmilyen előnnyel. Különleges kiadású 10. születésnapi ünnepi tárgy.",
|
||||
"backSpecialHeroicAureoleText": "Hősi fénykoszorú",
|
||||
"backSpecialHeroicAureoleNotes": "A fénykoszorún lévő drágakövek felragyognak, amikor hősi történeteidet meséled. Növeli az összes tulajdonságot <%= attrs %> ponttal.",
|
||||
"bodySpecialAnniversaryNotes": "Tökéletesen kiegészíti a királyi bíbor szerelésedet! Nem jár semmilyen előnnyel. Különleges 10. születésnapi tárgy.",
|
||||
"bodySpecialAnniversaryNotes": "Tökéletesen kiegészíti királyi lila öltözeted! Nem jár semmilyen előnnyel. Különleges kiadású 10. születésnapi ünnepi tárgy.",
|
||||
"bodyMystery202008Notes": "Most még behajtva pihennek a szárnyaid. De amint befejezted a bölcsesség osztását vagy megpillantod zsákmányod a fűben – vigyázat! Nem jár semmilyen előnnyel. 2020. augusztusi előfizetői tárgy.",
|
||||
"weaponArmoireMagicSpatulaText": "Varázslatos spatula",
|
||||
"weaponArmoireBuoyantBubblesText": "Lebegő buborékok",
|
||||
@@ -2712,11 +2712,11 @@
|
||||
"backMystery201912Text": "Sarki tündérszárnyak",
|
||||
"backMystery201912Notes": "Suhanj csendesen csillogó hómezők és ragyogó hegyek felett ezekkel a jeges szárnyakkal! Nem jár semmilyen előnnyel. 2019. decemberi előfizetői tárgy.",
|
||||
"backMystery202010Notes": "Te vagy az éjszaka! Szállj hangtalanul, mint egy sötét lila felhő ezekkel a gyors szárnyakkal. Nem jár semmilyen előnnyel. 2020. októberi előfizetői tárgy.",
|
||||
"backMystery202012Text": "Jég-tűz szárnyak",
|
||||
"backMystery202012Text": "Fagy-tűz szárnyak",
|
||||
"backMystery202001Text": "Öt mesebeli farok",
|
||||
"backMystery202001Notes": "Ezek a bolyhos farkak mennyei erőt rejtenek – és persze egy jó adag cukiságot is! Nem jár semmilyen előnnyel. 2020. januári előfizetői tárgy.",
|
||||
"backMystery202004Text": "Hatalmas lepkeszárnyak",
|
||||
"backMystery202004Notes": "Csapj egy gyorsat a legközelebbi virágos rét felé, vagy vándorolj át a kontinensen ezekkel a gyönyörű szárnyakkal! Nem jár semmilyen előnnyel. 2020. áprilisi előfizetői tárgy.",
|
||||
"backMystery202004Notes": "Csapj egy gyorsat a legközelebbi virágos rét felé vagy vándorolj át a kontinensen ezekkel a gyönyörű szárnyakkal! Nem jár semmilyen előnnyel. 2020. áprilisi előfizetői tárgy.",
|
||||
"backMystery202009Text": "Csodálatos molyszárnyak",
|
||||
"backMystery202205Text": "Alkonyati szárnyak",
|
||||
"backMystery202105Notes": "Suhanj keresztül a csillagos égen, és helyezd magad a csillagképek közé! Nem jár semmilyen előnnyel. 2021. májusi előfizetői tárgy.",
|
||||
@@ -2726,7 +2726,7 @@
|
||||
"backMystery202206Notes": "Vízből és hullámokból formált varázslatos szárnyak! Nem jár semmilyen előnnyel. 2022. júniusi előfizetői tárgy.",
|
||||
"backMystery202301Text": "Öt vitéz farkinca",
|
||||
"backMystery202301Notes": "Ezek a bolyhos farkak éteri erőt rejtenek – és egy jó adag bájt is! Nem jár semmilyen előnnyel. 2023. januári előfizetői tárgy.",
|
||||
"backMystery202302Notes": "Bármikor viseled ezt a farkincát, az biztosan egy csodás nap lesz! Callooh! Callay! Nem jár semmilyen előnnyel. 2023. februári előfizetői tárgy.",
|
||||
"backMystery202302Notes": "Valahányszor felveszed ezt a farkat, biztosan csodás napod lesz! Hurrá! Hahó! Nem jár semmilyen előnnyel. 2023. februári előfizetői tárgy.",
|
||||
"backSpecialAnniversaryText": "Habitica hősi köpeny",
|
||||
"weaponArmoireResplendentRapierText": "Ragyogó tőr",
|
||||
"weaponArmoireBeachFlagText": "Strandzászló",
|
||||
@@ -2753,7 +2753,7 @@
|
||||
"armorSpecialBirthday2021Text": "Pazar parti köpeny",
|
||||
"armorSpecialWinter2020HealerText": "Narancshéj ruha",
|
||||
"armorSpecialSummer2020HealerText": "A hullámok urának díszruhája",
|
||||
"armorSpecialFall2020HealerText": "Bagolylepke szárnyak",
|
||||
"armorSpecialFall2020HealerText": "Héjagalóca szárnyak",
|
||||
"armorSpecialSummer2021WarriorText": "Uszonyos páncél",
|
||||
"armorSpecialSummer2021WarriorNotes": "Sima és gyors – ez a repülőhal jelmez segít átúszni a legzavarosabb vizeken is! Növeli a szívósságodat <%= con %> ponttal. Limitált kiadású 2021-es nyári felszerelés.",
|
||||
"armorSpecialFall2021WarriorText": "Elegáns gyapjúöltöny",
|
||||
@@ -2888,7 +2888,7 @@
|
||||
"headArmoireHeraldsCapNotes": "Ez a hírnökök kalapja és egy vidám tollal is díszítve van. Növeli az intelligenciádat <%= int %> ponttal. Megbűvölt komód: Hírnök szett (2/4 tárgy).",
|
||||
"headArmoireStrawRainHatText": "Szalmakalap esőhöz",
|
||||
"headArmoireTeaHatNotes": "Ez az elegáns kalap egyszerre mutatós és praktikus. Növeli az észlelésedet <%= per %> ponttal. Megbűvölt komód: Teadélután szett (2/3 tárgy).",
|
||||
"offHandCapitalized": "Kiegészítő (balkezes) felszerelés",
|
||||
"offHandCapitalized": "Balkezes felszerelés",
|
||||
"shieldSpecialPiDayText": "Pi pajzs",
|
||||
"shieldSpecialKS2019Text": "Mítikus griff pajzs",
|
||||
"shieldSpecialSummer2019MageText": "Tiszta víz cseppek",
|
||||
@@ -2921,7 +2921,7 @@
|
||||
"shieldArmoirePerfectMatchText": "A tökéletes pár",
|
||||
"shieldArmoireTeaKettleText": "Teáskanna",
|
||||
"backMystery202109Notes": "Lebegj csendesen az alkonyati levegőben anélkül, hogy egy hangot is kiadnál! Nem jár semmilyen előnnyel. 2021. szeptemberi előfizetői tárgy.",
|
||||
"backMystery202309Notes": "Rebbenj át az erdők felett, siklj a hegyeken és szárnyalj az óceánok felett ezekkel a ragyogó és gyönyörű szárnyakkal! Nem jár semmilyen előnnyel. 2023. szeptemberi előfizetői tárgy.",
|
||||
"backMystery202309Notes": "Repkedj erdők felett, csúsz hegyeken át és szárnyalj óceánok fölött ezekkel a ragyogó és gyönyörű szárnyakkal. Nem jár semmilyen előnnyel. 2023. szeptemberi előfizetői tárgy.",
|
||||
"backMystery202309Text": "Kolosszális üstököslepke szárnyak",
|
||||
"armorArmoireTeaGownText": "Teadélután köpeny",
|
||||
"shieldArmoirePotatoFoodText": "Dekoratív burgonya",
|
||||
@@ -2992,7 +2992,7 @@
|
||||
"shieldArmoireFishFoodText": "Dekoratív hal",
|
||||
"shieldArmoireMedievalLaundryNotes": "Nehéz lesz ezt kitisztítani, de már tudod, hogy bármire képes vagy! Növeli az észlelésedet <%= per %> ponttal. Megbűvölt komód: Középkori mosónő szett (6/6 tárgy).",
|
||||
"shieldArmoireBouncyBubblesText": "Vidám buborékok",
|
||||
"backSpecialNamingDay2020Notes": "Boldog névadó napot! Suhintsd meg ezt a tüzes, pixeles farkincát, és ünnepeld Habiticát! Nem jár semmilyen előnnyel.",
|
||||
"backSpecialNamingDay2020Notes": "Boldog névnapot! Suhintsd meg ezt a tüzes, pixeles farkincát, és ünnepeld Habiticát! Nem jár semmilyen előnnyel.",
|
||||
"bodyMystery202002Text": "Stílusos szívbéli sál",
|
||||
"armorArmoireAdmiralsUniformText": "Admirálisi egyenruha",
|
||||
"armorArmoireAdmiralsUniformNotes": "Tisztelgünk előtted! Ez a tengerész tiszti egyenruha jelzi, hogy készen állsz a feladataid irányítására – és persze egy hajó parancsnokságára is! Növeli a szívósságodat és az erődet egyaránt <%= attrs %> ponttal. Megbűvölt komód: Admirális szett (2/2 tárgy).",
|
||||
@@ -3206,9 +3206,9 @@
|
||||
"bodyArmoireKarateWhiteBeltText": "Fehér öv",
|
||||
"headAccessoryMystery202203Text": "Rettenthetetlen szitakötő díszkorona",
|
||||
"headAccessoryMystery202307Text": "Kraken korona",
|
||||
"eyewearSpecialFall2019RogueNotes": "Azt gondolhatnánk, hogy egy teljes maszk jobban elrejtené a viselője kilétét, de az emberek inkább a feltűnő dizájnt csodálják, mintsem a még látható vonásaidat figyeljék. Nem jár semmilyen előnnyel. Limitált kiadású 2019. őszi felszerelés.",
|
||||
"eyewearSpecialFall2019RogueNotes": "Azt hinnéd, hogy egy teljes maszk jobban elrejti a kiléted, de az embereket annyira lenyűgözi a letisztult dizájn, hogy észre sem veszik a felfedett vonásaidat. Nem jár semmilyen előnnyel. Limitált kiadású 2019. őszi felszerelés.",
|
||||
"eyewearMystery201907Text": "Menő napszemüveg",
|
||||
"eyewearMystery202208Notes": "Altasd el ellenségeid egy hamis biztonságérzettel ezekkel a rémisztően aranyos szemekkel. Nem jár semmilyen előnnyel. 2022. augusztusi előfizetői tárgy.",
|
||||
"eyewearMystery202208Notes": "Altasd el ellenségeid egy hamis biztonságérzettel, ezekkel a rémisztően aranyos szemekkel. Nem jár semmilyen előnnyel. 2022. augusztusi előfizetői tárgy.",
|
||||
"eyewearArmoireJewelersEyeLoupeText": "Ékszerész nagyító",
|
||||
"eyewearArmoireComedyMaskNotes": "Csak vidáman! Íme egy klasszikus maszk a boldogsághoz, mely a játékosságot hirdeti, a színpadon pedig az örömöt, jókedvet és a derűt fejezi ki. Növeli a szívósságodat <%= con %> ponttal. Megbűvölt komód: Színházi maszkok szett (1/2 tárgy).",
|
||||
"bodyArmoireClownsBowtieText": "Bohóc csokornyakkendő",
|
||||
@@ -3244,8 +3244,8 @@
|
||||
"eyewearSpecialYellowHalfMoonText": "Sárga félhold szemüveg",
|
||||
"eyewearSpecialYellowHalfMoonNotes": "Sárga keretes szemüveg félhold alakú lencsékkel. Nem jár semmilyen előnnyel.",
|
||||
"eyewearSpecialKS2019Notes": "Bátor, akárcsak egy griff… hmm, a griffeknek nincsenek védőszemüvegeik. Emlékeztet valamire… vagy csak egyszerűen menőn néz ki! Nem jár semmilyen előnnyel.",
|
||||
"eyewearSpecialAnniversaryNotes": "Láss a Habitica hős szemével – hiszen te magad vagy az! Nem jár semmilyen előnnyel. Különleges 10. születésnapi ünnepi tárgy.",
|
||||
"eyewearSpecialFall2019HealerNotes": "Készülj fel a legkeményebb ellenfelekre ezzel a kiismerhetetlen maszkkal. Nem jár semmilyen előnnyel. Limitált kiadású 2019. őszi felszerelés.",
|
||||
"eyewearSpecialAnniversaryNotes": "Nézz a Habitica hősének szemével – vagyis a sajátoddal! Nem jár semmilyen előnnyel. Különleges kiadású 10. születésnapi ünnepi tárgy.",
|
||||
"eyewearSpecialFall2019HealerNotes": "Acélozd meg magad a legkeményebb ellenfelekkel szemben ezzel a rejtélyes maszkkal. Nem jár semmilyen előnnyel. Limitált kiadású 2019. őszi felszerelés.",
|
||||
"eyewearMystery201902Notes": "Ez a titokzatos maszk elrejti a kilétedet – de a ragyogó mosolyodat nem! Nem jár semmilyen előnnyel. 2019. februári előfizetői tárgy.",
|
||||
"eyewearMystery202201Text": "Éjféli mulatozó maszk",
|
||||
"eyewearMystery202201Notes": "Ünnepeld az újévet titokzatos hangulatban ezzel a stílusos, tollas maszkkal! Nem jár semmilyen előnnyel. 2022. januári előfizetői tárgy.",
|
||||
@@ -3301,5 +3301,17 @@
|
||||
"headAccessoryMystery202102Notes": "Növeld az empátiád és gondoskodásod új magasságokba ezzel a díszes arany tiarával! Nem jár semmilyen előnnyel. 2021. februári előfizetői tárgy.",
|
||||
"eyewearSpecialFall2019HealerText": "Sötét álarc",
|
||||
"eyewearArmoireJewelersEyeLoupeNotes": "Ez a nagyító minden apró részletet felnagyít, hogy pontosan lásd a munkádat. Növeli az észlelésedet <%= per %> ponttal. Megbűvölt komód: Ékszerész szett (2/4 tárgy).",
|
||||
"eyewearArmoireTragedyMaskText": "Tragikus maszk"
|
||||
"eyewearArmoireTragedyMaskText": "Tragikus maszk",
|
||||
"armorMystery202504Notes": "Szörnyű? Inkább imádnivaló! Nem jár semmilyen előnnyel. 2025. áprilisi előfizetői tárgy.",
|
||||
"armorArmoireSillyOrangeTuxedoNotes": "A saját napi öltönyöd. Növeli a szívósságodat <%= con %> ponttal. Megbűvölt komód: Bolondos szmoking szett (1/2. tárgy).",
|
||||
"armorMystery202504Text": "Ritka jeti páncél",
|
||||
"armorArmoireSillyOrangeTuxedoText": "Bolondos narancssárga szmoking",
|
||||
"armorArmoireSillierBlueTuxedoText": "Még bolondosabb kék szmoking",
|
||||
"armorArmoireSillierBlueTuxedoNotes": "Tűnj ki a tömegből ebben az egyedi öltözetben. Megnöveli az Erőt <%= str %> ponttal. Megbűvölt komód: Még bolondosabb szmoking szett (1/2. tárgy).",
|
||||
"headMystery202504Text": "Ritka jeti csuklya",
|
||||
"headArmoireSillierBlueTophatNotes": "Egy kis elegancia, egy kis kifinomultság. Növeli az erődet és a szívósságodat egyaránt <%= attrs %> ponttal. Megbűvölt komód: Még bolondosabb szmoking szett (2/2. tárgy).",
|
||||
"headMystery202504Notes": "Viseld ezt a titokzatos álarcot, hogy észrevétlen maradj a világ legtitokzatosabb kriptidjei között. Nem jár semmilyen előnnyel. 2025. áprilisi előfizetői tárgy.",
|
||||
"headArmoireSillyOrangeTophatText": "Bolondos narancssárga cilinder",
|
||||
"headArmoireSillyOrangeTophatNotes": "Jól illik egy tökös frizurához. Növeli az erődet és a szívósságodat egyaránt <%= attrs %> ponttal. Megbűvölt komód: Bolondos szmoking szett (2/2. tárgy).",
|
||||
"headArmoireSillierBlueTophatText": "Még bolondosabb kék cilinder"
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
"notEnoughGems": "Nincs elég gyémántod",
|
||||
"alreadyHave": "Hoppá! Már megvan ez a tárgy. Nem kell újra megvenned!",
|
||||
"delete": "Törlés",
|
||||
"gems": "Gyémántok",
|
||||
"gems": "Gyémánt",
|
||||
"needMoreGems": "Több gyémántra van szükséged?",
|
||||
"needMoreGemsInfo": "Vásárolj most gyémántokat vagy válj előfizetővé, hogy arannyal vehess gyémántokat, havonta rejtélyes tárgyakat kapj, nagyobb zsákmányhatárt élvezhess és még sok mást!",
|
||||
"veteran": "Veterán",
|
||||
@@ -94,7 +94,7 @@
|
||||
"achievementStressbeastText": "Segített legyőzni az utálatos Stressz-szörnyeteget a 2014-es Téli csodaország eseményen!",
|
||||
"achievementBurnout": "Virágzó mezők megmentője",
|
||||
"achievementBurnoutText": "Segített legyőzni a Kiégést és helyreállította a kifáradt szellemeket a 2015-ös őszi fesztivál alatt!",
|
||||
"achievementBewilder": "Mistiflying megmentője",
|
||||
"achievementBewilder": "Ködliget megmentője",
|
||||
"achievementBewilderText": "Segített legyőzni a Zűrzavart a 2016-os tavaszi mulatozás alatt!",
|
||||
"achievementDysheartener": "A megtörtek megmentője",
|
||||
"achievementDysheartenerText": "Segített legyőzni a Szívtelenítőt a 2018-as Valentin-napi eseményen!",
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"optionalMessage": "Opcionális üzenet",
|
||||
"yesRemove": "Igen, távolítsd el",
|
||||
"sortBackground": "Rendezés háttér szerint",
|
||||
"sortClass": "Rendezés osztály szerint",
|
||||
"sortClass": "Rendezés kaszt szerint",
|
||||
"sortDateJoined": "Rendezés csatlakozási dátum szerint",
|
||||
"sortLogin": "Rendezés bejelentkezési dátum szerint",
|
||||
"sortLevel": "Rendezés szint szerint",
|
||||
@@ -350,7 +350,7 @@
|
||||
"invitedToThisQuest": "Meghívtak erre a küldetésre!",
|
||||
"createGroupToday": "Hozd létre a csoportod még ma!",
|
||||
"createGroupTitle": "Csoport létrehozása",
|
||||
"groupParentChildren": "Szülő(k), akik feladatokat ad a gyermekeiknek",
|
||||
"groupParentChildren": "Szülő, aki feladatokat ad a gyermekeiknek",
|
||||
"groupCouple": "Pár, akik megosztják a feladatokat",
|
||||
"groupFriends": "Barátok, akik megosztják a feladatokat",
|
||||
"suggestedGroup": "Ajánlott, mert új vagy a Habiticában.",
|
||||
@@ -406,7 +406,7 @@
|
||||
"newGroupsBullet08": "A csoportvezető és a menedzserek gyorsan hozzáadhatnak feladatokat a feladatoszlopok tetejéről",
|
||||
"newGroupsEnjoy": "Reméljük, élvezed az új Csoportos csomag előfizetési élményt!",
|
||||
"checkinsLabel": "Bejelentkezések:",
|
||||
"classLabel": "Osztály:",
|
||||
"classLabel": "Kaszt:",
|
||||
"languageLabel": "Nyelv:",
|
||||
"invitedToYourParty": "<strong>Meghívtak a csapatodba!</strong> Kattints a visszavonáshoz",
|
||||
"lookingForPartyTitle": "Tagok keresése",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"noItemsAvailableForType": "Nincs <%= type %> a leltáradban.",
|
||||
"foodItemType": "Állateledel",
|
||||
"eggsItemType": "Tojások",
|
||||
"hatchingPotionsItemType": "Keltetőfőzetek",
|
||||
"specialItemType": "Különleges tárgyak",
|
||||
"eggsItemType": "Tojás",
|
||||
"hatchingPotionsItemType": "Keltetőfőzet",
|
||||
"specialItemType": "Különleges tárgy",
|
||||
"lockedItem": "Zárolt tárgy",
|
||||
"allItems": "Minden tárgy",
|
||||
"petAndMount": "Kisállat és hátas"
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
"polarBear": "Jegesmedve",
|
||||
"turkey": "Pulyka",
|
||||
"gildedTurkey": "Aranyozott pulyka",
|
||||
"polarBearPup": "Jegesmedvebocs",
|
||||
"polarBearPup": "Jegesmedve bocs",
|
||||
"jackolantern": "Töklámpás",
|
||||
"ghostJackolantern": "Szellemes töklámpás",
|
||||
"glowJackolantern": "Sötétben világító töklámpás",
|
||||
"seasonalShop": "Szezonális bolt",
|
||||
"seasonalShopClosedTitle": "<%= linkStart %>Leslie<%= linkEnd %>",
|
||||
"seasonalShopTitle": "<%= linkStart %>Szezonális varázslónő<%= linkEnd %>",
|
||||
"seasonalShopTitle": "<%= linkStart %>Szezonális boszorkány<%= linkEnd %>",
|
||||
"seasonalShopClosedText": "A Szezonális bolt jelenleg zárva van!! Csak Habitica négy nagy gálája alatt tart nyitva.",
|
||||
"seasonalShopSummerText": "Boldog nyári csobbanást!! Szeretnél ritka tárgyakat vásárolni? Szerezd be őket, mielőtt a gála véget ér!",
|
||||
"seasonalShopFallText": "Boldog őszi fesztivált!! Szeretnél ritka tárgyakat vásárolni? Szerezd be őket, mielőtt a gála véget ér!",
|
||||
@@ -33,7 +33,7 @@
|
||||
"seasonalShopSpringText": "Boldog tavaszi mulatságot!! Szeretnél ritka tárgyakat vásárolni? Szerezd be őket, mielőtt a gála véget ér!",
|
||||
"seasonalShopFallTextBroken": "Oh… Üdv a Szezonális boltban… Őszi különkiadású cuccokat árulunk vagy valami ilyesmi… Minden itt kapható tárgy elérhető lesz az éves Őszi fesztivál alatt, de csak október 31-ig vagyunk nyitva… Talán érdemes most feltankolnod, különben várnod kell… és várnod… és várnod… <strong>*sóhaj*</strong>",
|
||||
"seasonalShopBrokenText": "A pavilonom!!!!!!! A dekorációim!!!! Oh, a Bánatszító mindent elpusztított :( Kérlek, segíts legyőzni a Fogadóban, hogy újjáépíthessem!",
|
||||
"seasonalShopRebirth": "Ha korábban már megvásároltad valamelyik felszerelést, de jelenleg nincs a birtokodban, újra megvásárolhatod a Jutalmak oszlopban. Kezdetben csak a jelenlegi osztályodhoz tartozó tárgyakat tudod megvenni (alapértelmezés szerint a Harcosét), de ne aggódj, ha osztályt váltasz, a többi osztály-specifikus tárgy is elérhetővé válik.",
|
||||
"seasonalShopRebirth": "Ha korábban már megvásároltad valamelyik felszerelést, de jelenleg nincs a birtokodban, újra megvásárolhatod a Jutalmak oszlopban. Kezdetben csak a jelenlegi kasztodhoz tartozó tárgyakat tudod megvenni (alapértelmezés szerint a Harcosét), de ne aggódj, ha kasztot váltasz, a többi kaszt-specifikus tárgy is elérhetővé válik.",
|
||||
"candycaneSet": "Cukorbot (Mágus)",
|
||||
"skiSet": "Sí-gyilkos (Tolvaj)",
|
||||
"snowflakeSet": "Hópehely (Gyógyító)",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"messageCannotFeedPet": "Ezt a kisállatot nem lehet etetni.",
|
||||
"messageAlreadyMount": "Már megvan ez a hátas. Próbálj meg etetni egy másik kisállatot.",
|
||||
"messageEvolve": "Megszelidítettél egy <%= egg %> hátast, menj vele körre!",
|
||||
"messageLikesFood": "<%= egg %> nagyon szereti a(z) <%= foodText %> állateledelt!",
|
||||
"messageLikesFood": "<%= egg %> nagyon szereti <%= foodText %> állateledelt!",
|
||||
"messageDontEnjoyFood": "<%= egg %> megette a(z) <%= foodText %> állateledelt, de nem igazán ízlett neki.",
|
||||
"messageBought": "Megvetted: <%= itemText %>",
|
||||
"messageUnEquipped": "<%= itemText %> leszerelve.",
|
||||
@@ -19,16 +19,16 @@
|
||||
"messageNotEnoughGold": "Nincs elég arany",
|
||||
"messageTwoHandedEquip": "A(z) <%= twoHandedText %> két kezet igényel, ezért a(z) <%= offHandedText %> le lett szerelve.",
|
||||
"messageTwoHandedUnequip": "A(z) <%= twoHandedText %> kétkezes fegyver, ezért leszerelésre került, amikor felszerelted a(z) <%= offHandedText %> fegyvert.",
|
||||
"messageDropFood": "Találtál egy <%= dropText %>-t!",
|
||||
"messageDropFood": "Találtál egy <%= dropText %> tárgyat!",
|
||||
"messageDropEgg": "Találtál egy <%= dropText %> tojást!",
|
||||
"messageDropPotion": "Találtál egy <%= dropText %> keltetőfőzetet!",
|
||||
"messageDropMysteryItem": "Kinyitottad a dobozt és találtál <%= dropText %>-t!",
|
||||
"messageDropMysteryItem": "Kinyitottad a dobozt és találtál <%= dropText %> tárgyat!",
|
||||
"messageAlreadyOwnGear": "Már birtoklod ezt a tárgyat. Felszerelheted a felszerelés oldalon.",
|
||||
"previousGearNotOwned": "Előbb meg kell vásárolnod egy alacsonyabb szintű felszerelést.",
|
||||
"messageHealthAlreadyMax": "Már maximumon van az életerőd.",
|
||||
"messageHealthAlreadyMin": "Oh, ne! Már elfogyott az életerőd, így túl késő gyógyitalt venni, de ne aggódj – feltámadhatsz!",
|
||||
"armoireEquipment": "<%= image %> Ritka felszerelést találtál a komódban: <%= dropText %>! Szuper!",
|
||||
"armoireFood": "<%= image %> Kotorászol a komódban és találsz egy <%= dropText %>-t. Hogy került ez ide?",
|
||||
"armoireFood": "<%= image %> Kotorászol a komódban és találsz egy <%= dropText %> tárgyat. Hogy került ez ide?",
|
||||
"armoireExp": "Összecsapsz a komóddal és szerzel egy kis tapasztalatot. Ezt kapd ki!",
|
||||
"messageInsufficientGems": "Nincs elég gyémántod!",
|
||||
"messageGroupAlreadyInParty": "Már egy csapatban vagy, próbáld meg frissíteni az oldalt.",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"sleepBullet3": "A küldetés ellenségének okozott sebzésed és a gyűjthető tárgyak addig várakoznak, amíg újra engedélyezed a sebzést",
|
||||
"pauseDailies": "Sebzés szüneteltetése",
|
||||
"unpauseDailies": "Sebzés visszaállítása",
|
||||
"staffAndModerators": "Staff és moderátorok",
|
||||
"staffAndModerators": "A csapat és a moderátorok",
|
||||
"communityGuidelinesIntro": "A Habitica célja, hogy minden korosztály és háttér előtt nyitott, barátságos környezetet teremtsen, különösen a csoportokban és a csapatokban. Ha kérdésed van, olvasd el a <a href='/static/community-guidelines' target='_blank'>közösségi irányelveinket</a>.",
|
||||
"acceptCommunityGuidelines": "Egyetértek a közösségi irányelvekkel",
|
||||
"worldBossEvent": "Főellenség esemény",
|
||||
@@ -40,8 +40,8 @@
|
||||
"amountExperience": "<%= amount %> tapasztalat",
|
||||
"amountGold": "<%= amount %> arany",
|
||||
"namedHatchingPotion": "<%= type %> keltetőfőzet",
|
||||
"buyGems": "Gyémántok vásárlása",
|
||||
"purchaseGems": "Gyémántok beszerzése",
|
||||
"buyGems": "Gyémánt vásárlása",
|
||||
"purchaseGems": "Gyémánt beszerzése",
|
||||
"items": "Tárgyak",
|
||||
"AZ": "A-Z",
|
||||
"sort": "Rendezés",
|
||||
@@ -88,8 +88,8 @@
|
||||
"paymentYouSentSubscription": "Elküldtél <strong><%- name %></strong> felhasználónak<br> egy <%= months %> hónapos Habitica előfizetést.",
|
||||
"paymentSubBilling": "Az előfizetésed díja <strong>$<%= amount %></strong> lesz minden <strong><%= months %> hónapban</strong>.",
|
||||
"success": "Sikeres!",
|
||||
"classGear": "Osztály felszerelés",
|
||||
"classGearText": "Gratulálok, hogy választottál egy osztályt! Hozzáadtam az új alap fegyveredet a leltáradhoz. Nézd meg lentebb, és szereld fel!",
|
||||
"classGear": "Kaszt felszerelés",
|
||||
"classGearText": "Gratulálok, hogy választottál egy kasztot! Hozzáadtam az új alap fegyveredet a leltáradhoz. Nézd meg lentebb, és szereld fel!",
|
||||
"autoAllocate": "Automatikus kiosztás",
|
||||
"spells": "Képességek",
|
||||
"skillsTitle": "<%= classStr %> képességek",
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
"step2": "2. lépés: Szerezz pontokat a való életbeli cselekedeteiddel",
|
||||
"webStep2Text": "Most kezdj el dolgozni a céljaidon! Amikor elvégzel egy feladatot és kipipálod Habiticában, [tapasztalatpontokat](https://habitica.fandom.com/wiki/Experience_Points) (TP) kapsz, amelyek segítenek szintet lépni, valamint [aranyat](https://habitica.fandom.com/wiki/Gold_Points), amelyből jutalmakat vásárolhatsz. Ha rossz szokásaidnak engedsz vagy kihagysz napi teendőket, veszítesz az [életerődből](https://habitica.fandom.com/wiki/Health_Points). Így a Habitica tapasztalat- és életerő sávja egy szórakoztató visszajelzést ad a céljaid felé tett haladásodról. Ahogy a karaktered fejlődik a játékban, úgy fogod észrevenni a pozitív változásokat a való életedben is.",
|
||||
"step3": "3. lépés: Személyre szabás és a Habitica felfedezése",
|
||||
"webStep3Text": "Miután megismerkedtél az alapokkal, még többet kihozhatsz Habiticából ezekkel a hasznos funkciókkal:\n* Rendezd a feladataidat [címkékkel](https://habitica.fandom.com/wiki/Tags) (egy feladat szerkesztésével adhatsz hozzá címkéket).\n* Személyre szabhatod az [avatárodat](https://habitica.fandom.com/wiki/Avatar) a jobb felső sarokban lévő felhasználói ikonra kattintva.\n* Vásárolj [felszerelést](https://habitica.fandom.com/wiki/Equipment) a jutalmak között vagy a [boltban](<%= shopUrl %>), majd cseréld ki a [Leltár > Felszerelés](<%= equipUrl %>) menüpont alatt.\n* Lépj kapcsolatba más játékosokkal a [Csapatkereső eszköz](https://habitica.com/looking-for-party) segítségével.\n* Kelts ki [kisállatokat](https://habitica.fandom.com/wiki/Pets) [tojások](https://habitica.fandom.com/wiki/Eggs) és [keltetőfőzetek](https://habitica.fandom.com/wiki/Hatching_Potions) gyűjtésével. [Etesd meg](https://habitica.fandom.com/wiki/Food) őket, hogy [hátassá](https://habitica.fandom.com/wiki/Mounts) fejlődjenek.\n* 10. szinttől: Válassz egy [osztályt](https://habitica.fandom.com/wiki/Class_System), és használd az osztályspecifikus [képességeket](https://habitica.fandom.com/wiki/Skills) (11-14. szinten).\n* Hozz létre csapatot a barátaiddal (kattints a [Csapat](<%= partyUrl %>) menüpontra a navigációs sávban), hogy felelősséget vállaljatok egymásért és megszerezzetek egy küldetési tekercset.\n* Győzz le szörnyeket és gyűjts tárgyakat a [küldetésekben](https://habitica.fandom.com/wiki/Quests) (15. szinten kapod meg az első küldetésedet).",
|
||||
"webStep3Text": "Miután megismerkedtél az alapokkal, még többet kihozhatsz Habiticából ezekkel a hasznos funkciókkal:\n* Rendezd a feladataidat [címkékkel](https://habitica.fandom.com/wiki/Tags) (egy feladat szerkesztésével adhatsz hozzá címkéket).\n* Személyre szabhatod az [avatárodat](https://habitica.fandom.com/wiki/Avatar) a jobb felső sarokban lévő felhasználói ikonra kattintva.\n* Vásárolj [felszerelést](https://habitica.fandom.com/wiki/Equipment) a jutalmak között vagy a [boltban](<%= shopUrl %>), majd cseréld ki a [Leltár > Felszerelés](<%= equipUrl %>) menüpont alatt.\n* Lépj kapcsolatba más játékosokkal a [Csapatkereső eszköz](https://habitica.com/looking-for-party) segítségével.\n* Kelts ki [kisállatokat](https://habitica.fandom.com/wiki/Pets) [tojások](https://habitica.fandom.com/wiki/Eggs) és [keltetőfőzetek](https://habitica.fandom.com/wiki/Hatching_Potions) gyűjtésével. [Etesd meg](https://habitica.fandom.com/wiki/Food) őket, hogy [hátassá](https://habitica.fandom.com/wiki/Mounts) fejlődjenek.\n* 10. szinttől: Válassz egy [kasztot](https://habitica.fandom.com/wiki/Class_System), és használd a kaszt specifikus [képességeket](https://habitica.fandom.com/wiki/Skills) (11-14. szinten).\n* Hozz létre csapatot a barátaiddal (kattints a [Csapat](<%= partyUrl %>) menüpontra a navigációs sávban), hogy felelősséget vállaljatok egymásért és megszerezzetek egy küldetési tekercset.\n* Győzz le szörnyeket és gyűjts tárgyakat a [küldetésekben](https://habitica.fandom.com/wiki/Quests) (15. szinten kapod meg az első küldetésedet).",
|
||||
"overviewQuestionsRevised": "Vannak kérdéseid? Nézd meg az <a href='/static/faq'>GYIK</a> oldalt! Ha ott nem találod a választ, további segítségért használhatod ezt az űrlapot: "
|
||||
}
|
||||
|
||||
@@ -107,9 +107,9 @@
|
||||
"invalidAmount": "Érvénytelen eledel mennyiség, csak pozitív egész szám adható meg",
|
||||
"tooMuchFood": "Túl sok eledelt próbálsz adni a kisállatodnak, művelet megszakítva",
|
||||
"notEnoughFood": "Nincs elég eledeled",
|
||||
"filterByWacky": "Dilis",
|
||||
"filterByWacky": "Bolondos",
|
||||
"gryphatrice": "Gryphatrice",
|
||||
"wackyPets": "Dilis kisállatok",
|
||||
"wackyPets": "Bolondos kisállatok",
|
||||
"veteranCactus": "Veterán kaktusz",
|
||||
"jubilantGryphatrice": "Ünnepi griffatrice",
|
||||
"veteranDragon": "Veterán sárkány"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"quest": "küldetés",
|
||||
"petQuests": "Kisállat és hátas küldetések",
|
||||
"unlockableQuests": "Feloldható küldetések",
|
||||
"goldQuests": "Kasztmester küldetéssorozat",
|
||||
"goldQuests": "Nagymester küldetéssorozat",
|
||||
"questDetails": "Küldetés részletei",
|
||||
"questDetailsTitle": "Küldetés részletei",
|
||||
"questDescription": "A küldetések lehetővé teszik a játékosok számára, hogy hosszú távú, játékbeli célokra összpontosítsanak a csapatuk tagjaival.",
|
||||
@@ -76,20 +76,20 @@
|
||||
"sureLeaveInactive": "Biztosan ki akarsz lépni a küldetésből? Nem fogsz tudni részt venni benne.",
|
||||
"questAlreadyStartedFriendly": "A küldetés már elkezdődött, de mindig csatlakozhatsz a következőhöz!",
|
||||
"membersParticipating": "<%= accepted %> / <%= invited %> csapattag vesz részt",
|
||||
"chatBossDamage": "<%= username %> megtámadta <%= bossName %>-t, és <%= userDamage %> sebzést okozott. <%= bossName %> visszatámadta a csapatot <%= bossDamage %> sebzéssel.",
|
||||
"chatBossDamage": "<%= username %> megtámadta a(z) <%= bossName %> ellenséget és <%= userDamage %> sebzést okozott. <%= bossName %> visszatámadta a csapatot <%= bossDamage %> sebzéssel.",
|
||||
"ownerOnly": "Csak a tulajdonos",
|
||||
"backToSelection": "Vissza a küldetés választóba",
|
||||
"chatBossDontAttack": "<%= username %> megtámadta <%= bossName %>-t, és <%= userDamage %> sebzést okozott. <%= bossName %> most nem támad vissza, mert figyelembe veszi, hogy a karbantartás után még lehetnek hibák, és nem akar igazságtalanul ártani senkinek. Hamarosan azonban folytatja a pusztítást!",
|
||||
"chatBossDontAttack": "<%= username %> megtámadta a(z) <%= bossName %> ellenséget és <%= userDamage %> sebzést okozott. <%= bossName %> most nem támad vissza, mert figyelembe veszi, hogy a karbantartás után még lehetnek hibák, és nem akar igazságtalanul ártani senkinek. Hamarosan azonban folytatja a pusztítást!",
|
||||
"chatQuestAborted": "<%= username %> megszakította a(z) <%= questName %> küldetést.",
|
||||
"noQuestToStartTitle": "Nem találsz elindítható küldetést?",
|
||||
"chatBossDefeated": "Legyőztétek <%= bossName %>-t! A küldetésben résztvevők megkapják győzelmi jutalmukat.",
|
||||
"chatBossDefeated": "Legyőztétek a(z) <%= bossName %> ellenséget! A küldetésben résztvevők megkapják győzelmi jutalmukat.",
|
||||
"chatQuestCancelled": "<%= username %> törölte a(z) <%= questName %> küldetést.",
|
||||
"newItem": "Új tárgy",
|
||||
"yourQuests": "A küldetéseid",
|
||||
"chatQuestStarted": "A(z) <%= questName %> küldetésed elkezdődött.",
|
||||
"questOwner": "Küldetés tulajdonosa",
|
||||
"tavernBossTired": "<%= bossName %> megpróbálja bevetni a(z) <%= rageName %>-t, de túl fáradt hozzá.",
|
||||
"chatFindItems": "<%= username %> talált <%= items %>-t.",
|
||||
"tavernBossTired": "<%= bossName %> megpróbálja bevetni a(z) <%= rageName %> támadást, de túl fáradt hozzá.",
|
||||
"chatFindItems": "<%= username %> talált <%= items %> tárgyat.",
|
||||
"cancelQuest": "Küldetés törlése",
|
||||
"chatItemQuestFinish": "Minden tárgyat megtaláltatok! A csapat megkapta a jutalmát.",
|
||||
"selectQuestModal": "Válassz küldetést"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -30,9 +30,9 @@
|
||||
"xml": "XML",
|
||||
"json": "JSON",
|
||||
"customDayStart": "Egyéni napkezdés",
|
||||
"sureChangeCustomDayStartTime": "Biztosan meg akarod változtatni az egyéni napkezdést? A napi feladataid legközelebb akkor indulnak újra, amikor a Habitica-t <%= time %> után használod. Bizonyosodj meg róla, hogy ezelőtt befejezed a napi feladataid!",
|
||||
"sureChangeCustomDayStartTime": "Biztosan meg akarod változtatni az egyéni napkezdést? A napi feladataid legközelebb akkor indulnak újra, amikor a Habiticát <%= time %> után használod. Bizonyosodj meg róla, hogy ezelőtt befejezed a napi feladataid!",
|
||||
"customDayStartHasChanged": "Egyéni napkezdés időpontja megváltozott.",
|
||||
"nextCron": "A napi feladataid legközelebb akkor indulnak újra, amikor a Habitica-t <%= time %> után használod. Bizonyosodj meg róla, hogy ezelőtt befejezed a napi feladataid!",
|
||||
"nextCron": "A napi feladataid legközelebb akkor indulnak újra, amikor a Habiticát <%= time %> után használod. Bizonyosodj meg róla, hogy ezelőtt befejezed a napi feladataid!",
|
||||
"customDayStartInfo1": "A Habitica minden nap éjfélkor ellenőrzi és visszaállítja a napi feladataidat a saját időzónád szerint. Itt módosíthatod az alapértelmezett időpontot.",
|
||||
"misc": "Egyéb",
|
||||
"showHeader": "Fejléc mutatása",
|
||||
@@ -97,7 +97,7 @@
|
||||
"remindersToLogin": "Emlékeztetők a Habitica-ra történő bejelentkezésre",
|
||||
"unsubscribedSuccessfully": "Sikeresen leiratkoztál!",
|
||||
"unsubscribedTextUsers": "Sikeresen leiratkoztál minden Habitica-val kapcsolatos e-mailről. Engdélyezheted azokat az e-maileket, amiket továbbra is meg szeretnél kapni, a <a href=\"/user/settings/notifications\">beállítások > értesítések menüben</a> (bejelentkezés szükséges).",
|
||||
"unsubscribedTextOthers": "Ezentúl nem kapsz leveleket a Habitica-tól.",
|
||||
"unsubscribedTextOthers": "Ezentúl nem kapsz leveleket a Habiticától.",
|
||||
"unsubscribeAllEmails": "Leiratkozás az e-mailekről",
|
||||
"unsubscribeAllEmailsText": "A Habitica nem tud e-mailben értesíteni a weboldal vagy a fiókod fontos változásairól.",
|
||||
"unsubscribeAllPush": "Leiratkozás minden push értesítésről",
|
||||
@@ -142,7 +142,7 @@
|
||||
"amazonPaymentsRecurring": "Az alábbi doboz kipipálása szükséges az előfizetésed létrehozásához. Ennek a segítségével a jövőben az Amazon fiókodon keresztül tudod fizetni <strong>ezt</strong> az előfizetést. De ez nem jelenti azt, hogy a jövőbeli vásárlásoknál az Amazon fiókod lesz az alapvető fizetőeszköz.",
|
||||
"timezone": "Időzóna",
|
||||
"timezoneUTC": "Az időzónádat a számítógéped határozza meg, amely: <strong><%= utc %></strong>",
|
||||
"timezoneInfo": "Ha ez időzóna téves, frissítsd ezt az oldalt a böngésződ frissítés gombját használva, hogy megbizonyosodj róla hogy a Habitica a legfrissebb információt használja. Ha ezután még mindig téves, változtasd meg az időzónát a számítógépeden és frissítsd újra az oldalt.<br><br><strong> Ha a Habitica-t más számítógépen vagy telefonon is használod, az időzónának mindenhol egyeznie kell.</strong> Ha a napi feladataid rossz időben indulnak újra ismételd meg ezt az összes számítógépen és a telefonod böngészőjében.",
|
||||
"timezoneInfo": "Ha ez időzóna téves, frissítsd ezt az oldalt a böngésződ frissítés gombját használva, hogy megbizonyosodj róla hogy a Habitica a legfrissebb információt használja. Ha ezután még mindig téves, változtasd meg az időzónát a számítógépeden és frissítsd újra az oldalt.<br><br><strong> Ha a Habiticát más számítógépen vagy telefonon is használod, az időzónának mindenhol egyeznie kell.</strong> Ha a napi feladataid rossz időben indulnak újra ismételd meg ezt az összes számítógépen és a telefonod böngészőjében.",
|
||||
"push": "Push",
|
||||
"about": "Névjegy",
|
||||
"setUsernameNotificationTitle": "Felhasználónév megerősítése!",
|
||||
@@ -197,7 +197,7 @@
|
||||
"api": "API",
|
||||
"currentPass": "Jelenlegi jelszó",
|
||||
"resetDetail1": "Elveszted az összes szintedet, aranyadat és tapasztalatpontodat.",
|
||||
"resetDetail2": "A jelenlegi osztályod, kitüntetéseid, kisállataid és hátasaid megmaradnak.",
|
||||
"resetDetail2": "A jelenlegi kasztod, kitüntetéseid, kisállataid és hátasaid megmaradnak.",
|
||||
"resetDetail3": "Az összes feladatod (kivéve a kihívásokból származókat) véglegesen törlődik, és elveszted az összes hozzájuk tartozó előzményt.",
|
||||
"resetTextLocal": "Ha teljesen biztos vagy benne, írd be a jelszavad az alábbi mezőbe.",
|
||||
"resetTextSocial": "Ha teljesen biztos vagy benne, írd be az alábbi mezőbe: <b>\"<%= magicWord %>\"</b>.",
|
||||
@@ -215,22 +215,22 @@
|
||||
"connect": "Csatlakozás",
|
||||
"remove": "Eltávolítás",
|
||||
"changePasswordDisclaimer": "A jelszónak legalább 8 karakter hosszúnak kell lennie. Javasoljuk, hogy erős jelszót használj, amelyet máshol nem használsz.",
|
||||
"changeClassSetting": "Osztály váltása",
|
||||
"chooseClassSetting": "Osztály választása",
|
||||
"changeClassSetting": "Kaszt váltása",
|
||||
"chooseClassSetting": "Kaszt választása",
|
||||
"transaction_reroll": "Használtad az erősítő főzetet",
|
||||
"transaction_subscription_perks": "<b>Előfizetői</b> előny",
|
||||
"transaction_admin_update_hourglasses": "<b>Admin</b> frissítette",
|
||||
"userNameSuccess": "Felhasználónév sikeresen megváltoztatva",
|
||||
"audioThemeDisclaimer": "A hangtémák opcionális hangeffekteket adnak a Habitica weboldalához. A hangerőszintet a számítógéped hangbeállításain keresztül szabályozhatod.",
|
||||
"noClassSelected": "Nincs osztály kiválasztva",
|
||||
"currentClass": "Jelenlegi osztály",
|
||||
"noClassSelected": "Nincs kaszt kiválasztva",
|
||||
"currentClass": "Jelenlegi kaszt",
|
||||
"dateFormatDisclaimer": "Állítsd be a dátumformátumot a Habiticában.",
|
||||
"enableAudio": "Hang engedélyezése",
|
||||
"playDemoAudio": "Bemutató lejátszása",
|
||||
"transaction_subscription_bonus": "<b>Előfizetői</b> bónusz",
|
||||
"APITokenDisclaimer": "<b>Az API tokened olyan, mint egy jelszó; ne oszd meg nyilvánosan.</b> Előfordulhat, hogy meg kell adnod a felhasználói azonosítódat, de soha ne tedd közzé az API tokened olyan helyen, ahol mások is láthatják, például a Githubon.<br><br><b>Megjegyzés:</b> Ha új API tokenre van szükséged (például mert véletlenül megosztottad), írj egy e-mailt a <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> címre a Felhasználói azonosítóddal és a jelenlegi tokeneddel. A visszaállítás után újra kell hitelesítened mindent: jelentkezz ki a weboldalon és a mobilalkalmazásban, majd add meg az új tokent minden egyéb Habitica eszközben, amit használsz.",
|
||||
"thirdPartyTools": "Harmadik féltől származó alkalmazásokat, bővítményeket és mindenféle egyéb eszközt, amelyeket a fiókoddal használhatsz, a <a href='https://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Habitica wikiben</a> találhatsz.",
|
||||
"changeClassDisclaimer": "Az osztályváltás visszatéríti az összes meglévő tulajdonság pontodat. Miután kiválasztottad az új osztályodat, a profilod Karakterlap szekciójában oszthatod el a tulajdonság pontjaidat.",
|
||||
"changeClassDisclaimer": "A kaszt váltás visszatéríti az összes meglévő tulajdonság pontodat. Miután kiválasztottad az új kasztodat, a profilod Karakterlap szekciójában oszthatod el a tulajdonság pontjaidat.",
|
||||
"transaction_admin_update_balance": "<b>Admin</b> által adott",
|
||||
"passwordSuccess": "Jelszó sikeresen megváltoztatva",
|
||||
"giftSubscriptionRateText": "<strong><%= price %> USD</strong> <strong><%= months %> hónapra</strong>",
|
||||
@@ -241,7 +241,7 @@
|
||||
"transaction_create_challenge": "<b>Létrehozott</b> kihívás",
|
||||
"transaction_create_bank_challenge": "<b>Létrehozott</b> banki kihívás",
|
||||
"transaction_create_guild": "<b>Létrehozott</b> céh",
|
||||
"transaction_change_class": "<b>Osztály</b> váltás",
|
||||
"transaction_change_class": "<b>Kaszt</b> váltás",
|
||||
"transactions": "Tranzakciók",
|
||||
"passwordIssueLength": "A jelszónak 8 és 64 karakter között kell lennie.",
|
||||
"noGemTransactions": "Még nincs gyémánt tranzakciód.",
|
||||
@@ -257,6 +257,6 @@
|
||||
"transaction_gift_send": "<b>Ajándékozva</b> neki:",
|
||||
"transaction_gift_receive": "<b>Kapva</b> tőle:",
|
||||
"amount": "Összeg",
|
||||
"resetDetail4": "El fogod veszíteni az összes felszerelésed, kivéve az előfizetői rejtélyes tárgyakat és az ingyenes emléktárgyakat. A törölt tárgyakat visszavásárolhatod, beleértve az összes limitált kiadású felszerelést is (az osztályspecifikus felszerelések visszavásárlásához a megfelelő osztályban kell lenned).",
|
||||
"resetDetail4": "El fogod veszíteni az összes felszerelésed, kivéve az előfizetői rejtélyes tárgyakat és az ingyenes emléktárgyakat. A törölt tárgyakat visszavásárolhatod, beleértve az összes limitált kiadású felszerelést is (a kaszt specifikus felszerelések visszavásárlásához a megfelelő kasztban kell lenned).",
|
||||
"connected": "Csatlakoztatva"
|
||||
}
|
||||
|
||||
@@ -116,10 +116,10 @@
|
||||
"choosePaymentMethod": "Válaszd ki a fizetési módot",
|
||||
"support": "Támogatás",
|
||||
"gemBenefitLeadin": "Mire költheted a gyémántokat?",
|
||||
"gemBenefit1": "Egyedi és divatos jelmezek az avatárod számára.",
|
||||
"gemBenefit2": "Háttérképek, amelyek még jobban elmerítenek Habitica világában!",
|
||||
"gemBenefit3": "Izgalmas küldetések, amelyek kisállat tojásokat dobnak.",
|
||||
"gemBenefit4": "Az avatárod tulajdonságpontjainak visszaállítása és osztályának módosítása.",
|
||||
"gemBenefit1": "Egyedi és divatos jelmezekre az avatárod számára.",
|
||||
"gemBenefit2": "Háttérképekre, amelyek még jobban elmerítenek Habitica világában!",
|
||||
"gemBenefit3": "Izgalmas küldetésekre, amelyek kisállat tojásokat dobnak.",
|
||||
"gemBenefit4": "Az avatárod tulajdonságpontjainak visszaállítására és a kasztod módosítására.",
|
||||
"subscriptionBenefit1": "Vásárolj akár 50 gyémántot aranyért a piacon, és szerezz küldetéseket, testreszabásokat, kisállatokat és még sok mást!",
|
||||
"subscriptionBenefit3": "Találj kétszer annyi tojást, keltetőfőzetet és ételt minden nap, hogy bővíthesd a kisállat-gyűjteményedet!",
|
||||
"subscriptionBenefit4": "Viseld a legújabb exkluzív felszereléseket! Iratkozz fel most, és szerezd meg <%= month %> havi <%= currentMysterySetName %> szettet!",
|
||||
@@ -260,5 +260,7 @@
|
||||
"usuallyGems": "Általában <%= originalGems %>",
|
||||
"sendAGift": "Ajándék küldése",
|
||||
"doubleDropCap": "Dupla zsákmány",
|
||||
"youAreSubscribed": "Előfizettél a Habiticára"
|
||||
"youAreSubscribed": "Előfizettél a Habiticára",
|
||||
"mysterySet202503": "Jáde kolosszus szett",
|
||||
"mysterySet202504": "Ritka jeti szett"
|
||||
}
|
||||
|
||||
@@ -864,5 +864,13 @@
|
||||
"backgroundShellGateText": "Gerbang Kerang",
|
||||
"backgrounds052024": "SET 120 : Dirilis pada Mei 2024",
|
||||
"backgroundPottersStudioText": "Studio Tukang Tembikar",
|
||||
"backgroundPottersStudioNotes": "Berkaryalah di Studio Tukang Tembikar."
|
||||
"backgroundPottersStudioNotes": "Berkaryalah di Studio Tukang Tembikar.",
|
||||
"backgrounds072024": "SET 122: Dirilis Juli 2024",
|
||||
"backgroundRiverBottomText": "Dasar Sungai",
|
||||
"backgroundRiverBottomNotes": "Jelajah Dasar Sungai.",
|
||||
"backgroundContainerGardenText": "Taman Penyimpan",
|
||||
"backgroundContainerGardenNotes": "Bermain-main di Taman Penyimpan.",
|
||||
"backgroundMaypoleText": "Tiang Mei",
|
||||
"backgroundMaypoleNotes": "Menari di sekitar Tiang Mei.",
|
||||
"backgroundShellGateNotes": "Berbaris dan lewati koral Gerbang Kerang yang didekorasi."
|
||||
}
|
||||
|
||||
@@ -27,5 +27,8 @@
|
||||
"faqQuestion35": "Ho dato da mangiare al mio animale domestico ed è scomparso! Cos'è successo?",
|
||||
"webFaqAnswer35": "Appena hai nutrito il tuo animale domestico abbastanza da farlo diventare una cavalcatura, dovrai covare quel tipo di animale domestico ancora una volta per averlo nella tua stalla.\n\nPer vedere le Cavalcature sull'app mobile:\n\n* Dal Menu, seleziona \"Animali e Cavalcature\" e vai alla tab Cavalcature\n\nPer vedere le Cavalcature sulla pagina web:\n\n* Dall'Inventario, seleziona \"Animali e Cavalcature\" e scorri in basso fino alla sezione Cavalcature",
|
||||
"faqQuestion36": "Come cambio l'aspetto del mio Avatar?",
|
||||
"faqQuestion37": "Perché il mio Equipaggiamento non viene mostrato sul mio Avatar?"
|
||||
"faqQuestion37": "Perché il mio Equipaggiamento non viene mostrato sul mio Avatar?",
|
||||
"faqQuestion38": "Perché non posso comprare nessun oggetto?",
|
||||
"webFaqAnswer38": "Nuovi giocatori di Habitica possono solo acquistare l'equipaggiamento base per la classe Guerriero. Giocatori devono comprare equipaggiamento il ordine sequenziale per sbloccare il prossimo articolo.\n\nMolti pezzi di equipaggiamento sono specifici per una classe in particolare, e di conseguenza i giocatori possono solo comprare equipaggiamento corrispondente alla loro classe attuale.",
|
||||
"faqQuestion39": "Dovo posso ottenere altro Equipaggiamento?"
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user