From ba7236987ae3759e93e6a3577b4b95ea89a02dd8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Mar 2021 16:30:15 +0000 Subject: [PATCH 01/59] Bump y18n from 4.0.0 to 4.0.1 Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c6864f16..b6d480c7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18802,9 +18802,9 @@ "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yallist": { From 00b293978a84c6bdf87ba4bf8588e653da2f7a17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Apr 2021 21:23:35 +0000 Subject: [PATCH 02/59] Bump phpseclib/phpseclib from 2.0.29 to 2.0.31 Bumps [phpseclib/phpseclib](https://github.com/phpseclib/phpseclib) from 2.0.29 to 2.0.31. - [Release notes](https://github.com/phpseclib/phpseclib/releases) - [Changelog](https://github.com/phpseclib/phpseclib/blob/master/CHANGELOG.md) - [Commits](https://github.com/phpseclib/phpseclib/compare/2.0.29...2.0.31) Signed-off-by: dependabot[bot] --- composer.lock | 132 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 120 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index 9cd8e8a80..77d0c0571 100644 --- a/composer.lock +++ b/composer.lock @@ -197,6 +197,16 @@ "stream_filter_append", "stream_filter_register" ], + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], "time": "2019-04-09T12:31:48+00:00" }, { @@ -733,6 +743,20 @@ "uppercase", "words" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], "time": "2020-05-29T15:13:26+00:00" }, { @@ -795,6 +819,20 @@ "parser", "php" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], "time": "2020-05-25T17:44:05+00:00" }, { @@ -1074,6 +1112,20 @@ "laravel", "markdown" ], + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://www.patreon.com/GrahamJCampbell", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/markdown", + "type": "tidelift" + } + ], "time": "2020-04-14T14:11:12+00:00" }, { @@ -3423,16 +3475,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "2.0.29", + "version": "2.0.31", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "497856a8d997f640b4a516062f84228a772a48a8" + "reference": "233a920cb38636a43b18d428f9a8db1f0a1a08f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/497856a8d997f640b4a516062f84228a772a48a8", - "reference": "497856a8d997f640b4a516062f84228a772a48a8", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/233a920cb38636a43b18d428f9a8db1f0a1a08f4", + "reference": "233a920cb38636a43b18d428f9a8db1f0a1a08f4", "shasum": "" }, "require": { @@ -3440,7 +3492,7 @@ }, "require-dev": { "phing/phing": "~2.7", - "phpunit/phpunit": "^4.8.35|^5.7|^6.0", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4", "squizlabs/php_codesniffer": "~2.0" }, "suggest": { @@ -3524,7 +3576,7 @@ "type": "tidelift" } ], - "time": "2020-09-08T04:24:43+00:00" + "time": "2021-04-06T13:56:45+00:00" }, { "name": "predis/predis", @@ -6031,7 +6083,21 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/polyfill-php73", @@ -7552,6 +7618,20 @@ "constructor", "instantiate" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], "time": "2020-05-29T17:27:14+00:00" }, { @@ -8293,16 +8373,16 @@ "source": { "type": "git", "url": "https://github.com/mohammedmanssour/form-request-tester.git", - "reference": "e3efe064c35c48a3ae73b5e47140bf8fe220e7d5" + "reference": "a8b0e937346577d7568faab9dbdcd1a6bdb49bdc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mohammedmanssour/form-request-tester/zipball/e3efe064c35c48a3ae73b5e47140bf8fe220e7d5", - "reference": "e3efe064c35c48a3ae73b5e47140bf8fe220e7d5", + "url": "https://api.github.com/repos/mohammedmanssour/form-request-tester/zipball/a8b0e937346577d7568faab9dbdcd1a6bdb49bdc", + "reference": "a8b0e937346577d7568faab9dbdcd1a6bdb49bdc", "shasum": "" }, "require-dev": { - "orchestra/testbench": "~3.0" + "orchestra/testbench": "~6.0" }, "type": "library", "autoload": { @@ -8322,7 +8402,7 @@ } ], "description": "a collection of test helpers that help with testing form requests", - "time": "2020-05-30T21:04:46+00:00" + "time": "2020-10-25T08:54:32+00:00" }, { "name": "myclabs/deep-copy", @@ -8590,6 +8670,20 @@ "php", "static analysis" ], + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], "time": "2020-05-06T08:56:49+00:00" }, { @@ -8674,6 +8768,20 @@ "quality", "source" ], + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], "time": "2020-03-10T20:43:15+00:00" }, { From f75bcdde22ed570cdd80475e665ee306136ef1ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Apr 2021 15:36:52 +0000 Subject: [PATCH 03/59] Bump ssri from 6.0.1 to 6.0.2 Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2. - [Release notes](https://github.com/npm/ssri/releases) - [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md) - [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c6864f16..d32d3f512 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17895,9 +17895,9 @@ "dev": true }, "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, "requires": { "figgy-pudding": "^3.5.1" From 1dd710e4f4ff3a38db74db90e982c4973ef5500a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Apr 2021 21:57:50 +0000 Subject: [PATCH 04/59] Bump composer/composer from 1.10.13 to 1.10.22 Bumps [composer/composer](https://github.com/composer/composer) from 1.10.13 to 1.10.22. - [Release notes](https://github.com/composer/composer/releases) - [Changelog](https://github.com/composer/composer/blob/master/CHANGELOG.md) - [Commits](https://github.com/composer/composer/compare/1.10.13...1.10.22) Signed-off-by: dependabot[bot] --- composer.lock | 351 +++++++++++++++++++++++++++++++------------------- 1 file changed, 218 insertions(+), 133 deletions(-) diff --git a/composer.lock b/composer.lock index 9cd8e8a80..126698bcb 100644 --- a/composer.lock +++ b/composer.lock @@ -197,6 +197,16 @@ "stream_filter_append", "stream_filter_register" ], + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], "time": "2019-04-09T12:31:48+00:00" }, { @@ -733,6 +743,20 @@ "uppercase", "words" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], "time": "2020-05-29T15:13:26+00:00" }, { @@ -795,6 +819,20 @@ "parser", "php" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], "time": "2020-05-25T17:44:05+00:00" }, { @@ -1074,6 +1112,20 @@ "laravel", "markdown" ], + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://www.patreon.com/GrahamJCampbell", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/markdown", + "type": "tidelift" + } + ], "time": "2020-04-14T14:11:12+00:00" }, { @@ -3649,27 +3701,22 @@ }, { "name": "psr/container", - "version": "1.0.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.2.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -3682,7 +3729,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common Container Interface (PHP FIG PSR-11)", @@ -3694,7 +3741,7 @@ "container-interop", "psr" ], - "time": "2017-02-14T16:28:37+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "psr/http-client", @@ -4434,16 +4481,16 @@ }, { "name": "symfony/console", - "version": "v4.4.13", + "version": "v4.4.21", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "b39fd99b9297b67fb7633b7d8083957a97e1e727" + "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/b39fd99b9297b67fb7633b7d8083957a97e1e727", - "reference": "b39fd99b9297b67fb7633b7d8083957a97e1e727", + "url": "https://api.github.com/repos/symfony/console/zipball/1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", + "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", "shasum": "" }, "require": { @@ -4478,11 +4525,6 @@ "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -4505,7 +4547,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "funding": [ { @@ -4521,7 +4563,7 @@ "type": "tidelift" } ], - "time": "2020-09-02T07:07:21+00:00" + "time": "2021-03-26T09:23:24+00:00" }, { "name": "symfony/css-selector", @@ -4958,27 +5000,22 @@ }, { "name": "symfony/finder", - "version": "v4.4.13", + "version": "v4.4.20", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2a78590b2c7e3de5c429628457c47541c58db9c7" + "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2a78590b2c7e3de5c429628457c47541c58db9c7", - "reference": "2a78590b2c7e3de5c429628457c47541c58db9c7", + "url": "https://api.github.com/repos/symfony/finder/zipball/2543795ab1570df588b9bbd31e1a2bd7037b94f6", + "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6", "shasum": "" }, "require": { "php": ">=7.1.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" @@ -5001,7 +5038,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "funding": [ { @@ -5017,7 +5054,7 @@ "type": "tidelift" } ], - "time": "2020-08-17T09:56:45+00:00" + "time": "2021-02-12T10:48:09+00:00" }, { "name": "symfony/http-client", @@ -5503,20 +5540,20 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454" + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-ctype": "For best performance" @@ -5524,7 +5561,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5575,7 +5612,7 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-iconv", @@ -5822,20 +5859,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a" + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-mbstring": "For best performance" @@ -5843,7 +5880,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5895,7 +5932,7 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-php70", @@ -6031,29 +6068,43 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca" + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6107,29 +6158,29 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981" + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { - "php": ">=7.0.8" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6187,7 +6238,7 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-uuid", @@ -6268,27 +6319,22 @@ }, { "name": "symfony/process", - "version": "v4.4.13", + "version": "v4.4.20", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479" + "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/65e70bab62f3da7089a8d4591fb23fbacacb3479", - "reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479", + "url": "https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a", + "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a", "shasum": "" }, "require": { "php": ">=7.1.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -6311,7 +6357,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "funding": [ { @@ -6327,7 +6373,7 @@ "type": "tidelift" } ], - "time": "2020-07-23T08:31:43+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -6499,21 +6545,21 @@ }, { "name": "symfony/service-contracts", - "version": "v2.2.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.0" + "psr/container": "^1.1" }, "suggest": { "symfony/service-implementation": "" @@ -6521,7 +6567,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -6571,7 +6617,7 @@ "type": "tidelift" } ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2021-04-01T10:43:52+00:00" }, { "name": "symfony/translation", @@ -6993,16 +7039,16 @@ "packages-dev": [ { "name": "composer/ca-bundle", - "version": "1.2.8", + "version": "1.2.9", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "8a7ecad675253e4654ea05505233285377405215" + "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8a7ecad675253e4654ea05505233285377405215", - "reference": "8a7ecad675253e4654ea05505233285377405215", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5", + "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5", "shasum": "" }, "require": { @@ -7011,14 +7057,15 @@ "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", + "phpstan/phpstan": "^0.12.55", "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -7059,20 +7106,20 @@ "type": "tidelift" } ], - "time": "2020-08-23T12:54:47+00:00" + "time": "2021-01-12T12:10:35+00:00" }, { "name": "composer/composer", - "version": "1.10.13", + "version": "1.10.22", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "47c841ba3b2d3fc0b4b13282cf029ea18b66d78b" + "reference": "28c9dfbe2351635961f670773e8d7b17bc5eda25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/47c841ba3b2d3fc0b4b13282cf029ea18b66d78b", - "reference": "47c841ba3b2d3fc0b4b13282cf029ea18b66d78b", + "url": "https://api.github.com/repos/composer/composer/zipball/28c9dfbe2351635961f670773e8d7b17bc5eda25", + "reference": "28c9dfbe2351635961f670773e8d7b17bc5eda25", "shasum": "" }, "require": { @@ -7081,7 +7128,7 @@ "composer/spdx-licenses": "^1.2", "composer/xdebug-handler": "^1.1", "justinrainbow/json-schema": "^5.2.10", - "php": "^5.3.2 || ^7.0", + "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1.0", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.0", @@ -7153,24 +7200,24 @@ "type": "tidelift" } ], - "time": "2020-09-09T09:46:34+00:00" + "time": "2021-04-27T11:10:45+00:00" }, { "name": "composer/semver", - "version": "1.7.0", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "114f819054a2ea7db03287f5efb757e2af6e4079" + "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/114f819054a2ea7db03287f5efb757e2af6e4079", - "reference": "114f819054a2ea7db03287f5efb757e2af6e4079", + "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", + "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { "phpunit/phpunit": "^4.5 || ^5.0.5" @@ -7228,20 +7275,20 @@ "type": "tidelift" } ], - "time": "2020-09-09T09:34:06+00:00" + "time": "2020-12-03T15:47:16+00:00" }, { "name": "composer/spdx-licenses", - "version": "1.5.4", + "version": "1.5.5", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "6946f785871e2314c60b4524851f3702ea4f2223" + "reference": "de30328a7af8680efdc03e396aad24befd513200" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/6946f785871e2314c60b4524851f3702ea4f2223", - "reference": "6946f785871e2314c60b4524851f3702ea4f2223", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200", + "reference": "de30328a7af8680efdc03e396aad24befd513200", "shasum": "" }, "require": { @@ -7253,7 +7300,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -7302,20 +7349,20 @@ "type": "tidelift" } ], - "time": "2020-07-15T15:35:07+00:00" + "time": "2020-12-03T16:04:16+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.4.3", + "version": "1.4.6", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ebd27a9866ae8254e873866f795491f02418c5a5" + "reference": "f27e06cd9675801df441b3656569b328e04aa37c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ebd27a9866ae8254e873866f795491f02418c5a5", - "reference": "ebd27a9866ae8254e873866f795491f02418c5a5", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", + "reference": "f27e06cd9675801df441b3656569b328e04aa37c", "shasum": "" }, "require": { @@ -7323,7 +7370,8 @@ "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "autoload": { @@ -7360,7 +7408,7 @@ "type": "tidelift" } ], - "time": "2020-08-19T10:27:58+00:00" + "time": "2021-03-25T17:01:18+00:00" }, { "name": "dealerdirect/phpcodesniffer-composer-installer", @@ -7552,6 +7600,20 @@ "constructor", "instantiate" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], "time": "2020-05-29T17:27:14+00:00" }, { @@ -8293,16 +8355,16 @@ "source": { "type": "git", "url": "https://github.com/mohammedmanssour/form-request-tester.git", - "reference": "e3efe064c35c48a3ae73b5e47140bf8fe220e7d5" + "reference": "a8b0e937346577d7568faab9dbdcd1a6bdb49bdc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mohammedmanssour/form-request-tester/zipball/e3efe064c35c48a3ae73b5e47140bf8fe220e7d5", - "reference": "e3efe064c35c48a3ae73b5e47140bf8fe220e7d5", + "url": "https://api.github.com/repos/mohammedmanssour/form-request-tester/zipball/a8b0e937346577d7568faab9dbdcd1a6bdb49bdc", + "reference": "a8b0e937346577d7568faab9dbdcd1a6bdb49bdc", "shasum": "" }, "require-dev": { - "orchestra/testbench": "~3.0" + "orchestra/testbench": "~6.0" }, "type": "library", "autoload": { @@ -8322,7 +8384,7 @@ } ], "description": "a collection of test helpers that help with testing form requests", - "time": "2020-05-30T21:04:46+00:00" + "time": "2020-10-25T08:54:32+00:00" }, { "name": "myclabs/deep-copy", @@ -8590,6 +8652,20 @@ "php", "static analysis" ], + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], "time": "2020-05-06T08:56:49+00:00" }, { @@ -8674,6 +8750,20 @@ "quality", "source" ], + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], "time": "2020-03-10T20:43:15+00:00" }, { @@ -10320,16 +10410,16 @@ }, { "name": "seld/jsonlint", - "version": "1.8.2", + "version": "1.8.3", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337" + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/590cfec960b77fd55e39b7d9246659e95dd6d337", - "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", "shasum": "" }, "require": { @@ -10375,7 +10465,7 @@ "type": "tidelift" } ], - "time": "2020-08-25T06:56:57+00:00" + "time": "2020-11-11T09:19:24+00:00" }, { "name": "seld/phar-utils", @@ -10580,16 +10670,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.1.5", + "version": "v5.2.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "f7b9ed6142a34252d219801d9767dedbd711da1a" + "reference": "8c86a82f51658188119e62cff0a050a12d09836f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/f7b9ed6142a34252d219801d9767dedbd711da1a", - "reference": "f7b9ed6142a34252d219801d9767dedbd711da1a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/8c86a82f51658188119e62cff0a050a12d09836f", + "reference": "8c86a82f51658188119e62cff0a050a12d09836f", "shasum": "" }, "require": { @@ -10597,11 +10687,6 @@ "symfony/polyfill-ctype": "~1.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" @@ -10624,7 +10709,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Filesystem Component", + "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "funding": [ { @@ -10640,7 +10725,7 @@ "type": "tidelift" } ], - "time": "2020-08-21T17:19:47+00:00" + "time": "2021-03-28T14:30:26+00:00" }, { "name": "symfony/stopwatch", From 641213925126444bac5148a6bb60b681300774b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 May 2021 17:39:01 +0000 Subject: [PATCH 05/59] Bump lodash from 4.17.20 to 4.17.21 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c6864f16..c195557e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12525,9 +12525,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.memoize": { "version": "4.1.2", diff --git a/package.json b/package.json index 58c829916..3559cb94c 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "jest-watch-typeahead": "^0.4.2", "jquery": "^3.5.1", "laravel-mix": "^5.0.4", - "lodash": "^4.17.15", + "lodash": "^4.17.21", "popper.js": "^1.16.1", "resolve-url-loader": "^3.1.1", "sass": "^1.26.9", From 8af76699f4b45861b831502c735e4ae9b1ec9052 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 May 2021 18:09:28 +0000 Subject: [PATCH 06/59] Bump url-parse from 1.4.7 to 1.5.1 Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.1. - [Release notes](https://github.com/unshiftio/url-parse/releases) - [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.1) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c6864f16..4679c2c0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17323,9 +17323,9 @@ } }, "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", "dev": true, "requires": { "querystringify": "^2.1.1", From fbb824976843257f7d62a2d11e6df7e82944a9cf Mon Sep 17 00:00:00 2001 From: PuzzleSecretary <39073962+PuzzleSecretary@users.noreply.github.com> Date: Fri, 7 May 2021 16:00:22 -0700 Subject: [PATCH 07/59] Yet another pun For whenever. --- strings/blind.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/strings/blind.txt b/strings/blind.txt index 6626c745f..3d9ceef1a 100644 --- a/strings/blind.txt +++ b/strings/blind.txt @@ -227,3 +227,7 @@ very chic Zombie geese are waterfoul. - +I bought some +cuccos for a +poultry sum. +- From f73752d348706d02e75a3e1b0539b1039a6b57c7 Mon Sep 17 00:00:00 2001 From: PuzzleSecretary <39073962+PuzzleSecretary@users.noreply.github.com> Date: Sat, 8 May 2021 05:38:59 -0700 Subject: [PATCH 08/59] Update blind.txt --- strings/blind.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/strings/blind.txt b/strings/blind.txt index 3d9ceef1a..0a54d0f95 100644 --- a/strings/blind.txt +++ b/strings/blind.txt @@ -231,3 +231,7 @@ I bought some cuccos for a poultry sum. - +The status of +clouds is up +in the air. +- From 2af5c24dca495e303a1cfaf0897ac799c9444359 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 May 2021 22:22:29 +0000 Subject: [PATCH 09/59] Bump hosted-git-info from 2.8.8 to 2.8.9 Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c6864f16..c2943753f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8723,9 +8723,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "hpack.js": { From ec057a8e9ad4232f94e799fbabb099660b26b42a Mon Sep 17 00:00:00 2001 From: PuzzleSecretary <39073962+PuzzleSecretary@users.noreply.github.com> Date: Mon, 10 May 2021 01:35:17 -0700 Subject: [PATCH 10/59] Update blind.txt As consensus dictates! --- strings/blind.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings/blind.txt b/strings/blind.txt index 0a54d0f95..2d6b29e15 100644 --- a/strings/blind.txt +++ b/strings/blind.txt @@ -231,7 +231,7 @@ I bought some cuccos for a poultry sum. - -The status of +The stratus of clouds is up in the air. - From d82023af4a990f6ee65e98a468611088f94fbf99 Mon Sep 17 00:00:00 2001 From: PuzzleSecretary <39073962+PuzzleSecretary@users.noreply.github.com> Date: Fri, 14 May 2021 18:45:43 -0700 Subject: [PATCH 11/59] Update blind.txt --- strings/blind.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/strings/blind.txt b/strings/blind.txt index 2d6b29e15..63b365b19 100644 --- a/strings/blind.txt +++ b/strings/blind.txt @@ -235,3 +235,7 @@ The stratus of clouds is up in the air. - +Tie two ropes +together?! +I think knot! +- From ea41f2fe0f81481c7fc04ac78c0661f191491b9a Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sun, 23 May 2021 13:12:01 -0400 Subject: [PATCH 12/59] Add Random as option to Heart Color (UI, settings, and applying to ROM). --- app/Rom.php | 5 +++++ resources/js/components/VTRomSettings.vue | 11 +++++++++-- resources/js/store/modules/romSettings.js | 3 ++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/Rom.php b/app/Rom.php index 98f1944c9..77422b796 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -1139,6 +1139,11 @@ public function setGanonInvincible(string $setting = 'no'): self */ public function setHeartColors(string $color): self { + if($color === 'random') { + $colorOptions = ['blue', 'green', 'yellow', 'red']; + $color = $colorOptions[mt_rand(0, 3)]; + } + switch ($color) { case 'blue': $byte = 0x2C; diff --git a/resources/js/components/VTRomSettings.vue b/resources/js/components/VTRomSettings.vue index bb523e110..4031c6b43 100644 --- a/resources/js/components/VTRomSettings.vue +++ b/resources/js/components/VTRomSettings.vue @@ -134,11 +134,18 @@ export default { value: "green", name: this.$i18n.t("rom.settings.heart_colors.green") }, - { value: "red", name: this.$i18n.t("rom.settings.heart_colors.red") }, + { + value: "red", + name: this.$i18n.t("rom.settings.heart_colors.red") + }, { value: "yellow", name: this.$i18n.t("rom.settings.heart_colors.yellow") - } + }, + { + value: "random", + name: this.$i18n.t("rom.settings.heart_colors.random") + }, ] }, defaults: { diff --git a/resources/js/store/modules/romSettings.js b/resources/js/store/modules/romSettings.js index 2c4cf5773..bab8015fd 100644 --- a/resources/js/store/modules/romSettings.js +++ b/resources/js/store/modules/romSettings.js @@ -35,7 +35,8 @@ export default { { value: "blue", name: "rom.settings.heart_colors.blue" }, { value: "green", name: "rom.settings.heart_colors.green" }, { value: "red", name: "rom.settings.heart_colors.red" }, - { value: "yellow", name: "rom.settings.heart_colors.yellow" } + { value: "yellow", name: "rom.settings.heart_colors.yellow" }, + { value: "random", name: "rom.settings.heart_colors.random" } ] }, initializing: true From 063c001a8d31a9016fe643b82f22da89ee32a914 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sun, 23 May 2021 13:23:01 -0400 Subject: [PATCH 13/59] Translations for new UI menu option. --- resources/lang/de/rom.php | 1 + resources/lang/en/rom.php | 1 + resources/lang/es/rom.php | 1 + resources/lang/fr/rom.php | 1 + 4 files changed, 4 insertions(+) diff --git a/resources/lang/de/rom.php b/resources/lang/de/rom.php index 8c4495201..3b4f4850b 100644 --- a/resources/lang/de/rom.php +++ b/resources/lang/de/rom.php @@ -49,6 +49,7 @@ 'green' => 'Grün', 'red' => 'Rot', 'yellow' => 'Gelb', + 'random' => 'Zufällig', ], 'play_as' => 'Spiele als', 'sprite_file_select' => '.zspr Datei auswählen', diff --git a/resources/lang/en/rom.php b/resources/lang/en/rom.php index 51488a9ba..976e59cb4 100644 --- a/resources/lang/en/rom.php +++ b/resources/lang/en/rom.php @@ -49,6 +49,7 @@ 'green' => 'Green', 'red' => 'Red', 'yellow' => 'Yellow', + 'random' => 'Random', ], 'play_as' => 'Play As', 'sprite_file_select' => 'Select .zspr File', diff --git a/resources/lang/es/rom.php b/resources/lang/es/rom.php index 153bf236d..15296b7b5 100644 --- a/resources/lang/es/rom.php +++ b/resources/lang/es/rom.php @@ -49,6 +49,7 @@ 'green' => 'Verde', 'red' => 'Rojo', 'yellow' => 'Amarillo', + 'random' => 'Aleatorio', ], 'play_as' => 'Jugar Como', 'sprite_file_select' => 'Selecciona archivo .zspr', diff --git a/resources/lang/fr/rom.php b/resources/lang/fr/rom.php index 465aa9202..4d1abbf07 100644 --- a/resources/lang/fr/rom.php +++ b/resources/lang/fr/rom.php @@ -49,6 +49,7 @@ 'green' => 'Vert', 'red' => 'Rouge', 'yellow' => 'Jaune', + 'random' => 'Aléatoire', ], 'play_as' => 'Jouer en tant que', 'sprite_file_select' => 'Sélectionnez le fichier .zspr', From 6e78e577e95b8b375688a4d6fcfc23796128ee36 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sun, 23 May 2021 13:41:11 -0400 Subject: [PATCH 14/59] Unit test setting 'random' color. --- tests/RomTest.php | 110 +++++++++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 44 deletions(-) diff --git a/tests/RomTest.php b/tests/RomTest.php index 502be912a..df69e37c8 100644 --- a/tests/RomTest.php +++ b/tests/RomTest.php @@ -710,68 +710,90 @@ public function testSetHeartColorsBlue() { $this->rom->setHeartColors('blue'); - $this->assertEquals(0x2C, $this->rom->read(0x6FA1E)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA20)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA22)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA24)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA26)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA28)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA2A)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA2C)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA2E)); - $this->assertEquals(0x2C, $this->rom->read(0x6FA30)); - $this->assertEquals(0x0D, $this->rom->read(0x65561)); + $this->assertHeartColorSetting('blue'); } public function testSetHeartColorsGreen() { $this->rom->setHeartColors('green'); - $this->assertEquals(0x3C, $this->rom->read(0x6FA1E)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA20)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA22)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA24)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA26)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA28)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA2A)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA2C)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA2E)); - $this->assertEquals(0x3C, $this->rom->read(0x6FA30)); - $this->assertEquals(0x19, $this->rom->read(0x65561)); + $this->assertHeartColorSetting('green'); } public function testSetHeartColorsYellow() { $this->rom->setHeartColors('yellow'); - $this->assertEquals(0x28, $this->rom->read(0x6FA1E)); - $this->assertEquals(0x28, $this->rom->read(0x6FA20)); - $this->assertEquals(0x28, $this->rom->read(0x6FA22)); - $this->assertEquals(0x28, $this->rom->read(0x6FA24)); - $this->assertEquals(0x28, $this->rom->read(0x6FA26)); - $this->assertEquals(0x28, $this->rom->read(0x6FA28)); - $this->assertEquals(0x28, $this->rom->read(0x6FA2A)); - $this->assertEquals(0x28, $this->rom->read(0x6FA2C)); - $this->assertEquals(0x28, $this->rom->read(0x6FA2E)); - $this->assertEquals(0x28, $this->rom->read(0x6FA30)); - $this->assertEquals(0x09, $this->rom->read(0x65561)); + $this->assertHeartColorSetting('yellow'); } public function testSetHeartColorsRed() { $this->rom->setHeartColors('red'); - $this->assertEquals(0x24, $this->rom->read(0x6FA1E)); - $this->assertEquals(0x24, $this->rom->read(0x6FA20)); - $this->assertEquals(0x24, $this->rom->read(0x6FA22)); - $this->assertEquals(0x24, $this->rom->read(0x6FA24)); - $this->assertEquals(0x24, $this->rom->read(0x6FA26)); - $this->assertEquals(0x24, $this->rom->read(0x6FA28)); - $this->assertEquals(0x24, $this->rom->read(0x6FA2A)); - $this->assertEquals(0x24, $this->rom->read(0x6FA2C)); - $this->assertEquals(0x24, $this->rom->read(0x6FA2E)); - $this->assertEquals(0x24, $this->rom->read(0x6FA30)); - $this->assertEquals(0x05, $this->rom->read(0x65561)); + $this->assertHeartColorSetting('red'); + } + + public function testSetHeartColorsDefault() + { + $this->rom->setHeartColors('some invalid string value'); + + $this->assertHeartColorSetting('red'); + } + + public function testSetHeartColorsRandom() + { + mt_srand(0); // mt_rand(0, 3) will return 0; + $this->rom->setHeartColors('random'); + $this->assertHeartColorSetting('blue'); + + mt_srand(1); // mt_rand(0, 3) will return 1; + $this->rom->setHeartColors('random'); + $this->assertHeartColorSetting('green'); + + mt_srand(3); // mt_rand(0, 3) will return 2; + $this->rom->setHeartColors('random'); + $this->assertHeartColorSetting('yellow'); + + mt_srand(5); // mt_rand(0, 3) will return 3; + $this->rom->setHeartColors('random'); + $this->assertHeartColorSetting('red'); + } + + private function assertHeartColorSetting($expectedColor) + { + switch ($expectedColor) { + case 'blue': + $expectedByte = 0x2C; + $expectedFileByte = 0x0D; + break; + case 'green': + $expectedByte = 0x3C; + $expectedFileByte = 0x19; + break; + case 'yellow': + $expectedByte = 0x28; + $expectedFileByte = 0x09; + break; + case 'red': + $expectedByte = 0x24; + $expectedFileByte = 0x05; + default: + $expectedByte = 0x00; + $expectedFileByte = 0x00; + } + + $this->assertEquals($expectedByte, $this->rom->read(0x6FA1E)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA20)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA22)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA24)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA26)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA28)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA2A)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA2C)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA2E)); + $this->assertEquals($expectedByte, $this->rom->read(0x6FA30)); + $this->assertEquals($expectedFileByte, $this->rom->read(0x65561)); } public function testSetText() From 1381fad4766f604a7069d492b4d9914aa82a9dbc Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sun, 23 May 2021 13:45:49 -0400 Subject: [PATCH 15/59] Comment fix-up. --- tests/RomTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/RomTest.php b/tests/RomTest.php index df69e37c8..55f5eccb5 100644 --- a/tests/RomTest.php +++ b/tests/RomTest.php @@ -743,19 +743,19 @@ public function testSetHeartColorsDefault() public function testSetHeartColorsRandom() { - mt_srand(0); // mt_rand(0, 3) will return 0; + mt_srand(0); // mt_rand(0, 3) will return 0 $this->rom->setHeartColors('random'); $this->assertHeartColorSetting('blue'); - mt_srand(1); // mt_rand(0, 3) will return 1; + mt_srand(1); // mt_rand(0, 3) will return 1 $this->rom->setHeartColors('random'); $this->assertHeartColorSetting('green'); - mt_srand(3); // mt_rand(0, 3) will return 2; + mt_srand(3); // mt_rand(0, 3) will return 2 $this->rom->setHeartColors('random'); $this->assertHeartColorSetting('yellow'); - mt_srand(5); // mt_rand(0, 3) will return 3; + mt_srand(5); // mt_rand(0, 3) will return 3 $this->rom->setHeartColors('random'); $this->assertHeartColorSetting('red'); } From 26f6dcd6636c0a64728dd120b3fc1f362df6a0bc Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sun, 23 May 2021 13:56:41 -0400 Subject: [PATCH 16/59] Missed a break statement. --- tests/RomTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/RomTest.php b/tests/RomTest.php index 55f5eccb5..3654bd8eb 100644 --- a/tests/RomTest.php +++ b/tests/RomTest.php @@ -778,6 +778,7 @@ private function assertHeartColorSetting($expectedColor) case 'red': $expectedByte = 0x24; $expectedFileByte = 0x05; + break; default: $expectedByte = 0x00; $expectedFileByte = 0x00; @@ -793,6 +794,7 @@ private function assertHeartColorSetting($expectedColor) $this->assertEquals($expectedByte, $this->rom->read(0x6FA2C)); $this->assertEquals($expectedByte, $this->rom->read(0x6FA2E)); $this->assertEquals($expectedByte, $this->rom->read(0x6FA30)); + $this->assertEquals($expectedFileByte, $this->rom->read(0x65561)); } From 74783daf44c6631a4ec3ffb1fffd3f711dff1d31 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sun, 23 May 2021 14:15:31 -0400 Subject: [PATCH 17/59] Setting heart color in JS ROM generator. --- resources/js/rom.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resources/js/rom.js b/resources/js/rom.js index 2f8fc8d6e..4a39bf71c 100644 --- a/resources/js/rom.js +++ b/resources/js/rom.js @@ -250,6 +250,11 @@ export default class ROM { let byte = 0x24; let file_byte = 0x05; + if (color_on === "random") { + const colorOptions = ["blue", "green", "yellow", "red"]; + color_on = colorOptions[Math.floor(Math.random() * colorOptions.length)]; + }; + switch (color_on) { case "blue": byte = 0x2c; From d4165cfc2ba7ad0f9519eea641ed9b3e902cbb82 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sun, 23 May 2021 19:37:17 -0400 Subject: [PATCH 18/59] Ran i18n generator. Lots of whitespace. --- resources/js/vue-i18n-locales.generated.js | 2748 ++++++++++---------- 1 file changed, 1376 insertions(+), 1372 deletions(-) diff --git a/resources/js/vue-i18n-locales.generated.js b/resources/js/vue-i18n-locales.generated.js index b8d4e691e..05cd86400 100644 --- a/resources/js/vue-i18n-locales.generated.js +++ b/resources/js/vue-i18n-locales.generated.js @@ -1,227 +1,5 @@ export default { "de": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Wähle Voreinstellungen", - "customize": "Customire", - "options": { - "default": "Default", - "beginner": "Beginner", - "veetorp": "OWG (Veetorp’s Favorit)", - "crosskeys": "Crosskeys", - "quick": "Super Schnell", - "nightmare": "Albtraum", - "tournament": "Turnier", - "custom": "Benutzerdefiniert" - } - }, - "placement": { - "title": "Gegenstandsplatzierung" - }, - "item_placement": { - "title": "Gegenstandsplatzierung", - "options": { - "basic": "Basis", - "advanced": "Erweitert" - } - }, - "dungeon_items": { - "title": "Palastgegenstände", - "options": { - "standard": "Standard", - "mc": "Karten/Kompässe", - "mcs": "Karten/Kompässe/kleine Schlüssel", - "full": "Keysanity" - } - }, - "accessibility": { - "title": "Zugänglichkeit", - "options": { - "items": "100% Inventar", - "locations": "100% der Orte", - "none": "Schaffbar" - } - }, - "glitches_required": { - "title": "Vorausgesetzte Glitches", - "options": { - "none": "Keine", - "overworld_glitches": "Overworld Glitches", - "major_glitches": "Major Glitches", - "no_logic": "Keine Logik" - }, - "glitch_warning": "Diese Einstellung setzt Wissen von Major Glitches voraus**" - }, - "goal": { - "title": "Ziel", - "options": { - "ganon": "Besiege Ganon", - "fast_ganon": "Fast Ganon", - "dungeons": "Alle Dungeons", - "pedestal": "Master-Schwert Sockel", - "triforce-hunt": "Triforce-Splitter" - } - }, - "tower_open": { - "title": "Turm öffnen", - "options": { - "0": "0 Kristalle", - "1": "1 Kristall", - "2": "2 Kristalle", - "3": "3 Kristalle", - "4": "4 Kristalle", - "5": "5 Kristalle", - "6": "6 Kristalle", - "7": "7 Kristalle", - "random": "Zufällig" - } - }, - "ganon_open": { - "title": "Ganon verwundbar machen", - "options": { - "0": "0 Kristalle", - "1": "1 Kristall", - "2": "2 Kristalle", - "3": "3 Kristalle", - "4": "4 Kristalle", - "5": "5 Kristalle", - "6": "6 Kristalle", - "7": "7 Kristalle", - "random": "Zufällig" - } - }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "Zustand der Welt", - "options": { - "standard": "Standard", - "open": "Offen", - "inverted": "Invertiert", - "retro": "Retro" - } - }, - "entrance_shuffle": { - "title": "Entrance Shuffle", - "options": { - "none": "Keine", - "simple": "Simpel", - "restricted": "Beschränkt", - "full": "Voll", - "crossed": "Gekreuzt", - "insanity": "Wahnsinn" - } - }, - "boss_shuffle": { - "title": "Boss Shuffle", - "options": { - "none": "Keine", - "simple": "Simpel", - "full": "Voll", - "random": "Zufällig" - } - }, - "enemy_shuffle": { - "title": "Enemy Shuffle", - "options": { - "none": "Keine", - "shuffled": "Gemischt", - "random": "Zufällig" - } - }, - "hints": { - "title": "Hinweise", - "options": { - "on": "An", - "off": "Aus" - } - }, - "weapons": { - "title": "Schwerter", - "options": { - "randomized": "Zufällig", - "assured": "Garantiert", - "vanilla": "Vanilla", - "swordless": "Schwertlos" - } - }, - "item_pool": { - "title": "Item Pool", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Diese Erweiterung ist für die Verwundung mit Twitches Crowd Control Erweiterung gedacht. Für mehr Info´s: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Gegendstands Funktionalität", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte" - } - }, - "enemy_damage": { - "title": "Gegnerschaden", - "options": { - "default": "Default", - "shuffled": "Gemischt", - "random": "Zufällig" - } - }, - "enemy_health": { - "title": "Gegnerleben", - "options": { - "default": "Default", - "easy": "Einfach", - "hard": "Schwer", - "expert": "Experte" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Nur bei Generieren" - } - }, - "generate": { - "race": "Generiere ROM für Rennen", - "race_warning": "Spoilerfrei", - "spoiler_race": "ROM für Spoiler Rennen", - "casual": "Generiere ROM", - "back": "Ändere Einstellung", - "regenerate": "Erneut erstellen", - "regenerate_tooltip": "Erstellt ein neues Spiel mit den gleichen Einstellungen", - "generating": "Am erstellen..." - }, - "details": { - "title": "Spiel Details", - "save_spoiler": "Speichere Spoiler", - "save_rom": "Speichere Rom" - }, - "variation": { - "title": "Variation" - }, - "difficulty": { - "title": "Schwierigkeitsgrad", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte", - "insane": "Wahnsinnig", - "crowdControl": "Crowd Control" - } - } - }, "customizer": { "settings": { "timers": { @@ -304,40 +82,156 @@ export default { } } }, - "item": { - "Random": "Zufällig", - "BottleWithRandom": "Flasche (Zufällig)", - "Nothing": "Nichts", - "UncleSword": "Progressives Schwert", - "L1Sword": "Schwert des Onkels", - "L1SwordAndShield": "Schwert und Schild des Onkels", - "L2Sword": "Master-Schwert", - "MasterSword": "Master-Schwert", - "L3Sword": "Gehärtetes Schwert", - "L4Sword": "Goldenes Schwert", - "BlueShield": "Schild des Onkels", - "RedShield": "Rotes Schild", - "MirrorShield": "Spiegelschild", - "FireRod": "Feuerstab", - "IceRod": "Eisstab", - "Hammer": "Hammer", - "Hookshot": "Enterharken", - "Bow": "Bogen", - "Boomerang": "Blauer Bumerang", - "Powder": "Magisches Pulver", - "Bee": "Biene", - "Bombos": "Bombos-Medaillon", - "Ether": "Ether-Medaillon", - "Quake": "Quake-Medaillon", - "Lamp": "Lampe", - "Shovel": "Schaufel", - "OcarinaInactive": "Flöte", - "CaneOfSomaria": "Somaria Stab", - "Bottle": "Flasche (Leer)", - "PieceOfHeart": "Herzteil", - "CaneOfByrna": "Byrna Stab", - "Cape": "Magischer Umhang", - "MagicMirror": "Magischer Spiegel", + "enemizer": { + "title": "Enemizer", + "enable": "Aktiviere Enemizer", + "disable": "Deaktiviere Enemizer", + "enemy_health": { + "title": "Gegner Leben", + "options": [ + "Regulär", + "Einfach (1-4 hp)", + "Mittel (2-15 hp)", + "Schwer (2-30 hp)", + "Wahnsinnig (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Gegner Schaden", + "options": { + "off": "Regulär", + "shuffle": "Durcheinander", + "chaos": "Chaos" + } + }, + "bosses": { + "title": "Bosse", + "options": { + "off": "Regulär", + "basic": "Basis", + "normal": "Normal", + "chaos": "Chaos" + } + }, + "palette_shuffle": "Palettenmischung", + "pot_shuffle": "Topf mischen", + "enemy_shuffle": "Gegner mischen" + }, + "entrance": { + "title": "Entrance Randomizer", + "switch": { + "item": "Wechsele zum Item Randomizer" + }, + "rom": { + "options": "ROM Optionen" + }, + "difficulty": { + "title": "Schwierigkeit", + "options": { + "easy": "Einfach", + "normal": "Mittel", + "hard": "Schwer", + "expert": "Experte", + "insane": "Wahnsinnig" + } + }, + "goal": { + "title": "Ziel", + "options": { + "ganon": "Besiege Ganon", + "crystals": "Kristalle", + "dungeons": "Alle Dungeons", + "pedestal": "Master-Schwert Sockel", + "triforcehunt": "Triforce Teile" + } + }, + "logic": { + "title": "Logik", + "options": { + "NoGlitches": "Keine Glitches" + } + }, + "mode": { + "title": "Zustand", + "options": { + "swordless": "Schwertlos", + "open": "Offen" + } + }, + "shuffle": { + "title": "Mischung", + "options": { + "simple": "Simpel", + "restricted": "Beschränkt", + "full": "Voll", + "crossed": "Gekreuzt", + "insanity": "Wahnsinn" + } + }, + "variation": { + "title": "Variation", + "options": { + "none": "Keine", + "timed-race": "Zeitrennen", + "timed-ohko": "Zeitlimit bis OHKO", + "ohko": "OHKO", + "triforce-hunt": "Triforce-Splitter Jagd", + "key-sanity": "Keysanity", + "retro": "Retro" + } + }, + "generate": { + "race": "Generiere ROM für Rennen", + "spoiler_race": "ROM für Spoiler Rennen", + "casual": "Generiere ROM" + }, + "details": { + "title": "Spiele Details", + "save_spoiler": "Speichere Spoiler", + "save_rom": "Speichere Rom" + } + }, + "error": { + "title": "Fehler", + "429": "Auch wenn wir schätzen das du einen haufen Spiele generierst, andere Leute möchten dies aber auch. Bitte kommen später wieder wenn du mehr generieren möchtest.", + "failed_generation": "Fehler beim erstellen :(", + "bad_file": "Datei nicht erkannt", + "quota_exceeded_error": "Lokaler Cache Speicher ist voll." + }, + "item": { + "Random": "Zufällig", + "BottleWithRandom": "Flasche (Zufällig)", + "Nothing": "Nichts", + "UncleSword": "Progressives Schwert", + "L1Sword": "Schwert des Onkels", + "L1SwordAndShield": "Schwert und Schild des Onkels", + "L2Sword": "Master-Schwert", + "MasterSword": "Master-Schwert", + "L3Sword": "Gehärtetes Schwert", + "L4Sword": "Goldenes Schwert", + "BlueShield": "Schild des Onkels", + "RedShield": "Rotes Schild", + "MirrorShield": "Spiegelschild", + "FireRod": "Feuerstab", + "IceRod": "Eisstab", + "Hammer": "Hammer", + "Hookshot": "Enterharken", + "Bow": "Bogen", + "Boomerang": "Blauer Bumerang", + "Powder": "Magisches Pulver", + "Bee": "Biene", + "Bombos": "Bombos-Medaillon", + "Ether": "Ether-Medaillon", + "Quake": "Quake-Medaillon", + "Lamp": "Lampe", + "Shovel": "Schaufel", + "OcarinaInactive": "Flöte", + "CaneOfSomaria": "Somaria Stab", + "Bottle": "Flasche (Leer)", + "PieceOfHeart": "Herzteil", + "CaneOfByrna": "Byrna Stab", + "Cape": "Magischer Umhang", + "MagicMirror": "Magischer Spiegel", "PowerGlove": "Krafthandschuhe", "TitansMitt": "Titanenhandschuhe", "BookOfMudora": "Buch Mudora", @@ -520,361 +414,188 @@ export default { "Ganon": "Ganon", "Test": "Gegenstand fürs testen" }, - "rom": { - "loader": { - "title": "Anfangen", - "file_select": "ROM Datei auswählen", - "content": "
  1. Wähle die Rom Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
  2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
  3. Klicke Generiere ROM für Rennen
  4. Dann speichere deine Rom und fang an zu spielen
" - }, - "info": { - "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", - "mystery": "Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!", - "logic": "Vorausgesetzte Glitches", - "accessibility": "Zugänglichkeit", - "build": "ROM build", - "difficulty": "Schwierigkeitsgrad", - "variation": "Variation", - "shuffle": "Entrance Shuffle", - "mode": "Zustand der Welt", - "weapons": "Schwerter", - "goal": "Ziel", - "permalink": "Permalink", - "special": "Spezial", - "notes": "Notizen", - "generated": "Erstellt" - }, - "settings": { - "heart_speed": "Geschwindigkeit des Warnungston bei wenig Leben", - "heart_speeds": { - "off": "Aus", - "double": "Doppelte Geschwindigkeit", - "normal": "Normale Geschwindigkeit", - "half": "Halbe Geschwindigkeit", - "quarter": "Viertel Geschwindigkeit" - }, - "menu_speed": "Menü Geschwindigkeit", - "menu_speeds": { - "instant": "Instant", - "fast": "Schnell", - "normal": "Normal", - "slow": "Langsam" - }, - "heart_color": "Farbe der Herzen", - "heart_colors": { - "blue": "Blau", - "green": "Grün", - "red": "Rot", - "yellow": "Gelb" - }, - "play_as": "Spiele als", - "sprite_file_select": ".zspr Datei auswählen", - "music": "Hintergrundmusik", - "music_info": "(setze zu \"Keine\" für MSU-1 Support)", - "quickswap": "Gegenstand Schnellwechsel", - "palette_shuffle": "Palette Shuffle", - "race_warning": "Funktioniert nicht in einer Rom für Rennen" - } - }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Wechsele zum Item Randomizer" - }, - "rom": { - "options": "ROM Optionen" - }, - "difficulty": { - "title": "Schwierigkeit", + "randomizer": { + "title": "Randomizer", + "preset": { + "title": "Wähle Voreinstellungen", + "customize": "Customire", "options": { - "easy": "Einfach", - "normal": "Mittel", - "hard": "Schwer", - "expert": "Experte", - "insane": "Wahnsinnig" + "default": "Default", + "beginner": "Beginner", + "veetorp": "OWG (Veetorp’s Favorit)", + "crosskeys": "Crosskeys", + "quick": "Super Schnell", + "nightmare": "Albtraum", + "tournament": "Turnier", + "custom": "Benutzerdefiniert" } }, - "goal": { - "title": "Ziel", + "placement": { + "title": "Gegenstandsplatzierung" + }, + "item_placement": { + "title": "Gegenstandsplatzierung", "options": { - "ganon": "Besiege Ganon", - "crystals": "Kristalle", - "dungeons": "Alle Dungeons", - "pedestal": "Master-Schwert Sockel", - "triforcehunt": "Triforce Teile" + "basic": "Basis", + "advanced": "Erweitert" } }, - "logic": { - "title": "Logik", + "dungeon_items": { + "title": "Palastgegenstände", "options": { - "NoGlitches": "Keine Glitches" - } - }, - "mode": { - "title": "Zustand", - "options": { - "swordless": "Schwertlos", - "open": "Offen" - } - }, - "shuffle": { - "title": "Mischung", - "options": { - "simple": "Simpel", - "restricted": "Beschränkt", - "full": "Voll", - "crossed": "Gekreuzt", - "insanity": "Wahnsinn" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "Keine", - "timed-race": "Zeitrennen", - "timed-ohko": "Zeitlimit bis OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce-Splitter Jagd", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generiere ROM für Rennen", - "spoiler_race": "ROM für Spoiler Rennen", - "casual": "Generiere ROM" - }, - "details": { - "title": "Spiele Details", - "save_spoiler": "Speichere Spoiler", - "save_rom": "Speichere Rom" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Aktiviere Enemizer", - "disable": "Deaktiviere Enemizer", - "enemy_health": { - "title": "Gegner Leben", - "options": [ - "Regulär", - "Einfach (1-4 hp)", - "Mittel (2-15 hp)", - "Schwer (2-30 hp)", - "Wahnsinnig (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Gegner Schaden", - "options": { - "off": "Regulär", - "shuffle": "Durcheinander", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Bosse", - "options": { - "off": "Regulär", - "basic": "Basis", - "normal": "Normal", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Palettenmischung", - "pot_shuffle": "Topf mischen", - "enemy_shuffle": "Gegner mischen" - }, - "error": { - "title": "Fehler", - "429": "Auch wenn wir schätzen das du einen haufen Spiele generierst, andere Leute möchten dies aber auch. Bitte kommen später wieder wenn du mehr generieren möchtest.", - "failed_generation": "Fehler beim erstellen :(", - "bad_file": "Datei nicht erkannt", - "quota_exceeded_error": "Lokaler Cache Speicher ist voll." - } - }, - "en": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Select Preset", - "customize": "Customize", - "options": { - "default": "Default", - "beginner": "Beginner", - "veetorp": "OWG (Veetorp’s Favorite)", - "crosskeys": "Crosskeys", - "quick": "Super Quick", - "nightmare": "Nightmare", - "tournament": "Tournament", - "custom": "Custom" - } - }, - "placement": { - "title": "Item Placement" - }, - "item_placement": { - "title": "Item Placement", - "options": { - "basic": "Basic", - "advanced": "Advanced" - } - }, - "dungeon_items": { - "title": "Dungeon Item Shuffle", - "options": { - "standard": "Standard", - "mc": "Maps/Compasses", - "mcs": "Maps/Compasses/Small Keys", - "full": "Keysanity" + "standard": "Standard", + "mc": "Karten/Kompässe", + "mcs": "Karten/Kompässe/kleine Schlüssel", + "full": "Keysanity" } }, "accessibility": { - "title": "Accessibility", + "title": "Zugänglichkeit", "options": { - "items": "100% Inventory", - "locations": "100% Locations", - "none": "Beatable" + "items": "100% Inventar", + "locations": "100% der Orte", + "none": "Schaffbar" } }, "glitches_required": { - "title": "Glitches Required", + "title": "Vorausgesetzte Glitches", "options": { - "none": "None", + "none": "Keine", "overworld_glitches": "Overworld Glitches", "major_glitches": "Major Glitches", - "no_logic": "No Logic" + "no_logic": "Keine Logik" }, - "glitch_warning": "These settings require knowledge of Major Glitches**" + "glitch_warning": "Diese Einstellung setzt Wissen von Major Glitches voraus**" }, "goal": { - "title": "Goal", + "title": "Ziel", "options": { - "ganon": "Defeat Ganon", + "ganon": "Besiege Ganon", "fast_ganon": "Fast Ganon", - "dungeons": "All Dungeons", - "pedestal": "Master Sword Pedestal", - "triforce-hunt": "Triforce Pieces" + "dungeons": "Alle Dungeons", + "pedestal": "Master-Schwert Sockel", + "triforce-hunt": "Triforce-Splitter" } }, "tower_open": { - "title": "Open Tower", + "title": "Turm öffnen", "options": { - "0": "0 Crystals", - "1": "1 Crystal", - "2": "2 Crystals", - "3": "3 Crystals", - "4": "4 Crystals", - "5": "5 Crystals", - "6": "6 Crystals", - "7": "7 Crystals", - "random": "Random" + "0": "0 Kristalle", + "1": "1 Kristall", + "2": "2 Kristalle", + "3": "3 Kristalle", + "4": "4 Kristalle", + "5": "5 Kristalle", + "6": "6 Kristalle", + "7": "7 Kristalle", + "random": "Zufällig" } }, "ganon_open": { - "title": "Ganon Vulnerable", + "title": "Ganon verwundbar machen", "options": { - "0": "0 Crystals", - "1": "1 Crystal", - "2": "2 Crystals", - "3": "3 Crystals", - "4": "4 Crystals", - "5": "5 Crystals", - "6": "6 Crystals", - "7": "7 Crystals", - "random": "Random" + "0": "0 Kristalle", + "1": "1 Kristall", + "2": "2 Kristalle", + "3": "3 Kristalle", + "4": "4 Kristalle", + "5": "5 Kristalle", + "6": "6 Kristalle", + "7": "7 Kristalle", + "random": "Zufällig" } }, "gameplay": { "title": "Gameplay" }, "world_state": { - "title": "World State", + "title": "Zustand der Welt", "options": { "standard": "Standard", - "open": "Open", - "inverted": "Inverted", + "open": "Offen", + "inverted": "Invertiert", "retro": "Retro" } }, "entrance_shuffle": { "title": "Entrance Shuffle", "options": { - "none": "None", - "simple": "Simple", - "restricted": "Restricted", - "full": "Full", - "crossed": "Crossed", - "insanity": "Insanity" + "none": "Keine", + "simple": "Simpel", + "restricted": "Beschränkt", + "full": "Voll", + "crossed": "Gekreuzt", + "insanity": "Wahnsinn" } }, "boss_shuffle": { "title": "Boss Shuffle", "options": { - "none": "None", - "simple": "Simple", - "full": "Full", - "random": "Random" + "none": "Keine", + "simple": "Simpel", + "full": "Voll", + "random": "Zufällig" } }, "enemy_shuffle": { "title": "Enemy Shuffle", "options": { - "none": "None", - "shuffled": "Shuffled", - "random": "Random" + "none": "Keine", + "shuffled": "Gemischt", + "random": "Zufällig" } }, "hints": { - "title": "Hints", + "title": "Hinweise", "options": { - "on": "On", - "off": "Off" + "on": "An", + "off": "Aus" } }, "weapons": { - "title": "Swords", + "title": "Schwerter", "options": { - "randomized": "Randomized", - "assured": "Assured", + "randomized": "Zufällig", + "assured": "Garantiert", "vanilla": "Vanilla", - "swordless": "Swordless" + "swordless": "Schwertlos" } }, "item_pool": { "title": "Item Pool", "options": { - "easy": "Easy", + "easy": "Einfach", "normal": "Normal", - "hard": "Hard", - "expert": "Expert", + "hard": "Schwer", + "expert": "Experte", "crowd_control": "Crowd Control" }, - "crowd_control_warning": "* This setting is meant to be used with the Crowd Control Twitch extension. find out more: https://crowdcontrol.live/" + "crowd_control_warning": "* Diese Erweiterung ist für die Verwundung mit Twitches Crowd Control Erweiterung gedacht. Für mehr Info´s: https://crowdcontrol.live/" }, "item_functionality": { - "title": "Item Functionality", + "title": "Gegendstands Funktionalität", "options": { - "easy": "Easy", + "easy": "Einfach", "normal": "Normal", - "hard": "Hard", - "expert": "Expert" + "hard": "Schwer", + "expert": "Experte" } }, "enemy_damage": { - "title": "Enemy Damage", + "title": "Gegnerschaden", "options": { "default": "Default", - "shuffled": "Shuffled", - "random": "Random" + "shuffled": "Gemischt", + "random": "Zufällig" } }, "enemy_health": { - "title": "Enemy Health", + "title": "Gegnerleben", "options": { "default": "Default", - "easy": "Easy", - "hard": "Hard", - "expert": "Expert" + "easy": "Einfach", + "hard": "Schwer", + "expert": "Experte" } }, "spoiler": { @@ -882,60 +603,97 @@ export default { "options": { "off": "Disabled", "on": "Enabled", - "generate": "Only on Generate", - "mystery": "Mystery (settings hidden)" + "generate": "Nur bei Generieren" } }, "generate": { - "race": "Generate Race ROM", - "race_warning": "Spoilers will never be available for this option.", - "spoiler_race": "Generate Normal ROM", - "casual": "Generate ROM", - "back": "Change Settings", - "regenerate": "Generate Again", - "regenerate_tooltip": "Generate new game with same settings", - "generating": "Generating..." + "race": "Generiere ROM für Rennen", + "race_warning": "Spoilerfrei", + "spoiler_race": "ROM für Spoiler Rennen", + "casual": "Generiere ROM", + "back": "Ändere Einstellung", + "regenerate": "Erneut erstellen", + "regenerate_tooltip": "Erstellt ein neues Spiel mit den gleichen Einstellungen", + "generating": "Am erstellen..." }, "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save Rom" + "title": "Spiel Details", + "save_spoiler": "Speichere Spoiler", + "save_rom": "Speichere Rom" }, "variation": { "title": "Variation" }, "difficulty": { - "title": "Difficulty", + "title": "Schwierigkeitsgrad", "options": { - "easy": "Easy", + "easy": "Einfach", "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane", + "hard": "Schwer", + "expert": "Experte", + "insane": "Wahnsinnig", "crowdControl": "Crowd Control" } } }, - "region": { - "all": "All Regions", - "Light World": "Light World", - "Hyrule Castle": "Hyrule Castle", - "Eastern Palace": "Eastern Palace", - "Desert Palace": "Desert Palace", - "Death Mountain": "Death Mountain", - "Tower Of Hera": "Tower Of Hera", - "Castle Tower": "Castle Tower", - "Dark World": "Dark World", - "Dark Palace": "Dark Palace", - "Swamp Palace": "Swamp Palace", - "Skull Woods": "Skull Woods", - "Thieves Town": "Thieves Town", - "Ice Palace": "Ice Palace", - "Misery Mire": "Misery Mire", - "Turtle Rock": "Turtle Rock", - "Ganons Tower": "Ganons Tower", - "Special": "Special" - }, + "rom": { + "loader": { + "title": "Anfangen", + "file_select": "ROM Datei auswählen", + "content": "
  1. Wähle die Rom Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
  2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
  3. Klicke Generiere ROM für Rennen
  4. Dann speichere deine Rom und fang an zu spielen
" + }, + "info": { + "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", + "mystery": "Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!", + "logic": "Vorausgesetzte Glitches", + "accessibility": "Zugänglichkeit", + "build": "ROM build", + "difficulty": "Schwierigkeitsgrad", + "variation": "Variation", + "shuffle": "Entrance Shuffle", + "mode": "Zustand der Welt", + "weapons": "Schwerter", + "goal": "Ziel", + "permalink": "Permalink", + "special": "Spezial", + "notes": "Notizen", + "generated": "Erstellt" + }, + "settings": { + "heart_speed": "Geschwindigkeit des Warnungston bei wenig Leben", + "heart_speeds": { + "off": "Aus", + "double": "Doppelte Geschwindigkeit", + "normal": "Normale Geschwindigkeit", + "half": "Halbe Geschwindigkeit", + "quarter": "Viertel Geschwindigkeit" + }, + "menu_speed": "Menü Geschwindigkeit", + "menu_speeds": { + "instant": "Instant", + "fast": "Schnell", + "normal": "Normal", + "slow": "Langsam" + }, + "heart_color": "Farbe der Herzen", + "heart_colors": { + "blue": "Blau", + "green": "Grün", + "red": "Rot", + "yellow": "Gelb", + "random": "Zufällig" + }, + "play_as": "Spiele als", + "sprite_file_select": ".zspr Datei auswählen", + "music": "Hintergrundmusik", + "music_info": "(setze zu \"Keine\" für MSU-1 Support)", + "quickswap": "Gegenstand Schnellwechsel", + "palette_shuffle": "Palette Shuffle", + "race_warning": "Funktioniert nicht in einer Rom für Rennen" + } + } + }, + "en": { "customizer": { "settings": { "timers": { @@ -1022,6 +780,122 @@ export default { } } }, + "enemizer": { + "title": "Enemizer", + "enable": "Enable Enemizer", + "disable": "Disable Enemizer", + "enemy_health": { + "title": "Enemy Health", + "options": [ + "Default", + "Easy (1-4 hp)", + "Normal (2-15 hp)", + "Hard (2-30 hp)", + "Brick Wall (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Enemy Damage", + "options": { + "off": "Default", + "shuffle": "Shuffled", + "chaos": "Chaos" + } + }, + "bosses": { + "title": "Boss Shuffle", + "options": { + "off": "Off", + "basic": "Simple", + "normal": "Full", + "chaos": "Chaos" + } + }, + "palette_shuffle": "Palette Shuffle", + "pot_shuffle": "Pot Shuffle", + "enemy_shuffle": "Enemy Shuffle" + }, + "entrance": { + "title": "Entrance Randomizer", + "switch": { + "item": "Switch to Item Randomizer" + }, + "rom": { + "options": "ROM Options" + }, + "difficulty": { + "title": "Difficulty", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert", + "insane": "Insane" + } + }, + "goal": { + "title": "Goal", + "options": { + "ganon": "Defeat Ganon", + "crystals": "Crystals", + "dungeons": "All Dungeons", + "pedestal": "Master Sword Pedestal", + "triforcehunt": "Triforce Pieces" + } + }, + "logic": { + "title": "Logic", + "options": { + "NoGlitches": "No Glitches" + } + }, + "mode": { + "title": "State", + "options": { + "swordless": "Swordless", + "open": "Open" + } + }, + "shuffle": { + "title": "Shuffle", + "options": { + "simple": "Simple", + "restricted": "Restricted", + "full": "Full", + "crossed": "Crossed", + "insanity": "Insanity" + } + }, + "variation": { + "title": "Variation", + "options": { + "none": "None", + "timed-race": "Timed Race", + "timed-ohko": "Timed OHKO", + "ohko": "OHKO", + "triforce-hunt": "Triforce Piece Hunt", + "key-sanity": "Keysanity", + "retro": "Retro" + } + }, + "generate": { + "race": "Generate Race ROM", + "spoiler_race": "Spoiler Race ROM", + "casual": "Generate ROM" + }, + "details": { + "title": "Game Details", + "save_spoiler": "Save Spoiler", + "save_rom": "Save Rom" + } + }, + "error": { + "title": "Error", + "429": "While we apprecate your want to generate a lot of games, Other people would like to as well. Please come back later if you would like to generate more.", + "failed_generation": "Failed Creating Game :(", + "bad_file": "File not recognized", + "quota_exceeded_error": "Your local storage quota has been exceeded." + }, "item": { "Random": "Random", "BottleWithRandom": "Bottle (Random)", @@ -1243,16 +1117,259 @@ export default { "title": "Multiworld Randomizer", "generate": "Generate Multiworld Data File" }, - "rom": { - "loader": { - "title": "Getting Started", - "file_select": "Select ROM File", - "content": "
  1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
  2. Select the Game Options for how you would like your game randomized
  3. Click Generate Normal ROM
  4. Then Save your rom and get to playing
" + "randomizer": { + "title": "Randomizer", + "preset": { + "title": "Select Preset", + "customize": "Customize", + "options": { + "default": "Default", + "beginner": "Beginner", + "veetorp": "OWG (Veetorp’s Favorite)", + "crosskeys": "Crosskeys", + "quick": "Super Quick", + "nightmare": "Nightmare", + "tournament": "Tournament", + "custom": "Custom" + } }, - "info": { - "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", - "mystery": "This is a mystery game. The settings must be discovered while you play!", - "logic": "Glitches Required", + "placement": { + "title": "Item Placement" + }, + "item_placement": { + "title": "Item Placement", + "options": { + "basic": "Basic", + "advanced": "Advanced" + } + }, + "dungeon_items": { + "title": "Dungeon Item Shuffle", + "options": { + "standard": "Standard", + "mc": "Maps/Compasses", + "mcs": "Maps/Compasses/Small Keys", + "full": "Keysanity" + } + }, + "accessibility": { + "title": "Accessibility", + "options": { + "items": "100% Inventory", + "locations": "100% Locations", + "none": "Beatable" + } + }, + "glitches_required": { + "title": "Glitches Required", + "options": { + "none": "None", + "overworld_glitches": "Overworld Glitches", + "major_glitches": "Major Glitches", + "no_logic": "No Logic" + }, + "glitch_warning": "These settings require knowledge of Major Glitches**" + }, + "goal": { + "title": "Goal", + "options": { + "ganon": "Defeat Ganon", + "fast_ganon": "Fast Ganon", + "dungeons": "All Dungeons", + "pedestal": "Master Sword Pedestal", + "triforce-hunt": "Triforce Pieces" + } + }, + "tower_open": { + "title": "Open Tower", + "options": { + "0": "0 Crystals", + "1": "1 Crystal", + "2": "2 Crystals", + "3": "3 Crystals", + "4": "4 Crystals", + "5": "5 Crystals", + "6": "6 Crystals", + "7": "7 Crystals", + "random": "Random" + } + }, + "ganon_open": { + "title": "Ganon Vulnerable", + "options": { + "0": "0 Crystals", + "1": "1 Crystal", + "2": "2 Crystals", + "3": "3 Crystals", + "4": "4 Crystals", + "5": "5 Crystals", + "6": "6 Crystals", + "7": "7 Crystals", + "random": "Random" + } + }, + "gameplay": { + "title": "Gameplay" + }, + "world_state": { + "title": "World State", + "options": { + "standard": "Standard", + "open": "Open", + "inverted": "Inverted", + "retro": "Retro" + } + }, + "entrance_shuffle": { + "title": "Entrance Shuffle", + "options": { + "none": "None", + "simple": "Simple", + "restricted": "Restricted", + "full": "Full", + "crossed": "Crossed", + "insanity": "Insanity" + } + }, + "boss_shuffle": { + "title": "Boss Shuffle", + "options": { + "none": "None", + "simple": "Simple", + "full": "Full", + "random": "Random" + } + }, + "enemy_shuffle": { + "title": "Enemy Shuffle", + "options": { + "none": "None", + "shuffled": "Shuffled", + "random": "Random" + } + }, + "hints": { + "title": "Hints", + "options": { + "on": "On", + "off": "Off" + } + }, + "weapons": { + "title": "Swords", + "options": { + "randomized": "Randomized", + "assured": "Assured", + "vanilla": "Vanilla", + "swordless": "Swordless" + } + }, + "item_pool": { + "title": "Item Pool", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert", + "crowd_control": "Crowd Control" + }, + "crowd_control_warning": "* This setting is meant to be used with the Crowd Control Twitch extension. find out more: https://crowdcontrol.live/" + }, + "item_functionality": { + "title": "Item Functionality", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert" + } + }, + "enemy_damage": { + "title": "Enemy Damage", + "options": { + "default": "Default", + "shuffled": "Shuffled", + "random": "Random" + } + }, + "enemy_health": { + "title": "Enemy Health", + "options": { + "default": "Default", + "easy": "Easy", + "hard": "Hard", + "expert": "Expert" + } + }, + "spoiler": { + "title": "Spoilers", + "options": { + "off": "Disabled", + "on": "Enabled", + "generate": "Only on Generate", + "mystery": "Mystery (settings hidden)" + } + }, + "generate": { + "race": "Generate Race ROM", + "race_warning": "Spoilers will never be available for this option.", + "spoiler_race": "Generate Normal ROM", + "casual": "Generate ROM", + "back": "Change Settings", + "regenerate": "Generate Again", + "regenerate_tooltip": "Generate new game with same settings", + "generating": "Generating..." + }, + "details": { + "title": "Game Details", + "save_spoiler": "Save Spoiler", + "save_rom": "Save Rom" + }, + "variation": { + "title": "Variation" + }, + "difficulty": { + "title": "Difficulty", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert", + "insane": "Insane", + "crowdControl": "Crowd Control" + } + } + }, + "region": { + "all": "All Regions", + "Light World": "Light World", + "Hyrule Castle": "Hyrule Castle", + "Eastern Palace": "Eastern Palace", + "Desert Palace": "Desert Palace", + "Death Mountain": "Death Mountain", + "Tower Of Hera": "Tower Of Hera", + "Castle Tower": "Castle Tower", + "Dark World": "Dark World", + "Dark Palace": "Dark Palace", + "Swamp Palace": "Swamp Palace", + "Skull Woods": "Skull Woods", + "Thieves Town": "Thieves Town", + "Ice Palace": "Ice Palace", + "Misery Mire": "Misery Mire", + "Turtle Rock": "Turtle Rock", + "Ganons Tower": "Ganons Tower", + "Special": "Special" + }, + "rom": { + "loader": { + "title": "Getting Started", + "file_select": "Select ROM File", + "content": "
  1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
  2. Select the Game Options for how you would like your game randomized
  3. Click Generate Normal ROM
  4. Then Save your rom and get to playing
" + }, + "info": { + "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", + "mystery": "This is a mystery game. The settings must be discovered while you play!", + "logic": "Glitches Required", "accessibility": "Accessibility", "build": "ROM build", "difficulty": "Difficulty", @@ -1287,7 +1404,8 @@ export default { "blue": "Blue", "green": "Green", "red": "Red", - "yellow": "Yellow" + "yellow": "Yellow", + "random": "Random" }, "play_as": "Play As", "sprite_file_select": "Select .zspr File", @@ -1298,122 +1416,6 @@ export default { "race_warning": "Does not work in Race Roms" } }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Switch to Item Randomizer" - }, - "rom": { - "options": "ROM Options" - }, - "difficulty": { - "title": "Difficulty", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane" - } - }, - "goal": { - "title": "Goal", - "options": { - "ganon": "Defeat Ganon", - "crystals": "Crystals", - "dungeons": "All Dungeons", - "pedestal": "Master Sword Pedestal", - "triforcehunt": "Triforce Pieces" - } - }, - "logic": { - "title": "Logic", - "options": { - "NoGlitches": "No Glitches" - } - }, - "mode": { - "title": "State", - "options": { - "swordless": "Swordless", - "open": "Open" - } - }, - "shuffle": { - "title": "Shuffle", - "options": { - "simple": "Simple", - "restricted": "Restricted", - "full": "Full", - "crossed": "Crossed", - "insanity": "Insanity" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "None", - "timed-race": "Timed Race", - "timed-ohko": "Timed OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce Piece Hunt", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generate Race ROM", - "spoiler_race": "Spoiler Race ROM", - "casual": "Generate ROM" - }, - "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save Rom" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Enable Enemizer", - "disable": "Disable Enemizer", - "enemy_health": { - "title": "Enemy Health", - "options": [ - "Default", - "Easy (1-4 hp)", - "Normal (2-15 hp)", - "Hard (2-30 hp)", - "Brick Wall (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Enemy Damage", - "options": { - "off": "Default", - "shuffle": "Shuffled", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Boss Shuffle", - "options": { - "off": "Off", - "basic": "Simple", - "normal": "Full", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Palette Shuffle", - "pot_shuffle": "Pot Shuffle", - "enemy_shuffle": "Enemy Shuffle" - }, - "error": { - "title": "Error", - "429": "While we apprecate your want to generate a lot of games, Other people would like to as well. Please come back later if you would like to generate more.", - "failed_generation": "Failed Creating Game :(", - "bad_file": "File not recognized", - "quota_exceeded_error": "Your local storage quota has been exceeded." - }, "sprite": { "Raven": "Raven", "Vulture": "Vulture", @@ -1662,113 +1664,167 @@ export default { } }, "es": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Seleccionar plantilla", - "customize": "Customizar", - "options": { - "default": "Por Defecto", - "beginner": "Principiante", - "veetorp": "Glitches de Superfície (el favorito de Veetorp)", - "crosskeys": "Crosskeys", - "quick": "Súper Rápido", - "nightmare": "Pesadilla", - "tournament": "Torneo", - "custom": "Personalizado" + "customizer": { + "settings": { + "timers": { + "off": "Sin temporizador", + "stopwatch": "Cronómetro", + "countdown-ohko": "Cuenta atrás (muerte súbita)", + "countdown-continue": "Cuenta atrás (continua)", + "countdown-stop": "Cuenta atrás (para)" + }, + "dungeon_count": { + "off": "Desactivado", + "on": "Siempre visible", + "pickup": "Visible con brújula" } }, - "placement": { - "title": "Colocación de Objetos" - }, - "item_placement": { - "title": "Colocación de Objetos", - "options": { - "basic": "Básica", - "advanced": "Avanzada" + "glitches": { + "canBombJump": { + "title": "Salto Bomba", + "description": "Podría ser necesario tener que hacer Saltos Bomba para atravesar agujeros." + }, + "canBootsClip": { + "title": "Clips de Botas", + "description": "Cuando se tengan las botas, podría ser necesario hacer clips a través de paredes de la superfície." + }, + "canBunnyRevive": { + "title": "Reanimación como Conejo", + "description": "Podría ser necesario ir a algún sitio como conejo y abusar de morir o revivir con hadas para ser Link." + }, + "canBunnySurf": { + "title": "Surf como Conejo", + "description": "Podría ser necesario andar sobre el agua en estado de conejo." + }, + "canDungeonRevive": { + "title": "Reanimación en Mazmorras", + "description": "Podría ser necesario revivir como conejo en una mazmorra para conseguir objetos como Link." + }, + "canFakeFlipper": { + "title": "Aletas Falsas", + "description": "Podría ser necesario usar el glitch de las Aletas Falsas para conseguir objetos." + }, + "canMirrorClip": { + "title": "Clips de Espejo", + "description": "Podría ser necesario abusar la animación del espejo para salir del mapa." + }, + "canMirrorWrap": { + "title": "Mirror Wrap", + "description": "Podría ser necesario usar el Espejo para hacer scroll automático a otro sitio." + }, + "canOneFrameClipOW": { + "title": "Clip de un frame (superfície)", + "description": "Créeme, no quieres hacer esto." + }, + "canOneFrameClipUW": { + "title": "One Frame Clip (underworld)", + "description": "Use 1 Frame Movement to clip between rooms of the underworld." + }, + "canOWYBA": { + "title": "YBA (superfície)", + "description": "Podría ser necesario usar botellas en la superfície para teletransportarse a otras localizaciones." + }, + "canSuperBunny": { + "title": "Súper Conejo", + "description": "Podría ser necesario activar el estado de súper conejo para acceder algunas localizaciones." + }, + "canSuperSpeed": { + "title": "Súper Velocidad", + "description": "Podría ser necesario hacer clips con súper velocidad a través de esquinas de la superfície." + }, + "canWaterFairyRevive": { + "title": "Reanimación en el Agua con Hadas", + "description": "Este setup es estúpido y requiere un montón de objetos." + }, + "canWaterWalk": { + "title": "Andar por el Agua", + "description": "Podría ser necesario utilizar las Botas para andar sobre el agua." + }, + "noLogic": { + "title": "Desactivar todas las comprobaciones de lógica", + "description": "Cuando esto está activado, todas las garantías desaparecen, y nada de lo que hay aquí importa." } + } + }, + "enemizer": { + "title": "Randomizer de enemigos (Enemizer)", + "enable": "Activar Enemizer", + "disable": "Desactivar Enemizer", + "enemy_health": { + "title": "Vida de enemigos", + "options": [ + "Normal", + "Fácil (1-4 hp)", + "Medio (2-15 hp)", + "Difícil (2-30 hp)", + "Locura (4-50 hp)" + ] }, - "dungeon_items": { - "title": "Objetos de Mazmorras", + "enemy_damage": { + "title": "Daño de enemigos", "options": { - "standard": "Normal", - "mc": "Mapas/Brújulas", - "mcs": "Mapas/Brújulas/Llaves pequeñas", - "full": "Keysanity" + "off": "Normal", + "shuffle": "Aleatorio", + "chaos": "Caos" } }, - "accessibility": { - "title": "Accesibilidad", + "bosses": { + "title": "Jefes", "options": { - "items": "100% inventario", - "locations": "100% localizaciones", - "none": "Completable" + "off": "Normal", + "basic": "Básico", + "normal": "Normal", + "chaos": "Caos" } }, - "glitches_required": { - "title": "Glitches Requeridos", + "palette_shuffle": "Paleta aleatoria", + "pot_shuffle": "Vasijas aleatorias", + "enemy_shuffle": "Enemigos aleatorios" + }, + "entrance": { + "title": "Randomizer de Entradas", + "switch": { + "item": "Cambiar a randomizer de objetos" + }, + "rom": { + "options": "Opciones de ROM" + }, + "difficulty": { + "title": "Dificultad", "options": { - "none": "Ninguno", - "overworld_glitches": "Glitches de la Superfície", - "major_glitches": "Glitches Mayores", - "no_logic": "Sin lógica" - }, - "glitch_warning": "Esta Lógica require conocimiento de Glithes Mayores**" + "easy": "Fácil", + "normal": "Normal", + "hard": "Difícil", + "expert": "Experto", + "insane": "Locura" + } }, "goal": { "title": "Objetivo", "options": { "ganon": "Derrotar a Ganon", - "fast_ganon": "Ganon Rápido", + "crystals": "Cristales", "dungeons": "Todas las mazmorras", "pedestal": "Pedestal de la Espada Maestra", - "triforce-hunt": "Piezas de la Trifuerza" - } - }, - "tower_open": { - "title": "Torre Abierta", - "options": { - "0": "0 Cristales", - "1": "1 Cristal", - "2": "2 Cristales", - "3": "3 Cristales", - "4": "4 Cristales", - "5": "5 Cristales", - "6": "6 Cristales", - "7": "7 Cristales", - "random": "Aleatorio" + "triforcehunt": "Piezas de la Trifuerza" } }, - "ganon_open": { - "title": "Ganon Vulnerable", + "logic": { + "title": "Lógica", "options": { - "0": "0 Cristales", - "1": "1 Cristal", - "2": "2 Cristales", - "3": "3 Cristales", - "4": "4 Cristales", - "5": "5 Cristales", - "6": "6 Cristales", - "7": "7 Cristales", - "random": "Aleatorio" + "NoGlitches": "Sin Glitches" } }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "Estado del mundo", + "mode": { + "title": "Tipo", "options": { - "standard": "Estándar", - "open": "Abierto", - "inverted": "Inverso", - "retro": "Retro" + "swordless": "Sin espadas", + "open": "Abierto" } }, - "entrance_shuffle": { - "title": "Randomizer de entradas", + "shuffle": { + "title": "Orden", "options": { - "none": "Ninguno", "simple": "Simple", "restricted": "Restringido", "full": "Completo", @@ -1776,196 +1832,36 @@ export default { "insanity": "Locura" } }, - "boss_shuffle": { - "title": "Randomizer de Jefes", - "options": { - "none": "Ninguno", - "simple": "Simple", - "full": "Completo", - "random": "Aleatorio" - } - }, - "enemy_shuffle": { - "title": "Randomizer de Enemigos", - "options": { - "none": "Ninguno", - "shuffled": "Barajado", - "random": "Aleatorio" - } - }, - "hints": { - "title": "Pistas", - "options": { - "on": "On", - "off": "Off" - } - }, - "weapons": { - "title": "Espadas", - "options": { - "randomized": "Randomizadas", - "assured": "Aseguradas", - "vanilla": "Vanilla", - "swordless": "Sin Espadas" - } - }, - "item_pool": { - "title": "Reserva de Objetos", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Esta opción está hecha para jugarse con la extensión de Twitch de Crowd Control. Para saber más: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Funcionalidad de Objetos", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto" - } - }, - "enemy_damage": { - "title": "Daño de Enemigos", - "options": { - "default": "Por Defecto", - "shuffled": "Barajado", - "random": "Aleatorio" - } - }, - "enemy_health": { - "title": "Vida de Enemigos", - "options": { - "default": "Por Defecto", - "easy": "Fácil", - "hard": "Difícil", - "expert": "Experto" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Solo en Generar" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "race_warning": "sin spoilers", - "spoiler_race": "Generar ROM para carreras (con spoilers)", - "casual": "Generar ROM", - "back": "Cambiar ajustes", - "regenerate": "Generar otra vez", - "regenerate_tooltip": "Generar otra partida con las mismas opciones", - "generating": "Generando..." - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - }, "variation": { - "title": "Variación" - }, - "difficulty": { - "title": "Dificultad", + "title": "Variación", "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "insane": "Locura", - "crowdControl": "Crowd Control" - } - } - }, - "customizer": { - "settings": { - "timers": { - "off": "Sin temporizador", - "stopwatch": "Cronómetro", - "countdown-ohko": "Cuenta atrás (muerte súbita)", - "countdown-continue": "Cuenta atrás (continua)", - "countdown-stop": "Cuenta atrás (para)" - }, - "dungeon_count": { - "off": "Desactivado", - "on": "Siempre visible", - "pickup": "Visible con brújula" + "none": "Ninguna", + "timed-race": "Carrera cronometrada", + "timed-ohko": "Muerte Súbita cronometrada", + "ohko": "Muerte Súbita", + "triforce-hunt": "Caza de la Trifuerza", + "key-sanity": "Keysanity", + "retro": "Retro" } }, - "glitches": { - "canBombJump": { - "title": "Salto Bomba", - "description": "Podría ser necesario tener que hacer Saltos Bomba para atravesar agujeros." - }, - "canBootsClip": { - "title": "Clips de Botas", - "description": "Cuando se tengan las botas, podría ser necesario hacer clips a través de paredes de la superfície." - }, - "canBunnyRevive": { - "title": "Reanimación como Conejo", - "description": "Podría ser necesario ir a algún sitio como conejo y abusar de morir o revivir con hadas para ser Link." - }, - "canBunnySurf": { - "title": "Surf como Conejo", - "description": "Podría ser necesario andar sobre el agua en estado de conejo." - }, - "canDungeonRevive": { - "title": "Reanimación en Mazmorras", - "description": "Podría ser necesario revivir como conejo en una mazmorra para conseguir objetos como Link." - }, - "canFakeFlipper": { - "title": "Aletas Falsas", - "description": "Podría ser necesario usar el glitch de las Aletas Falsas para conseguir objetos." - }, - "canMirrorClip": { - "title": "Clips de Espejo", - "description": "Podría ser necesario abusar la animación del espejo para salir del mapa." - }, - "canMirrorWrap": { - "title": "Mirror Wrap", - "description": "Podría ser necesario usar el Espejo para hacer scroll automático a otro sitio." - }, - "canOneFrameClipOW": { - "title": "Clip de un frame (superfície)", - "description": "Créeme, no quieres hacer esto." - }, - "canOneFrameClipUW": { - "title": "One Frame Clip (underworld)", - "description": "Use 1 Frame Movement to clip between rooms of the underworld." - }, - "canOWYBA": { - "title": "YBA (superfície)", - "description": "Podría ser necesario usar botellas en la superfície para teletransportarse a otras localizaciones." - }, - "canSuperBunny": { - "title": "Súper Conejo", - "description": "Podría ser necesario activar el estado de súper conejo para acceder algunas localizaciones." - }, - "canSuperSpeed": { - "title": "Súper Velocidad", - "description": "Podría ser necesario hacer clips con súper velocidad a través de esquinas de la superfície." - }, - "canWaterFairyRevive": { - "title": "Reanimación en el Agua con Hadas", - "description": "Este setup es estúpido y requiere un montón de objetos." - }, - "canWaterWalk": { - "title": "Andar por el Agua", - "description": "Podría ser necesario utilizar las Botas para andar sobre el agua." - }, - "noLogic": { - "title": "Desactivar todas las comprobaciones de lógica", - "description": "Cuando esto está activado, todas las garantías desaparecen, y nada de lo que hay aquí importa." - } + "generate": { + "race": "Generar ROM para carreras", + "spoiler_race": "Generar ROM para carreras", + "casual": "Generar ROM" + }, + "details": { + "title": "Detalles del juego", + "save_spoiler": "Guardar spoiler", + "save_rom": "Guardar ROM" } }, + "error": { + "title": "Error", + "429": "Aunque apreciamos que quieras generar un montón de partidas, otras personas quieren hacerlo también. Por favor, vuelve más tarde si quieres generar más.", + "failed_generation": "Error creando la semilla :(", + "bad_file": "Archivo no reconocido", + "quota_exceeded_error": "Has sobrepasado tu cuota de almacenamiento local." + }, "item": { "Random": "Aleatorio", "BottleWithRandom": "Botella (aleatoria)", @@ -2172,411 +2068,296 @@ export default { "Lanmolas": "Lanmolas", "Moldorm": "Moldorm", "Helmasaur King": "Rey Yelmasaurio", - "Arrghus": "Arghus", - "Mothula": "Polillántula", - "Blind": "Cegatox", - "Kholdstare": "Heladonte", - "Vitreous": "Vitreus", - "Trinexx": "Trínex", - "Agahnim": "Agahnim", - "Agahnim 2": "Agahnim 2", - "Ganon": "Ganon" - }, - "rom": { - "loader": { - "title": "Empezar a Jugar", - "file_select": "Selecciona archivo ROM", - "content": "
  1. Selecciona tu archivo ROM y cárgalo en tu navegador (Por favor, usa una ROM Zelda no Densetsu: Kamigami no Triforce v1.0 con extensión .smc o .sfc)
  2. Selecciona las Opciones de Juego para cómo quieres que tu juego sea randomizado
  3. Haz click en Generar ROM para carreras
  4. Guarda tu ROM y ponte a jugar
" - }, - "info": { - "spoilerwarning": "ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.", - "mystery": "Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!", - "logic": "Glitches Requeridos", - "accessibility": "Accesibilidad", - "build": "Build de la ROM", - "difficulty": "Dificultad", - "variation": "Variación", - "shuffle": "Randomizer de entradas", - "mode": "Estado del mundo", - "weapons": "Espadas", - "goal": "Objetivo", - "permalink": "Enlace permanente", - "special": "Especial", - "notes": "Notas", - "generated": "Creada" - }, - "settings": { - "heart_speed": "Velocidad de Corazones", - "heart_speeds": { - "off": "Desactivado", - "double": "Velocidad Doble", - "normal": "Velocidad Normal", - "half": "Media Velocidad", - "quarter": "Cuarto de Velocidad" - }, - "menu_speed": "Velocidad de Menú", - "menu_speeds": { - "instant": "Instantáneo", - "fast": "Rápido", - "normal": "Normal", - "slow": "Lento" - }, - "heart_color": "Color de Corazones", - "heart_colors": { - "blue": "Azul", - "green": "Verde", - "red": "Rojo", - "yellow": "Amarillo" - }, - "play_as": "Jugar Como", - "sprite_file_select": "Selecciona archivo .zspr", - "music": "Música de fondo", - "music_info": "(poner en \"No\" para soporte con MSU-1)", - "quickswap": "Cambio Rápido de Objetos", - "palette_shuffle": "Paletas aleatorias", - "race_warning": "No funciona en ROMs para carreras" - } - }, - "entrance": { - "title": "Randomizer de Entradas", - "switch": { - "item": "Cambiar a randomizer de objetos" - }, - "rom": { - "options": "Opciones de ROM" - }, - "difficulty": { - "title": "Dificultad", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "insane": "Locura" - } - }, - "goal": { - "title": "Objetivo", - "options": { - "ganon": "Derrotar a Ganon", - "crystals": "Cristales", - "dungeons": "Todas las mazmorras", - "pedestal": "Pedestal de la Espada Maestra", - "triforcehunt": "Piezas de la Trifuerza" - } - }, - "logic": { - "title": "Lógica", - "options": { - "NoGlitches": "Sin Glitches" - } - }, - "mode": { - "title": "Tipo", - "options": { - "swordless": "Sin espadas", - "open": "Abierto" - } - }, - "shuffle": { - "title": "Orden", - "options": { - "simple": "Simple", - "restricted": "Restringido", - "full": "Completo", - "crossed": "Cruzado", - "insanity": "Locura" - } - }, - "variation": { - "title": "Variación", - "options": { - "none": "Ninguna", - "timed-race": "Carrera cronometrada", - "timed-ohko": "Muerte Súbita cronometrada", - "ohko": "Muerte Súbita", - "triforce-hunt": "Caza de la Trifuerza", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "spoiler_race": "Generar ROM para carreras", - "casual": "Generar ROM" - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - } - }, - "enemizer": { - "title": "Randomizer de enemigos (Enemizer)", - "enable": "Activar Enemizer", - "disable": "Desactivar Enemizer", - "enemy_health": { - "title": "Vida de enemigos", - "options": [ - "Normal", - "Fácil (1-4 hp)", - "Medio (2-15 hp)", - "Difícil (2-30 hp)", - "Locura (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Daño de enemigos", - "options": { - "off": "Normal", - "shuffle": "Aleatorio", - "chaos": "Caos" - } - }, - "bosses": { - "title": "Jefes", - "options": { - "off": "Normal", - "basic": "Básico", - "normal": "Normal", - "chaos": "Caos" - } - }, - "palette_shuffle": "Paleta aleatoria", - "pot_shuffle": "Vasijas aleatorias", - "enemy_shuffle": "Enemigos aleatorios" + "Arrghus": "Arghus", + "Mothula": "Polillántula", + "Blind": "Cegatox", + "Kholdstare": "Heladonte", + "Vitreous": "Vitreus", + "Trinexx": "Trínex", + "Agahnim": "Agahnim", + "Agahnim 2": "Agahnim 2", + "Ganon": "Ganon" }, - "error": { - "title": "Error", - "429": "Aunque apreciamos que quieras generar un montón de partidas, otras personas quieren hacerlo también. Por favor, vuelve más tarde si quieres generar más.", - "failed_generation": "Error creando la semilla :(", - "bad_file": "Archivo no reconocido", - "quota_exceeded_error": "Has sobrepasado tu cuota de almacenamiento local." - } - }, - "fr": { "randomizer": { - "title": "Randomiseur", + "title": "Randomizer", "preset": { - "title": "Choisissez vos Paramètres", - "customize": "Customisation", + "title": "Seleccionar plantilla", + "customize": "Customizar", "options": { - "default": "Par défaut", - "beginner": "Débutant", - "veetorp": "OWG (La préférée de Veetorp!)", - "crosskeys": "Clésordre et Entrées", - "quick": "Super Rapide", - "nightmare": "Cauchemars", - "tournament": "Tournoi", - "custom": "Personnalisé" + "default": "Por Defecto", + "beginner": "Principiante", + "veetorp": "Glitches de Superfície (el favorito de Veetorp)", + "crosskeys": "Crosskeys", + "quick": "Súper Rápido", + "nightmare": "Pesadilla", + "tournament": "Torneo", + "custom": "Personalizado" } }, "placement": { - "title": "Placement des objets" + "title": "Colocación de Objetos" }, "item_placement": { - "title": "Placement des objets", + "title": "Colocación de Objetos", "options": { - "basic": "Basique", - "advanced": "Avancé" + "basic": "Básica", + "advanced": "Avanzada" } }, "dungeon_items": { - "title": "Objets des Donjons", + "title": "Objetos de Mazmorras", "options": { - "standard": "Standard", - "mc": "Cartes et Boussoles", - "mcs": "Cartes, Boussoles et Petites Clefs", - "full": "Clésordre" + "standard": "Normal", + "mc": "Mapas/Brújulas", + "mcs": "Mapas/Brújulas/Llaves pequeñas", + "full": "Keysanity" } }, "accessibility": { - "title": "Accessibilité", + "title": "Accesibilidad", "options": { - "items": "100% Inventaire", - "locations": "100% Accessible", - "none": "Achevable" + "items": "100% inventario", + "locations": "100% localizaciones", + "none": "Completable" } }, "glitches_required": { - "title": "Glitchs requis", + "title": "Glitches Requeridos", "options": { - "none": "Aucun", - "overworld_glitches": "Glitchs Monde Extérieur", - "major_glitches": "Glitchs Majeurs", - "no_logic": "Sans Logique" + "none": "Ninguno", + "overworld_glitches": "Glitches de la Superfície", + "major_glitches": "Glitches Mayores", + "no_logic": "Sin lógica" }, - "glitch_warning": "Cette logique nécessite la connaissance de glitchs majeurs**" + "glitch_warning": "Esta Lógica require conocimiento de Glithes Mayores**" }, "goal": { - "title": "Objectif", + "title": "Objetivo", "options": { - "ganon": "Vaincre Ganon", - "fast_ganon": "Rapide Ganon", - "dungeons": "Tous les Donjons", - "pedestal": "Piédestal de la Master Sword", - "triforce-hunt": "Morceaux de Triforce " + "ganon": "Derrotar a Ganon", + "fast_ganon": "Ganon Rápido", + "dungeons": "Todas las mazmorras", + "pedestal": "Pedestal de la Espada Maestra", + "triforce-hunt": "Piezas de la Trifuerza" } }, "tower_open": { - "title": "Ouvrir la Tour", + "title": "Torre Abierta", "options": { - "0": "0 Cristaux", + "0": "0 Cristales", "1": "1 Cristal", - "2": "2 Cristaux", - "3": "3 Cristaux", - "4": "4 Cristaux", - "5": "5 Cristaux", - "6": "6 Cristaux", - "7": "7 Cristaux", - "random": "Aléatoire" + "2": "2 Cristales", + "3": "3 Cristales", + "4": "4 Cristales", + "5": "5 Cristales", + "6": "6 Cristales", + "7": "7 Cristales", + "random": "Aleatorio" } }, "ganon_open": { - "title": "Vulnérabilité de Ganon", + "title": "Ganon Vulnerable", "options": { - "0": "0 Cristaux", + "0": "0 Cristales", "1": "1 Cristal", - "2": "2 Cristaux", - "3": "3 Cristaux", - "4": "4 Cristaux", - "5": "5 Cristaux", - "6": "6 Cristaux", - "7": "7 Cristaux", - "random": "Aléatoire" + "2": "2 Cristales", + "3": "3 Cristales", + "4": "4 Cristales", + "5": "5 Cristales", + "6": "6 Cristales", + "7": "7 Cristales", + "random": "Aleatorio" } }, "gameplay": { "title": "Gameplay" }, "world_state": { - "title": "État du Monde", + "title": "Estado del mundo", "options": { - "standard": "Standard", - "open": "Ouvert", - "inverted": "Inversé", - "retro": "Rétro" + "standard": "Estándar", + "open": "Abierto", + "inverted": "Inverso", + "retro": "Retro" } }, "entrance_shuffle": { - "title": "Mélangeur d'Entrées", + "title": "Randomizer de entradas", "options": { - "none": "Désactivé", + "none": "Ninguno", "simple": "Simple", - "restricted": "Restreint", - "full": "Complet", - "crossed": "Croisé", - "insanity": "Insensé" + "restricted": "Restringido", + "full": "Completo", + "crossed": "Cruzado", + "insanity": "Locura" } }, "boss_shuffle": { - "title": "Mélangeur de Boss", + "title": "Randomizer de Jefes", "options": { - "none": "Désactivé", + "none": "Ninguno", "simple": "Simple", - "full": "Complet", - "random": "Aléatoire" + "full": "Completo", + "random": "Aleatorio" } }, "enemy_shuffle": { - "title": "Mélangeur d'Ennemis", + "title": "Randomizer de Enemigos", "options": { - "none": "Désactivé", - "shuffled": "Intervertis", - "random": "Aléatoires" + "none": "Ninguno", + "shuffled": "Barajado", + "random": "Aleatorio" } }, "hints": { - "title": "Indices", + "title": "Pistas", "options": { - "on": "Activés", - "off": "Désactivés" + "on": "On", + "off": "Off" } }, "weapons": { - "title": "Épées", + "title": "Espadas", "options": { - "randomized": "Randomisées", - "assured": "Assurée", - "vanilla": "Originales", - "swordless": "Sans Épée" + "randomized": "Randomizadas", + "assured": "Aseguradas", + "vanilla": "Vanilla", + "swordless": "Sin Espadas" } }, "item_pool": { - "title": "Objets disponibles", + "title": "Reserva de Objetos", "options": { - "easy": "Facile", + "easy": "Fácil", "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", + "hard": "Difícil", + "expert": "Experto", "crowd_control": "Crowd Control" }, - "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l'extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" + "crowd_control_warning": "* Esta opción está hecha para jugarse con la extensión de Twitch de Crowd Control. Para saber más: https://crowdcontrol.live/" }, "item_functionality": { - "title": "Fonctionnalité des Objets", + "title": "Funcionalidad de Objetos", "options": { - "easy": "Facile", + "easy": "Fácil", "normal": "Normal", - "hard": "Difficile", - "expert": "Expert" + "hard": "Difícil", + "expert": "Experto" } }, "enemy_damage": { - "title": "Dégâts des Ennemis", + "title": "Daño de Enemigos", "options": { - "default": "Par défaut", - "shuffled": "Intervertis", - "random": "Aléatoire" + "default": "Por Defecto", + "shuffled": "Barajado", + "random": "Aleatorio" } }, "enemy_health": { - "title": "Vie des Ennemis", + "title": "Vida de Enemigos", "options": { - "default": "Par défaut", - "easy": "Facile", - "hard": "Difficile", - "expert": "Expert" + "default": "Por Defecto", + "easy": "Fácil", + "hard": "Difícil", + "expert": "Experto" } }, "spoiler": { "title": "Spoilers", "options": { - "off": "Desactivé", - "on": "Activé", - "generate": "Seulement sur Generate" + "off": "Disabled", + "on": "Enabled", + "generate": "Solo en Generar" } }, "generate": { - "race": "Générer une ROM de Course", - "race_warning": "Les spoilers ne seront jamais disponibles pour cette option.", - "spoiler_race": "Générer une ROM avec Spoiler", - "casual": "Générer une ROM", - "back": "Changer les Paramètres", - "regenerate": "Générer à nouveau", - "regenerate_tooltip": "Générer à nouveau avec les mêmes paramètres", - "generating": "Génération..." + "race": "Generar ROM para carreras", + "race_warning": "sin spoilers", + "spoiler_race": "Generar ROM para carreras (con spoilers)", + "casual": "Generar ROM", + "back": "Cambiar ajustes", + "regenerate": "Generar otra vez", + "regenerate_tooltip": "Generar otra partida con las mismas opciones", + "generating": "Generando..." }, "details": { - "title": "Détails du jeu", - "save_spoiler": "Enregistrer la spoiler", - "save_rom": "Sauvegarder la ROM" + "title": "Detalles del juego", + "save_spoiler": "Guardar spoiler", + "save_rom": "Guardar ROM" }, "variation": { - "title": "Variation" + "title": "Variación" }, "difficulty": { - "title": "Difficulté", + "title": "Dificultad", "options": { - "easy": "Easy", + "easy": "Fácil", "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", - "insane": "Insensé", + "hard": "Difícil", + "expert": "Experto", + "insane": "Locura", "crowdControl": "Crowd Control" } } }, + "rom": { + "loader": { + "title": "Empezar a Jugar", + "file_select": "Selecciona archivo ROM", + "content": "
  1. Selecciona tu archivo ROM y cárgalo en tu navegador (Por favor, usa una ROM Zelda no Densetsu: Kamigami no Triforce v1.0 con extensión .smc o .sfc)
  2. Selecciona las Opciones de Juego para cómo quieres que tu juego sea randomizado
  3. Haz click en Generar ROM para carreras
  4. Guarda tu ROM y ponte a jugar
" + }, + "info": { + "spoilerwarning": "ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.", + "mystery": "Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!", + "logic": "Glitches Requeridos", + "accessibility": "Accesibilidad", + "build": "Build de la ROM", + "difficulty": "Dificultad", + "variation": "Variación", + "shuffle": "Randomizer de entradas", + "mode": "Estado del mundo", + "weapons": "Espadas", + "goal": "Objetivo", + "permalink": "Enlace permanente", + "special": "Especial", + "notes": "Notas", + "generated": "Creada" + }, + "settings": { + "heart_speed": "Velocidad de Corazones", + "heart_speeds": { + "off": "Desactivado", + "double": "Velocidad Doble", + "normal": "Velocidad Normal", + "half": "Media Velocidad", + "quarter": "Cuarto de Velocidad" + }, + "menu_speed": "Velocidad de Menú", + "menu_speeds": { + "instant": "Instantáneo", + "fast": "Rápido", + "normal": "Normal", + "slow": "Lento" + }, + "heart_color": "Color de Corazones", + "heart_colors": { + "blue": "Azul", + "green": "Verde", + "red": "Rojo", + "yellow": "Amarillo", + "random": "Aleatorio" + }, + "play_as": "Jugar Como", + "sprite_file_select": "Selecciona archivo .zspr", + "music": "Música de fondo", + "music_info": "(poner en \"No\" para soporte con MSU-1)", + "quickswap": "Cambio Rápido de Objetos", + "palette_shuffle": "Paletas aleatorias", + "race_warning": "No funciona en ROMs para carreras" + } + } + }, + "fr": { "customizer": { "settings": { "timers": { @@ -2659,6 +2440,122 @@ export default { } } }, + "enemizer": { + "title": "Enemizer", + "enable": "Activer l’Ennemiseur", + "disable": "Désactiver l’Ennemiseur", + "enemy_health": { + "title": "Santé Ennemis", + "options": [ + "Ordinaire", + "Facile (1-4 hp)", + "Moyen (2-15 hp)", + "Difficile (2-30 hp)", + "Insensé (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Dégâts des Ennemis", + "options": { + "off": "Ordinaire", + "shuffle": "Mélangé", + "chaos": "Chaos" + } + }, + "bosses": { + "title": "Bosses", + "options": { + "off": "Ordinaire", + "basic": "De base", + "normal": "Commun", + "chaos": "Chaos" + } + }, + "palette_shuffle": "Mélange les Palettes", + "pot_shuffle": "Mélange les Pots", + "enemy_shuffle": "Mélanger les Ennemis" + }, + "entrance": { + "title": "Randomizer de portes", + "switch": { + "item": "Passer au Randomizer d’objets" + }, + "rom": { + "options": "Options de ROM" + }, + "difficulty": { + "title": "Difficulté", + "options": { + "easy": "Facile", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert", + "insane": "Insensé" + } + }, + "goal": { + "title": "Objectif", + "options": { + "ganon": "Vaincre Ganon", + "crystals": "Cristaux", + "dungeons": "Tous les Donjons", + "pedestal": "Piédestal de la Master Sword", + "triforcehunt": "Pièces de Triforce" + } + }, + "logic": { + "title": "Logique", + "options": { + "NoGlitches": "Sans Glitches" + } + }, + "mode": { + "title": "Réglage", + "options": { + "swordless": "Sans Épée", + "open": "Ouvert" + } + }, + "shuffle": { + "title": "Mélanger", + "options": { + "simple": "Simple", + "restricted": "Restreint", + "full": "Complet", + "crossed": "Croisé", + "insanity": "Insensé" + } + }, + "variation": { + "title": "Variation", + "options": { + "none": "Aucun", + "timed-race": "Chronométrée", + "timed-ohko": "Décompte Final", + "ohko": "Zéro Coeurs", + "triforce-hunt": "Chasse aux morceaux de Triforce", + "key-sanity": "Clé-sordre", + "retro": "Rétro" + } + }, + "generate": { + "race": "Générer une ROM de course", + "spoiler_race": "Spoiler de la ROM de Course", + "casual": "Générer une ROM" + }, + "details": { + "title": "Détails du jeu", + "save_spoiler": "Enregistrer le spoiler", + "save_rom": "Sauvegarder la ROM" + } + }, + "error": { + "title": "Erreur", + "429": "Bien que nous appréciions que vous souhaitiez générer beaucoup de jeux, d’autres personnes aimeraient également le faire. Veuillez revenir plus tard si vous souhaitez continuer à générer.", + "failed_generation": "Échec de la création de jeu :(", + "bad_file": "Fichier non reconnu", + "quota_exceeded_error": "Vous avez atteint la limite de stockage local." + }, "item": { "Random": "Random", "BottleWithRandom": "Bottle (Random)", @@ -2876,6 +2773,228 @@ export default { "Ganon": "Ganon", "Test": "Testing Item" }, + "randomizer": { + "title": "Randomiseur", + "preset": { + "title": "Choisissez vos Paramètres", + "customize": "Customisation", + "options": { + "default": "Par défaut", + "beginner": "Débutant", + "veetorp": "OWG (La préférée de Veetorp!)", + "crosskeys": "Clésordre et Entrées", + "quick": "Super Rapide", + "nightmare": "Cauchemars", + "tournament": "Tournoi", + "custom": "Personnalisé" + } + }, + "placement": { + "title": "Placement des objets" + }, + "item_placement": { + "title": "Placement des objets", + "options": { + "basic": "Basique", + "advanced": "Avancé" + } + }, + "dungeon_items": { + "title": "Objets des Donjons", + "options": { + "standard": "Standard", + "mc": "Cartes et Boussoles", + "mcs": "Cartes, Boussoles et Petites Clefs", + "full": "Clésordre" + } + }, + "accessibility": { + "title": "Accessibilité", + "options": { + "items": "100% Inventaire", + "locations": "100% Accessible", + "none": "Achevable" + } + }, + "glitches_required": { + "title": "Glitchs requis", + "options": { + "none": "Aucun", + "overworld_glitches": "Glitchs Monde Extérieur", + "major_glitches": "Glitchs Majeurs", + "no_logic": "Sans Logique" + }, + "glitch_warning": "Cette logique nécessite la connaissance de glitchs majeurs**" + }, + "goal": { + "title": "Objectif", + "options": { + "ganon": "Vaincre Ganon", + "fast_ganon": "Rapide Ganon", + "dungeons": "Tous les Donjons", + "pedestal": "Piédestal de la Master Sword", + "triforce-hunt": "Morceaux de Triforce " + } + }, + "tower_open": { + "title": "Ouvrir la Tour", + "options": { + "0": "0 Cristaux", + "1": "1 Cristal", + "2": "2 Cristaux", + "3": "3 Cristaux", + "4": "4 Cristaux", + "5": "5 Cristaux", + "6": "6 Cristaux", + "7": "7 Cristaux", + "random": "Aléatoire" + } + }, + "ganon_open": { + "title": "Vulnérabilité de Ganon", + "options": { + "0": "0 Cristaux", + "1": "1 Cristal", + "2": "2 Cristaux", + "3": "3 Cristaux", + "4": "4 Cristaux", + "5": "5 Cristaux", + "6": "6 Cristaux", + "7": "7 Cristaux", + "random": "Aléatoire" + } + }, + "gameplay": { + "title": "Gameplay" + }, + "world_state": { + "title": "État du Monde", + "options": { + "standard": "Standard", + "open": "Ouvert", + "inverted": "Inversé", + "retro": "Rétro" + } + }, + "entrance_shuffle": { + "title": "Mélangeur d'Entrées", + "options": { + "none": "Désactivé", + "simple": "Simple", + "restricted": "Restreint", + "full": "Complet", + "crossed": "Croisé", + "insanity": "Insensé" + } + }, + "boss_shuffle": { + "title": "Mélangeur de Boss", + "options": { + "none": "Désactivé", + "simple": "Simple", + "full": "Complet", + "random": "Aléatoire" + } + }, + "enemy_shuffle": { + "title": "Mélangeur d'Ennemis", + "options": { + "none": "Désactivé", + "shuffled": "Intervertis", + "random": "Aléatoires" + } + }, + "hints": { + "title": "Indices", + "options": { + "on": "Activés", + "off": "Désactivés" + } + }, + "weapons": { + "title": "Épées", + "options": { + "randomized": "Randomisées", + "assured": "Assurée", + "vanilla": "Originales", + "swordless": "Sans Épée" + } + }, + "item_pool": { + "title": "Objets disponibles", + "options": { + "easy": "Facile", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert", + "crowd_control": "Crowd Control" + }, + "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l'extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" + }, + "item_functionality": { + "title": "Fonctionnalité des Objets", + "options": { + "easy": "Facile", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert" + } + }, + "enemy_damage": { + "title": "Dégâts des Ennemis", + "options": { + "default": "Par défaut", + "shuffled": "Intervertis", + "random": "Aléatoire" + } + }, + "enemy_health": { + "title": "Vie des Ennemis", + "options": { + "default": "Par défaut", + "easy": "Facile", + "hard": "Difficile", + "expert": "Expert" + } + }, + "spoiler": { + "title": "Spoilers", + "options": { + "off": "Desactivé", + "on": "Activé", + "generate": "Seulement sur Generate" + } + }, + "generate": { + "race": "Générer une ROM de Course", + "race_warning": "Les spoilers ne seront jamais disponibles pour cette option.", + "spoiler_race": "Générer une ROM avec Spoiler", + "casual": "Générer une ROM", + "back": "Changer les Paramètres", + "regenerate": "Générer à nouveau", + "regenerate_tooltip": "Générer à nouveau avec les mêmes paramètres", + "generating": "Génération..." + }, + "details": { + "title": "Détails du jeu", + "save_spoiler": "Enregistrer la spoiler", + "save_rom": "Sauvegarder la ROM" + }, + "variation": { + "title": "Variation" + }, + "difficulty": { + "title": "Difficulté", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert", + "insane": "Insensé", + "crowdControl": "Crowd Control" + } + } + }, "rom": { "loader": { "title": "Pour commencer", @@ -2920,7 +3039,8 @@ export default { "blue": "Bleu", "green": "Vert", "red": "Rouge", - "yellow": "Jaune" + "yellow": "Jaune", + "random": "Aléatoire" }, "play_as": "Jouer en tant que", "sprite_file_select": "Sélectionnez le fichier .zspr", @@ -2930,122 +3050,6 @@ export default { "palette_shuffle": "Mélange des Couleurs de Palettes", "race_warning": "Ne fonctionne pas dans les ROMs de course" } - }, - "entrance": { - "title": "Randomizer de portes", - "switch": { - "item": "Passer au Randomizer d’objets" - }, - "rom": { - "options": "Options de ROM" - }, - "difficulty": { - "title": "Difficulté", - "options": { - "easy": "Facile", - "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", - "insane": "Insensé" - } - }, - "goal": { - "title": "Objectif", - "options": { - "ganon": "Vaincre Ganon", - "crystals": "Cristaux", - "dungeons": "Tous les Donjons", - "pedestal": "Piédestal de la Master Sword", - "triforcehunt": "Pièces de Triforce" - } - }, - "logic": { - "title": "Logique", - "options": { - "NoGlitches": "Sans Glitches" - } - }, - "mode": { - "title": "Réglage", - "options": { - "swordless": "Sans Épée", - "open": "Ouvert" - } - }, - "shuffle": { - "title": "Mélanger", - "options": { - "simple": "Simple", - "restricted": "Restreint", - "full": "Complet", - "crossed": "Croisé", - "insanity": "Insensé" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "Aucun", - "timed-race": "Chronométrée", - "timed-ohko": "Décompte Final", - "ohko": "Zéro Coeurs", - "triforce-hunt": "Chasse aux morceaux de Triforce", - "key-sanity": "Clé-sordre", - "retro": "Rétro" - } - }, - "generate": { - "race": "Générer une ROM de course", - "spoiler_race": "Spoiler de la ROM de Course", - "casual": "Générer une ROM" - }, - "details": { - "title": "Détails du jeu", - "save_spoiler": "Enregistrer le spoiler", - "save_rom": "Sauvegarder la ROM" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Activer l’Ennemiseur", - "disable": "Désactiver l’Ennemiseur", - "enemy_health": { - "title": "Santé Ennemis", - "options": [ - "Ordinaire", - "Facile (1-4 hp)", - "Moyen (2-15 hp)", - "Difficile (2-30 hp)", - "Insensé (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Dégâts des Ennemis", - "options": { - "off": "Ordinaire", - "shuffle": "Mélangé", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Bosses", - "options": { - "off": "Ordinaire", - "basic": "De base", - "normal": "Commun", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Mélange les Palettes", - "pot_shuffle": "Mélange les Pots", - "enemy_shuffle": "Mélanger les Ennemis" - }, - "error": { - "title": "Erreur", - "429": "Bien que nous appréciions que vous souhaitiez générer beaucoup de jeux, d’autres personnes aimeraient également le faire. Veuillez revenir plus tard si vous souhaitez continuer à générer.", - "failed_generation": "Échec de la création de jeu :(", - "bad_file": "Fichier non reconnu", - "quota_exceeded_error": "Vous avez atteint la limite de stockage local." } } } From 7fbcfe5a4220c5294a10db1a1abb9605e6b7f315 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sun, 23 May 2021 21:31:03 -0400 Subject: [PATCH 19/59] Implemented CLI support for setting heart color. --- app/Console/Commands/Randomize.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index 4d215209d..4b9a5857c 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -26,6 +26,7 @@ class Randomize extends Command . ' {--unrandomized : do not apply randomization to the rom}' . ' {--spoiler : generate a spoiler file}' . ' {--heartbeep=half : set heart beep speed}' + . ' {--heartcolor=red : set heart color}' . ' {--skip-md5 : do not validate md5 of base rom}' . ' {--tournament : enable tournament mode}' . ' {--bulk=1 : generate multiple roms}' @@ -124,6 +125,10 @@ public function handle() return 3; } + if (is_string($this->option('heartcolor'))) { + $rom->setHeartColors($this->option('heartcolor')); + } + if (is_string($this->option('heartbeep'))) { $rom->setHeartBeepSpeed($this->option('heartbeep')); } From 077bfdef90750badd37ec0eb075c8e21e98afa7a Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Mon, 24 May 2021 18:38:28 -0400 Subject: [PATCH 20/59] Space --- app/Rom.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Rom.php b/app/Rom.php index 77422b796..fdc980569 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -1139,7 +1139,7 @@ public function setGanonInvincible(string $setting = 'no'): self */ public function setHeartColors(string $color): self { - if($color === 'random') { + if ($color === 'random') { $colorOptions = ['blue', 'green', 'yellow', 'red']; $color = $colorOptions[mt_rand(0, 3)]; } From d04d6dab2b78c925300779b43eed5d47a42e66cf Mon Sep 17 00:00:00 2001 From: PuzzleSecretary <39073962+PuzzleSecretary@users.noreply.github.com> Date: Tue, 25 May 2021 02:20:12 -0700 Subject: [PATCH 21/59] A community submission It fits, people booed someone saying it in chat, therefore it goes in. --- strings/blind.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/strings/blind.txt b/strings/blind.txt index 63b365b19..f792d300a 100644 --- a/strings/blind.txt +++ b/strings/blind.txt @@ -239,3 +239,7 @@ Tie two ropes together?! I think knot! - +Time for you +to go on a +Blind date! +- From ec39ed223f521466c582c0c12dfdc2f16d499cf7 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Wed, 26 May 2021 17:53:40 -0400 Subject: [PATCH 22/59] Move random color assignment outside of the ROM class. --- app/Console/Commands/Randomize.php | 8 +++++++- app/Rom.php | 5 ----- tests/RomTest.php | 20 -------------------- 3 files changed, 7 insertions(+), 26 deletions(-) diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index 4b9a5857c..877ac601c 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -126,7 +126,13 @@ public function handle() } if (is_string($this->option('heartcolor'))) { - $rom->setHeartColors($this->option('heartcolor')); + // TODO: Unit Test! + $heartColorToUse = $this->option('heartcolor'); + if ($heartColorToUse === 'random') { + $colorOptions = ['blue', 'green', 'yellow', 'red']; + $heartColorToUse = $colorOptions[get_random_int(0, 3)]; + } + $rom->setHeartColors($heartColorToUse); } if (is_string($this->option('heartbeep'))) { diff --git a/app/Rom.php b/app/Rom.php index fdc980569..98f1944c9 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -1139,11 +1139,6 @@ public function setGanonInvincible(string $setting = 'no'): self */ public function setHeartColors(string $color): self { - if ($color === 'random') { - $colorOptions = ['blue', 'green', 'yellow', 'red']; - $color = $colorOptions[mt_rand(0, 3)]; - } - switch ($color) { case 'blue': $byte = 0x2C; diff --git a/tests/RomTest.php b/tests/RomTest.php index 3654bd8eb..96edde678 100644 --- a/tests/RomTest.php +++ b/tests/RomTest.php @@ -670,7 +670,6 @@ public function testSetLimitBow() $this->assertEquals([2, 23], $this->rom->read(0x180098, 2)); } - public function testSetGanonInvincibleCrystals() { $this->rom->setGanonInvincible('crystals'); @@ -741,25 +740,6 @@ public function testSetHeartColorsDefault() $this->assertHeartColorSetting('red'); } - public function testSetHeartColorsRandom() - { - mt_srand(0); // mt_rand(0, 3) will return 0 - $this->rom->setHeartColors('random'); - $this->assertHeartColorSetting('blue'); - - mt_srand(1); // mt_rand(0, 3) will return 1 - $this->rom->setHeartColors('random'); - $this->assertHeartColorSetting('green'); - - mt_srand(3); // mt_rand(0, 3) will return 2 - $this->rom->setHeartColors('random'); - $this->assertHeartColorSetting('yellow'); - - mt_srand(5); // mt_rand(0, 3) will return 3 - $this->rom->setHeartColors('random'); - $this->assertHeartColorSetting('red'); - } - private function assertHeartColorSetting($expectedColor) { switch ($expectedColor) { From d1a0137d4970a7c416ca7f177921d6f9aba25300 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Wed, 26 May 2021 17:54:02 -0400 Subject: [PATCH 23/59] CLI output now reads 'ROM Saved' instead of 'Rom Saved'. --- app/Console/Commands/Randomize.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index 877ac601c..f0ba438d9 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -143,7 +143,7 @@ public function handle() if ($this->option('unrandomized')) { $output_file = sprintf('%s/alttp-%s.sfc', $this->argument('output_directory'), Rom::BUILD); $rom->save($output_file); - $this->info(sprintf('Rom Saved: %s', $output_file)); + $this->info(sprintf('ROM Saved: %s', $output_file)); return 0; } From 2adc77222ff3ea826003455775d2b6b0414355ee Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Wed, 26 May 2021 18:32:33 -0400 Subject: [PATCH 24/59] Remove TODO (Randomize.php has no unit tests... yet) --- app/Console/Commands/Randomize.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index f0ba438d9..aa489b3b4 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -126,7 +126,6 @@ public function handle() } if (is_string($this->option('heartcolor'))) { - // TODO: Unit Test! $heartColorToUse = $this->option('heartcolor'); if ($heartColorToUse === 'random') { $colorOptions = ['blue', 'green', 'yellow', 'red']; From 496de041781500630715218f2f3ac9b452311fed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 May 2021 22:42:32 +0000 Subject: [PATCH 25/59] Bump dns-packet from 1.3.1 to 1.3.4 Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4. - [Release notes](https://github.com/mafintosh/dns-packet/releases) - [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md) - [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c6864f16..041350b92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6614,9 +6614,9 @@ "dev": true }, "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "requires": { "ip": "^1.1.0", From 49271861e00d0359295da10e60f23ad7ce540598 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Thu, 27 May 2021 08:23:23 -0400 Subject: [PATCH 26/59] Revert capitalization fix, so other PR can do it. --- app/Console/Commands/Randomize.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index aa489b3b4..c97fd4d9e 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -142,7 +142,7 @@ public function handle() if ($this->option('unrandomized')) { $output_file = sprintf('%s/alttp-%s.sfc', $this->argument('output_directory'), Rom::BUILD); $rom->save($output_file); - $this->info(sprintf('ROM Saved: %s', $output_file)); + $this->info(sprintf('Rom Saved: %s', $output_file)); return 0; } From 97f07830622b6003d90f232f3a66bb3ee9687e95 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Thu, 27 May 2021 08:38:18 -0400 Subject: [PATCH 27/59] Fix '(r|R)om' to 'ROM' in a lot of places. --- app/Console/Commands/Randomize.php | 4 ++-- app/Console/Commands/UpdateBuildRecord.php | 4 ++-- app/Enemizer.php | 4 ++-- app/Location/Pedestal.php | 4 ++-- app/Shop.php | 4 ++-- app/World.php | 6 +++--- resources/lang/de/entrance.php | 2 +- resources/lang/de/randomizer.php | 2 +- resources/lang/de/resources.php | 2 +- resources/lang/de/rom.php | 6 +++--- resources/lang/en/customizer.php | 4 ++-- resources/lang/en/entrance.php | 2 +- resources/lang/en/randomizer.php | 4 ++-- resources/views/updates.blade.php | 4 ++-- 14 files changed, 26 insertions(+), 26 deletions(-) diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index 4d215209d..4c711a034 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -132,7 +132,7 @@ public function handle() if ($this->option('unrandomized')) { $output_file = sprintf('%s/alttp-%s.sfc', $this->argument('output_directory'), Rom::BUILD); $rom->save($output_file); - $this->info(sprintf('Rom Saved: %s', $output_file)); + $this->info(sprintf('ROM Saved: %s', $output_file)); return 0; } @@ -202,7 +202,7 @@ public function handle() $rom->updateChecksum(); $rom->save($output_file); - $this->info(sprintf('Rom Saved: %s', $output_file)); + $this->info(sprintf('ROM Saved: %s', $output_file)); } if ($this->option('spoiler')) { diff --git a/app/Console/Commands/UpdateBuildRecord.php b/app/Console/Commands/UpdateBuildRecord.php index d7f7bdb2f..b0fa9051f 100644 --- a/app/Console/Commands/UpdateBuildRecord.php +++ b/app/Console/Commands/UpdateBuildRecord.php @@ -125,7 +125,7 @@ public function handle() } /** - * Update the constants in Rom class. + * Update the constants in ROM class. * * @param \ALttP\Build $build Build to update to * @@ -144,7 +144,7 @@ private function updateRomClassFile(Build $build): void * Create a json patch for internal services. * * @param string $hash hash to save file with - * @param string $rom patched rom to make patch from + * @param string $rom patched ROM to make patch from * * @throws \Exception if any filesystem issues arrise * diff --git a/app/Enemizer.php b/app/Enemizer.php index 82ff2eca9..9a43c4085 100644 --- a/app/Enemizer.php +++ b/app/Enemizer.php @@ -251,9 +251,9 @@ public function writeOptionsFile() } /** - * write the current generated data to the Rom + * write the current generated data to the ROM * - * @param Rom $rom Rom to write data to + * @param Rom $rom ROM to write data to * * @return Rom */ diff --git a/app/Location/Pedestal.php b/app/Location/Pedestal.php index 86c9995ca..366eb40ba 100644 --- a/app/Location/Pedestal.php +++ b/app/Location/Pedestal.php @@ -29,9 +29,9 @@ public function setItem(Item $item = null) } /** - * Write item to rom. + * Write item to ROM. * - * @param \ALttP\Rom $rom rom to write to + * @param \ALttP\Rom $rom ROM to write to * @param \ALttP\Item $item item to write * * @return \ALttP\Location diff --git a/app/Shop.php b/app/Shop.php index c371dd3e7..00c6f1d2b 100644 --- a/app/Shop.php +++ b/app/Shop.php @@ -65,11 +65,11 @@ public function getBytes(int $sram_offset = 0x00): array } /** - * Write extra data into the rom for this location. Generally, this is used for take-anys that will essentually + * Write extra data into the ROM for this location. Generally, this is used for take-anys that will essentually * hijack another cave/house and place themselves in there. Usually it's done by wiriting the type ID into * the table starting at 0xDBB73 offset by the entrance ID. * - * @param \ALttP\Rom $rom Rom to write data to + * @param \ALttP\Rom $rom ROM to write data to * * @return $this */ diff --git a/app/World.php b/app/World.php index 29f996193..0f6209ab9 100644 --- a/app/World.php +++ b/app/World.php @@ -954,10 +954,10 @@ public function setOverridePatch(array $patch): void } /** - * write the current generated data to the Rom. If an override patch is set + * write the current generated data to the ROM. If an override patch is set * it will use that instead. * - * @param \ALttP\Rom $rom Rom to write data to + * @param \ALttP\Rom $rom ROM to write data to * @param bool $save save seed record * * @return \ALttP\Rom @@ -1191,7 +1191,7 @@ public function writeToRom(Rom $rom, bool $save = false): Rom * This is a quick hack to get prizes shuffled, will adjust later when we model sprites. * this now also handles prize pull trees. * - * @param \ALttP\Rom $rom Rom to write data to + * @param \ALttP\Rom $rom ROM to write data to * * @return void */ diff --git a/resources/lang/de/entrance.php b/resources/lang/de/entrance.php index bf62333ad..c822224c7 100644 --- a/resources/lang/de/entrance.php +++ b/resources/lang/de/entrance.php @@ -70,6 +70,6 @@ 'details' => [ 'title' => 'Spiele Details', 'save_spoiler' => 'Speichere Spoiler', - 'save_rom' => 'Speichere Rom', + 'save_rom' => 'Speichere ROM', ], ]; diff --git a/resources/lang/de/randomizer.php b/resources/lang/de/randomizer.php index ba5718170..ab6dcdbfb 100644 --- a/resources/lang/de/randomizer.php +++ b/resources/lang/de/randomizer.php @@ -204,7 +204,7 @@ 'details' => [ 'title' => 'Spiel Details', 'save_spoiler' => 'Speichere Spoiler', - 'save_rom' => 'Speichere Rom', + 'save_rom' => 'Speichere ROM', ], // depricated 'variation' => [ diff --git a/resources/lang/de/resources.php b/resources/lang/de/resources.php index f6a3037d0..7da187b94 100644 --- a/resources/lang/de/resources.php +++ b/resources/lang/de/resources.php @@ -74,7 +74,7 @@ [ 'header' => 'Was änderte sich vom originalen Spiel?', 'content' => [ - 'Es gibt einige Änderungen vom originalen Spiel um das Spielerlebniss zu verbessern und um zu verhindet das man feststeckt. Die Japanische 1.0 Rom wird benutzt da es einige Glitches mehr erlaubt die für fortgeschrittene Spielmodi benutzt werden.', + 'Es gibt einige Änderungen vom originalen Spiel um das Spielerlebniss zu verbessern und um zu verhindet das man feststeckt. Die Japanische 1.0 ROM wird benutzt da es einige Glitches mehr erlaubt die für fortgeschrittene Spielmodi benutzt werden.', '
    ' . '
  • Du brauchst nicht länger die Lampe im Prolog um das Bücherregal zu verschieben.
  • ' . '
  • Du kannst nun in dunklen Räumen sehen ohne die Lampe (außer im Offen Modus).
  • ' diff --git a/resources/lang/de/rom.php b/resources/lang/de/rom.php index 8c4495201..46d733e2e 100644 --- a/resources/lang/de/rom.php +++ b/resources/lang/de/rom.php @@ -4,10 +4,10 @@ 'title' => 'Anfangen', 'file_select' => 'ROM Datei auswählen', 'content' => '
      ' - . '
    1. Wähle die Rom Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
    2. ' + . '
    3. Wähle die ROM Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
    4. ' . '
    5. Wähle die ' . __('navigation.options') . ' um auszuwählen wie Zufällig dein Spiel sein soll
    6. ' . '
    7. Klicke ' . __('randomizer.generate.race') . '
    8. ' - . '
    9. Dann speichere deine Rom und fang an zu spielen
    10. ' + . '
    11. Dann speichere deine ROM und fang an zu spielen
    12. ' . '
    ', ], 'info' => [ @@ -56,6 +56,6 @@ 'music_info' => '(setze zu "Keine" für MSU-1 Support)', 'quickswap' => 'Gegenstand Schnellwechsel', 'palette_shuffle' => 'Palette Shuffle', - 'race_warning' => 'Funktioniert nicht in einer Rom für Rennen', + 'race_warning' => 'Funktioniert nicht in einer ROM für Rennen', ], ]; diff --git a/resources/lang/en/customizer.php b/resources/lang/en/customizer.php index 579892239..f238d7643 100644 --- a/resources/lang/en/customizer.php +++ b/resources/lang/en/customizer.php @@ -80,8 +80,8 @@ 'description' => 'When this is selected all bets are off, and nothing below matters.', ], 'logicMode' => [ - 'title' => 'Glitches Required Rom "Fixes"', - 'description' => 'Set the type of rom fixes applied. Does not change item placement logic.' + 'title' => 'Glitches Required ROM "Fixes"', + 'description' => 'Set the type of ROM fixes applied. Does not change item placement logic.' ] ] ]; diff --git a/resources/lang/en/entrance.php b/resources/lang/en/entrance.php index e5ec0bb5a..3769fb8fd 100644 --- a/resources/lang/en/entrance.php +++ b/resources/lang/en/entrance.php @@ -70,6 +70,6 @@ 'details' => [ 'title' => 'Game Details', 'save_spoiler' => 'Save Spoiler', - 'save_rom' => 'Save Rom', + 'save_rom' => 'Save ROM', ], ]; diff --git a/resources/lang/en/randomizer.php b/resources/lang/en/randomizer.php index a7ba78a87..c8d2f8f73 100644 --- a/resources/lang/en/randomizer.php +++ b/resources/lang/en/randomizer.php @@ -205,9 +205,9 @@ 'details' => [ 'title' => 'Game Details', 'save_spoiler' => 'Save Spoiler', - 'save_rom' => 'Save Rom', + 'save_rom' => 'Save ROM', ], - // depricated + // deprecated 'variation' => [ 'title' => 'Variation', ], diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index df953f436..2dc9e31c7 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -475,7 +475,7 @@
  • Updated Entrance Randomizer to v0.5.2.1 (has many more options, thanks KevinCathcart)
  • Some Grammar fixes (thanks spannerisms)
  • Ganon's Tower Big Key logic fix (thanks pancelor)
  • -
  • Rom checksum fix (thanks qwertymodo)
  • +
  • ROM checksum fix (thanks qwertymodo)
  • Added API endpoints to allow integrations with sprites/settings (thanks roxas232)
  • Redesign of the site to be easier to locate information and look nicer (thanks walking_eye)
  • Customizer fixes based on feedback
      @@ -496,7 +496,7 @@
    • Easy difficulty will always have dungeon counts in HUD enabled
    • Added + to golden bee bottle in menu
    • Added letter to signify bottle contents for potions in menu
    • -
    • Added "fast menu" under Rom options, not available in Race Roms
    • +
    • Added "fast menu" under ROM options, not available in Race ROMs
    • Hard/Expert/Insane has default magic usage for Blind/Ice Palace spike room/Turtle Rock laser bridge
    • Added key-sanity
    • Updated ending sequence to allow better tag lines
    • From 32c873160054e8649594c95b93ef07f6dc75c9e7 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Thu, 27 May 2021 08:51:15 -0400 Subject: [PATCH 28/59] Fix 'rom' to 'ROM' in a lot of places. --- app/Console/Commands/MakeTranslation.php | 4 ++-- app/Console/Commands/Randomize.php | 16 ++++++++-------- app/Console/Commands/UpdateBuildRecord.php | 4 ++-- app/Enemizer.php | 2 +- app/Http/Controllers/SettingsController.php | 2 +- app/Location/Dig/HauntedGrove.php | 4 ++-- app/Location/Drop/Bombos.php | 4 ++-- app/Location/Drop/Ether.php | 4 ++-- app/Location/Npc/BugCatchingKid.php | 4 ++-- app/Location/Npc/Uncle.php | 2 +- app/Location/Npc/Witch.php | 4 ++-- app/Location/Npc/Zora.php | 4 ++-- app/Randomizer.php | 2 +- app/Rom.php | 6 +++--- app/World.php | 2 +- resources/js/rom.js | 4 ++-- resources/js/views/Customizer.vue | 2 +- resources/js/views/Randomizer.vue | 2 +- resources/lang/en/rom.php | 4 ++-- resources/lang/en/start.php | 2 +- resources/lang/fr/rom.php | 2 +- resources/views/updates.blade.php | 6 +++--- tests/js/components/VTRomLoader.test.js | 2 +- 23 files changed, 44 insertions(+), 44 deletions(-) diff --git a/app/Console/Commands/MakeTranslation.php b/app/Console/Commands/MakeTranslation.php index 735980c83..3983ec662 100644 --- a/app/Console/Commands/MakeTranslation.php +++ b/app/Console/Commands/MakeTranslation.php @@ -14,8 +14,8 @@ class MakeTranslation extends Command * @var string */ protected $signature = 'alttp:i18n' - . ' {output_file : where to write translated rom}' - . ' {--i|input_file= : rom to translate}'; + . ' {output_file : where to write translated ROM}' + . ' {--i|input_file= : ROM to translate}'; /** * The console command description. diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index 4c711a034..9b0af8699 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -21,16 +21,16 @@ class Randomize extends Command * * @var string */ - protected $signature = 'alttp:randomize {input_file : base rom to randomize}' - . ' {output_directory : where to place randomized rom}' - . ' {--unrandomized : do not apply randomization to the rom}' + protected $signature = 'alttp:randomize {input_file : base ROM to randomize}' + . ' {output_directory : where to place randomized ROM}' + . ' {--unrandomized : do not apply randomization to the ROM}' . ' {--spoiler : generate a spoiler file}' . ' {--heartbeep=half : set heart beep speed}' - . ' {--skip-md5 : do not validate md5 of base rom}' + . ' {--skip-md5 : do not validate md5 of base ROM}' . ' {--tournament : enable tournament mode}' - . ' {--bulk=1 : generate multiple roms}' + . ' {--bulk=1 : generate multiple ROMs}' . ' {--sprite= : sprite file to change links graphics [zspr format]}' - . ' {--no-rom : do not generate output rom}' + . ' {--no-rom : do not generate output ROM}' . ' {--no-music : mute all music}' . ' {--menu-speed=normal : menu speed}' . ' {--goal=ganon : set game goal}' @@ -51,7 +51,7 @@ class Randomize extends Command * * @var string */ - protected $description = 'Generate a randomized rom.'; + protected $description = 'Generate a randomized ROM.'; /** @var array */ protected $reset_patch; @@ -215,7 +215,7 @@ public function handle() } /** - * Apply base patch to rom file. + * Apply base patch to ROM file. * * @throws \Exception when base patch has no content. * diff --git a/app/Console/Commands/UpdateBuildRecord.php b/app/Console/Commands/UpdateBuildRecord.php index b0fa9051f..a2a8a64fd 100644 --- a/app/Console/Commands/UpdateBuildRecord.php +++ b/app/Console/Commands/UpdateBuildRecord.php @@ -24,7 +24,7 @@ class UpdateBuildRecord extends Command * * @var string */ - protected $description = 'build bps, json patch, and upate the rom build in DB'; + protected $description = 'build bps, json patch, and upate the ROM build in DB'; /** * Execute the console command. @@ -170,7 +170,7 @@ private function makeJsonPatch(string $hash, string $rom): void $updated_rom = fopen($rom, "r"); if ($updated_rom === false) { - throw new Exception('Could not open updated rom'); + throw new Exception('Could not open updated ROM'); } $i = 0; diff --git a/app/Enemizer.php b/app/Enemizer.php index 9a43c4085..07d564cb9 100644 --- a/app/Enemizer.php +++ b/app/Enemizer.php @@ -32,7 +32,7 @@ class Enemizer * Create a new Enemizer * * @param \ALttP\World $world world to enemize - * @param array $rom_patch the current rom patch + * @param array $rom_patch the current ROM patch * * @return void */ diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index c84267aed..32f47f82f 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -191,7 +191,7 @@ public function customizer(): array } /** - * Get information on the current rom patch. + * Get information on the current ROM patch. * * @return array */ diff --git a/app/Location/Dig/HauntedGrove.php b/app/Location/Dig/HauntedGrove.php index 113f2cb4a..1e594c942 100644 --- a/app/Location/Dig/HauntedGrove.php +++ b/app/Location/Dig/HauntedGrove.php @@ -12,9 +12,9 @@ class HauntedGrove extends Dig { /** - * Write item to rom. + * Write item to ROM. * - * @param \ALttP\Rom $rom rom to write to + * @param \ALttP\Rom $rom ROM to write to * @param \ALttP\Item $item item to write * * @return \ALttP\Location diff --git a/app/Location/Drop/Bombos.php b/app/Location/Drop/Bombos.php index 40161b2c2..a91a69957 100644 --- a/app/Location/Drop/Bombos.php +++ b/app/Location/Drop/Bombos.php @@ -12,9 +12,9 @@ class Bombos extends Location { /** - * Write item to rom. + * Write item to ROM. * - * @param \ALttP\Rom $rom rom to write to + * @param \ALttP\Rom $rom ROM to write to * @param \ALttP\Item $item item to write * * @return \ALttP\Location diff --git a/app/Location/Drop/Ether.php b/app/Location/Drop/Ether.php index b96833786..4dea24bd9 100644 --- a/app/Location/Drop/Ether.php +++ b/app/Location/Drop/Ether.php @@ -12,9 +12,9 @@ class Ether extends Location { /** - * Write item to rom. + * Write item to ROM. * - * @param \ALttP\Rom $rom rom to write to + * @param \ALttP\Rom $rom ROM to write to * @param \ALttP\Item $item item to write * * @return \ALttP\Location diff --git a/app/Location/Npc/BugCatchingKid.php b/app/Location/Npc/BugCatchingKid.php index a7fae7986..cdd3d2a7e 100644 --- a/app/Location/Npc/BugCatchingKid.php +++ b/app/Location/Npc/BugCatchingKid.php @@ -12,9 +12,9 @@ class BugCatchingKid extends Npc { /** - * Write item to rom. + * Write item to ROM. * - * @param \ALttP\Rom $rom rom to write to + * @param \ALttP\Rom $rom ROM to write to * @param \ALttP\Item $item item to write * * @return \ALttP\Location diff --git a/app/Location/Npc/Uncle.php b/app/Location/Npc/Uncle.php index 0332491d8..376bd7def 100644 --- a/app/Location/Npc/Uncle.php +++ b/app/Location/Npc/Uncle.php @@ -14,7 +14,7 @@ class Uncle extends Location /** * Sets the item for this location. We need to check mode to determine fills/assit. * - * @param \ALttP\Rom $rom rom to write to + * @param \ALttP\Rom $rom ROM to write to * @param \ALttP\Item $item item to write * * @return \ALttP\Location diff --git a/app/Location/Npc/Witch.php b/app/Location/Npc/Witch.php index ec66e2a59..5403b318f 100644 --- a/app/Location/Npc/Witch.php +++ b/app/Location/Npc/Witch.php @@ -12,9 +12,9 @@ class Witch extends Npc { /** - * Write item to rom. + * Write item to ROM. * - * @param \ALttP\Rom $rom rom to write to + * @param \ALttP\Rom $rom ROM to write to * @param \ALttP\Item $item item to write * * @return \ALttP\Location diff --git a/app/Location/Npc/Zora.php b/app/Location/Npc/Zora.php index d77d449a2..6e9658249 100644 --- a/app/Location/Npc/Zora.php +++ b/app/Location/Npc/Zora.php @@ -12,9 +12,9 @@ class Zora extends Npc { /** - * Write item to rom. + * Write item to ROM. * - * @param \ALttP\Rom $rom rom to write to + * @param \ALttP\Rom $rom ROM to write to * @param \ALttP\Item $item item to write * * @return \ALttP\Location diff --git a/app/Randomizer.php b/app/Randomizer.php index 2ea8cf5d7..4b6c022b7 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -946,7 +946,7 @@ public function setTexts(World $world) // progressive bow hint and handling // @todo this swap of item really shouldn't happen here, we don't know - // for sure that the items haven't already been written to the rom. + // for sure that the items haven't already been written to the ROM. $progressive_bow_locations = $world->getLocationsWithItem(Item::get('ProgressiveBow', $world))->randomCollection(2); if ($progressive_bow_locations->count() > 0) { $first_location = $progressive_bow_locations->pop(); diff --git a/app/Rom.php b/app/Rom.php index 98f1944c9..8e4f647e2 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -1189,7 +1189,7 @@ public function setText(string $key, string $string, ...$flags): self } /** - * Commit the text table to rom + * Commit the text table to ROM * * @return $this */ @@ -1685,7 +1685,7 @@ public function setHardMode(int $level = 0): self /** * Quick and dirty shop setting code. * - * @param \ALttP\Support\ShopCollection $shops shops to write to rom + * @param \ALttP\Support\ShopCollection $shops shops to write to ROM * * @return $this */ @@ -3029,7 +3029,7 @@ public function write(int $offset, string $data, bool $log = true): self } /** - * Get the array of bytes written in the order they were written to the rom + * Get the array of bytes written in the order they were written to the ROM * * @return array */ diff --git a/app/World.php b/app/World.php index 0f6209ab9..4a7b6418c 100644 --- a/app/World.php +++ b/app/World.php @@ -941,7 +941,7 @@ public function getSpoiler(array $meta = []): array } /** - * Set an override patch to write to the rom, in case randomization was done + * Set an override patch to write to the ROM, in case randomization was done * in an alternate fashion. * * @param array $patch patch data to overwrite with diff --git a/resources/js/rom.js b/resources/js/rom.js index 2f8fc8d6e..2fcf73a50 100644 --- a/resources/js/rom.js +++ b/resources/js/rom.js @@ -22,7 +22,7 @@ export default class ROM { if (typeof this.arrayBuffer === "undefined") { throw new Error("Could not read this.arrayBuffer"); } - // Check rom for header and cut it out + // Check ROM for header and cut it out if (this.arrayBuffer.byteLength % 0x400 == 0x200) { this.arrayBuffer = this.arrayBuffer.slice( 0x200, @@ -129,7 +129,7 @@ export default class ROM { this.setMusicVolume(musicOn); this.updateChecksum().then(() => { - FileSaver.saveAs(new Blob([this.u_array], {type: 'application/octet-stream'}), filename); + FileSaver.saveAs(new Blob([this.u_array], { type: 'application/octet-stream' }), filename); // undo any presave processing we did. this.arrayBuffer = preProcess; diff --git a/resources/js/views/Customizer.vue b/resources/js/views/Customizer.vue index c7fe95186..4ad2dd208 100644 --- a/resources/js/views/Customizer.vue +++ b/resources/js/views/Customizer.vue @@ -568,7 +568,7 @@ export default { response.data.current_rom_hash && response.data.current_rom_hash != this.current_rom_hash ) { - // The base rom has been updated. or test call + // The base ROM has been updated. or test call window.location.reload(true); } diff --git a/resources/js/views/Randomizer.vue b/resources/js/views/Randomizer.vue index 83ff33c4e..9162a97ca 100644 --- a/resources/js/views/Randomizer.vue +++ b/resources/js/views/Randomizer.vue @@ -492,7 +492,7 @@ export default { response.data.current_rom_hash && response.data.current_rom_hash != this.current_rom_hash ) { - // The base rom has been updated. + // The base ROM has been updated. window.location.reload(true); } if ( diff --git a/resources/lang/en/rom.php b/resources/lang/en/rom.php index 51488a9ba..fe8b04a43 100644 --- a/resources/lang/en/rom.php +++ b/resources/lang/en/rom.php @@ -4,10 +4,10 @@ 'title' => 'Getting Started', 'file_select' => 'Select ROM File', 'content' => '
        ' - . '
      1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
      2. ' + . '
      3. Select your ROM file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
      4. ' . '
      5. Select the ' . __('navigation.options') . ' for how you would like your game randomized
      6. ' . '
      7. Click ' . __('randomizer.generate.spoiler_race') . '
      8. ' - . '
      9. Then Save your rom and get to playing
      10. ' + . '
      11. Then Save your ROM and get to playing
      12. ' . '
      ', ], 'info' => [ diff --git a/resources/lang/en/start.php b/resources/lang/en/start.php index a35aca552..3739cdbe0 100644 --- a/resources/lang/en/start.php +++ b/resources/lang/en/start.php @@ -14,7 +14,7 @@ 'header' => '2. Get the ROM', 'content' => [ 'You’ll need the base ROM. This should be a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM. Don’t worry if you can’t read Japanese; the patching process provides English text while keeping the glitches unique to the original version intact.', - 'One can verify they have the correct rom on this site.', + 'One can verify they have the correct ROM on this site.', 'If you run into trouble, ask in Discord!', ] ], diff --git a/resources/lang/fr/rom.php b/resources/lang/fr/rom.php index 465aa9202..72ebebbce 100644 --- a/resources/lang/fr/rom.php +++ b/resources/lang/fr/rom.php @@ -7,7 +7,7 @@ . '
    • Sélectionnez votre fichier ROM et chargez-le dans le navigateur (utilisez une ROM Zelda no Densetsu: Kamigami no Triforce v1.0 avec une extension .smc ou .sfc)
    • ' . '
    • Sélectionnez les ' . __('navigation.options') . ' pour déterminer de quelle façon le jeu sera randomisé
    • ' . '
    • Cliquez sur ' . __('randomizer.generate.race') . '
    • ' - . '
    • Ensuite, sauvegardez votre rom et commencez à jouer
    • ' + . '
    • Ensuite, sauvegardez votre ROM et commencez à jouer
    • ' . '', ], 'info' => [ diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index 2dc9e31c7..80a399fc1 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -153,7 +153,7 @@
    • Fixed Silver Arrows being unavailable in Swordless games with a Hard+ Item Pool setting
    • Fixed hints in customizer games
    • Fixed issue with manually placed Triforce Pieces were not counted in customizer.
    • -
    • Customizer players may now set what rom fixes are applied to their glitched games.
    • +
    • Customizer players may now set what ROM fixes are applied to their glitched games.
    • Added Underworld One Frame Clips to customizer Logic Settings
    • API support for mystery games
    • API support for z3rsim
    • @@ -445,7 +445,7 @@
    • Flute time in credits fixed
    • Better boss logic for future fun
    • Added quick swap functionality
    • -
    • If you use a headered rom, the site will try to strip that header out before use (thanks Myramong)
    • +
    • If you use a headered ROM, the site will try to strip that header out before use (thanks Myramong)
    • Added new player options
      Link sprite options
    • @@ -537,7 +537,7 @@
    • updated timed-OHKO for different difficulties
    • Boots are no longer guaranteed in Sanctuary for Major Glitches
    • Hammer can now activate tablets in swordless
    • -
    • Numerous rom related bugs fixed
    • +
    • Numerous ROM related bugs fixed
    • Added some descriptions to the ER shuffle modes from docs
    • Waterfall fairy no longer upgrades shield/boomerang
    • Added Triforce Hunt goal/variation
    • diff --git a/tests/js/components/VTRomLoader.test.js b/tests/js/components/VTRomLoader.test.js index b59643b7f..6bfd53ffc 100644 --- a/tests/js/components/VTRomLoader.test.js +++ b/tests/js/components/VTRomLoader.test.js @@ -19,7 +19,7 @@ it("is a Vue instance", () => { expect(wrapper.isVueInstance()).toBeTruthy(); }); -it("sets settings_loaded to true when a current rom hash is passed in", () => { +it("sets settings_loaded to true when a current ROM hash is passed in", () => { const wrapper = shallowMount(VTRomLoader, { propsData: { currentRomHash: "testing" From abc90e6aa838ce194f3e19ca8cd036a7e866a19b Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Thu, 27 May 2021 08:51:59 -0400 Subject: [PATCH 29/59] Generate i18n. --- resources/js/vue-i18n-locales.generated.js | 2794 ++++++++++---------- 1 file changed, 1397 insertions(+), 1397 deletions(-) diff --git a/resources/js/vue-i18n-locales.generated.js b/resources/js/vue-i18n-locales.generated.js index b8d4e691e..59aafd36a 100644 --- a/resources/js/vue-i18n-locales.generated.js +++ b/resources/js/vue-i18n-locales.generated.js @@ -1,227 +1,5 @@ export default { "de": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Wähle Voreinstellungen", - "customize": "Customire", - "options": { - "default": "Default", - "beginner": "Beginner", - "veetorp": "OWG (Veetorp’s Favorit)", - "crosskeys": "Crosskeys", - "quick": "Super Schnell", - "nightmare": "Albtraum", - "tournament": "Turnier", - "custom": "Benutzerdefiniert" - } - }, - "placement": { - "title": "Gegenstandsplatzierung" - }, - "item_placement": { - "title": "Gegenstandsplatzierung", - "options": { - "basic": "Basis", - "advanced": "Erweitert" - } - }, - "dungeon_items": { - "title": "Palastgegenstände", - "options": { - "standard": "Standard", - "mc": "Karten/Kompässe", - "mcs": "Karten/Kompässe/kleine Schlüssel", - "full": "Keysanity" - } - }, - "accessibility": { - "title": "Zugänglichkeit", - "options": { - "items": "100% Inventar", - "locations": "100% der Orte", - "none": "Schaffbar" - } - }, - "glitches_required": { - "title": "Vorausgesetzte Glitches", - "options": { - "none": "Keine", - "overworld_glitches": "Overworld Glitches", - "major_glitches": "Major Glitches", - "no_logic": "Keine Logik" - }, - "glitch_warning": "Diese Einstellung setzt Wissen von Major Glitches voraus**" - }, - "goal": { - "title": "Ziel", - "options": { - "ganon": "Besiege Ganon", - "fast_ganon": "Fast Ganon", - "dungeons": "Alle Dungeons", - "pedestal": "Master-Schwert Sockel", - "triforce-hunt": "Triforce-Splitter" - } - }, - "tower_open": { - "title": "Turm öffnen", - "options": { - "0": "0 Kristalle", - "1": "1 Kristall", - "2": "2 Kristalle", - "3": "3 Kristalle", - "4": "4 Kristalle", - "5": "5 Kristalle", - "6": "6 Kristalle", - "7": "7 Kristalle", - "random": "Zufällig" - } - }, - "ganon_open": { - "title": "Ganon verwundbar machen", - "options": { - "0": "0 Kristalle", - "1": "1 Kristall", - "2": "2 Kristalle", - "3": "3 Kristalle", - "4": "4 Kristalle", - "5": "5 Kristalle", - "6": "6 Kristalle", - "7": "7 Kristalle", - "random": "Zufällig" - } - }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "Zustand der Welt", - "options": { - "standard": "Standard", - "open": "Offen", - "inverted": "Invertiert", - "retro": "Retro" - } - }, - "entrance_shuffle": { - "title": "Entrance Shuffle", - "options": { - "none": "Keine", - "simple": "Simpel", - "restricted": "Beschränkt", - "full": "Voll", - "crossed": "Gekreuzt", - "insanity": "Wahnsinn" - } - }, - "boss_shuffle": { - "title": "Boss Shuffle", - "options": { - "none": "Keine", - "simple": "Simpel", - "full": "Voll", - "random": "Zufällig" - } - }, - "enemy_shuffle": { - "title": "Enemy Shuffle", - "options": { - "none": "Keine", - "shuffled": "Gemischt", - "random": "Zufällig" - } - }, - "hints": { - "title": "Hinweise", - "options": { - "on": "An", - "off": "Aus" - } - }, - "weapons": { - "title": "Schwerter", - "options": { - "randomized": "Zufällig", - "assured": "Garantiert", - "vanilla": "Vanilla", - "swordless": "Schwertlos" - } - }, - "item_pool": { - "title": "Item Pool", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Diese Erweiterung ist für die Verwundung mit Twitches Crowd Control Erweiterung gedacht. Für mehr Info´s: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Gegendstands Funktionalität", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte" - } - }, - "enemy_damage": { - "title": "Gegnerschaden", - "options": { - "default": "Default", - "shuffled": "Gemischt", - "random": "Zufällig" - } - }, - "enemy_health": { - "title": "Gegnerleben", - "options": { - "default": "Default", - "easy": "Einfach", - "hard": "Schwer", - "expert": "Experte" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Nur bei Generieren" - } - }, - "generate": { - "race": "Generiere ROM für Rennen", - "race_warning": "Spoilerfrei", - "spoiler_race": "ROM für Spoiler Rennen", - "casual": "Generiere ROM", - "back": "Ändere Einstellung", - "regenerate": "Erneut erstellen", - "regenerate_tooltip": "Erstellt ein neues Spiel mit den gleichen Einstellungen", - "generating": "Am erstellen..." - }, - "details": { - "title": "Spiel Details", - "save_spoiler": "Speichere Spoiler", - "save_rom": "Speichere Rom" - }, - "variation": { - "title": "Variation" - }, - "difficulty": { - "title": "Schwierigkeitsgrad", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte", - "insane": "Wahnsinnig", - "crowdControl": "Crowd Control" - } - } - }, "customizer": { "settings": { "timers": { @@ -304,41 +82,157 @@ export default { } } }, - "item": { - "Random": "Zufällig", - "BottleWithRandom": "Flasche (Zufällig)", - "Nothing": "Nichts", - "UncleSword": "Progressives Schwert", - "L1Sword": "Schwert des Onkels", - "L1SwordAndShield": "Schwert und Schild des Onkels", - "L2Sword": "Master-Schwert", - "MasterSword": "Master-Schwert", - "L3Sword": "Gehärtetes Schwert", - "L4Sword": "Goldenes Schwert", - "BlueShield": "Schild des Onkels", - "RedShield": "Rotes Schild", - "MirrorShield": "Spiegelschild", - "FireRod": "Feuerstab", - "IceRod": "Eisstab", - "Hammer": "Hammer", - "Hookshot": "Enterharken", - "Bow": "Bogen", - "Boomerang": "Blauer Bumerang", - "Powder": "Magisches Pulver", - "Bee": "Biene", - "Bombos": "Bombos-Medaillon", - "Ether": "Ether-Medaillon", - "Quake": "Quake-Medaillon", - "Lamp": "Lampe", - "Shovel": "Schaufel", - "OcarinaInactive": "Flöte", - "CaneOfSomaria": "Somaria Stab", - "Bottle": "Flasche (Leer)", - "PieceOfHeart": "Herzteil", - "CaneOfByrna": "Byrna Stab", - "Cape": "Magischer Umhang", - "MagicMirror": "Magischer Spiegel", - "PowerGlove": "Krafthandschuhe", + "enemizer": { + "title": "Enemizer", + "enable": "Aktiviere Enemizer", + "disable": "Deaktiviere Enemizer", + "enemy_health": { + "title": "Gegner Leben", + "options": [ + "Regulär", + "Einfach (1-4 hp)", + "Mittel (2-15 hp)", + "Schwer (2-30 hp)", + "Wahnsinnig (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Gegner Schaden", + "options": { + "off": "Regulär", + "shuffle": "Durcheinander", + "chaos": "Chaos" + } + }, + "bosses": { + "title": "Bosse", + "options": { + "off": "Regulär", + "basic": "Basis", + "normal": "Normal", + "chaos": "Chaos" + } + }, + "palette_shuffle": "Palettenmischung", + "pot_shuffle": "Topf mischen", + "enemy_shuffle": "Gegner mischen" + }, + "entrance": { + "title": "Entrance Randomizer", + "switch": { + "item": "Wechsele zum Item Randomizer" + }, + "rom": { + "options": "ROM Optionen" + }, + "difficulty": { + "title": "Schwierigkeit", + "options": { + "easy": "Einfach", + "normal": "Mittel", + "hard": "Schwer", + "expert": "Experte", + "insane": "Wahnsinnig" + } + }, + "goal": { + "title": "Ziel", + "options": { + "ganon": "Besiege Ganon", + "crystals": "Kristalle", + "dungeons": "Alle Dungeons", + "pedestal": "Master-Schwert Sockel", + "triforcehunt": "Triforce Teile" + } + }, + "logic": { + "title": "Logik", + "options": { + "NoGlitches": "Keine Glitches" + } + }, + "mode": { + "title": "Zustand", + "options": { + "swordless": "Schwertlos", + "open": "Offen" + } + }, + "shuffle": { + "title": "Mischung", + "options": { + "simple": "Simpel", + "restricted": "Beschränkt", + "full": "Voll", + "crossed": "Gekreuzt", + "insanity": "Wahnsinn" + } + }, + "variation": { + "title": "Variation", + "options": { + "none": "Keine", + "timed-race": "Zeitrennen", + "timed-ohko": "Zeitlimit bis OHKO", + "ohko": "OHKO", + "triforce-hunt": "Triforce-Splitter Jagd", + "key-sanity": "Keysanity", + "retro": "Retro" + } + }, + "generate": { + "race": "Generiere ROM für Rennen", + "spoiler_race": "ROM für Spoiler Rennen", + "casual": "Generiere ROM" + }, + "details": { + "title": "Spiele Details", + "save_spoiler": "Speichere Spoiler", + "save_rom": "Speichere ROM" + } + }, + "error": { + "title": "Fehler", + "429": "Auch wenn wir schätzen das du einen haufen Spiele generierst, andere Leute möchten dies aber auch. Bitte kommen später wieder wenn du mehr generieren möchtest.", + "failed_generation": "Fehler beim erstellen :(", + "bad_file": "Datei nicht erkannt", + "quota_exceeded_error": "Lokaler Cache Speicher ist voll." + }, + "item": { + "Random": "Zufällig", + "BottleWithRandom": "Flasche (Zufällig)", + "Nothing": "Nichts", + "UncleSword": "Progressives Schwert", + "L1Sword": "Schwert des Onkels", + "L1SwordAndShield": "Schwert und Schild des Onkels", + "L2Sword": "Master-Schwert", + "MasterSword": "Master-Schwert", + "L3Sword": "Gehärtetes Schwert", + "L4Sword": "Goldenes Schwert", + "BlueShield": "Schild des Onkels", + "RedShield": "Rotes Schild", + "MirrorShield": "Spiegelschild", + "FireRod": "Feuerstab", + "IceRod": "Eisstab", + "Hammer": "Hammer", + "Hookshot": "Enterharken", + "Bow": "Bogen", + "Boomerang": "Blauer Bumerang", + "Powder": "Magisches Pulver", + "Bee": "Biene", + "Bombos": "Bombos-Medaillon", + "Ether": "Ether-Medaillon", + "Quake": "Quake-Medaillon", + "Lamp": "Lampe", + "Shovel": "Schaufel", + "OcarinaInactive": "Flöte", + "CaneOfSomaria": "Somaria Stab", + "Bottle": "Flasche (Leer)", + "PieceOfHeart": "Herzteil", + "CaneOfByrna": "Byrna Stab", + "Cape": "Magischer Umhang", + "MagicMirror": "Magischer Spiegel", + "PowerGlove": "Krafthandschuhe", "TitansMitt": "Titanenhandschuhe", "BookOfMudora": "Buch Mudora", "Flippers": "Schwimmflossen", @@ -520,422 +414,285 @@ export default { "Ganon": "Ganon", "Test": "Gegenstand fürs testen" }, - "rom": { - "loader": { - "title": "Anfangen", - "file_select": "ROM Datei auswählen", - "content": "
      1. Wähle die Rom Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
      2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
      3. Klicke Generiere ROM für Rennen
      4. Dann speichere deine Rom und fang an zu spielen
      " - }, - "info": { - "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", - "mystery": "Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!", - "logic": "Vorausgesetzte Glitches", - "accessibility": "Zugänglichkeit", - "build": "ROM build", - "difficulty": "Schwierigkeitsgrad", - "variation": "Variation", - "shuffle": "Entrance Shuffle", - "mode": "Zustand der Welt", - "weapons": "Schwerter", - "goal": "Ziel", - "permalink": "Permalink", - "special": "Spezial", - "notes": "Notizen", - "generated": "Erstellt" - }, - "settings": { - "heart_speed": "Geschwindigkeit des Warnungston bei wenig Leben", - "heart_speeds": { - "off": "Aus", - "double": "Doppelte Geschwindigkeit", - "normal": "Normale Geschwindigkeit", - "half": "Halbe Geschwindigkeit", - "quarter": "Viertel Geschwindigkeit" - }, - "menu_speed": "Menü Geschwindigkeit", - "menu_speeds": { - "instant": "Instant", - "fast": "Schnell", - "normal": "Normal", - "slow": "Langsam" - }, - "heart_color": "Farbe der Herzen", - "heart_colors": { - "blue": "Blau", - "green": "Grün", - "red": "Rot", - "yellow": "Gelb" - }, - "play_as": "Spiele als", - "sprite_file_select": ".zspr Datei auswählen", - "music": "Hintergrundmusik", - "music_info": "(setze zu \"Keine\" für MSU-1 Support)", - "quickswap": "Gegenstand Schnellwechsel", - "palette_shuffle": "Palette Shuffle", - "race_warning": "Funktioniert nicht in einer Rom für Rennen" - } - }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Wechsele zum Item Randomizer" - }, - "rom": { - "options": "ROM Optionen" - }, - "difficulty": { - "title": "Schwierigkeit", + "randomizer": { + "title": "Randomizer", + "preset": { + "title": "Wähle Voreinstellungen", + "customize": "Customire", "options": { - "easy": "Einfach", - "normal": "Mittel", - "hard": "Schwer", - "expert": "Experte", - "insane": "Wahnsinnig" + "default": "Default", + "beginner": "Beginner", + "veetorp": "OWG (Veetorp’s Favorit)", + "crosskeys": "Crosskeys", + "quick": "Super Schnell", + "nightmare": "Albtraum", + "tournament": "Turnier", + "custom": "Benutzerdefiniert" } }, - "goal": { - "title": "Ziel", + "placement": { + "title": "Gegenstandsplatzierung" + }, + "item_placement": { + "title": "Gegenstandsplatzierung", "options": { - "ganon": "Besiege Ganon", - "crystals": "Kristalle", - "dungeons": "Alle Dungeons", - "pedestal": "Master-Schwert Sockel", - "triforcehunt": "Triforce Teile" + "basic": "Basis", + "advanced": "Erweitert" } }, - "logic": { - "title": "Logik", + "dungeon_items": { + "title": "Palastgegenstände", "options": { - "NoGlitches": "Keine Glitches" - } - }, - "mode": { - "title": "Zustand", - "options": { - "swordless": "Schwertlos", - "open": "Offen" - } - }, - "shuffle": { - "title": "Mischung", - "options": { - "simple": "Simpel", - "restricted": "Beschränkt", - "full": "Voll", - "crossed": "Gekreuzt", - "insanity": "Wahnsinn" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "Keine", - "timed-race": "Zeitrennen", - "timed-ohko": "Zeitlimit bis OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce-Splitter Jagd", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generiere ROM für Rennen", - "spoiler_race": "ROM für Spoiler Rennen", - "casual": "Generiere ROM" - }, - "details": { - "title": "Spiele Details", - "save_spoiler": "Speichere Spoiler", - "save_rom": "Speichere Rom" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Aktiviere Enemizer", - "disable": "Deaktiviere Enemizer", - "enemy_health": { - "title": "Gegner Leben", - "options": [ - "Regulär", - "Einfach (1-4 hp)", - "Mittel (2-15 hp)", - "Schwer (2-30 hp)", - "Wahnsinnig (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Gegner Schaden", - "options": { - "off": "Regulär", - "shuffle": "Durcheinander", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Bosse", - "options": { - "off": "Regulär", - "basic": "Basis", - "normal": "Normal", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Palettenmischung", - "pot_shuffle": "Topf mischen", - "enemy_shuffle": "Gegner mischen" - }, - "error": { - "title": "Fehler", - "429": "Auch wenn wir schätzen das du einen haufen Spiele generierst, andere Leute möchten dies aber auch. Bitte kommen später wieder wenn du mehr generieren möchtest.", - "failed_generation": "Fehler beim erstellen :(", - "bad_file": "Datei nicht erkannt", - "quota_exceeded_error": "Lokaler Cache Speicher ist voll." - } - }, - "en": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Select Preset", - "customize": "Customize", - "options": { - "default": "Default", - "beginner": "Beginner", - "veetorp": "OWG (Veetorp’s Favorite)", - "crosskeys": "Crosskeys", - "quick": "Super Quick", - "nightmare": "Nightmare", - "tournament": "Tournament", - "custom": "Custom" - } - }, - "placement": { - "title": "Item Placement" - }, - "item_placement": { - "title": "Item Placement", - "options": { - "basic": "Basic", - "advanced": "Advanced" - } - }, - "dungeon_items": { - "title": "Dungeon Item Shuffle", - "options": { - "standard": "Standard", - "mc": "Maps/Compasses", - "mcs": "Maps/Compasses/Small Keys", - "full": "Keysanity" + "standard": "Standard", + "mc": "Karten/Kompässe", + "mcs": "Karten/Kompässe/kleine Schlüssel", + "full": "Keysanity" } }, "accessibility": { - "title": "Accessibility", + "title": "Zugänglichkeit", "options": { - "items": "100% Inventory", - "locations": "100% Locations", - "none": "Beatable" + "items": "100% Inventar", + "locations": "100% der Orte", + "none": "Schaffbar" } }, "glitches_required": { - "title": "Glitches Required", + "title": "Vorausgesetzte Glitches", "options": { - "none": "None", + "none": "Keine", "overworld_glitches": "Overworld Glitches", "major_glitches": "Major Glitches", - "no_logic": "No Logic" + "no_logic": "Keine Logik" }, - "glitch_warning": "These settings require knowledge of Major Glitches**" + "glitch_warning": "Diese Einstellung setzt Wissen von Major Glitches voraus**" }, "goal": { - "title": "Goal", + "title": "Ziel", "options": { - "ganon": "Defeat Ganon", + "ganon": "Besiege Ganon", "fast_ganon": "Fast Ganon", - "dungeons": "All Dungeons", - "pedestal": "Master Sword Pedestal", - "triforce-hunt": "Triforce Pieces" + "dungeons": "Alle Dungeons", + "pedestal": "Master-Schwert Sockel", + "triforce-hunt": "Triforce-Splitter" } }, "tower_open": { - "title": "Open Tower", + "title": "Turm öffnen", "options": { - "0": "0 Crystals", - "1": "1 Crystal", - "2": "2 Crystals", - "3": "3 Crystals", - "4": "4 Crystals", - "5": "5 Crystals", - "6": "6 Crystals", - "7": "7 Crystals", - "random": "Random" + "0": "0 Kristalle", + "1": "1 Kristall", + "2": "2 Kristalle", + "3": "3 Kristalle", + "4": "4 Kristalle", + "5": "5 Kristalle", + "6": "6 Kristalle", + "7": "7 Kristalle", + "random": "Zufällig" } }, "ganon_open": { - "title": "Ganon Vulnerable", + "title": "Ganon verwundbar machen", "options": { - "0": "0 Crystals", - "1": "1 Crystal", - "2": "2 Crystals", - "3": "3 Crystals", - "4": "4 Crystals", - "5": "5 Crystals", - "6": "6 Crystals", - "7": "7 Crystals", - "random": "Random" + "0": "0 Kristalle", + "1": "1 Kristall", + "2": "2 Kristalle", + "3": "3 Kristalle", + "4": "4 Kristalle", + "5": "5 Kristalle", + "6": "6 Kristalle", + "7": "7 Kristalle", + "random": "Zufällig" } }, "gameplay": { "title": "Gameplay" }, "world_state": { - "title": "World State", + "title": "Zustand der Welt", "options": { "standard": "Standard", - "open": "Open", - "inverted": "Inverted", + "open": "Offen", + "inverted": "Invertiert", "retro": "Retro" } }, "entrance_shuffle": { "title": "Entrance Shuffle", "options": { - "none": "None", - "simple": "Simple", - "restricted": "Restricted", - "full": "Full", - "crossed": "Crossed", - "insanity": "Insanity" + "none": "Keine", + "simple": "Simpel", + "restricted": "Beschränkt", + "full": "Voll", + "crossed": "Gekreuzt", + "insanity": "Wahnsinn" } }, "boss_shuffle": { "title": "Boss Shuffle", "options": { - "none": "None", - "simple": "Simple", - "full": "Full", - "random": "Random" + "none": "Keine", + "simple": "Simpel", + "full": "Voll", + "random": "Zufällig" } }, "enemy_shuffle": { "title": "Enemy Shuffle", "options": { - "none": "None", - "shuffled": "Shuffled", - "random": "Random" + "none": "Keine", + "shuffled": "Gemischt", + "random": "Zufällig" } }, "hints": { - "title": "Hints", + "title": "Hinweise", "options": { - "on": "On", - "off": "Off" + "on": "An", + "off": "Aus" } }, "weapons": { - "title": "Swords", + "title": "Schwerter", "options": { - "randomized": "Randomized", - "assured": "Assured", + "randomized": "Zufällig", + "assured": "Garantiert", "vanilla": "Vanilla", - "swordless": "Swordless" + "swordless": "Schwertlos" } }, "item_pool": { "title": "Item Pool", "options": { - "easy": "Easy", + "easy": "Einfach", "normal": "Normal", - "hard": "Hard", - "expert": "Expert", + "hard": "Schwer", + "expert": "Experte", "crowd_control": "Crowd Control" }, - "crowd_control_warning": "* This setting is meant to be used with the Crowd Control Twitch extension. find out more: https://crowdcontrol.live/" + "crowd_control_warning": "* Diese Erweiterung ist für die Verwundung mit Twitches Crowd Control Erweiterung gedacht. Für mehr Info´s: https://crowdcontrol.live/" }, "item_functionality": { - "title": "Item Functionality", + "title": "Gegendstands Funktionalität", "options": { - "easy": "Easy", + "easy": "Einfach", "normal": "Normal", - "hard": "Hard", - "expert": "Expert" + "hard": "Schwer", + "expert": "Experte" } }, "enemy_damage": { - "title": "Enemy Damage", + "title": "Gegnerschaden", "options": { "default": "Default", - "shuffled": "Shuffled", - "random": "Random" + "shuffled": "Gemischt", + "random": "Zufällig" } }, "enemy_health": { - "title": "Enemy Health", + "title": "Gegnerleben", "options": { "default": "Default", - "easy": "Easy", - "hard": "Hard", - "expert": "Expert" - } + "easy": "Einfach", + "hard": "Schwer", + "expert": "Experte" + } }, "spoiler": { "title": "Spoilers", "options": { "off": "Disabled", "on": "Enabled", - "generate": "Only on Generate", - "mystery": "Mystery (settings hidden)" + "generate": "Nur bei Generieren" } }, "generate": { - "race": "Generate Race ROM", - "race_warning": "Spoilers will never be available for this option.", - "spoiler_race": "Generate Normal ROM", - "casual": "Generate ROM", - "back": "Change Settings", - "regenerate": "Generate Again", - "regenerate_tooltip": "Generate new game with same settings", - "generating": "Generating..." + "race": "Generiere ROM für Rennen", + "race_warning": "Spoilerfrei", + "spoiler_race": "ROM für Spoiler Rennen", + "casual": "Generiere ROM", + "back": "Ändere Einstellung", + "regenerate": "Erneut erstellen", + "regenerate_tooltip": "Erstellt ein neues Spiel mit den gleichen Einstellungen", + "generating": "Am erstellen..." }, "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save Rom" + "title": "Spiel Details", + "save_spoiler": "Speichere Spoiler", + "save_rom": "Speichere ROM" }, "variation": { "title": "Variation" }, "difficulty": { - "title": "Difficulty", + "title": "Schwierigkeitsgrad", "options": { - "easy": "Easy", + "easy": "Einfach", "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane", + "hard": "Schwer", + "expert": "Experte", + "insane": "Wahnsinnig", "crowdControl": "Crowd Control" } } }, - "region": { - "all": "All Regions", - "Light World": "Light World", - "Hyrule Castle": "Hyrule Castle", - "Eastern Palace": "Eastern Palace", - "Desert Palace": "Desert Palace", - "Death Mountain": "Death Mountain", - "Tower Of Hera": "Tower Of Hera", - "Castle Tower": "Castle Tower", - "Dark World": "Dark World", - "Dark Palace": "Dark Palace", - "Swamp Palace": "Swamp Palace", - "Skull Woods": "Skull Woods", - "Thieves Town": "Thieves Town", - "Ice Palace": "Ice Palace", - "Misery Mire": "Misery Mire", - "Turtle Rock": "Turtle Rock", - "Ganons Tower": "Ganons Tower", - "Special": "Special" - }, + "rom": { + "loader": { + "title": "Anfangen", + "file_select": "ROM Datei auswählen", + "content": "
      1. Wähle die ROM Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
      2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
      3. Klicke Generiere ROM für Rennen
      4. Dann speichere deine ROM und fang an zu spielen
      " + }, + "info": { + "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", + "mystery": "Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!", + "logic": "Vorausgesetzte Glitches", + "accessibility": "Zugänglichkeit", + "build": "ROM build", + "difficulty": "Schwierigkeitsgrad", + "variation": "Variation", + "shuffle": "Entrance Shuffle", + "mode": "Zustand der Welt", + "weapons": "Schwerter", + "goal": "Ziel", + "permalink": "Permalink", + "special": "Spezial", + "notes": "Notizen", + "generated": "Erstellt" + }, + "settings": { + "heart_speed": "Geschwindigkeit des Warnungston bei wenig Leben", + "heart_speeds": { + "off": "Aus", + "double": "Doppelte Geschwindigkeit", + "normal": "Normale Geschwindigkeit", + "half": "Halbe Geschwindigkeit", + "quarter": "Viertel Geschwindigkeit" + }, + "menu_speed": "Menü Geschwindigkeit", + "menu_speeds": { + "instant": "Instant", + "fast": "Schnell", + "normal": "Normal", + "slow": "Langsam" + }, + "heart_color": "Farbe der Herzen", + "heart_colors": { + "blue": "Blau", + "green": "Grün", + "red": "Rot", + "yellow": "Gelb" + }, + "play_as": "Spiele als", + "sprite_file_select": ".zspr Datei auswählen", + "music": "Hintergrundmusik", + "music_info": "(setze zu \"Keine\" für MSU-1 Support)", + "quickswap": "Gegenstand Schnellwechsel", + "palette_shuffle": "Palette Shuffle", + "race_warning": "Funktioniert nicht in einer ROM für Rennen" + } + } + }, + "en": { "customizer": { "settings": { "timers": { @@ -1017,11 +774,127 @@ export default { "description": "When this is selected all bets are off, and nothing below matters." }, "logicMode": { - "title": "Glitches Required Rom \"Fixes\"", - "description": "Set the type of rom fixes applied. Does not change item placement logic." + "title": "Glitches Required ROM \"Fixes\"", + "description": "Set the type of ROM fixes applied. Does not change item placement logic." + } + } + }, + "enemizer": { + "title": "Enemizer", + "enable": "Enable Enemizer", + "disable": "Disable Enemizer", + "enemy_health": { + "title": "Enemy Health", + "options": [ + "Default", + "Easy (1-4 hp)", + "Normal (2-15 hp)", + "Hard (2-30 hp)", + "Brick Wall (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Enemy Damage", + "options": { + "off": "Default", + "shuffle": "Shuffled", + "chaos": "Chaos" + } + }, + "bosses": { + "title": "Boss Shuffle", + "options": { + "off": "Off", + "basic": "Simple", + "normal": "Full", + "chaos": "Chaos" + } + }, + "palette_shuffle": "Palette Shuffle", + "pot_shuffle": "Pot Shuffle", + "enemy_shuffle": "Enemy Shuffle" + }, + "entrance": { + "title": "Entrance Randomizer", + "switch": { + "item": "Switch to Item Randomizer" + }, + "rom": { + "options": "ROM Options" + }, + "difficulty": { + "title": "Difficulty", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert", + "insane": "Insane" + } + }, + "goal": { + "title": "Goal", + "options": { + "ganon": "Defeat Ganon", + "crystals": "Crystals", + "dungeons": "All Dungeons", + "pedestal": "Master Sword Pedestal", + "triforcehunt": "Triforce Pieces" + } + }, + "logic": { + "title": "Logic", + "options": { + "NoGlitches": "No Glitches" + } + }, + "mode": { + "title": "State", + "options": { + "swordless": "Swordless", + "open": "Open" + } + }, + "shuffle": { + "title": "Shuffle", + "options": { + "simple": "Simple", + "restricted": "Restricted", + "full": "Full", + "crossed": "Crossed", + "insanity": "Insanity" + } + }, + "variation": { + "title": "Variation", + "options": { + "none": "None", + "timed-race": "Timed Race", + "timed-ohko": "Timed OHKO", + "ohko": "OHKO", + "triforce-hunt": "Triforce Piece Hunt", + "key-sanity": "Keysanity", + "retro": "Retro" } + }, + "generate": { + "race": "Generate Race ROM", + "spoiler_race": "Spoiler Race ROM", + "casual": "Generate ROM" + }, + "details": { + "title": "Game Details", + "save_spoiler": "Save Spoiler", + "save_rom": "Save ROM" } }, + "error": { + "title": "Error", + "429": "While we apprecate your want to generate a lot of games, Other people would like to as well. Please come back later if you would like to generate more.", + "failed_generation": "Failed Creating Game :(", + "bad_file": "File not recognized", + "quota_exceeded_error": "Your local storage quota has been exceeded." + }, "item": { "Random": "Random", "BottleWithRandom": "Bottle (Random)", @@ -1243,105 +1116,113 @@ export default { "title": "Multiworld Randomizer", "generate": "Generate Multiworld Data File" }, - "rom": { - "loader": { - "title": "Getting Started", - "file_select": "Select ROM File", - "content": "
      1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
      2. Select the Game Options for how you would like your game randomized
      3. Click Generate Normal ROM
      4. Then Save your rom and get to playing
      " + "randomizer": { + "title": "Randomizer", + "preset": { + "title": "Select Preset", + "customize": "Customize", + "options": { + "default": "Default", + "beginner": "Beginner", + "veetorp": "OWG (Veetorp’s Favorite)", + "crosskeys": "Crosskeys", + "quick": "Super Quick", + "nightmare": "Nightmare", + "tournament": "Tournament", + "custom": "Custom" + } }, - "info": { - "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", - "mystery": "This is a mystery game. The settings must be discovered while you play!", - "logic": "Glitches Required", - "accessibility": "Accessibility", - "build": "ROM build", - "difficulty": "Difficulty", - "variation": "Variation", - "shuffle": "Entrance Shuffle", - "mode": "World State", - "weapons": "Swords", - "goal": "Goal", - "permalink": "Permalink", - "special": "Special", - "notes": "Notes", - "generated": "Created" + "placement": { + "title": "Item Placement" }, - "settings": { - "heart_speed": "Heart Speed", - "heart_speeds": { - "off": "Off", - "double": "Double Speed", - "normal": "Normal Speed", - "half": "Half Speed", - "quarter": "Quarter Speed" - }, - "menu_speed": "Menu Speed", - "menu_speeds": { - "instant": "Instant", - "fast": "Fast", - "normal": "Normal", - "slow": "Slow" - }, - "heart_color": "Heart Color", - "heart_colors": { - "blue": "Blue", - "green": "Green", - "red": "Red", - "yellow": "Yellow" - }, - "play_as": "Play As", - "sprite_file_select": "Select .zspr File", - "music": "Background Music", - "music_info": "(set to \"No\" for MSU-1 support)", - "quickswap": "Item Quickswap", - "palette_shuffle": "Palette Shuffle", - "race_warning": "Does not work in Race Roms" - } - }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Switch to Item Randomizer" + "item_placement": { + "title": "Item Placement", + "options": { + "basic": "Basic", + "advanced": "Advanced" + } }, - "rom": { - "options": "ROM Options" + "dungeon_items": { + "title": "Dungeon Item Shuffle", + "options": { + "standard": "Standard", + "mc": "Maps/Compasses", + "mcs": "Maps/Compasses/Small Keys", + "full": "Keysanity" + } }, - "difficulty": { - "title": "Difficulty", + "accessibility": { + "title": "Accessibility", "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane" + "items": "100% Inventory", + "locations": "100% Locations", + "none": "Beatable" } }, + "glitches_required": { + "title": "Glitches Required", + "options": { + "none": "None", + "overworld_glitches": "Overworld Glitches", + "major_glitches": "Major Glitches", + "no_logic": "No Logic" + }, + "glitch_warning": "These settings require knowledge of Major Glitches**" + }, "goal": { "title": "Goal", "options": { "ganon": "Defeat Ganon", - "crystals": "Crystals", + "fast_ganon": "Fast Ganon", "dungeons": "All Dungeons", "pedestal": "Master Sword Pedestal", - "triforcehunt": "Triforce Pieces" + "triforce-hunt": "Triforce Pieces" } }, - "logic": { - "title": "Logic", + "tower_open": { + "title": "Open Tower", "options": { - "NoGlitches": "No Glitches" + "0": "0 Crystals", + "1": "1 Crystal", + "2": "2 Crystals", + "3": "3 Crystals", + "4": "4 Crystals", + "5": "5 Crystals", + "6": "6 Crystals", + "7": "7 Crystals", + "random": "Random" } }, - "mode": { - "title": "State", + "ganon_open": { + "title": "Ganon Vulnerable", "options": { - "swordless": "Swordless", - "open": "Open" + "0": "0 Crystals", + "1": "1 Crystal", + "2": "2 Crystals", + "3": "3 Crystals", + "4": "4 Crystals", + "5": "5 Crystals", + "6": "6 Crystals", + "7": "7 Crystals", + "random": "Random" } }, - "shuffle": { - "title": "Shuffle", + "gameplay": { + "title": "Gameplay" + }, + "world_state": { + "title": "World State", + "options": { + "standard": "Standard", + "open": "Open", + "inverted": "Inverted", + "retro": "Retro" + } + }, + "entrance_shuffle": { + "title": "Entrance Shuffle", "options": { + "none": "None", "simple": "Simple", "restricted": "Restricted", "full": "Full", @@ -1349,89 +1230,208 @@ export default { "insanity": "Insanity" } }, - "variation": { - "title": "Variation", + "boss_shuffle": { + "title": "Boss Shuffle", "options": { "none": "None", - "timed-race": "Timed Race", - "timed-ohko": "Timed OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce Piece Hunt", - "key-sanity": "Keysanity", - "retro": "Retro" + "simple": "Simple", + "full": "Full", + "random": "Random" } }, - "generate": { - "race": "Generate Race ROM", - "spoiler_race": "Spoiler Race ROM", - "casual": "Generate ROM" + "enemy_shuffle": { + "title": "Enemy Shuffle", + "options": { + "none": "None", + "shuffled": "Shuffled", + "random": "Random" + } }, - "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save Rom" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Enable Enemizer", - "disable": "Disable Enemizer", - "enemy_health": { - "title": "Enemy Health", - "options": [ - "Default", - "Easy (1-4 hp)", - "Normal (2-15 hp)", - "Hard (2-30 hp)", - "Brick Wall (4-50 hp)" - ] + "hints": { + "title": "Hints", + "options": { + "on": "On", + "off": "Off" + } + }, + "weapons": { + "title": "Swords", + "options": { + "randomized": "Randomized", + "assured": "Assured", + "vanilla": "Vanilla", + "swordless": "Swordless" + } + }, + "item_pool": { + "title": "Item Pool", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert", + "crowd_control": "Crowd Control" + }, + "crowd_control_warning": "* This setting is meant to be used with the Crowd Control Twitch extension. find out more: https://crowdcontrol.live/" + }, + "item_functionality": { + "title": "Item Functionality", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert" + } }, "enemy_damage": { "title": "Enemy Damage", "options": { - "off": "Default", - "shuffle": "Shuffled", - "chaos": "Chaos" + "default": "Default", + "shuffled": "Shuffled", + "random": "Random" } }, - "bosses": { - "title": "Boss Shuffle", + "enemy_health": { + "title": "Enemy Health", "options": { - "off": "Off", - "basic": "Simple", - "normal": "Full", - "chaos": "Chaos" + "default": "Default", + "easy": "Easy", + "hard": "Hard", + "expert": "Expert" } }, - "palette_shuffle": "Palette Shuffle", - "pot_shuffle": "Pot Shuffle", - "enemy_shuffle": "Enemy Shuffle" - }, - "error": { - "title": "Error", - "429": "While we apprecate your want to generate a lot of games, Other people would like to as well. Please come back later if you would like to generate more.", - "failed_generation": "Failed Creating Game :(", - "bad_file": "File not recognized", - "quota_exceeded_error": "Your local storage quota has been exceeded." - }, - "sprite": { - "Raven": "Raven", - "Vulture": "Vulture", - "FlyingStalfosHead": "Flying Stalfos Head", - "Empty": "Empty", - "PullSwitchGood": "Pull Switch (Good)", - "PullSwitch1": "Pull Switch (Unused)", - "PullSwitchBad": "Pull Switch (Bad)", - "PullSwitch2": "Pull Switch (Unused)", - "Octorok1": "Octorok (One Way)", - "Moldorm": "Moldorm (Boss)", - "Octorok4": "Octorok (Four Way)", - "Chicken": "Chicken", - "Octorok": "Octorok (?)", - "Buzzblob": "Buzzblob", - "Snapdragon": "Snapdragon", - "Octoballoon": "Octoballoon", - "OctoballoonHatchlings": "Octoballoon Hatchlings", + "spoiler": { + "title": "Spoilers", + "options": { + "off": "Disabled", + "on": "Enabled", + "generate": "Only on Generate", + "mystery": "Mystery (settings hidden)" + } + }, + "generate": { + "race": "Generate Race ROM", + "race_warning": "Spoilers will never be available for this option.", + "spoiler_race": "Generate Normal ROM", + "casual": "Generate ROM", + "back": "Change Settings", + "regenerate": "Generate Again", + "regenerate_tooltip": "Generate new game with same settings", + "generating": "Generating..." + }, + "details": { + "title": "Game Details", + "save_spoiler": "Save Spoiler", + "save_rom": "Save ROM" + }, + "variation": { + "title": "Variation" + }, + "difficulty": { + "title": "Difficulty", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert", + "insane": "Insane", + "crowdControl": "Crowd Control" + } + } + }, + "region": { + "all": "All Regions", + "Light World": "Light World", + "Hyrule Castle": "Hyrule Castle", + "Eastern Palace": "Eastern Palace", + "Desert Palace": "Desert Palace", + "Death Mountain": "Death Mountain", + "Tower Of Hera": "Tower Of Hera", + "Castle Tower": "Castle Tower", + "Dark World": "Dark World", + "Dark Palace": "Dark Palace", + "Swamp Palace": "Swamp Palace", + "Skull Woods": "Skull Woods", + "Thieves Town": "Thieves Town", + "Ice Palace": "Ice Palace", + "Misery Mire": "Misery Mire", + "Turtle Rock": "Turtle Rock", + "Ganons Tower": "Ganons Tower", + "Special": "Special" + }, + "rom": { + "loader": { + "title": "Getting Started", + "file_select": "Select ROM File", + "content": "
      1. Select your ROM file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
      2. Select the Game Options for how you would like your game randomized
      3. Click Generate Normal ROM
      4. Then Save your ROM and get to playing
      " + }, + "info": { + "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", + "mystery": "This is a mystery game. The settings must be discovered while you play!", + "logic": "Glitches Required", + "accessibility": "Accessibility", + "build": "ROM build", + "difficulty": "Difficulty", + "variation": "Variation", + "shuffle": "Entrance Shuffle", + "mode": "World State", + "weapons": "Swords", + "goal": "Goal", + "permalink": "Permalink", + "special": "Special", + "notes": "Notes", + "generated": "Created" + }, + "settings": { + "heart_speed": "Heart Speed", + "heart_speeds": { + "off": "Off", + "double": "Double Speed", + "normal": "Normal Speed", + "half": "Half Speed", + "quarter": "Quarter Speed" + }, + "menu_speed": "Menu Speed", + "menu_speeds": { + "instant": "Instant", + "fast": "Fast", + "normal": "Normal", + "slow": "Slow" + }, + "heart_color": "Heart Color", + "heart_colors": { + "blue": "Blue", + "green": "Green", + "red": "Red", + "yellow": "Yellow" + }, + "play_as": "Play As", + "sprite_file_select": "Select .zspr File", + "music": "Background Music", + "music_info": "(set to \"No\" for MSU-1 support)", + "quickswap": "Item Quickswap", + "palette_shuffle": "Palette Shuffle", + "race_warning": "Does not work in Race Roms" + } + }, + "sprite": { + "Raven": "Raven", + "Vulture": "Vulture", + "FlyingStalfosHead": "Flying Stalfos Head", + "Empty": "Empty", + "PullSwitchGood": "Pull Switch (Good)", + "PullSwitch1": "Pull Switch (Unused)", + "PullSwitchBad": "Pull Switch (Bad)", + "PullSwitch2": "Pull Switch (Unused)", + "Octorok1": "Octorok (One Way)", + "Moldorm": "Moldorm (Boss)", + "Octorok4": "Octorok (Four Way)", + "Chicken": "Chicken", + "Octorok": "Octorok (?)", + "Buzzblob": "Buzzblob", + "Snapdragon": "Snapdragon", + "Octoballoon": "Octoballoon", + "OctoballoonHatchlings": "Octoballoon Hatchlings", "Hinox": "Hinox", "Moblin": "Moblin", "MiniHelmasaur": "Mini Helmasaur", @@ -1662,113 +1662,167 @@ export default { } }, "es": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Seleccionar plantilla", - "customize": "Customizar", - "options": { - "default": "Por Defecto", - "beginner": "Principiante", - "veetorp": "Glitches de Superfície (el favorito de Veetorp)", - "crosskeys": "Crosskeys", - "quick": "Súper Rápido", - "nightmare": "Pesadilla", - "tournament": "Torneo", - "custom": "Personalizado" + "customizer": { + "settings": { + "timers": { + "off": "Sin temporizador", + "stopwatch": "Cronómetro", + "countdown-ohko": "Cuenta atrás (muerte súbita)", + "countdown-continue": "Cuenta atrás (continua)", + "countdown-stop": "Cuenta atrás (para)" + }, + "dungeon_count": { + "off": "Desactivado", + "on": "Siempre visible", + "pickup": "Visible con brújula" } }, - "placement": { - "title": "Colocación de Objetos" - }, - "item_placement": { - "title": "Colocación de Objetos", - "options": { - "basic": "Básica", - "advanced": "Avanzada" + "glitches": { + "canBombJump": { + "title": "Salto Bomba", + "description": "Podría ser necesario tener que hacer Saltos Bomba para atravesar agujeros." + }, + "canBootsClip": { + "title": "Clips de Botas", + "description": "Cuando se tengan las botas, podría ser necesario hacer clips a través de paredes de la superfície." + }, + "canBunnyRevive": { + "title": "Reanimación como Conejo", + "description": "Podría ser necesario ir a algún sitio como conejo y abusar de morir o revivir con hadas para ser Link." + }, + "canBunnySurf": { + "title": "Surf como Conejo", + "description": "Podría ser necesario andar sobre el agua en estado de conejo." + }, + "canDungeonRevive": { + "title": "Reanimación en Mazmorras", + "description": "Podría ser necesario revivir como conejo en una mazmorra para conseguir objetos como Link." + }, + "canFakeFlipper": { + "title": "Aletas Falsas", + "description": "Podría ser necesario usar el glitch de las Aletas Falsas para conseguir objetos." + }, + "canMirrorClip": { + "title": "Clips de Espejo", + "description": "Podría ser necesario abusar la animación del espejo para salir del mapa." + }, + "canMirrorWrap": { + "title": "Mirror Wrap", + "description": "Podría ser necesario usar el Espejo para hacer scroll automático a otro sitio." + }, + "canOneFrameClipOW": { + "title": "Clip de un frame (superfície)", + "description": "Créeme, no quieres hacer esto." + }, + "canOneFrameClipUW": { + "title": "One Frame Clip (underworld)", + "description": "Use 1 Frame Movement to clip between rooms of the underworld." + }, + "canOWYBA": { + "title": "YBA (superfície)", + "description": "Podría ser necesario usar botellas en la superfície para teletransportarse a otras localizaciones." + }, + "canSuperBunny": { + "title": "Súper Conejo", + "description": "Podría ser necesario activar el estado de súper conejo para acceder algunas localizaciones." + }, + "canSuperSpeed": { + "title": "Súper Velocidad", + "description": "Podría ser necesario hacer clips con súper velocidad a través de esquinas de la superfície." + }, + "canWaterFairyRevive": { + "title": "Reanimación en el Agua con Hadas", + "description": "Este setup es estúpido y requiere un montón de objetos." + }, + "canWaterWalk": { + "title": "Andar por el Agua", + "description": "Podría ser necesario utilizar las Botas para andar sobre el agua." + }, + "noLogic": { + "title": "Desactivar todas las comprobaciones de lógica", + "description": "Cuando esto está activado, todas las garantías desaparecen, y nada de lo que hay aquí importa." } + } + }, + "enemizer": { + "title": "Randomizer de enemigos (Enemizer)", + "enable": "Activar Enemizer", + "disable": "Desactivar Enemizer", + "enemy_health": { + "title": "Vida de enemigos", + "options": [ + "Normal", + "Fácil (1-4 hp)", + "Medio (2-15 hp)", + "Difícil (2-30 hp)", + "Locura (4-50 hp)" + ] }, - "dungeon_items": { - "title": "Objetos de Mazmorras", + "enemy_damage": { + "title": "Daño de enemigos", "options": { - "standard": "Normal", - "mc": "Mapas/Brújulas", - "mcs": "Mapas/Brújulas/Llaves pequeñas", - "full": "Keysanity" + "off": "Normal", + "shuffle": "Aleatorio", + "chaos": "Caos" } }, - "accessibility": { - "title": "Accesibilidad", + "bosses": { + "title": "Jefes", "options": { - "items": "100% inventario", - "locations": "100% localizaciones", - "none": "Completable" + "off": "Normal", + "basic": "Básico", + "normal": "Normal", + "chaos": "Caos" } }, - "glitches_required": { - "title": "Glitches Requeridos", + "palette_shuffle": "Paleta aleatoria", + "pot_shuffle": "Vasijas aleatorias", + "enemy_shuffle": "Enemigos aleatorios" + }, + "entrance": { + "title": "Randomizer de Entradas", + "switch": { + "item": "Cambiar a randomizer de objetos" + }, + "rom": { + "options": "Opciones de ROM" + }, + "difficulty": { + "title": "Dificultad", "options": { - "none": "Ninguno", - "overworld_glitches": "Glitches de la Superfície", - "major_glitches": "Glitches Mayores", - "no_logic": "Sin lógica" - }, - "glitch_warning": "Esta Lógica require conocimiento de Glithes Mayores**" + "easy": "Fácil", + "normal": "Normal", + "hard": "Difícil", + "expert": "Experto", + "insane": "Locura" + } }, "goal": { "title": "Objetivo", "options": { "ganon": "Derrotar a Ganon", - "fast_ganon": "Ganon Rápido", + "crystals": "Cristales", "dungeons": "Todas las mazmorras", "pedestal": "Pedestal de la Espada Maestra", - "triforce-hunt": "Piezas de la Trifuerza" - } - }, - "tower_open": { - "title": "Torre Abierta", - "options": { - "0": "0 Cristales", - "1": "1 Cristal", - "2": "2 Cristales", - "3": "3 Cristales", - "4": "4 Cristales", - "5": "5 Cristales", - "6": "6 Cristales", - "7": "7 Cristales", - "random": "Aleatorio" + "triforcehunt": "Piezas de la Trifuerza" } }, - "ganon_open": { - "title": "Ganon Vulnerable", + "logic": { + "title": "Lógica", "options": { - "0": "0 Cristales", - "1": "1 Cristal", - "2": "2 Cristales", - "3": "3 Cristales", - "4": "4 Cristales", - "5": "5 Cristales", - "6": "6 Cristales", - "7": "7 Cristales", - "random": "Aleatorio" + "NoGlitches": "Sin Glitches" } }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "Estado del mundo", + "mode": { + "title": "Tipo", "options": { - "standard": "Estándar", - "open": "Abierto", - "inverted": "Inverso", - "retro": "Retro" + "swordless": "Sin espadas", + "open": "Abierto" } }, - "entrance_shuffle": { - "title": "Randomizer de entradas", + "shuffle": { + "title": "Orden", "options": { - "none": "Ninguno", "simple": "Simple", "restricted": "Restringido", "full": "Completo", @@ -1776,196 +1830,36 @@ export default { "insanity": "Locura" } }, - "boss_shuffle": { - "title": "Randomizer de Jefes", - "options": { - "none": "Ninguno", - "simple": "Simple", - "full": "Completo", - "random": "Aleatorio" - } - }, - "enemy_shuffle": { - "title": "Randomizer de Enemigos", - "options": { - "none": "Ninguno", - "shuffled": "Barajado", - "random": "Aleatorio" - } - }, - "hints": { - "title": "Pistas", - "options": { - "on": "On", - "off": "Off" - } - }, - "weapons": { - "title": "Espadas", - "options": { - "randomized": "Randomizadas", - "assured": "Aseguradas", - "vanilla": "Vanilla", - "swordless": "Sin Espadas" - } - }, - "item_pool": { - "title": "Reserva de Objetos", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Esta opción está hecha para jugarse con la extensión de Twitch de Crowd Control. Para saber más: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Funcionalidad de Objetos", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto" - } - }, - "enemy_damage": { - "title": "Daño de Enemigos", - "options": { - "default": "Por Defecto", - "shuffled": "Barajado", - "random": "Aleatorio" - } - }, - "enemy_health": { - "title": "Vida de Enemigos", - "options": { - "default": "Por Defecto", - "easy": "Fácil", - "hard": "Difícil", - "expert": "Experto" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Solo en Generar" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "race_warning": "sin spoilers", - "spoiler_race": "Generar ROM para carreras (con spoilers)", - "casual": "Generar ROM", - "back": "Cambiar ajustes", - "regenerate": "Generar otra vez", - "regenerate_tooltip": "Generar otra partida con las mismas opciones", - "generating": "Generando..." - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - }, "variation": { - "title": "Variación" - }, - "difficulty": { - "title": "Dificultad", + "title": "Variación", "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "insane": "Locura", - "crowdControl": "Crowd Control" - } - } - }, - "customizer": { - "settings": { - "timers": { - "off": "Sin temporizador", - "stopwatch": "Cronómetro", - "countdown-ohko": "Cuenta atrás (muerte súbita)", - "countdown-continue": "Cuenta atrás (continua)", - "countdown-stop": "Cuenta atrás (para)" - }, - "dungeon_count": { - "off": "Desactivado", - "on": "Siempre visible", - "pickup": "Visible con brújula" + "none": "Ninguna", + "timed-race": "Carrera cronometrada", + "timed-ohko": "Muerte Súbita cronometrada", + "ohko": "Muerte Súbita", + "triforce-hunt": "Caza de la Trifuerza", + "key-sanity": "Keysanity", + "retro": "Retro" } }, - "glitches": { - "canBombJump": { - "title": "Salto Bomba", - "description": "Podría ser necesario tener que hacer Saltos Bomba para atravesar agujeros." - }, - "canBootsClip": { - "title": "Clips de Botas", - "description": "Cuando se tengan las botas, podría ser necesario hacer clips a través de paredes de la superfície." - }, - "canBunnyRevive": { - "title": "Reanimación como Conejo", - "description": "Podría ser necesario ir a algún sitio como conejo y abusar de morir o revivir con hadas para ser Link." - }, - "canBunnySurf": { - "title": "Surf como Conejo", - "description": "Podría ser necesario andar sobre el agua en estado de conejo." - }, - "canDungeonRevive": { - "title": "Reanimación en Mazmorras", - "description": "Podría ser necesario revivir como conejo en una mazmorra para conseguir objetos como Link." - }, - "canFakeFlipper": { - "title": "Aletas Falsas", - "description": "Podría ser necesario usar el glitch de las Aletas Falsas para conseguir objetos." - }, - "canMirrorClip": { - "title": "Clips de Espejo", - "description": "Podría ser necesario abusar la animación del espejo para salir del mapa." - }, - "canMirrorWrap": { - "title": "Mirror Wrap", - "description": "Podría ser necesario usar el Espejo para hacer scroll automático a otro sitio." - }, - "canOneFrameClipOW": { - "title": "Clip de un frame (superfície)", - "description": "Créeme, no quieres hacer esto." - }, - "canOneFrameClipUW": { - "title": "One Frame Clip (underworld)", - "description": "Use 1 Frame Movement to clip between rooms of the underworld." - }, - "canOWYBA": { - "title": "YBA (superfície)", - "description": "Podría ser necesario usar botellas en la superfície para teletransportarse a otras localizaciones." - }, - "canSuperBunny": { - "title": "Súper Conejo", - "description": "Podría ser necesario activar el estado de súper conejo para acceder algunas localizaciones." - }, - "canSuperSpeed": { - "title": "Súper Velocidad", - "description": "Podría ser necesario hacer clips con súper velocidad a través de esquinas de la superfície." - }, - "canWaterFairyRevive": { - "title": "Reanimación en el Agua con Hadas", - "description": "Este setup es estúpido y requiere un montón de objetos." - }, - "canWaterWalk": { - "title": "Andar por el Agua", - "description": "Podría ser necesario utilizar las Botas para andar sobre el agua." - }, - "noLogic": { - "title": "Desactivar todas las comprobaciones de lógica", - "description": "Cuando esto está activado, todas las garantías desaparecen, y nada de lo que hay aquí importa." - } + "generate": { + "race": "Generar ROM para carreras", + "spoiler_race": "Generar ROM para carreras", + "casual": "Generar ROM" + }, + "details": { + "title": "Detalles del juego", + "save_spoiler": "Guardar spoiler", + "save_rom": "Guardar ROM" } }, + "error": { + "title": "Error", + "429": "Aunque apreciamos que quieras generar un montón de partidas, otras personas quieren hacerlo también. Por favor, vuelve más tarde si quieres generar más.", + "failed_generation": "Error creando la semilla :(", + "bad_file": "Archivo no reconocido", + "quota_exceeded_error": "Has sobrepasado tu cuota de almacenamiento local." + }, "item": { "Random": "Aleatorio", "BottleWithRandom": "Botella (aleatoria)", @@ -2171,412 +2065,296 @@ export default { "Armos Knights": "Armos Max", "Lanmolas": "Lanmolas", "Moldorm": "Moldorm", - "Helmasaur King": "Rey Yelmasaurio", - "Arrghus": "Arghus", - "Mothula": "Polillántula", - "Blind": "Cegatox", - "Kholdstare": "Heladonte", - "Vitreous": "Vitreus", - "Trinexx": "Trínex", - "Agahnim": "Agahnim", - "Agahnim 2": "Agahnim 2", - "Ganon": "Ganon" - }, - "rom": { - "loader": { - "title": "Empezar a Jugar", - "file_select": "Selecciona archivo ROM", - "content": "
      1. Selecciona tu archivo ROM y cárgalo en tu navegador (Por favor, usa una ROM Zelda no Densetsu: Kamigami no Triforce v1.0 con extensión .smc o .sfc)
      2. Selecciona las Opciones de Juego para cómo quieres que tu juego sea randomizado
      3. Haz click en Generar ROM para carreras
      4. Guarda tu ROM y ponte a jugar
      " - }, - "info": { - "spoilerwarning": "ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.", - "mystery": "Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!", - "logic": "Glitches Requeridos", - "accessibility": "Accesibilidad", - "build": "Build de la ROM", - "difficulty": "Dificultad", - "variation": "Variación", - "shuffle": "Randomizer de entradas", - "mode": "Estado del mundo", - "weapons": "Espadas", - "goal": "Objetivo", - "permalink": "Enlace permanente", - "special": "Especial", - "notes": "Notas", - "generated": "Creada" - }, - "settings": { - "heart_speed": "Velocidad de Corazones", - "heart_speeds": { - "off": "Desactivado", - "double": "Velocidad Doble", - "normal": "Velocidad Normal", - "half": "Media Velocidad", - "quarter": "Cuarto de Velocidad" - }, - "menu_speed": "Velocidad de Menú", - "menu_speeds": { - "instant": "Instantáneo", - "fast": "Rápido", - "normal": "Normal", - "slow": "Lento" - }, - "heart_color": "Color de Corazones", - "heart_colors": { - "blue": "Azul", - "green": "Verde", - "red": "Rojo", - "yellow": "Amarillo" - }, - "play_as": "Jugar Como", - "sprite_file_select": "Selecciona archivo .zspr", - "music": "Música de fondo", - "music_info": "(poner en \"No\" para soporte con MSU-1)", - "quickswap": "Cambio Rápido de Objetos", - "palette_shuffle": "Paletas aleatorias", - "race_warning": "No funciona en ROMs para carreras" - } - }, - "entrance": { - "title": "Randomizer de Entradas", - "switch": { - "item": "Cambiar a randomizer de objetos" - }, - "rom": { - "options": "Opciones de ROM" - }, - "difficulty": { - "title": "Dificultad", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "insane": "Locura" - } - }, - "goal": { - "title": "Objetivo", - "options": { - "ganon": "Derrotar a Ganon", - "crystals": "Cristales", - "dungeons": "Todas las mazmorras", - "pedestal": "Pedestal de la Espada Maestra", - "triforcehunt": "Piezas de la Trifuerza" - } - }, - "logic": { - "title": "Lógica", - "options": { - "NoGlitches": "Sin Glitches" - } - }, - "mode": { - "title": "Tipo", - "options": { - "swordless": "Sin espadas", - "open": "Abierto" - } - }, - "shuffle": { - "title": "Orden", - "options": { - "simple": "Simple", - "restricted": "Restringido", - "full": "Completo", - "crossed": "Cruzado", - "insanity": "Locura" - } - }, - "variation": { - "title": "Variación", - "options": { - "none": "Ninguna", - "timed-race": "Carrera cronometrada", - "timed-ohko": "Muerte Súbita cronometrada", - "ohko": "Muerte Súbita", - "triforce-hunt": "Caza de la Trifuerza", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "spoiler_race": "Generar ROM para carreras", - "casual": "Generar ROM" - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - } - }, - "enemizer": { - "title": "Randomizer de enemigos (Enemizer)", - "enable": "Activar Enemizer", - "disable": "Desactivar Enemizer", - "enemy_health": { - "title": "Vida de enemigos", - "options": [ - "Normal", - "Fácil (1-4 hp)", - "Medio (2-15 hp)", - "Difícil (2-30 hp)", - "Locura (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Daño de enemigos", - "options": { - "off": "Normal", - "shuffle": "Aleatorio", - "chaos": "Caos" - } - }, - "bosses": { - "title": "Jefes", - "options": { - "off": "Normal", - "basic": "Básico", - "normal": "Normal", - "chaos": "Caos" - } - }, - "palette_shuffle": "Paleta aleatoria", - "pot_shuffle": "Vasijas aleatorias", - "enemy_shuffle": "Enemigos aleatorios" + "Helmasaur King": "Rey Yelmasaurio", + "Arrghus": "Arghus", + "Mothula": "Polillántula", + "Blind": "Cegatox", + "Kholdstare": "Heladonte", + "Vitreous": "Vitreus", + "Trinexx": "Trínex", + "Agahnim": "Agahnim", + "Agahnim 2": "Agahnim 2", + "Ganon": "Ganon" }, - "error": { - "title": "Error", - "429": "Aunque apreciamos que quieras generar un montón de partidas, otras personas quieren hacerlo también. Por favor, vuelve más tarde si quieres generar más.", - "failed_generation": "Error creando la semilla :(", - "bad_file": "Archivo no reconocido", - "quota_exceeded_error": "Has sobrepasado tu cuota de almacenamiento local." - } - }, - "fr": { "randomizer": { - "title": "Randomiseur", + "title": "Randomizer", "preset": { - "title": "Choisissez vos Paramètres", - "customize": "Customisation", + "title": "Seleccionar plantilla", + "customize": "Customizar", "options": { - "default": "Par défaut", - "beginner": "Débutant", - "veetorp": "OWG (La préférée de Veetorp!)", - "crosskeys": "Clésordre et Entrées", - "quick": "Super Rapide", - "nightmare": "Cauchemars", - "tournament": "Tournoi", - "custom": "Personnalisé" + "default": "Por Defecto", + "beginner": "Principiante", + "veetorp": "Glitches de Superfície (el favorito de Veetorp)", + "crosskeys": "Crosskeys", + "quick": "Súper Rápido", + "nightmare": "Pesadilla", + "tournament": "Torneo", + "custom": "Personalizado" } }, "placement": { - "title": "Placement des objets" + "title": "Colocación de Objetos" }, "item_placement": { - "title": "Placement des objets", + "title": "Colocación de Objetos", "options": { - "basic": "Basique", - "advanced": "Avancé" + "basic": "Básica", + "advanced": "Avanzada" } }, "dungeon_items": { - "title": "Objets des Donjons", + "title": "Objetos de Mazmorras", "options": { - "standard": "Standard", - "mc": "Cartes et Boussoles", - "mcs": "Cartes, Boussoles et Petites Clefs", - "full": "Clésordre" + "standard": "Normal", + "mc": "Mapas/Brújulas", + "mcs": "Mapas/Brújulas/Llaves pequeñas", + "full": "Keysanity" } }, "accessibility": { - "title": "Accessibilité", + "title": "Accesibilidad", "options": { - "items": "100% Inventaire", - "locations": "100% Accessible", - "none": "Achevable" + "items": "100% inventario", + "locations": "100% localizaciones", + "none": "Completable" } }, "glitches_required": { - "title": "Glitchs requis", + "title": "Glitches Requeridos", "options": { - "none": "Aucun", - "overworld_glitches": "Glitchs Monde Extérieur", - "major_glitches": "Glitchs Majeurs", - "no_logic": "Sans Logique" + "none": "Ninguno", + "overworld_glitches": "Glitches de la Superfície", + "major_glitches": "Glitches Mayores", + "no_logic": "Sin lógica" }, - "glitch_warning": "Cette logique nécessite la connaissance de glitchs majeurs**" + "glitch_warning": "Esta Lógica require conocimiento de Glithes Mayores**" }, "goal": { - "title": "Objectif", + "title": "Objetivo", "options": { - "ganon": "Vaincre Ganon", - "fast_ganon": "Rapide Ganon", - "dungeons": "Tous les Donjons", - "pedestal": "Piédestal de la Master Sword", - "triforce-hunt": "Morceaux de Triforce " + "ganon": "Derrotar a Ganon", + "fast_ganon": "Ganon Rápido", + "dungeons": "Todas las mazmorras", + "pedestal": "Pedestal de la Espada Maestra", + "triforce-hunt": "Piezas de la Trifuerza" } }, "tower_open": { - "title": "Ouvrir la Tour", + "title": "Torre Abierta", "options": { - "0": "0 Cristaux", + "0": "0 Cristales", "1": "1 Cristal", - "2": "2 Cristaux", - "3": "3 Cristaux", - "4": "4 Cristaux", - "5": "5 Cristaux", - "6": "6 Cristaux", - "7": "7 Cristaux", - "random": "Aléatoire" + "2": "2 Cristales", + "3": "3 Cristales", + "4": "4 Cristales", + "5": "5 Cristales", + "6": "6 Cristales", + "7": "7 Cristales", + "random": "Aleatorio" } }, "ganon_open": { - "title": "Vulnérabilité de Ganon", + "title": "Ganon Vulnerable", "options": { - "0": "0 Cristaux", + "0": "0 Cristales", "1": "1 Cristal", - "2": "2 Cristaux", - "3": "3 Cristaux", - "4": "4 Cristaux", - "5": "5 Cristaux", - "6": "6 Cristaux", - "7": "7 Cristaux", - "random": "Aléatoire" + "2": "2 Cristales", + "3": "3 Cristales", + "4": "4 Cristales", + "5": "5 Cristales", + "6": "6 Cristales", + "7": "7 Cristales", + "random": "Aleatorio" } }, "gameplay": { "title": "Gameplay" }, "world_state": { - "title": "État du Monde", + "title": "Estado del mundo", "options": { - "standard": "Standard", - "open": "Ouvert", - "inverted": "Inversé", - "retro": "Rétro" + "standard": "Estándar", + "open": "Abierto", + "inverted": "Inverso", + "retro": "Retro" } }, "entrance_shuffle": { - "title": "Mélangeur d'Entrées", + "title": "Randomizer de entradas", "options": { - "none": "Désactivé", + "none": "Ninguno", "simple": "Simple", - "restricted": "Restreint", - "full": "Complet", - "crossed": "Croisé", - "insanity": "Insensé" + "restricted": "Restringido", + "full": "Completo", + "crossed": "Cruzado", + "insanity": "Locura" } }, "boss_shuffle": { - "title": "Mélangeur de Boss", + "title": "Randomizer de Jefes", "options": { - "none": "Désactivé", + "none": "Ninguno", "simple": "Simple", - "full": "Complet", - "random": "Aléatoire" + "full": "Completo", + "random": "Aleatorio" } }, "enemy_shuffle": { - "title": "Mélangeur d'Ennemis", + "title": "Randomizer de Enemigos", "options": { - "none": "Désactivé", - "shuffled": "Intervertis", - "random": "Aléatoires" + "none": "Ninguno", + "shuffled": "Barajado", + "random": "Aleatorio" } }, "hints": { - "title": "Indices", + "title": "Pistas", "options": { - "on": "Activés", - "off": "Désactivés" + "on": "On", + "off": "Off" } }, "weapons": { - "title": "Épées", + "title": "Espadas", "options": { - "randomized": "Randomisées", - "assured": "Assurée", - "vanilla": "Originales", - "swordless": "Sans Épée" + "randomized": "Randomizadas", + "assured": "Aseguradas", + "vanilla": "Vanilla", + "swordless": "Sin Espadas" } }, "item_pool": { - "title": "Objets disponibles", + "title": "Reserva de Objetos", "options": { - "easy": "Facile", + "easy": "Fácil", "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", + "hard": "Difícil", + "expert": "Experto", "crowd_control": "Crowd Control" }, - "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l'extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" + "crowd_control_warning": "* Esta opción está hecha para jugarse con la extensión de Twitch de Crowd Control. Para saber más: https://crowdcontrol.live/" }, "item_functionality": { - "title": "Fonctionnalité des Objets", + "title": "Funcionalidad de Objetos", "options": { - "easy": "Facile", + "easy": "Fácil", "normal": "Normal", - "hard": "Difficile", - "expert": "Expert" + "hard": "Difícil", + "expert": "Experto" } }, "enemy_damage": { - "title": "Dégâts des Ennemis", + "title": "Daño de Enemigos", "options": { - "default": "Par défaut", - "shuffled": "Intervertis", - "random": "Aléatoire" + "default": "Por Defecto", + "shuffled": "Barajado", + "random": "Aleatorio" } }, "enemy_health": { - "title": "Vie des Ennemis", + "title": "Vida de Enemigos", "options": { - "default": "Par défaut", - "easy": "Facile", - "hard": "Difficile", - "expert": "Expert" + "default": "Por Defecto", + "easy": "Fácil", + "hard": "Difícil", + "expert": "Experto" } }, "spoiler": { "title": "Spoilers", "options": { - "off": "Desactivé", - "on": "Activé", - "generate": "Seulement sur Generate" + "off": "Disabled", + "on": "Enabled", + "generate": "Solo en Generar" } }, "generate": { - "race": "Générer une ROM de Course", - "race_warning": "Les spoilers ne seront jamais disponibles pour cette option.", - "spoiler_race": "Générer une ROM avec Spoiler", - "casual": "Générer une ROM", - "back": "Changer les Paramètres", - "regenerate": "Générer à nouveau", - "regenerate_tooltip": "Générer à nouveau avec les mêmes paramètres", - "generating": "Génération..." + "race": "Generar ROM para carreras", + "race_warning": "sin spoilers", + "spoiler_race": "Generar ROM para carreras (con spoilers)", + "casual": "Generar ROM", + "back": "Cambiar ajustes", + "regenerate": "Generar otra vez", + "regenerate_tooltip": "Generar otra partida con las mismas opciones", + "generating": "Generando..." }, "details": { - "title": "Détails du jeu", - "save_spoiler": "Enregistrer la spoiler", - "save_rom": "Sauvegarder la ROM" + "title": "Detalles del juego", + "save_spoiler": "Guardar spoiler", + "save_rom": "Guardar ROM" }, "variation": { - "title": "Variation" + "title": "Variación" }, "difficulty": { - "title": "Difficulté", + "title": "Dificultad", "options": { - "easy": "Easy", + "easy": "Fácil", "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", - "insane": "Insensé", + "hard": "Difícil", + "expert": "Experto", + "insane": "Locura", "crowdControl": "Crowd Control" } } }, + "rom": { + "loader": { + "title": "Empezar a Jugar", + "file_select": "Selecciona archivo ROM", + "content": "
      1. Selecciona tu archivo ROM y cárgalo en tu navegador (Por favor, usa una ROM Zelda no Densetsu: Kamigami no Triforce v1.0 con extensión .smc o .sfc)
      2. Selecciona las Opciones de Juego para cómo quieres que tu juego sea randomizado
      3. Haz click en Generar ROM para carreras
      4. Guarda tu ROM y ponte a jugar
      " + }, + "info": { + "spoilerwarning": "ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.", + "mystery": "Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!", + "logic": "Glitches Requeridos", + "accessibility": "Accesibilidad", + "build": "Build de la ROM", + "difficulty": "Dificultad", + "variation": "Variación", + "shuffle": "Randomizer de entradas", + "mode": "Estado del mundo", + "weapons": "Espadas", + "goal": "Objetivo", + "permalink": "Enlace permanente", + "special": "Especial", + "notes": "Notas", + "generated": "Creada" + }, + "settings": { + "heart_speed": "Velocidad de Corazones", + "heart_speeds": { + "off": "Desactivado", + "double": "Velocidad Doble", + "normal": "Velocidad Normal", + "half": "Media Velocidad", + "quarter": "Cuarto de Velocidad" + }, + "menu_speed": "Velocidad de Menú", + "menu_speeds": { + "instant": "Instantáneo", + "fast": "Rápido", + "normal": "Normal", + "slow": "Lento" + }, + "heart_color": "Color de Corazones", + "heart_colors": { + "blue": "Azul", + "green": "Verde", + "red": "Rojo", + "yellow": "Amarillo" + }, + "play_as": "Jugar Como", + "sprite_file_select": "Selecciona archivo .zspr", + "music": "Música de fondo", + "music_info": "(poner en \"No\" para soporte con MSU-1)", + "quickswap": "Cambio Rápido de Objetos", + "palette_shuffle": "Paletas aleatorias", + "race_warning": "No funciona en ROMs para carreras" + } + } + }, + "fr": { "customizer": { "settings": { "timers": { @@ -2659,6 +2437,122 @@ export default { } } }, + "enemizer": { + "title": "Enemizer", + "enable": "Activer l’Ennemiseur", + "disable": "Désactiver l’Ennemiseur", + "enemy_health": { + "title": "Santé Ennemis", + "options": [ + "Ordinaire", + "Facile (1-4 hp)", + "Moyen (2-15 hp)", + "Difficile (2-30 hp)", + "Insensé (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Dégâts des Ennemis", + "options": { + "off": "Ordinaire", + "shuffle": "Mélangé", + "chaos": "Chaos" + } + }, + "bosses": { + "title": "Bosses", + "options": { + "off": "Ordinaire", + "basic": "De base", + "normal": "Commun", + "chaos": "Chaos" + } + }, + "palette_shuffle": "Mélange les Palettes", + "pot_shuffle": "Mélange les Pots", + "enemy_shuffle": "Mélanger les Ennemis" + }, + "entrance": { + "title": "Randomizer de portes", + "switch": { + "item": "Passer au Randomizer d’objets" + }, + "rom": { + "options": "Options de ROM" + }, + "difficulty": { + "title": "Difficulté", + "options": { + "easy": "Facile", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert", + "insane": "Insensé" + } + }, + "goal": { + "title": "Objectif", + "options": { + "ganon": "Vaincre Ganon", + "crystals": "Cristaux", + "dungeons": "Tous les Donjons", + "pedestal": "Piédestal de la Master Sword", + "triforcehunt": "Pièces de Triforce" + } + }, + "logic": { + "title": "Logique", + "options": { + "NoGlitches": "Sans Glitches" + } + }, + "mode": { + "title": "Réglage", + "options": { + "swordless": "Sans Épée", + "open": "Ouvert" + } + }, + "shuffle": { + "title": "Mélanger", + "options": { + "simple": "Simple", + "restricted": "Restreint", + "full": "Complet", + "crossed": "Croisé", + "insanity": "Insensé" + } + }, + "variation": { + "title": "Variation", + "options": { + "none": "Aucun", + "timed-race": "Chronométrée", + "timed-ohko": "Décompte Final", + "ohko": "Zéro Coeurs", + "triforce-hunt": "Chasse aux morceaux de Triforce", + "key-sanity": "Clé-sordre", + "retro": "Rétro" + } + }, + "generate": { + "race": "Générer une ROM de course", + "spoiler_race": "Spoiler de la ROM de Course", + "casual": "Générer une ROM" + }, + "details": { + "title": "Détails du jeu", + "save_spoiler": "Enregistrer le spoiler", + "save_rom": "Sauvegarder la ROM" + } + }, + "error": { + "title": "Erreur", + "429": "Bien que nous appréciions que vous souhaitiez générer beaucoup de jeux, d’autres personnes aimeraient également le faire. Veuillez revenir plus tard si vous souhaitez continuer à générer.", + "failed_generation": "Échec de la création de jeu :(", + "bad_file": "Fichier non reconnu", + "quota_exceeded_error": "Vous avez atteint la limite de stockage local." + }, "item": { "Random": "Random", "BottleWithRandom": "Bottle (Random)", @@ -2876,11 +2770,233 @@ export default { "Ganon": "Ganon", "Test": "Testing Item" }, + "randomizer": { + "title": "Randomiseur", + "preset": { + "title": "Choisissez vos Paramètres", + "customize": "Customisation", + "options": { + "default": "Par défaut", + "beginner": "Débutant", + "veetorp": "OWG (La préférée de Veetorp!)", + "crosskeys": "Clésordre et Entrées", + "quick": "Super Rapide", + "nightmare": "Cauchemars", + "tournament": "Tournoi", + "custom": "Personnalisé" + } + }, + "placement": { + "title": "Placement des objets" + }, + "item_placement": { + "title": "Placement des objets", + "options": { + "basic": "Basique", + "advanced": "Avancé" + } + }, + "dungeon_items": { + "title": "Objets des Donjons", + "options": { + "standard": "Standard", + "mc": "Cartes et Boussoles", + "mcs": "Cartes, Boussoles et Petites Clefs", + "full": "Clésordre" + } + }, + "accessibility": { + "title": "Accessibilité", + "options": { + "items": "100% Inventaire", + "locations": "100% Accessible", + "none": "Achevable" + } + }, + "glitches_required": { + "title": "Glitchs requis", + "options": { + "none": "Aucun", + "overworld_glitches": "Glitchs Monde Extérieur", + "major_glitches": "Glitchs Majeurs", + "no_logic": "Sans Logique" + }, + "glitch_warning": "Cette logique nécessite la connaissance de glitchs majeurs**" + }, + "goal": { + "title": "Objectif", + "options": { + "ganon": "Vaincre Ganon", + "fast_ganon": "Rapide Ganon", + "dungeons": "Tous les Donjons", + "pedestal": "Piédestal de la Master Sword", + "triforce-hunt": "Morceaux de Triforce " + } + }, + "tower_open": { + "title": "Ouvrir la Tour", + "options": { + "0": "0 Cristaux", + "1": "1 Cristal", + "2": "2 Cristaux", + "3": "3 Cristaux", + "4": "4 Cristaux", + "5": "5 Cristaux", + "6": "6 Cristaux", + "7": "7 Cristaux", + "random": "Aléatoire" + } + }, + "ganon_open": { + "title": "Vulnérabilité de Ganon", + "options": { + "0": "0 Cristaux", + "1": "1 Cristal", + "2": "2 Cristaux", + "3": "3 Cristaux", + "4": "4 Cristaux", + "5": "5 Cristaux", + "6": "6 Cristaux", + "7": "7 Cristaux", + "random": "Aléatoire" + } + }, + "gameplay": { + "title": "Gameplay" + }, + "world_state": { + "title": "État du Monde", + "options": { + "standard": "Standard", + "open": "Ouvert", + "inverted": "Inversé", + "retro": "Rétro" + } + }, + "entrance_shuffle": { + "title": "Mélangeur d'Entrées", + "options": { + "none": "Désactivé", + "simple": "Simple", + "restricted": "Restreint", + "full": "Complet", + "crossed": "Croisé", + "insanity": "Insensé" + } + }, + "boss_shuffle": { + "title": "Mélangeur de Boss", + "options": { + "none": "Désactivé", + "simple": "Simple", + "full": "Complet", + "random": "Aléatoire" + } + }, + "enemy_shuffle": { + "title": "Mélangeur d'Ennemis", + "options": { + "none": "Désactivé", + "shuffled": "Intervertis", + "random": "Aléatoires" + } + }, + "hints": { + "title": "Indices", + "options": { + "on": "Activés", + "off": "Désactivés" + } + }, + "weapons": { + "title": "Épées", + "options": { + "randomized": "Randomisées", + "assured": "Assurée", + "vanilla": "Originales", + "swordless": "Sans Épée" + } + }, + "item_pool": { + "title": "Objets disponibles", + "options": { + "easy": "Facile", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert", + "crowd_control": "Crowd Control" + }, + "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l'extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" + }, + "item_functionality": { + "title": "Fonctionnalité des Objets", + "options": { + "easy": "Facile", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert" + } + }, + "enemy_damage": { + "title": "Dégâts des Ennemis", + "options": { + "default": "Par défaut", + "shuffled": "Intervertis", + "random": "Aléatoire" + } + }, + "enemy_health": { + "title": "Vie des Ennemis", + "options": { + "default": "Par défaut", + "easy": "Facile", + "hard": "Difficile", + "expert": "Expert" + } + }, + "spoiler": { + "title": "Spoilers", + "options": { + "off": "Desactivé", + "on": "Activé", + "generate": "Seulement sur Generate" + } + }, + "generate": { + "race": "Générer une ROM de Course", + "race_warning": "Les spoilers ne seront jamais disponibles pour cette option.", + "spoiler_race": "Générer une ROM avec Spoiler", + "casual": "Générer une ROM", + "back": "Changer les Paramètres", + "regenerate": "Générer à nouveau", + "regenerate_tooltip": "Générer à nouveau avec les mêmes paramètres", + "generating": "Génération..." + }, + "details": { + "title": "Détails du jeu", + "save_spoiler": "Enregistrer la spoiler", + "save_rom": "Sauvegarder la ROM" + }, + "variation": { + "title": "Variation" + }, + "difficulty": { + "title": "Difficulté", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert", + "insane": "Insensé", + "crowdControl": "Crowd Control" + } + } + }, "rom": { "loader": { "title": "Pour commencer", "file_select": "Sélectionnez le fichier ROM", - "content": "
      1. Sélectionnez votre fichier ROM et chargez-le dans le navigateur (utilisez une ROM Zelda no Densetsu: Kamigami no Triforce v1.0 avec une extension .smc ou .sfc)
      2. Sélectionnez les Options de Jeu pour déterminer de quelle façon le jeu sera randomisé
      3. Cliquez sur Générer une ROM de Course
      4. Ensuite, sauvegardez votre rom et commencez à jouer
      " + "content": "
      1. Sélectionnez votre fichier ROM et chargez-le dans le navigateur (utilisez une ROM Zelda no Densetsu: Kamigami no Triforce v1.0 avec une extension .smc ou .sfc)
      2. Sélectionnez les Options de Jeu pour déterminer de quelle façon le jeu sera randomisé
      3. Cliquez sur Générer une ROM de Course
      4. Ensuite, sauvegardez votre ROM et commencez à jouer
      " }, "info": { "spoilerwarning": "AVERTISSEMENT : La personne qui a généré cette partie a regardé le spoiler log.", @@ -2930,122 +3046,6 @@ export default { "palette_shuffle": "Mélange des Couleurs de Palettes", "race_warning": "Ne fonctionne pas dans les ROMs de course" } - }, - "entrance": { - "title": "Randomizer de portes", - "switch": { - "item": "Passer au Randomizer d’objets" - }, - "rom": { - "options": "Options de ROM" - }, - "difficulty": { - "title": "Difficulté", - "options": { - "easy": "Facile", - "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", - "insane": "Insensé" - } - }, - "goal": { - "title": "Objectif", - "options": { - "ganon": "Vaincre Ganon", - "crystals": "Cristaux", - "dungeons": "Tous les Donjons", - "pedestal": "Piédestal de la Master Sword", - "triforcehunt": "Pièces de Triforce" - } - }, - "logic": { - "title": "Logique", - "options": { - "NoGlitches": "Sans Glitches" - } - }, - "mode": { - "title": "Réglage", - "options": { - "swordless": "Sans Épée", - "open": "Ouvert" - } - }, - "shuffle": { - "title": "Mélanger", - "options": { - "simple": "Simple", - "restricted": "Restreint", - "full": "Complet", - "crossed": "Croisé", - "insanity": "Insensé" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "Aucun", - "timed-race": "Chronométrée", - "timed-ohko": "Décompte Final", - "ohko": "Zéro Coeurs", - "triforce-hunt": "Chasse aux morceaux de Triforce", - "key-sanity": "Clé-sordre", - "retro": "Rétro" - } - }, - "generate": { - "race": "Générer une ROM de course", - "spoiler_race": "Spoiler de la ROM de Course", - "casual": "Générer une ROM" - }, - "details": { - "title": "Détails du jeu", - "save_spoiler": "Enregistrer le spoiler", - "save_rom": "Sauvegarder la ROM" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Activer l’Ennemiseur", - "disable": "Désactiver l’Ennemiseur", - "enemy_health": { - "title": "Santé Ennemis", - "options": [ - "Ordinaire", - "Facile (1-4 hp)", - "Moyen (2-15 hp)", - "Difficile (2-30 hp)", - "Insensé (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Dégâts des Ennemis", - "options": { - "off": "Ordinaire", - "shuffle": "Mélangé", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Bosses", - "options": { - "off": "Ordinaire", - "basic": "De base", - "normal": "Commun", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Mélange les Palettes", - "pot_shuffle": "Mélange les Pots", - "enemy_shuffle": "Mélanger les Ennemis" - }, - "error": { - "title": "Erreur", - "429": "Bien que nous appréciions que vous souhaitiez générer beaucoup de jeux, d’autres personnes aimeraient également le faire. Veuillez revenir plus tard si vous souhaitez continuer à générer.", - "failed_generation": "Échec de la création de jeu :(", - "bad_file": "Fichier non reconnu", - "quota_exceeded_error": "Vous avez atteint la limite de stockage local." } } } From 9e881c85127b38fa6c1ea8cf9ebe5ab534eb4430 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Thu, 27 May 2021 08:58:32 -0400 Subject: [PATCH 30/59] Fix 'ROMS' to 'ROMs' in some places (hints.txt too). --- resources/js/vue-i18n-locales.generated.js | 2 +- resources/lang/en/options.php | 4 ++-- resources/lang/en/rom.php | 2 +- resources/views/updates.blade.php | 4 ++-- strings/hint.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/resources/js/vue-i18n-locales.generated.js b/resources/js/vue-i18n-locales.generated.js index 59aafd36a..cc532716e 100644 --- a/resources/js/vue-i18n-locales.generated.js +++ b/resources/js/vue-i18n-locales.generated.js @@ -1411,7 +1411,7 @@ export default { "music_info": "(set to \"No\" for MSU-1 support)", "quickswap": "Item Quickswap", "palette_shuffle": "Palette Shuffle", - "race_warning": "Does not work in Race Roms" + "race_warning": "Does not work in Race ROMs" } }, "sprite": { diff --git a/resources/lang/en/options.php b/resources/lang/en/options.php index 2ab97e4c7..ff8011f8c 100644 --- a/resources/lang/en/options.php +++ b/resources/lang/en/options.php @@ -590,7 +590,7 @@ 'menu_speed' => [ 'header' => __('rom.settings.menu_speed'), 'content' => [ - 'Change the speed of opening and closing the item menu. This is not available for race ROMS.', + 'Change the speed of opening and closing the item menu. This is not available for race ROMs.', ], ], 'heart_color' => [ @@ -608,7 +608,7 @@ 'quickswap' => [ 'header' => __('rom.settings.quickswap'), 'content' => [ - 'Allow items to be changed with the L and R buttons without opening the menu. This is not available for race ROMS (except when entrances are randomized).', + 'Allow items to be changed with the L and R buttons without opening the menu. This is not available for race ROMs (except when entrances are randomized).', ], ], 'palette_shuffle' => [ diff --git a/resources/lang/en/rom.php b/resources/lang/en/rom.php index fe8b04a43..cb51f3123 100644 --- a/resources/lang/en/rom.php +++ b/resources/lang/en/rom.php @@ -56,6 +56,6 @@ 'music_info' => '(set to "No" for MSU-1 support)', 'quickswap' => 'Item Quickswap', 'palette_shuffle' => 'Palette Shuffle', - 'race_warning' => 'Does not work in Race Roms', + 'race_warning' => 'Does not work in Race ROMs', ], ]; diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index 80a399fc1..0f9c9a08f 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -107,7 +107,7 @@
    • Bunny Link is now literate and can read signposts.
    • Silver Arrows will now always be available in Entrance Randomizer when playing Swordless on a hard/expert item pool setting.
    • Fixed silver arrows being intially equipped on aquisition in Hard/Expert item functionality, even when they should only be available for Ganon.
    • -
    • API support for allowing quickswap usage in item randomizer race roms. The default behavior for item randomizer races will still be to disallow quickswap.
    • +
    • API support for allowing quickswap usage in item randomizer race ROMs. The default behavior for item randomizer races will still be to disallow quickswap.
    • Added new player options
      Link sprite options
    • @@ -281,7 +281,7 @@
    • A text box has been added to tell you if you have insufficient rupees
  • Fixed a bug in Inverted where some enemies in Agahnim’s Tower and Old Man Cave had DW properties
  • -
  • Added a “loading animation” when ROMS are being generated so people know things are happening!
  • +
  • Added a “loading animation” when ROMs are being generated so people know things are happening!
  • Fixed a bug where Crystals sometimes wouldn’t drop in boss rooms in extremely rare situations
  • Updated Pedestal/Tablets texts to reference generic keys in Retro and not specific keys
  • Updated ER permalinks to include Quick Swap
  • diff --git a/strings/hint.txt b/strings/hint.txt index 7ec630b4e..47dd87233 100644 --- a/strings/hint.txt +++ b/strings/hint.txt @@ -71,7 +71,7 @@ great meal. > on pizza is a great choice. - -> race roms +> race ROMs don’t have spoiler logs - From f212eeae518d9038704ba5a24511c6c27da21864 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Thu, 27 May 2021 16:09:28 -0400 Subject: [PATCH 31/59] Spelling fix. --- resources/lang/de/randomizer.php | 2 +- resources/lang/es/randomizer.php | 2 +- resources/lang/fr/randomizer.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/lang/de/randomizer.php b/resources/lang/de/randomizer.php index ab6dcdbfb..984a4d07c 100644 --- a/resources/lang/de/randomizer.php +++ b/resources/lang/de/randomizer.php @@ -206,7 +206,7 @@ 'save_spoiler' => 'Speichere Spoiler', 'save_rom' => 'Speichere ROM', ], - // depricated + // deprecated 'variation' => [ 'title' => 'Variation', ], diff --git a/resources/lang/es/randomizer.php b/resources/lang/es/randomizer.php index 6ab66b70c..e8725c212 100644 --- a/resources/lang/es/randomizer.php +++ b/resources/lang/es/randomizer.php @@ -206,7 +206,7 @@ 'save_spoiler' => 'Guardar spoiler', 'save_rom' => 'Guardar ROM', ], - // depricated + // deprecated 'variation' => [ 'title' => 'Variación', ], diff --git a/resources/lang/fr/randomizer.php b/resources/lang/fr/randomizer.php index 0c613c46a..193c05ec9 100644 --- a/resources/lang/fr/randomizer.php +++ b/resources/lang/fr/randomizer.php @@ -206,7 +206,7 @@ 'save_spoiler' => 'Enregistrer la spoiler', 'save_rom' => 'Sauvegarder la ROM', ], - // depricated + // deprecated 'variation' => [ 'title' => 'Variation', ], From d28efd2e5b9dc4d0032fdfbe6b471db3dbc1db76 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Mon, 31 May 2021 07:29:54 -0400 Subject: [PATCH 32/59] il8n generation script Add il8n for npm run, and call it as background process in all the NPM Run scripts. --- package.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 58c829916..cb540345d 100644 --- a/package.json +++ b/package.json @@ -3,12 +3,13 @@ "scripts": { "test": "jest", "dev": "npm run development", - "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "development": "npm run il8n & cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", - "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "hot": "npm run il8n & cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", - "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" + "production": "npm run il8n & cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "il8n": "php artisan vue-i18n:generate" }, "devDependencies": { "@babel/core": "^7.10.3", From 84885dbb24e498d2fc8673e0c0ee957b60662799 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Mon, 31 May 2021 07:31:47 -0400 Subject: [PATCH 33/59] Update readme Remove section on running il8n manually. --- readme.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/readme.md b/readme.md index d351ed450..b22345915 100644 --- a/readme.md +++ b/readme.md @@ -67,13 +67,7 @@ You will need to build assets the first time (you will need [NPM](https://www.np $ npm install ``` -Next generate the [Laravel-vue](https://github.com/martinlindhe/laravel-vue-i18n-generator) include file with - -``` -php artisan vue-i18n:generate -``` - -And finally +And then ``` $ npm run production From 34427364db1a6f944b32ce361db38424049df43e Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Mon, 31 May 2021 07:35:53 -0400 Subject: [PATCH 34/59] Stop tracking generated il8n file. --- .gitignore | 1 + resources/js/vue-i18n-locales.generated.js | 3051 -------------------- 2 files changed, 1 insertion(+), 3051 deletions(-) delete mode 100644 resources/js/vue-i18n-locales.generated.js diff --git a/.gitignore b/.gitignore index ff34c9d63..d14d75364 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ /public/images/vendor /storage/*.key /resources/assets/js/*.generated.js +/resources/js/*.generated.js /vendor /coverage /docs diff --git a/resources/js/vue-i18n-locales.generated.js b/resources/js/vue-i18n-locales.generated.js deleted file mode 100644 index b8d4e691e..000000000 --- a/resources/js/vue-i18n-locales.generated.js +++ /dev/null @@ -1,3051 +0,0 @@ -export default { - "de": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Wähle Voreinstellungen", - "customize": "Customire", - "options": { - "default": "Default", - "beginner": "Beginner", - "veetorp": "OWG (Veetorp’s Favorit)", - "crosskeys": "Crosskeys", - "quick": "Super Schnell", - "nightmare": "Albtraum", - "tournament": "Turnier", - "custom": "Benutzerdefiniert" - } - }, - "placement": { - "title": "Gegenstandsplatzierung" - }, - "item_placement": { - "title": "Gegenstandsplatzierung", - "options": { - "basic": "Basis", - "advanced": "Erweitert" - } - }, - "dungeon_items": { - "title": "Palastgegenstände", - "options": { - "standard": "Standard", - "mc": "Karten/Kompässe", - "mcs": "Karten/Kompässe/kleine Schlüssel", - "full": "Keysanity" - } - }, - "accessibility": { - "title": "Zugänglichkeit", - "options": { - "items": "100% Inventar", - "locations": "100% der Orte", - "none": "Schaffbar" - } - }, - "glitches_required": { - "title": "Vorausgesetzte Glitches", - "options": { - "none": "Keine", - "overworld_glitches": "Overworld Glitches", - "major_glitches": "Major Glitches", - "no_logic": "Keine Logik" - }, - "glitch_warning": "Diese Einstellung setzt Wissen von Major Glitches voraus**" - }, - "goal": { - "title": "Ziel", - "options": { - "ganon": "Besiege Ganon", - "fast_ganon": "Fast Ganon", - "dungeons": "Alle Dungeons", - "pedestal": "Master-Schwert Sockel", - "triforce-hunt": "Triforce-Splitter" - } - }, - "tower_open": { - "title": "Turm öffnen", - "options": { - "0": "0 Kristalle", - "1": "1 Kristall", - "2": "2 Kristalle", - "3": "3 Kristalle", - "4": "4 Kristalle", - "5": "5 Kristalle", - "6": "6 Kristalle", - "7": "7 Kristalle", - "random": "Zufällig" - } - }, - "ganon_open": { - "title": "Ganon verwundbar machen", - "options": { - "0": "0 Kristalle", - "1": "1 Kristall", - "2": "2 Kristalle", - "3": "3 Kristalle", - "4": "4 Kristalle", - "5": "5 Kristalle", - "6": "6 Kristalle", - "7": "7 Kristalle", - "random": "Zufällig" - } - }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "Zustand der Welt", - "options": { - "standard": "Standard", - "open": "Offen", - "inverted": "Invertiert", - "retro": "Retro" - } - }, - "entrance_shuffle": { - "title": "Entrance Shuffle", - "options": { - "none": "Keine", - "simple": "Simpel", - "restricted": "Beschränkt", - "full": "Voll", - "crossed": "Gekreuzt", - "insanity": "Wahnsinn" - } - }, - "boss_shuffle": { - "title": "Boss Shuffle", - "options": { - "none": "Keine", - "simple": "Simpel", - "full": "Voll", - "random": "Zufällig" - } - }, - "enemy_shuffle": { - "title": "Enemy Shuffle", - "options": { - "none": "Keine", - "shuffled": "Gemischt", - "random": "Zufällig" - } - }, - "hints": { - "title": "Hinweise", - "options": { - "on": "An", - "off": "Aus" - } - }, - "weapons": { - "title": "Schwerter", - "options": { - "randomized": "Zufällig", - "assured": "Garantiert", - "vanilla": "Vanilla", - "swordless": "Schwertlos" - } - }, - "item_pool": { - "title": "Item Pool", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Diese Erweiterung ist für die Verwundung mit Twitches Crowd Control Erweiterung gedacht. Für mehr Info´s: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Gegendstands Funktionalität", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte" - } - }, - "enemy_damage": { - "title": "Gegnerschaden", - "options": { - "default": "Default", - "shuffled": "Gemischt", - "random": "Zufällig" - } - }, - "enemy_health": { - "title": "Gegnerleben", - "options": { - "default": "Default", - "easy": "Einfach", - "hard": "Schwer", - "expert": "Experte" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Nur bei Generieren" - } - }, - "generate": { - "race": "Generiere ROM für Rennen", - "race_warning": "Spoilerfrei", - "spoiler_race": "ROM für Spoiler Rennen", - "casual": "Generiere ROM", - "back": "Ändere Einstellung", - "regenerate": "Erneut erstellen", - "regenerate_tooltip": "Erstellt ein neues Spiel mit den gleichen Einstellungen", - "generating": "Am erstellen..." - }, - "details": { - "title": "Spiel Details", - "save_spoiler": "Speichere Spoiler", - "save_rom": "Speichere Rom" - }, - "variation": { - "title": "Variation" - }, - "difficulty": { - "title": "Schwierigkeitsgrad", - "options": { - "easy": "Einfach", - "normal": "Normal", - "hard": "Schwer", - "expert": "Experte", - "insane": "Wahnsinnig", - "crowdControl": "Crowd Control" - } - } - }, - "customizer": { - "settings": { - "timers": { - "off": "Aus", - "stopwatch": "Stoppuhr", - "countdown-ohko": "Countdown OHKO", - "countdown-continue": "Countdown fortführen", - "countdown-stop": "Countdown stopp" - }, - "dungeon_count": { - "off": "Aus", - "on": "Immer an", - "pickup": "Beim aufheben des Kompass" - } - }, - "glitches": { - "canBombJump": { - "title": "Bomb Jump", - "description": "Es kann vorausgesetz werden, dass man mit Bomben über Abgründe springt." - }, - "canBootsClip": { - "title": "Boots Clip", - "description": "Wenn man die Pegasusstiefel besitzt könnte es vorausgesetz werden, dass man mit ihnen durch Wände clippt in der Overworld." - }, - "canBunnyRevive": { - "title": "Bunny Revive", - "description": "Es kann vorausgesetz werden, dass man die Wiederbelebungs/Feenmechanik ausnutzt um Link zu werden ohne Mondperle in der Overworld." - }, - "canBunnySurf": { - "title": "Bunny Surf", - "description": "Es kann vorausgesetz werden, dass man in der Hasenform auf dem Wassser läuft." - }, - "canDungeonRevive": { - "title": "Dungeon Revive", - "description": "Es kann vorausgesetz werden, dass man die Wiederbelebungsmechanik nutzt um Link zu werden in einem Palast um Gegenstände aufzusammeln." - }, - "canFakeFlipper": { - "title": "Fake Flipper", - "description": "Es kann vorausgesetz werden, dass man Fake Flipper nutzt um an gewissen Gegenstände zu kommen." - }, - "canMirrorClip": { - "title": "Mirror Clip", - "description": "Es kann vorausgesetz werden, dass man Mirror Bounce ausnutzt um außerhalb der Spielwelt zu gelangen." - }, - "canMirrorWrap": { - "title": "Mirror Wrap", - "description": "Es kann vorausgesetz werden, dass man den Spiegel nutzt um den Spielbildschirm zu scrollen damit man an einen anderen Ort kommt." - }, - "canOneFrameClipOW": { - "title": "One Frame Clip (overworld)", - "description": "Du willst das hier nicht! Glaub mir." - }, - "canOneFrameClipUW": { - "title": "One Frame Clip (underworld)", - "description": "Use 1 Frame Movement to clip between rooms of the underworld." - }, - "canOWYBA": { - "title": "YBA (overworld)", - "description": "Es kann vorausgesetz werden, dass man Flaschen in der Overworld nutzt um damit an einen Ort zu telepotieren." - }, - "canSuperBunny": { - "title": "Super Bunny", - "description": "Es kann vorausgesetz werden, dass man Super Bunny aktiviert um an gewisse Orte zu kommen." - }, - "canSuperSpeed": { - "title": "Super Speed", - "description": "Es kann vorausgesetz werden, dass man Super Speed nutzt um durch die Ecken der Overworld durchzulaufen." - }, - "canWaterFairyRevive": { - "title": "Water Fairy Revive", - "description": "Die vorbereitung hierfür ist einfach nur dumm und brauch viel zu viele Gegenstände." - }, - "canWaterWalk": { - "title": "Water walk", - "description": "Es kann vorausgesetz werden, dass man auf Wasser läuft." - }, - "noLogic": { - "title": "Disable all logic checks", - "description": "Wenn man diese Option aktiviert werden alle unteren Optionen ignoriert." - } - } - }, - "item": { - "Random": "Zufällig", - "BottleWithRandom": "Flasche (Zufällig)", - "Nothing": "Nichts", - "UncleSword": "Progressives Schwert", - "L1Sword": "Schwert des Onkels", - "L1SwordAndShield": "Schwert und Schild des Onkels", - "L2Sword": "Master-Schwert", - "MasterSword": "Master-Schwert", - "L3Sword": "Gehärtetes Schwert", - "L4Sword": "Goldenes Schwert", - "BlueShield": "Schild des Onkels", - "RedShield": "Rotes Schild", - "MirrorShield": "Spiegelschild", - "FireRod": "Feuerstab", - "IceRod": "Eisstab", - "Hammer": "Hammer", - "Hookshot": "Enterharken", - "Bow": "Bogen", - "Boomerang": "Blauer Bumerang", - "Powder": "Magisches Pulver", - "Bee": "Biene", - "Bombos": "Bombos-Medaillon", - "Ether": "Ether-Medaillon", - "Quake": "Quake-Medaillon", - "Lamp": "Lampe", - "Shovel": "Schaufel", - "OcarinaInactive": "Flöte", - "CaneOfSomaria": "Somaria Stab", - "Bottle": "Flasche (Leer)", - "PieceOfHeart": "Herzteil", - "CaneOfByrna": "Byrna Stab", - "Cape": "Magischer Umhang", - "MagicMirror": "Magischer Spiegel", - "PowerGlove": "Krafthandschuhe", - "TitansMitt": "Titanenhandschuhe", - "BookOfMudora": "Buch Mudora", - "Flippers": "Schwimmflossen", - "MoonPearl": "Mondperle", - "BugCatchingNet": "Schmetterlingsnetz", - "BlueMail": "Blaue Rüstung", - "RedMail": "Rote Rüstung", - "Key": "Schlüssel", - "Compass": "Kompass", - "HeartContainerNoAnimation": "Herzcontainer (keine Animation)", - "Bomb": "Eine Bombe", - "ThreeBombs": "Drei Bomben", - "Mushroom": "Pilz", - "RedBoomerang": "Magischer Bumerang", - "BottleWithRedPotion": "Flasche (Rotes Elixier)", - "BottleWithGreenPotion": "Flasche (Grünes Elixier)", - "BottleWithBluePotion": "Flasche (Blaues Elixier)", - "RedPotion": "Rotes Elixier", - "GreenPotion": "Grünes Elixier", - "BluePotion": "Blaues Elixier", - "TenBombs": "Zehn Bomben", - "BigKey": "Großer Schlüssel", - "Map": "Dungeon-Karte", - "OneRupee": "Ein Rubin", - "FiveRupees": "Fünf Rubine", - "TwentyRupees": "Zwanzig Rubine", - "PendantOfCourage": "Amulett des Mutes", - "PendantOfWisdom": "Amulett der Weisheit", - "PendantOfPower": "Amulett der Stärke", - "BowAndArrows": "Pfeil und Bogen", - "BowAndSilverArrows": "Silberpfeil und Bogen", - "BottleWithBee": "Flasche (Biene)", - "BottleWithFairy": "Flasche (Fee)", - "BossHeartContainer": "Herzcontainer", - "HeartContainer": "Herzcontainer der Kathedrale", - "OneHundredRupees": "Einhundert Rubine", - "FiftyRupees": "Fünfzig Rubine", - "Heart": "Kleines Herz", - "Arrow": "Ein Pfeil", - "ShopArrow": "Arrows", - "TenArrows": "Zehn Pfeile", - "SmallMagic": "Kleine Magie", - "ThreeHundredRupees": "Dreihundert Rubine", - "TwentyRupees2": "Zwanzig Rubine", - "BottleWithGoldBee": "Flasche (Goldene Biene)", - "OcarinaActive": "Flöte (Aktiviert)", - "PegasusBoots": "Pegasus-Stiefel", - "BombUpgrade5": "Bomben Upgrade (+5)", - "BombUpgrade10": "Bomben Upgrade (+10)", - "BombUpgrade50": "Bomben Upgrade (+50)", - "ArrowUpgrade5": "Pfeil Upgrade (+5)", - "ArrowUpgrade10": "Pfeil Upgrade (+10)", - "ArrowUpgrade70": "Pfeil Upgrade (+70)", - "HalfMagic": "Halbe Magie", - "QuarterMagic": "Viertel Magie", - "Programmable1": "Programmierbar 1", - "Programmable2": "Programmierbar 2", - "Programmable3": "Programmierbar 3", - "SilverArrowUpgrade": "Silberpfeil Upgrade", - "Rupoor": "Rupoor", - "RedClock": "Rote Uhr", - "BlueClock": "Blaue Uhr", - "GreenClock": "Grüne Uhr", - "ProgressiveSword": "Progressives Schwert", - "ProgressiveShield": "Progressives Schild", - "ProgressiveArmor": "Progressive Rüstung", - "ProgressiveGlove": "Progressive Handschuhe", - "singleRNG": "Einzigartiger RNG Gegenstand", - "multiRNG": "Nicht einzigartiger RNG Gegenstand", - "ProgressiveBow": "Progressiver Bogen", - "Triforce": "Triforce", - "PowerStar": "Power-Stern", - "TriforcePiece": "Triforce-Splitter", - "MapLW": "Lichtwelt-Karte", - "MapDW": "Schattenwelt-Karte", - "MapA2": "Karte von Ganons Turm", - "MapD7": "Karte vom Schildkrötenfelsen", - "MapD4": "Karte von Blinds Versteck", - "MapP3": "Karte von Heras Turm", - "MapD5": "Karte vom Eispalast", - "MapD3": "Karte vom Skelettwald", - "MapD6": "Karte vom Wüstenseepalast", - "MapD1": "Karte vom Palast der Dunkelheit", - "MapD2": "Karte vom Sumpfpalast", - "MapA1": "Karte von Agahnims Turm", - "MapP2": "Karte vom Wüstenpalast", - "MapP1": "Karte vom Ostpalast", - "MapH1": "Karte von Schloss Hyrule", - "MapH2": "Karte der Kanalisation", - "CompassA2": "Kompass von Ganons Turm", - "CompassD7": "Kompass vom Schildkrötenfelsen", - "CompassD4": "Kompass von Blinds Versteck", - "CompassP3": "Kompass von Heras Turm", - "CompassD5": "Kompass vom Eispalast", - "CompassD3": "Kompass vom Skelettwald", - "CompassD6": "Kompass vom Wüstenseepalast", - "CompassD1": "Kompass vom Palast der Dunkelheit", - "CompassD2": "Kompass vom Sumpfpalast", - "CompassA1": "Kompass von Agahnims Turm", - "CompassP2": "Kompass vom Wüstenpalast", - "CompassP1": "Kompass vom Ostpalast", - "CompassH1": "Kompass von Schloss Hyrule", - "CompassH2": "Kompass der Kanalisation", - "BigKeyA2": "Großer Schlüssel von Ganons Turm", - "BigKeyD7": "Großer Schlüssel vom Schildkrötenfelsen ", - "BigKeyD4": "Großer Schlüssel von Blinds Versteck", - "BigKeyP3": "Großer Schlüssel von Heras Turm", - "BigKeyD5": "Großer Schlüssel vom Eispalast", - "BigKeyD3": "Großer Schlüssel vom Skelettwald", - "BigKeyD6": "Großer Schlüssel vom Wüstenseepalast", - "BigKeyD1": "Großer Schlüssel vom Palast der Dunkelheit", - "BigKeyD2": "Großer Schlüssel vom Sumpfpalast", - "BigKeyA1": "Großer Schlüssel von Agahnims Turm", - "BigKeyP2": "Großer Schlüssel vom Wüstenpalast", - "BigKeyP1": "Großer Schlüssel vom Ostpalast", - "BigKeyH1": "Großer Schlüssel von Schloss Hyrule", - "BigKeyH2": "Großer Schlüssel der Kanalisation", - "KeyH2": "Kleiner Schlüssel der Kanalisation", - "KeyH1": "Kleiner Schlüssel von Schloss Hyrule", - "KeyP1": "Kleiner Schlüssel vom Ostpalast", - "KeyP2": "Kleiner Schlüssel vom Wüstenpalast", - "KeyA1": "Kleiner Schlüssel von Agahnims Turm", - "KeyD2": "Kleiner Schlüssel vom Sumpfpalast", - "KeyD1": "Kleiner Schlüssel vom Palast der Dunkelheit", - "KeyD6": "Kleiner Schlüssel vom Wüstenseepalast", - "KeyD3": "Kleiner Schlüssel vom Skelettwald", - "KeyD5": "Kleiner Schlüssel vom Eispalast", - "KeyP3": "Kleiner Schlüssel von Heras Turm", - "KeyD4": "Kleiner Schlüssel von Blinds Versteck", - "KeyD7": "Kleiner Schlüssel vom Schildkrötenfelsen", - "KeyA2": "Kleiner Schlüssel von Ganons Turm", - "KeyGK": "Generischer kleiner Schlüssel", - "Crystal1": "Kristall 1", - "Crystal2": "Kristall 2", - "Crystal3": "Kristall 3", - "Crystal4": "Kristall 4", - "Crystal5": "Kristall 5", - "Crystal6": "Kristall 6", - "Crystal7": "Kristall 7", - "RescueZelda": "Rette Zelda", - "DefeatAgahnim": "Besiege Agahnim", - "BigRedBomb": "Große rote Bombe", - "DefeatAgahnim2": "Besiege Agahnim 2", - "DefeatGanon": "Besiege Ganon", - "ChocoboEgg": "Chocobo Ei", - "NoSlipBoots": "Winterstiefel", - "WinterCoat": "Wintermantel", - "Duck": "Ente", - "Reindeer1": "Dasher", - "Reindeer2": "Dancer", - "Reindeer3": "Prancer", - "Reindeer4": "Vixen", - "Reindeer5": "Comet", - "Reindeer6": "Cupid", - "Reindeer7": "Donner", - "Reindeer8": "Blitzen", - "Gift1": "Geschenk 1", - "Gift2": "Geschenk 2", - "Gift3": "Geschenk 3", - "Gift4": "Geschenk 4", - "Gift5": "Geschenk 5", - "Gift6": "Geschenk 6", - "Gift7": "Geschenk 7", - "Coal1": "Kohle", - "Coal2": "Kohle", - "GoldenTicket": "Golden Ticket", - "Armos Knights": "Armos Knights", - "Lanmolas": "Lanmolas", - "Moldorm": "Moldorm", - "Helmasaur King": "Helmasaur King", - "Arrghus": "Arrghus", - "Mothula": "Mothula", - "Blind": "Blind", - "Kholdstare": "Kholdstare", - "Vitreous": "Vitreous", - "Trinexx": "Trinexx", - "Agahnim": "Agahnim", - "Agahnim 2": "Agahnim 2", - "Ganon": "Ganon", - "Test": "Gegenstand fürs testen" - }, - "rom": { - "loader": { - "title": "Anfangen", - "file_select": "ROM Datei auswählen", - "content": "
    1. Wähle die Rom Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
    2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
    3. Klicke Generiere ROM für Rennen
    4. Dann speichere deine Rom und fang an zu spielen
    " - }, - "info": { - "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", - "mystery": "Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!", - "logic": "Vorausgesetzte Glitches", - "accessibility": "Zugänglichkeit", - "build": "ROM build", - "difficulty": "Schwierigkeitsgrad", - "variation": "Variation", - "shuffle": "Entrance Shuffle", - "mode": "Zustand der Welt", - "weapons": "Schwerter", - "goal": "Ziel", - "permalink": "Permalink", - "special": "Spezial", - "notes": "Notizen", - "generated": "Erstellt" - }, - "settings": { - "heart_speed": "Geschwindigkeit des Warnungston bei wenig Leben", - "heart_speeds": { - "off": "Aus", - "double": "Doppelte Geschwindigkeit", - "normal": "Normale Geschwindigkeit", - "half": "Halbe Geschwindigkeit", - "quarter": "Viertel Geschwindigkeit" - }, - "menu_speed": "Menü Geschwindigkeit", - "menu_speeds": { - "instant": "Instant", - "fast": "Schnell", - "normal": "Normal", - "slow": "Langsam" - }, - "heart_color": "Farbe der Herzen", - "heart_colors": { - "blue": "Blau", - "green": "Grün", - "red": "Rot", - "yellow": "Gelb" - }, - "play_as": "Spiele als", - "sprite_file_select": ".zspr Datei auswählen", - "music": "Hintergrundmusik", - "music_info": "(setze zu \"Keine\" für MSU-1 Support)", - "quickswap": "Gegenstand Schnellwechsel", - "palette_shuffle": "Palette Shuffle", - "race_warning": "Funktioniert nicht in einer Rom für Rennen" - } - }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Wechsele zum Item Randomizer" - }, - "rom": { - "options": "ROM Optionen" - }, - "difficulty": { - "title": "Schwierigkeit", - "options": { - "easy": "Einfach", - "normal": "Mittel", - "hard": "Schwer", - "expert": "Experte", - "insane": "Wahnsinnig" - } - }, - "goal": { - "title": "Ziel", - "options": { - "ganon": "Besiege Ganon", - "crystals": "Kristalle", - "dungeons": "Alle Dungeons", - "pedestal": "Master-Schwert Sockel", - "triforcehunt": "Triforce Teile" - } - }, - "logic": { - "title": "Logik", - "options": { - "NoGlitches": "Keine Glitches" - } - }, - "mode": { - "title": "Zustand", - "options": { - "swordless": "Schwertlos", - "open": "Offen" - } - }, - "shuffle": { - "title": "Mischung", - "options": { - "simple": "Simpel", - "restricted": "Beschränkt", - "full": "Voll", - "crossed": "Gekreuzt", - "insanity": "Wahnsinn" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "Keine", - "timed-race": "Zeitrennen", - "timed-ohko": "Zeitlimit bis OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce-Splitter Jagd", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generiere ROM für Rennen", - "spoiler_race": "ROM für Spoiler Rennen", - "casual": "Generiere ROM" - }, - "details": { - "title": "Spiele Details", - "save_spoiler": "Speichere Spoiler", - "save_rom": "Speichere Rom" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Aktiviere Enemizer", - "disable": "Deaktiviere Enemizer", - "enemy_health": { - "title": "Gegner Leben", - "options": [ - "Regulär", - "Einfach (1-4 hp)", - "Mittel (2-15 hp)", - "Schwer (2-30 hp)", - "Wahnsinnig (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Gegner Schaden", - "options": { - "off": "Regulär", - "shuffle": "Durcheinander", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Bosse", - "options": { - "off": "Regulär", - "basic": "Basis", - "normal": "Normal", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Palettenmischung", - "pot_shuffle": "Topf mischen", - "enemy_shuffle": "Gegner mischen" - }, - "error": { - "title": "Fehler", - "429": "Auch wenn wir schätzen das du einen haufen Spiele generierst, andere Leute möchten dies aber auch. Bitte kommen später wieder wenn du mehr generieren möchtest.", - "failed_generation": "Fehler beim erstellen :(", - "bad_file": "Datei nicht erkannt", - "quota_exceeded_error": "Lokaler Cache Speicher ist voll." - } - }, - "en": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Select Preset", - "customize": "Customize", - "options": { - "default": "Default", - "beginner": "Beginner", - "veetorp": "OWG (Veetorp’s Favorite)", - "crosskeys": "Crosskeys", - "quick": "Super Quick", - "nightmare": "Nightmare", - "tournament": "Tournament", - "custom": "Custom" - } - }, - "placement": { - "title": "Item Placement" - }, - "item_placement": { - "title": "Item Placement", - "options": { - "basic": "Basic", - "advanced": "Advanced" - } - }, - "dungeon_items": { - "title": "Dungeon Item Shuffle", - "options": { - "standard": "Standard", - "mc": "Maps/Compasses", - "mcs": "Maps/Compasses/Small Keys", - "full": "Keysanity" - } - }, - "accessibility": { - "title": "Accessibility", - "options": { - "items": "100% Inventory", - "locations": "100% Locations", - "none": "Beatable" - } - }, - "glitches_required": { - "title": "Glitches Required", - "options": { - "none": "None", - "overworld_glitches": "Overworld Glitches", - "major_glitches": "Major Glitches", - "no_logic": "No Logic" - }, - "glitch_warning": "These settings require knowledge of Major Glitches**" - }, - "goal": { - "title": "Goal", - "options": { - "ganon": "Defeat Ganon", - "fast_ganon": "Fast Ganon", - "dungeons": "All Dungeons", - "pedestal": "Master Sword Pedestal", - "triforce-hunt": "Triforce Pieces" - } - }, - "tower_open": { - "title": "Open Tower", - "options": { - "0": "0 Crystals", - "1": "1 Crystal", - "2": "2 Crystals", - "3": "3 Crystals", - "4": "4 Crystals", - "5": "5 Crystals", - "6": "6 Crystals", - "7": "7 Crystals", - "random": "Random" - } - }, - "ganon_open": { - "title": "Ganon Vulnerable", - "options": { - "0": "0 Crystals", - "1": "1 Crystal", - "2": "2 Crystals", - "3": "3 Crystals", - "4": "4 Crystals", - "5": "5 Crystals", - "6": "6 Crystals", - "7": "7 Crystals", - "random": "Random" - } - }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "World State", - "options": { - "standard": "Standard", - "open": "Open", - "inverted": "Inverted", - "retro": "Retro" - } - }, - "entrance_shuffle": { - "title": "Entrance Shuffle", - "options": { - "none": "None", - "simple": "Simple", - "restricted": "Restricted", - "full": "Full", - "crossed": "Crossed", - "insanity": "Insanity" - } - }, - "boss_shuffle": { - "title": "Boss Shuffle", - "options": { - "none": "None", - "simple": "Simple", - "full": "Full", - "random": "Random" - } - }, - "enemy_shuffle": { - "title": "Enemy Shuffle", - "options": { - "none": "None", - "shuffled": "Shuffled", - "random": "Random" - } - }, - "hints": { - "title": "Hints", - "options": { - "on": "On", - "off": "Off" - } - }, - "weapons": { - "title": "Swords", - "options": { - "randomized": "Randomized", - "assured": "Assured", - "vanilla": "Vanilla", - "swordless": "Swordless" - } - }, - "item_pool": { - "title": "Item Pool", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* This setting is meant to be used with the Crowd Control Twitch extension. find out more: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Item Functionality", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert" - } - }, - "enemy_damage": { - "title": "Enemy Damage", - "options": { - "default": "Default", - "shuffled": "Shuffled", - "random": "Random" - } - }, - "enemy_health": { - "title": "Enemy Health", - "options": { - "default": "Default", - "easy": "Easy", - "hard": "Hard", - "expert": "Expert" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Only on Generate", - "mystery": "Mystery (settings hidden)" - } - }, - "generate": { - "race": "Generate Race ROM", - "race_warning": "Spoilers will never be available for this option.", - "spoiler_race": "Generate Normal ROM", - "casual": "Generate ROM", - "back": "Change Settings", - "regenerate": "Generate Again", - "regenerate_tooltip": "Generate new game with same settings", - "generating": "Generating..." - }, - "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save Rom" - }, - "variation": { - "title": "Variation" - }, - "difficulty": { - "title": "Difficulty", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane", - "crowdControl": "Crowd Control" - } - } - }, - "region": { - "all": "All Regions", - "Light World": "Light World", - "Hyrule Castle": "Hyrule Castle", - "Eastern Palace": "Eastern Palace", - "Desert Palace": "Desert Palace", - "Death Mountain": "Death Mountain", - "Tower Of Hera": "Tower Of Hera", - "Castle Tower": "Castle Tower", - "Dark World": "Dark World", - "Dark Palace": "Dark Palace", - "Swamp Palace": "Swamp Palace", - "Skull Woods": "Skull Woods", - "Thieves Town": "Thieves Town", - "Ice Palace": "Ice Palace", - "Misery Mire": "Misery Mire", - "Turtle Rock": "Turtle Rock", - "Ganons Tower": "Ganons Tower", - "Special": "Special" - }, - "customizer": { - "settings": { - "timers": { - "off": "Off", - "stopwatch": "Stopwatch", - "countdown-ohko": "Countdown OHKO", - "countdown-continue": "Countdown Continue", - "countdown-stop": "Countdown Stop" - }, - "dungeon_count": { - "off": "Off", - "on": "Always On", - "pickup": "On Compass Pickup" - } - }, - "glitches": { - "canBombJump": { - "title": "Bomb Jump", - "description": "One may be required to Bomb jump over gaps." - }, - "canBootsClip": { - "title": "Boots Clip", - "description": "When one has the Boots, they may be required to clip through walls in the overworld." - }, - "canBunnyRevive": { - "title": "Bunny Revive", - "description": "One may be required to go somewhere in bunny form and abuse death/fairy revive to be Link." - }, - "canBunnySurf": { - "title": "Bunny Surf", - "description": "One may be required to water walk in bunny state." - }, - "canDungeonRevive": { - "title": "Dungeon Revive", - "description": "One may be required to revive as a bunny in a dungeon to collect items as Link." - }, - "canFakeFlipper": { - "title": "Fake Flipper", - "description": "One may be required to use the fake flipper glitch to collect items." - }, - "canMirrorClip": { - "title": "Mirror Clip", - "description": "One may be required to abuse Mirror Portal Placements to go out of bounds." - }, - "canMirrorWrap": { - "title": "Mirror Wrap", - "description": "One may be required to use Mirror to auto scroll to a different location." - }, - "canOneFrameClipOW": { - "title": "One Frame Clip (overworld)", - "description": "You don’t want this. Trust me." - }, - "canOneFrameClipUW": { - "title": "One Frame Clip (underworld)", - "description": "Use 1 Frame Movement to clip between rooms of the underworld." - }, - "canOWYBA": { - "title": "YBA (overworld)", - "description": "May be required to use bottles in the overworld to teleport to different locations." - }, - "canSuperBunny": { - "title": "Super Bunny", - "description": "One may be required to activate super bunny to access locations." - }, - "canSuperSpeed": { - "title": "Super Speed Clip", - "description": "One may be required to super speed clip through edges in the overworld." - }, - "canWaterFairyRevive": { - "title": "Water Fairy Revive", - "description": "This setup is silly and requires a bunch of items." - }, - "canWaterWalk": { - "title": "Water walk", - "description": "One may be required to use boots to walk on top of water." - }, - "noLogic": { - "title": "Disable all logic checks", - "description": "When this is selected all bets are off, and nothing below matters." - }, - "logicMode": { - "title": "Glitches Required Rom \"Fixes\"", - "description": "Set the type of rom fixes applied. Does not change item placement logic." - } - } - }, - "item": { - "Random": "Random", - "BottleWithRandom": "Bottle (Random)", - "Nothing": "Nothing", - "UncleSword": "Progressive Sword", - "L1Sword": "Fighters Sword", - "L1SwordAndShield": "Fighters Sword and Shield", - "L2Sword": "Master Sword", - "MasterSword": "Master Sword", - "L3Sword": "Tempered Sword", - "L4Sword": "Golden Sword", - "BlueShield": "Fighters Shield", - "RedShield": "Fire Shield", - "MirrorShield": "Mirror Shield", - "FireRod": "Fire Rod", - "IceRod": "Ice Rod", - "Hammer": "Hammer", - "Hookshot": "Hookshot", - "Bow": "Bow", - "Boomerang": "Blue Boomerang", - "Powder": "Magic Powder", - "Bee": "Bee", - "Bombos": "Bombos", - "Ether": "Ether", - "Quake": "Quake", - "Lamp": "Lamp", - "Shovel": "Shovel", - "OcarinaInactive": "Flute", - "CaneOfSomaria": "Cane Of Somaria", - "Bottle": "Bottle (Empty)", - "PieceOfHeart": "Piece Of Heart", - "CaneOfByrna": "Cane Of Byrna", - "Cape": "Magic Cape", - "MagicMirror": "Magic Mirror", - "PowerGlove": "Power Glove", - "TitansMitt": "Titans Mitt", - "BookOfMudora": "Book Of Mudora", - "Flippers": "Flippers", - "MoonPearl": "Moon Pearl", - "BugCatchingNet": "Bug Catching Net", - "BlueMail": "Blue Mail", - "RedMail": "Red Mail", - "Key": "Key", - "Compass": "Compass", - "HeartContainerNoAnimation": "Heart Container (no animation)", - "Bomb": "Single Bomb", - "ThreeBombs": "Three Bombs", - "Mushroom": "Mushroom", - "RedBoomerang": "Magical Boomerang", - "BottleWithRedPotion": "Bottle (Red Potion)", - "BottleWithGreenPotion": "Bottle (Green Potion)", - "BottleWithBluePotion": "Bottle (Blue Potion)", - "RedPotion": "Red Potion", - "GreenPotion": "Green Potion", - "BluePotion": "Blue Potion", - "TenBombs": "Ten Bombs", - "BigKey": "Big Key", - "Map": "Dungeon Map", - "OneRupee": "One Rupee", - "FiveRupees": "Five Rupees", - "TwentyRupees": "Twenty Rupees", - "PendantOfCourage": "Pendant Of Courage", - "PendantOfWisdom": "Pendant Of Wisdom", - "PendantOfPower": "Pendant Of Power", - "BowAndArrows": "Bow And Arrows", - "BowAndSilverArrows": "Bow And Silver Arrows", - "BottleWithBee": "Bottle (Bee)", - "BottleWithFairy": "Bottle (Fairy)", - "BossHeartContainer": "Heart Container", - "HeartContainer": "Sanctuary Heart Container", - "OneHundredRupees": "One Hundred Rupees", - "FiftyRupees": "Fifty Rupees", - "Heart": "Small Heart", - "Arrow": "Single Arrow", - "ShopArrow": "Arrows", - "TenArrows": "Ten Arrows", - "SmallMagic": "Small Magic", - "ThreeHundredRupees": "Three Hundred Rupees", - "TwentyRupees2": "Twenty Rupees", - "BottleWithGoldBee": "Bottle (Golden Bee)", - "OcarinaActive": "Flute (active)", - "PegasusBoots": "Pegasus Boots", - "BombUpgrade5": "Bomb Upgrade (+5)", - "BombUpgrade10": "Bomb Upgrade (+10)", - "BombUpgrade50": "Bomb Upgrade (+50)", - "ArrowUpgrade5": "Arrow Upgrade (+5)", - "ArrowUpgrade10": "Arrow Upgrade (+10)", - "ArrowUpgrade70": "Arrow Upgrade (+70)", - "HalfMagic": "Half Magic", - "QuarterMagic": "Quarter Magic", - "Programmable1": "Programmable 1", - "Programmable2": "Programmable 2", - "Programmable3": "Programmable 3", - "SilverArrowUpgrade": "Silver Arrows Upgrade", - "Rupoor": "Rupoor", - "RedClock": "Red Clock", - "BlueClock": "Blue Clock", - "GreenClock": "Green Clock", - "ProgressiveSword": "Progressive Sword", - "ProgressiveShield": "Progressive Shield", - "ProgressiveArmor": "Progressive Armor", - "ProgressiveGlove": "Progressive Glove", - "singleRNG": "Unique RNG Item", - "multiRNG": "Non-Unique RNG Item", - "ProgressiveBow": "Progressive Bow", - "Triforce": "Triforce", - "PowerStar": "Power Star", - "TriforcePiece": "Triforce Piece", - "MapLW": "Light World Map", - "MapDW": "Dark World Map", - "MapA2": "Ganons Tower Map", - "MapD7": "Turtle Rock Map", - "MapD4": "Thieves Town Map", - "MapP3": "Tower of Hera Map", - "MapD5": "Ice Palace Map", - "MapD3": "Skull Woods Map", - "MapD6": "Misery Mire Map", - "MapD1": "Palace of Darkness Map", - "MapD2": "Swamp Palace Map", - "MapA1": "Agahnims Tower Map", - "MapP2": "Desert Palace Map", - "MapP1": "Eastern Palace Map", - "MapH1": "Hyrule Castle Map", - "MapH2": "Sewers Map", - "CompassA2": "Ganons Tower Compass", - "CompassD7": "Turtle Rock Compass", - "CompassD4": "Thieves Town Compass", - "CompassP3": "Tower of Hera Compass", - "CompassD5": "Ice Palace Compass", - "CompassD3": "Skull Woods Compass", - "CompassD6": "Misery Mire Compass", - "CompassD1": "Palace of Darkness Compass", - "CompassD2": "Swamp Palace Compass", - "CompassA1": "Agahnims Tower Compass", - "CompassP2": "Desert Palace Compass", - "CompassP1": "Eastern Palace Compass", - "CompassH1": "Hyrule Castle Compass", - "CompassH2": "Sewers Compass", - "BigKeyA2": "Ganons Tower Big Key", - "BigKeyD7": "Turtle Rock Big Key", - "BigKeyD4": "Thieves Town Big Key", - "BigKeyP3": "Tower of Hera Big Key", - "BigKeyD5": "Ice Palace Big Key", - "BigKeyD3": "Skull Woods Big Key", - "BigKeyD6": "Misery Mire Big Key", - "BigKeyD1": "Palace of Darkness Big Key", - "BigKeyD2": "Swamp Palace Big Key", - "BigKeyA1": "Agahnims Tower Big Key", - "BigKeyP2": "Desert Palace Big Key", - "BigKeyP1": "Eastern Palace Big Key", - "BigKeyH1": "Hyrule Castle Big Key", - "BigKeyH2": "Sewers Big Key", - "KeyH2": "Sewers Key", - "KeyH1": "Hyrule Castle Key", - "KeyP1": "Eastern Palace Key", - "KeyP2": "Desert Palace Key", - "KeyA1": "Agahnims Tower Key", - "KeyD2": "Swamp Palace Key", - "KeyD1": "Palace of Darkness Key", - "KeyD6": "Misery Mire Key", - "KeyD3": "Skull Woods Key", - "KeyD5": "Ice Palace Key", - "KeyP3": "Tower of Hera Key", - "KeyD4": "Thieves Town Key", - "KeyD7": "Turtle Rock Key", - "KeyA2": "Ganons Tower Key", - "KeyGK": "Generic Key", - "ShopKey": "Key", - "Crystal1": "Crystal 1", - "Crystal2": "Crystal 2", - "Crystal3": "Crystal 3", - "Crystal4": "Crystal 4", - "Crystal5": "Crystal 5", - "Crystal6": "Crystal 6", - "Crystal7": "Crystal 7", - "RescueZelda": "Rescue Zelda", - "DefeatAgahnim": "Defeat Agahnim", - "BigRedBomb": "Big Red Bomb", - "DefeatAgahnim2": "Defeat Agahnim 2", - "DefeatGanon": "Defeat Ganon", - "ChocoboEgg": "Chocobo Egg", - "NoSlipBoots": "Ice Cleats", - "WinterCoat": "Winter Coat", - "Duck": "Duck", - "Reindeer1": "Dasher", - "Reindeer2": "Dancer", - "Reindeer3": "Prancer", - "Reindeer4": "Vixen", - "Reindeer5": "Comet", - "Reindeer6": "Cupid", - "Reindeer7": "Donner", - "Reindeer8": "Blitzen", - "Gift1": "Gift 1", - "Gift2": "Gift 2", - "Gift3": "Gift 3", - "Gift4": "Gift 4", - "Gift5": "Gift 5", - "Gift6": "Gift 6", - "Gift7": "Gift 7", - "Coal1": "Coal", - "Coal2": "Coal", - "GoldenTicket": "Golden Ticket", - "Armos Knights": "Armos Knights", - "Lanmolas": "Lanmolas", - "Moldorm": "Moldorm", - "Helmasaur King": "Helmasaur King", - "Arrghus": "Arrghus", - "Mothula": "Mothula", - "Blind": "Blind", - "Kholdstare": "Kholdstare", - "Vitreous": "Vitreous", - "Trinexx": "Trinexx", - "Agahnim": "Agahnim", - "Agahnim 2": "Agahnim 2", - "Ganon": "Ganon", - "Test": "Testing Item" - }, - "multiworld": { - "title": "Multiworld Randomizer", - "generate": "Generate Multiworld Data File" - }, - "rom": { - "loader": { - "title": "Getting Started", - "file_select": "Select ROM File", - "content": "
    1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
    2. Select the Game Options for how you would like your game randomized
    3. Click Generate Normal ROM
    4. Then Save your rom and get to playing
    " - }, - "info": { - "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", - "mystery": "This is a mystery game. The settings must be discovered while you play!", - "logic": "Glitches Required", - "accessibility": "Accessibility", - "build": "ROM build", - "difficulty": "Difficulty", - "variation": "Variation", - "shuffle": "Entrance Shuffle", - "mode": "World State", - "weapons": "Swords", - "goal": "Goal", - "permalink": "Permalink", - "special": "Special", - "notes": "Notes", - "generated": "Created" - }, - "settings": { - "heart_speed": "Heart Speed", - "heart_speeds": { - "off": "Off", - "double": "Double Speed", - "normal": "Normal Speed", - "half": "Half Speed", - "quarter": "Quarter Speed" - }, - "menu_speed": "Menu Speed", - "menu_speeds": { - "instant": "Instant", - "fast": "Fast", - "normal": "Normal", - "slow": "Slow" - }, - "heart_color": "Heart Color", - "heart_colors": { - "blue": "Blue", - "green": "Green", - "red": "Red", - "yellow": "Yellow" - }, - "play_as": "Play As", - "sprite_file_select": "Select .zspr File", - "music": "Background Music", - "music_info": "(set to \"No\" for MSU-1 support)", - "quickswap": "Item Quickswap", - "palette_shuffle": "Palette Shuffle", - "race_warning": "Does not work in Race Roms" - } - }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Switch to Item Randomizer" - }, - "rom": { - "options": "ROM Options" - }, - "difficulty": { - "title": "Difficulty", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane" - } - }, - "goal": { - "title": "Goal", - "options": { - "ganon": "Defeat Ganon", - "crystals": "Crystals", - "dungeons": "All Dungeons", - "pedestal": "Master Sword Pedestal", - "triforcehunt": "Triforce Pieces" - } - }, - "logic": { - "title": "Logic", - "options": { - "NoGlitches": "No Glitches" - } - }, - "mode": { - "title": "State", - "options": { - "swordless": "Swordless", - "open": "Open" - } - }, - "shuffle": { - "title": "Shuffle", - "options": { - "simple": "Simple", - "restricted": "Restricted", - "full": "Full", - "crossed": "Crossed", - "insanity": "Insanity" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "None", - "timed-race": "Timed Race", - "timed-ohko": "Timed OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce Piece Hunt", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generate Race ROM", - "spoiler_race": "Spoiler Race ROM", - "casual": "Generate ROM" - }, - "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save Rom" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Enable Enemizer", - "disable": "Disable Enemizer", - "enemy_health": { - "title": "Enemy Health", - "options": [ - "Default", - "Easy (1-4 hp)", - "Normal (2-15 hp)", - "Hard (2-30 hp)", - "Brick Wall (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Enemy Damage", - "options": { - "off": "Default", - "shuffle": "Shuffled", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Boss Shuffle", - "options": { - "off": "Off", - "basic": "Simple", - "normal": "Full", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Palette Shuffle", - "pot_shuffle": "Pot Shuffle", - "enemy_shuffle": "Enemy Shuffle" - }, - "error": { - "title": "Error", - "429": "While we apprecate your want to generate a lot of games, Other people would like to as well. Please come back later if you would like to generate more.", - "failed_generation": "Failed Creating Game :(", - "bad_file": "File not recognized", - "quota_exceeded_error": "Your local storage quota has been exceeded." - }, - "sprite": { - "Raven": "Raven", - "Vulture": "Vulture", - "FlyingStalfosHead": "Flying Stalfos Head", - "Empty": "Empty", - "PullSwitchGood": "Pull Switch (Good)", - "PullSwitch1": "Pull Switch (Unused)", - "PullSwitchBad": "Pull Switch (Bad)", - "PullSwitch2": "Pull Switch (Unused)", - "Octorok1": "Octorok (One Way)", - "Moldorm": "Moldorm (Boss)", - "Octorok4": "Octorok (Four Way)", - "Chicken": "Chicken", - "Octorok": "Octorok (?)", - "Buzzblob": "Buzzblob", - "Snapdragon": "Snapdragon", - "Octoballoon": "Octoballoon", - "OctoballoonHatchlings": "Octoballoon Hatchlings", - "Hinox": "Hinox", - "Moblin": "Moblin", - "MiniHelmasaur": "Mini Helmasaur", - "ForkGate": "Gargoyle's Domain Gate", - "Antifairy": "Antifairy", - "Sahasrahla": "Sahasrahla / Aginah", - "BushHoarder": "Bush Hoarder", - "MiniMoldorm": "Mini Moldorm", - "Poe": "Poe", - "Dwarves": "Dwarves", - "WallArrow": "Arrow in wall?", - "Statue": "Statue", - "Weathervane": "Weathervane", - "CrystalSwitch": "Crystal Switch", - "SickKid": "Bug-Catching Kid", - "Sluggula": "Sluggula", - "PushSwitch": "Push Switch", - "Ropa": "Ropa", - "RedBari": "Red Bari", - "BlueBari": "Blue Bari", - "TalkingTree": "Talking Tree", - "HardhatBeetle": "Hardhat Beetle", - "Deadrock": "Deadrock", - "Storytellers": "Storytellers", - "BlindHistorian": "Blind Hideout attendant", - "SweepingLady": "Sweeping Lady", - "Multipurpose": "Multipurpose Sprite", - "Lumberjacks": "Lumberjacks", - "TelepathicStones": "Telepathic stones? (No idea what this actually is, likely unused)", - "FluteBoyNotes": "Flute Boy's Notes", - "RaceNPCs": "Race HP NPCs", - "Person": "Person?", - "FortuneTeller": "Fortune Teller", - "AngryBrothers": "Angry Brothers", - "PullForRupees": "Pull For Rupees Sprite", - "ScaredGirl2": "Scared Girl 2", - "Innkeeper": "Innkeeper", - "0": "Potion =>hop", - "1": "Potion Shop", - "Waterfall": "Waterfall", - "ArrowTarget": "Arrow Target", - "AverageMan": "Average Middle-Aged Man", - "MagicBat": "Half Magic Bat", - "DashItem": "Dash Item", - "VillageKid": "Village Kid", - "Sign": "Signs? Chicken lady also showed up / Scared ladies outside houses.", - "RockHoarder": "Rock Hoarder", - "TutorialSoldier": "Tutorial Soldier", - "LightningLock": "Lightning Lock", - "BlueSwordSoldier": "Blue Sword Soldier / Used by guards to detect player", - "GreenSwordSoldier": "Green Sword Soldier", - "RedSpearSoldier": "Red Spear Soldier", - "AssaultSwordSoldier": "Assault Sword Soldier", - "GreenSpearSoldier": "Green Spear Soldier", - "BlueArcher": "Blue Archer", - "GreenArcher": "Green Archer", - "RedJavelinSolider": "Red Javelin Soldier", - "RedJavelinSolider2": "Red Javelin Soldier 2", - "RedBombSolider": "Red Bomb Soldiers", - "GreenSoldierRecruit": "Green Soldier Recruits", - "Geldman": "Geldman", - "Rabbit": "Rabbit", - "Popo": "Popo", - "Popo2": "Popo 2", - "CannonBall": "Cannon Balls", - "Armos": "Armos", - "KingZora": "Giant Zora", - "ArmosKnights": "Armos Knights (Boss)", - "Lanmolas": "Lanmolas (Boss)", - "FireballZora": "Fireball Zora", - "WalkingZora": "Walking Zora", - "DesertPalaceBarrier": "Desert Palace Barriers", - "Crab": "Crab", - "Bird": "Birds (Haunted Grove)", - "Squirrel": "Squirrel", - "SparkLR": "Spark (Left to Right)", - "SparkRL": "Spark (Right to Left)", - "RollerV1": "Roller (vertical moving)", - "RollerV2": "Roller (vertical moving)", - "Roller": "Roller", - "RollerH": "Roller (horizontal moving)", - "Beamos": "Beamos", - "MasterSword": "Master Sword", - "Devalant": "Devalant (Non-shooter)", - "DevalantShooter": "Devalant (Shooter)", - "ShootingGalleryNPC": "Shooting Gallery Proprietor", - "CannonBallShooterR": "Moving Cannon Ball Shooters (Right)", - "CannonBallShooterL": "Moving Cannon Ball Shooters (Left)", - "CannonBallShooterD": "Moving Cannon Ball Shooters (Down)", - "CannonBallShooterU": "Moving Cannon Ball Shooters (Up)", - "BallNChainTrooper": "Ball N' Chain Trooper", - "CannonSoldier": "Cannon Soldier", - "MirrorPortal": "Mirror Portal", - "Rat": "Rat", - "Rope": "Rope", - "Keese": "Keese", - "HelmasaurFireball": "Helmasaur King Fireball", - "Leever": "Leever", - "PondActivation": "Activator for the ponds (where you throw in items)", - "2": "Link' => Uncle", - "3": "Uncle / Priest", - "RunningMan": "Running Man", - "BottleSalesman": "Bottle Salesman", - "Zelda": "Princess Zelda", - "Antifairy2": "Antifairy (Alternate)", - "VillageElder": "Village Elder", - "Bee": "Bee Swarm", - "Agahnim": "Agahnim", - "AgahnimBall": "Agahnim Energy Ball", - "Hyu": "Hyu", - "BigSpikeTrap": "Big Spike Trap", - "GuruguruBarCW": "Guruguru Bar (Clockwise)", - "GuruguruBarCCW": "Guruguru Bar (Counter Clockwise)", - "Winder": "Winder", - "WaterTektite": "Water Tektite", - "AntifairyCircle": "Antifairy Circle", - "EyegoreGreen": "Green Eyegore", - "EyegoreRed": "Red Eyegore", - "StalfosYellow": "Yellow Stalfos", - "Kodongos": "Kodongos", - "Flames": "Flames", - "Mothula": "Mothula (Boss)", - "MothulaBeam": "Mothula's Beam", - "SpikeTrap": "Spike Trap", - "Gibdo": "Gibdo", - "Arrghus": "Arrghus (Boss)", - "ArrghusSpawn": "Arrghus spawn", - "Terrorpin": "Terrorpin", - "Slime": "Slime", - "Wallmaster": "Wallmaster", - "StalfosKnight": "Stalfos Knight", - "Helmasaur": "Helmasaur King", - "Bumper": "Bumper", - "Swimmers": "Swimmers", - "EyeLaserR": "Eye Laser (Right)", - "EyeLaserL": "Eye Laser (Left)", - "EyeLaserD": "Eye Laser (Down)", - "EyeLaserU": "Eye Laser (Up)", - "Pengator": "Pengator", - "Kyameron": "Kyameron", - "Wizzrobe": "Wizzrobe", - "Tadpoles": "Tadpoles", - "Tadpoles2": "Tadpoles", - "Ostrich": "Ostrich (Haunted Grove)", - "Flute": "Flute", - "Freezor": "Freezor", - "Kholdstare": "Kholdstare (Boss)", - "KholdstareShell": "Kholdstare's Shell", - "FallingIce": "Falling Ice", - "ZazakFireball": "Zazak Fireball", - "ZazakRed": "Red Zazak", - "Stalfos": "Stalfos", - "Zirro": "Bomber Flying Creatures from Darkworld", - "Zirro2": "Bomber Flying Creatures from Darkworld", - "Pikit": "Pikit", - "Maiden": "Maiden", - "Apple": "Apple", - "LostOldMan": "Lost Old Man", - "PipeD": "Down Pipe", - "PipeU": "Up Pipe", - "PipeR": "Right Pipe", - "PipeL": "Left Pipe", - "BeeGood": "Good Bee", - "HylianInscription": "Hylian Inscription", - "PurpleChest": "Thief's chest (not the one that follows you, the one that you grab from the DW smithy house)", - "BombSalesman": "Bomb Salesman", - "Kiki": "Kiki", - "BlindMaiden": "Maiden following you in Blind Dungeon", - "Monologue": "Monologue Testing Sprite", - "FeudingFriends": "Feuding Friends on Death Mountain", - "Whirlpool": "Whirlpool", - "Salesman": "Salesman / chestgame guy / 300 rupee giver guy / Chest game thief", - "Drunk": "Drunk in the inn", - "Vitreous": "Vitreous (Large Eyeball)", - "VitreousSmallEyeball": "Vitreous (Small Eyeball)", - "VitreousLightning": "Vitreous' Lightning", - "Catfish": "Monster in Lake of Ill Omen / Quake Medallion", - "AgahnimTeleporting": "Agahnim teleporting Zelda to dark world", - "Boulders": "Boulders", - "Gibo": "Gibo", - "Thief": "Thief", - "Medusa": "Medusa", - "YomoMedusa": "Yomo Medusa", - "HokkuBokku": "Hokku-Bokku", - "FairyBig": "Big Fairy who heals you", - "Tektite": "Tektite", - "ChainChomp": "Chain Chomp", - "Trinexx": "Trinexx", - "TrinexxHeadFire": "Another part of trinexx", - "TrinexxHeadIce": "Yet another part of trinexx", - "Blind": "Blind The Thief (Boss)", - "Swamola": "Swamola", - "Lynel": "Lynel", - "BunnyBeam": "Bunny Beam", - "FloppingFish": "Flopping Fish", - "Stal": "Stal", - "Landmine": "Landmine", - "DiggingGameNPC": "Digging Game Proprietor", - "Ganon": "Ganon", - "GanonInvisible": "Copy of Ganon, except invincible?", - "Heart": "Heart", - "RupeeGreen": "Green Rupee", - "RupeeBlue": "Blue Rupee", - "RupeeRed": "Red Rupee", - "BombRefill1": "Bomb Refill (1)", - "BombRefill4": "Bomb Refill (4)", - "BombRefill8": "Bomb Refill (8)", - "MagicRefillSmall": "Small Magic Refill", - "MagicRefillFull": "Full Magic Refill", - "ArrowRefill5": "Arrow Refill (5)", - "ArrowRefill10": "Arrow Refill (10)", - "Fairy": "Fairy", - "Key": "Key", - "BigKey": "Big Key", - "Shield": "Shield", - "Mushroom": "Mushroom", - "FakeMasterSword": "Fake Master Sword", - "MagicShopDude": "Magic Shop dude / His items, including the magic powder", - "HeartContainer": "Heart Container", - "HeartPiece": "Heart Piece", - "Bush": "Bushes", - "SomariaPlatform": "Cane Of Somaria Platform", - "Mantle": "Mantle", - "SomariaPlatform1": "Cane of Somaria Platform (Unused)", - "SomariaPlatform2": "Cane of Somaria Platform (Unused)", - "SomariaPlatform3": "Cane of Somaria Platform (Unused)", - "MedallionTablet": "Medallion Tablet" - } - }, - "es": { - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Seleccionar plantilla", - "customize": "Customizar", - "options": { - "default": "Por Defecto", - "beginner": "Principiante", - "veetorp": "Glitches de Superfície (el favorito de Veetorp)", - "crosskeys": "Crosskeys", - "quick": "Súper Rápido", - "nightmare": "Pesadilla", - "tournament": "Torneo", - "custom": "Personalizado" - } - }, - "placement": { - "title": "Colocación de Objetos" - }, - "item_placement": { - "title": "Colocación de Objetos", - "options": { - "basic": "Básica", - "advanced": "Avanzada" - } - }, - "dungeon_items": { - "title": "Objetos de Mazmorras", - "options": { - "standard": "Normal", - "mc": "Mapas/Brújulas", - "mcs": "Mapas/Brújulas/Llaves pequeñas", - "full": "Keysanity" - } - }, - "accessibility": { - "title": "Accesibilidad", - "options": { - "items": "100% inventario", - "locations": "100% localizaciones", - "none": "Completable" - } - }, - "glitches_required": { - "title": "Glitches Requeridos", - "options": { - "none": "Ninguno", - "overworld_glitches": "Glitches de la Superfície", - "major_glitches": "Glitches Mayores", - "no_logic": "Sin lógica" - }, - "glitch_warning": "Esta Lógica require conocimiento de Glithes Mayores**" - }, - "goal": { - "title": "Objetivo", - "options": { - "ganon": "Derrotar a Ganon", - "fast_ganon": "Ganon Rápido", - "dungeons": "Todas las mazmorras", - "pedestal": "Pedestal de la Espada Maestra", - "triforce-hunt": "Piezas de la Trifuerza" - } - }, - "tower_open": { - "title": "Torre Abierta", - "options": { - "0": "0 Cristales", - "1": "1 Cristal", - "2": "2 Cristales", - "3": "3 Cristales", - "4": "4 Cristales", - "5": "5 Cristales", - "6": "6 Cristales", - "7": "7 Cristales", - "random": "Aleatorio" - } - }, - "ganon_open": { - "title": "Ganon Vulnerable", - "options": { - "0": "0 Cristales", - "1": "1 Cristal", - "2": "2 Cristales", - "3": "3 Cristales", - "4": "4 Cristales", - "5": "5 Cristales", - "6": "6 Cristales", - "7": "7 Cristales", - "random": "Aleatorio" - } - }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "Estado del mundo", - "options": { - "standard": "Estándar", - "open": "Abierto", - "inverted": "Inverso", - "retro": "Retro" - } - }, - "entrance_shuffle": { - "title": "Randomizer de entradas", - "options": { - "none": "Ninguno", - "simple": "Simple", - "restricted": "Restringido", - "full": "Completo", - "crossed": "Cruzado", - "insanity": "Locura" - } - }, - "boss_shuffle": { - "title": "Randomizer de Jefes", - "options": { - "none": "Ninguno", - "simple": "Simple", - "full": "Completo", - "random": "Aleatorio" - } - }, - "enemy_shuffle": { - "title": "Randomizer de Enemigos", - "options": { - "none": "Ninguno", - "shuffled": "Barajado", - "random": "Aleatorio" - } - }, - "hints": { - "title": "Pistas", - "options": { - "on": "On", - "off": "Off" - } - }, - "weapons": { - "title": "Espadas", - "options": { - "randomized": "Randomizadas", - "assured": "Aseguradas", - "vanilla": "Vanilla", - "swordless": "Sin Espadas" - } - }, - "item_pool": { - "title": "Reserva de Objetos", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Esta opción está hecha para jugarse con la extensión de Twitch de Crowd Control. Para saber más: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Funcionalidad de Objetos", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto" - } - }, - "enemy_damage": { - "title": "Daño de Enemigos", - "options": { - "default": "Por Defecto", - "shuffled": "Barajado", - "random": "Aleatorio" - } - }, - "enemy_health": { - "title": "Vida de Enemigos", - "options": { - "default": "Por Defecto", - "easy": "Fácil", - "hard": "Difícil", - "expert": "Experto" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Solo en Generar" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "race_warning": "sin spoilers", - "spoiler_race": "Generar ROM para carreras (con spoilers)", - "casual": "Generar ROM", - "back": "Cambiar ajustes", - "regenerate": "Generar otra vez", - "regenerate_tooltip": "Generar otra partida con las mismas opciones", - "generating": "Generando..." - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - }, - "variation": { - "title": "Variación" - }, - "difficulty": { - "title": "Dificultad", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "insane": "Locura", - "crowdControl": "Crowd Control" - } - } - }, - "customizer": { - "settings": { - "timers": { - "off": "Sin temporizador", - "stopwatch": "Cronómetro", - "countdown-ohko": "Cuenta atrás (muerte súbita)", - "countdown-continue": "Cuenta atrás (continua)", - "countdown-stop": "Cuenta atrás (para)" - }, - "dungeon_count": { - "off": "Desactivado", - "on": "Siempre visible", - "pickup": "Visible con brújula" - } - }, - "glitches": { - "canBombJump": { - "title": "Salto Bomba", - "description": "Podría ser necesario tener que hacer Saltos Bomba para atravesar agujeros." - }, - "canBootsClip": { - "title": "Clips de Botas", - "description": "Cuando se tengan las botas, podría ser necesario hacer clips a través de paredes de la superfície." - }, - "canBunnyRevive": { - "title": "Reanimación como Conejo", - "description": "Podría ser necesario ir a algún sitio como conejo y abusar de morir o revivir con hadas para ser Link." - }, - "canBunnySurf": { - "title": "Surf como Conejo", - "description": "Podría ser necesario andar sobre el agua en estado de conejo." - }, - "canDungeonRevive": { - "title": "Reanimación en Mazmorras", - "description": "Podría ser necesario revivir como conejo en una mazmorra para conseguir objetos como Link." - }, - "canFakeFlipper": { - "title": "Aletas Falsas", - "description": "Podría ser necesario usar el glitch de las Aletas Falsas para conseguir objetos." - }, - "canMirrorClip": { - "title": "Clips de Espejo", - "description": "Podría ser necesario abusar la animación del espejo para salir del mapa." - }, - "canMirrorWrap": { - "title": "Mirror Wrap", - "description": "Podría ser necesario usar el Espejo para hacer scroll automático a otro sitio." - }, - "canOneFrameClipOW": { - "title": "Clip de un frame (superfície)", - "description": "Créeme, no quieres hacer esto." - }, - "canOneFrameClipUW": { - "title": "One Frame Clip (underworld)", - "description": "Use 1 Frame Movement to clip between rooms of the underworld." - }, - "canOWYBA": { - "title": "YBA (superfície)", - "description": "Podría ser necesario usar botellas en la superfície para teletransportarse a otras localizaciones." - }, - "canSuperBunny": { - "title": "Súper Conejo", - "description": "Podría ser necesario activar el estado de súper conejo para acceder algunas localizaciones." - }, - "canSuperSpeed": { - "title": "Súper Velocidad", - "description": "Podría ser necesario hacer clips con súper velocidad a través de esquinas de la superfície." - }, - "canWaterFairyRevive": { - "title": "Reanimación en el Agua con Hadas", - "description": "Este setup es estúpido y requiere un montón de objetos." - }, - "canWaterWalk": { - "title": "Andar por el Agua", - "description": "Podría ser necesario utilizar las Botas para andar sobre el agua." - }, - "noLogic": { - "title": "Desactivar todas las comprobaciones de lógica", - "description": "Cuando esto está activado, todas las garantías desaparecen, y nada de lo que hay aquí importa." - } - } - }, - "item": { - "Random": "Aleatorio", - "BottleWithRandom": "Botella (aleatoria)", - "Nothing": "Nada", - "UncleSword": "Espada Progresiva", - "L1Sword": "Espada Normal", - "L1SwordAndShield": "Espada y Escudo", - "L2Sword": "Espada Maestra", - "MasterSword": "Espada Maestra", - "L3Sword": "Espada Templada", - "L4Sword": "Espada Dorada", - "BlueShield": "Escudo Pequeño", - "RedShield": "Escudo Rojo", - "MirrorShield": "Escudo Espejo", - "FireRod": "Cetro de Fuego", - "IceRod": "Cetro de Hielo", - "Hammer": "Martillo", - "Hookshot": "Gancho", - "Bow": "Arco", - "Boomerang": "Bumerán Azul", - "Powder": "Polvos Mágicos", - "Bee": "Abeja", - "Bombos": "Bombos", - "Ether": "Ether", - "Quake": "Quake", - "Lamp": "Lámpara", - "Shovel": "Pala", - "OcarinaInactive": "Flauta", - "CaneOfSomaria": "Vara de Somaria", - "Bottle": "Botella (vacía)", - "PieceOfHeart": "Pieza de Corazón", - "CaneOfByrna": "Vara de Byrna", - "Cape": "Capa Mágica", - "MagicMirror": "Espejo Mágico", - "PowerGlove": "Guante de Poder", - "TitansMitt": "Guante Titán", - "BookOfMudora": "Libro de Mudora", - "Flippers": "Aletas", - "MoonPearl": "Perla Lunar", - "BugCatchingNet": "Cazamariposas", - "BlueMail": "Malla Azul", - "RedMail": "Malla Roja", - "Key": "Llave", - "Compass": "Brújula", - "HeartContainerNoAnimation": "Contenedor de Corazón (sin animación)", - "Bomb": "Bomba", - "ThreeBombs": "Tres Bombas", - "Mushroom": "Seta", - "RedBoomerang": "Bumerán Mágico", - "BottleWithRedPotion": "Botella (Poción Roja)", - "BottleWithGreenPotion": "Botella (Poción Verde)", - "BottleWithBluePotion": "Botella (Poción Azul)", - "RedPotion": "Poción Roja", - "GreenPotion": "Poción Verde", - "BluePotion": "Poción Azul", - "TenBombs": "Diez Bombas", - "BigKey": "Llave Grande", - "Map": "Mapa de la Mazmorra", - "OneRupee": "Una Rupia", - "FiveRupees": "Cinco Rupias", - "TwentyRupees": "Veinte Rupias", - "PendantOfCourage": "Colgante del Valor", - "PendantOfWisdom": "Colgante de la Sabiduría", - "PendantOfPower": "Colgante del Poder", - "BowAndArrows": "Arco y Flechas", - "BowAndSilverArrows": "Arco y Flechas de Plata", - "BottleWithBee": "Botella (Abeja)", - "BottleWithFairy": "Botella (Hada)", - "BossHeartContainer": "Contenedor de Corazón", - "HeartContainer": "Contenedor de Corazón del Santuario", - "OneHundredRupees": "Cien Rupias", - "FiftyRupees": "Cincuenta Rupias", - "Heart": "Corazón Pequeño", - "Arrow": "Una Flecha", - "ShopArrow": "Arrows", - "TenArrows": "Dies Flechas", - "SmallMagic": "Magia Pequeña", - "ThreeHundredRupees": "Trescientas Rupias", - "TwentyRupees2": "Veinte Rupias", - "BottleWithGoldBee": "Botella (Abeja Dorada)", - "OcarinaActive": "Flauta (activada)", - "PegasusBoots": "Botas de Pegaso", - "BombUpgrade5": "Mejora de Bombas (+5)", - "BombUpgrade10": "Mejora de Bombas (+10)", - "BombUpgrade50": "Mejora de Bombas (+50)", - "ArrowUpgrade5": "Mejora de Flechas (+5)", - "ArrowUpgrade10": "Mejora de Flechas (+10)", - "ArrowUpgrade70": "Mejora de Flechas (+70)", - "HalfMagic": "Media Magia", - "QuarterMagic": "Cuarto de Magia", - "Programmable1": "Programable 1", - "Programmable2": "Programable 2", - "Programmable3": "Programable 3", - "SilverArrowUpgrade": "Mejora de Flechas de Plata", - "Rupoor": "Rupobre", - "RedClock": "Reloj Rojo", - "BlueClock": "Reloj Azul", - "GreenClock": "Reloj Verde", - "ProgressiveSword": "Espada Progresiva", - "ProgressiveShield": "Escudo Progresivo", - "ProgressiveArmor": "Armadura Progresiva", - "ProgressiveGlove": "Guante Progresivo", - "singleRNG": "Objeto aleatorio Único", - "multiRNG": "Objeto aleatorio No Único", - "ProgressiveBow": "Arco Progresivo", - "Triforce": "Trifuerza", - "PowerStar": "Estrella de Poder", - "TriforcePiece": "Pieza de la Trifuerza", - "MapLW": "Mapa del Mundo de la Luz", - "MapDW": "Mapa del Mundo Oscuro", - "MapA2": "Mapa de la Torre de Ganon", - "MapD7": "Mapa de Roca Tortuga", - "MapD4": "Mapa de Cueva de los Bandidos", - "MapP3": "Mapa de la Torre de Hera", - "MapD5": "Mapa del Palacio de Hielo", - "MapD3": "Mapa de Bosque de Osamentas", - "MapD6": "Mapa de Gruta de las Marismas", - "MapD1": "Mapa del Palacio Oscuro", - "MapD2": "Mapa de las Ruinas del Pantano", - "MapA1": "Mapa de la Torre de Agahnim", - "MapP2": "Mapa del Palacio del Desierto", - "MapP1": "Mapa del Palacio del Este", - "MapH1": "Mapa del Castillo de Hyrule", - "MapH2": "Mapa de las Cloacas", - "CompassA2": "Brújula de la Torre de Ganon", - "CompassD7": "Brújula de Roca Tortuga", - "CompassD4": "Brújula de Cueva de los Bandidos", - "CompassP3": "Brújula de la Torre de Hera", - "CompassD5": "Brújula del Palacio de Hielo", - "CompassD3": "Brújula de Bosque de Osamentas", - "CompassD6": "Brújula de Gruta de las Marismas", - "CompassD1": "Brújula del Palacio Oscuro", - "CompassD2": "Brújula de las Ruinas del Pantano", - "CompassA1": "Brújula de la Torre de Agahnim", - "CompassP2": "Brújula del Palacio del Desierto", - "CompassP1": "Brújula del Palacio del Este", - "CompassH1": "Brújula del Castillo de Hyrule", - "CompassH2": "Brújula de las Cloacas", - "BigKeyA2": "Llave Grande de la Torre de Ganon", - "BigKeyD7": "Llave Grande de Roca Tortuga", - "BigKeyD4": "Llave Grande de Cueva de los Bandidos", - "BigKeyP3": "Llave Grande de la Torre de Hera", - "BigKeyD5": "Llave Grande del Palacio de Hielo", - "BigKeyD3": "Llave Grande de Bosque de Osamentas", - "BigKeyD6": "Llave Grande de Gruta de las Marismas", - "BigKeyD1": "Llave Grande del Palacio Oscuro", - "BigKeyD2": "Llave Grande de las Ruinas del Pantano", - "BigKeyA1": "Llave Grande de la Torre de Agahnim", - "BigKeyP2": "Llave Grande del Palacio del Desierto", - "BigKeyP1": "Llave Grande del Palacio del Este", - "BigKeyH1": "Llave Grande del Castillo de Hyrule", - "BigKeyH2": "Llave Grande de las Cloacas", - "KeyH2": "Llave de las Cloacas", - "KeyH1": "Llave del Castillo de Hyrule", - "KeyP1": "Llave del Palacio del Este", - "KeyP2": "Llave del Palacio del Desierto", - "KeyA1": "Llave de la Torre de Agahnim", - "KeyD2": "Llave de las Ruinas del Pantano", - "KeyD1": "Llave del Palacio Oscuro", - "KeyD6": "Llave de Gruta de las Marismas", - "KeyD3": "Llave de Bosque de Osamentas", - "KeyD5": "Llave del Palacio de Hielo", - "KeyP3": "Llave de la Torre de Hera", - "KeyD4": "Llave de Cueva de los Bandidos", - "KeyD7": "Llave de Roca Tortuga", - "KeyA2": "Llave de la Torre de Ganon", - "KeyGK": "Llave Genérica", - "ShopKey": "Key", - "Crystal1": "Cristal 1", - "Crystal2": "Cristal 2", - "Crystal3": "Cristal 3", - "Crystal4": "Cristal 4", - "Crystal5": "Cristal 5", - "Crystal6": "Cristal 6", - "Crystal7": "Cristal 7", - "RescueZelda": "Rescata a Zelda", - "DefeatAgahnim": "Derrota a Agahnim", - "BigRedBomb": "Bomba Grande", - "DefeatAgahnim2": "Derrota a Agahnim 2", - "DefeatGanon": "Derrota a Ganon", - "ChocoboEgg": "Huevo de Chocobo", - "NoSlipBoots": "Botas antideslizantes", - "WinterCoat": "Abrigo de Invierno", - "Duck": "Pato", - "Reindeer1": "Vondín", - "Reindeer2": "Danzarín", - "Reindeer3": "Chiqui", - "Reindeer4": "Juguetón", - "Reindeer5": "Cometa", - "Reindeer6": "Cupido", - "Reindeer7": "Trueno", - "Reindeer8": "Relámpago", - "Gift1": "Regalo 1", - "Gift2": "Regalo 2", - "Gift3": "Regalo 3", - "Gift4": "Regalo 4", - "Gift5": "Regalo 5", - "Gift6": "Regalo 6", - "Gift7": "Regalo 7", - "Coal1": "Carbón", - "Coal2": "Carbón", - "GoldenTicket": "Golden Ticket", - "Armos Knights": "Armos Max", - "Lanmolas": "Lanmolas", - "Moldorm": "Moldorm", - "Helmasaur King": "Rey Yelmasaurio", - "Arrghus": "Arghus", - "Mothula": "Polillántula", - "Blind": "Cegatox", - "Kholdstare": "Heladonte", - "Vitreous": "Vitreus", - "Trinexx": "Trínex", - "Agahnim": "Agahnim", - "Agahnim 2": "Agahnim 2", - "Ganon": "Ganon" - }, - "rom": { - "loader": { - "title": "Empezar a Jugar", - "file_select": "Selecciona archivo ROM", - "content": "
    1. Selecciona tu archivo ROM y cárgalo en tu navegador (Por favor, usa una ROM Zelda no Densetsu: Kamigami no Triforce v1.0 con extensión .smc o .sfc)
    2. Selecciona las Opciones de Juego para cómo quieres que tu juego sea randomizado
    3. Haz click en Generar ROM para carreras
    4. Guarda tu ROM y ponte a jugar
    " - }, - "info": { - "spoilerwarning": "ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.", - "mystery": "Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!", - "logic": "Glitches Requeridos", - "accessibility": "Accesibilidad", - "build": "Build de la ROM", - "difficulty": "Dificultad", - "variation": "Variación", - "shuffle": "Randomizer de entradas", - "mode": "Estado del mundo", - "weapons": "Espadas", - "goal": "Objetivo", - "permalink": "Enlace permanente", - "special": "Especial", - "notes": "Notas", - "generated": "Creada" - }, - "settings": { - "heart_speed": "Velocidad de Corazones", - "heart_speeds": { - "off": "Desactivado", - "double": "Velocidad Doble", - "normal": "Velocidad Normal", - "half": "Media Velocidad", - "quarter": "Cuarto de Velocidad" - }, - "menu_speed": "Velocidad de Menú", - "menu_speeds": { - "instant": "Instantáneo", - "fast": "Rápido", - "normal": "Normal", - "slow": "Lento" - }, - "heart_color": "Color de Corazones", - "heart_colors": { - "blue": "Azul", - "green": "Verde", - "red": "Rojo", - "yellow": "Amarillo" - }, - "play_as": "Jugar Como", - "sprite_file_select": "Selecciona archivo .zspr", - "music": "Música de fondo", - "music_info": "(poner en \"No\" para soporte con MSU-1)", - "quickswap": "Cambio Rápido de Objetos", - "palette_shuffle": "Paletas aleatorias", - "race_warning": "No funciona en ROMs para carreras" - } - }, - "entrance": { - "title": "Randomizer de Entradas", - "switch": { - "item": "Cambiar a randomizer de objetos" - }, - "rom": { - "options": "Opciones de ROM" - }, - "difficulty": { - "title": "Dificultad", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "insane": "Locura" - } - }, - "goal": { - "title": "Objetivo", - "options": { - "ganon": "Derrotar a Ganon", - "crystals": "Cristales", - "dungeons": "Todas las mazmorras", - "pedestal": "Pedestal de la Espada Maestra", - "triforcehunt": "Piezas de la Trifuerza" - } - }, - "logic": { - "title": "Lógica", - "options": { - "NoGlitches": "Sin Glitches" - } - }, - "mode": { - "title": "Tipo", - "options": { - "swordless": "Sin espadas", - "open": "Abierto" - } - }, - "shuffle": { - "title": "Orden", - "options": { - "simple": "Simple", - "restricted": "Restringido", - "full": "Completo", - "crossed": "Cruzado", - "insanity": "Locura" - } - }, - "variation": { - "title": "Variación", - "options": { - "none": "Ninguna", - "timed-race": "Carrera cronometrada", - "timed-ohko": "Muerte Súbita cronometrada", - "ohko": "Muerte Súbita", - "triforce-hunt": "Caza de la Trifuerza", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "spoiler_race": "Generar ROM para carreras", - "casual": "Generar ROM" - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - } - }, - "enemizer": { - "title": "Randomizer de enemigos (Enemizer)", - "enable": "Activar Enemizer", - "disable": "Desactivar Enemizer", - "enemy_health": { - "title": "Vida de enemigos", - "options": [ - "Normal", - "Fácil (1-4 hp)", - "Medio (2-15 hp)", - "Difícil (2-30 hp)", - "Locura (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Daño de enemigos", - "options": { - "off": "Normal", - "shuffle": "Aleatorio", - "chaos": "Caos" - } - }, - "bosses": { - "title": "Jefes", - "options": { - "off": "Normal", - "basic": "Básico", - "normal": "Normal", - "chaos": "Caos" - } - }, - "palette_shuffle": "Paleta aleatoria", - "pot_shuffle": "Vasijas aleatorias", - "enemy_shuffle": "Enemigos aleatorios" - }, - "error": { - "title": "Error", - "429": "Aunque apreciamos que quieras generar un montón de partidas, otras personas quieren hacerlo también. Por favor, vuelve más tarde si quieres generar más.", - "failed_generation": "Error creando la semilla :(", - "bad_file": "Archivo no reconocido", - "quota_exceeded_error": "Has sobrepasado tu cuota de almacenamiento local." - } - }, - "fr": { - "randomizer": { - "title": "Randomiseur", - "preset": { - "title": "Choisissez vos Paramètres", - "customize": "Customisation", - "options": { - "default": "Par défaut", - "beginner": "Débutant", - "veetorp": "OWG (La préférée de Veetorp!)", - "crosskeys": "Clésordre et Entrées", - "quick": "Super Rapide", - "nightmare": "Cauchemars", - "tournament": "Tournoi", - "custom": "Personnalisé" - } - }, - "placement": { - "title": "Placement des objets" - }, - "item_placement": { - "title": "Placement des objets", - "options": { - "basic": "Basique", - "advanced": "Avancé" - } - }, - "dungeon_items": { - "title": "Objets des Donjons", - "options": { - "standard": "Standard", - "mc": "Cartes et Boussoles", - "mcs": "Cartes, Boussoles et Petites Clefs", - "full": "Clésordre" - } - }, - "accessibility": { - "title": "Accessibilité", - "options": { - "items": "100% Inventaire", - "locations": "100% Accessible", - "none": "Achevable" - } - }, - "glitches_required": { - "title": "Glitchs requis", - "options": { - "none": "Aucun", - "overworld_glitches": "Glitchs Monde Extérieur", - "major_glitches": "Glitchs Majeurs", - "no_logic": "Sans Logique" - }, - "glitch_warning": "Cette logique nécessite la connaissance de glitchs majeurs**" - }, - "goal": { - "title": "Objectif", - "options": { - "ganon": "Vaincre Ganon", - "fast_ganon": "Rapide Ganon", - "dungeons": "Tous les Donjons", - "pedestal": "Piédestal de la Master Sword", - "triforce-hunt": "Morceaux de Triforce " - } - }, - "tower_open": { - "title": "Ouvrir la Tour", - "options": { - "0": "0 Cristaux", - "1": "1 Cristal", - "2": "2 Cristaux", - "3": "3 Cristaux", - "4": "4 Cristaux", - "5": "5 Cristaux", - "6": "6 Cristaux", - "7": "7 Cristaux", - "random": "Aléatoire" - } - }, - "ganon_open": { - "title": "Vulnérabilité de Ganon", - "options": { - "0": "0 Cristaux", - "1": "1 Cristal", - "2": "2 Cristaux", - "3": "3 Cristaux", - "4": "4 Cristaux", - "5": "5 Cristaux", - "6": "6 Cristaux", - "7": "7 Cristaux", - "random": "Aléatoire" - } - }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "État du Monde", - "options": { - "standard": "Standard", - "open": "Ouvert", - "inverted": "Inversé", - "retro": "Rétro" - } - }, - "entrance_shuffle": { - "title": "Mélangeur d'Entrées", - "options": { - "none": "Désactivé", - "simple": "Simple", - "restricted": "Restreint", - "full": "Complet", - "crossed": "Croisé", - "insanity": "Insensé" - } - }, - "boss_shuffle": { - "title": "Mélangeur de Boss", - "options": { - "none": "Désactivé", - "simple": "Simple", - "full": "Complet", - "random": "Aléatoire" - } - }, - "enemy_shuffle": { - "title": "Mélangeur d'Ennemis", - "options": { - "none": "Désactivé", - "shuffled": "Intervertis", - "random": "Aléatoires" - } - }, - "hints": { - "title": "Indices", - "options": { - "on": "Activés", - "off": "Désactivés" - } - }, - "weapons": { - "title": "Épées", - "options": { - "randomized": "Randomisées", - "assured": "Assurée", - "vanilla": "Originales", - "swordless": "Sans Épée" - } - }, - "item_pool": { - "title": "Objets disponibles", - "options": { - "easy": "Facile", - "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l'extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Fonctionnalité des Objets", - "options": { - "easy": "Facile", - "normal": "Normal", - "hard": "Difficile", - "expert": "Expert" - } - }, - "enemy_damage": { - "title": "Dégâts des Ennemis", - "options": { - "default": "Par défaut", - "shuffled": "Intervertis", - "random": "Aléatoire" - } - }, - "enemy_health": { - "title": "Vie des Ennemis", - "options": { - "default": "Par défaut", - "easy": "Facile", - "hard": "Difficile", - "expert": "Expert" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Desactivé", - "on": "Activé", - "generate": "Seulement sur Generate" - } - }, - "generate": { - "race": "Générer une ROM de Course", - "race_warning": "Les spoilers ne seront jamais disponibles pour cette option.", - "spoiler_race": "Générer une ROM avec Spoiler", - "casual": "Générer une ROM", - "back": "Changer les Paramètres", - "regenerate": "Générer à nouveau", - "regenerate_tooltip": "Générer à nouveau avec les mêmes paramètres", - "generating": "Génération..." - }, - "details": { - "title": "Détails du jeu", - "save_spoiler": "Enregistrer la spoiler", - "save_rom": "Sauvegarder la ROM" - }, - "variation": { - "title": "Variation" - }, - "difficulty": { - "title": "Difficulté", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", - "insane": "Insensé", - "crowdControl": "Crowd Control" - } - } - }, - "customizer": { - "settings": { - "timers": { - "off": "Désactivé", - "stopwatch": "Contre-la-montre", - "countdown-ohko": "Compte à rebours OHKO", - "countdown-continue": "Compte à rebours", - "countdown-stop": "Compte à rebours Fin du jeu" - }, - "dungeon_count": { - "off": "Désactivé", - "on": "Toujours activé", - "pickup": "Avec Boussole" - } - }, - "glitches": { - "canBombJump": { - "title": "Saut à la Bombe", - "description": "Il peut être requis de sauter par dessus un gouffre avec une bombe." - }, - "canBootsClip": { - "title": "Clip aux Bottes", - "description": "Avec les bottes, il peut être requis de passer à travers de murs, dans le monde extérieur." - }, - "canBunnyRevive": { - "title": "Résurrection du Lapin", - "description": "Il peut être requis de se rendre quelque part en forme de Lapin, et de mourir/user une fée pour redevenir Link." - }, - "canBunnySurf": { - "title": "Lapin Surfeur", - "description": "Il peut être requis de marcher sur l'eau en tant que Lapin." - }, - "canDungeonRevive": { - "title": "Résurrection en Donjon", - "description": "Il peut être requis d'entrer dans un donjon en Lapin, et de mourir, afin de redevenir Link pour collecter des objets." - }, - "canFakeFlipper": { - "title": "Fausses Palmes", - "description": "Il peut être requis de faire la technique des Fausses Palmes afin de récupérer des objets." - }, - "canMirrorClip": { - "title": "Clip au Miroir", - "description": "Il peut être requis d'utiliser des rebonds avec le Miroir pour se transporter hors des limites du jeu." - }, - "canMirrorWrap": { - "title": "Wrap au Miroir", - "description": "Il peut être requis d\\utiliser le Miroir afin de défiler l'écran à un endroit normalement inaccessible." - }, - "canOneFrameClipOW": { - "title": "Clip d\\Une Image (Monde extérieur)", - "description": "Vous ne voulez pas faire ça. Croyez-moi.." - }, - "canOneFrameClipUW": { - "title": "One Frame Clip (underworld)", - "description": "Use 1 Frame Movement to clip between rooms of the underworld." - }, - "canOWYBA": { - "title": "YBA (Monde extérieur)", - "description": "Il peut être requis d'utiliser des Bocaux dans le monde extérieur afin de se rendre à un endroit normalement inaccessible." - }, - "canSuperBunny": { - "title": "Super Lapin", - "description": "Il peut être requis d'activer la technique du Super Lapin pour accéder à certains endroits et objets." - }, - "canSuperSpeed": { - "title": "Super Vitesse", - "description": "Il peut être requis d'utiliser la Super Vitesse afin de passer à travers une barrière dans le monde extérieur." - }, - "canWaterFairyRevive": { - "title": "Résurrection par une Fée dans l'Eau", - "description": "Cette technique est ridicule et requiert un grand nombre d'objets." - }, - "canWaterWalk": { - "title": "Marche sur l'Eau", - "description": "Il peut être requis d'utiliser les Bottes pour marcher sur l\\eau." - }, - "noLogic": { - "title": "Désactiver la Logique", - "description": "Quand ceci est activé, les dés en sont jetés, et rien d'autre n'importe.." - } - } - }, - "item": { - "Random": "Random", - "BottleWithRandom": "Bottle (Random)", - "Nothing": "Rien", - "UncleSword": "Épée progressive", - "L1Sword": "Épée de combat", - "L1SwordAndShield": "Épée et Bouclier de combat", - "L2Sword": "Master Sword", - "MasterSword": "Master Sword", - "L3Sword": "Épée trempée", - "L4Sword": "Épée d’or", - "BlueShield": "Bouclier de combat", - "RedShield": "Bouclier de feu", - "MirrorShield": "Bouclier miroir", - "FireRod": "Baguette de Feu", - "IceRod": "Baguette de Glace", - "Hammer": "Marteau", - "Hookshot": "Grappin", - "Bow": "Arc", - "Boomerang": "Boomerang Bleu", - "Powder": "Poudre magique", - "Bee": "Abeille", - "Bombos": "Bombos", - "Ether": "Ether", - "Quake": "Quake", - "Lamp": "Lampe", - "Shovel": "Pelle", - "OcarinaInactive": "Flûte", - "CaneOfSomaria": "Canne De Somaria", - "Bottle": "Flacon (vide)", - "PieceOfHeart": "Quart de Coeur", - "CaneOfByrna": "Canne De Byrna", - "Cape": "Cape Magique", - "MagicMirror": "Miroir Magique", - "PowerGlove": "Gants de puissance", - "TitansMitt": "Gants des Titans", - "BookOfMudora": "Livre De Mudora", - "Flippers": "Palmes", - "MoonPearl": "Perle de lune", - "BugCatchingNet": "Filet à papillon", - "BlueMail": "Tunique bleue", - "RedMail": "Tunique rouge", - "Key": "Clé", - "Compass": "Boussole", - "HeartContainerNoAnimation": "Réceptacle de coeur (pas d’animation)", - "Bomb": "Une Bombe", - "ThreeBombs": "Trois Bombes", - "Mushroom": "Champignon", - "RedBoomerang": "Boomerang magique", - "BottleWithRedPotion": "Flacon (potion rouge)", - "BottleWithGreenPotion": "Flacon (potion verte)", - "BottleWithBluePotion": "Flacon (potion bleue)", - "RedPotion": "Potion Rouge", - "GreenPotion": "Potion Verte", - "BluePotion": "Potion Bleue", - "TenBombs": "Dix Bombes", - "BigKey": "Grande Clé", - "Map": "Carte du Donjon", - "OneRupee": "Un Rubis", - "FiveRupees": "Cinq Rubiss", - "TwentyRupees": "Vingt Rubis", - "PendantOfCourage": "Pendentif du courage", - "PendantOfWisdom": "Pendentif de sagesse", - "PendantOfPower": "Pendentif de puissance", - "BowAndArrows": "Arc et Flèches", - "BowAndSilverArrows": "Arc Et Flèches d’Argent ", - "BottleWithBee": "Flacon (abeille)", - "BottleWithFairy": "Flacon (fée)", - "BossHeartContainer": "Réceptacle de coeur", - "HeartContainer": "Réceptacle de coeur du sanctuaire", - "OneHundredRupees": "Cent Rubis", - "FiftyRupees": "Cinquante Rubis", - "Heart": "Petit coeur", - "Arrow": "La Flèche", - "ShopArrow": "Arrows", - "TenArrows": "Dix Flèches", - "SmallMagic": "Petite magie", - "ThreeHundredRupees": "Trois cent Rubis", - "TwentyRupees2": "Vingt Rubis", - "BottleWithGoldBee": "Flacon (Abeille D’or)", - "OcarinaActive": "Flûte (activée)", - "PegasusBoots": "Bottes Pégase", - "BombUpgrade5": "Extension de Sac de Bombes (+5)", - "BombUpgrade10": "Extension de Sac de Bombes (+10)", - "BombUpgrade50": "Extension de Sac de Bombes (+50)", - "ArrowUpgrade5": "Extension de carquois (+5)", - "ArrowUpgrade10": "Extension de carquois (+10)", - "ArrowUpgrade70": "Extension de carquois (+70)", - "HalfMagic": "Demi-magie", - "QuarterMagic": "Quart de magie", - "Programmable1": "Programmable 1", - "Programmable2": "Programmable 2", - "Programmable3": "Programmable 3", - "SilverArrowUpgrade": "Flèches d’argent", - "Rupoor": "Rupoor", - "RedClock": "Horloge rouge", - "BlueClock": "Horloge bleue", - "GreenClock": "Horloge verte", - "ProgressiveSword": "Épée progressive", - "ProgressiveShield": "Bouclier Progressif", - "ProgressiveArmor": "Armure progressive", - "ProgressiveGlove": "Gant Progressif", - "singleRNG": "Objet RNG unique", - "multiRNG": "Objet RNG non unique", - "ProgressiveBow": "Arc Progressif", - "Triforce": "Triforce", - "PowerStar": "Étoile de puissance", - "TriforcePiece": "Pièce Triforce", - "MapLW": "Carte du monde de la lumière", - "MapDW": "Carte du monde des ténèbres", - "MapA2": "Carte de Ganons Tower", - "MapD7": "Carte de Turtle Rock", - "MapD4": "Carte de Thieves Town", - "MapP3": "Carte de Hera Tower", - "MapD5": "Carte de Ice Palace", - "MapD3": "Carte de Skulls Woods", - "MapD6": "Carte de Misery Mire", - "MapD1": "Carte de Palace of Darkness", - "MapD2": "Carte de Swamp Palace", - "MapA1": "Carte de Agahnim Tower", - "MapP2": "Carte de Desert Palace", - "MapP1": "Carte de Eastern Palace", - "MapH1": "Carte de Hyrule Castle", - "MapH2": "Carte de Sewers", - "CompassA2": "Boussole de Ganons Tower", - "CompassD7": "Boussole de Turtle Rock", - "CompassD4": "Boussole de Thieves Town", - "CompassP3": "Boussole de Hera Tower", - "CompassD5": "Boussole de Ice Palace", - "CompassD3": "Boussole de Skulls Woods", - "CompassD6": "Boussole de Misery Mire", - "CompassD1": "Boussole de Palace of Darkness", - "CompassD2": "Boussole de Swamp Palace", - "CompassA1": "Boussole de Agahnim Tower", - "CompassP2": "Boussole de Desert Palace", - "CompassP1": "Boussole de Eastern Palace", - "CompassH1": "Boussole de Hyrule Castle", - "CompassH2": "Boussole de Sewers", - "BigKeyA2": "Grande Clé de Ganons Tower", - "BigKeyD7": "Grande Clé de Turtle Rock", - "BigKeyD4": "Grande Clé de Thieves Town", - "BigKeyP3": "Grande Clé de Hera Tower", - "BigKeyD5": "Grande Clé de Ice Palace", - "BigKeyD3": "Grande Clé de Skulls Woods", - "BigKeyD6": "Grande Clé de Misery Mire", - "BigKeyD1": "Grande Clé de Palace of Darkness", - "BigKeyD2": "Grande Clé de Swamp Palace", - "BigKeyA1": "Grande Clé de Agahnims Tower", - "BigKeyP2": "Grande Clé de Desert Palace", - "BigKeyP1": "Grande Clé de Eastern Palace", - "BigKeyH1": "Grande Clé de Hyrule Castle", - "BigKeyH2": "Grande Clé de Sewers", - "KeyH2": "Clé de Sewers", - "KeyH1": "Clé de Hyrule Castle", - "KeyP1": "Clé de Eastern Palace", - "KeyP2": "Clé de Desert Palace", - "KeyA1": "Clé de Agahnims Tower", - "KeyD2": "Clé de Swamp Palace", - "KeyD1": "Clé de Palace of Darkness", - "KeyD6": "Clé de Misery Mire", - "KeyD3": "Clé de Skulls Woods", - "KeyD5": "Clé de Ice Palace", - "KeyP3": "Clé de Hera Tower", - "KeyD4": "Clé de Thieves Town", - "KeyD7": "Clé de Turtle Rock", - "KeyA2": "Clé de Ganon Tower", - "KeyGK": "Clé générique", - "ShopKey": "Key", - "Crystal1": "Cristal 1", - "Crystal2": "Cristal 2", - "Crystal3": "Cristal 3", - "Crystal4": "Cristal 4", - "Crystal5": "Cristal 5", - "Crystal6": "Cristal 6", - "Crystal7": "Cristal 7", - "RescueZelda": "Sauver Zelda", - "DefeatAgahnim": "Vaincre Agahnim", - "BigRedBomb": "Grosse bombe rouge", - "DefeatAgahnim2": "Vaincre Agahnim 2", - "DefeatGanon": "Vaincre Ganon", - "ChocoboEgg": "Chocobo Egg", - "NoSlipBoots": "Crampons de Glace", - "WinterCoat": "Manteau d’hiver", - "Duck": "Canard", - "Reindeer1": "Fonceur", - "Reindeer2": "Danseur", - "Reindeer3": "Sauteur", - "Reindeer4": "Fripponne", - "Reindeer5": "Comète", - "Reindeer6": "Cupidonne", - "Reindeer7": "Tonnerre", - "Reindeer8": "Éclair", - "Gift1": "Cadeau 1", - "Gift2": "Cadeau 2", - "Gift3": "Cadeau 3", - "Gift4": "Cadeau 4", - "Gift5": "Cadeau 5", - "Gift6": "Cadeau 6", - "Gift7": "Cadeau 7", - "Coal1": "Charbon", - "Coal2": "Charbon", - "GoldenTicket": "Golden Ticket", - "Armos Knights": "Armos Knights", - "Lanmolas": "Lanmolas", - "Moldorm": "Moldorm", - "Helmasaur King": "Helmasaur King", - "Arrghus": "Arrghus", - "Mothula": "Mothula", - "Blind": "Blind", - "Kholdstare": "Kholdstare", - "Vitreous": "Vitreous", - "Trinexx": "Trinexx", - "Agahnim": "Agahnim", - "Agahnim 2": "Agahnim 2", - "Ganon": "Ganon", - "Test": "Testing Item" - }, - "rom": { - "loader": { - "title": "Pour commencer", - "file_select": "Sélectionnez le fichier ROM", - "content": "
    1. Sélectionnez votre fichier ROM et chargez-le dans le navigateur (utilisez une ROM Zelda no Densetsu: Kamigami no Triforce v1.0 avec une extension .smc ou .sfc)
    2. Sélectionnez les Options de Jeu pour déterminer de quelle façon le jeu sera randomisé
    3. Cliquez sur Générer une ROM de Course
    4. Ensuite, sauvegardez votre rom et commencez à jouer
    " - }, - "info": { - "spoilerwarning": "AVERTISSEMENT : La personne qui a généré cette partie a regardé le spoiler log.", - "mystery": "Ceci est une partie mystère. Les paramètres seront à découvrir pendant que vous jouez!", - "logic": "Glitchs requis", - "accessibility": "Accessibilité", - "build": "Création de ROM", - "difficulty": "Difficulté", - "variation": "Variation", - "shuffle": "Mélangeur d'Entrées", - "mode": "État du Monde", - "weapons": "Épées", - "goal": "Objectif", - "permalink": "Lien permanent", - "special": "Spécial", - "notes": "Remarques", - "generated": "Créé" - }, - "settings": { - "heart_speed": "Bip de vie faible", - "heart_speeds": { - "off": "Éteint", - "double": "Vitesse Double", - "normal": "Vitesse Normale", - "half": "Moitié de Vitesse", - "quarter": "Quart de Vitesse" - }, - "menu_speed": "Vitesse du menu", - "menu_speeds": { - "instant": "Immédiat", - "fast": "Rapide", - "normal": "Normal", - "slow": "Lent" - }, - "heart_color": "Couleur des coeurs", - "heart_colors": { - "blue": "Bleu", - "green": "Vert", - "red": "Rouge", - "yellow": "Jaune" - }, - "play_as": "Jouer en tant que", - "sprite_file_select": "Sélectionnez le fichier .zspr", - "music": "Musique de fond", - "music_info": "(définie sur \"Non\" pour le support MSU-1)", - "quickswap": "Changement rapide d’objets", - "palette_shuffle": "Mélange des Couleurs de Palettes", - "race_warning": "Ne fonctionne pas dans les ROMs de course" - } - }, - "entrance": { - "title": "Randomizer de portes", - "switch": { - "item": "Passer au Randomizer d’objets" - }, - "rom": { - "options": "Options de ROM" - }, - "difficulty": { - "title": "Difficulté", - "options": { - "easy": "Facile", - "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", - "insane": "Insensé" - } - }, - "goal": { - "title": "Objectif", - "options": { - "ganon": "Vaincre Ganon", - "crystals": "Cristaux", - "dungeons": "Tous les Donjons", - "pedestal": "Piédestal de la Master Sword", - "triforcehunt": "Pièces de Triforce" - } - }, - "logic": { - "title": "Logique", - "options": { - "NoGlitches": "Sans Glitches" - } - }, - "mode": { - "title": "Réglage", - "options": { - "swordless": "Sans Épée", - "open": "Ouvert" - } - }, - "shuffle": { - "title": "Mélanger", - "options": { - "simple": "Simple", - "restricted": "Restreint", - "full": "Complet", - "crossed": "Croisé", - "insanity": "Insensé" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "Aucun", - "timed-race": "Chronométrée", - "timed-ohko": "Décompte Final", - "ohko": "Zéro Coeurs", - "triforce-hunt": "Chasse aux morceaux de Triforce", - "key-sanity": "Clé-sordre", - "retro": "Rétro" - } - }, - "generate": { - "race": "Générer une ROM de course", - "spoiler_race": "Spoiler de la ROM de Course", - "casual": "Générer une ROM" - }, - "details": { - "title": "Détails du jeu", - "save_spoiler": "Enregistrer le spoiler", - "save_rom": "Sauvegarder la ROM" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Activer l’Ennemiseur", - "disable": "Désactiver l’Ennemiseur", - "enemy_health": { - "title": "Santé Ennemis", - "options": [ - "Ordinaire", - "Facile (1-4 hp)", - "Moyen (2-15 hp)", - "Difficile (2-30 hp)", - "Insensé (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Dégâts des Ennemis", - "options": { - "off": "Ordinaire", - "shuffle": "Mélangé", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Bosses", - "options": { - "off": "Ordinaire", - "basic": "De base", - "normal": "Commun", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Mélange les Palettes", - "pot_shuffle": "Mélange les Pots", - "enemy_shuffle": "Mélanger les Ennemis" - }, - "error": { - "title": "Erreur", - "429": "Bien que nous appréciions que vous souhaitiez générer beaucoup de jeux, d’autres personnes aimeraient également le faire. Veuillez revenir plus tard si vous souhaitez continuer à générer.", - "failed_generation": "Échec de la création de jeu :(", - "bad_file": "Fichier non reconnu", - "quota_exceeded_error": "Vous avez atteint la limite de stockage local." - } - } -} From ee178994a0c5c655f20abca6413f26eb6fdfb0ea Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Sat, 5 Jun 2021 14:50:59 +1000 Subject: [PATCH 35/59] Set escape resources based on starting equipment if Uncle doesn't have a weapon. --- app/Location/Npc/Uncle.php | 57 ------------------------------------ app/World.php | 59 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 57 deletions(-) diff --git a/app/Location/Npc/Uncle.php b/app/Location/Npc/Uncle.php index 0332491d8..675a1221c 100644 --- a/app/Location/Npc/Uncle.php +++ b/app/Location/Npc/Uncle.php @@ -22,64 +22,7 @@ class Uncle extends Location public function writeItem(Rom $rom, Item $item = null) { parent::writeItem($rom, $item); - $item = $this->getItem(); - - $world = $this->region->getWorld(); - - if ($world->config('mode.state') == 'standard') { - if ($item instanceof Item\Bow) { - $rom->setEscapeFills(0b00000001); - $rom->setUncleSpawnRefills(0, 0, 70); - $rom->setZeldaSpawnRefills(0, 0, 10); - $rom->setMantleSpawnRefills(0, 0, 10); - } elseif ($item == Item::get('TenBombs', $world)) { - $rom->setEscapeFills(0b00000010); - $rom->setUncleSpawnRefills(0, 50, 0); - $rom->setZeldaSpawnRefills(0, 3, 0); - $rom->setMantleSpawnRefills(0, 3, 0); - } elseif ( - $item == Item::get('FireRod', $world) - || $item == Item::get('CaneOfSomaria', $world) - || $item == Item::get('CaneOfByrna', $world) - ) { - $rom->setEscapeFills(0b00000100); - $rom->setUncleSpawnRefills(0x80, 0, 0); - $rom->setZeldaSpawnRefills(0x20, 0, 0); - $rom->setMantleSpawnRefills(0x20, 0, 0); - } else { - $rom->setEscapeFills(0b00000000); - $rom->setUncleSpawnRefills(0, 0, 0); - $rom->setZeldaSpawnRefills(0, 0, 0); - $rom->setMantleSpawnRefills(0, 0, 0); - } - - if ($world->config('rom.HardMode') == -1) { - if ($item instanceof Item\Bow) { - $rom->setEscapeAssist(0b00000001); - } elseif ($item == Item::get('TenBombs', $world)) { - $rom->setEscapeAssist(0b00000010); - } elseif ( - $item == Item::get('FireRod', $world) - || $item == Item::get('CaneOfSomaria', $world) - || $item == Item::get('CaneOfByrna', $world) - ) { - $rom->setEscapeAssist(0b00000100); - } else { - $rom->setEscapeAssist(0b00000000); - } - } else { - $rom->setEscapeAssist(0b00000000); - } - } else { - $rom->setEscapeFills(0b00000000); - $rom->setUncleSpawnRefills(0, 0, 0); - $rom->setZeldaSpawnRefills(0, 0, 0); - $rom->setMantleSpawnRefills(0, 0, 0); - $rom->setEscapeAssist(0b00000000); - } - $rom->setCredit('house', $this->getItemCreditsText()); - return $this; } diff --git a/app/World.php b/app/World.php index 29f996193..fbd2fac09 100644 --- a/app/World.php +++ b/app/World.php @@ -1004,6 +1004,10 @@ public function writeToRom(Rom $rom, bool $save = false): Rom }); } } + + if ($this->config('mode.state') == 'standard') { + $this->setEscapeFills($rom); + } $rom->setGoalRequiredCount($this->config('item.Goal.Required', 0) ?: 0); $rom->setGoalIcon($this->config('item.Goal.Icon', 'triforce')); @@ -1186,6 +1190,61 @@ public function writeToRom(Rom $rom, bool $save = false): Rom return $rom; } + + /** + * Set the ammo given for escape, based on available weapons + * + * @param \ALttP\Rom $rom Rom to write data to + * + * @return void + */ + public function setEscapeFills(Rom $rom) { + $uncle_items = new ItemCollection; + $uncle_items->setChecksForWorld($this->id); + $uncle_items = $uncle_items->addItem($this->getLocation("Link's Uncle")->getItem()); + + // Add starting items if uncle doesn't have a weapon. Temporarily disable ignoreCanKillEscapeThings for this check + $ignoreCanKillEscapeThings = $this->config('ignoreCanKillEscapeThings', false); + $this->config['ignoreCanKillEscapeThings'] = false; + if (!$uncle_items->canKillEscapeThings($this)) { + $uncle_items = $uncle_items->merge($this->getPreCollectedItems()); + } + $this->config['ignoreCanKillEscapeThings'] = $ignoreCanKillEscapeThings; + + if ($uncle_items->hasSword() || $uncle_items->has('Hammer')) { + $rom->setEscapeFills(0b00000000); + $rom->setUncleSpawnRefills(0, 0, 0); + $rom->setZeldaSpawnRefills(0, 0, 0); + $rom->setMantleSpawnRefills(0, 0, 0); + } elseif ($uncle_items->has('FireRod') + || $uncle_items->has('CaneOfSomaria') + || $uncle_items->has('CaneOfByrna')) { + $rom->setEscapeFills(0b00000100); + $rom->setUncleSpawnRefills(0x80, 0, 0); + $rom->setZeldaSpawnRefills(0x20, 0, 0); + $rom->setMantleSpawnRefills(0x20, 0, 0); + if ($this->config('rom.HardMode') == -1) { + $rom->setEscapeAssist(0b00000100); + } + } elseif ($uncle_items->canShootArrows($this)) { + $rom->setEscapeFills(0b00000001); + $rom->setUncleSpawnRefills(0, 0, 70); + $rom->setZeldaSpawnRefills(0, 0, 10); + $rom->setMantleSpawnRefills(0, 0, 10); + if ($this->config('rom.HardMode') == -1) { + $rom->setEscapeAssist(0b00000001); + } + } elseif ($uncle_items->has('TenBombs') || $this->config('logic') !== 'None') { + // TenBombs, or give player bombs if uncle was plando'd to not have a weapon. + $rom->setEscapeFills(0b00000010); + $rom->setUncleSpawnRefills(0, 50, 0); + $rom->setZeldaSpawnRefills(0, 3, 0); + $rom->setMantleSpawnRefills(0, 3, 0); + if ($this->config('rom.HardMode') == -1) { + $rom->setEscapeAssist(0b00000010); + } + } + } /** * This is a quick hack to get prizes shuffled, will adjust later when we model sprites. From 57fcba22377baf698f69ba861c2d3affc05af182 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Sat, 5 Jun 2021 15:17:10 +1000 Subject: [PATCH 36/59] Ignore cane of byrna for starting equipment if it isn't in logic to use it as a weapon due to enemy health shuffle. --- app/World.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/World.php b/app/World.php index fbd2fac09..275b39e07 100644 --- a/app/World.php +++ b/app/World.php @@ -1218,7 +1218,7 @@ public function setEscapeFills(Rom $rom) { $rom->setMantleSpawnRefills(0, 0, 0); } elseif ($uncle_items->has('FireRod') || $uncle_items->has('CaneOfSomaria') - || $uncle_items->has('CaneOfByrna')) { + || ($uncle_items->has('CaneOfByrna') && $this->config('enemizer.enemyHealth', 'default') == 'default')) { $rom->setEscapeFills(0b00000100); $rom->setUncleSpawnRefills(0x80, 0, 0); $rom->setZeldaSpawnRefills(0x20, 0, 0); From b1733ff5f364a7cf5ee8585b6f819fc35dd22076 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Sat, 5 Jun 2021 15:21:30 +1000 Subject: [PATCH 37/59] Fix indentation --- app/World.php | 98 +++++++++++++++++++++++++-------------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/app/World.php b/app/World.php index 275b39e07..301e1ec1c 100644 --- a/app/World.php +++ b/app/World.php @@ -274,8 +274,8 @@ public function copy() } foreach ($this->shops as $name => $shop) { $copy->shops[$name] = $shop->copy(); - } - $boss_locations = [ + } + $boss_locations = [ ['Eastern Palace', ''], ['Desert Palace', ''], ['Tower of Hera', ''], @@ -1004,10 +1004,10 @@ public function writeToRom(Rom $rom, bool $save = false): Rom }); } } - - if ($this->config('mode.state') == 'standard') { - $this->setEscapeFills($rom); - } + + if ($this->config('mode.state') == 'standard') { + $this->setEscapeFills($rom); + } $rom->setGoalRequiredCount($this->config('item.Goal.Required', 0) ?: 0); $rom->setGoalIcon($this->config('item.Goal.Icon', 'triforce')); @@ -1190,7 +1190,7 @@ public function writeToRom(Rom $rom, bool $save = false): Rom return $rom; } - + /** * Set the ammo given for escape, based on available weapons * @@ -1200,51 +1200,51 @@ public function writeToRom(Rom $rom, bool $save = false): Rom */ public function setEscapeFills(Rom $rom) { $uncle_items = new ItemCollection; - $uncle_items->setChecksForWorld($this->id); - $uncle_items = $uncle_items->addItem($this->getLocation("Link's Uncle")->getItem()); - - // Add starting items if uncle doesn't have a weapon. Temporarily disable ignoreCanKillEscapeThings for this check - $ignoreCanKillEscapeThings = $this->config('ignoreCanKillEscapeThings', false); - $this->config['ignoreCanKillEscapeThings'] = false; - if (!$uncle_items->canKillEscapeThings($this)) { - $uncle_items = $uncle_items->merge($this->getPreCollectedItems()); - } - $this->config['ignoreCanKillEscapeThings'] = $ignoreCanKillEscapeThings; - - if ($uncle_items->hasSword() || $uncle_items->has('Hammer')) { - $rom->setEscapeFills(0b00000000); - $rom->setUncleSpawnRefills(0, 0, 0); - $rom->setZeldaSpawnRefills(0, 0, 0); - $rom->setMantleSpawnRefills(0, 0, 0); - } elseif ($uncle_items->has('FireRod') - || $uncle_items->has('CaneOfSomaria') - || ($uncle_items->has('CaneOfByrna') && $this->config('enemizer.enemyHealth', 'default') == 'default')) { - $rom->setEscapeFills(0b00000100); - $rom->setUncleSpawnRefills(0x80, 0, 0); - $rom->setZeldaSpawnRefills(0x20, 0, 0); - $rom->setMantleSpawnRefills(0x20, 0, 0); + $uncle_items->setChecksForWorld($this->id); + $uncle_items = $uncle_items->addItem($this->getLocation("Link's Uncle")->getItem()); + + // Add starting items if uncle doesn't have a weapon. Temporarily disable ignoreCanKillEscapeThings for this check + $ignoreCanKillEscapeThings = $this->config('ignoreCanKillEscapeThings', false); + $this->config['ignoreCanKillEscapeThings'] = false; + if (!$uncle_items->canKillEscapeThings($this)) { + $uncle_items = $uncle_items->merge($this->getPreCollectedItems()); + } + $this->config['ignoreCanKillEscapeThings'] = $ignoreCanKillEscapeThings; + + if ($uncle_items->hasSword() || $uncle_items->has('Hammer')) { + $rom->setEscapeFills(0b00000000); + $rom->setUncleSpawnRefills(0, 0, 0); + $rom->setZeldaSpawnRefills(0, 0, 0); + $rom->setMantleSpawnRefills(0, 0, 0); + } elseif ($uncle_items->has('FireRod') + || $uncle_items->has('CaneOfSomaria') + || ($uncle_items->has('CaneOfByrna') && $this->config('enemizer.enemyHealth', 'default') == 'default')) { + $rom->setEscapeFills(0b00000100); + $rom->setUncleSpawnRefills(0x80, 0, 0); + $rom->setZeldaSpawnRefills(0x20, 0, 0); + $rom->setMantleSpawnRefills(0x20, 0, 0); if ($this->config('rom.HardMode') == -1) { - $rom->setEscapeAssist(0b00000100); - } - } elseif ($uncle_items->canShootArrows($this)) { - $rom->setEscapeFills(0b00000001); - $rom->setUncleSpawnRefills(0, 0, 70); - $rom->setZeldaSpawnRefills(0, 0, 10); - $rom->setMantleSpawnRefills(0, 0, 10); + $rom->setEscapeAssist(0b00000100); + } + } elseif ($uncle_items->canShootArrows($this)) { + $rom->setEscapeFills(0b00000001); + $rom->setUncleSpawnRefills(0, 0, 70); + $rom->setZeldaSpawnRefills(0, 0, 10); + $rom->setMantleSpawnRefills(0, 0, 10); if ($this->config('rom.HardMode') == -1) { - $rom->setEscapeAssist(0b00000001); - } - } elseif ($uncle_items->has('TenBombs') || $this->config('logic') !== 'None') { - // TenBombs, or give player bombs if uncle was plando'd to not have a weapon. - $rom->setEscapeFills(0b00000010); - $rom->setUncleSpawnRefills(0, 50, 0); - $rom->setZeldaSpawnRefills(0, 3, 0); - $rom->setMantleSpawnRefills(0, 3, 0); + $rom->setEscapeAssist(0b00000001); + } + } elseif ($uncle_items->has('TenBombs') || $this->config('logic') !== 'None') { + // TenBombs, or give player bombs if uncle was plando'd to not have a weapon. + $rom->setEscapeFills(0b00000010); + $rom->setUncleSpawnRefills(0, 50, 0); + $rom->setZeldaSpawnRefills(0, 3, 0); + $rom->setMantleSpawnRefills(0, 3, 0); if ($this->config('rom.HardMode') == -1) { - $rom->setEscapeAssist(0b00000010); - } - } - } + $rom->setEscapeAssist(0b00000010); + } + } + } /** * This is a quick hack to get prizes shuffled, will adjust later when we model sprites. From b295df782e15d7da1adc6a64cd4f7642afedb328 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Sat, 5 Jun 2021 11:09:33 -0400 Subject: [PATCH 38/59] Proper 'i18n' name in scripts. --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index fc11bd1e4..ad73472fb 100644 --- a/package.json +++ b/package.json @@ -3,13 +3,13 @@ "scripts": { "test": "jest", "dev": "npm run development", - "development": "npm run il8n & cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "development": "npm run i18n & cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", - "hot": "npm run il8n & cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "hot": "npm run i18n & cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", - "production": "npm run il8n & cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "il8n": "php artisan vue-i18n:generate" + "production": "npm run i18n & cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "i18n": "php artisan vue-i18n:generate" }, "devDependencies": { "@babel/core": "^7.10.3", From 9c5bf70744a3ea31f1446bd9cb3852ab0b5ab8de Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sat, 5 Jun 2021 13:20:48 -0400 Subject: [PATCH 39/59] v31.0.9 updates (#926) * add reduce flashing to frontend * add reduce_flashing to options * write sprite author to credits * set boss menu * updates * update deps * refactor using suggested edits from Veetorp * fix * comment typo * use NoLogic instead of None to remove ambiguity add i18n for ES, DE, and FR * set customizer spoilers setting to on by default, instead of off update release notes * allow us to specify what item is replaced for heart containers/pieces * item.overflow.count.Bow already defaults to 2, this line causes changes to this setting via customizer API to be ignored * add feature to customizer API that allows for injection of custom text * deselect CC item pool when choosing an entrance shuffle, and vice versa * update options page * update races page * daily and weekly races * swap CC and League * fix spoiler tournament * update crosskeys description * Improve the text for crosskeys tournament a bit * fix item pool in options * update reference to SRL to instead be to racetime's help page * add section for language-specific tournaments * add OWG weekly * remove the youtube channel reference for now, and also remove a google form that's no longer used * update readme * improve the readme language a bit * update readme a bit more * readme fixes * add reduce flashing to frontend * add reduce_flashing to options * write sprite author to credits * set boss menu * updates * refactor using suggested edits from Veetorp * fix * comment typo * use NoLogic instead of None to remove ambiguity add i18n for ES, DE, and FR * set customizer spoilers setting to on by default, instead of off update release notes * allow us to specify what item is replaced for heart containers/pieces * item.overflow.count.Bow already defaults to 2, this line causes changes to this setting via customizer API to be ignored * add feature to customizer API that allows for injection of custom text * deselect CC item pool when choosing an entrance shuffle, and vice versa * update options page * update races page * daily and weekly races * swap CC and League * fix spoiler tournament * update crosskeys description * Improve the text for crosskeys tournament a bit * fix item pool in options * update reference to SRL to instead be to racetime's help page * add section for language-specific tournaments * add OWG weekly * remove the youtube channel reference for now, and also remove a google form that's no longer used * update readme * improve the readme language a bit * update readme a bit more * readme fixes * add info on racing rules * update rom * your =! you're * set the content-type header to applicaiton/json for the json return * update races page and replaced apostrophies in the i18n * fix #907 * add FR i18n for organized races * fix description * fix description again * update rom build * FR content updates * update rom * update ROM * add DE i18n for races page * cleanup * fix DE * update ES i18n * remove FR/DE from ES i18n * randomize fake silvers hint when silvers are unavailable * adjustments * update es i18n * allow setting name and notes for randomizer games * https://discord.com/channels/307860211333595146/385212537727352833/848283883157979156 * updates * update sprite endpoint * sprite update * no silvers message changes * fix replacement on css * fix sprite data * protect against text edits for keys that don't exist fix random sprite selection --- app/Console/Commands/Distribution.php | 2 +- app/Console/Commands/Randomize.php | 2 +- app/Http/Controllers/CustomizerController.php | 13 +- app/Http/Controllers/MultiworldController.php | 5 +- app/Http/Controllers/RandomizerController.php | 29 +- app/Http/Controllers/SettingsController.php | 12 + app/Randomizer.php | 5 +- app/Region/Standard/DarkWorld/NorthEast.php | 2 +- app/Rom.php | 4 +- app/Text.php | 5 + app/World.php | 27 +- composer.json | 6 +- composer.lock | 6 +- config/sprites.php | 1093 +++++++++++------ package-lock.json | 40 +- package.json | 1 + readme.md | 65 +- .../js/components/Customizer/Glitches.vue | 2 +- resources/js/components/VTRomSettings.vue | 22 +- resources/js/components/VTSpriteSelect.vue | 52 +- resources/js/rom.js | 101 +- resources/js/store/modules/defaults.js | 4 +- resources/js/store/modules/randomizer.js | 9 + resources/js/store/modules/romSettings.js | 8 +- resources/js/views/Customizer.vue | 6 +- resources/js/views/HashLoader.vue | 6 +- resources/js/views/Randomizer.vue | 6 +- resources/js/views/Sprites.vue | 2 +- resources/js/vue-i18n-locales.generated.js | 311 ++++- resources/lang/de/options.php | 10 +- resources/lang/de/races.php | 101 +- resources/lang/de/resources.php | 2 +- resources/lang/de/rom.php | 2 + resources/lang/en/options.php | 10 +- resources/lang/en/races.php | 129 +- resources/lang/en/resources.php | 2 +- resources/lang/en/rom.php | 2 + resources/lang/es/options.php | 10 +- resources/lang/es/races.php | 96 +- resources/lang/es/resources.php | 2 +- resources/lang/es/rom.php | 2 + resources/lang/fr/customizer.php | 24 +- resources/lang/fr/options.php | 140 ++- resources/lang/fr/races.php | 105 +- resources/lang/fr/randomizer.php | 6 +- resources/lang/fr/resources.php | 2 +- resources/lang/fr/rom.php | 2 + resources/sass/_sprites.scss | 764 ++++++------ resources/views/about.blade.php | 11 - resources/views/contribute.blade.php | 11 - resources/views/options.blade.php | 4 +- resources/views/races.blade.php | 24 +- resources/views/resources.blade.php | 11 - resources/views/updates.blade.php | 23 + routes/console.php | 2 +- strings/ganon_phase_3_no_silvers.txt | 120 ++ .../MajorGlitches/DarkWorld/NorthEastTest.php | 1 - 57 files changed, 2364 insertions(+), 1100 deletions(-) create mode 100644 strings/ganon_phase_3_no_silvers.txt diff --git a/app/Console/Commands/Distribution.php b/app/Console/Commands/Distribution.php index aa32de6e0..950b000b9 100644 --- a/app/Console/Commands/Distribution.php +++ b/app/Console/Commands/Distribution.php @@ -55,7 +55,7 @@ public function handle() 'none' => 'NoGlitches', 'overworld_glitches' => 'OverworldGlitches', 'major_glitches' => 'MajorGlitches', - 'no_logic' => 'None', + 'no_logic' => 'NoLogic', ][$this->option('glitches')]; $this->state = $this->option('state'); diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index c5746d912..f239a9546 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -155,7 +155,7 @@ public function handle() 'none' => 'NoGlitches', 'overworld_glitches' => 'OverworldGlitches', 'major_glitches' => 'MajorGlitches', - 'no_logic' => 'None', + 'no_logic' => 'NoLogic', ][$this->option('glitches')]; $world = World::factory($this->option('state'), [ diff --git a/app/Http/Controllers/CustomizerController.php b/app/Http/Controllers/CustomizerController.php index c94a3980f..9d29a9aa1 100644 --- a/app/Http/Controllers/CustomizerController.php +++ b/app/Http/Controllers/CustomizerController.php @@ -80,7 +80,7 @@ public function generateSeed(Request $request) ])); Cache::put('hash.' . $payload['hash'], $save_data, now()->addDays(7)); - return json_encode($return_payload); + return response()->json($return_payload); } catch (Exception $exception) { if (app()->bound('sentry')) { app('sentry')->captureException($exception); @@ -93,7 +93,7 @@ public function generateSeed(Request $request) public function testGenerateSeed(Request $request) { try { - return json_encode(Arr::except($this->prepSeed($request), ['patch', 'seed', 'hash'])); + return response()->json(Arr::except($this->prepSeed($request), ['patch', 'seed', 'hash'])); } catch (Exception $exception) { if (app()->bound('sentry')) { app('sentry')->captureException($exception); @@ -113,7 +113,7 @@ protected function prepSeed(Request $request, bool $save = false) 'none' => 'NoGlitches', 'overworld_glitches' => 'OverworldGlitches', 'major_glitches' => 'MajorGlitches', - 'no_logic' => 'None', + 'no_logic' => 'NoLogic', ][$request->input('glitches', 'none')]; $spoilers = $request->input('spoilers', 'off'); @@ -180,7 +180,7 @@ protected function prepSeed(Request $request, bool $save = false) 'mode.weapons' => $request->input('weapons', 'randomized'), 'tournament' => $request->input('tournament', true), 'spoilers' => $spoilers, - 'allow_quickswap' => $request->input('allow_quickswap', false), + 'allow_quickswap' => $request->input('allow_quickswap', true), 'override_start_screen' => $request->input('override_start_screen', false), 'logic' => $logic, 'item.pool' => $request->input('item.pool', 'normal'), @@ -250,6 +250,11 @@ protected function prepSeed(Request $request, bool $save = false) $rand = new Randomizer([$world]); $rand->randomize(); + + foreach ($request->input('texts', []) as $key => $value) { + $world->setText($key, $value); + } + $world->writeToRom($rom, $save); $worlds = new WorldCollection($rand->getWorlds()); diff --git a/app/Http/Controllers/MultiworldController.php b/app/Http/Controllers/MultiworldController.php index 0a93024b6..d61edd09b 100644 --- a/app/Http/Controllers/MultiworldController.php +++ b/app/Http/Controllers/MultiworldController.php @@ -52,12 +52,13 @@ protected function prepSeed(Request $request) 'none' => 'NoGlitches', 'overworld_glitches' => 'OverworldGlitches', 'major_glitches' => 'MajorGlitches', - 'no_logic' => 'None', + 'no_logic' => 'NoLogic', ][$config['glitches'] ?? 'none']; - // quick fix for CC and Basic + // quick fix for CC and Basic/Entrance if (($config['item.pool'] ?? 'normal') === 'crowd_control') { $request->merge(['item_placement' => 'advanced']); + $request->merge(['entrances' => 'none']); } $worlds[] = World::factory($config['mode'] ?? 'standard', [ diff --git a/app/Http/Controllers/RandomizerController.php b/app/Http/Controllers/RandomizerController.php index d3e43b9f7..b260b925f 100644 --- a/app/Http/Controllers/RandomizerController.php +++ b/app/Http/Controllers/RandomizerController.php @@ -11,6 +11,9 @@ use ALttP\Support\WorldCollection; use ALttP\World; use Exception; +use GrahamCampbell\Markdown\Facades\Markdown; +use HTMLPurifier_Config; +use HTMLPurifier; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Cache; @@ -75,7 +78,7 @@ public function generateSeed(CreateRandomizedGame $request) ])); Cache::put('hash.' . $payload['hash'], $save_data, now()->addDays(7)); - return json_encode($return_payload); + return response()->json($return_payload); } catch (Exception $exception) { if (app()->bound('sentry')) { app('sentry')->captureException($exception); @@ -88,7 +91,7 @@ public function generateSeed(CreateRandomizedGame $request) public function testGenerateSeed(CreateRandomizedGame $request) { try { - return json_encode(Arr::except($this->prepSeed($request, false), ['patch', 'seed', 'hash'])); + return response()->json(Arr::except($this->prepSeed($request, false), ['patch', 'seed', 'hash'])); } catch (Exception $exception) { if (app()->bound('sentry')) { app('sentry')->captureException($exception); @@ -108,7 +111,7 @@ protected function prepSeed(CreateRandomizedGame $request, bool $save = true) 'none' => 'NoGlitches', 'overworld_glitches' => 'OverworldGlitches', 'major_glitches' => 'MajorGlitches', - 'no_logic' => 'None', + 'no_logic' => 'NoLogic', ][$request->input('glitches', 'none')]; $spoilers = $request->input('spoilers', 'off'); @@ -123,6 +126,20 @@ protected function prepSeed(CreateRandomizedGame $request, bool $save = true) $request->merge(['item_placement' => 'advanced']); } + $spoiler_meta = []; + + $purifier_settings = HTMLPurifier_Config::create(config("purifier.default")); + $purifier_settings->loadArray(config("purifier.default")); + $purifier = new HTMLPurifier($purifier_settings); + if ($request->filled('name')) { + $markdowned = Markdown::convertToHtml(substr($request->input('name'), 0, 100)); + $spoiler_meta['name'] = strip_tags($purifier->purify($markdowned)); + } + if ($request->filled('notes')) { + $markdowned = Markdown::convertToHtml(substr($request->input('notes'), 0, 300)); + $spoiler_meta['notes'] = $purifier->purify($markdowned); + } + $world = World::factory($request->input('mode', 'standard'), [ 'itemPlacement' => $request->input('item_placement', 'basic'), 'dungeonItems' => $request->input('dungeon_items', 'standard'), @@ -134,7 +151,7 @@ protected function prepSeed(CreateRandomizedGame $request, bool $save = true) 'mode.weapons' => $request->input('weapons', 'randomized'), 'tournament' => $request->input('tournament', false), 'spoilers' => $spoilers, - 'allow_quickswap' => $request->input('allow_quickswap', false), + 'allow_quickswap' => $request->input('allow_quickswap', true), 'override_start_screen' => $request->input('override_start_screen', false), 'spoil.Hints' => $request->input('hints', 'on'), 'logic' => $logic, @@ -168,11 +185,11 @@ protected function prepSeed(CreateRandomizedGame $request, bool $save = true) } } - $spoiler = $world->getSpoiler([ + $spoiler = $world->getSpoiler(array_merge($spoiler_meta, [ 'entry_crystals_ganon' => $request->input('crystals.ganon', '7'), 'entry_crystals_tower' => $request->input('crystals.tower', '7'), 'worlds' => 1, - ]); + ])); if ($world->isEnemized()) { $patch = $rom->getWriteLog(); diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 32f47f82f..e35232044 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -211,11 +211,23 @@ public function rom(): array public function sprites(): array { return collect(config('sprites'))->map(function ($info, $file) { + if ($file === '001.link.1.zspr') { + return [ + 'name' => $info['name'], + 'author' => $info['author'], + 'version' => $info['version'], + 'file' => null, + 'preview' => null, + 'tags' => $info['tags'] ?? [], + 'usage' => $info['usage'] ?? [] + ]; + } return [ 'name' => $info['name'], 'author' => $info['author'], 'version' => $info['version'], 'file' => 'https://alttpr.s3.us-east-2.amazonaws.com/' . $file, + 'preview' => 'https://alttpr.s3.us-east-2.amazonaws.com/' . $file . '.png', 'tags' => $info['tags'] ?? [], 'usage' => $info['usage'] ?? [] ]; diff --git a/app/Randomizer.php b/app/Randomizer.php index 4b6c022b7..b8c4d2b8e 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -113,7 +113,7 @@ public function prepareWorld(World $world): void $trash_items = $world->getItemPool(); // @todo check a flag instead of logic here, as well as difficulty - if (in_array($world->config('logic'), ['MajorGlitches', 'OverworldGlitches', 'None']) && $world->config('difficulty') !== 'custom') { + if (in_array($world->config('logic'), ['MajorGlitches', 'OverworldGlitches', 'NoLogic']) && $world->config('difficulty') !== 'custom') { $world->addPreCollectedItem(Item::get('PegasusBoots', $world)); foreach ($advancement_items as $key => $item) { if ($item == Item::get('PegasusBoots', $world)) { @@ -868,6 +868,7 @@ public function setTexts(World $world) 'tavern_man' => $this->getTextArray('strings/tavern_man.txt'), 'blind' => $this->getTextArray('strings/blind.txt'), 'ganon_1' => $this->getTextArray('strings/ganon_1.txt'), + 'ganon_phase_3_no_silvers' => $this->getTextArray('strings/ganon_phase_3_no_silvers.txt'), 'triforce' => $this->getTextArray('strings/triforce.txt'), ]; }); @@ -933,7 +934,7 @@ public function setTexts(World $world) } if (!$silver_arrows_location) { - $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows on\nPlanet Zebes?"); + $world->setText('ganon_phase_3_no_silvers', Arr::first(fy_shuffle($strings['ganon_phase_3_no_silvers']))); } else { switch ($silver_arrows_location->getRegion()->getName()) { case "Ganons Tower": diff --git a/app/Region/Standard/DarkWorld/NorthEast.php b/app/Region/Standard/DarkWorld/NorthEast.php index 0e3af4aed..13882dcdd 100644 --- a/app/Region/Standard/DarkWorld/NorthEast.php +++ b/app/Region/Standard/DarkWorld/NorthEast.php @@ -214,7 +214,7 @@ public function initalize() return false; } - return $items->has('MoonPearl') + return ($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && ($items->has('DefeatAgahnim2') || $this->world->config('goal') === 'fast_ganon') && (!$this->world->config('region.requireBetterBow', false) || $items->canShootArrows($this->world, 2)) && ( diff --git a/app/Rom.php b/app/Rom.php index 8e4f647e2..de9d0072c 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -12,8 +12,8 @@ */ class Rom { - const BUILD = '2021-02-18'; - const HASH = 'daefb54a0ad81808f8d8790eeeb4d3e6'; + const BUILD = '2021-05-22'; + const HASH = '78520fa865249324c1a0e9d13c56665e'; const SIZE = 2097152; private $tmp_file; diff --git a/app/Text.php b/app/Text.php index f294e79c6..34f9afeec 100644 --- a/app/Text.php +++ b/app/Text.php @@ -3,6 +3,7 @@ namespace ALttP; use ALttP\Support\Dialog; +use Exception; use Log; /** @@ -35,6 +36,10 @@ public function __construct($translation = 'en') */ public function setString(string $id, string $value, ...$flags) { + if (!array_key_exists($id, $this->text_array)) { + throw new Exception("Attempted to update a non-existant text id ($id)."); + } + $this->text_array[$id] = $this->converter->convertDialogCompressed($value, ...$flags); } diff --git a/app/World.php b/app/World.php index 4a7b6418c..5f35049a0 100644 --- a/app/World.php +++ b/app/World.php @@ -90,7 +90,7 @@ public function __construct(int $id = 0, array $config = []) // Initialize the Logic and Prizes for each Region that has them and // fill our LocationsCollection foreach ($this->regions as $region) { - if ($this->config('logic') !== 'None') { + if ($this->config('logic') !== 'NoLogic') { $region->initalize(); } $this->locations = $this->locations->merge($region->getLocations()); @@ -127,11 +127,14 @@ public function __construct(int $id = 0, array $config = []) $free_item_text |= 0x16; $free_item_menu |= 0x0C; } + + if (in_array($this->config('logic'), ['MajorGlitches', 'NoLogic']) || $this->config('canOneFrameClipUW', false)) { + $free_item_menu |= 0x10; + } + $this->config['rom.freeItemText'] = $free_item_text; $this->config['rom.freeItemMenu'] = $free_item_menu; - $this->config['item.overflow.count.Bow'] = 2; - switch ($this->config('item.pool')) { case 'expert': $this->config['item.overflow.count.Sword'] = 2; @@ -308,7 +311,7 @@ public function copy() public function getGanonsTowerJunkFillRange(): array { if ( - $this->config['logic'] === 'None' + $this->config['logic'] === 'NoLogic' || ($this->config['mode.state'] !== 'inverted' && in_array($this->config['logic'], ['OverworldGlitches', 'MajorGlitches'])) ) { @@ -904,7 +907,7 @@ public function getSpoiler(array $meta = []): array 'size' => 2, 'hints' => $this->config('spoil.Hints'), 'spoilers' => $this->config('spoilers', 'off'), - 'allow_quickswap' => $this->config('allow_quickswap'), + 'allow_quickswap' => $this->config('allow_quickswap', true), 'enemizer.boss_shuffle' => $this->config('enemizer.bossShuffle'), 'enemizer.enemy_shuffle' => $this->config('enemizer.enemyShuffle'), 'enemizer.enemy_damage' => $this->config('enemizer.enemyDamage'), @@ -1053,8 +1056,8 @@ public function writeToRom(Rom $rom, bool $save = false): Rom 0x51, 0x06, 0x52, 0xFF, // 6 +5 bomb upgrades -> +10 bomb upgrade 0x53, 0x06, 0x54, 0xFF, // 6 +5 arrow upgrades -> +10 arrow upgrade 0x58, 0x01, $this->config('rom.rupeeBow', false) ? 0x36 : 0x43, 0xFF, // silver arrows -> 1 arrow - 0x3E, $this->config('item.overflow.count.BossHeartContainer', 10), 0x47, 0xFF, // boss heart -> 20 rupees - 0x17, $this->config('item.overflow.count.PieceOfHeart', 24), 0x47, 0xFF, // piece of heart -> 20 rupees + 0x3E, $this->config('item.overflow.count.BossHeartContainer', 10), Item::get($this->config('item.overflow.replacement.BossHeartContainer', 'TwentyRupees2'), $this)->getBytes()[0], 0xFF, // boss heart -> 20 rupees + 0x17, $this->config('item.overflow.count.PieceOfHeart', 24), Item::get($this->config('item.overflow.replacement.PieceOfHeart', 'TwentyRupees2'), $this)->getBytes()[0], 0xFF, // piece of heart -> 20 rupees ]); switch ($this->config['goal']) { @@ -1135,7 +1138,7 @@ public function writeToRom(Rom $rom, bool $save = false): Rom switch ($this->config('rom.logicMode', $this->config['logic'])) { case 'MajorGlitches': - case 'None': + case 'NoLogic': $rom->setSwampWaterLevel(false); $rom->setPreAgahnimDarkWorldDeathInDungeon(false); $rom->setSaveAndQuitFromBossRoom(true); @@ -1147,7 +1150,7 @@ public function writeToRom(Rom $rom, bool $save = false): Rom case 'OverworldGlitches': $rom->setPreAgahnimDarkWorldDeathInDungeon(false); $rom->setSaveAndQuitFromBossRoom(true); - $rom->setWorldOnAgahnimDeath(true); + $rom->setWorldOnAgahnimDeath(false); $rom->setRandomizerSeedType('OverworldGlitches'); $rom->setWarningFlags(bindec('01000000')); $rom->setPODEGfix(false); @@ -1162,11 +1165,7 @@ public function writeToRom(Rom $rom, bool $save = false): Rom $rom->setGanonsTowerOpen($this->config('crystals.tower') === 0); - if ($this->config('allow_quickswap', false)) { - $rom->setGameType('entrance'); - } else { - $rom->setGameType('item'); - } + $rom->setGameType('item'); $rom->setMysteryMasking($this->config('spoilers', 'on') === 'mystery'); diff --git a/composer.json b/composer.json index f30d38882..f12d191c4 100644 --- a/composer.json +++ b/composer.json @@ -47,11 +47,11 @@ "type": "package", "package": { "name": "z3/randomizer", - "version": "31.0.8", + "version": "31.0.9", "source": { "url": "https://github.com/KatDevsGames/z3randomizer", "type": "git", - "reference": "37f7125198db2971fe2fbb84792cbb111a689749" + "reference": "1bbf359198beb74746e6b2779c3fff0698c1b77a" } } }, @@ -136,4 +136,4 @@ "preferred-install": "dist", "sort-packages": true } -} +} \ No newline at end of file diff --git a/composer.lock b/composer.lock index 704228c18..0dbb7a99a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "62c2a01d0c0957027c3a54fba5584dab", + "content-hash": "421b3caff5c672f790dfb699225fc552", "packages": [ { "name": "aws/aws-sdk-php", @@ -7027,11 +7027,11 @@ }, { "name": "z3/randomizer", - "version": "31.0.8", + "version": "31.0.9", "source": { "type": "git", "url": "https://github.com/KatDevsGames/z3randomizer", - "reference": "37f7125198db2971fe2fbb84792cbb111a689749" + "reference": "1bbf359198beb74746e6b2779c3fff0698c1b77a" }, "type": "library" } diff --git a/config/sprites.php b/config/sprites.php index f5bb052c0..a0863708d 100644 --- a/config/sprites.php +++ b/config/sprites.php @@ -29,8 +29,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'abigail.1.zspr' => [ @@ -57,8 +57,21 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'adventure-2600.1.zspr' => [ + 'name' => 'Adventure 2600', + 'author' => 'Purple Peak', + 'file' => 'adventure-2600.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Atari', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'aggretsuko.1.zspr' => [ @@ -100,8 +113,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'arcane.1.zspr' => [ @@ -117,6 +130,20 @@ 0 => 'smz3', ], ], + 'aria.1.zspr' => [ + 'name' => 'Aria', + 'author' => 'Maya Neko Comics', + 'file' => 'aria.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Female', + 1 => 'Personality', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'ark-dorana.2.zspr' => [ 'name' => 'Ark (No Cape)', 'author' => 'Dorana', @@ -128,8 +155,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'ark.1.zspr' => [ @@ -162,18 +189,18 @@ 0 => 'smz3', ], ], - 'astronaut.1.zspr' => [ + 'astronaut.2.zspr' => [ 'name' => 'Astronaut', 'author' => 'Malmo', - 'file' => 'astronaut.1.zspr', - 'version' => 1, + 'file' => 'astronaut.2.zspr', + 'version' => 2, 'vtversion' => '31.0.5', 'tags' => [ 0 => 'IRL', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'asuna.2.zspr' => [ @@ -187,8 +214,8 @@ 1 => 'Sword Art Online', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'badeline.1.zspr' => [ @@ -202,8 +229,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'bananas-in-pyjamas.1.zspr' => [ @@ -216,8 +243,8 @@ 0 => 'Cartoon', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'bandit.1.zspr' => [ @@ -230,8 +257,8 @@ 0 => 'Mario', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'batman.1.zspr' => [ @@ -246,8 +273,8 @@ 2 => 'DC Comics', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'beau.1.zspr' => [ @@ -262,8 +289,23 @@ 2 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'bee.1.zspr' => [ + 'name' => 'Bee', + 'author' => 'TarThoron', + 'file' => 'bee.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'ALTTP', + 1 => 'NPC', + 2 => 'Animal', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'bewp.1.zspr' => [ @@ -306,8 +348,8 @@ 2 => 'Streamer', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'birdo.1.zspr' => [ @@ -350,8 +392,8 @@ 3 => 'ALTTP NPC', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'blazer.1.zspr' => [ @@ -364,8 +406,8 @@ 0 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'blossom.1.zspr' => [ @@ -410,8 +452,8 @@ 1 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'boco.2.zspr' => [ @@ -425,8 +467,8 @@ 1 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'boo-two.1.zspr' => [ @@ -440,8 +482,8 @@ 1 => 'Ghost', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'boo.2.zspr' => [ @@ -455,8 +497,8 @@ 1 => 'Ghost', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'bottle_o_goo.1.zspr' => [ @@ -483,8 +525,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'botw-zelda.1.zspr' => [ @@ -557,8 +599,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'brian.1.zspr' => [ @@ -572,8 +614,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'broccoli.2.zspr' => [ @@ -763,8 +805,21 @@ 2 => 'Cat', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'catgirl-hidari.1.zspr' => [ + 'name' => 'Catgirl (Hidari)', + 'author' => 'Hidari', + 'file' => 'catgirl-hidari.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.5', + 'tags' => [ + 0 => 'Personality', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'cdilink.1.zspr' => [ @@ -779,8 +834,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'celes.1.zspr' => [ @@ -794,8 +849,22 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'centaur-enos.1.zspr' => [ + 'name' => 'Centaur Enos', + 'author' => 'Ziusudra', + 'file' => 'centaur-enos.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Male', + 1 => 'Personality', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'charizard.1.zspr' => [ @@ -822,8 +891,8 @@ 1 => 'Fish', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'chibity.1.zspr' => [ @@ -836,8 +905,8 @@ 0 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'chrizzz.1.zspr' => [ @@ -851,22 +920,22 @@ 1 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'cinna.1.zspr' => [ + 'cinna.2.zspr' => [ 'name' => 'Cinna', 'author' => 'norskmatty', - 'file' => 'cinna.1.zspr', - 'version' => 1, + 'file' => 'cinna.2.zspr', + 'version' => 2, 'vtversion' => '31.0.8', 'tags' => [ 0 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'cirno.1.zspr' => [ @@ -880,15 +949,15 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'clifford.1.zspr' => [ + 'clifford.2.zspr' => [ 'name' => 'Clifford', 'author' => 'PlaguedOne', - 'file' => 'clifford.1.zspr', - 'version' => 1, + 'file' => 'clifford.2.zspr', + 'version' => 2, 'vtversion' => '30', 'tags' => [ 0 => 'Animal', @@ -898,6 +967,33 @@ 0 => 'smz3', ], ], + 'clippy.1.zspr' => [ + 'name' => 'Clippy', + 'author' => 'PlaguedOne', + 'file' => 'clippy.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Personality', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], + 'cloud.1.zspr' => [ + 'name' => 'Cloud', + 'author' => 'FedoraFriday', + 'file' => 'cloud.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Male', + 1 => 'Final Fantasy', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'clyde.1.zspr' => [ 'name' => 'Clyde', 'author' => 'Artheau', @@ -938,8 +1034,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'corona.2.zspr' => [ @@ -953,8 +1049,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'crewmate.2.zspr' => [ @@ -982,15 +1078,15 @@ 2 => 'Bird', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'cursor.1.zspr' => [ + 'cursor.2.zspr' => [ 'name' => 'Cursor', 'author' => 'PlaguedOne', - 'file' => 'cursor.1.zspr', - 'version' => 1, + 'file' => 'cursor.2.zspr', + 'version' => 2, 'vtversion' => '29', 'tags' => [ 0 => 'Personality', @@ -1068,8 +1164,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'darklink.1.zspr' => [ @@ -1099,8 +1195,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'darkzelda.1.zspr' => [ @@ -1128,8 +1224,8 @@ 1 => 'ALTTP NPC', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'deadpool-mythic.1.zspr' => [ @@ -1173,8 +1269,8 @@ 1 => 'ALTTP NPC', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'decidueye.1.zspr' => [ @@ -1188,8 +1284,8 @@ 1 => 'Bird', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'dekar.1.zspr' => [ @@ -1218,8 +1314,35 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'dennsen86.1.zspr' => [ + 'name' => 'Dennsen86', + 'author' => 'Bonzaibier', + 'file' => 'dennsen86.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Male', + 1 => 'Personality', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], + 'digdug.1.zspr' => [ + 'name' => 'Dig Dug', + 'author' => 'kan', + 'file' => 'digdug.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Dig Dug', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'dipper.1.zspr' => [ @@ -1236,6 +1359,20 @@ 0 => 'smz3', ], ], + 'discord-mlp.1.zspr' => [ + 'name' => 'Discord', + 'author' => 'JerryEris', + 'file' => 'discord-mlp.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'My Little Pony', + 1 => 'Male', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'dragonite.2.zspr' => [ 'name' => 'Dragonite', 'author' => 'Fish_waffle64', @@ -1314,8 +1451,23 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'fi.1.zspr' => [ + 'name' => 'Fi', + 'author' => 'Lougaroc', + 'file' => 'fi.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Legend of Zelda', + 1 => 'female', + 2 => 'Skyward Sword', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'fierce-deity-link.3.zspr' => [ @@ -1373,8 +1525,8 @@ 2 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'flavor_guy.1.zspr' => [ @@ -1402,8 +1554,8 @@ 1 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'freya.1.zspr' => [ @@ -1430,8 +1582,8 @@ 0 => 'Undertale', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'froglink.3.zspr' => [ @@ -1445,8 +1597,8 @@ 1 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'fujin.2.zspr' => [ @@ -1487,8 +1639,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'ganon.2.zspr' => [ @@ -1505,8 +1657,8 @@ 4 => 'Boss', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'ganondorf.2.zspr' => [ @@ -1537,8 +1689,8 @@ 1 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'garnet.1.zspr' => [ @@ -1565,8 +1717,8 @@ 0 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'gbc-link.1.zspr' => [ @@ -1595,8 +1747,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'gliitchwiitch.1.zspr' => [ @@ -1627,18 +1779,18 @@ 0 => 'smz3', ], ], - 'gooey.1.zspr' => [ + 'gooey.2.zspr' => [ 'name' => 'Gooey', 'author' => 'Lougaroc', - 'file' => 'gooey.1.zspr', - 'version' => 1, + 'file' => 'gooey.2.zspr', + 'version' => 2, 'vtversion' => '31.0.8', 'tags' => [ 0 => 'Kirby', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'goomba.1.zspr' => [ @@ -1665,8 +1817,22 @@ 1 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'graalian-noob.1.zspr' => [ + 'name' => 'Graalian Noob', + 'author' => 'EGamer2', + 'file' => 'graalian-noob.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Graal', + 1 => 'Male', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'grandpoobear.2.zspr' => [ @@ -1697,8 +1863,8 @@ 2 => 'Streamer', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'grunclestan.1.zspr' => [ @@ -1727,23 +1893,23 @@ 2 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'hanna.1.zspr' => [ + 'hanna.2.zspr' => [ 'name' => 'Hanna', 'author' => 'Maya-Neko', - 'file' => 'hanna.1.zspr', - 'version' => 1, + 'file' => 'hanna.2.zspr', + 'version' => 2, 'vtversion' => '31.0.7', 'tags' => [ 0 => 'Female', 1 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'hardhat_beetle.1.zspr' => [ @@ -1774,6 +1940,21 @@ 0 => 'smz3', ], ], + 'head-link.1.zspr' => [ + 'name' => 'Head Link', + 'author' => 'TarThoron', + 'file' => 'head-link.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'ALTTP', + 1 => 'Link', + 2 => 'Male', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'headlesslink.2.zspr' => [ 'name' => 'Headless Link', 'author' => 'kan', @@ -1801,8 +1982,8 @@ 2 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'hero-of-awakening.1.zspr' => [ @@ -1816,8 +1997,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'hero-of-hyrule.1.zspr' => [ @@ -1831,23 +2012,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', - ], - ], - 'hidari.1.zspr' => [ - 'name' => 'Hidari', - 'author' => 'Hidari', - 'file' => 'hidari.1.zspr', - 'version' => 1, - 'vtversion' => '31.0.5', - 'tags' => [ - 0 => 'Legend of Zelda', - 1 => 'ALTTP NPC', - ], - 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'hint_tile.1.zspr' => [ @@ -1915,8 +2081,8 @@ 0 => 'Hollow Knight', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'hollow-knight.2.zspr' => [ @@ -1929,8 +2095,8 @@ 0 => 'Hollow Knight', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'homer.1.zspr' => [ @@ -1944,8 +2110,22 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'hornet.1.zspr' => [ + 'name' => 'Hornet', + 'author' => 'Spiffy', + 'file' => 'hornet.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Hollow Knight', + 1 => 'Female', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'hotdog.1.zspr' => [ @@ -1973,8 +2153,8 @@ 1 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'ibazly.1.zspr' => [ @@ -2020,8 +2200,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'inkling.1.zspr' => [ @@ -2049,8 +2229,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'jack-frost.1.zspr' => [ @@ -2063,8 +2243,8 @@ 0 => 'Shin Megami Tensei', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'jason_frudnick.1.zspr' => [ @@ -2091,8 +2271,8 @@ 0 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'jogurt.1.zspr' => [ @@ -2105,23 +2285,23 @@ 0 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'kain.1.zspr' => [ + 'kain.2.zspr' => [ 'name' => 'Kain', 'author' => 'Chew Terr', - 'file' => 'kain.1.zspr', - 'version' => 1, + 'file' => 'kain.2.zspr', + 'version' => 2, 'vtversion' => '31.0.8', 'tags' => [ 0 => 'Final Fantasy', 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'katsura.2.zspr' => [ @@ -2136,8 +2316,8 @@ 2 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'kecleon.1.zspr' => [ @@ -2153,11 +2333,11 @@ 0 => 'smz3', ], ], - 'kefka.1.zspr' => [ + 'kefka.2.zspr' => [ 'name' => 'Kefka', 'author' => 'Chew Terr', - 'file' => 'kefka.1.zspr', - 'version' => 1, + 'file' => 'kefka.2.zspr', + 'version' => 2, 'vtversion' => '31.0.8', 'tags' => [ 0 => 'Final Fantasy', @@ -2165,8 +2345,8 @@ 2 => 'Villain', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'kenny_mccormick.1.zspr' => [ @@ -2194,8 +2374,8 @@ 1 => 'IRL', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'kholdstare.2.zspr' => [ @@ -2239,8 +2419,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'kinu.1.zspr' => [ @@ -2253,8 +2433,8 @@ 0 => 'Temtem', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'kirby-d3.1.zspr' => [ @@ -2267,8 +2447,8 @@ 0 => 'Kirby', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'kirby-meta.1.zspr' => [ @@ -2282,8 +2462,8 @@ 1 => 'Kirby', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'kore8.1.zspr' => [ @@ -2311,8 +2491,8 @@ 2 => 'NPC', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'kriv.1.zspr' => [ @@ -2364,6 +2544,20 @@ 0 => 'smz3', ], ], + 'lestat.1.zspr' => [ + 'name' => 'Lestat', + 'author' => 'Ziusudra', + 'file' => 'lestat.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Male', + 1 => 'Bahamut Lagoon', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'lily.1.zspr' => [ 'name' => 'Lily', 'author' => 'ScatlinkSean', @@ -2375,8 +2569,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'linja.1.zspr' => [ @@ -2394,11 +2588,11 @@ 0 => 'smz3', ], ], - 'link-redrawn.1.zspr' => [ + 'link-redrawn.3.zspr' => [ 'name' => 'Link Redrawn', 'author' => 'Spiffy', - 'file' => 'link-redrawn.1.zspr', - 'version' => 1, + 'file' => 'link-redrawn.3.zspr', + 'version' => 3, 'vtversion' => '31.0.7', 'tags' => [ 0 => 'Link', @@ -2421,8 +2615,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'linktuniccolor.1.zspr' => [ @@ -2508,8 +2702,8 @@ 0 => 'Pokemon', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'luffy.2.zspr' => [ @@ -2539,8 +2733,8 @@ 2 => 'Superhero', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'luna-maindo.1.zspr' => [ @@ -2568,8 +2762,8 @@ 1 => 'Villain', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'madeline.1.zspr' => [ @@ -2583,8 +2777,8 @@ 1 => 'Celeste', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'magus.1.zspr' => [ @@ -2617,6 +2811,21 @@ 0 => 'smz3', ], ], + 'majora.1.zspr' => [ + 'name' => 'Majora\'s Mask', + 'author' => 'Dawn', + 'file' => 'majora.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Legend of Zelda', + 1 => 'Majora\'s Mask', + 2 => 'villain', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'mallow-cat.1.zspr' => [ 'name' => 'Mallow (Cat)', 'author' => 'FedoraFriday', @@ -2629,15 +2838,15 @@ 2 => 'Streamer', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'mangalink.2.zspr' => [ + 'mangalink.3.zspr' => [ 'name' => 'Manga Link', 'author' => 'kan', - 'file' => 'mangalink.2.zspr', - 'version' => 2, + 'file' => 'mangalink.3.zspr', + 'version' => 3, 'vtversion' => '29', 'tags' => [ 0 => 'Link', @@ -2658,8 +2867,8 @@ 0 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'marin.2.zspr' => [ @@ -2687,8 +2896,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'mario_tanooki.2.zspr' => [ @@ -2716,8 +2925,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'marisa.1.zspr' => [ @@ -2731,8 +2940,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'matthias.1.zspr' => [ @@ -2777,8 +2986,8 @@ 1 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'medli.1.zspr' => [ @@ -2793,8 +3002,8 @@ 2 => 'Bird', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'megaman-x.2.zspr' => [ @@ -2811,6 +3020,34 @@ 0 => 'smz3', ], ], + 'megaman-x2.1.zspr' => [ + 'name' => 'Megaman X2', + 'author' => 'PlaguedOne', + 'file' => 'megaman-x2.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Male', + 1 => 'Megaman', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], + 'megaman.1.zspr' => [ + 'name' => 'Mega Man (Classic)', + 'author' => 'CrebleStar', + 'file' => 'megaman.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Male', + 1 => 'Megaman', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'metroid.1.zspr' => [ 'name' => 'Baby Metroid', 'author' => 'Jam', @@ -2822,8 +3059,8 @@ 1 => 'Alien', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'mew.1.zspr' => [ @@ -2853,6 +3090,20 @@ 0 => 'smz3', ], ], + 'mimic.1.zspr' => [ + 'name' => 'Mimic', + 'author' => 'Chew Terr', + 'file' => 'mimic.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Villain', + 1 => 'Dragon Quest', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'minish_link.1.zspr' => [ 'name' => 'Minish Link', 'author' => 'Artheau', @@ -2880,8 +3131,23 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'mipha.1.zspr' => [ + 'name' => 'Mipha', + 'author' => 'RippedSnorlax', + 'file' => 'mipha.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Legend of Zelda', + 1 => 'Breath of the Wild', + 2 => 'female', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'missingno.2.zspr' => [ @@ -2894,8 +3160,8 @@ 0 => 'Pokemon', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'moblin.2.zspr' => [ @@ -2909,8 +3175,8 @@ 1 => 'ALTTP', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'modernlink.1.zspr' => [ @@ -2937,9 +3203,9 @@ 'tags' => [ 0 => 'Final Fantasy', ], - 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 'usage' => [ + 0 => 'smz3', + 1 => 'commercial', ], ], 'momiji.1.zspr' => [ @@ -2953,8 +3219,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'moosh.1.zspr' => [ @@ -3039,8 +3305,8 @@ 1 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'navirou.3.zspr' => [ @@ -3053,8 +3319,8 @@ 0 => 'Monster Hunter', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'ned-flanders.1.zspr' => [ @@ -3069,8 +3335,8 @@ 2 => 'Simpsons', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'negativelink.1.zspr' => [ @@ -3099,8 +3365,8 @@ 1 => 'Streamer', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'neslink.2.zspr' => [ @@ -3115,8 +3381,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'ness.2.zspr' => [ @@ -3147,19 +3413,19 @@ 0 => 'smz3', ], ], - 'niddraig.1.zspr' => [ + 'niddraig.2.zspr' => [ 'name' => 'Niddraig', 'author' => 'Jakebob', - 'file' => 'niddraig.1.zspr', - 'version' => 1, + 'file' => 'niddraig.2.zspr', + 'version' => 2, 'vtversion' => '31.0.7', 'tags' => [ 0 => 'Final Fantasy', 1 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'niko.1.zspr' => [ @@ -3173,8 +3439,8 @@ 1 => 'Cat', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'oldman.2.zspr' => [ @@ -3189,8 +3455,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'ori.2.zspr' => [ @@ -3204,8 +3470,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'outlinelink.1.zspr' => [ @@ -3220,8 +3486,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'parallelworldslink.1.zspr' => [ @@ -3236,8 +3502,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'paula.1.zspr' => [ @@ -3308,8 +3574,8 @@ 1 => 'Ace Attorney', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'pikachu.2.zspr' => [ @@ -3322,8 +3588,8 @@ 0 => 'Pokemon', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'pinkribbonlink.3.zspr' => [ @@ -3352,8 +3618,8 @@ 1 => 'Villain', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'plagueknight.1.zspr' => [ @@ -3370,6 +3636,33 @@ 0 => 'smz3', ], ], + 'plouni.1.zspr' => [ + 'name' => 'Plouni', + 'author' => 'Plouni', + 'file' => 'plouni.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Personality', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], + 'pokey-subtle.1.zspr' => [ + 'name' => 'Pokey (subtle)', + 'author' => 'kan', + 'file' => 'pokey-subtle.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'ALTTP NPC', + 1 => 'Legend of Zelda', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'pokey.2.zspr' => [ 'name' => 'Pokey', 'author' => 'kan', @@ -3395,8 +3688,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'poppy.1.zspr' => [ @@ -3410,8 +3703,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'porg_knight.1.zspr' => [ @@ -3424,8 +3717,8 @@ 0 => 'Star Wars', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'power-ranger.1.zspr' => [ @@ -3438,8 +3731,8 @@ 0 => 'Power Ranger', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'powerpuff_girl.1.zspr' => [ @@ -3502,6 +3795,19 @@ 0 => 'smz3', ], ], + 'prof-renderer-grizzleton.1.zspr' => [ + 'name' => 'Prof. Renderer Grizzleton', + 'author' => 'Professor Renderer', + 'file' => 'prof-renderer-grizzleton.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Personality', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'professor.1.zspr' => [ 'name' => 'The Professor', 'author' => 'PlaguedOne', @@ -3543,8 +3849,8 @@ 3 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'purplechest-bottle.1.zspr' => [ @@ -3558,8 +3864,8 @@ 1 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'pyro.1.zspr' => [ @@ -3573,8 +3879,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'quadbanger.1.zspr' => [ @@ -3617,8 +3923,8 @@ 1 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'red-mage.1.zspr' => [ @@ -3645,8 +3951,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'remus-ruldufus-black.1.zspr' => [ @@ -3702,15 +4008,15 @@ 1 => 'Nickelodeon', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'rottytops.1.zspr' => [ + 'rottytops.2.zspr' => [ 'name' => 'Rottytops', 'author' => 'PlaguedOne', - 'file' => 'rottytops.1.zspr', - 'version' => 1, + 'file' => 'rottytops.2.zspr', + 'version' => 2, 'vtversion' => '30.5', 'tags' => [ 0 => 'Cartoon', @@ -3731,8 +4037,8 @@ 2 => 'Cat', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'roykoopa.1.zspr' => [ @@ -3746,8 +4052,8 @@ 1 => 'Mario', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'rumia.1.zspr' => [ @@ -3761,8 +4067,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'rydia.1.zspr' => [ @@ -3776,15 +4082,15 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'ryu.1.zspr' => [ + 'ryu.2.zspr' => [ 'name' => 'Ryu', 'author' => 'PlaguedOne', - 'file' => 'ryu.1.zspr', - 'version' => 1, + 'file' => 'ryu.2.zspr', + 'version' => 2, 'vtversion' => '30', 'tags' => [ 0 => 'Male', @@ -3820,8 +4126,8 @@ 1 => 'Superhero', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'samus-sm.1.zspr' => [ @@ -3835,8 +4141,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'samus.2.zspr' => [ @@ -3878,15 +4184,15 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], - 'santalink.2.zspr' => [ + 'santalink.3.zspr' => [ 'name' => 'Santa Link', 'author' => 'HOHOHO', - 'file' => 'santalink.2.zspr', - 'version' => 2, + 'file' => 'santalink.3.zspr', + 'version' => 3, 'vtversion' => '26', 'tags' => [ 0 => 'Link', @@ -3895,8 +4201,8 @@ 3 => 'Festive', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'scholar.1.zspr' => [ @@ -3910,8 +4216,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'selan.2.zspr' => [ @@ -3925,8 +4231,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'sevens1ns.1.zspr' => [ @@ -4012,8 +4318,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'shy-guy.1.zspr' => [ @@ -4039,8 +4345,8 @@ 0 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'skunk.1.zspr' => [ @@ -4053,8 +4359,8 @@ 0 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'slime.1.zspr' => [ @@ -4067,8 +4373,8 @@ 0 => 'Dragon Quest', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'slowpoke.2.zspr' => [ @@ -4081,8 +4387,8 @@ 0 => 'Pokemon', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'snes-controller.2.zspr' => [ @@ -4095,8 +4401,8 @@ 0 => 'SNES', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'sodacan.1.zspr' => [ @@ -4111,8 +4417,8 @@ 2 => 'IRL', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'solaire.1.zspr' => [ @@ -4140,8 +4446,8 @@ 1 => 'ALTTP NPC', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'sonic.1.zspr' => [ @@ -4155,8 +4461,8 @@ 1 => 'Sonic the Hedgehog', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'sora.1.zspr' => [ @@ -4170,8 +4476,8 @@ 1 => 'Kingdom Hearts', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'sora_kh1.1.zspr' => [ @@ -4185,8 +4491,22 @@ 1 => 'Kingdom Hearts', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'spikedroller.1.zspr' => [ + 'name' => 'Spiked Roller', + 'author' => 'PlaguedOne', + 'file' => 'spikedroller.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'ALTTP', + 1 => 'NPC', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'spongebob.1.zspr' => [ @@ -4200,8 +4520,8 @@ 1 => 'Spongebob Squarepants', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'squall.1.zspr' => [ @@ -4243,8 +4563,8 @@ 0 => 'Pokemon', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'stalfos.1.zspr' => [ @@ -4329,8 +4649,8 @@ 1 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'superbunny.2.zspr' => [ @@ -4345,8 +4665,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'supermeatboy.1.zspr' => [ @@ -4360,8 +4680,8 @@ 1 => 'Meat Boy', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'susie.1.zspr' => [ @@ -4391,8 +4711,23 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', + ], + ], + 'swiper.1.zspr' => [ + 'name' => 'Swiper', + 'author' => 'Purple Peak', + 'file' => 'swiper.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Male', + 1 => 'Villain', + 2 => 'Dora the Explorer', + ], + 'usage' => [ + 0 => 'smz3', ], ], 'tasbot.1.zspr' => [ @@ -4476,8 +4811,8 @@ 2 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'thief.1.zspr' => [ @@ -4522,8 +4857,8 @@ 3 => 'Bird', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'tile.3.zspr' => [ @@ -4551,8 +4886,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'tmnt.1.zspr' => [ @@ -4581,8 +4916,8 @@ 1 => 'Mario', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'toadette.2.zspr' => [ @@ -4638,8 +4973,8 @@ 0 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'twilightprincesszelda.2.zspr' => [ @@ -4683,11 +5018,11 @@ 0 => 'smz3', ], ], - 'ultros.1.zspr' => [ + 'ultros.2.zspr' => [ 'name' => 'Ultros', 'author' => 'PlaguedOne', - 'file' => 'ultros.1.zspr', - 'version' => 1, + 'file' => 'ultros.2.zspr', + 'version' => 2, 'vtversion' => '30', 'tags' => [ 0 => 'Final Fantasy', @@ -4707,8 +5042,8 @@ 1 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'vanillalink.1.zspr' => [ @@ -4763,8 +5098,8 @@ 0 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'vitreous.1.zspr' => [ @@ -4779,8 +5114,8 @@ 2 => 'Boss', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'vivi.1.zspr' => [ @@ -4823,8 +5158,8 @@ 2 => 'Villain', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'whitemage.1.zspr' => [ @@ -4851,8 +5186,8 @@ 1 => 'Male', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'wizzrobe.2.zspr' => [ @@ -4899,8 +5234,8 @@ 3 => 'Animal', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'yoshi.1.zspr' => [ @@ -4942,8 +5277,8 @@ 2 => 'Female', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'zebraunicorn.1.zspr' => [ @@ -4971,8 +5306,8 @@ 0 => 'Personality', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'zelda.1.zspr' => [ @@ -4987,8 +5322,8 @@ 2 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], 'zerosuitsamus.2.zspr' => [ @@ -5016,8 +5351,8 @@ 1 => 'Legend of Zelda', ], 'usage' => [ - 0 => 'commercial', - 1 => 'smz3', + 0 => 'smz3', + 1 => 'commercial', ], ], ]; diff --git a/package-lock.json b/package-lock.json index 21d5d48cc..81ca6170f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4161,6 +4161,23 @@ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true }, + "align-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-1.0.2.tgz", + "integrity": "sha512-uBPDs72zrRTdiTBY0YjBbuBOdXtRyT4qsKPb4bL4O7vH4utz/7KjwTJVsVbdThxMbVzkRGAfk8Ml3xoMvXSEYw==", + "requires": { + "kind-of": "^5.0.2", + "longest": "^2.0.1", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", @@ -5349,6 +5366,15 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "center-align": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-1.0.1.tgz", + "integrity": "sha1-Kh/f22zQ3S0l+/z2dR50azE+UKQ=", + "requires": { + "align-text": "^1.0.0", + "repeat-string": "^1.6.1" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -12562,6 +12588,11 @@ "@sinonjs/commons": "^1.7.0" } }, + "longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -15144,8 +15175,7 @@ "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "replace-ext": { "version": "1.0.1", @@ -18802,9 +18832,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { diff --git a/package.json b/package.json index 3559cb94c..06f44cf24 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "@sentry/browser": "^5.18.1", "@stardazed/zlib": "^1.0.1", "ajv": "^6.12.2", + "center-align": "^1.0.1", "es6-promise": "^4.2.8", "file-saver": "^2.0.2", "localforage": "^1.7.4", diff --git a/readme.md b/readme.md index d351ed450..b1c99b495 100644 --- a/readme.md +++ b/readme.md @@ -2,39 +2,39 @@ # ALttP VT Randomizer -## First and foremost, big thanks to Dessyreqt, Christos, Smallhacker, and Karkat for their work. +## First and foremost, big thanks to Dessyreqt, Christos, Smallhacker, and KatDevsGames for their work. ### Without their work none of this would even be remotely possible. -## Installing dependencies -You will need [Composer](https://getcomposer.org/) for the Laravel Dependency. Once you have that, run the following +## Local Setup -``` -$ composer install -``` +### System Setup +This assumes you're running Ubuntu 20.04 (either natively, or via Windows Subsystem for Linux). +Native Windows is not currently supported. +Users of either Mac OS or other Linux distributions will need to install the appropriate packages for their system. -## Running from the command line -To generate a game one simply runs the command: +This version of the randomizer requires version 7.4 of PHP. ``` -$ php artisan alttp:randomize {input_file.sfc} {output_directory} +sudo apt-get install php7.4 php7.4-bcmath php7.4-dom php7.4-mbstring php7.4-curl -y ``` -For help (and all the options): +### Installing PHP dependencies +You will need [Composer](https://getcomposer.org/) for the Laravel Dependency. Once you have that, run the following ``` -$ php artisan alttp:randomize -h +$ composer install ``` -## Running the Web Interface - -### Database setup -Create a new mysql database for the randomizer (see mysql documentation for how to do this, you'll need to install mysql server if it's not installed already) +## Database setup Run the following command to create a new config for the app ``` $ cp .env.example .env ``` +### MySQL +Create a new mysql database for the randomizer (see mysql documentation for how to do this, you'll need to install mysql server if it's not installed already) + Then modify .env with appropriate username, password, and database name. Change the db connection to mysql Example: ``` @@ -46,8 +46,17 @@ DB_USERNAME=foo DB_PASSWORD=bar ``` +### SQLite +SQLite can also be used too, this might be a better option for a quick setup. + +``` +DB_CONNECTION=sqlite +DB_DATABASE=/absolute/path/to/existing/folder/db.sqlite +``` + Then run the following commands to setup the app configuration +### Last steps on DB setup ``` $ php artisan key:generate $ php artisan config:cache @@ -60,6 +69,32 @@ Now run the db migration command: $ php artisan migrate ``` +## Generate a base patch + +In you .env file, update `ENEMIZER_BASE=` to the **absolute path** of an unheadered Japanese 1.0 ROM of A Link to the Past. + +Then, in the command line run this to create the base patch. + +``` +php artisan config:cache +php artisan alttp:updatebuildrecord +``` + +## Running from the command line +To generate a game one simply runs the command: + +``` +$ php artisan alttp:randomize {input_file.sfc} {output_directory} +``` + +For help (and all the options): + +``` +$ php artisan alttp:randomize -h +``` + +## Running the Web Interface + ### Web server setup You will need to build assets the first time (you will need [NPM](https://www.npmjs.com/get-npm) to install the javascript dependencies). diff --git a/resources/js/components/Customizer/Glitches.vue b/resources/js/components/Customizer/Glitches.vue index 1721b49e5..8b32285e7 100644 --- a/resources/js/components/Customizer/Glitches.vue +++ b/resources/js/components/Customizer/Glitches.vue @@ -67,7 +67,7 @@ export default { name: "randomizer.glitches_required.options.major_glitches" }, { - value: "None", + value: "NoLogic", name: "randomizer.glitches_required.options.no_logic" } ] diff --git a/resources/js/components/VTRomSettings.vue b/resources/js/components/VTRomSettings.vue index 4031c6b43..455f8c19c 100644 --- a/resources/js/components/VTRomSettings.vue +++ b/resources/js/components/VTRomSettings.vue @@ -75,6 +75,22 @@ >{{ $t('rom.settings.palette_shuffle') }} +
    +
    + {{ $t('rom.settings.reduce_flashing') }} + * +
    +
    +
    @@ -180,7 +196,8 @@ export default { "setHeartColor", "setQuickswap", "setMusicOn", - "setPaletteShuffle" + "setPaletteShuffle", + "setReduceFlashing" ]) }, computed: { @@ -193,7 +210,8 @@ export default { heartColor: state => state.heartColor, quickswap: state => state.quickswap, musicOn: state => state.musicOn, - paletteShuffle: state => state.paletteShuffle + paletteShuffle: state => state.paletteShuffle, + reduceFlashing: state => state.reduceFlashing }) } }; diff --git a/resources/js/components/VTSpriteSelect.vue b/resources/js/components/VTSpriteSelect.vue index 0fa8db757..5ec74e46d 100644 --- a/resources/js/components/VTSpriteSelect.vue +++ b/resources/js/components/VTSpriteSelect.vue @@ -96,7 +96,7 @@ export default { } vm.$emit('load-custom-sprite', false); - while (pickedSprite.file === null) { + while (pickedSprite.name === "Random") { pickedSprite = vm.sprites[Math.floor(Math.random() * vm.sprites.length)]; } @@ -108,30 +108,32 @@ export default { resolve(spr); return; } - axios - .get(pickedSprite.file, { - transformRequest: [ - (data, headers) => { - delete headers.common; - return data; - } - ], - responseType: "arraybuffer" - }) - .then(response => { - var spr_array = new Uint8Array(response.data); - localforage - .setItem("vt_sprites." + sprite_name, spr_array) - .then(function(spr) { - resolve(spr); - }) - .catch(function() { - reject("could not save sprite to local storage"); - }); - }) - .catch(function() { - reject("cannot find sprite file"); - }); + if (pickedSprite.name !== "Link") { + axios + .get(pickedSprite.file, { + transformRequest: [ + (data, headers) => { + delete headers.common; + return data; + } + ], + responseType: "arraybuffer" + }) + .then(response => { + var spr_array = new Uint8Array(response.data); + localforage + .setItem("vt_sprites." + sprite_name, spr_array) + .then(function(spr) { + resolve(spr); + }) + .catch(function() { + reject("could not save sprite to local storage"); + }); + }) + .catch(function() { + reject("cannot find sprite file"); + }); + } }); }).then(rom.parseSprGfx.bind(rom)); } diff --git a/resources/js/rom.js b/resources/js/rom.js index 68beaa0cc..2582e0263 100644 --- a/resources/js/rom.js +++ b/resources/js/rom.js @@ -4,6 +4,7 @@ import Prando from "prando"; import BPS from "./bps"; import * as Z3PR from "@maseya/z3pr"; import localforage from "localforage"; +import center from "center-align"; export default class ROM { constructor(blob, loadedCallback) { @@ -115,7 +116,7 @@ export default class ROM { }); } - save(filename, { paletteShuffle, quickswap, musicOn }) { + save(filename, { paletteShuffle, quickswap, musicOn, reduceFlashing }) { let preProcess = this.arrayBuffer.slice(0); if (paletteShuffle) { @@ -128,6 +129,8 @@ export default class ROM { } this.setMusicVolume(musicOn); + this.setReduceFlashing(reduceFlashing); + this.updateChecksum().then(() => { FileSaver.saveAs(new Blob([this.u_array], { type: 'application/octet-stream' }), filename); @@ -172,6 +175,92 @@ export default class ROM { const palette_offset = (zspr[18] << 24) | (zspr[17] << 16) | (zspr[16] << 8) | zspr[15]; + // ZSPR Metadata + var metadata_index = 0x1D; + + var sprite_author_short = ""; + + // skip past unicode title and author + let junk = 2; + while (metadata_index < gfx_offset && junk > 0) { + if (zspr[metadata_index + 1] === 0 && zspr[metadata_index] === 0) { + junk--; + } + metadata_index = metadata_index + 2; + } + + while (metadata_index < gfx_offset && zspr[metadata_index] !== 0x00) { + sprite_author_short += String.fromCharCode(zspr[metadata_index]); + metadata_index++; + } + + var formatted_sprite_author = center(sprite_author_short.substring(0, 28), 28).toUpperCase(); + if (formatted_sprite_author.length == 27) { + formatted_sprite_author = formatted_sprite_author + " "; + } + + const sprite_author = formatted_sprite_author.split("").map(item => { + switch (item) { + case " ": return [0x9F, 0x9F]; + case "0": return [0x53, 0x79]; + case "1": return [0x54, 0x7A]; + case "2": return [0x55, 0x7B]; + case "3": return [0x56, 0x7C]; + case "4": return [0x57, 0x7D]; + case "5": return [0x58, 0x7E]; + case "6": return [0x59, 0x7F]; + case "7": return [0x5A, 0x80]; + case "8": return [0x5B, 0x81]; + case "9": return [0x5C, 0x82]; + case "A": return [0x5D, 0x83]; + case "B": return [0x5E, 0x84]; + case "C": return [0x5F, 0x85]; + case "D": return [0x60, 0x86]; + case "E": return [0x61, 0x87]; + case "F": return [0x62, 0x88]; + case "G": return [0x63, 0x89]; + case "H": return [0x64, 0x8A]; + case "I": return [0x65, 0x8B]; + case "J": return [0x66, 0x8C]; + case "K": return [0x67, 0x8D]; + case "L": return [0x68, 0x8E]; + case "M": return [0x69, 0x8F]; + case "N": return [0x6A, 0x90]; + case "O": return [0x6B, 0x91]; + case "P": return [0x6C, 0x92]; + case "Q": return [0x6D, 0x93]; + case "R": return [0x6E, 0x94]; + case "S": return [0x6F, 0x95]; + case "T": return [0x70, 0x96]; + case "U": return [0x71, 0x97]; + case "V": return [0x72, 0x98]; + case "W": return [0x73, 0x99]; + case "X": return [0x74, 0x9A]; + case "Y": return [0x75, 0x9B]; + case "Z": return [0x76, 0x9C]; + case "'": return [0x77, 0x9d]; + case ".": return [0xA0, 0xC0]; + case "/": return [0xA2, 0xC2]; + case ":": return [0xA3, 0xC3]; + case "_": return [0xA6, 0xC6]; + default: return [0x9F, 0x9F]; + } + }); + + // Do not write sprite author to older rom builds, or the game will crash. + // This checks for the line header bytes are what we expect, so we're not + // inadvertently writing over executable code that was relocated from it's + // vanilla location. + if (this.u_array[0x118000] === 0x02 + && this.u_array[0x118001] === 0x37 + && this.u_array[0x11801E] === 0x02 + && this.u_array[0x11801F] === 0x37) { + for (let i = 0; i < 28; i++) { + this.u_array[0x118002 + i] = sprite_author[i][0]; + this.u_array[0x118020 + i] = sprite_author[i][1]; + } + } + // GFX for (let i = 0; i < 0x7000; i++) { this.u_array[0x80000 + i] = zspr[gfx_offset + i]; @@ -329,6 +418,16 @@ export default class ROM { this.rand.reset() } + setReduceFlashing(enable) { + return new Promise(resolve => { + if (this.build >= "2021-05-04") { + this.write(0x18017f, enable ? 0x01 : 0x00); + } + + resolve(this); + }); + } + parsePatch(data, progressCallback) { return new Promise(resolve => { this.rand = new Prando(data.hash); diff --git a/resources/js/store/modules/defaults.js b/resources/js/store/modules/defaults.js index 42acdad6d..2b68879e0 100644 --- a/resources/js/store/modules/defaults.js +++ b/resources/js/store/modules/defaults.js @@ -73,7 +73,7 @@ export default { name: "randomizer.enemy_health.options.default" }, spoiler: { - value: "off", - name: "randomizer.spoiler.options.off" + value: "on", + name: "randomizer.spoiler.options.on" } }; diff --git a/resources/js/store/modules/randomizer.js b/resources/js/store/modules/randomizer.js index 0748c1383..74b80e35c 100644 --- a/resources/js/store/modules/randomizer.js +++ b/resources/js/store/modules/randomizer.js @@ -216,6 +216,9 @@ export default { if (["full", "standard"].indexOf(state.dungeon_items.value) === -1) { commit("setDungeonItems", "standard"); } + if (state.item_pool.value === "crowd_control") { + commit("setItemPool", "expert"); + } } }, setItemPool({ commit, state }, value) { @@ -227,6 +230,12 @@ export default { ) { commit("setItemPlacement", "advanced"); } + if ( + state.item_pool.value === "crowd_control" && + state.entrance_shuffle.value !== "none" + ) { + commit("setEntranceShuffle", "none"); + } } }, mutations: { diff --git a/resources/js/store/modules/romSettings.js b/resources/js/store/modules/romSettings.js index bab8015fd..f8e7d80a3 100644 --- a/resources/js/store/modules/romSettings.js +++ b/resources/js/store/modules/romSettings.js @@ -17,6 +17,7 @@ export default { quickswap: false, musicOn: true, paletteShuffle: false, + reduceFlashing: false, options: { heartSpeed: [ { value: "off", name: "rom.settings.heart_speeds.off" }, @@ -50,7 +51,8 @@ export default { dispatch("load", ["heart_colors", "setHeartColor"]), dispatch("load", ["quickswap", "setQuickswap"]), dispatch("load", ["music_on", "setMusicOn"]), - dispatch("load", ["palette_shuffle", "setPaletteShuffle"]) + dispatch("load", ["palette_shuffle", "setPaletteShuffle"]), + dispatch("load", ["reduce_flashing", "setReduceFlashing"]), ]).then(() => { commit("setInitalizing", false); }); @@ -90,6 +92,10 @@ export default { state.paletteShuffle = paletteShuffle; localforage.setItem("rom.palette_shuffle", paletteShuffle); }, + setReduceFlashing(state, reduceFlashing) { + state.reduceFlashing = reduceFlashing; + localforage.setItem("rom.reduce_flashing", reduceFlashing); + }, setInitalizing(state, init) { state.initializing = init; } diff --git a/resources/js/views/Customizer.vue b/resources/js/views/Customizer.vue index 4ad2dd208..bf08cbde3 100644 --- a/resources/js/views/Customizer.vue +++ b/resources/js/views/Customizer.vue @@ -606,7 +606,8 @@ export default { return this.rom.save(this.rom.downloadFilename() + ".sfc", { quickswap: this.quickswap, paletteShuffle: this.paletteShuffle, - musicOn: this.musicOn + musicOn: this.musicOn, + reduceFlashing: this.reduceFlashing }); }, saveSpoiler() { @@ -770,7 +771,8 @@ export default { heartColor: state => state.heartColor, quickswap: state => state.quickswap, musicOn: state => state.musicOn, - paletteShuffle: state => state.paletteShuffle + paletteShuffle: state => state.paletteShuffle, + reduceFlashing: state => state.reduceFlashing }), flatItemPool() { return this.$store.getters["itemLocations/flatItemPool"]; diff --git a/resources/js/views/HashLoader.vue b/resources/js/views/HashLoader.vue index fa5e5c22a..6d1b4e953 100644 --- a/resources/js/views/HashLoader.vue +++ b/resources/js/views/HashLoader.vue @@ -194,7 +194,8 @@ export default { return this.rom.save(this.rom.downloadFilename() + ".sfc", { quickswap: this.quickswap, paletteShuffle: this.paletteShuffle, - musicOn: this.musicOn + musicOn: this.musicOn, + reduceFlashing: this.reduceFlashing }); }, saveSpoiler() { @@ -223,7 +224,8 @@ export default { heartColor: state => state.heartColor, quickswap: state => state.quickswap, musicOn: state => state.musicOn, - paletteShuffle: state => state.paletteShuffle + paletteShuffle: state => state.paletteShuffle, + reduceFlashing: state => state.reduceFlashing }) } }; diff --git a/resources/js/views/Randomizer.vue b/resources/js/views/Randomizer.vue index 9162a97ca..c34127815 100644 --- a/resources/js/views/Randomizer.vue +++ b/resources/js/views/Randomizer.vue @@ -537,7 +537,8 @@ export default { return this.rom.save(this.rom.downloadFilename() + ".sfc", { quickswap: this.quickswap, paletteShuffle: this.paletteShuffle, - musicOn: this.musicOn + musicOn: this.musicOn, + reduceFlashing: this.reduceFlashing }); }, saveSpoiler() { @@ -605,7 +606,8 @@ export default { heartColor: state => state.heartColor, quickswap: state => state.quickswap, musicOn: state => state.musicOn, - paletteShuffle: state => state.paletteShuffle + paletteShuffle: state => state.paletteShuffle, + reduceFlashing: state => state.reduceFlashing }), editable() { return this.$store.state.randomizer.preset.value === "custom"; diff --git a/resources/js/views/Sprites.vue b/resources/js/views/Sprites.vue index ee86dd6a3..11197af59 100644 --- a/resources/js/views/Sprites.vue +++ b/resources/js/views/Sprites.vue @@ -11,7 +11,7 @@ class="sprite" v-show="searchEx.test(sprite.name) || searchEx.test(sprite.author)" > -
    +
    {{ sprite.name }}
    by: {{ sprite.author }}
    diff --git a/resources/js/vue-i18n-locales.generated.js b/resources/js/vue-i18n-locales.generated.js index f23fe8350..47293cbf8 100644 --- a/resources/js/vue-i18n-locales.generated.js +++ b/resources/js/vue-i18n-locales.generated.js @@ -414,11 +414,73 @@ export default { "Ganon": "Ganon", "Test": "Gegenstand fürs testen" }, - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Wähle Voreinstellungen", - "customize": "Customire", + "rom": { + "loader": { + "title": "Anfangen", + "file_select": "ROM Datei auswählen", + "content": "
    1. Wähle die Rom Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
    2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
    3. Klicke Generiere ROM für Rennen
    4. Dann speichere deine Rom und fang an zu spielen
    " + }, + "info": { + "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", + "mystery": "Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!", + "logic": "Vorausgesetzte Glitches", + "accessibility": "Zugänglichkeit", + "build": "ROM build", + "difficulty": "Schwierigkeitsgrad", + "variation": "Variation", + "shuffle": "Entrance Shuffle", + "mode": "Zustand der Welt", + "weapons": "Schwerter", + "goal": "Ziel", + "permalink": "Permalink", + "special": "Spezial", + "notes": "Notizen", + "generated": "Erstellt" + }, + "settings": { + "heart_speed": "Geschwindigkeit des Warnungston bei wenig Leben", + "heart_speeds": { + "off": "Aus", + "double": "Doppelte Geschwindigkeit", + "normal": "Normale Geschwindigkeit", + "half": "Halbe Geschwindigkeit", + "quarter": "Viertel Geschwindigkeit" + }, + "menu_speed": "Menü Geschwindigkeit", + "menu_speeds": { + "instant": "Instant", + "fast": "Schnell", + "normal": "Normal", + "slow": "Langsam" + }, + "heart_color": "Farbe der Herzen", + "heart_colors": { + "blue": "Blau", + "green": "Grün", + "red": "Rot", + "yellow": "Gelb" + }, + "play_as": "Spiele als", + "sprite_file_select": ".zspr Datei auswählen", + "music": "Hintergrundmusik", + "music_info": "(setze zu \"Keine\" für MSU-1 Support)", + "quickswap": "Gegenstand Schnellwechsel", + "palette_shuffle": "Palette Shuffle", + "race_warning": "Funktioniert nicht in einer Rom für Rennen", + "reduce_flashing": "Blitzeffekte reduzieren", + "reduce_flashing_warning": "Diese Option reduziert die Intensität von Blitzeffekten. Individuelle Lichtempfindlichkeitsreaktionen sind nicht ganz ausgeschlossen." + } + }, + "entrance": { + "title": "Entrance Randomizer", + "switch": { + "item": "Wechsele zum Item Randomizer" + }, + "rom": { + "options": "ROM Optionen" + }, + "difficulty": { + "title": "Schwierigkeit", "options": { "default": "Default", "beginner": "Beginner", @@ -806,14 +868,35 @@ export default { "title": "Boss Shuffle", "options": { "off": "Off", - "basic": "Simple", - "normal": "Full", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Palette Shuffle", - "pot_shuffle": "Pot Shuffle", - "enemy_shuffle": "Enemy Shuffle" + "double": "Double Speed", + "normal": "Normal Speed", + "half": "Half Speed", + "quarter": "Quarter Speed" + }, + "menu_speed": "Menu Speed", + "menu_speeds": { + "instant": "Instant", + "fast": "Fast", + "normal": "Normal", + "slow": "Slow" + }, + "heart_color": "Heart Color", + "heart_colors": { + "blue": "Blue", + "green": "Green", + "red": "Red", + "yellow": "Yellow" + }, + "play_as": "Play As", + "sprite_file_select": "Select .zspr File", + "music": "Background Music", + "music_info": "(set to \"No\" for MSU-1 support)", + "quickswap": "Item Quickswap", + "palette_shuffle": "Palette Shuffle", + "race_warning": "Does not work in Race Roms", + "reduce_flashing": "Reduce Flashing", + "reduce_flashing_warning": "This option only reduces the effects of flashing. Individual photosensitivity to effects may still vary." + } }, "entrance": { "title": "Entrance Randomizer", @@ -2187,6 +2270,172 @@ export default { "Agahnim 2": "Agahnim 2", "Ganon": "Ganon" }, + "rom": { + "loader": { + "title": "Empezar a Jugar", + "file_select": "Selecciona archivo ROM", + "content": "
    1. Selecciona tu archivo ROM y cárgalo en tu navegador (Por favor, usa una ROM Zelda no Densetsu: Kamigami no Triforce v1.0 con extensión .smc o .sfc)
    2. Selecciona las Opciones de Juego para cómo quieres que tu juego sea randomizado
    3. Haz click en Generar ROM para carreras
    4. Guarda tu ROM y ponte a jugar
    " + }, + "info": { + "spoilerwarning": "ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.", + "mystery": "Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!", + "logic": "Glitches Requeridos", + "accessibility": "Accesibilidad", + "build": "Build de la ROM", + "difficulty": "Dificultad", + "variation": "Variación", + "shuffle": "Randomizer de entradas", + "mode": "Estado del mundo", + "weapons": "Espadas", + "goal": "Objetivo", + "permalink": "Enlace permanente", + "special": "Especial", + "notes": "Notas", + "generated": "Creada" + }, + "settings": { + "heart_speed": "Velocidad de Corazones", + "heart_speeds": { + "off": "Desactivado", + "double": "Velocidad Doble", + "normal": "Velocidad Normal", + "half": "Media Velocidad", + "quarter": "Cuarto de Velocidad" + }, + "menu_speed": "Velocidad de Menú", + "menu_speeds": { + "instant": "Instantáneo", + "fast": "Rápido", + "normal": "Normal", + "slow": "Lento" + }, + "heart_color": "Color de Corazones", + "heart_colors": { + "blue": "Azul", + "green": "Verde", + "red": "Rojo", + "yellow": "Amarillo" + }, + "play_as": "Jugar Como", + "sprite_file_select": "Selecciona archivo .zspr", + "music": "Música de fondo", + "music_info": "(poner en \"No\" para soporte con MSU-1)", + "quickswap": "Cambio Rápido de Objetos", + "palette_shuffle": "Paletas aleatorias", + "race_warning": "No funciona en ROMs para carreras", + "reduce_flashing": "Reducir Parpadeos intermitentes", + "reduce_flashing_warning": "Esta opcion solo reduce el efecto del parpadeo, tu sensibilidad a estos efectos aun puede variar." + } + }, + "entrance": { + "title": "Randomizer de Entradas", + "switch": { + "item": "Cambiar a randomizer de objetos" + }, + "rom": { + "options": "Opciones de ROM" + }, + "difficulty": { + "title": "Dificultad", + "options": { + "easy": "Fácil", + "normal": "Normal", + "hard": "Difícil", + "expert": "Experto", + "insane": "Locura" + } + }, + "goal": { + "title": "Objetivo", + "options": { + "ganon": "Derrotar a Ganon", + "crystals": "Cristales", + "dungeons": "Todas las mazmorras", + "pedestal": "Pedestal de la Espada Maestra", + "triforcehunt": "Piezas de la Trifuerza" + } + }, + "logic": { + "title": "Lógica", + "options": { + "NoGlitches": "Sin Glitches" + } + }, + "mode": { + "title": "Tipo", + "options": { + "swordless": "Sin espadas", + "open": "Abierto" + } + }, + "shuffle": { + "title": "Orden", + "options": { + "simple": "Simple", + "restricted": "Restringido", + "full": "Completo", + "crossed": "Cruzado", + "insanity": "Locura" + } + }, + "variation": { + "title": "Variación", + "options": { + "none": "Ninguna", + "timed-race": "Carrera cronometrada", + "timed-ohko": "Muerte Súbita cronometrada", + "ohko": "Muerte Súbita", + "triforce-hunt": "Caza de la Trifuerza", + "key-sanity": "Keysanity", + "retro": "Retro" + } + }, + "generate": { + "race": "Generar ROM para carreras", + "spoiler_race": "Generar ROM para carreras", + "casual": "Generar ROM" + }, + "details": { + "title": "Detalles del juego", + "save_spoiler": "Guardar spoiler", + "save_rom": "Guardar ROM" + } + }, + "enemizer": { + "title": "Randomizer de enemigos (Enemizer)", + "enable": "Activar Enemizer", + "disable": "Desactivar Enemizer", + "enemy_health": { + "title": "Vida de enemigos", + "options": [ + "Normal", + "Fácil (1-4 hp)", + "Medio (2-15 hp)", + "Difícil (2-30 hp)", + "Locura (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Daño de enemigos", + "options": { + "off": "Normal", + "shuffle": "Aleatorio", + "chaos": "Caos" + } + }, + "bosses": { + "title": "Jefes", + "options": { + "off": "Normal", + "basic": "Básico", + "normal": "Normal", + "chaos": "Caos" + } + }, + "palette_shuffle": "Paleta aleatoria", + "pot_shuffle": "Vasijas aleatorias", + "enemy_shuffle": "Enemigos aleatorios" + }, "randomizer": { "title": "Randomizer", "preset": { @@ -2291,7 +2540,7 @@ export default { } }, "entrance_shuffle": { - "title": "Randomizer de entradas", + "title": "Mélangeur d’Entrées", "options": { "none": "Ninguno", "simple": "Simple", @@ -2311,7 +2560,7 @@ export default { } }, "enemy_shuffle": { - "title": "Randomizer de Enemigos", + "title": "Mélangeur d’Ennemis", "options": { "none": "Ninguno", "shuffled": "Barajado", @@ -2343,7 +2592,7 @@ export default { "expert": "Experto", "crowd_control": "Crowd Control" }, - "crowd_control_warning": "* Esta opción está hecha para jugarse con la extensión de Twitch de Crowd Control. Para saber más: https://crowdcontrol.live/" + "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l’extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" }, "item_functionality": { "title": "Funcionalidad de Objetos", @@ -2497,11 +2746,11 @@ export default { }, "canBunnySurf": { "title": "Lapin Surfeur", - "description": "Il peut être requis de marcher sur l'eau en tant que Lapin." + "description": "Il peut être requis de marcher sur l’eau en tant que Lapin." }, "canDungeonRevive": { "title": "Résurrection en Donjon", - "description": "Il peut être requis d'entrer dans un donjon en Lapin, et de mourir, afin de redevenir Link pour collecter des objets." + "description": "Il peut être requis d’entrer dans un donjon en Lapin, et de mourir, afin de redevenir Link pour collecter des objets." }, "canFakeFlipper": { "title": "Fausses Palmes", @@ -2509,11 +2758,11 @@ export default { }, "canMirrorClip": { "title": "Clip au Miroir", - "description": "Il peut être requis d'utiliser des rebonds avec le Miroir pour se transporter hors des limites du jeu." + "description": "Il peut être requis d’utiliser des rebonds avec le Miroir pour se transporter hors des limites du jeu." }, "canMirrorWrap": { "title": "Wrap au Miroir", - "description": "Il peut être requis d\\utiliser le Miroir afin de défiler l'écran à un endroit normalement inaccessible." + "description": "Il peut être requis d\\utiliser le Miroir afin de défiler l’écran à un endroit normalement inaccessible." }, "canOneFrameClipOW": { "title": "Clip d\\Une Image (Monde extérieur)", @@ -2525,27 +2774,27 @@ export default { }, "canOWYBA": { "title": "YBA (Monde extérieur)", - "description": "Il peut être requis d'utiliser des Bocaux dans le monde extérieur afin de se rendre à un endroit normalement inaccessible." + "description": "Il peut être requis d’utiliser des Bocaux dans le monde extérieur afin de se rendre à un endroit normalement inaccessible." }, "canSuperBunny": { "title": "Super Lapin", - "description": "Il peut être requis d'activer la technique du Super Lapin pour accéder à certains endroits et objets." + "description": "Il peut être requis d’activer la technique du Super Lapin pour accéder à certains endroits et objets." }, "canSuperSpeed": { "title": "Super Vitesse", - "description": "Il peut être requis d'utiliser la Super Vitesse afin de passer à travers une barrière dans le monde extérieur." + "description": "Il peut être requis d’utiliser la Super Vitesse afin de passer à travers une barrière dans le monde extérieur." }, "canWaterFairyRevive": { - "title": "Résurrection par une Fée dans l'Eau", - "description": "Cette technique est ridicule et requiert un grand nombre d'objets." + "title": "Résurrection par une Fée dans l’Eau", + "description": "Cette technique est ridicule et requiert un grand nombre d’objets." }, "canWaterWalk": { - "title": "Marche sur l'Eau", - "description": "Il peut être requis d'utiliser les Bottes pour marcher sur l\\eau." + "title": "Marche sur l’Eau", + "description": "Il peut être requis d’utiliser les Bottes pour marcher sur l\\eau." }, "noLogic": { "title": "Désactiver la Logique", - "description": "Quand ceci est activé, les dés en sont jetés, et rien d'autre n'importe.." + "description": "Quand ceci est activé, les dés en sont jetés, et rien d’autre n’importe.." } } }, @@ -3118,7 +3367,7 @@ export default { "build": "Création de ROM", "difficulty": "Difficulté", "variation": "Variation", - "shuffle": "Mélangeur d'Entrées", + "shuffle": "Mélangeur d’Entrées", "mode": "État du Monde", "weapons": "Épées", "goal": "Objectif", @@ -3157,7 +3406,9 @@ export default { "music_info": "(définie sur \"Non\" pour le support MSU-1)", "quickswap": "Changement rapide d’objets", "palette_shuffle": "Mélange des Couleurs de Palettes", - "race_warning": "Ne fonctionne pas dans les ROMs de course" + "race_warning": "Ne fonctionne pas dans les ROMs de course", + "reduce_flashing": "Réduit le clignotement", + "reduce_flashing_warning": "Cette option réduit l'effet de clignotement. Votre sensibilité aux effets de clignotement peut varier." } } } diff --git a/resources/lang/de/options.php b/resources/lang/de/options.php index 831ca65f1..fe32780ed 100644 --- a/resources/lang/de/options.php +++ b/resources/lang/de/options.php @@ -602,13 +602,13 @@ 'music' => [ 'header' => __('rom.settings.music'), 'content' => [ - 'Aktiviere oder deaktiviere die originale Hintergrundmusik. Du musst es nicht deaktivieren um MSU-1 Packs zu nutzen. Falls es aktiviert bleibt während man einen MSU-1 Pack nutzt, dient es als SPC-Fallback und spielt nur Hintergrundmusik ab, falls ein Fehler in der MSU-1 Spur vorliegt (anstatt kompletter Stille)..', + 'Aktiviere oder deaktiviere die originale Hintergrundmusik.', ], ], 'quickswap' => [ 'header' => __('rom.settings.quickswap'), 'content' => [ - 'Erlaubt es den Gegendstand mit L und R zu wechseln ohne das Menü zu öffnen. Dies ist nicht für Rennen verfügbar (außer für Entrance Randomizer).', + 'Erlaubt es den Gegendstand mit L und R zu wechseln ohne das Menü zu öffnen.', ], ], 'palette_shuffle' => [ @@ -617,6 +617,12 @@ 'Die Farbpalleten werden zufällig ausgewählt im Spiel. Dadurch könnte alles sehr bizarr aussehen. Mit Vorsicht aktivieren!', ], ], + 'reduce_flashing' => [ + 'header' => __('rom.settings.reduce_flashing'), + 'content' => [ + 'Die Intensität von Blitzeffekten im Spiel wird deutlich reduziert oder sie werden ganz ausgeschaltet. Vorsicht: Deine Lichtempfindlichkeit kann möglicherweise dennoch auf manche Effekte reagieren.', + ], + ], ], ], 'item_pool' => 'Gegendstandspool', diff --git a/resources/lang/de/races.php b/resources/lang/de/races.php index c9a7429e2..972cf992d 100644 --- a/resources/lang/de/races.php +++ b/resources/lang/de/races.php @@ -1,70 +1,115 @@ 'Organisierte Spiele', + 'header' => 'Organisiertes Spielen', 'cards' => [ 'races' => [ - 'header' => 'Rennen', + 'header' => 'Tägliche und wöchentliche Rennen', 'sections' => [ [ 'header' => '', 'content' => [ - 'Die meisten Rennen werden auf SpeedRacing.tv oder SpeedRunsLive.com ausgetragen. Gehe sicher beide Seiten anzusehen um mehr Informationen zu erhalten wie du bei der Aktion mitmachen kannst!', + 'Die meisten Rennen werden auf RaceTime.gg geführt. Macht euch am besten im Vorfeld mit der Seite vertraut, damit später dem Rennen nichts im Weg steht.', + 'Bevor ihr mit den Rennen anfangt, lest euch die allgemeinen Regeln für Rennen des ALTTPR Racing Councils durch. Bedenkt, dass die Regeln einzelner Turniere abweichen können. Im Zweifel fragt im Vorfeld nach den geltenden Regeln.', ], ], [ - 'header' => 'Wöchentliches Rennen des Standard Modus, Samstags um 15:00 Uhr (3pm) EST/EDT bzw. 21:00 Uhr (9pm) CET/CEST', + 'header' => 'ALTTPR Ladder', 'content' => [ - 'Das führende Community Event, das wöchentliche Rennen hat viele Teilnehmer!', + 'Die ALTTPR Ladder ist eine 1v1 Elo-Rangliste, eine "A Link To the Past Randomizer"-Liga, welche komplett über Discord läuft. In diesem System werden mehere 1v1-Rennen über den Tag organisiert und gespielt. Die Rangliste basiert auf dem System der Standard Elo 32k-Gewichtung.', ], ], [ - 'header' => 'Wöchentliches Rennen des Offen Modus, Sonntags um 17:00 UHR (5pm) EST/EDT bzw. 23:00 Uhr (11pm) CET/CEST', + 'header' => 'SpeedGaming Daily Racing Series', 'content' => [ - 'Trete uns Sonntag bei für ein anderes beliebtes Community Event.', + 'SpeedGaming veranstaltet eine Reihe von täglichen Rennen, welche auf RaceTime.gg stattfinden. Wirf einen Blick in den Zeitplan der kommenden täglichen Rennen.', ], ], [ - 'header' => 'Das nächtliche Community Rennen, 22:00 Uhr (10pm) EST/EDT bzw. 04:00 Uhr (2am) CET/CEST', + 'header' => 'Overworld Glitches Weekly', 'content' => [ - 'Wir haben sogar ein nächtliches Rennen für jeden, der jeden Tag spielen möchte', + 'Das wöchentliche Rennen mit Overworld Glitches findet jede Woche in der Nacht von Mittwoch auf Donnerstag um 04:30 Uhr Mitteleuropäischer Zeit (MEZ) auf RaceTime.gg statt.', ], ], [ 'header' => 'Spontane Rennen', 'content' => [ - 'Die geplannten Rennen passen nicht in dein Zeitplan? Du suchst Rennen mit eher ungenutzen Optionen? Trete einer der ungeplannten Rennen bei! Du wirst rund um die Uhr Spieler finden die gewillt sind, ein Rennen zu machen. Trete dem #race-planning Kanal bei auf unserem Discord!', + 'Die ganzen geplanten Rennen passen nicht in euren Zeitplan oder ihr sucht nach einem Rennen mit ungewöhnlichen Einstellungen? Tretet einfach einem spontanen Rennen bei! Es gibt viele motivierte Mitspieler zu allen Tageszeiten. Werft einen Blick auf den #race-planning Kanal im internationalen Discord!', ], ], ], ], - 'watch' => [ - 'header' => 'Zuschauen', - 'content' => [ - 'Mit so vielen Sachen am laufen, wird es immer ein Rennen zum schauen geben! Folge diese Netzwerken und vermisse niemals ein Rennen!', - ], - ], - 'network' => [ - 'header' => 'Netzwerke für Rennen', - 'content' => [ - 'Im normalfall werden Rennen auf einem Netzwerk für Rennen ausgetragen. Diese Seiten erleichtern das organisieren von Rennen, fügen eine offiziele Zeitanzeige hinzu, und erleichtern das finden von Rennen für Teilnehmer und Zuschauer.', - 'Besuche beide Seiten SpeedRunsLive.com und SpeedRacing.tv für mehr Informationen!', - ], - ], 'tournament' => [ 'header' => 'Turniere', 'sections' => [ [ 'header' => '', 'content' => [ - 'Trete uns bei für aufregende Turniere mit großartigen Kommentar und exzellente Spielzüge!', + 'Tretet einem der großen Turniere bei und erlebt spannende Rennen zusammen mit den besten Spielern und erfahrenen Kommentatoren! Turniere finden das ganze Jahr über statt, auf Discord gibt es die neuesten Informationen.', ], ], [ - 'header' => 'Halbjährliches geschlossenes Turnier', + 'header' => 'ALTTP Randomizer Main Tournament', 'content' => [ - 'Werde Zeuge wenn die besten Spieler um die Trophäe kämpfen! Du denkst du hast das Zeug mit den Besten Schritt zu halten? Trede dem Discord bei und halte Ausschau für die Qualifikationsrennen!', - 'Das Spring Invitational findet statt von März bis Juni.', - 'Das Fall Invitational findet statt von September bis Dezember.', + 'Erlebt hautnah, wie die besten Spieler weltweit antreten und um den Sieg des Turniers (und somit auf eine Verewigung im Spiel selbst im Houlihan-Raum) kämpfen. Seid ihr der Herausforderung gewachsen, euch mit den stärksten Gegnern zu messen? Dann tretet dem ALTTPR Turnier-Discord bei und haltet nach Qualifikationsspielen Ausschau!', + ], + ], + [ + 'header' => 'Challenge Cup', + 'content' => [ + 'Der Challenge Cup ist ein Nebenturnier des Main Tournaments für alle, welche die Qualifikation für das Hauptturnier nicht geschafft haben.', + ], + ], + [ + 'header' => 'ALTTPR League', + 'content' => [ + 'Die ALTTPR-Liga ist ein teambasiertes ALTTPR-Turnier. Spieler schließen sich zu dritt zu einem Team zusammen und messen sich mit anderen Teams in verschiedenen Spiel-Einstellungen.', + ], + ], + [ + 'header' => 'Go Mode Podcast Mentor Tournament', + 'content' => [ + 'Go Mode Podcast veranstaltet jährlich ein Turnier für Neulinge. Dabei werden die Mitspieler von einem Mentor betreut, welcher durch die Rennen begleitet. Die perfekte Vorbereitung für weitere große oder kleine Turniere.', + ], + ], + [ + 'header' => 'ALTTPR Spoiler Tournament', + 'content' => [ + 'Das ALTTPR Spoiler-Turnier findet jährlich statt und gibt den Teilnehmern vor jedem Rennen den kompletten Spoiler Log zur Vorbereitung. Hier werden besonders Spielstärke und Entscheidungsfindung gefordert!', + ], + ], + [ + 'header' => 'ALTTPR Glitched Tournaments', + 'content' => [ + 'Das ALTTPR Glitched Turnier richtet sich an erfahrene Spieler, welche durch "major glitches" das Spiel auf interessante und ungewöhnliche Art und Weise beenden können.', + ], + ], + [ + 'header' => 'ALTTPR Crossworld Keysanity Tournament', + 'content' => [ + 'Im ALTTPR Crossworld Keysanity Tournament erwartet euch eine Mischung der Modi "Crossworld entrance shuffle" gepaart mit "Keysanity". Mit Notizen oder guten Erinnerungen werden die Spieler stark gefordert, um in diesem Gehirnjogging zu den Besten gehören zu können.', + ], + ], + ], + ], + 'foreign_language' => [ + 'header' => 'Language-specific Tournaments and Events', + 'languages' => [ + [ + 'header' => 'Deutsch', + 'description' => 'Auf dem Discord der deutschsprachigen ALTTPR-Community gibt es alles, von Anfängertipps über freundschaftliche Rennen bis hin zu Turnieren.', + 'sections' => [ + [ + 'header' => 'Deutsche ALTTPR-Turniere', + 'content' => [ + 'Es wird ca. einmal im Jahr ein großes Turnier für neue und erfahrene Spieler organisiert. Dazwischen gibt es unregelmäßig kleinere und ausgefallenere Turniere. Ankündigungen und alle Informationen gibt es auf dem Community-Discord.', + ], + ], + [ + 'header' => 'Deutsches ALTTPR-Weekly', + 'content' => [ + 'Jede Woche findet ein größeres Rennen statt, in dem man sich gegen andere Spieler aus der Community messen kann. Neben Open werden auch andere Modi gespielt, die immer durchwechseln. Auf dem Discord gibt es alle Informationen zu den nächsten Rennen und zur Teilnahme.', + ], + ], ], ], ], diff --git a/resources/lang/de/resources.php b/resources/lang/de/resources.php index 7da187b94..594700f7e 100644 --- a/resources/lang/de/resources.php +++ b/resources/lang/de/resources.php @@ -24,7 +24,7 @@ . '
  • Glossar für hilfreiche Sachen
  • ' . '
  • Glitch Ressourcen
  • ' . '
  • Trackers / HUDs
  • ' - . '
  • Wie man durchstartet auf SRL
  • ' + . '
  • Wie man durchstartet auf RaceTime.gg
  • ' . '
', ], ], diff --git a/resources/lang/de/rom.php b/resources/lang/de/rom.php index d53df0eb1..21fb8d01b 100644 --- a/resources/lang/de/rom.php +++ b/resources/lang/de/rom.php @@ -58,5 +58,7 @@ 'quickswap' => 'Gegenstand Schnellwechsel', 'palette_shuffle' => 'Palette Shuffle', 'race_warning' => 'Funktioniert nicht in einer ROM für Rennen', + "reduce_flashing" => "Blitzeffekte reduzieren", + "reduce_flashing_warning" => "Diese Option reduziert die Intensität von Blitzeffekten. Individuelle Lichtempfindlichkeitsreaktionen sind nicht ganz ausgeschlossen." ], ]; diff --git a/resources/lang/en/options.php b/resources/lang/en/options.php index ff8011f8c..0a449a831 100644 --- a/resources/lang/en/options.php +++ b/resources/lang/en/options.php @@ -602,13 +602,13 @@ 'music' => [ 'header' => __('rom.settings.music'), 'content' => [ - 'Enable or disable the original background music. You do not have to disable this if you wish to use MSU-1 packs. If left enabled and using an MSU-1 pack then the original music will act as an SPC fallback and will only play should an MSU-1 track fail (i.e. instead of silence).', + 'Enable or disable the background music, including MSU-1 playback. MSU-1 users should leave this enabled.', ], ], 'quickswap' => [ 'header' => __('rom.settings.quickswap'), 'content' => [ - 'Allow items to be changed with the L and R buttons without opening the menu. This is not available for race ROMs (except when entrances are randomized).', + 'Allow items to be changed with the L and R buttons without opening the menu.', ], ], 'palette_shuffle' => [ @@ -617,6 +617,12 @@ 'Randomizes the colour palettes within the game. This means everything can look extremely bizarre. Enable with caution!', ], ], + 'reduce_flashing' => [ + 'header' => __('rom.settings.reduce_flashing'), + 'content' => [ + 'Severely reduces the intensity of in-game flashing effects, or outright disables them. Please use caution, your photosensitivity to effects may still vary.', + ], + ], ], ], 'item_pool' => 'Item Pool', diff --git a/resources/lang/en/races.php b/resources/lang/en/races.php index 634a34a61..236748d82 100644 --- a/resources/lang/en/races.php +++ b/resources/lang/en/races.php @@ -3,60 +3,143 @@ 'header' => 'Organized Play', 'cards' => [ 'races' => [ - 'header' => 'Races', + 'header' => 'Daily and Weekly Races', 'sections' => [ [ 'header' => '', 'content' => [ - 'Most races are done through SpeedRacing.tv or SpeedRunsLive.com. Be sure to check them out for more info on how to get in on the action!', + 'Most races are done through RaceTime.gg. Be sure to check them out for more info on how to get in on the action!', + 'Before starting you should familiarize yourself with the ALTTPR Racing Council’s General Racing Rules, however individual tournaments or races may have rules that vary. Check with the competition first to make sure you’re in the clear!', ], ], [ - 'header' => 'Weekly Standard Mode Race, Saturdays at 3pm US Eastern Time', + 'header' => 'ALTTPR Ladder', 'content' => [ - 'The premier community event, the weekly race has many competitors!', + 'The ALTTPR Ladder is a 1v1 Elo Ladder, "A Link To the Past Randomizer" league, running completely on Discord. The system is designed to do several 1v1 races throughout the day, and rankings will be based on standard Elo 32k weights.', ], ], [ - 'header' => 'Weekly Open Mode Race, Sundays at 5:30pm US Eastern Time', + 'header' => 'SpeedGaming Daily Racing Series', 'content' => [ - 'Join us Sundays for another popular weekly community race.', + 'SpeedGaming operates a daily race series, which are ran on RaceTime.gg. Check out their upcoming schedule of dailies.', + ], + ], + [ + 'header' => 'Overworld Glitches Weekly', + 'content' => [ + 'The Overworld Glitches Weekly runs at 10:30pm Eastern every Wednesday on RaceTime.gg.', ], ], [ 'header' => 'Pickup Races', 'content' => [ - 'Scheduled races not fitting in with your schedule? Looking to race with some more uncommon options? Join a pickup race! You’ll find willing players at all hours of the day. Join the #race-planning channel in our Discord!', + 'Scheduled races not fitting in with your schedule? Looking to race with some more uncommon options? Join a pickup race! You’ll find willing players at all hours of the day. Join the #race-planning channel in our Discord!', ], ], ], ], - 'watch' => [ - 'header' => 'Watch', - 'content' => [ - 'With so much going on, there’s always a race to watch! Follow these networks and never miss a match!', - ], - ], - 'network' => [ - 'header' => 'Racing Networks', - 'content' => [ - 'Racing is typically done on a racing network. These sites facilitate in organizing races, adding an official timer, and making it easier for both racers and viewers to find races.', - 'Be sure to check out both SpeedRunsLive.com and SpeedRacing.tv for more info!', - ], - ], 'tournament' => [ 'header' => 'Tournaments', 'sections' => [ [ 'header' => '', 'content' => [ - 'Join us for exciting tournament action with expert commentary alongside elite play!', + 'Join us for exciting tournament action with expert commentary alongside elite play! Tournaments are operating all the time, join Discord to stay up to date!', + ], + ], + [ + 'header' => 'ALTTP Randomizer Main Tournament', + 'content' => [ + 'Witness the best racers compete for the trophy and win themselves a coveted place on the Houlihan Telepathic Tile! Think you have what it takes to go toe-to-toe with the best? Join the ALTTPR Tournaments Discord and keep an eye out for qualifying races!', + ], + ], + [ + 'header' => 'Challenge Cup', + 'content' => [ + 'The Challenge Cup is an overflow tournament for those who did not qualify for the main tournament.', ], ], [ - 'header' => 'Annual Main Tournament', + 'header' => 'ALTTPR League', 'content' => [ - 'Witness the best racers compete for the trophy! Think you have what it takes to go toe-to-toe with the best? Join Discord and keep an eye out for qualifying races!', + 'The ALTTPR League is a yearly team-based ALTTPR Tournament. Players form teams of three to complete head to head with other teams using various game settings.', + ], + ], + [ + 'header' => 'Go Mode Podcast Mentor Tournament', + 'content' => [ + 'Go Mode Podcast operates a yearly tournament intended for brand new players. Players have a mentor to help them with at least some of their races, with the intent to prepare players for tournaments big and small.', + ], + ], + [ + 'header' => 'ALTTPR Spoiler Tournament', + 'content' => [ + 'The ALTTPR Spolier Tournament is a yearly tournament that gives the player the spoiler log to study before the race! This tournament is a test of execution and decision making abilities!', + ], + ], + [ + 'header' => 'ALTTPR Glitched Tournaments', + 'content' => [ + 'ALTTPR Glitched Tournaments focuses on tournaments that involve the use of "major glitches" to beat the game in fun and unususal ways!', + ], + ], + [ + 'header' => 'ALTTPR Crossworld Keysanity Tournament', + 'content' => [ + 'The ALTTPR Crossworld Keysanity Tournament is a tournament for Crossworld entrance shuffle, plus keysanity (aka "Crosskeys"). Players put their note taking and memory to the test to be the top player of this mind-bending mode!', + ], + ], + ], + ], + 'foreign_language' => [ + 'header' => 'Language-specific Tournaments and Events', + 'languages' => [ + [ + 'header' => 'Francophone', + 'description' => 'Si vous cherchez des passionnées francophones de ALTTP Randomizer, n’hésitez pas à nous rejoindre sur notre Discord. Il y a toujours des gens prêts à vous donner un coup de main. Il y a souvent des courses amicales qui s’organisent de manière impromptue, et il y règne une bonne ambiance.', + 'sections' => [ + [ + 'header' => 'Tournoi Francophone', + 'content' => [ + 'Nous organisons habituellement un gros tournoi par année, ainsi qu’un micro tournoi à l’occasion. Surveillez le Discord pour être au courant des développements', + ], + ], + [ + 'header' => 'Hebdomadaire Francophone', + 'content' => [ + 'Chaque semaine, une course hebdomadaire entre francophones à lieu. L’horaire est voté par les joueurs sur le Discord de la communauté francophone puis annoncé, au plaisir de tous!', + ], + ], + ], + ], + [ + 'header' => 'Deutsch', + 'description' => 'Auf dem Discord der deutschsprachigen ALTTPR-Community gibt es alles, von Anfängertipps über freundschaftliche Rennen bis hin zu Turnieren.', + 'sections' => [ + [ + 'header' => 'Deutsche ALTTPR-Turniere', + 'content' => [ + 'Es wird ca. einmal im Jahr ein großes Turnier für neue und erfahrene Spieler organisiert. Dazwischen gibt es unregelmäßig kleinere und ausgefallenere Turniere. Ankündigungen und alle Informationen gibt es auf dem Community-Discord.', + ], + ], + [ + 'header' => 'Deutsches ALTTPR-Weekly', + 'content' => [ + 'Jede Woche findet ein größeres Rennen statt, in dem man sich gegen andere Spieler aus der Community messen kann. Neben Open werden auch andere Modi gespielt, die immer durchwechseln. Auf dem Discord gibt es alle Informationen zu den nächsten Rennen und zur Teilnahme.', + ], + ], + ], + ], + [ + 'header' => 'Spanish', + 'description' => 'Something about the community here.', + 'sections' => [ + [ + 'header' => 'Placeholder Tournament', + 'content' => [ + 'The Placeholder Tournament is one I hope doesn’t actually exist, except in our hearts.', + ], + ], ], ], ], diff --git a/resources/lang/en/resources.php b/resources/lang/en/resources.php index 7449f2f38..1a4ecfa8a 100644 --- a/resources/lang/en/resources.php +++ b/resources/lang/en/resources.php @@ -24,7 +24,7 @@ . '
  • General help glossary
  • ' . '
  • Glitch Resources
  • ' . '
  • Trackers / HUDs
  • ' - . '
  • Getting started on SRL
  • ' + . '
  • Getting started on RaceTime.gg
  • ' . '', ], ], diff --git a/resources/lang/en/rom.php b/resources/lang/en/rom.php index eb8985fa3..6afc70ddf 100644 --- a/resources/lang/en/rom.php +++ b/resources/lang/en/rom.php @@ -58,5 +58,7 @@ 'quickswap' => 'Item Quickswap', 'palette_shuffle' => 'Palette Shuffle', 'race_warning' => 'Does not work in Race ROMs', + 'reduce_flashing' => 'Reduce Flashing', + 'reduce_flashing_warning' => 'This option only reduces the effects of flashing. Individual photosensitivity to effects may still vary.', ], ]; diff --git a/resources/lang/es/options.php b/resources/lang/es/options.php index 7f704e1a6..615e45757 100644 --- a/resources/lang/es/options.php +++ b/resources/lang/es/options.php @@ -602,13 +602,13 @@ 'music' => [ 'header' => __('rom.settings.music'), 'content' => [ - 'Activa o desactiva la música de fondo original. No tienes que desactivar esto si deseas usar paquetes MSU-1. Si se deja activado y se está usando un paquete MSU-1, entonces la música originals se usará como una reserva y solo sonará si hay un error de carga del MSU-1 (en lugar de silencio).', + 'Activa o desactiva la música de fondo original.', ], ], 'quickswap' => [ 'header' => __('rom.settings.quickswap'), 'content' => [ - 'Permite que el objeto equipado se cambie usando los botones L y R sin abrir el menú. No está disponible para ROMs de carreras (excepto cuando las entradas estén randomizadas).', + 'Permite que el objeto equipado se cambie usando los botones L y R sin abrir el menú.', ], ], 'palette_shuffle' => [ @@ -617,6 +617,12 @@ 'Randomiza las paletas de color del juego. Esto significa que todo podria verse muy extraño. ¡Actívalo con cuidado!', ], ], + 'reduce_flashing' => [ + 'header' => __('rom.settings.reduce_flashing'), + 'content' => [ + 'Reduce severamente la intensidad de efectos del juego que parpadeen, o directamente los desactiva. Tener cuidado, tu sensibilidad a los efectos aun puede variar.', + ], + ], ], ], 'item_pool' => 'Reserva de Objetos', diff --git a/resources/lang/es/races.php b/resources/lang/es/races.php index 63073b272..ea89216d5 100644 --- a/resources/lang/es/races.php +++ b/resources/lang/es/races.php @@ -1,70 +1,110 @@ + 'Partidas Organizadas', 'cards' => [ 'races' => [ - 'header' => 'Carreras', + 'header' => 'Carreras Semanales y Diarias', 'sections' => [ [ 'header' => '', 'content' => [ - 'La mayoría de carreras se hacen a través de SpeedRacing.tv o SpeedRunsLive.com. ¡No olvides entrar a ellas para informarte sobre cómo unirte a la acción!', + 'La mayoría de las carreras se realizan a través de RaceTime.gg. ¡Asegúrate de visitar la página para tener más informacion de cómo unirse a la acción!', + 'Antes de empezar, deberías familiarizarte con las Reglas Generales de Carrera del Consejo de ALTTPR. Sin embargo, ten en cuenta que las reglas quedan sujetas siempre a modificaciones y actualizaciones posteriores. Además, cada torneo o carrera particular puede que aplique sus propias variaciones de la normativa, ¡así que comprueba las reglas de cada competición con antelación para asegurarte de que todo está en orden!', ], ], [ - 'header' => 'Carrera de Modo Estándar semanal, Sábados a las 3pm EST', + 'header' => 'ALTTPR Ladder', 'content' => [ - 'El evento principal de la comunidad, ¡esta carrera semanal tiene muchos participantes!', + 'La Ladder de ALTTPR es un sistema competitivo rankeado que utiliza el sistema de puntuación Elo. Funciona completamente por Discord. Para participar, has de unirte a la cola antes de la hora de inicio, al modo de partida que decidas y que esté disponible. Entonces serás emparejado con un rival de manera anónima en una partida 1v1. Dispondrás de un tiempo para bajarte la seed correspondiente y completarla, y al acabar marcar que has finalizado. Según ganes o pierdas, ganarás o perderás más puntos según cuál sea la diferencia de puntos entre tu oponente y tú. El sistema esta diseñado para que ocurran varias carreras 1v1 a lo largo del día, ofrenciendo una gran variedad de horas a las que poder jugar. Los rankings, una vez finalice el tiempo establecido de la temporada de la ladder, se basan en pesos estandar de Elo 32K.', ], ], [ - 'header' => 'Carrera de Modo Abierto semanal, Domingos a las 5pm EST', + 'header' => 'Carreras Diarias de SpeedGaming', 'content' => [ - 'Únete cada domingo para otra popular carrera semanal de la comunidad.', + 'SpeedGaming realiza una carrera diaria oficial, en horas preestablecidas con antelación, que funcionan a través de RaceTime.gg. La normativa y ajustes de la seed varían con cada carrera, y lo único necesario para participar es unirse, como mínimo, unos minutos antes de que empiece la carrera al racetime.gg correspondiente. Aquí podrás encontrar los horarios de las inminentes carreras diarias.', ], ], [ - 'header' => 'Carrera Nocturna de la Comunidad, 10pm EST', + 'header' => 'Semanal de Overworld Glitches', 'content' => [ - '¡También tenemos una carrera nocturna para cualquiera que quiera jugar cada día!', + 'La semanal de Overworld, o Glitches de Mundo Abierto, se lleva a cabo a las 10:30pm EDT cada miércoles en RaceTime.gg.', ], ], [ - 'header' => 'Carreras Espontáneas', + 'header' => 'Carreras Improvisadas', 'content' => [ - '¿Las carreras programadas no encajan con tu horario? ¿Buscas una carrera usando opciones poco comunes? ¡Únete a una carrera espontánea! Puedes encontrar jugadores dispuestos a cualquier hora del día. ¡Entra al canal #race-planning en nuestro Discord!', + '¿Las carreras ya planeadas no encajan en tu agenda? ¿O buscas a alguien contra quien correr con opciones o ajustes menos comunes? ¡Únete a una carrera improvisada! Encontrarás jugadores dispuestos a jugar a cualquier hora del día. Comprueba el canal #race-planning en nuestro Discord para saber qué se está organizando.', ], ], ], ], - 'watch' => [ - 'header' => 'Ver', - 'content' => [ - 'Con todo lo que va pasando, ¡siempre hay una carrera que ver! ¡Sigue estos canales para no perderte ningún enfrentamiento!', - ], - ], - 'network' => [ - 'header' => 'Comunidades de Carreras', - 'content' => [ - 'Las carreras típicamente se hacen en comunidades de carreras. Estas páginas facilitan organizer carreras, añadir un temporizador oficial, y hacen encontrar carreras fácil tanto para jugadores como para espectadores.', - '¡No olvides mirar tanto SpeedRunsLive.com como SpeedRacing.tv para más información!', - ], - ], 'tournament' => [ 'header' => 'Torneos', 'sections' => [ [ 'header' => '', 'content' => [ - '¡Únete para excitante acción en torneos con comentario experto junto a juego de alto nivel!', + '¡Únete a otros jugadores en la emocionante experiencia de participar en un torneo de ALTTPR, con comentaristas expertos y jugadores de élite! Hay torneos operando todo el tiempo: únete a Discord para estar al día.', ], ], [ - 'header' => 'Torneo Invitacional Bianual', + 'header' => 'ALTTP Randomizer Torneo Principal', 'content' => [ - '¡Presencia los mejores jugadores competir por el trofeo! ¿Crees que tienes lo que hay que tener para enfrentarte cara a cara con los mejores? ¡Entra a Discord y estate atento a las carreras de calificación!', - 'El Invitacional de Primavera va de marzo a junio.', - 'El Invitacional de Otoño va de septiembre a diciembre.', + '¡Sé testigo y partícipe de cómo los mejores corredores compiten en el torneo más importante del año por el trofeo, la gloria y llegar a ganar un puesto en la Baldosa Telepatica de Houlihan! ¿Crees que tienes lo que hace falta para competir con los mejores? Únete a ALTTPR Tournaments Discord y estate atento a carreras clasificatorias!', + ], + ], + [ + 'header' => 'Copa Desafío', + 'content' => [ + 'La Copa Desafío es un torneo complementario para aquellos que no logran clasificarse para la fase de grupos del torneo principal, tras las clasificatorias. Con un menor nivel, resulta ideal para aquellos que acaban de empezar o que tienen menor habilidad y experiencia. Eso sí, las partidas son igual de emocionantes que en el torneo principal, ¡no te las pierdas!', + ], + ], + [ + 'header' => 'Liga ALTTPR', + 'content' => [ + 'La Liga ALTTPR es un torneo de ALTTPR por equipos anual. Los jugadores forman equipos de 3 y compiten con otros equipos en diferentes modos de juego.', + ], + ], + [ + 'header' => 'Torneo de Mentores del Go Mode Podcast', + 'content' => [ + 'Go Mode Podcast habilita un torneo anual diseñado para jugadores noveles. A cada jugador se le asigna un mentor, que ayudará y ensenará al principante los diferentes conceptos, estrategias y trucos para afrontar las carreras de la mejor manera posible, con la intencion de preparar a los jugadores para otros torneos futuros, grandes o pequeños.', + ], + ], + [ + 'header' => 'Torneo Spoiler de ALTTPR', + 'content' => [ + 'El Torneo Spoiler de ALTTPR es un torneo anual que da a los jugadores el Spoiler Log para que puedan estudiarlo antes de la carrera. Este torneo es una prueba de ejecución y toma de decisiones, pues saber elaborar la mejor ruta para obtener los objetos necesarios es la clave de la victoria.', + ], + ], + [ + 'header' => 'Torneo ALTTPR con Glitches', + 'content' => [ + 'El Torneo de ALTTPR con Glitches se centra en modalidades que implican el uso de "glitches mayores" para terminar el juego en formas tan divertidas como inusuales.', + ], + ], + [ + 'header' => 'Torneo ALTTPR Crossworld Keysanity ', + 'content' => [ + 'El Torneo ALTTPR Crossworld Keysanity es un torneo de con entradas aleatorizadas de un mundo a otro, con Keysanity (modalidad también conocida como "Crosskeys"). Los jugadores tendrán su memoria y su habilidad de poder tomar notas puestas a prueba para ser el mejor en este alocado modo, en el que no perderse y explorar resulta decisivo.', + ], + ], + ], + ], + 'foreign_language' => [ + 'header' => 'Language-specific Tournaments and Events', + 'languages' => [ + [ + 'header' => 'Spanish', + 'description' => 'Join the Spanish Speak.', + 'sections' => [ + [ + 'header' => 'Placeholder Tournament', + 'content' => [ + 'The Placeholder Tournament is one I hope doesn’t actually exist, except in our hearts.', + ], + ], ], ], ], diff --git a/resources/lang/es/resources.php b/resources/lang/es/resources.php index a1b23770c..7e2c4643d 100644 --- a/resources/lang/es/resources.php +++ b/resources/lang/es/resources.php @@ -24,7 +24,7 @@ . '
  • Glosario general de ayuda
  • ' . '
  • Recursos sobre glitches
  • ' . '
  • Trackers / HUDs
  • ' - . '
  • Empezar en SRL
  • ' + . '
  • Empezar en RaceTime.gg
  • ' . '', ], ], diff --git a/resources/lang/es/rom.php b/resources/lang/es/rom.php index 15296b7b5..90bba8070 100644 --- a/resources/lang/es/rom.php +++ b/resources/lang/es/rom.php @@ -58,5 +58,7 @@ 'quickswap' => 'Cambio Rápido de Objetos', 'palette_shuffle' => 'Paletas aleatorias', 'race_warning' => 'No funciona en ROMs para carreras', + 'reduce_flashing' => 'Reducir Parpadeos intermitentes', + 'reduce_flashing_warning' => 'Esta opcion solo reduce el efecto del parpadeo, tu sensibilidad a estos efectos aun puede variar.', ], ]; diff --git a/resources/lang/fr/customizer.php b/resources/lang/fr/customizer.php index 722ec2d7f..757d9f79c 100644 --- a/resources/lang/fr/customizer.php +++ b/resources/lang/fr/customizer.php @@ -29,11 +29,11 @@ ], 'canBunnySurf' => [ 'title' => 'Lapin Surfeur', - 'description' => 'Il peut être requis de marcher sur l\'eau en tant que Lapin.', + 'description' => 'Il peut être requis de marcher sur l’eau en tant que Lapin.', ], 'canDungeonRevive' => [ 'title' => 'Résurrection en Donjon', - 'description' => 'Il peut être requis d\'entrer dans un donjon en Lapin, et de mourir, afin de redevenir Link pour collecter des objets.', + 'description' => 'Il peut être requis d’entrer dans un donjon en Lapin, et de mourir, afin de redevenir Link pour collecter des objets.', ], 'canFakeFlipper' => [ 'title' => 'Fausses Palmes', @@ -41,11 +41,11 @@ ], 'canMirrorClip' => [ 'title' => 'Clip au Miroir', - 'description' => 'Il peut être requis d\'utiliser des rebonds avec le Miroir pour se transporter hors des limites du jeu.', + 'description' => 'Il peut être requis d’utiliser des rebonds avec le Miroir pour se transporter hors des limites du jeu.', ], 'canMirrorWrap' => [ 'title' => 'Wrap au Miroir', - 'description' => 'Il peut être requis d\utiliser le Miroir afin de défiler l\'écran à un endroit normalement inaccessible.', + 'description' => 'Il peut être requis d\utiliser le Miroir afin de défiler l’écran à un endroit normalement inaccessible.', ], 'canOneFrameClipOW' => [ 'title' => 'Clip d\Une Image (Monde extérieur)', @@ -57,27 +57,27 @@ ], 'canOWYBA' => [ 'title' => 'YBA (Monde extérieur)', - 'description' => 'Il peut être requis d\'utiliser des Bocaux dans le monde extérieur afin de se rendre à un endroit normalement inaccessible.', + 'description' => 'Il peut être requis d’utiliser des Bocaux dans le monde extérieur afin de se rendre à un endroit normalement inaccessible.', ], 'canSuperBunny' => [ 'title' => 'Super Lapin', - 'description' => 'Il peut être requis d\'activer la technique du Super Lapin pour accéder à certains endroits et objets.', + 'description' => 'Il peut être requis d’activer la technique du Super Lapin pour accéder à certains endroits et objets.', ], 'canSuperSpeed' => [ 'title' => 'Super Vitesse', - 'description' => 'Il peut être requis d\'utiliser la Super Vitesse afin de passer à travers une barrière dans le monde extérieur.', + 'description' => 'Il peut être requis d’utiliser la Super Vitesse afin de passer à travers une barrière dans le monde extérieur.', ], 'canWaterFairyRevive' => [ - 'title' => 'Résurrection par une Fée dans l\'Eau', - 'description' => 'Cette technique est ridicule et requiert un grand nombre d\'objets.', + 'title' => 'Résurrection par une Fée dans l’Eau', + 'description' => 'Cette technique est ridicule et requiert un grand nombre d’objets.', ], 'canWaterWalk' => [ - 'title' => 'Marche sur l\'Eau', - 'description' => 'Il peut être requis d\'utiliser les Bottes pour marcher sur l\eau.', + 'title' => 'Marche sur l’Eau', + 'description' => 'Il peut être requis d’utiliser les Bottes pour marcher sur l\eau.', ], 'noLogic' => [ 'title' => 'Désactiver la Logique', - 'description' => 'Quand ceci est activé, les dés en sont jetés, et rien d\'autre n\'importe..', + 'description' => 'Quand ceci est activé, les dés en sont jetés, et rien d’autre n’importe..', ], ] ]; diff --git a/resources/lang/fr/options.php b/resources/lang/fr/options.php index 1fc1134ac..dcc90b36a 100644 --- a/resources/lang/fr/options.php +++ b/resources/lang/fr/options.php @@ -9,7 +9,7 @@ [ 'header' => __('randomizer.glitches_required.options.none'), 'content' => [ - 'Ce paramètre ne demande la connaissance d\'aucun glitch ou technique.', + 'Ce paramètre ne demande la connaissance d’aucun glitch ou technique.', ], ], [ @@ -22,7 +22,7 @@ . '
  • Résurrection du Lapin en donjon
  • ' . '
  • Super Lapin
  • ' . '
  • Lapin Surfeur
  • ' - . '
  • Marche sur l\'Eau
  • ' + . '
  • Marche sur l’Eau
  • ' . '', ], ], @@ -32,21 +32,21 @@ 'Ce paramètre requiert la connaissance de glitchs plus avancés. Spécifiquement:', '
      ' . '
    • Fausses flûtes (Monde Extérieur) (voir YBA)
    • ' - . '
    • Wraps d\'écrans (Monde Extérieur)
    • ' - . '
    • Clips sans Bottes (inclut Clip d\'Une Image) (Monde Extérieur et Inférieur)
    • ' + . '
    • Wraps d’écrans (Monde Extérieur)
    • ' + . '
    • Clips sans Bottes (inclut Clip d’Une Image) (Monde Extérieur et Inférieur)
    • ' . '
    ', 'Quelques changements additionnels ont été faits:', '
      ' . '
    • Les "faux mondes" existent à nouveau, comme dans le jeu original (Exemple : Mourir dans un donjon du monde des Ténèbres sans avoir défait Aganhim vous mettra dans le Faux Monde des Ténèbres)
    • ' . '
    • Crystals always drop regardless of pendant conflicts (QoL fix from the original)Les Cristaux vont toujours apparaître, malgré les conflits de pendantifs (correction du jeu original pour la qualité de vie)
    • ' - . '
    • Les niveaux d\'eau de Swamp Palace ne se re-drainent plus quand vous quittez l\'écran du Monde Extérieur (sauf la première piece)
    • ' + . '
    • Les niveaux d’eau de Swamp Palace ne se re-drainent plus quand vous quittez l’écran du Monde Extérieur (sauf la première piece)
    • ' . '
    ', ], ], [ 'header' => __('randomizer.glitches_required.options.no_logic'), 'content' => [ - 'Aucune logique n\'est appliquée, rien du tout. Les objets peuvent être n\'importe où. Il peut être impossible d\'obtenir des objets, mais, grâce à la force des Glitchs Majeurs, il est extrêmement rare qu\'un jeu ne puisse être battu. Ce paramètre requiert généralement un usage extensif de glitchs normalement exclus des règles des autres logiques (notamment, l\'EG, les Door Glitches et la Résurrection du Lapin en Extérieur).', + 'Aucune logique n’est appliquée, rien du tout. Les objets peuvent être n’importe où. Il peut être impossible d’obtenir des objets, mais, grâce à la force des Glitchs Majeurs, il est extrêmement rare qu’un jeu ne puisse être battu. Ce paramètre requiert généralement un usage extensif de glitchs normalement exclus des règles des autres logiques (notamment, l’EG, les Door Glitches et la Résurrection du Lapin en Extérieur).', ], ], ], @@ -57,13 +57,13 @@ [ 'header' => __('randomizer.item_placement.options.basic'), 'content' => [ - 'Ce paramètre est conçu pour des joueurs plus nouveaux, ou recherchant une expérience de détente. Il existe des restrictions de logique supplémentaires afin d\'éviter le placement d\'objets à des endroits requiérant des connaissances trop spécifiques pour être accédés (Exemple: la Bumper Cave sans le Grappin). Le jeu s\'assure également d\'éviter une exécution trop compliquée pour progresser. Par exemple, si vous devez finir un donjon du Monde des Ténèbres qui est normalement parmi les derniers, vous aurez toujours accès à des améliorations d\'épées ou de défense quelque part dans le monde.', + 'Ce paramètre est conçu pour des joueurs plus nouveaux, ou recherchant une expérience de détente. Il existe des restrictions de logique supplémentaires afin d’éviter le placement d’objets à des endroits requiérant des connaissances trop spécifiques pour être accédés (Exemple: la Bumper Cave sans le Grappin). Le jeu s’assure également d’éviter une exécution trop compliquée pour progresser. Par exemple, si vous devez finir un donjon du Monde des Ténèbres qui est normalement parmi les derniers, vous aurez toujours accès à des améliorations d’épées ou de défense quelque part dans le monde.', ], ], [ 'header' => __('randomizer.item_placement.options.advanced'), 'content' => [ - 'Ce paramètre est conçu pour des joueurs plus réguliers, et les coureurs. L\'intention de ce paramètre est de maximiser les possibilités d\'objets pouvant être atteints sans glitchs. Seule une exception est faite, les pièces noires ne sont pas requises. Aucune autre exception n\'est faite regardant la possibilité d\'un objet finissant dans un endroit obscur, ou la difficulté à atteindre un emplacement. Il est attendu qu\'un joueur qui choisit ce paramètre est suffisamment familiarisé et expérimenté avec le jeu original.', + 'Ce paramètre est conçu pour des joueurs plus réguliers, et les coureurs. L’intention de ce paramètre est de maximiser les possibilités d’objets pouvant être atteints sans glitchs. Seule une exception est faite, les pièces noires ne sont pas requises. Aucune autre exception n’est faite regardant la possibilité d’un objet finissant dans un endroit obscur, ou la difficulté à atteindre un emplacement. Il est attendu qu’un joueur qui choisit ce paramètre est suffisamment familiarisé et expérimenté avec le jeu original.', ], ], ], @@ -74,31 +74,31 @@ [ 'header' => '', 'content' => [ - 'Lorsque les cartes sont déplacées hors des donjons, la carte du Monde ne renseignera plus sur les prix (cristaux/pendantifs) des donjons sans avoir la carte du donjon. Cependant, les cartes sont toujours requises par la logique, que la logique de placement des objets soit Basique ou Avancée. Notez que le boss d\'un donjon peut tenir sa propre carte.', + 'Lorsque les cartes sont déplacées hors des donjons, la carte du Monde ne renseignera plus sur les prix (cristaux/pendantifs) des donjons sans avoir la carte du donjon. Cependant, les cartes sont toujours requises par la logique, que la logique de placement des objets soit Basique ou Avancée. Notez que le boss d’un donjon peut tenir sa propre carte.', ], ], [ 'header' => __('randomizer.dungeon_items.options.standard'), 'content' => [ - 'Les objets propres aux donjons sont randomisés, mais toujours dans leur donjon d\'origine.', + 'Les objets propres aux donjons sont randomisés, mais toujours dans leur donjon d’origine.', ], ], [ 'header' => __('randomizer.dungeon_items.options.mc'), 'content' => [ - 'Seules les clefs restent randomisées à l\'intérieur de leurs donjons spécifiques. Les cartes et boussoles peuvent finir n\'importe où, y compris parfois dans leur donjon d\'origine.', + 'Seules les clefs restent randomisées à l’intérieur de leurs donjons spécifiques. Les cartes et boussoles peuvent finir n’importe où, y compris parfois dans leur donjon d’origine.', ], ], [ 'header' => __('randomizer.dungeon_items.options.mcs'), 'content' => [ - 'Seules les grandes clefs restent randomisées à l\'intérieur de leurs donjons spécifiques. Les petites clefs, cartes et boussoles peuvent finir n\'importe où, y compris parfois dans leur donjon d\'origine.', + 'Seules les grandes clefs restent randomisées à l’intérieur de leurs donjons spécifiques. Les petites clefs, cartes et boussoles peuvent finir n’importe où, y compris parfois dans leur donjon d’origine.', ], ], [ 'header' => __('randomizer.dungeon_items.options.full'), 'content' => [ - 'Les cartes, boussoles, petites et grandes clefs peuvent se retrouver n\'importe où dans le monde L\'aléatoire peut décider malgré tout de placer l\'une ou l\'autre dans son donjon d\'origine.', + 'Les cartes, boussoles, petites et grandes clefs peuvent se retrouver n’importe où dans le monde L’aléatoire peut décider malgré tout de placer l’une ou l’autre dans son donjon d’origine.', ], ], ], @@ -109,19 +109,19 @@ [ 'header' => __('randomizer.accessibility.options.items'), 'content' => [ - 'Ce paramètre s\'assure que tous les objets de l\'inventaire peuvent être obtenus, mais peut décider d\'enfermer l\'une ou l\'autre clef. Par exemple, des grandes clefs non requises peuvent être dans le grand coffre, ou certaines petites clefs peuvent être derrière des portes à clefs (que vous pourriez accéder, ou pas, selon votre usage personnel). En pratique, quasi l\'entièreté du monde devrait être accessible, avec ce paramètre.', + 'Ce paramètre s’assure que tous les objets de l’inventaire peuvent être obtenus, mais peut décider d’enfermer l’une ou l’autre clef. Par exemple, des grandes clefs non requises peuvent être dans le grand coffre, ou certaines petites clefs peuvent être derrière des portes à clefs (que vous pourriez accéder, ou pas, selon votre usage personnel). En pratique, quasi l’entièreté du monde devrait être accessible, avec ce paramètre.', ], ], [ 'header' => __('randomizer.accessibility.options.locations'), 'content' => [ - 'Ce paramètre s\'assure que vous puissiez toujours atteindre les 216 emplacements du jeu, peu importe si les clefs sont usées de façon non efficace dans les donjons. Plus spécifiquement, les grandes clefs ne seront jamais dans leur propre grand coffre, et certains coffres derrière des portes à clefs ne contiendront pas de petite clef.', + 'Ce paramètre s’assure que vous puissiez toujours atteindre les 216 emplacements du jeu, peu importe si les clefs sont usées de façon non efficace dans les donjons. Plus spécifiquement, les grandes clefs ne seront jamais dans leur propre grand coffre, et certains coffres derrière des portes à clefs ne contiendront pas de petite clef.', ], ], [ 'header' => __('randomizer.accessibility.options.none'), 'content' => [ - 'Ce paramètre s\'assure seulement de la complétion du jeu. Vous pouvez ne pas être capable de trouver un objet non requis (par exemple, la Baguette de Feu si elle n\'est pas requise) ou d\'entrer un donjon non requis.', + 'Ce paramètre s’assure seulement de la complétion du jeu. Vous pouvez ne pas être capable de trouver un objet non requis (par exemple, la Baguette de Feu si elle n’est pas requise) ou d’entrer un donjon non requis.', ], ], ], @@ -132,19 +132,19 @@ [ 'header' => __('randomizer.goal.options.ganon'), 'content' => [ - 'Ce paramètre requiert la complétion de la Tour de Ganon en plus de défaire Ganon. Le nombre de cristaux requis pour la Tour de Ganon dépend d\'un autre paramètre.', + 'Ce paramètre requiert la complétion de la Tour de Ganon en plus de défaire Ganon. Le nombre de cristaux requis pour la Tour de Ganon dépend d’un autre paramètre.', ], ], [ 'header' => __('randomizer.goal.options.fast_ganon'), 'content' => [ - 'Ce paramètre demande seulement de défaire Ganon, sans la complétion de la Tour de Ganon. Pour que cela fonctionne, le trou au sommet de la Pyramide existe toujours (sauf si vous jouez un Randomiseur d\'Entrées). Le nombre de cristaux requis pour battre Ganon dépend d\'un autre paramètre.', + 'Ce paramètre demande seulement de défaire Ganon, sans la complétion de la Tour de Ganon. Pour que cela fonctionne, le trou au sommet de la Pyramide existe toujours (sauf si vous jouez un Randomiseur d’Entrées). Le nombre de cristaux requis pour battre Ganon dépend d’un autre paramètre.', ], ], [ 'header' => __('randomizer.goal.options.dungeons'), 'content' => [ - 'Ce paramètre requiert la complétion de tous les donjons. Ceci inclut les 3 donjons du Monde de la Lumière, les 7 du Monde des Ténèbres, la Tour d\'Aganhim et la Tour de Ganon.', + 'Ce paramètre requiert la complétion de tous les donjons. Ceci inclut les 3 donjons du Monde de la Lumière, les 7 du Monde des Ténèbres, la Tour d’Aganhim et la Tour de Ganon.', ], ], [ @@ -156,7 +156,7 @@ [ 'header' => __('randomizer.goal.options.triforce-hunt'), 'content' => [ - 'La Triforce a été brisée en 30 morceaux, éparpillés à travers Hyrule! Vous devez retrouver 20 des 30 pièces, et les emmener à Murahdhala pour recevoir la Triforce. Qui est ce Murahdahla, me direz-vous? Mais enfin, il est évidemment le petit frère de Sahasrahla et Aginah! De retour de ses vacances à Lorule, vous le trouverez dans la cour du Château d\'Hyrule.', + 'La Triforce a été brisée en 30 morceaux, éparpillés à travers Hyrule! Vous devez retrouver 20 des 30 pièces, et les emmener à Murahdhala pour recevoir la Triforce. Qui est ce Murahdahla, me direz-vous? Mais enfin, il est évidemment le petit frère de Sahasrahla et Aginah! De retour de ses vacances à Lorule, vous le trouverez dans la cour du Château d’Hyrule.', ], ], ], @@ -164,13 +164,13 @@ 'tower_open' => [ 'header' => __('randomizer.tower_open.title'), 'content' => [ - 'Ce paramètre vous laisse choisir le nombre de cristaux requis pour ouvrir la Tour de Ganon. Si vous choisissez 0, alors la Tour est accessible sans rien. Si vous choisissez "Aléatoire", alors il y aura un panneau devant la Tour vous indiquant combien de cristaux sont requis. En mode Inversé, le panneau sera en dehors du Château d\'Hyrule, en toute accordance.', + 'Ce paramètre vous laisse choisir le nombre de cristaux requis pour ouvrir la Tour de Ganon. Si vous choisissez 0, alors la Tour est accessible sans rien. Si vous choisissez "Aléatoire", alors il y aura un panneau devant la Tour vous indiquant combien de cristaux sont requis. En mode Inversé, le panneau sera en dehors du Château d’Hyrule, en toute accordance.', ], ], 'ganon_open' => [ 'header' => __('randomizer.ganon_open.title'), 'content' => [ - 'Ce paramètre vous laisse choisir le nombre de cristaux requis pour que Ganon soit vulnérable à vos attaques! Si vous choisissez 0, alors il peut être battu dès que vous le trouvez. Si Aléatoire est choisi, alors un panneau vous informera du nombre requis sur la Pyramide. En mode Inversé, ce panneau se trouvera au Château d\'Hyrule, en toute accordance.', + 'Ce paramètre vous laisse choisir le nombre de cristaux requis pour que Ganon soit vulnérable à vos attaques! Si vous choisissez 0, alors il peut être battu dès que vous le trouvez. Si Aléatoire est choisi, alors un panneau vous informera du nombre requis sur la Pyramide. En mode Inversé, ce panneau se trouvera au Château d’Hyrule, en toute accordance.', ], ], 'world_state' => [ @@ -179,13 +179,13 @@ [ 'header' => __('randomizer.world_state.options.standard'), 'content' => [ - 'Ce paramètre est le plus semblable au jeu original. Il maintient le prologue original, le sauvetage de Zelda dans le Château d\'Hyrule, et votre parcours avec elle jusqu\'au Sanctuaire. Ceci doit être fait afin de gagner votre accès au reste de Hyrule. Votre oncle vous donnera toujours un objet pour vaincre les ennemis du château (mais pas forcément une épée). Les égouts seront éclairés par Zelda jusqu\'au sanctuaire, mais toute visite plus tard dans le jeu demandera la Lampe pour voir dans le noir, et ceci inclut les Egouts.', + 'Ce paramètre est le plus semblable au jeu original. Il maintient le prologue original, le sauvetage de Zelda dans le Château d’Hyrule, et votre parcours avec elle jusqu’au Sanctuaire. Ceci doit être fait afin de gagner votre accès au reste de Hyrule. Votre oncle vous donnera toujours un objet pour vaincre les ennemis du château (mais pas forcément une épée). Les égouts seront éclairés par Zelda jusqu’au sanctuaire, mais toute visite plus tard dans le jeu demandera la Lampe pour voir dans le noir, et ceci inclut les Egouts.', ], ], [ 'header' => __('randomizer.world_state.options.open'), 'content' => [ - 'Ce paramètre démarre le jeu comme si le prologue a déjà été accompli. Zelda est déjà sauvée, et vous pouvez démarrer à la maison de Link ou au Sanctuaire. Aucun coffre de Hyrule n\'est ouvert, à vous de décider lesquels visiter, et à quel moment.', + 'Ce paramètre démarre le jeu comme si le prologue a déjà été accompli. Zelda est déjà sauvée, et vous pouvez démarrer à la maison de Link ou au Sanctuaire. Aucun coffre de Hyrule n’est ouvert, à vous de décider lesquels visiter, et à quel moment.', ], ], [ @@ -193,25 +193,25 @@ 'content' => [ 'Ce paramètre place Link dans le Monde des Ténèbres dès le début, vous devrez trouver Ganon dans le Monde de la Lumière! Plusieurs changements ont été faits pour que ce mode fonctionne mieux:', '
      ' - . '
    • Les Tours de Ganon et d\'Aganhim ont échangé de place.
    • ' - . '
    • Ganon a abandonné la Pyramide, et vit sous le Château d\'Hyrule.
    • ' + . '
    • Les Tours de Ganon et d’Aganhim ont échangé de place.
    • ' + . '
    • Ganon a abandonné la Pyramide, et vit sous le Château d’Hyrule.
    • ' . '
    • Les portails vous emmènent désormais, depuis le Monde des Ténèbres, vers le Monde de la Lumière.
    • ' - . '
    • Link sera un Lapin dans le Monde de la Lumière s\'il n\'a pas la Perle de Lune.
    • ' + . '
    • Link sera un Lapin dans le Monde de la Lumière s’il n’a pas la Perle de Lune.
    • ' . '
    • Le Miroir Magique vous emmène désormais, depuis le Monde de la Lumière, vers le Monde des Ténèbres.
    • ' - . '
    • Les cristaux ouvrent désormais la porte menant à la Tour d\'Aganhim. La Tour de Ganon est ouverte.
    • ' + . '
    • Les cristaux ouvrent désormais la porte menant à la Tour d’Aganhim. La Tour de Ganon est ouverte.
    • ' . '
    ', 'Quelques autres modifications ont été faites afin que le jeu fonctionne proprement:', '
      ' . '
    • La maison de Link et le marchand de bombes ont échangé de place.
    • ' - . '
    • La flûte ne fonctionne que dans le Monde des Ténèbres. Elle s\'active toujours à son emplacement original.
    • ' - . '
    • Beaucoup d\'emplacements dans le Monde de la Lumière ont été retravaillés afin de leur donner un accès, puisqu\'ils ne peuvent plus être accédés avec le Miroir.
    • ' + . '
    • La flûte ne fonctionne que dans le Monde des Ténèbres. Elle s’active toujours à son emplacement original.
    • ' + . '
    • Beaucoup d’emplacements dans le Monde de la Lumière ont été retravaillés afin de leur donner un accès, puisqu’ils ne peuvent plus être accédés avec le Miroir.
    • ' . '
    • Les grottes de la Montagne de la Mort ont été changées. Vous pouvez désormais accéder la Montagne de la Mort des Ténèbres depuis le reste du Monde des Ténèbres.
    • ' - . '
    • Le Vieil Homme de la Montagne de la Mort est dans le Monde des Ténèbres. Vous devrez l\'emmener à sa maison dans le Monde de la Lumière.
    • ' + . '
    • Le Vieil Homme de la Montagne de la Mort est dans le Monde des Ténèbres. Vous devrez l’emmener à sa maison dans le Monde de la Lumière.
    • ' . '
    • La Montagne de la Mort des Ténèbres a quelques escaliers supplémentaires pour accéder la Tour de Ganon et à sa section est.
    • ' . '
    • Les murs de Ice Palace ont fondu, laissant un accès libre depuis le Monde des Ténèbres.
    • ' . '
    • Vous pouvez monter sur Turtle Rock en sautant sur sa queue!
    • ' . '
    ', - 'Gardez à l\'esprit que Link le Lapin peut utiliser le Libre de Mudora, parler à des PNJs, et ramasser des objets simplement sur le sol. Les jeux inversés peuvent être vraiment difficiles, et ne sont donc pas une recommandation pour une première fois.', + 'Gardez à l’esprit que Link le Lapin peut utiliser le Libre de Mudora, parler à des PNJs, et ramasser des objets simplement sur le sol. Les jeux inversés peuvent être vraiment difficiles, et ne sont donc pas une recommandation pour une première fois.', ], ], [ @@ -222,31 +222,31 @@ 'header' => 'Arc à Rubis', 'content' => [ '
      ' - . '
    • L\'Arc n\'use plus de flèches, mais des rubis!!
    • ' + . '
    • L’Arc n’use plus de flèches, mais des rubis!!
    • ' . '
    • Le premier Arc progressif ne tire que des flèches en bois.
    • ' . '
    • Le second Arc progressif peut tirer des flèches en bois ou en argent.
    • ' - . '
    • Cependant, aucun arc ne peut être utilisé avant d\'acheter un Carquois à Rubis.
    • ' + . '
    • Cependant, aucun arc ne peut être utilisé avant d’acheter un Carquois à Rubis.
    • ' . '
    • Le Carquois à Rubis apparaît dans un magasin aléatoire, pour la modique somme de 80 rubis!
    • ' - . '
    • Chaque flèche en bois coûte 10 rubis, tandis qu\'une flèche d\'argent coûte 50 rubis..
    • ' + . '
    • Chaque flèche en bois coûte 10 rubis, tandis qu’une flèche d’argent coûte 50 rubis..
    • ' . '
    ', ], ], [ 'header' => 'Magasins', 'content' => [ - 'Cinq des neufs magasins du jeu sont choisis pour avoir de nouveaux objets. Ceci n\'inclut pas le Magasin de Bombes ni celui de Potions. L\'un deux contiendra le Carquois à Rubis pour 80 rubis. Additionnellement, plusieurs magasins vendront des petites clefs pour le prix de 100 rubis, sans limite d\'achat.', + 'Cinq des neufs magasins du jeu sont choisis pour avoir de nouveaux objets. Ceci n’inclut pas le Magasin de Bombes ni celui de Potions. L’un deux contiendra le Carquois à Rubis pour 80 rubis. Additionnellement, plusieurs magasins vendront des petites clefs pour le prix de 100 rubis, sans limite d’achat.', ], ], [ 'header' => 'Petites Clefs', 'content' => [ - 'Les petites clefs deviennent génériques : Elles ne sont plus attachées à un donjon, elles peuvent être utilisées n\'importe où. Elles pevent également être trouvées n\'importe où (par exemple, dans le monde extérieur). Les clefs sous les pots et tenues par des ennemis sont inchangées. Dix clefs sont retirées, relativement à la quantité normale (15 clefs si vous jouez en Difficile ou plus). Les grandes clefs, cartes, boussoles sont toujours dans leur donjon de base.', + 'Les petites clefs deviennent génériques : Elles ne sont plus attachées à un donjon, elles peuvent être utilisées n’importe où. Elles pevent également être trouvées n’importe où (par exemple, dans le monde extérieur). Les clefs sous les pots et tenues par des ennemis sont inchangées. Dix clefs sont retirées, relativement à la quantité normale (15 clefs si vous jouez en Difficile ou plus). Les grandes clefs, cartes, boussoles sont toujours dans leur donjon de base.', ], ], [ 'header' => 'Grottes à Choix', 'content' => [ - 'Cinq grottes ne menant nulle part (une seule entrée et aucun objet à l\'intérieur) sont désormais des Grottes à Choix. Quatre de ces grottes proposent un Réceptacle de Cœur ou une potion bleue, et la cinquième possède une amélioration d\'épée (qui ne sera pas disponible ailleurs). Cela signifie qu\'il n\'y aura que trois épées parmi les objets randomisés. Les Réceptacles de Cœur, au contraire, sont ajoutés en bonus, mais vous êtes toujours limité à 20 cœurs maximum. La potion bleue requiert une bouteille vide.', + 'Cinq grottes ne menant nulle part (une seule entrée et aucun objet à l’intérieur) sont désormais des Grottes à Choix. Quatre de ces grottes proposent un Réceptacle de Cœur ou une potion bleue, et la cinquième possède une amélioration d’épée (qui ne sera pas disponible ailleurs). Cela signifie qu’il n’y aura que trois épées parmi les objets randomisés. Les Réceptacles de Cœur, au contraire, sont ajoutés en bonus, mais vous êtes toujours limité à 20 cœurs maximum. La potion bleue requiert une bouteille vide.', ], ], ], @@ -256,25 +256,25 @@ 'entrance_shuffle' => [ 'header' => __('randomizer.entrance_shuffle.title'), 'subheader' => [ - 'Ce paramètre randomise les endroits auxquels les entrées mènent. Par exemple, entrer dans le magasin de Kakariko, peut vous emmener dans une fontaine de fées, ou autre chose. Différents types d\'entrées sont groupés ensemble, et chaque groupe est ensuite randomisé. La façon dont ces groupes sont sélectionnées dépend du paramètre choisi. Les transitions dans le monde extérieur ne sont jamais aléatoires.', + 'Ce paramètre randomise les endroits auxquels les entrées mènent. Par exemple, entrer dans le magasin de Kakariko, peut vous emmener dans une fontaine de fées, ou autre chose. Différents types d’entrées sont groupés ensemble, et chaque groupe est ensuite randomisé. La façon dont ces groupes sont sélectionnées dépend du paramètre choisi. Les transitions dans le monde extérieur ne sont jamais aléatoires.', 'Les grottes/donjons avec plusieurs entrées ont un comportement spécifique, sauf contre-indication:', '
      ' - . '
    • Toutes les entrées restent groupées. Cela signifie que sortir d\'une grotte ou un donjon vous ramènera à l\'emplacement d\'entrée.
    • ' + . '
    • Toutes les entrées restent groupées. Cela signifie que sortir d’une grotte ou un donjon vous ramènera à l’emplacement d’entrée.
    • ' . '
    • Toutes les entrées pour une grotte ou un donjon qui a plusieurs entrées apparaîtront dans le même monde. (Une grotte ou un donjon ne reliera pas Monde de la Lumière et Monde des Ténèbres).
    • ' . '
    ', - 'La Maison de Link et l\'arrière du bar ne sont pas aléatoires. Notez toutefois que si vous jouez en ' . __('randomizer.world_state.options.inverted') . ' ' . __('randomizer.world_state.title') . ', la Maison de Link (dans le monde des Ténèbres) et le magasin de bombes (dans le monde de la Lumière) seront randomisés.', + 'La Maison de Link et l’arrière du bar ne sont pas aléatoires. Notez toutefois que si vous jouez en ' . __('randomizer.world_state.options.inverted') . ' ' . __('randomizer.world_state.title') . ', la Maison de Link (dans le monde des Ténèbres) et le magasin de bombes (dans le monde de la Lumière) seront randomisés.', ], 'sections' => [ 'none' => [ 'header' => __('randomizer.entrance_shuffle.options.none'), 'content' => [ - 'Aucune entrée n\'est randomisée. Chaque entrée mènera à l\'endroit normal.', + 'Aucune entrée n’est randomisée. Chaque entrée mènera à l’endroit normal.', ], ], 'simple' => [ 'header' => __('randomizer.entrance_shuffle.options.simple'), 'content' => [ - 'Ce paramètre utilise le plus grand nombre de groupements de types d\'entrées. Ceci réduit énormément la randomisation, ce qui permet de garder les choses simples.', + 'Ce paramètre utilise le plus grand nombre de groupements de types d’entrées. Ceci réduit énormément la randomisation, ce qui permet de garder les choses simples.', [ 'header' => 'Donjons à Une Entrée', 'content' => [ @@ -284,7 +284,7 @@ [ 'header' => 'Donjons à Plusieurs Entrées (sauf Skull Woods)', 'content' => [ - 'Chacune des 4 entrées du Château d\'Hyrule, de Desert palace et de Turtle Rock restent groupées ensemble. Chaque groupe de 4 est randomisé avec les autres en gardant les mêmes positions. Par exemple, si le Château d\'Hyrule et Desert Palace sont inversés, l\'entrée principale du Château d\'Hyrule sera l\'entrée principale de Desert Palace, l\'entrée gauche de Desert Palace mènera à l\'entrée gauche du Château d\'Hyrule, etc. Notez que la Tour d\{Aganhim n\'est pas randomisée en ' . __('randomizer.world_state.options.standard') . ' ' . __('randomizer.world_state.title') . '.', + 'Chacune des 4 entrées du Château d’Hyrule, de Desert palace et de Turtle Rock restent groupées ensemble. Chaque groupe de 4 est randomisé avec les autres en gardant les mêmes positions. Par exemple, si le Château d’Hyrule et Desert Palace sont inversés, l’entrée principale du Château d’Hyrule sera l’entrée principale de Desert Palace, l’entrée gauche de Desert Palace mènera à l’entrée gauche du Château d’Hyrule, etc. Notez que la Tour d\{Aganhim n’est pas randomisée en ' . __('randomizer.world_state.options.standard') . ' ' . __('randomizer.world_state.title') . '.', ], ], [ @@ -296,19 +296,19 @@ [ 'header' => 'Grottes à Une Entrée', 'content' => [ - 'Toutes les entrées sont groupées et mélangées ensemble. Ceci n\'inclut pas la Montagne de la Mort du Monde de la Lumière. (Exemple : Maisons).', + 'Toutes les entrées sont groupées et mélangées ensemble. Ceci n’inclut pas la Montagne de la Mort du Monde de la Lumière. (Exemple : Maisons).', ], ], [ 'header' => 'Grottes à Plusieurs Entrées', 'content' => [ - 'Toutes les entrées sont groupées et mélangées ensemble. Les emplacements qui ont normalement 2 entrées resteront connectées ensemble avec une grotte à deux entrées (exemple : la maison de l\'Ancien dans Kakariko). Ceci n\'inclut pas la Montagne de la Mort du Monde de la Lumière.', + 'Toutes les entrées sont groupées et mélangées ensemble. Les emplacements qui ont normalement 2 entrées resteront connectées ensemble avec une grotte à deux entrées (exemple : la maison de l’Ancien dans Kakariko). Ceci n’inclut pas la Montagne de la Mort du Monde de la Lumière.', ], ], [ 'header' => 'Montagne de la Mort du Monde de la Lumière', 'content' => [ - 'Toutes les entrées restent dans la région de la Montagne de la Mort de la Lumière et sont mélangées ensemble. Veuillez noter que l\{accès à la Montagne (où le vieil homme est perdu) n\'est pas randomisée non plus.', + 'Toutes les entrées restent dans la région de la Montagne de la Mort de la Lumière et sont mélangées ensemble. Veuillez noter que l\{accès à la Montagne (où le vieil homme est perdu) n’est pas randomisée non plus.', ], ], [ @@ -322,7 +322,7 @@ 'restricted' => [ 'header' => __('randomizer.entrance_shuffle.options.restricted'), 'content' => [ - 'Similaire à ' . __('randomizer.entrance_shuffle.options.simple') . ', sauf que toutes les entrées qui ne sont pas des donjons (grottes à une ou plusieurs entrées, et la Montagne de la Mort de la Lumière) sont groupées et mélangées ensemble. Ceci inclut l\'accès à la Montagne de la Mort.', + 'Similaire à ' . __('randomizer.entrance_shuffle.options.simple') . ', sauf que toutes les entrées qui ne sont pas des donjons (grottes à une ou plusieurs entrées, et la Montagne de la Mort de la Lumière) sont groupées et mélangées ensemble. Ceci inclut l’accès à la Montagne de la Mort.', ], ], 'full' => [ @@ -334,7 +334,7 @@ 'crossed' => [ 'header' => __('randomizer.entrance_shuffle.options.crossed'), 'content' => [ - 'Smilaire à ' . __('randomizer.entrance_shuffle.options.full') . ', sauf que les grottes et donjons avec plusieurs entrées ne sont plus limitées à un seul monde. Cela signifie que ceux-ci peuvent servir d\'accès entre les Mondes de la Lumière et des Ténèbres.', + 'Smilaire à ' . __('randomizer.entrance_shuffle.options.full') . ', sauf que les grottes et donjons avec plusieurs entrées ne sont plus limitées à un seul monde. Cela signifie que ceux-ci peuvent servir d’accès entre les Mondes de la Lumière et des Ténèbres.', ], ], 'insanity' => [ @@ -388,8 +388,8 @@ 'content' => [ 'Tous les ennemis sont aléatoires, mais il faut noter quelques points:', '
      ' - . '
    • N\'importe quel ennemi ne peut pas apparaître n\'importe où, à cause des limitations du jeu.
    • ' - . '
    • Les pièces où il est requis de tuer des ennemis ne vont jamais demander une arme spécifique (par exemple des Mimiques requérant l\'Arc n\'apparaîtront pas dans ces pièces.
    • ' + . '
    • N’importe quel ennemi ne peut pas apparaître n’importe où, à cause des limitations du jeu.
    • ' + . '
    • Les pièces où il est requis de tuer des ennemis ne vont jamais demander une arme spécifique (par exemple des Mimiques requérant l’Arc n’apparaîtront pas dans ces pièces.
    • ' . '
    • Les Voleurs peuvent maintenant être tués.
    • ' . '
    • Les pièces à Tuiles Volantes ne sont pas aléatoires.
    • ' . '
    • Les ennemis sous des buissons ne sont pas aléatoires.
    • ' @@ -399,7 +399,7 @@ [ 'header' => __('randomizer.enemy_shuffle.options.random'), 'content' => [ - 'Similaire à ' . __('randomizer.enemy_shuffle.options.shuffled') . ', sauf que les ennemis sous les buissons, ainsi que leur chance d\'apparaître, sont désormais aléatoires. Ceci n\'a pas l\'air de grand chose, mais peut drastiquement changer l\'expérience. En addition, les pièces à Tuiles Volantes ont un dessin aléatoire, et les Voleurs ont 50% de chance d\'être tuables ou invincibles.', + 'Similaire à ' . __('randomizer.enemy_shuffle.options.shuffled') . ', sauf que les ennemis sous les buissons, ainsi que leur chance d’apparaître, sont désormais aléatoires. Ceci n’a pas l’air de grand chose, mais peut drastiquement changer l’expérience. En addition, les pièces à Tuiles Volantes ont un dessin aléatoire, et les Voleurs ont 50% de chance d’être tuables ou invincibles.', ], ], ], @@ -407,7 +407,7 @@ 'hints' => [ 'header' => __('randomizer.hints.title'), 'content' => [ - 'Active ou désactive la possibilité d\'avoir des indices sur les Tuiles Télépathiques à travers le monde.', + 'Active ou désactive la possibilité d’avoir des indices sur les Tuiles Télépathiques à travers le monde.', ], ], 'difficulty' => [ @@ -472,7 +472,7 @@ [ 'header' => __('randomizer.weapons.options.randomized'), 'content' => [ - 'Les quatre Épées Progressives sont randomisées dans le jeu. Si ce paramètre est combiné avec ' . __('randomizer.world_state.options.standard') . ' ' . __('randomizer.world_state.title') . ', alors votre Oncle aura toujours l\'un des objets suivants:', + 'Les quatre Épées Progressives sont randomisées dans le jeu. Si ce paramètre est combiné avec ' . __('randomizer.world_state.options.standard') . ' ' . __('randomizer.world_state.title') . ', alors votre Oncle aura toujours l’un des objets suivants:', '
        ' . '
      • Épée (oui, c’est possible !)
      • ' . '
      • Marteau
      • ' @@ -494,9 +494,9 @@ [ 'header' => __('randomizer.weapons.options.vanilla'), 'content' => [ - 'Les quatre épées sont à leur emplacement d\'origine, c\'est-à-dire :', + 'Les quatre épées sont à leur emplacement d’origine, c’est-à-dire :', '
          ' - . '
        • L\'oncle de Link
        • ' + . '
        • L’oncle de Link
        • ' . '
        • Le Piédestal de la Master Sword
        • ' . '
        • Le Forgeron
        • ' . '
        • La Fée de la Pyramide
        • ' @@ -526,25 +526,25 @@ [ 'header' => __('randomizer.enemy_health.options.default'), 'content' => [ - 'La vie des ennemis n\'est pas aléatoire.', + 'La vie des ennemis n’est pas aléatoire.', ], ], [ 'header' => __('randomizer.enemy_health.options.easy'), 'content' => [ - 'Tous les ennemis auront de 1 à 4 points de vie (1 ou deux coups d\'Épée du Combattant).', + 'Tous les ennemis auront de 1 à 4 points de vie (1 ou deux coups d’Épée du Combattant).', ], ], [ 'header' => __('randomizer.enemy_health.options.hard'), 'content' => [ - 'Tous les ennemis auront de 2 à 15 points de vie (1 à 8 coups d\'Épée du Combattant). Notez que en moyenne, ceci donne plus de vie aux ennemis que le jeu original.', + 'Tous les ennemis auront de 2 à 15 points de vie (1 à 8 coups d’Épée du Combattant). Notez que en moyenne, ceci donne plus de vie aux ennemis que le jeu original.', ], ], [ 'header' => __('randomizer.enemy_health.options.expert'), 'content' => [ - 'Tous les ennemis auront de 2 à 30 points de vie (1 à 15 coups d\'Épée du Combattant). Presque tous les ennemis auront beaucoup plus de vie que la normale.', + 'Tous les ennemis auront de 2 à 30 points de vie (1 à 15 coups d’Épée du Combattant). Presque tous les ennemis auront beaucoup plus de vie que la normale.', ], ], ], @@ -561,13 +561,13 @@ [ 'header' => __('randomizer.enemy_damage.options.shuffled'), 'content' => [ - 'Les dégâts infligés par les ennemis sont randomisés selon les types d\'ennemis. Par exemple, les dégâts des Octoroks et de Ganon peuvent être échangés, causant les Octorok à infliger 8 cœurs de dégâts, tandis que Ganon ne fera que 1 cœur. Les améliorations d\'armure fonctionnent toujours normalement.', + 'Les dégâts infligés par les ennemis sont randomisés selon les types d’ennemis. Par exemple, les dégâts des Octoroks et de Ganon peuvent être échangés, causant les Octorok à infliger 8 cœurs de dégâts, tandis que Ganon ne fera que 1 cœur. Les améliorations d’armure fonctionnent toujours normalement.', ], ], [ 'header' => __('randomizer.enemy_damage.options.random'), 'content' => [ - 'Les dégâts des ennemis sont complètement aléatoires. Une valeur est choisie pour chaque armure. Les armures ne réduisent donc plus forcément les dégâts. Il n\'y a aucune relation entre différents ennemis. Tous les ennemis pourraient faire des dégâts massifs.', + 'Les dégâts des ennemis sont complètement aléatoires. Une valeur est choisie pour chaque armure. Les armures ne réduisent donc plus forcément les dégâts. Il n’y a aucune relation entre différents ennemis. Tous les ennemis pourraient faire des dégâts massifs.', ], ], ], @@ -578,7 +578,7 @@ 'heart_speed' => [ 'header' => __('rom.settings.heart_speed'), 'content' => [ - 'Change la vitesse de l\'alarme quand la vie de Link est faible.', + 'Change la vitesse de l’alarme quand la vie de Link est faible.', ], ], 'play_as' => [ @@ -590,7 +590,7 @@ 'menu_speed' => [ 'header' => __('rom.settings.menu_speed'), 'content' => [ - 'Change la vitesse d\'ouverture et de fermeture du menu. Ceci n\'est pas disponible pour les ROMs de course.', + 'Change la vitesse d’ouverture et de fermeture du menu. Ceci n’est pas disponible pour les ROMs de course.', ], ], 'heart_color' => [ @@ -602,19 +602,25 @@ 'music' => [ 'header' => __('rom.settings.music'), 'content' => [ - 'Active ou désactive la musique originale du jeu. Vous ne devez pas désactiver ceci si vous souhaitez utiliser les packs de musique MSU-1. Si laissé activé avec un pack MSU-1, la musique originale ne jouera que en cas d\'échec du pack MSU-1 (au lieu de silence).', + 'Active ou désactive la musique originale du jeu.', ], ], 'quickswap' => [ 'header' => __('rom.settings.quickswap'), 'content' => [ - 'Autorise les objets à être changés avec les boutons L ou R sans ouvrir le menu. Ceci n\'est pas disponible pour les ROMs de course (sauf lorsque les entrées sont aléatoires).', + 'Autorise les objets à être changés avec les boutons L ou R sans ouvrir le menu.', ], ], 'palette_shuffle' => [ 'header' => __('rom.settings.palette_shuffle'), 'content' => [ - 'Randomise les palettes de couleurs du jeu. Ceci signifie que toute peut avoir l\'air extrêmement bizarre. Utilisez avec précaution!', + 'Randomise les palettes de couleurs du jeu. Ceci signifie que toute peut avoir l’air extrêmement bizarre. Utilisez avec précaution!', + ], + ], + 'reduce_flashing' => [ + 'header' => __('rom.settings.reduce_flashing'), + 'content' => [ + 'Réduit drastiquement les effets de clignotement du jeu, ou les désactive. Svp, faire attention, votre sensibilité aux effets de clignotement peut varier.', ], ], ], diff --git a/resources/lang/fr/races.php b/resources/lang/fr/races.php index 37a90a4d1..e20296cc9 100644 --- a/resources/lang/fr/races.php +++ b/resources/lang/fr/races.php @@ -1,73 +1,118 @@ 'Parties organisées', + 'header' => 'Courses organisées', 'cards' => [ 'races' => [ - 'header' => 'Courses', + 'header' => 'Courses quotidiennes et hebdomadaires', 'sections' => [ [ 'header' => '', 'content' => [ - 'La plupart des courses sont faites au travers de SpeedRacing.tv ou SpeedRunsLive.com. Vous y trouverez toutes les informations nécessaires pour profiter de l’action !', + 'La plupart des courses se font à l’aide de la plate-forme RaceTime.gg. Vous pouvez vous créer un compte, et vous connecter sur le site pour plus d’information sur le fonctionnement de la plate-forme!', + 'Avant de commencer à faire des courses, vous devriez vous familiariser avec les règles de course d’ALTTPR. Veuillez noter que certains tounois ou évènements peuvent utiliser des règles différentes. Validez avec les organisateurs pour savoir s’il y a des variations!', ], ], [ - 'header' => 'Courses Hebdomadaires en Mode Standard, le Samedi à 15h, heure de l’Est Américain', + 'header' => 'Ladder ALTTPR', 'content' => [ - 'Événement principal de la communauté, cette course hebdomadaire compte beaucoup de compétiteurs !', + 'Le Ladder ALTTPR est une ligue d’ALTTPR qui fonctionne selon l’échelle Elo. Les courses se font entièrement sur un serveur Discord. Plusieurs courses se déroulent chaque jour, en rotation, et en utilisant différents paramètres du randomiseur. Le système de pointage fonctionne selon le standard Elo 32k.', ], ], [ - 'header' => 'Courses Hebdomadaires en Mode Ouvert, le Dimanche à 17h, heure de l’Est Américain', + 'header' => 'Courses quotidiennes de SpeedGaming', 'content' => [ - 'Rejoignez-nous tous les Dimanches pour une autre course hebdomadaire populaire dans la communauté.', + 'SpeedGaming organise des courses quotidiennes qui se font sur la plate-forme RaceTime.gg. N’hésitez pas à aller voir la planification des courses.', ], ], [ - 'header' => 'La Course Communautaire Nocturne, 22h, heure de l’Est Américain', + 'header' => 'Course hebdomadaire des glitches du monde extérieur', 'content' => [ - 'Nous faisons aussi des courses nocturnes pour ceux qui cherchent à jouer tous les jours !', + 'La course hebdomadaire des glitches du monde extérieur a lieu tous les mercredis à 22h30 sur RaceTime.gg.', ], ], [ - 'header' => 'Courses Ponctuelles', + 'header' => 'Votre propre course', 'content' => [ - 'Les courses planifiées ne correspondent pas avec vos horaires ? Vous cherchez une course avec des options exotiques ? Rejoignez une course ponctuelle ! Vous trouverez des joueurs à toute heure de la journée. Rejoignez le canal #race-planning sur notre serveur Discord!', + 'Les courses organisées ne fonctionnent pas avec votre horaire? Vous voulez faire une course avec des paramètres plus exotiques? Organisez votre propre course! Vous trouverez des joueurs prêts à jouer à toute heure du jour ou de la nuit. Visitez #race-planning dans le Discord principal d’ALTTPR.!', ], ], ], ], - 'watch' => [ - 'header' => 'Regarder', - 'content' => [ - 'Avec autant d’événements, il y a toujours une course à regarder ! Suivez ces réseaux et ne manquez aucun match !', - ], - ], - 'network' => [ - 'header' => 'Réseaux de Courses', - 'content' => [ - 'Les courses sont habituellement organisées au sein d’un réseau de course. Ces sites facilitent l’organisation, ajoutent un chronomètre officiel et permettent autant aux coureurs qu’aux spectateurs de trouver plus facilement des courses.', - 'Soyez surs de jeter un oeil aux sites SpeedRunsLive.com et SpeedRacing.tv pour plus d’informations !', - ], - ], 'tournament' => [ 'header' => 'Tournois', 'sections' => [ [ 'header' => '', 'content' => [ - 'Rejoignez-nous pour de l’action au cours de tournois avec des commentateurs experts au côté de joueurs d’élite !', + 'Vous voulez voir des courses de tournoi commentées, et courues par des joueurs de haut niveau ? Des tournois ont souvent lieu au cours de l’année. Joignez notre Discord pour être au courant du calendrier!', ], ], [ - 'header' => 'Tournois bi-annuels sur invitation', + 'header' => 'Tournoi principal d’ALTTP Randomizer', 'content' => [ - 'Soyez témoins des meilleurs coureurs en compétition pour le Trophée ! Vous pensez avoir ce qu’il faut pour être au coude à coude avec les meilleurs ? Rejoignez notre serveur Discord et gardez un oeil sur les qualifications !', - 'Le tournoi du Printemps sur invitation dure de Mars à Juin.', - 'Le tournoi d’Automne sur invitation dure de Septembre à Décembre.', + 'Voyez les meilleurs joueurs compétitionner pour le trophée et la chance d’avoir leur nom sur la tuile télépathique de la salle Houlihan! Vous croyez avoir ce qu’il faut pour vous mesurer aux meilleurs ? Joignez le Discord du tournoi ALTTPR et surveillez les courses de qualification!', + ], + ], + [ + 'header' => 'Challenge Cup', + 'content' => [ + 'La Challenge Cup est un tournoi destiné aux joueurs qui n’ont pas pu se qualifier dans le tournoi principal.', + ], + ], + [ + 'header' => 'Ligue ALTTPR', + 'content' => [ + 'La Ligue ALTTPR est un tournoi annuel en équipe. Les joueurs forment des équipes de trois personnes, et s’affrontent en solo ou en équipe dans des courses avec des modes variés.', + ], + ], + [ + 'header' => 'Tournoi mentor Go Mode Podcast', + 'content' => [ + 'Go Mode Podcast organise un tournoi annuel destiné aux nouveaux joueurs. Les apprentis ont un mentor pour les aider dans certaines courses. Le but est de préparer les joueurs pour compétitionner dans d’autres tournois, petits ou grands.', + ], + ], + [ + 'header' => 'Tournoi ALTTPR Spoiler', + 'content' => [ + 'Le tournoi ALTTPR Spoiler est un tournoi annuel dont le but est d’étudier le spoiler de la course pendant 15 minutes, planifier la course, et ensuite faire la course. Ce tournoi teste l’habileté des joueurs à joueur rapidement, efficacement, et souvent avec peu de protection.', + ], + ], + [ + 'header' => 'Tournois ALTTPR avec des Glitches', + 'content' => [ + 'Les tournois de ALTTPR Glitchés impliquent l’utilisation de glitchs majeurs pour briser et battre le jeu, souvent de manière inattendue.', + ], + ], + [ + 'header' => 'Tournoi croise-clés ALTTPR', + 'content' => [ + 'Le tournoi croise-clés d’ALTTPR, communément appelé "Crosskeys" est un tournoi qui teste la capacité des joueurs à naviguer le monde d’Hyrule avec les entrées et les clés mélangées. Les joueurs devront faire appel à leur mémoire et leurs notes pour trouver la solution de ce mode renversant!', + ], + ], + ], + ], + 'foreign_language' => [ + 'header' => 'Language-specific Tournaments and Events', + 'languages' => [ + [ + 'header' => 'Francophone', + 'description' => 'Si vous cherchez des passionnées francophones de ALTTP Randomizer, n’hésitez pas à nous rejoindre sur notre Discord. Il y a toujours des gens prêts à vous donner un coup de main. Il y a souvent des courses amicales qui s’organisent de manière impromptue, et il y règne une bonne ambiance.', + 'sections' => [ + [ + 'header' => 'Tournoi Francophone', + 'content' => [ + 'Nous organisons habituellement un gros tournoi par année, ainsi qu’un micro tournoi à l’occasion. Surveillez le Discord pour être au courant des développements', + ], + ], + [ + 'header' => 'Hebdomadaire Francophone', + 'content' => [ + 'Chaque semaine, une course hebdomadaire entre francophones à lieu. L’horaire est voté par les joueurs sur le Discord de la communauté francophone puis annoncé, au plaisir de tous!', + ], + ], ], ], ], ], ], -]; +]; \ No newline at end of file diff --git a/resources/lang/fr/randomizer.php b/resources/lang/fr/randomizer.php index 193c05ec9..71fd9c59b 100644 --- a/resources/lang/fr/randomizer.php +++ b/resources/lang/fr/randomizer.php @@ -103,7 +103,7 @@ ], ], "entrance_shuffle" => [ - 'title' => 'Mélangeur d\'Entrées', + 'title' => 'Mélangeur d’Entrées', 'options' => [ 'none' => 'Désactivé', 'simple' => 'Simple', @@ -123,7 +123,7 @@ ], ], "enemy_shuffle" => [ - 'title' => 'Mélangeur d\'Ennemis', + 'title' => 'Mélangeur d’Ennemis', 'options' => [ 'none' => 'Désactivé', 'shuffled' => 'Intervertis', @@ -155,7 +155,7 @@ 'expert' => 'Expert', 'crowd_control' => 'Crowd Control', ], - 'crowd_control_warning' => '* Ce paramètre est prévu pour être utilisé avec l\'extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/', + 'crowd_control_warning' => '* Ce paramètre est prévu pour être utilisé avec l’extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/', ], 'item_functionality' => [ 'title' => 'Fonctionnalité des Objets', diff --git a/resources/lang/fr/resources.php b/resources/lang/fr/resources.php index 37a096032..a7f5b79ce 100644 --- a/resources/lang/fr/resources.php +++ b/resources/lang/fr/resources.php @@ -24,7 +24,7 @@ . '
        • Glossaire d’aide
        • ' . '
        • Ressources pour les glitchs
        • ' . '
        • Trackers / HUDs
        • ' - . '
        • Débuter sur SRL
        • ' + . '
        • Débuter sur RaceTime.gg
        • ' . '
        ', ], ], diff --git a/resources/lang/fr/rom.php b/resources/lang/fr/rom.php index 9f6553e75..0479be700 100644 --- a/resources/lang/fr/rom.php +++ b/resources/lang/fr/rom.php @@ -58,5 +58,7 @@ 'quickswap' => 'Changement rapide d’objets', 'palette_shuffle' => 'Mélange des Couleurs de Palettes', 'race_warning' => 'Ne fonctionne pas dans les ROMs de course', + "reduce_flashing" => "Réduit le clignotement", + "reduce_flashing_warning" => "Cette option réduit l'effet de clignotement. Votre sensibilité aux effets de clignotement peut varier." ], ]; diff --git a/resources/sass/_sprites.scss b/resources/sass/_sprites.scss index 64440cc4b..8df1c47a3 100644 --- a/resources/sass/_sprites.scss +++ b/resources/sass/_sprites.scss @@ -3,1038 +3,1110 @@ width: 16px; height: 24px; vertical-align: bottom; - background-image: url("https://alttpr.s3.us-east-2.amazonaws.com/sprites.31.0.8.png"); + background-image: url("https://alttpr.s3.us-east-2.amazonaws.com/sprites.31.0.9.png"); } .icon-custom-Random { background-position: 0 0; } .icon-custom-Link { - background-position: percentage((1 - 344)/ 343) 0; + background-position: percentage((1 - 368)/ 367) 0; } .icon-custom-FourSwordsLink { - background-position: percentage((2 - 344)/ 343) 0; + background-position: percentage((2 - 368)/ 367) 0; } .icon-custom-Abigail { - background-position: percentage((3 - 344)/ 343) 0; + background-position: percentage((3 - 368)/ 367) 0; } .icon-custom-Adol { - background-position: percentage((4 - 344)/ 343) 0; + background-position: percentage((4 - 368)/ 367) 0; +} +.icon-custom-Adventure2600 { + background-position: percentage((5 - 368)/ 367) 0; } .icon-custom-Aggretsuko { - background-position: percentage((5 - 344)/ 343) 0; + background-position: percentage((6 - 368)/ 367) 0; } .icon-custom-Alice { - background-position: percentage((6 - 344)/ 343) 0; + background-position: percentage((7 - 368)/ 367) 0; } .icon-custom-AngryVideoGameNerd { - background-position: percentage((7 - 344)/ 343) 0; + background-position: percentage((8 - 368)/ 367) 0; } .icon-custom-Arcane { - background-position: percentage((8 - 344)/ 343) 0; + background-position: percentage((9 - 368)/ 367) 0; +} +.icon-custom-Aria { + background-position: percentage((10 - 368)/ 367) 0; } .icon-custom-ArkNoCape { - background-position: percentage((9 - 344)/ 343) 0; + background-position: percentage((11 - 368)/ 367) 0; } .icon-custom-ArkCape { - background-position: percentage((10 - 344)/ 343) 0; + background-position: percentage((12 - 368)/ 367) 0; } .icon-custom-Arrghus { - background-position: percentage((11 - 344)/ 343) 0; + background-position: percentage((13 - 368)/ 367) 0; } .icon-custom-Astronaut { - background-position: percentage((12 - 344)/ 343) 0; + background-position: percentage((14 - 368)/ 367) 0; } .icon-custom-Asuna { - background-position: percentage((13 - 344)/ 343) 0; + background-position: percentage((15 - 368)/ 367) 0; } .icon-custom-Badeline { - background-position: percentage((14 - 344)/ 343) 0; + background-position: percentage((16 - 368)/ 367) 0; } .icon-custom-BananasInPyjamas { - background-position: percentage((15 - 344)/ 343) 0; + background-position: percentage((17 - 368)/ 367) 0; } .icon-custom-Bandit { - background-position: percentage((16 - 344)/ 343) 0; + background-position: percentage((18 - 368)/ 367) 0; } .icon-custom-Batman { - background-position: percentage((17 - 344)/ 343) 0; + background-position: percentage((19 - 368)/ 367) 0; } .icon-custom-Beau { - background-position: percentage((18 - 344)/ 343) 0; + background-position: percentage((20 - 368)/ 367) 0; +} +.icon-custom-Bee { + background-position: percentage((21 - 368)/ 367) 0; } .icon-custom-Bewp { - background-position: percentage((19 - 344)/ 343) 0; + background-position: percentage((22 - 368)/ 367) 0; } .icon-custom-BigKey { - background-position: percentage((20 - 344)/ 343) 0; + background-position: percentage((23 - 368)/ 367) 0; } .icon-custom-Birb { - background-position: percentage((21 - 344)/ 343) 0; + background-position: percentage((24 - 368)/ 367) 0; } .icon-custom-Birdo { - background-position: percentage((22 - 344)/ 343) 0; + background-position: percentage((25 - 368)/ 367) 0; } .icon-custom-BlackMage { - background-position: percentage((23 - 344)/ 343) 0; + background-position: percentage((26 - 368)/ 367) 0; } .icon-custom-BlacksmithLink { - background-position: percentage((24 - 344)/ 343) 0; + background-position: percentage((27 - 368)/ 367) 0; } .icon-custom-Blazer { - background-position: percentage((25 - 344)/ 343) 0; + background-position: percentage((28 - 368)/ 367) 0; } .icon-custom-Blossom { - background-position: percentage((26 - 344)/ 343) 0; + background-position: percentage((29 - 368)/ 367) 0; } .icon-custom-Bob { - background-position: percentage((27 - 344)/ 343) 0; + background-position: percentage((30 - 368)/ 367) 0; } .icon-custom-BobRoss { - background-position: percentage((28 - 344)/ 343) 0; + background-position: percentage((31 - 368)/ 367) 0; } .icon-custom-BocotheChocobo { - background-position: percentage((29 - 344)/ 343) 0; + background-position: percentage((32 - 368)/ 367) 0; } .icon-custom-Boo2 { - background-position: percentage((30 - 344)/ 343) 0; + background-position: percentage((33 - 368)/ 367) 0; } .icon-custom-Boo { - background-position: percentage((31 - 344)/ 343) 0; + background-position: percentage((34 - 368)/ 367) 0; } .icon-custom-BottleoGoo { - background-position: percentage((32 - 344)/ 343) 0; + background-position: percentage((35 - 368)/ 367) 0; } .icon-custom-BotWLink { - background-position: percentage((33 - 344)/ 343) 0; + background-position: percentage((36 - 368)/ 367) 0; } .icon-custom-BotWZelda { - background-position: percentage((34 - 344)/ 343) 0; + background-position: percentage((37 - 368)/ 367) 0; } .icon-custom-Bowser { - background-position: percentage((35 - 344)/ 343) 0; + background-position: percentage((38 - 368)/ 367) 0; } .icon-custom-BowsetteRed { - background-position: percentage((36 - 344)/ 343) 0; + background-position: percentage((39 - 368)/ 367) 0; } .icon-custom-Bowsette { - background-position: percentage((37 - 344)/ 343) 0; + background-position: percentage((40 - 368)/ 367) 0; } .icon-custom-Branch { - background-position: percentage((38 - 344)/ 343) 0; + background-position: percentage((41 - 368)/ 367) 0; } .icon-custom-Brian { - background-position: percentage((39 - 344)/ 343) 0; + background-position: percentage((42 - 368)/ 367) 0; } .icon-custom-Broccoli { - background-position: percentage((40 - 344)/ 343) 0; + background-position: percentage((43 - 368)/ 367) 0; } .icon-custom-Bronzor { - background-position: percentage((41 - 344)/ 343) 0; + background-position: percentage((44 - 368)/ 367) 0; } .icon-custom-BSBoy { - background-position: percentage((42 - 344)/ 343) 0; + background-position: percentage((45 - 368)/ 367) 0; } .icon-custom-BSGirl { - background-position: percentage((43 - 344)/ 343) 0; + background-position: percentage((46 - 368)/ 367) 0; } .icon-custom-Bubbles { - background-position: percentage((44 - 344)/ 343) 0; + background-position: percentage((47 - 368)/ 367) 0; } .icon-custom-BulletBill { - background-position: percentage((45 - 344)/ 343) 0; + background-position: percentage((48 - 368)/ 367) 0; } .icon-custom-Buttercup { - background-position: percentage((46 - 344)/ 343) 0; + background-position: percentage((49 - 368)/ 367) 0; } .icon-custom-Cactuar { - background-position: percentage((47 - 344)/ 343) 0; + background-position: percentage((50 - 368)/ 367) 0; } .icon-custom-Cadence { - background-position: percentage((48 - 344)/ 343) 0; + background-position: percentage((51 - 368)/ 367) 0; } .icon-custom-CarlSagan42 { - background-position: percentage((49 - 344)/ 343) 0; + background-position: percentage((52 - 368)/ 367) 0; } .icon-custom-CasualZelda { - background-position: percentage((50 - 344)/ 343) 0; + background-position: percentage((53 - 368)/ 367) 0; } .icon-custom-MarvintheCat { - background-position: percentage((51 - 344)/ 343) 0; + background-position: percentage((54 - 368)/ 367) 0; } .icon-custom-CatBoo { - background-position: percentage((52 - 344)/ 343) 0; + background-position: percentage((55 - 368)/ 367) 0; +} +.icon-custom-CatgirlHidari { + background-position: percentage((56 - 368)/ 367) 0; } .icon-custom-CD-iLink { - background-position: percentage((53 - 344)/ 343) 0; + background-position: percentage((57 - 368)/ 367) 0; } .icon-custom-Celes { - background-position: percentage((54 - 344)/ 343) 0; + background-position: percentage((58 - 368)/ 367) 0; +} +.icon-custom-CentaurEnos { + background-position: percentage((59 - 368)/ 367) 0; } .icon-custom-Charizard { - background-position: percentage((55 - 344)/ 343) 0; + background-position: percentage((60 - 368)/ 367) 0; } .icon-custom-CheepCheep { - background-position: percentage((56 - 344)/ 343) 0; + background-position: percentage((61 - 368)/ 367) 0; } .icon-custom-Chibity { - background-position: percentage((57 - 344)/ 343) 0; + background-position: percentage((62 - 368)/ 367) 0; } .icon-custom-Chrizzz { - background-position: percentage((58 - 344)/ 343) 0; + background-position: percentage((63 - 368)/ 367) 0; } .icon-custom-Cinna { - background-position: percentage((59 - 344)/ 343) 0; + background-position: percentage((64 - 368)/ 367) 0; } .icon-custom-Cirno { - background-position: percentage((60 - 344)/ 343) 0; + background-position: percentage((65 - 368)/ 367) 0; } .icon-custom-Clifford { - background-position: percentage((61 - 344)/ 343) 0; + background-position: percentage((66 - 368)/ 367) 0; +} +.icon-custom-Clippy { + background-position: percentage((67 - 368)/ 367) 0; +} +.icon-custom-Cloud { + background-position: percentage((68 - 368)/ 367) 0; } .icon-custom-Clyde { - background-position: percentage((62 - 344)/ 343) 0; + background-position: percentage((69 - 368)/ 367) 0; } .icon-custom-Conker { - background-position: percentage((63 - 344)/ 343) 0; + background-position: percentage((70 - 368)/ 367) 0; } .icon-custom-Cornelius { - background-position: percentage((64 - 344)/ 343) 0; + background-position: percentage((71 - 368)/ 367) 0; } .icon-custom-Corona { - background-position: percentage((65 - 344)/ 343) 0; + background-position: percentage((72 - 368)/ 367) 0; } .icon-custom-Crewmate { - background-position: percentage((66 - 344)/ 343) 0; + background-position: percentage((73 - 368)/ 367) 0; } .icon-custom-Cucco { - background-position: percentage((67 - 344)/ 343) 0; + background-position: percentage((74 - 368)/ 367) 0; } .icon-custom-Cursor { - background-position: percentage((68 - 344)/ 343) 0; + background-position: percentage((75 - 368)/ 367) 0; } .icon-custom-DOwls { - background-position: percentage((69 - 344)/ 343) 0; + background-position: percentage((76 - 368)/ 367) 0; } .icon-custom-DarkPanda { - background-position: percentage((70 - 344)/ 343) 0; + background-position: percentage((77 - 368)/ 367) 0; } .icon-custom-DarkBoy { - background-position: percentage((71 - 344)/ 343) 0; + background-position: percentage((78 - 368)/ 367) 0; } .icon-custom-DarkGirl { - background-position: percentage((72 - 344)/ 343) 0; + background-position: percentage((79 - 368)/ 367) 0; } .icon-custom-DarkLinkTunic { - background-position: percentage((73 - 344)/ 343) 0; + background-position: percentage((80 - 368)/ 367) 0; } .icon-custom-DarkLink { - background-position: percentage((74 - 344)/ 343) 0; + background-position: percentage((81 - 368)/ 367) 0; } .icon-custom-DarkSwatchy { - background-position: percentage((75 - 344)/ 343) 0; + background-position: percentage((82 - 368)/ 367) 0; } .icon-custom-DarkZelda { - background-position: percentage((76 - 344)/ 343) 0; + background-position: percentage((83 - 368)/ 367) 0; } .icon-custom-DarkZora { - background-position: percentage((77 - 344)/ 343) 0; + background-position: percentage((84 - 368)/ 367) 0; } .icon-custom-DeadpoolMythic { - background-position: percentage((78 - 344)/ 343) 0; + background-position: percentage((85 - 368)/ 367) 0; } .icon-custom-DeadpoolSirCzah { - background-position: percentage((79 - 344)/ 343) 0; + background-position: percentage((86 - 368)/ 367) 0; } .icon-custom-Deadrock { - background-position: percentage((80 - 344)/ 343) 0; + background-position: percentage((87 - 368)/ 367) 0; } .icon-custom-Decidueye { - background-position: percentage((81 - 344)/ 343) 0; + background-position: percentage((88 - 368)/ 367) 0; } .icon-custom-Dekar { - background-position: percentage((82 - 344)/ 343) 0; + background-position: percentage((89 - 368)/ 367) 0; } .icon-custom-DemonLink { - background-position: percentage((83 - 344)/ 343) 0; + background-position: percentage((90 - 368)/ 367) 0; +} +.icon-custom-Dennsen86 { + background-position: percentage((91 - 368)/ 367) 0; +} +.icon-custom-DigDug { + background-position: percentage((92 - 368)/ 367) 0; } .icon-custom-Dipper { - background-position: percentage((84 - 344)/ 343) 0; + background-position: percentage((93 - 368)/ 367) 0; +} +.icon-custom-Discord { + background-position: percentage((94 - 368)/ 367) 0; } .icon-custom-Dragonite { - background-position: percentage((85 - 344)/ 343) 0; + background-position: percentage((95 - 368)/ 367) 0; } .icon-custom-DrakeTheDragon { - background-position: percentage((86 - 344)/ 343) 0; + background-position: percentage((96 - 368)/ 367) 0; } .icon-custom-Eggplant { - background-position: percentage((87 - 344)/ 343) 0; + background-position: percentage((97 - 368)/ 367) 0; } .icon-custom-EmaSkye { - background-position: percentage((88 - 344)/ 343) 0; + background-position: percentage((98 - 368)/ 367) 0; } .icon-custom-EmoSaru { - background-position: percentage((89 - 344)/ 343) 0; + background-position: percentage((99 - 368)/ 367) 0; } .icon-custom-Ezlo { - background-position: percentage((90 - 344)/ 343) 0; + background-position: percentage((100 - 368)/ 367) 0; +} +.icon-custom-Fi { + background-position: percentage((101 - 368)/ 367) 0; } .icon-custom-FierceDeityLink { - background-position: percentage((91 - 344)/ 343) 0; + background-position: percentage((102 - 368)/ 367) 0; } .icon-custom-FinnMerten { - background-position: percentage((92 - 344)/ 343) 0; + background-position: percentage((103 - 368)/ 367) 0; } .icon-custom-FinnyBear { - background-position: percentage((93 - 344)/ 343) 0; + background-position: percentage((104 - 368)/ 367) 0; } .icon-custom-FloodgateFish { - background-position: percentage((94 - 344)/ 343) 0; + background-position: percentage((105 - 368)/ 367) 0; } .icon-custom-FlavorGuy { - background-position: percentage((95 - 344)/ 343) 0; + background-position: percentage((106 - 368)/ 367) 0; } .icon-custom-FoxLink { - background-position: percentage((96 - 344)/ 343) 0; + background-position: percentage((107 - 368)/ 367) 0; } .icon-custom-FreyaCrescent { - background-position: percentage((97 - 344)/ 343) 0; + background-position: percentage((108 - 368)/ 367) 0; } .icon-custom-Frisk { - background-position: percentage((98 - 344)/ 343) 0; + background-position: percentage((109 - 368)/ 367) 0; } .icon-custom-FrogLink { - background-position: percentage((99 - 344)/ 343) 0; + background-position: percentage((110 - 368)/ 367) 0; } .icon-custom-Fujin { - background-position: percentage((100 - 344)/ 343) 0; + background-position: percentage((111 - 368)/ 367) 0; } .icon-custom-FutureTrunks { - background-position: percentage((101 - 344)/ 343) 0; + background-position: percentage((112 - 368)/ 367) 0; } .icon-custom-Gamer { - background-position: percentage((102 - 344)/ 343) 0; + background-position: percentage((113 - 368)/ 367) 0; } .icon-custom-MiniGanon { - background-position: percentage((103 - 344)/ 343) 0; + background-position: percentage((114 - 368)/ 367) 0; } .icon-custom-Ganondorf { - background-position: percentage((104 - 344)/ 343) 0; + background-position: percentage((115 - 368)/ 367) 0; } .icon-custom-Garfield { - background-position: percentage((105 - 344)/ 343) 0; + background-position: percentage((116 - 368)/ 367) 0; } .icon-custom-Garnet { - background-position: percentage((106 - 344)/ 343) 0; + background-position: percentage((117 - 368)/ 367) 0; } .icon-custom-GaroMaster { - background-position: percentage((107 - 344)/ 343) 0; + background-position: percentage((118 - 368)/ 367) 0; } .icon-custom-GBCLink { - background-position: percentage((108 - 344)/ 343) 0; + background-position: percentage((119 - 368)/ 367) 0; } .icon-custom-Geno { - background-position: percentage((109 - 344)/ 343) 0; + background-position: percentage((120 - 368)/ 367) 0; } .icon-custom-GliitchWiitch { - background-position: percentage((110 - 344)/ 343) 0; + background-position: percentage((121 - 368)/ 367) 0; } .icon-custom-Gobli { - background-position: percentage((111 - 344)/ 343) 0; + background-position: percentage((122 - 368)/ 367) 0; } .icon-custom-Gooey { - background-position: percentage((112 - 344)/ 343) 0; + background-position: percentage((123 - 368)/ 367) 0; } .icon-custom-Goomba { - background-position: percentage((113 - 344)/ 343) 0; + background-position: percentage((124 - 368)/ 367) 0; } .icon-custom-Goose { - background-position: percentage((114 - 344)/ 343) 0; + background-position: percentage((125 - 368)/ 367) 0; +} +.icon-custom-GraalianNoob { + background-position: percentage((126 - 368)/ 367) 0; } .icon-custom-GrandPOOBear { - background-position: percentage((115 - 344)/ 343) 0; + background-position: percentage((127 - 368)/ 367) 0; } .icon-custom-Gretis { - background-position: percentage((116 - 344)/ 343) 0; + background-position: percentage((128 - 368)/ 367) 0; } .icon-custom-GruncleStan { - background-position: percentage((117 - 344)/ 343) 0; + background-position: percentage((129 - 368)/ 367) 0; } .icon-custom-Guiz { - background-position: percentage((118 - 344)/ 343) 0; + background-position: percentage((130 - 368)/ 367) 0; } .icon-custom-Hanna { - background-position: percentage((119 - 344)/ 343) 0; + background-position: percentage((131 - 368)/ 367) 0; } .icon-custom-HardhatBeetle { - background-position: percentage((120 - 344)/ 343) 0; + background-position: percentage((132 - 368)/ 367) 0; } .icon-custom-HatKid { - background-position: percentage((121 - 344)/ 343) 0; + background-position: percentage((133 - 368)/ 367) 0; +} +.icon-custom-HeadLink { + background-position: percentage((134 - 368)/ 367) 0; } .icon-custom-HeadlessLink { - background-position: percentage((122 - 344)/ 343) 0; + background-position: percentage((135 - 368)/ 367) 0; } .icon-custom-HelloKitty { - background-position: percentage((123 - 344)/ 343) 0; + background-position: percentage((136 - 368)/ 367) 0; } .icon-custom-HeroofAwakening { - background-position: percentage((124 - 344)/ 343) 0; + background-position: percentage((137 - 368)/ 367) 0; } .icon-custom-HeroofHyrule { - background-position: percentage((125 - 344)/ 343) 0; -} -.icon-custom-Hidari { - background-position: percentage((126 - 344)/ 343) 0; + background-position: percentage((138 - 368)/ 367) 0; } .icon-custom-HintTile { - background-position: percentage((127 - 344)/ 343) 0; + background-position: percentage((139 - 368)/ 367) 0; } .icon-custom-HoarderBush { - background-position: percentage((128 - 344)/ 343) 0; + background-position: percentage((140 - 368)/ 367) 0; } .icon-custom-HoarderPot { - background-position: percentage((129 - 344)/ 343) 0; + background-position: percentage((141 - 368)/ 367) 0; } .icon-custom-HoarderRock { - background-position: percentage((130 - 344)/ 343) 0; + background-position: percentage((142 - 368)/ 367) 0; } .icon-custom-HollowKnightMalmoWinter { - background-position: percentage((131 - 344)/ 343) 0; + background-position: percentage((143 - 368)/ 367) 0; } .icon-custom-HollowKnight { - background-position: percentage((132 - 344)/ 343) 0; + background-position: percentage((144 - 368)/ 367) 0; } .icon-custom-HomerSimpson { - background-position: percentage((133 - 344)/ 343) 0; + background-position: percentage((145 - 368)/ 367) 0; +} +.icon-custom-Hornet { + background-position: percentage((146 - 368)/ 367) 0; } .icon-custom-Hotdog { - background-position: percentage((134 - 344)/ 343) 0; + background-position: percentage((147 - 368)/ 367) 0; } .icon-custom-HyruleKnight { - background-position: percentage((135 - 344)/ 343) 0; + background-position: percentage((148 - 368)/ 367) 0; } .icon-custom-iBazly { - background-position: percentage((136 - 344)/ 343) 0; + background-position: percentage((149 - 368)/ 367) 0; } .icon-custom-Ignignokt { - background-position: percentage((137 - 344)/ 343) 0; + background-position: percentage((150 - 368)/ 367) 0; } .icon-custom-InformantWoman { - background-position: percentage((138 - 344)/ 343) 0; + background-position: percentage((151 - 368)/ 367) 0; } .icon-custom-Inkling { - background-position: percentage((139 - 344)/ 343) 0; + background-position: percentage((152 - 368)/ 367) 0; } .icon-custom-InvisibleLink { - background-position: percentage((140 - 344)/ 343) 0; + background-position: percentage((153 - 368)/ 367) 0; } .icon-custom-JackFrost { - background-position: percentage((141 - 344)/ 343) 0; + background-position: percentage((154 - 368)/ 367) 0; } .icon-custom-JasonFrudnick { - background-position: percentage((142 - 344)/ 343) 0; + background-position: percentage((155 - 368)/ 367) 0; } .icon-custom-Jasp { - background-position: percentage((143 - 344)/ 343) 0; + background-position: percentage((156 - 368)/ 367) 0; } .icon-custom-Jogurt { - background-position: percentage((144 - 344)/ 343) 0; + background-position: percentage((157 - 368)/ 367) 0; } .icon-custom-Kain { - background-position: percentage((145 - 344)/ 343) 0; + background-position: percentage((158 - 368)/ 367) 0; } .icon-custom-Katsura { - background-position: percentage((146 - 344)/ 343) 0; + background-position: percentage((159 - 368)/ 367) 0; } .icon-custom-Kecleon { - background-position: percentage((147 - 344)/ 343) 0; + background-position: percentage((160 - 368)/ 367) 0; } .icon-custom-Kefka { - background-position: percentage((148 - 344)/ 343) 0; + background-position: percentage((161 - 368)/ 367) 0; } .icon-custom-KennyMcCormick { - background-position: percentage((149 - 344)/ 343) 0; + background-position: percentage((162 - 368)/ 367) 0; } .icon-custom-Ketchup { - background-position: percentage((150 - 344)/ 343) 0; + background-position: percentage((163 - 368)/ 367) 0; } .icon-custom-Kholdstare { - background-position: percentage((151 - 344)/ 343) 0; + background-position: percentage((164 - 368)/ 367) 0; } .icon-custom-KingGothalion { - background-position: percentage((152 - 344)/ 343) 0; + background-position: percentage((165 - 368)/ 367) 0; } .icon-custom-KingGraham { - background-position: percentage((153 - 344)/ 343) 0; + background-position: percentage((166 - 368)/ 367) 0; } .icon-custom-Kinu { - background-position: percentage((154 - 344)/ 343) 0; + background-position: percentage((167 - 368)/ 367) 0; } .icon-custom-KirbyDreamland3 { - background-position: percentage((155 - 344)/ 343) 0; + background-position: percentage((168 - 368)/ 367) 0; } .icon-custom-Kirby { - background-position: percentage((156 - 344)/ 343) 0; + background-position: percentage((169 - 368)/ 367) 0; } .icon-custom-Kore8 { - background-position: percentage((157 - 344)/ 343) 0; + background-position: percentage((170 - 368)/ 367) 0; } .icon-custom-Korok { - background-position: percentage((158 - 344)/ 343) 0; + background-position: percentage((171 - 368)/ 367) 0; } .icon-custom-Kriv { - background-position: percentage((159 - 344)/ 343) 0; + background-position: percentage((172 - 368)/ 367) 0; } .icon-custom-Lakitu { - background-position: percentage((160 - 344)/ 343) 0; + background-position: percentage((173 - 368)/ 367) 0; } .icon-custom-Lapras { - background-position: percentage((161 - 344)/ 343) 0; + background-position: percentage((174 - 368)/ 367) 0; } .icon-custom-Lest { - background-position: percentage((162 - 344)/ 343) 0; + background-position: percentage((175 - 368)/ 367) 0; +} +.icon-custom-Lestat { + background-position: percentage((176 - 368)/ 367) 0; } .icon-custom-Lily { - background-position: percentage((163 - 344)/ 343) 0; + background-position: percentage((177 - 368)/ 367) 0; } .icon-custom-Linja { - background-position: percentage((164 - 344)/ 343) 0; + background-position: percentage((178 - 368)/ 367) 0; } .icon-custom-LinkRedrawn { - background-position: percentage((165 - 344)/ 343) 0; + background-position: percentage((179 - 368)/ 367) 0; } .icon-custom-HatColorLink { - background-position: percentage((166 - 344)/ 343) 0; + background-position: percentage((180 - 368)/ 367) 0; } .icon-custom-TunicColorLink { - background-position: percentage((167 - 344)/ 343) 0; + background-position: percentage((181 - 368)/ 367) 0; } .icon-custom-LittleHylian { - background-position: percentage((168 - 344)/ 343) 0; + background-position: percentage((182 - 368)/ 367) 0; } .icon-custom-Pony { - background-position: percentage((169 - 344)/ 343) 0; + background-position: percentage((183 - 368)/ 367) 0; } .icon-custom-Locke { - background-position: percentage((170 - 344)/ 343) 0; + background-position: percentage((184 - 368)/ 367) 0; } .icon-custom-FigaroMerchant { - background-position: percentage((171 - 344)/ 343) 0; + background-position: percentage((185 - 368)/ 367) 0; } .icon-custom-Lucario { - background-position: percentage((172 - 344)/ 343) 0; + background-position: percentage((186 - 368)/ 367) 0; } .icon-custom-Luffy { - background-position: percentage((173 - 344)/ 343) 0; + background-position: percentage((187 - 368)/ 367) 0; } .icon-custom-Luigi { - background-position: percentage((174 - 344)/ 343) 0; + background-position: percentage((188 - 368)/ 367) 0; } .icon-custom-LunaMaindo { - background-position: percentage((175 - 344)/ 343) 0; + background-position: percentage((189 - 368)/ 367) 0; } .icon-custom-LynelBotW { - background-position: percentage((176 - 344)/ 343) 0; + background-position: percentage((190 - 368)/ 367) 0; } .icon-custom-Madeline { - background-position: percentage((177 - 344)/ 343) 0; + background-position: percentage((191 - 368)/ 367) 0; } .icon-custom-Magus { - background-position: percentage((178 - 344)/ 343) 0; + background-position: percentage((192 - 368)/ 367) 0; } .icon-custom-Maiden { - background-position: percentage((179 - 344)/ 343) 0; + background-position: percentage((193 - 368)/ 367) 0; +} +.icon-custom-MajorasMask { + background-position: percentage((194 - 368)/ 367) 0; } .icon-custom-MallowCat { - background-position: percentage((180 - 344)/ 343) 0; + background-position: percentage((195 - 368)/ 367) 0; } .icon-custom-MangaLink { - background-position: percentage((181 - 344)/ 343) 0; + background-position: percentage((196 - 368)/ 367) 0; } .icon-custom-MapleQueen { - background-position: percentage((182 - 344)/ 343) 0; + background-position: percentage((197 - 368)/ 367) 0; } .icon-custom-Marin { - background-position: percentage((183 - 344)/ 343) 0; + background-position: percentage((198 - 368)/ 367) 0; } .icon-custom-MarioClassic { - background-position: percentage((184 - 344)/ 343) 0; + background-position: percentage((199 - 368)/ 367) 0; } .icon-custom-TanookiMario { - background-position: percentage((185 - 344)/ 343) 0; + background-position: percentage((200 - 368)/ 367) 0; } .icon-custom-MarioandCappy { - background-position: percentage((186 - 344)/ 343) 0; + background-position: percentage((201 - 368)/ 367) 0; } .icon-custom-MarisaKirisame { - background-position: percentage((187 - 344)/ 343) 0; + background-position: percentage((202 - 368)/ 367) 0; } .icon-custom-Matthias { - background-position: percentage((188 - 344)/ 343) 0; + background-position: percentage((203 - 368)/ 367) 0; } .icon-custom-Meatwad { - background-position: percentage((189 - 344)/ 343) 0; + background-position: percentage((204 - 368)/ 367) 0; } .icon-custom-Medallions { - background-position: percentage((190 - 344)/ 343) 0; + background-position: percentage((205 - 368)/ 367) 0; } .icon-custom-Medli { - background-position: percentage((191 - 344)/ 343) 0; + background-position: percentage((206 - 368)/ 367) 0; } .icon-custom-MegamanX { - background-position: percentage((192 - 344)/ 343) 0; + background-position: percentage((207 - 368)/ 367) 0; +} +.icon-custom-MegamanX2 { + background-position: percentage((208 - 368)/ 367) 0; +} +.icon-custom-MegaManClassic { + background-position: percentage((209 - 368)/ 367) 0; } .icon-custom-BabyMetroid { - background-position: percentage((193 - 344)/ 343) 0; + background-position: percentage((210 - 368)/ 367) 0; } .icon-custom-MewLp { - background-position: percentage((194 - 344)/ 343) 0; + background-position: percentage((211 - 368)/ 367) 0; } .icon-custom-MikeJones { - background-position: percentage((195 - 344)/ 343) 0; + background-position: percentage((212 - 368)/ 367) 0; +} +.icon-custom-Mimic { + background-position: percentage((213 - 368)/ 367) 0; } .icon-custom-MinishLink { - background-position: percentage((196 - 344)/ 343) 0; + background-position: percentage((214 - 368)/ 367) 0; } .icon-custom-MinishCapLink { - background-position: percentage((197 - 344)/ 343) 0; + background-position: percentage((215 - 368)/ 367) 0; +} +.icon-custom-Mipha { + background-position: percentage((216 - 368)/ 367) 0; } .icon-custom-missingno { - background-position: percentage((198 - 344)/ 343) 0; + background-position: percentage((217 - 368)/ 367) 0; } .icon-custom-Moblin { - background-position: percentage((199 - 344)/ 343) 0; + background-position: percentage((218 - 368)/ 367) 0; } .icon-custom-ModernLink { - background-position: percentage((200 - 344)/ 343) 0; + background-position: percentage((219 - 368)/ 367) 0; } .icon-custom-Mog { - background-position: percentage((201 - 344)/ 343) 0; + background-position: percentage((220 - 368)/ 367) 0; } .icon-custom-MomijiInubashiri { - background-position: percentage((202 - 344)/ 343) 0; + background-position: percentage((221 - 368)/ 367) 0; } .icon-custom-Moosh { - background-position: percentage((203 - 344)/ 343) 0; + background-position: percentage((222 - 368)/ 367) 0; } .icon-custom-Mouse { - background-position: percentage((204 - 344)/ 343) 0; + background-position: percentage((223 - 368)/ 367) 0; } .icon-custom-MsPaintDog { - background-position: percentage((205 - 344)/ 343) 0; + background-position: percentage((224 - 368)/ 367) 0; } .icon-custom-PowerUpwithPrideMushroom { - background-position: percentage((206 - 344)/ 343) 0; + background-position: percentage((225 - 368)/ 367) 0; } .icon-custom-NatureLink { - background-position: percentage((207 - 344)/ 343) 0; + background-position: percentage((226 - 368)/ 367) 0; } .icon-custom-Navi { - background-position: percentage((208 - 344)/ 343) 0; + background-position: percentage((227 - 368)/ 367) 0; } .icon-custom-Navirou { - background-position: percentage((209 - 344)/ 343) 0; + background-position: percentage((228 - 368)/ 367) 0; } .icon-custom-NedFlanders { - background-position: percentage((210 - 344)/ 343) 0; + background-position: percentage((229 - 368)/ 367) 0; } .icon-custom-NegativeLink { - background-position: percentage((211 - 344)/ 343) 0; + background-position: percentage((230 - 368)/ 367) 0; } .icon-custom-Neosad { - background-position: percentage((212 - 344)/ 343) 0; + background-position: percentage((231 - 368)/ 367) 0; } .icon-custom-NESLink { - background-position: percentage((213 - 344)/ 343) 0; + background-position: percentage((232 - 368)/ 367) 0; } .icon-custom-Ness { - background-position: percentage((214 - 344)/ 343) 0; + background-position: percentage((233 - 368)/ 367) 0; } .icon-custom-Nia { - background-position: percentage((215 - 344)/ 343) 0; + background-position: percentage((234 - 368)/ 367) 0; } .icon-custom-Niddraig { - background-position: percentage((216 - 344)/ 343) 0; + background-position: percentage((235 - 368)/ 367) 0; } .icon-custom-Niko { - background-position: percentage((217 - 344)/ 343) 0; + background-position: percentage((236 - 368)/ 367) 0; } .icon-custom-OldMan { - background-position: percentage((218 - 344)/ 343) 0; + background-position: percentage((237 - 368)/ 367) 0; } .icon-custom-Ori { - background-position: percentage((219 - 344)/ 343) 0; + background-position: percentage((238 - 368)/ 367) 0; } .icon-custom-OutlineLink { - background-position: percentage((220 - 344)/ 343) 0; + background-position: percentage((239 - 368)/ 367) 0; } .icon-custom-ParallelWorldsLink { - background-position: percentage((221 - 344)/ 343) 0; + background-position: percentage((240 - 368)/ 367) 0; } .icon-custom-Paula { - background-position: percentage((222 - 344)/ 343) 0; + background-position: percentage((241 - 368)/ 367) 0; } .icon-custom-PrincessPeach { - background-position: percentage((223 - 344)/ 343) 0; + background-position: percentage((242 - 368)/ 367) 0; } .icon-custom-PenguinLink { - background-position: percentage((224 - 344)/ 343) 0; + background-position: percentage((243 - 368)/ 367) 0; } .icon-custom-Pete { - background-position: percentage((225 - 344)/ 343) 0; + background-position: percentage((244 - 368)/ 367) 0; } .icon-custom-PhoenixWright { - background-position: percentage((226 - 344)/ 343) 0; + background-position: percentage((245 - 368)/ 367) 0; } .icon-custom-Pikachu { - background-position: percentage((227 - 344)/ 343) 0; + background-position: percentage((246 - 368)/ 367) 0; } .icon-custom-PinkRibbonLink { - background-position: percentage((228 - 344)/ 343) 0; + background-position: percentage((247 - 368)/ 367) 0; } .icon-custom-PiranhaPlant { - background-position: percentage((229 - 344)/ 343) 0; + background-position: percentage((248 - 368)/ 367) 0; } .icon-custom-PlagueKnight { - background-position: percentage((230 - 344)/ 343) 0; + background-position: percentage((249 - 368)/ 367) 0; +} +.icon-custom-Plouni { + background-position: percentage((250 - 368)/ 367) 0; +} +.icon-custom-Pokeysubtle { + background-position: percentage((251 - 368)/ 367) 0; } .icon-custom-Pokey { - background-position: percentage((231 - 344)/ 343) 0; + background-position: percentage((252 - 368)/ 367) 0; } .icon-custom-Popoi { - background-position: percentage((232 - 344)/ 343) 0; + background-position: percentage((253 - 368)/ 367) 0; } .icon-custom-Poppy { - background-position: percentage((233 - 344)/ 343) 0; + background-position: percentage((254 - 368)/ 367) 0; } .icon-custom-PorgKnight { - background-position: percentage((234 - 344)/ 343) 0; + background-position: percentage((255 - 368)/ 367) 0; } .icon-custom-PowerRanger { - background-position: percentage((235 - 344)/ 343) 0; + background-position: percentage((256 - 368)/ 367) 0; } .icon-custom-PowerpuffGirl { - background-position: percentage((236 - 344)/ 343) 0; + background-position: percentage((257 - 368)/ 367) 0; } .icon-custom-PrideLink { - background-position: percentage((237 - 344)/ 343) 0; + background-position: percentage((258 - 368)/ 367) 0; } .icon-custom-Primm { - background-position: percentage((238 - 344)/ 343) 0; + background-position: percentage((259 - 368)/ 367) 0; } .icon-custom-PrincessBubblegum { - background-position: percentage((239 - 344)/ 343) 0; + background-position: percentage((260 - 368)/ 367) 0; +} +.icon-custom-ProfRendererGrizzleton { + background-position: percentage((261 - 368)/ 367) 0; } .icon-custom-TheProfessor { - background-position: percentage((240 - 344)/ 343) 0; + background-position: percentage((262 - 368)/ 367) 0; } .icon-custom-Psyduck { - background-position: percentage((241 - 344)/ 343) 0; + background-position: percentage((263 - 368)/ 367) 0; } .icon-custom-ThePug { - background-position: percentage((242 - 344)/ 343) 0; + background-position: percentage((264 - 368)/ 367) 0; } .icon-custom-PurpleChest { - background-position: percentage((243 - 344)/ 343) 0; + background-position: percentage((265 - 368)/ 367) 0; } .icon-custom-Pyro { - background-position: percentage((244 - 344)/ 343) 0; + background-position: percentage((266 - 368)/ 367) 0; } .icon-custom-QuadBanger { - background-position: percentage((245 - 344)/ 343) 0; + background-position: percentage((267 - 368)/ 367) 0; } .icon-custom-RainbowLink { - background-position: percentage((246 - 344)/ 343) 0; + background-position: percentage((268 - 368)/ 367) 0; } .icon-custom-Rat { - background-position: percentage((247 - 344)/ 343) 0; + background-position: percentage((269 - 368)/ 367) 0; } .icon-custom-RedMage { - background-position: percentage((248 - 344)/ 343) 0; + background-position: percentage((270 - 368)/ 367) 0; } .icon-custom-Remeer { - background-position: percentage((249 - 344)/ 343) 0; + background-position: percentage((271 - 368)/ 367) 0; } .icon-custom-RemusRBlack { - background-position: percentage((250 - 344)/ 343) 0; + background-position: percentage((272 - 368)/ 367) 0; } .icon-custom-Rick { - background-position: percentage((251 - 344)/ 343) 0; + background-position: percentage((273 - 368)/ 367) 0; } .icon-custom-Robo-Link9000 { - background-position: percentage((252 - 344)/ 343) 0; + background-position: percentage((274 - 368)/ 367) 0; } .icon-custom-Rocko { - background-position: percentage((253 - 344)/ 343) 0; + background-position: percentage((275 - 368)/ 367) 0; } .icon-custom-Rottytops { - background-position: percentage((254 - 344)/ 343) 0; + background-position: percentage((276 - 368)/ 367) 0; } .icon-custom-Rover { - background-position: percentage((255 - 344)/ 343) 0; + background-position: percentage((277 - 368)/ 367) 0; } .icon-custom-RoyKoopa { - background-position: percentage((256 - 344)/ 343) 0; + background-position: percentage((278 - 368)/ 367) 0; } .icon-custom-Rumia { - background-position: percentage((257 - 344)/ 343) 0; + background-position: percentage((279 - 368)/ 367) 0; } .icon-custom-Rydia { - background-position: percentage((258 - 344)/ 343) 0; + background-position: percentage((280 - 368)/ 367) 0; } .icon-custom-Ryu { - background-position: percentage((259 - 344)/ 343) 0; + background-position: percentage((281 - 368)/ 367) 0; } .icon-custom-SailorMoon { - background-position: percentage((260 - 344)/ 343) 0; + background-position: percentage((282 - 368)/ 367) 0; } .icon-custom-Saitama { - background-position: percentage((261 - 344)/ 343) 0; + background-position: percentage((283 - 368)/ 367) 0; } .icon-custom-SamusSuperMetroid { - background-position: percentage((262 - 344)/ 343) 0; + background-position: percentage((284 - 368)/ 367) 0; } .icon-custom-Samus { - background-position: percentage((263 - 344)/ 343) 0; + background-position: percentage((285 - 368)/ 367) 0; } .icon-custom-SamusClassic { - background-position: percentage((264 - 344)/ 343) 0; + background-position: percentage((286 - 368)/ 367) 0; } .icon-custom-SantaHatLink { - background-position: percentage((265 - 344)/ 343) 0; + background-position: percentage((287 - 368)/ 367) 0; } .icon-custom-SantaLink { - background-position: percentage((266 - 344)/ 343) 0; + background-position: percentage((288 - 368)/ 367) 0; } .icon-custom-Scholar { - background-position: percentage((267 - 344)/ 343) 0; + background-position: percentage((289 - 368)/ 367) 0; } .icon-custom-Selan { - background-position: percentage((268 - 344)/ 343) 0; + background-position: percentage((290 - 368)/ 367) 0; } .icon-custom-SevenS1ns { - background-position: percentage((269 - 344)/ 343) 0; + background-position: percentage((291 - 368)/ 367) 0; } .icon-custom-Shadow { - background-position: percentage((270 - 344)/ 343) 0; + background-position: percentage((292 - 368)/ 367) 0; } .icon-custom-ShadowSakura { - background-position: percentage((271 - 344)/ 343) 0; + background-position: percentage((293 - 368)/ 367) 0; } .icon-custom-Shantae { - background-position: percentage((272 - 344)/ 343) 0; + background-position: percentage((294 - 368)/ 367) 0; } .icon-custom-Shuppet { - background-position: percentage((273 - 344)/ 343) 0; + background-position: percentage((295 - 368)/ 367) 0; } .icon-custom-ShyGal { - background-position: percentage((274 - 344)/ 343) 0; + background-position: percentage((296 - 368)/ 367) 0; } .icon-custom-ShyGuy { - background-position: percentage((275 - 344)/ 343) 0; + background-position: percentage((297 - 368)/ 367) 0; } .icon-custom-SighnWaive { - background-position: percentage((276 - 344)/ 343) 0; + background-position: percentage((298 - 368)/ 367) 0; } .icon-custom-Skunk { - background-position: percentage((277 - 344)/ 343) 0; + background-position: percentage((299 - 368)/ 367) 0; } .icon-custom-Slime { - background-position: percentage((278 - 344)/ 343) 0; + background-position: percentage((300 - 368)/ 367) 0; } .icon-custom-Slowpoke { - background-position: percentage((279 - 344)/ 343) 0; + background-position: percentage((301 - 368)/ 367) 0; } .icon-custom-SNESController { - background-position: percentage((280 - 344)/ 343) 0; + background-position: percentage((302 - 368)/ 367) 0; } .icon-custom-SodaCan { - background-position: percentage((281 - 344)/ 343) 0; + background-position: percentage((303 - 368)/ 367) 0; } .icon-custom-SolaireofAstora { - background-position: percentage((282 - 344)/ 343) 0; + background-position: percentage((304 - 368)/ 367) 0; } .icon-custom-HyruleSoldier { - background-position: percentage((283 - 344)/ 343) 0; + background-position: percentage((305 - 368)/ 367) 0; } .icon-custom-SonictheHedgehog { - background-position: percentage((284 - 344)/ 343) 0; + background-position: percentage((306 - 368)/ 367) 0; } .icon-custom-Sora { - background-position: percentage((285 - 344)/ 343) 0; + background-position: percentage((307 - 368)/ 367) 0; } .icon-custom-SoraKH1 { - background-position: percentage((286 - 344)/ 343) 0; + background-position: percentage((308 - 368)/ 367) 0; +} +.icon-custom-SpikedRoller { + background-position: percentage((309 - 368)/ 367) 0; } .icon-custom-SpongebobSquarepants { - background-position: percentage((287 - 344)/ 343) 0; + background-position: percentage((310 - 368)/ 367) 0; } .icon-custom-Squall { - background-position: percentage((288 - 344)/ 343) 0; + background-position: percentage((311 - 368)/ 367) 0; } .icon-custom-Squirrel { - background-position: percentage((289 - 344)/ 343) 0; + background-position: percentage((312 - 368)/ 367) 0; } .icon-custom-Squirtle { - background-position: percentage((290 - 344)/ 343) 0; + background-position: percentage((313 - 368)/ 367) 0; } .icon-custom-Stalfos { - background-position: percentage((291 - 344)/ 343) 0; + background-position: percentage((314 - 368)/ 367) 0; } .icon-custom-Stan { - background-position: percentage((292 - 344)/ 343) 0; + background-position: percentage((315 - 368)/ 367) 0; } .icon-custom-StaticLink { - background-position: percentage((293 - 344)/ 343) 0; + background-position: percentage((316 - 368)/ 367) 0; } .icon-custom-SteamedHams { - background-position: percentage((294 - 344)/ 343) 0; + background-position: percentage((317 - 368)/ 367) 0; } .icon-custom-StickMan { - background-position: percentage((295 - 344)/ 343) 0; + background-position: percentage((318 - 368)/ 367) 0; } .icon-custom-SuperBomb { - background-position: percentage((296 - 344)/ 343) 0; + background-position: percentage((319 - 368)/ 367) 0; } .icon-custom-SuperBunny { - background-position: percentage((297 - 344)/ 343) 0; + background-position: percentage((320 - 368)/ 367) 0; } .icon-custom-SuperMeatBoy { - background-position: percentage((298 - 344)/ 343) 0; + background-position: percentage((321 - 368)/ 367) 0; } .icon-custom-Susie { - background-position: percentage((299 - 344)/ 343) 0; + background-position: percentage((322 - 368)/ 367) 0; } .icon-custom-Swatchy { - background-position: percentage((300 - 344)/ 343) 0; + background-position: percentage((323 - 368)/ 367) 0; +} +.icon-custom-Swiper { + background-position: percentage((324 - 368)/ 367) 0; } .icon-custom-TASBot { - background-position: percentage((301 - 344)/ 343) 0; + background-position: percentage((325 - 368)/ 367) 0; } .icon-custom-TeaTime { - background-position: percentage((302 - 344)/ 343) 0; + background-position: percentage((326 - 368)/ 367) 0; } .icon-custom-TerraEsper { - background-position: percentage((303 - 344)/ 343) 0; + background-position: percentage((327 - 368)/ 367) 0; } .icon-custom-TerryContactDS { - background-position: percentage((304 - 344)/ 343) 0; + background-position: percentage((328 - 368)/ 367) 0; } .icon-custom-Tetra { - background-position: percentage((305 - 344)/ 343) 0; + background-position: percentage((329 - 368)/ 367) 0; } .icon-custom-TGH { - background-position: percentage((306 - 344)/ 343) 0; + background-position: percentage((330 - 368)/ 367) 0; } .icon-custom-Thief { - background-position: percentage((307 - 344)/ 343) 0; + background-position: percentage((331 - 368)/ 367) 0; } .icon-custom-ThinkDorm { - background-position: percentage((308 - 344)/ 343) 0; + background-position: percentage((332 - 368)/ 367) 0; } .icon-custom-Thomcrow { - background-position: percentage((309 - 344)/ 343) 0; + background-position: percentage((333 - 368)/ 367) 0; } .icon-custom-Tile { - background-position: percentage((310 - 344)/ 343) 0; + background-position: percentage((334 - 368)/ 367) 0; } .icon-custom-Tingle { - background-position: percentage((311 - 344)/ 343) 0; + background-position: percentage((335 - 368)/ 367) 0; } .icon-custom-TMNT { - background-position: percentage((312 - 344)/ 343) 0; + background-position: percentage((336 - 368)/ 367) 0; } .icon-custom-Toad { - background-position: percentage((313 - 344)/ 343) 0; + background-position: percentage((337 - 368)/ 367) 0; } .icon-custom-Toadette { - background-position: percentage((314 - 344)/ 343) 0; + background-position: percentage((338 - 368)/ 367) 0; } .icon-custom-CaptainToadette { - background-position: percentage((315 - 344)/ 343) 0; + background-position: percentage((339 - 368)/ 367) 0; } .icon-custom-TotemLinks { - background-position: percentage((316 - 344)/ 343) 0; + background-position: percentage((340 - 368)/ 367) 0; } .icon-custom-TrogdortheBurninator { - background-position: percentage((317 - 344)/ 343) 0; + background-position: percentage((341 - 368)/ 367) 0; } .icon-custom-TPZelda { - background-position: percentage((318 - 344)/ 343) 0; + background-position: percentage((342 - 368)/ 367) 0; } .icon-custom-TwoFaced { - background-position: percentage((319 - 344)/ 343) 0; + background-position: percentage((343 - 368)/ 367) 0; } .icon-custom-TytheTasmanianTiger { - background-position: percentage((320 - 344)/ 343) 0; + background-position: percentage((344 - 368)/ 367) 0; } .icon-custom-Ultros { - background-position: percentage((321 - 344)/ 343) 0; + background-position: percentage((345 - 368)/ 367) 0; } .icon-custom-Valeera { - background-position: percentage((322 - 344)/ 343) 0; + background-position: percentage((346 - 368)/ 367) 0; } .icon-custom-VanillaLink { - background-position: percentage((323 - 344)/ 343) 0; + background-position: percentage((347 - 368)/ 367) 0; } .icon-custom-Vaporeon { - background-position: percentage((324 - 344)/ 343) 0; + background-position: percentage((348 - 368)/ 367) 0; } .icon-custom-Vegeta { - background-position: percentage((325 - 344)/ 343) 0; + background-position: percentage((349 - 368)/ 367) 0; } .icon-custom-Vera { - background-position: percentage((326 - 344)/ 343) 0; + background-position: percentage((350 - 368)/ 367) 0; } .icon-custom-Vitreous { - background-position: percentage((327 - 344)/ 343) 0; + background-position: percentage((351 - 368)/ 367) 0; } .icon-custom-Vivi { - background-position: percentage((328 - 344)/ 343) 0; + background-position: percentage((352 - 368)/ 367) 0; } .icon-custom-Vivian { - background-position: percentage((329 - 344)/ 343) 0; + background-position: percentage((353 - 368)/ 367) 0; } .icon-custom-Wario { - background-position: percentage((330 - 344)/ 343) 0; + background-position: percentage((354 - 368)/ 367) 0; } .icon-custom-WhiteMage { - background-position: percentage((331 - 344)/ 343) 0; + background-position: percentage((355 - 368)/ 367) 0; } .icon-custom-Will { - background-position: percentage((332 - 344)/ 343) 0; + background-position: percentage((356 - 368)/ 367) 0; } .icon-custom-Wizzrobe { - background-position: percentage((333 - 344)/ 343) 0; + background-position: percentage((357 - 368)/ 367) 0; } .icon-custom-WolfLinkFestive { - background-position: percentage((334 - 344)/ 343) 0; + background-position: percentage((358 - 368)/ 367) 0; } .icon-custom-WolfLinkTP { - background-position: percentage((335 - 344)/ 343) 0; + background-position: percentage((359 - 368)/ 367) 0; } .icon-custom-Yoshi { - background-position: percentage((336 - 344)/ 343) 0; + background-position: percentage((360 - 368)/ 367) 0; } .icon-custom-YunicaTovah { - background-position: percentage((337 - 344)/ 343) 0; + background-position: percentage((361 - 368)/ 367) 0; } .icon-custom-Zandra { - background-position: percentage((338 - 344)/ 343) 0; + background-position: percentage((362 - 368)/ 367) 0; } .icon-custom-ZebraUnicorn { - background-position: percentage((339 - 344)/ 343) 0; + background-position: percentage((363 - 368)/ 367) 0; } .icon-custom-Zeckemyro { - background-position: percentage((340 - 344)/ 343) 0; + background-position: percentage((364 - 368)/ 367) 0; } .icon-custom-Zelda { - background-position: percentage((341 - 344)/ 343) 0; + background-position: percentage((365 - 368)/ 367) 0; } .icon-custom-ZeroSuitSamus { - background-position: percentage((342 - 344)/ 343) 0; + background-position: percentage((366 - 368)/ 367) 0; } .icon-custom-Zora { - background-position: percentage((343 - 344)/ 343) 0; + background-position: percentage((367 - 368)/ 367) 0; } diff --git a/resources/views/about.blade.php b/resources/views/about.blade.php index 289e02609..8b1091822 100644 --- a/resources/views/about.blade.php +++ b/resources/views/about.blade.php @@ -18,15 +18,4 @@ class="btn btn-outline-secondary btn-lg"

        {!! $block !!}

        @endforeach - -
        - -
        @overwrite diff --git a/resources/views/contribute.blade.php b/resources/views/contribute.blade.php index 5781fda35..ccce429c1 100644 --- a/resources/views/contribute.blade.php +++ b/resources/views/contribute.blade.php @@ -16,17 +16,6 @@ -
        -
        -

        {{ __('contribute.cards.live.header') }}

        -
        -
        - @foreach (__('contribute.cards.live.content') as $block) -

        {!! $block !!}

        - @endforeach -
        -
        -

        {{ __('contribute.cards.other.header') }}

        diff --git a/resources/views/options.blade.php b/resources/views/options.blade.php index c084f0b3a..bae805121 100644 --- a/resources/views/options.blade.php +++ b/resources/views/options.blade.php @@ -363,7 +363,7 @@
          -
        • 10x Big Key
        • +
        • 11x Big Key
        • 1x Bombos
        • 1x Book Of Mudora
        • 1x Boomerang
        • @@ -382,7 +382,7 @@
        • 11x Heart Container
        • 1x Hookshot
        • 1x Ice Rod
        • -
        • 28x Small Key
        • +
        • 29x Small Key
        • 1x Lamp
        • 1x Magic Cape
        • 1x Magic Mirror
        • diff --git a/resources/views/races.blade.php b/resources/views/races.blade.php index c1db404ac..834aabeae 100644 --- a/resources/views/races.blade.php +++ b/resources/views/races.blade.php @@ -19,27 +19,33 @@
          -

          {{ __('races.cards.network.header') }}

          +

          {{ __('races.cards.tournament.header') }}

          - @foreach (__('races.cards.network.content') as $block) -

          {!! $block !!}

          + @foreach (__('races.cards.tournament.sections') as $section) +

          {{ $section['header'] }}

          + @foreach ($section['content'] as $block) +

          {!! $block !!}

          + @endforeach @endforeach
          + @foreach (__('races.cards.foreign_language.languages') as $language)
          -

          {{ __('races.cards.tournament.header') }}

          +

          {{ $language['header'] }}

          - @foreach (__('races.cards.tournament.sections') as $section) -

          {{ $section['header'] }}

          - @foreach ($section['content'] as $block) -

          {!! $block !!}

          - @endforeach +

          {!! $language['description'] !!}

          + @foreach ($language['sections'] as $section) +

          {{ $section['header'] }}

          + @foreach ($section['content'] as $block) +

          {!! $block !!}

          + @endforeach @endforeach
          + @endforeach
        @overwrite diff --git a/resources/views/resources.blade.php b/resources/views/resources.blade.php index ef08f5d9d..9be9900f3 100644 --- a/resources/views/resources.blade.php +++ b/resources/views/resources.blade.php @@ -14,17 +14,6 @@
        -
        -
        -

        {{ __('resources.cards.learn.header') }}

        -
        -
        - @foreach (__('resources.cards.learn.content') as $block) -

        {!! $block !!}

        - @endforeach -
        -
        -

        {{ __('resources.cards.external.header') }}

        diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index 0f9c9a08f..e91a3a24b 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -2,6 +2,29 @@ @section('content') +

        v31.0.9

        +
        +
          +
        • New post-generation option called "Reduce Flashing" has been added. Thanks Cassidymoen!
        • +
        • The credits have been updated to include additional individuals we want to recognize for their contributions to this project.
        • +
        • The author of the sprite you're using will now appear in the end credits.
        • +
        • When underworld clips are enabled, a new line will appear in the menu indicating what bosses have been defeated.
        • +
        • The bottles now work like other items that share an inventory space when using Quickswap. Press L+R to swap bottles.
        • +
        • The website will now, by default, generate games where Quickswap is allowed. This can still be disabled via the API.
        • +
        • Finding a map in Hyrule Castle will now properly show the map on your item menu while in the Sewers section of Hyrule Castle.
        • +
        • Enemizer: Firebars will now only damage the player if the firebar is on the same layer as Link.
        • +
        • Customizer: Will now default to enabling spoilers on generated games. This can still be set to Disabled, On Generate, or Mystery as needed.
        • +
        • Overworld YBA now puts Moon Pearl-less access to Ganon in logic
        • +
        • Bot authors may now specify a game name and notes in API requests to /api/randomizer
        • +
        • A new "Random" option was added for the heart color. Thanks Doctor Blue!
        • +
        • Ganon will now say something New and Unique™ when Silver Arrows are unavailable.
        • +
        • Miscellaneous website updates.
        • +
        • Added new player options
          + Link sprite options
        • +
        +
        +

        v31.0.8

          diff --git a/routes/console.php b/routes/console.php index 139343e9d..58987f382 100644 --- a/routes/console.php +++ b/routes/console.php @@ -45,7 +45,7 @@ function getWeighted(string $category): string 'none' => 'NoGlitches', 'overworld_glitches' => 'OverworldGlitches', 'major_glitches' => 'MajorGlitches', - 'no_logic' => 'None', + 'no_logic' => 'NoLogic', ][getWeighted('glitches_required')]; $world = World::factory(getWeighted('world_state'), [ diff --git a/strings/ganon_phase_3_no_silvers.txt b/strings/ganon_phase_3_no_silvers.txt new file mode 100644 index 000000000..28b4a1d85 --- /dev/null +++ b/strings/ganon_phase_3_no_silvers.txt @@ -0,0 +1,120 @@ +- +Did you find +the arrows on +Planet Zebes? +- +Did you find +the arrows? +I think not. +- +Silver arrows? +I have never +heard of them +- +Did you find +The arrows on +The Moon? +- +Did you find +The arrows +In dev null? +- +I have sold +The arrows for +A green big 20 +- +Did you find +The arrows in +Count Dracula? +- +Error 404 +Silver arrows +not found. +- +No arrows for +You today, +Sorry +- +No arrows? +Check your +junk mail. +- +Careful, all +that spinning +makes me dizzy +- +Did you find +the arrows in +Jabu's belly? +- +Silver is not +an appropriate +arrow material +- +Did you find +the arrows in +Narnia? +- +Are you ready +To spin +To win? +- +DID YOU FIND +THE ARROWS IN +KEFKA'S TOWER +- +Did you find +the arrows in +Recycle Bin? +- +Silver Arrows? + +LUL +- +Imagine +finding the +arrows +- +Did you find +silvers in +scenic Ohio? +- +Did you find +The arrows in +*mumblemumble* +- + +Spin To Win! + +- +did you find +the arrows in +the hourglass? +- +Silver Arrows +are so v30 +- +OH, NO, THEY +ACTUALLY SAID +SILVER MARROW +- +SURELY THE +LEFTMOST TILES +WILL STAY UP +- +Did you find +the arrows in +World 4-2? +- +You Spin Me +Right Round +Like A Record +- +SILLY HERO, +SILVER IS FOR +WEREWOLVES! +- +Did you find +the silvers in +ganti's ears +- \ No newline at end of file diff --git a/tests/MajorGlitches/DarkWorld/NorthEastTest.php b/tests/MajorGlitches/DarkWorld/NorthEastTest.php index f5a1b9d1c..313095b63 100644 --- a/tests/MajorGlitches/DarkWorld/NorthEastTest.php +++ b/tests/MajorGlitches/DarkWorld/NorthEastTest.php @@ -124,7 +124,6 @@ public function accessPool() ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'BottleWithGoldBee']], ["Ganon", false, []], - ["Ganon", false, [], ['MoonPearl']], ["Ganon", false, [], ['DefeatAgahnim2']], ]; } From 7b567752ed5d9bebebb355bf6098d5744127b712 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sat, 5 Jun 2021 12:22:24 -0500 Subject: [PATCH 40/59] fix generated i18n --- resources/js/vue-i18n-locales.generated.js | 3180 +++++++++----------- 1 file changed, 1414 insertions(+), 1766 deletions(-) diff --git a/resources/js/vue-i18n-locales.generated.js b/resources/js/vue-i18n-locales.generated.js index 47293cbf8..526afa974 100644 --- a/resources/js/vue-i18n-locales.generated.js +++ b/resources/js/vue-i18n-locales.generated.js @@ -1,5 +1,227 @@ export default { "de": { + "randomizer": { + "title": "Randomizer", + "preset": { + "title": "Wähle Voreinstellungen", + "customize": "Customire", + "options": { + "default": "Default", + "beginner": "Beginner", + "veetorp": "OWG (Veetorp’s Favorit)", + "crosskeys": "Crosskeys", + "quick": "Super Schnell", + "nightmare": "Albtraum", + "tournament": "Turnier", + "custom": "Benutzerdefiniert" + } + }, + "placement": { + "title": "Gegenstandsplatzierung" + }, + "item_placement": { + "title": "Gegenstandsplatzierung", + "options": { + "basic": "Basis", + "advanced": "Erweitert" + } + }, + "dungeon_items": { + "title": "Palastgegenstände", + "options": { + "standard": "Standard", + "mc": "Karten/Kompässe", + "mcs": "Karten/Kompässe/kleine Schlüssel", + "full": "Keysanity" + } + }, + "accessibility": { + "title": "Zugänglichkeit", + "options": { + "items": "100% Inventar", + "locations": "100% der Orte", + "none": "Schaffbar" + } + }, + "glitches_required": { + "title": "Vorausgesetzte Glitches", + "options": { + "none": "Keine", + "overworld_glitches": "Overworld Glitches", + "major_glitches": "Major Glitches", + "no_logic": "Keine Logik" + }, + "glitch_warning": "Diese Einstellung setzt Wissen von Major Glitches voraus**" + }, + "goal": { + "title": "Ziel", + "options": { + "ganon": "Besiege Ganon", + "fast_ganon": "Fast Ganon", + "dungeons": "Alle Dungeons", + "pedestal": "Master-Schwert Sockel", + "triforce-hunt": "Triforce-Splitter" + } + }, + "tower_open": { + "title": "Turm öffnen", + "options": { + "0": "0 Kristalle", + "1": "1 Kristall", + "2": "2 Kristalle", + "3": "3 Kristalle", + "4": "4 Kristalle", + "5": "5 Kristalle", + "6": "6 Kristalle", + "7": "7 Kristalle", + "random": "Zufällig" + } + }, + "ganon_open": { + "title": "Ganon verwundbar machen", + "options": { + "0": "0 Kristalle", + "1": "1 Kristall", + "2": "2 Kristalle", + "3": "3 Kristalle", + "4": "4 Kristalle", + "5": "5 Kristalle", + "6": "6 Kristalle", + "7": "7 Kristalle", + "random": "Zufällig" + } + }, + "gameplay": { + "title": "Gameplay" + }, + "world_state": { + "title": "Zustand der Welt", + "options": { + "standard": "Standard", + "open": "Offen", + "inverted": "Invertiert", + "retro": "Retro" + } + }, + "entrance_shuffle": { + "title": "Entrance Shuffle", + "options": { + "none": "Keine", + "simple": "Simpel", + "restricted": "Beschränkt", + "full": "Voll", + "crossed": "Gekreuzt", + "insanity": "Wahnsinn" + } + }, + "boss_shuffle": { + "title": "Boss Shuffle", + "options": { + "none": "Keine", + "simple": "Simpel", + "full": "Voll", + "random": "Zufällig" + } + }, + "enemy_shuffle": { + "title": "Enemy Shuffle", + "options": { + "none": "Keine", + "shuffled": "Gemischt", + "random": "Zufällig" + } + }, + "hints": { + "title": "Hinweise", + "options": { + "on": "An", + "off": "Aus" + } + }, + "weapons": { + "title": "Schwerter", + "options": { + "randomized": "Zufällig", + "assured": "Garantiert", + "vanilla": "Vanilla", + "swordless": "Schwertlos" + } + }, + "item_pool": { + "title": "Item Pool", + "options": { + "easy": "Einfach", + "normal": "Normal", + "hard": "Schwer", + "expert": "Experte", + "crowd_control": "Crowd Control" + }, + "crowd_control_warning": "* Diese Erweiterung ist für die Verwundung mit Twitches Crowd Control Erweiterung gedacht. Für mehr Info´s: https://crowdcontrol.live/" + }, + "item_functionality": { + "title": "Gegendstands Funktionalität", + "options": { + "easy": "Einfach", + "normal": "Normal", + "hard": "Schwer", + "expert": "Experte" + } + }, + "enemy_damage": { + "title": "Gegnerschaden", + "options": { + "default": "Default", + "shuffled": "Gemischt", + "random": "Zufällig" + } + }, + "enemy_health": { + "title": "Gegnerleben", + "options": { + "default": "Default", + "easy": "Einfach", + "hard": "Schwer", + "expert": "Experte" + } + }, + "spoiler": { + "title": "Spoilers", + "options": { + "off": "Disabled", + "on": "Enabled", + "generate": "Nur bei Generieren" + } + }, + "generate": { + "race": "Generiere ROM für Rennen", + "race_warning": "Spoilerfrei", + "spoiler_race": "ROM für Spoiler Rennen", + "casual": "Generiere ROM", + "back": "Ändere Einstellung", + "regenerate": "Erneut erstellen", + "regenerate_tooltip": "Erstellt ein neues Spiel mit den gleichen Einstellungen", + "generating": "Am erstellen..." + }, + "details": { + "title": "Spiel Details", + "save_spoiler": "Speichere Spoiler", + "save_rom": "Speichere ROM" + }, + "variation": { + "title": "Variation" + }, + "difficulty": { + "title": "Schwierigkeitsgrad", + "options": { + "easy": "Einfach", + "normal": "Normal", + "hard": "Schwer", + "expert": "Experte", + "insane": "Wahnsinnig", + "crowdControl": "Crowd Control" + } + } + }, "customizer": { "settings": { "timers": { @@ -82,122 +304,6 @@ export default { } } }, - "enemizer": { - "title": "Enemizer", - "enable": "Aktiviere Enemizer", - "disable": "Deaktiviere Enemizer", - "enemy_health": { - "title": "Gegner Leben", - "options": [ - "Regulär", - "Einfach (1-4 hp)", - "Mittel (2-15 hp)", - "Schwer (2-30 hp)", - "Wahnsinnig (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Gegner Schaden", - "options": { - "off": "Regulär", - "shuffle": "Durcheinander", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Bosse", - "options": { - "off": "Regulär", - "basic": "Basis", - "normal": "Normal", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Palettenmischung", - "pot_shuffle": "Topf mischen", - "enemy_shuffle": "Gegner mischen" - }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Wechsele zum Item Randomizer" - }, - "rom": { - "options": "ROM Optionen" - }, - "difficulty": { - "title": "Schwierigkeit", - "options": { - "easy": "Einfach", - "normal": "Mittel", - "hard": "Schwer", - "expert": "Experte", - "insane": "Wahnsinnig" - } - }, - "goal": { - "title": "Ziel", - "options": { - "ganon": "Besiege Ganon", - "crystals": "Kristalle", - "dungeons": "Alle Dungeons", - "pedestal": "Master-Schwert Sockel", - "triforcehunt": "Triforce Teile" - } - }, - "logic": { - "title": "Logik", - "options": { - "NoGlitches": "Keine Glitches" - } - }, - "mode": { - "title": "Zustand", - "options": { - "swordless": "Schwertlos", - "open": "Offen" - } - }, - "shuffle": { - "title": "Mischung", - "options": { - "simple": "Simpel", - "restricted": "Beschränkt", - "full": "Voll", - "crossed": "Gekreuzt", - "insanity": "Wahnsinn" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "Keine", - "timed-race": "Zeitrennen", - "timed-ohko": "Zeitlimit bis OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce-Splitter Jagd", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generiere ROM für Rennen", - "spoiler_race": "ROM für Spoiler Rennen", - "casual": "Generiere ROM" - }, - "details": { - "title": "Spiele Details", - "save_spoiler": "Speichere Spoiler", - "save_rom": "Speichere ROM" - } - }, - "error": { - "title": "Fehler", - "429": "Auch wenn wir schätzen das du einen haufen Spiele generierst, andere Leute möchten dies aber auch. Bitte kommen später wieder wenn du mehr generieren möchtest.", - "failed_generation": "Fehler beim erstellen :(", - "bad_file": "Datei nicht erkannt", - "quota_exceeded_error": "Lokaler Cache Speicher ist voll." - }, "item": { "Random": "Zufällig", "BottleWithRandom": "Flasche (Zufällig)", @@ -418,7 +524,7 @@ export default { "loader": { "title": "Anfangen", "file_select": "ROM Datei auswählen", - "content": "
          1. Wähle die Rom Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
          2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
          3. Klicke Generiere ROM für Rennen
          4. Dann speichere deine Rom und fang an zu spielen
          " + "content": "
          1. Wähle die ROM Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
          2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
          3. Klicke Generiere ROM für Rennen
          4. Dann speichere deine ROM und fang an zu spielen
          " }, "info": { "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", @@ -458,7 +564,8 @@ export default { "blue": "Blau", "green": "Grün", "red": "Rot", - "yellow": "Gelb" + "yellow": "Gelb", + "random": "Zufällig" }, "play_as": "Spiele als", "sprite_file_select": ".zspr Datei auswählen", @@ -466,7 +573,7 @@ export default { "music_info": "(setze zu \"Keine\" für MSU-1 Support)", "quickswap": "Gegenstand Schnellwechsel", "palette_shuffle": "Palette Shuffle", - "race_warning": "Funktioniert nicht in einer Rom für Rennen", + "race_warning": "Funktioniert nicht in einer ROM für Rennen", "reduce_flashing": "Blitzeffekte reduzieren", "reduce_flashing_warning": "Diese Option reduziert die Intensität von Blitzeffekten. Individuelle Lichtempfindlichkeitsreaktionen sind nicht ganz ausgeschlossen." } @@ -482,107 +589,39 @@ export default { "difficulty": { "title": "Schwierigkeit", "options": { - "default": "Default", - "beginner": "Beginner", - "veetorp": "OWG (Veetorp’s Favorit)", - "crosskeys": "Crosskeys", - "quick": "Super Schnell", - "nightmare": "Albtraum", - "tournament": "Turnier", - "custom": "Benutzerdefiniert" - } - }, - "placement": { - "title": "Gegenstandsplatzierung" - }, - "item_placement": { - "title": "Gegenstandsplatzierung", - "options": { - "basic": "Basis", - "advanced": "Erweitert" - } - }, - "dungeon_items": { - "title": "Palastgegenstände", - "options": { - "standard": "Standard", - "mc": "Karten/Kompässe", - "mcs": "Karten/Kompässe/kleine Schlüssel", - "full": "Keysanity" - } - }, - "accessibility": { - "title": "Zugänglichkeit", - "options": { - "items": "100% Inventar", - "locations": "100% der Orte", - "none": "Schaffbar" + "easy": "Einfach", + "normal": "Mittel", + "hard": "Schwer", + "expert": "Experte", + "insane": "Wahnsinnig" } }, - "glitches_required": { - "title": "Vorausgesetzte Glitches", - "options": { - "none": "Keine", - "overworld_glitches": "Overworld Glitches", - "major_glitches": "Major Glitches", - "no_logic": "Keine Logik" - }, - "glitch_warning": "Diese Einstellung setzt Wissen von Major Glitches voraus**" - }, "goal": { "title": "Ziel", "options": { "ganon": "Besiege Ganon", - "fast_ganon": "Fast Ganon", + "crystals": "Kristalle", "dungeons": "Alle Dungeons", "pedestal": "Master-Schwert Sockel", - "triforce-hunt": "Triforce-Splitter" - } - }, - "tower_open": { - "title": "Turm öffnen", - "options": { - "0": "0 Kristalle", - "1": "1 Kristall", - "2": "2 Kristalle", - "3": "3 Kristalle", - "4": "4 Kristalle", - "5": "5 Kristalle", - "6": "6 Kristalle", - "7": "7 Kristalle", - "random": "Zufällig" + "triforcehunt": "Triforce Teile" } }, - "ganon_open": { - "title": "Ganon verwundbar machen", + "logic": { + "title": "Logik", "options": { - "0": "0 Kristalle", - "1": "1 Kristall", - "2": "2 Kristalle", - "3": "3 Kristalle", - "4": "4 Kristalle", - "5": "5 Kristalle", - "6": "6 Kristalle", - "7": "7 Kristalle", - "random": "Zufällig" + "NoGlitches": "Keine Glitches" } }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "Zustand der Welt", + "mode": { + "title": "Zustand", "options": { - "standard": "Standard", - "open": "Offen", - "inverted": "Invertiert", - "retro": "Retro" + "swordless": "Schwertlos", + "open": "Offen" } }, - "entrance_shuffle": { - "title": "Entrance Shuffle", + "shuffle": { + "title": "Mischung", "options": { - "none": "Keine", "simple": "Simpel", "restricted": "Beschränkt", "full": "Voll", @@ -590,74 +629,255 @@ export default { "insanity": "Wahnsinn" } }, - "boss_shuffle": { - "title": "Boss Shuffle", + "variation": { + "title": "Variation", "options": { "none": "Keine", - "simple": "Simpel", - "full": "Voll", - "random": "Zufällig" + "timed-race": "Zeitrennen", + "timed-ohko": "Zeitlimit bis OHKO", + "ohko": "OHKO", + "triforce-hunt": "Triforce-Splitter Jagd", + "key-sanity": "Keysanity", + "retro": "Retro" } }, - "enemy_shuffle": { - "title": "Enemy Shuffle", - "options": { - "none": "Keine", - "shuffled": "Gemischt", - "random": "Zufällig" - } + "generate": { + "race": "Generiere ROM für Rennen", + "spoiler_race": "ROM für Spoiler Rennen", + "casual": "Generiere ROM" }, - "hints": { - "title": "Hinweise", - "options": { - "on": "An", - "off": "Aus" - } + "details": { + "title": "Spiele Details", + "save_spoiler": "Speichere Spoiler", + "save_rom": "Speichere ROM" + } + }, + "enemizer": { + "title": "Enemizer", + "enable": "Aktiviere Enemizer", + "disable": "Deaktiviere Enemizer", + "enemy_health": { + "title": "Gegner Leben", + "options": [ + "Regulär", + "Einfach (1-4 hp)", + "Mittel (2-15 hp)", + "Schwer (2-30 hp)", + "Wahnsinnig (4-50 hp)" + ] }, - "weapons": { - "title": "Schwerter", + "enemy_damage": { + "title": "Gegner Schaden", "options": { - "randomized": "Zufällig", - "assured": "Garantiert", - "vanilla": "Vanilla", - "swordless": "Schwertlos" + "off": "Regulär", + "shuffle": "Durcheinander", + "chaos": "Chaos" } }, - "item_pool": { - "title": "Item Pool", + "bosses": { + "title": "Bosse", "options": { - "easy": "Einfach", + "off": "Regulär", + "basic": "Basis", "normal": "Normal", - "hard": "Schwer", - "expert": "Experte", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Diese Erweiterung ist für die Verwundung mit Twitches Crowd Control Erweiterung gedacht. Für mehr Info´s: https://crowdcontrol.live/" - }, + "chaos": "Chaos" + } + }, + "palette_shuffle": "Palettenmischung", + "pot_shuffle": "Topf mischen", + "enemy_shuffle": "Gegner mischen" + }, + "error": { + "title": "Fehler", + "429": "Auch wenn wir schätzen das du einen haufen Spiele generierst, andere Leute möchten dies aber auch. Bitte kommen später wieder wenn du mehr generieren möchtest.", + "failed_generation": "Fehler beim erstellen :(", + "bad_file": "Datei nicht erkannt", + "quota_exceeded_error": "Lokaler Cache Speicher ist voll." + } + }, + "en": { + "randomizer": { + "title": "Randomizer", + "preset": { + "title": "Select Preset", + "customize": "Customize", + "options": { + "default": "Default", + "beginner": "Beginner", + "veetorp": "OWG (Veetorp’s Favorite)", + "crosskeys": "Crosskeys", + "quick": "Super Quick", + "nightmare": "Nightmare", + "tournament": "Tournament", + "custom": "Custom" + } + }, + "placement": { + "title": "Item Placement" + }, + "item_placement": { + "title": "Item Placement", + "options": { + "basic": "Basic", + "advanced": "Advanced" + } + }, + "dungeon_items": { + "title": "Dungeon Item Shuffle", + "options": { + "standard": "Standard", + "mc": "Maps/Compasses", + "mcs": "Maps/Compasses/Small Keys", + "full": "Keysanity" + } + }, + "accessibility": { + "title": "Accessibility", + "options": { + "items": "100% Inventory", + "locations": "100% Locations", + "none": "Beatable" + } + }, + "glitches_required": { + "title": "Glitches Required", + "options": { + "none": "None", + "overworld_glitches": "Overworld Glitches", + "major_glitches": "Major Glitches", + "no_logic": "No Logic" + }, + "glitch_warning": "These settings require knowledge of Major Glitches**" + }, + "goal": { + "title": "Goal", + "options": { + "ganon": "Defeat Ganon", + "fast_ganon": "Fast Ganon", + "dungeons": "All Dungeons", + "pedestal": "Master Sword Pedestal", + "triforce-hunt": "Triforce Pieces" + } + }, + "tower_open": { + "title": "Open Tower", + "options": { + "0": "0 Crystals", + "1": "1 Crystal", + "2": "2 Crystals", + "3": "3 Crystals", + "4": "4 Crystals", + "5": "5 Crystals", + "6": "6 Crystals", + "7": "7 Crystals", + "random": "Random" + } + }, + "ganon_open": { + "title": "Ganon Vulnerable", + "options": { + "0": "0 Crystals", + "1": "1 Crystal", + "2": "2 Crystals", + "3": "3 Crystals", + "4": "4 Crystals", + "5": "5 Crystals", + "6": "6 Crystals", + "7": "7 Crystals", + "random": "Random" + } + }, + "gameplay": { + "title": "Gameplay" + }, + "world_state": { + "title": "World State", + "options": { + "standard": "Standard", + "open": "Open", + "inverted": "Inverted", + "retro": "Retro" + } + }, + "entrance_shuffle": { + "title": "Entrance Shuffle", + "options": { + "none": "None", + "simple": "Simple", + "restricted": "Restricted", + "full": "Full", + "crossed": "Crossed", + "insanity": "Insanity" + } + }, + "boss_shuffle": { + "title": "Boss Shuffle", + "options": { + "none": "None", + "simple": "Simple", + "full": "Full", + "random": "Random" + } + }, + "enemy_shuffle": { + "title": "Enemy Shuffle", + "options": { + "none": "None", + "shuffled": "Shuffled", + "random": "Random" + } + }, + "hints": { + "title": "Hints", + "options": { + "on": "On", + "off": "Off" + } + }, + "weapons": { + "title": "Swords", + "options": { + "randomized": "Randomized", + "assured": "Assured", + "vanilla": "Vanilla", + "swordless": "Swordless" + } + }, + "item_pool": { + "title": "Item Pool", + "options": { + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert", + "crowd_control": "Crowd Control" + }, + "crowd_control_warning": "* This setting is meant to be used with the Crowd Control Twitch extension. find out more: https://crowdcontrol.live/" + }, "item_functionality": { - "title": "Gegendstands Funktionalität", + "title": "Item Functionality", "options": { - "easy": "Einfach", + "easy": "Easy", "normal": "Normal", - "hard": "Schwer", - "expert": "Experte" + "hard": "Hard", + "expert": "Expert" } }, "enemy_damage": { - "title": "Gegnerschaden", + "title": "Enemy Damage", "options": { "default": "Default", - "shuffled": "Gemischt", - "random": "Zufällig" + "shuffled": "Shuffled", + "random": "Random" } }, "enemy_health": { - "title": "Gegnerleben", + "title": "Enemy Health", "options": { "default": "Default", - "easy": "Einfach", - "hard": "Schwer", - "expert": "Experte" + "easy": "Easy", + "hard": "Hard", + "expert": "Expert" } }, "spoiler": { @@ -665,97 +885,60 @@ export default { "options": { "off": "Disabled", "on": "Enabled", - "generate": "Nur bei Generieren" + "generate": "Only on Generate", + "mystery": "Mystery (settings hidden)" } }, "generate": { - "race": "Generiere ROM für Rennen", - "race_warning": "Spoilerfrei", - "spoiler_race": "ROM für Spoiler Rennen", - "casual": "Generiere ROM", - "back": "Ändere Einstellung", - "regenerate": "Erneut erstellen", - "regenerate_tooltip": "Erstellt ein neues Spiel mit den gleichen Einstellungen", - "generating": "Am erstellen..." + "race": "Generate Race ROM", + "race_warning": "Spoilers will never be available for this option.", + "spoiler_race": "Generate Normal ROM", + "casual": "Generate ROM", + "back": "Change Settings", + "regenerate": "Generate Again", + "regenerate_tooltip": "Generate new game with same settings", + "generating": "Generating..." }, "details": { - "title": "Spiel Details", - "save_spoiler": "Speichere Spoiler", - "save_rom": "Speichere ROM" + "title": "Game Details", + "save_spoiler": "Save Spoiler", + "save_rom": "Save ROM" }, "variation": { "title": "Variation" }, "difficulty": { - "title": "Schwierigkeitsgrad", + "title": "Difficulty", "options": { - "easy": "Einfach", + "easy": "Easy", "normal": "Normal", - "hard": "Schwer", - "expert": "Experte", - "insane": "Wahnsinnig", + "hard": "Hard", + "expert": "Expert", + "insane": "Insane", "crowdControl": "Crowd Control" } } }, - "rom": { - "loader": { - "title": "Anfangen", - "file_select": "ROM Datei auswählen", - "content": "
          1. Wähle die ROM Datei und lade sie ihn den Browser (Bitte nutze die Zelda no Densetsu: Kamigami no Triforce v1.0 ROM mit einer .smc oder .sfc Endung)
          2. Wähle die Spieloptionen um auszuwählen wie Zufällig dein Spiel sein soll
          3. Klicke Generiere ROM für Rennen
          4. Dann speichere deine ROM und fang an zu spielen
          " - }, - "info": { - "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", - "mystery": "Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!", - "logic": "Vorausgesetzte Glitches", - "accessibility": "Zugänglichkeit", - "build": "ROM build", - "difficulty": "Schwierigkeitsgrad", - "variation": "Variation", - "shuffle": "Entrance Shuffle", - "mode": "Zustand der Welt", - "weapons": "Schwerter", - "goal": "Ziel", - "permalink": "Permalink", - "special": "Spezial", - "notes": "Notizen", - "generated": "Erstellt" - }, - "settings": { - "heart_speed": "Geschwindigkeit des Warnungston bei wenig Leben", - "heart_speeds": { - "off": "Aus", - "double": "Doppelte Geschwindigkeit", - "normal": "Normale Geschwindigkeit", - "half": "Halbe Geschwindigkeit", - "quarter": "Viertel Geschwindigkeit" - }, - "menu_speed": "Menü Geschwindigkeit", - "menu_speeds": { - "instant": "Instant", - "fast": "Schnell", - "normal": "Normal", - "slow": "Langsam" - }, - "heart_color": "Farbe der Herzen", - "heart_colors": { - "blue": "Blau", - "green": "Grün", - "red": "Rot", - "yellow": "Gelb", - "random": "Zufällig" - }, - "play_as": "Spiele als", - "sprite_file_select": ".zspr Datei auswählen", - "music": "Hintergrundmusik", - "music_info": "(setze zu \"Keine\" für MSU-1 Support)", - "quickswap": "Gegenstand Schnellwechsel", - "palette_shuffle": "Palette Shuffle", - "race_warning": "Funktioniert nicht in einer ROM für Rennen" - } - } - }, - "en": { + "region": { + "all": "All Regions", + "Light World": "Light World", + "Hyrule Castle": "Hyrule Castle", + "Eastern Palace": "Eastern Palace", + "Desert Palace": "Desert Palace", + "Death Mountain": "Death Mountain", + "Tower Of Hera": "Tower Of Hera", + "Castle Tower": "Castle Tower", + "Dark World": "Dark World", + "Dark Palace": "Dark Palace", + "Swamp Palace": "Swamp Palace", + "Skull Woods": "Skull Woods", + "Thieves Town": "Thieves Town", + "Ice Palace": "Ice Palace", + "Misery Mire": "Misery Mire", + "Turtle Rock": "Turtle Rock", + "Ganons Tower": "Ganons Tower", + "Special": "Special" + }, "customizer": { "settings": { "timers": { @@ -842,252 +1025,6 @@ export default { } } }, - "enemizer": { - "title": "Enemizer", - "enable": "Enable Enemizer", - "disable": "Disable Enemizer", - "enemy_health": { - "title": "Enemy Health", - "options": [ - "Default", - "Easy (1-4 hp)", - "Normal (2-15 hp)", - "Hard (2-30 hp)", - "Brick Wall (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Enemy Damage", - "options": { - "off": "Default", - "shuffle": "Shuffled", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Boss Shuffle", - "options": { - "off": "Off", - "double": "Double Speed", - "normal": "Normal Speed", - "half": "Half Speed", - "quarter": "Quarter Speed" - }, - "menu_speed": "Menu Speed", - "menu_speeds": { - "instant": "Instant", - "fast": "Fast", - "normal": "Normal", - "slow": "Slow" - }, - "heart_color": "Heart Color", - "heart_colors": { - "blue": "Blue", - "green": "Green", - "red": "Red", - "yellow": "Yellow" - }, - "play_as": "Play As", - "sprite_file_select": "Select .zspr File", - "music": "Background Music", - "music_info": "(set to \"No\" for MSU-1 support)", - "quickswap": "Item Quickswap", - "palette_shuffle": "Palette Shuffle", - "race_warning": "Does not work in Race Roms", - "reduce_flashing": "Reduce Flashing", - "reduce_flashing_warning": "This option only reduces the effects of flashing. Individual photosensitivity to effects may still vary." - } - }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Switch to Item Randomizer" - }, - "rom": { - "options": "ROM Options" - }, - "difficulty": { - "title": "Difficulty", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane" - } - }, - "goal": { - "title": "Goal", - "options": { - "ganon": "Defeat Ganon", - "crystals": "Crystals", - "dungeons": "All Dungeons", - "pedestal": "Master Sword Pedestal", - "triforcehunt": "Triforce Pieces" - } - }, - "logic": { - "title": "Logic", - "options": { - "NoGlitches": "No Glitches" - } - }, - "mode": { - "title": "State", - "options": { - "swordless": "Swordless", - "open": "Open" - } - }, - "shuffle": { - "title": "Shuffle", - "options": { - "simple": "Simple", - "restricted": "Restricted", - "full": "Full", - "crossed": "Crossed", - "insanity": "Insanity" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "None", - "timed-race": "Timed Race", - "timed-ohko": "Timed OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce Piece Hunt", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generate Race ROM", - "spoiler_race": "Spoiler Race ROM", - "casual": "Generate ROM" - }, - "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save ROM" - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Enable Enemizer", - "disable": "Disable Enemizer", - "enemy_health": { - "title": "Enemy Health", - "options": [ - "Default", - "Easy (1-4 hp)", - "Normal (2-15 hp)", - "Hard (2-30 hp)", - "Brick Wall (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Enemy Damage", - "options": { - "off": "Default", - "shuffle": "Shuffled", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Boss Shuffle", - "options": { - "off": "Off", - "basic": "Simple", - "normal": "Full", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Palette Shuffle", - "pot_shuffle": "Pot Shuffle", - "enemy_shuffle": "Enemy Shuffle" - }, - "entrance": { - "title": "Entrance Randomizer", - "switch": { - "item": "Switch to Item Randomizer" - }, - "rom": { - "options": "ROM Options" - }, - "difficulty": { - "title": "Difficulty", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane" - } - }, - "goal": { - "title": "Goal", - "options": { - "ganon": "Defeat Ganon", - "crystals": "Crystals", - "dungeons": "All Dungeons", - "pedestal": "Master Sword Pedestal", - "triforcehunt": "Triforce Pieces" - } - }, - "logic": { - "title": "Logic", - "options": { - "NoGlitches": "No Glitches" - } - }, - "mode": { - "title": "State", - "options": { - "swordless": "Swordless", - "open": "Open" - } - }, - "shuffle": { - "title": "Shuffle", - "options": { - "simple": "Simple", - "restricted": "Restricted", - "full": "Full", - "crossed": "Crossed", - "insanity": "Insanity" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "None", - "timed-race": "Timed Race", - "timed-ohko": "Timed OHKO", - "ohko": "OHKO", - "triforce-hunt": "Triforce Piece Hunt", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generate Race ROM", - "spoiler_race": "Spoiler Race ROM", - "casual": "Generate ROM" - }, - "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save Rom" - } - }, - "error": { - "title": "Error", - "429": "While we apprecate your want to generate a lot of games, Other people would like to as well. Please come back later if you would like to generate more.", - "failed_generation": "Failed Creating Game :(", - "bad_file": "File not recognized", - "quota_exceeded_error": "Your local storage quota has been exceeded." - }, "item": { "Random": "Random", "BottleWithRandom": "Bottle (Random)", @@ -1309,113 +1246,108 @@ export default { "title": "Multiworld Randomizer", "generate": "Generate Multiworld Data File" }, - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Select Preset", - "customize": "Customize", - "options": { - "default": "Default", - "beginner": "Beginner", - "veetorp": "OWG (Veetorp’s Favorite)", - "crosskeys": "Crosskeys", - "quick": "Super Quick", - "nightmare": "Nightmare", - "tournament": "Tournament", - "custom": "Custom" - } + "rom": { + "loader": { + "title": "Getting Started", + "file_select": "Select ROM File", + "content": "
          1. Select your ROM file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
          2. Select the Game Options for how you would like your game randomized
          3. Click Generate Normal ROM
          4. Then Save your ROM and get to playing
          " }, - "placement": { - "title": "Item Placement" + "info": { + "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", + "mystery": "This is a mystery game. The settings must be discovered while you play!", + "logic": "Glitches Required", + "accessibility": "Accessibility", + "build": "ROM build", + "difficulty": "Difficulty", + "variation": "Variation", + "shuffle": "Entrance Shuffle", + "mode": "World State", + "weapons": "Swords", + "goal": "Goal", + "permalink": "Permalink", + "special": "Special", + "notes": "Notes", + "generated": "Created" }, - "item_placement": { - "title": "Item Placement", - "options": { - "basic": "Basic", - "advanced": "Advanced" - } + "settings": { + "heart_speed": "Heart Speed", + "heart_speeds": { + "off": "Off", + "double": "Double Speed", + "normal": "Normal Speed", + "half": "Half Speed", + "quarter": "Quarter Speed" + }, + "menu_speed": "Menu Speed", + "menu_speeds": { + "instant": "Instant", + "fast": "Fast", + "normal": "Normal", + "slow": "Slow" + }, + "heart_color": "Heart Color", + "heart_colors": { + "blue": "Blue", + "green": "Green", + "red": "Red", + "yellow": "Yellow", + "random": "Random" + }, + "play_as": "Play As", + "sprite_file_select": "Select .zspr File", + "music": "Background Music", + "music_info": "(set to \"No\" for MSU-1 support)", + "quickswap": "Item Quickswap", + "palette_shuffle": "Palette Shuffle", + "race_warning": "Does not work in Race ROMs", + "reduce_flashing": "Reduce Flashing", + "reduce_flashing_warning": "This option only reduces the effects of flashing. Individual photosensitivity to effects may still vary." + } + }, + "entrance": { + "title": "Entrance Randomizer", + "switch": { + "item": "Switch to Item Randomizer" }, - "dungeon_items": { - "title": "Dungeon Item Shuffle", - "options": { - "standard": "Standard", - "mc": "Maps/Compasses", - "mcs": "Maps/Compasses/Small Keys", - "full": "Keysanity" - } + "rom": { + "options": "ROM Options" }, - "accessibility": { - "title": "Accessibility", + "difficulty": { + "title": "Difficulty", "options": { - "items": "100% Inventory", - "locations": "100% Locations", - "none": "Beatable" + "easy": "Easy", + "normal": "Normal", + "hard": "Hard", + "expert": "Expert", + "insane": "Insane" } }, - "glitches_required": { - "title": "Glitches Required", - "options": { - "none": "None", - "overworld_glitches": "Overworld Glitches", - "major_glitches": "Major Glitches", - "no_logic": "No Logic" - }, - "glitch_warning": "These settings require knowledge of Major Glitches**" - }, "goal": { "title": "Goal", "options": { "ganon": "Defeat Ganon", - "fast_ganon": "Fast Ganon", + "crystals": "Crystals", "dungeons": "All Dungeons", "pedestal": "Master Sword Pedestal", - "triforce-hunt": "Triforce Pieces" - } - }, - "tower_open": { - "title": "Open Tower", - "options": { - "0": "0 Crystals", - "1": "1 Crystal", - "2": "2 Crystals", - "3": "3 Crystals", - "4": "4 Crystals", - "5": "5 Crystals", - "6": "6 Crystals", - "7": "7 Crystals", - "random": "Random" + "triforcehunt": "Triforce Pieces" } }, - "ganon_open": { - "title": "Ganon Vulnerable", + "logic": { + "title": "Logic", "options": { - "0": "0 Crystals", - "1": "1 Crystal", - "2": "2 Crystals", - "3": "3 Crystals", - "4": "4 Crystals", - "5": "5 Crystals", - "6": "6 Crystals", - "7": "7 Crystals", - "random": "Random" + "NoGlitches": "No Glitches" } }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "World State", + "mode": { + "title": "State", "options": { - "standard": "Standard", - "open": "Open", - "inverted": "Inverted", - "retro": "Retro" + "swordless": "Swordless", + "open": "Open" } }, - "entrance_shuffle": { - "title": "Entrance Shuffle", + "shuffle": { + "title": "Shuffle", "options": { - "none": "None", "simple": "Simple", "restricted": "Restricted", "full": "Full", @@ -1423,190 +1355,70 @@ export default { "insanity": "Insanity" } }, - "boss_shuffle": { - "title": "Boss Shuffle", + "variation": { + "title": "Variation", "options": { "none": "None", - "simple": "Simple", - "full": "Full", - "random": "Random" + "timed-race": "Timed Race", + "timed-ohko": "Timed OHKO", + "ohko": "OHKO", + "triforce-hunt": "Triforce Piece Hunt", + "key-sanity": "Keysanity", + "retro": "Retro" } }, - "enemy_shuffle": { - "title": "Enemy Shuffle", - "options": { - "none": "None", - "shuffled": "Shuffled", - "random": "Random" - } + "generate": { + "race": "Generate Race ROM", + "spoiler_race": "Spoiler Race ROM", + "casual": "Generate ROM" }, - "hints": { - "title": "Hints", + "details": { + "title": "Game Details", + "save_spoiler": "Save Spoiler", + "save_rom": "Save ROM" + } + }, + "enemizer": { + "title": "Enemizer", + "enable": "Enable Enemizer", + "disable": "Disable Enemizer", + "enemy_health": { + "title": "Enemy Health", + "options": [ + "Default", + "Easy (1-4 hp)", + "Normal (2-15 hp)", + "Hard (2-30 hp)", + "Brick Wall (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Enemy Damage", "options": { - "on": "On", - "off": "Off" + "off": "Default", + "shuffle": "Shuffled", + "chaos": "Chaos" } }, - "weapons": { - "title": "Swords", - "options": { - "randomized": "Randomized", - "assured": "Assured", - "vanilla": "Vanilla", - "swordless": "Swordless" - } - }, - "item_pool": { - "title": "Item Pool", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* This setting is meant to be used with the Crowd Control Twitch extension. find out more: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Item Functionality", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert" - } - }, - "enemy_damage": { - "title": "Enemy Damage", - "options": { - "default": "Default", - "shuffled": "Shuffled", - "random": "Random" - } - }, - "enemy_health": { - "title": "Enemy Health", - "options": { - "default": "Default", - "easy": "Easy", - "hard": "Hard", - "expert": "Expert" - } - }, - "spoiler": { - "title": "Spoilers", + "bosses": { + "title": "Boss Shuffle", "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Only on Generate", - "mystery": "Mystery (settings hidden)" + "off": "Off", + "basic": "Simple", + "normal": "Full", + "chaos": "Chaos" } }, - "generate": { - "race": "Generate Race ROM", - "race_warning": "Spoilers will never be available for this option.", - "spoiler_race": "Generate Normal ROM", - "casual": "Generate ROM", - "back": "Change Settings", - "regenerate": "Generate Again", - "regenerate_tooltip": "Generate new game with same settings", - "generating": "Generating..." - }, - "details": { - "title": "Game Details", - "save_spoiler": "Save Spoiler", - "save_rom": "Save Rom" - }, - "variation": { - "title": "Variation" - }, - "difficulty": { - "title": "Difficulty", - "options": { - "easy": "Easy", - "normal": "Normal", - "hard": "Hard", - "expert": "Expert", - "insane": "Insane", - "crowdControl": "Crowd Control" - } - } - }, - "region": { - "all": "All Regions", - "Light World": "Light World", - "Hyrule Castle": "Hyrule Castle", - "Eastern Palace": "Eastern Palace", - "Desert Palace": "Desert Palace", - "Death Mountain": "Death Mountain", - "Tower Of Hera": "Tower Of Hera", - "Castle Tower": "Castle Tower", - "Dark World": "Dark World", - "Dark Palace": "Dark Palace", - "Swamp Palace": "Swamp Palace", - "Skull Woods": "Skull Woods", - "Thieves Town": "Thieves Town", - "Ice Palace": "Ice Palace", - "Misery Mire": "Misery Mire", - "Turtle Rock": "Turtle Rock", - "Ganons Tower": "Ganons Tower", - "Special": "Special" + "palette_shuffle": "Palette Shuffle", + "pot_shuffle": "Pot Shuffle", + "enemy_shuffle": "Enemy Shuffle" }, - "rom": { - "loader": { - "title": "Getting Started", - "file_select": "Select ROM File", - "content": "
          1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
          2. Select the Game Options for how you would like your game randomized
          3. Click Generate Normal ROM
          4. Then Save your rom and get to playing
          " - }, - "info": { - "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", - "mystery": "This is a mystery game. The settings must be discovered while you play!", - "logic": "Glitches Required", - "accessibility": "Accessibility", - "build": "ROM build", - "difficulty": "Difficulty", - "variation": "Variation", - "shuffle": "Entrance Shuffle", - "mode": "World State", - "weapons": "Swords", - "goal": "Goal", - "permalink": "Permalink", - "special": "Special", - "notes": "Notes", - "generated": "Created" - }, - "settings": { - "heart_speed": "Heart Speed", - "heart_speeds": { - "off": "Off", - "double": "Double Speed", - "normal": "Normal Speed", - "half": "Half Speed", - "quarter": "Quarter Speed" - }, - "menu_speed": "Menu Speed", - "menu_speeds": { - "instant": "Instant", - "fast": "Fast", - "normal": "Normal", - "slow": "Slow" - }, - "heart_color": "Heart Color", - "heart_colors": { - "blue": "Blue", - "green": "Green", - "red": "Red", - "yellow": "Yellow", - "random": "Random" - }, - "play_as": "Play As", - "sprite_file_select": "Select .zspr File", - "music": "Background Music", - "music_info": "(set to \"No\" for MSU-1 support)", - "quickswap": "Item Quickswap", - "palette_shuffle": "Palette Shuffle", - "race_warning": "Does not work in Race ROMs" - } + "error": { + "title": "Error", + "429": "While we apprecate your want to generate a lot of games, Other people would like to as well. Please come back later if you would like to generate more.", + "failed_generation": "Failed Creating Game :(", + "bad_file": "File not recognized", + "quota_exceeded_error": "Your local storage quota has been exceeded." }, "sprite": { "Raven": "Raven", @@ -1856,49 +1668,271 @@ export default { } }, "es": { - "customizer": { - "settings": { - "timers": { - "off": "Sin temporizador", - "stopwatch": "Cronómetro", - "countdown-ohko": "Cuenta atrás (muerte súbita)", - "countdown-continue": "Cuenta atrás (continua)", - "countdown-stop": "Cuenta atrás (para)" - }, - "dungeon_count": { - "off": "Desactivado", - "on": "Siempre visible", - "pickup": "Visible con brújula" + "randomizer": { + "title": "Randomizer", + "preset": { + "title": "Seleccionar plantilla", + "customize": "Customizar", + "options": { + "default": "Por Defecto", + "beginner": "Principiante", + "veetorp": "Glitches de Superfície (el favorito de Veetorp)", + "crosskeys": "Crosskeys", + "quick": "Súper Rápido", + "nightmare": "Pesadilla", + "tournament": "Torneo", + "custom": "Personalizado" } }, - "glitches": { - "canBombJump": { - "title": "Salto Bomba", - "description": "Podría ser necesario tener que hacer Saltos Bomba para atravesar agujeros." - }, - "canBootsClip": { - "title": "Clips de Botas", - "description": "Cuando se tengan las botas, podría ser necesario hacer clips a través de paredes de la superfície." - }, - "canBunnyRevive": { - "title": "Reanimación como Conejo", - "description": "Podría ser necesario ir a algún sitio como conejo y abusar de morir o revivir con hadas para ser Link." - }, - "canBunnySurf": { - "title": "Surf como Conejo", - "description": "Podría ser necesario andar sobre el agua en estado de conejo." - }, - "canDungeonRevive": { - "title": "Reanimación en Mazmorras", - "description": "Podría ser necesario revivir como conejo en una mazmorra para conseguir objetos como Link." - }, - "canFakeFlipper": { - "title": "Aletas Falsas", - "description": "Podría ser necesario usar el glitch de las Aletas Falsas para conseguir objetos." - }, - "canMirrorClip": { - "title": "Clips de Espejo", - "description": "Podría ser necesario abusar la animación del espejo para salir del mapa." + "placement": { + "title": "Colocación de Objetos" + }, + "item_placement": { + "title": "Colocación de Objetos", + "options": { + "basic": "Básica", + "advanced": "Avanzada" + } + }, + "dungeon_items": { + "title": "Objetos de Mazmorras", + "options": { + "standard": "Normal", + "mc": "Mapas/Brújulas", + "mcs": "Mapas/Brújulas/Llaves pequeñas", + "full": "Keysanity" + } + }, + "accessibility": { + "title": "Accesibilidad", + "options": { + "items": "100% inventario", + "locations": "100% localizaciones", + "none": "Completable" + } + }, + "glitches_required": { + "title": "Glitches Requeridos", + "options": { + "none": "Ninguno", + "overworld_glitches": "Glitches de la Superfície", + "major_glitches": "Glitches Mayores", + "no_logic": "Sin lógica" + }, + "glitch_warning": "Esta Lógica require conocimiento de Glithes Mayores**" + }, + "goal": { + "title": "Objetivo", + "options": { + "ganon": "Derrotar a Ganon", + "fast_ganon": "Ganon Rápido", + "dungeons": "Todas las mazmorras", + "pedestal": "Pedestal de la Espada Maestra", + "triforce-hunt": "Piezas de la Trifuerza" + } + }, + "tower_open": { + "title": "Torre Abierta", + "options": { + "0": "0 Cristales", + "1": "1 Cristal", + "2": "2 Cristales", + "3": "3 Cristales", + "4": "4 Cristales", + "5": "5 Cristales", + "6": "6 Cristales", + "7": "7 Cristales", + "random": "Aleatorio" + } + }, + "ganon_open": { + "title": "Ganon Vulnerable", + "options": { + "0": "0 Cristales", + "1": "1 Cristal", + "2": "2 Cristales", + "3": "3 Cristales", + "4": "4 Cristales", + "5": "5 Cristales", + "6": "6 Cristales", + "7": "7 Cristales", + "random": "Aleatorio" + } + }, + "gameplay": { + "title": "Gameplay" + }, + "world_state": { + "title": "Estado del mundo", + "options": { + "standard": "Estándar", + "open": "Abierto", + "inverted": "Inverso", + "retro": "Retro" + } + }, + "entrance_shuffle": { + "title": "Randomizer de entradas", + "options": { + "none": "Ninguno", + "simple": "Simple", + "restricted": "Restringido", + "full": "Completo", + "crossed": "Cruzado", + "insanity": "Locura" + } + }, + "boss_shuffle": { + "title": "Randomizer de Jefes", + "options": { + "none": "Ninguno", + "simple": "Simple", + "full": "Completo", + "random": "Aleatorio" + } + }, + "enemy_shuffle": { + "title": "Randomizer de Enemigos", + "options": { + "none": "Ninguno", + "shuffled": "Barajado", + "random": "Aleatorio" + } + }, + "hints": { + "title": "Pistas", + "options": { + "on": "On", + "off": "Off" + } + }, + "weapons": { + "title": "Espadas", + "options": { + "randomized": "Randomizadas", + "assured": "Aseguradas", + "vanilla": "Vanilla", + "swordless": "Sin Espadas" + } + }, + "item_pool": { + "title": "Reserva de Objetos", + "options": { + "easy": "Fácil", + "normal": "Normal", + "hard": "Difícil", + "expert": "Experto", + "crowd_control": "Crowd Control" + }, + "crowd_control_warning": "* Esta opción está hecha para jugarse con la extensión de Twitch de Crowd Control. Para saber más: https://crowdcontrol.live/" + }, + "item_functionality": { + "title": "Funcionalidad de Objetos", + "options": { + "easy": "Fácil", + "normal": "Normal", + "hard": "Difícil", + "expert": "Experto" + } + }, + "enemy_damage": { + "title": "Daño de Enemigos", + "options": { + "default": "Por Defecto", + "shuffled": "Barajado", + "random": "Aleatorio" + } + }, + "enemy_health": { + "title": "Vida de Enemigos", + "options": { + "default": "Por Defecto", + "easy": "Fácil", + "hard": "Difícil", + "expert": "Experto" + } + }, + "spoiler": { + "title": "Spoilers", + "options": { + "off": "Disabled", + "on": "Enabled", + "generate": "Solo en Generar" + } + }, + "generate": { + "race": "Generar ROM para carreras", + "race_warning": "sin spoilers", + "spoiler_race": "Generar ROM para carreras (con spoilers)", + "casual": "Generar ROM", + "back": "Cambiar ajustes", + "regenerate": "Generar otra vez", + "regenerate_tooltip": "Generar otra partida con las mismas opciones", + "generating": "Generando..." + }, + "details": { + "title": "Detalles del juego", + "save_spoiler": "Guardar spoiler", + "save_rom": "Guardar ROM" + }, + "variation": { + "title": "Variación" + }, + "difficulty": { + "title": "Dificultad", + "options": { + "easy": "Fácil", + "normal": "Normal", + "hard": "Difícil", + "expert": "Experto", + "insane": "Locura", + "crowdControl": "Crowd Control" + } + } + }, + "customizer": { + "settings": { + "timers": { + "off": "Sin temporizador", + "stopwatch": "Cronómetro", + "countdown-ohko": "Cuenta atrás (muerte súbita)", + "countdown-continue": "Cuenta atrás (continua)", + "countdown-stop": "Cuenta atrás (para)" + }, + "dungeon_count": { + "off": "Desactivado", + "on": "Siempre visible", + "pickup": "Visible con brújula" + } + }, + "glitches": { + "canBombJump": { + "title": "Salto Bomba", + "description": "Podría ser necesario tener que hacer Saltos Bomba para atravesar agujeros." + }, + "canBootsClip": { + "title": "Clips de Botas", + "description": "Cuando se tengan las botas, podría ser necesario hacer clips a través de paredes de la superfície." + }, + "canBunnyRevive": { + "title": "Reanimación como Conejo", + "description": "Podría ser necesario ir a algún sitio como conejo y abusar de morir o revivir con hadas para ser Link." + }, + "canBunnySurf": { + "title": "Surf como Conejo", + "description": "Podría ser necesario andar sobre el agua en estado de conejo." + }, + "canDungeonRevive": { + "title": "Reanimación en Mazmorras", + "description": "Podría ser necesario revivir como conejo en una mazmorra para conseguir objetos como Link." + }, + "canFakeFlipper": { + "title": "Aletas Falsas", + "description": "Podría ser necesario usar el glitch de las Aletas Falsas para conseguir objetos." + }, + "canMirrorClip": { + "title": "Clips de Espejo", + "description": "Podría ser necesario abusar la animación del espejo para salir del mapa." }, "canMirrorWrap": { "title": "Mirror Wrap", @@ -1938,122 +1972,6 @@ export default { } } }, - "enemizer": { - "title": "Randomizer de enemigos (Enemizer)", - "enable": "Activar Enemizer", - "disable": "Desactivar Enemizer", - "enemy_health": { - "title": "Vida de enemigos", - "options": [ - "Normal", - "Fácil (1-4 hp)", - "Medio (2-15 hp)", - "Difícil (2-30 hp)", - "Locura (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Daño de enemigos", - "options": { - "off": "Normal", - "shuffle": "Aleatorio", - "chaos": "Caos" - } - }, - "bosses": { - "title": "Jefes", - "options": { - "off": "Normal", - "basic": "Básico", - "normal": "Normal", - "chaos": "Caos" - } - }, - "palette_shuffle": "Paleta aleatoria", - "pot_shuffle": "Vasijas aleatorias", - "enemy_shuffle": "Enemigos aleatorios" - }, - "entrance": { - "title": "Randomizer de Entradas", - "switch": { - "item": "Cambiar a randomizer de objetos" - }, - "rom": { - "options": "Opciones de ROM" - }, - "difficulty": { - "title": "Dificultad", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "insane": "Locura" - } - }, - "goal": { - "title": "Objetivo", - "options": { - "ganon": "Derrotar a Ganon", - "crystals": "Cristales", - "dungeons": "Todas las mazmorras", - "pedestal": "Pedestal de la Espada Maestra", - "triforcehunt": "Piezas de la Trifuerza" - } - }, - "logic": { - "title": "Lógica", - "options": { - "NoGlitches": "Sin Glitches" - } - }, - "mode": { - "title": "Tipo", - "options": { - "swordless": "Sin espadas", - "open": "Abierto" - } - }, - "shuffle": { - "title": "Orden", - "options": { - "simple": "Simple", - "restricted": "Restringido", - "full": "Completo", - "crossed": "Cruzado", - "insanity": "Locura" - } - }, - "variation": { - "title": "Variación", - "options": { - "none": "Ninguna", - "timed-race": "Carrera cronometrada", - "timed-ohko": "Muerte Súbita cronometrada", - "ohko": "Muerte Súbita", - "triforce-hunt": "Caza de la Trifuerza", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "spoiler_race": "Generar ROM para carreras", - "casual": "Generar ROM" - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - } - }, - "error": { - "title": "Error", - "429": "Aunque apreciamos que quieras generar un montón de partidas, otras personas quieren hacerlo también. Por favor, vuelve más tarde si quieres generar más.", - "failed_generation": "Error creando la semilla :(", - "bad_file": "Archivo no reconocido", - "quota_exceeded_error": "Has sobrepasado tu cuota de almacenamiento local." - }, "item": { "Random": "Aleatorio", "BottleWithRandom": "Botella (aleatoria)", @@ -2314,7 +2232,8 @@ export default { "blue": "Azul", "green": "Verde", "red": "Rojo", - "yellow": "Amarillo" + "yellow": "Amarillo", + "random": "Aleatorio" }, "play_as": "Jugar Como", "sprite_file_select": "Selecciona archivo .zspr", @@ -2350,787 +2269,101 @@ export default { "options": { "ganon": "Derrotar a Ganon", "crystals": "Cristales", - "dungeons": "Todas las mazmorras", - "pedestal": "Pedestal de la Espada Maestra", - "triforcehunt": "Piezas de la Trifuerza" - } - }, - "logic": { - "title": "Lógica", - "options": { - "NoGlitches": "Sin Glitches" - } - }, - "mode": { - "title": "Tipo", - "options": { - "swordless": "Sin espadas", - "open": "Abierto" - } - }, - "shuffle": { - "title": "Orden", - "options": { - "simple": "Simple", - "restricted": "Restringido", - "full": "Completo", - "crossed": "Cruzado", - "insanity": "Locura" - } - }, - "variation": { - "title": "Variación", - "options": { - "none": "Ninguna", - "timed-race": "Carrera cronometrada", - "timed-ohko": "Muerte Súbita cronometrada", - "ohko": "Muerte Súbita", - "triforce-hunt": "Caza de la Trifuerza", - "key-sanity": "Keysanity", - "retro": "Retro" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "spoiler_race": "Generar ROM para carreras", - "casual": "Generar ROM" - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - } - }, - "enemizer": { - "title": "Randomizer de enemigos (Enemizer)", - "enable": "Activar Enemizer", - "disable": "Desactivar Enemizer", - "enemy_health": { - "title": "Vida de enemigos", - "options": [ - "Normal", - "Fácil (1-4 hp)", - "Medio (2-15 hp)", - "Difícil (2-30 hp)", - "Locura (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Daño de enemigos", - "options": { - "off": "Normal", - "shuffle": "Aleatorio", - "chaos": "Caos" - } - }, - "bosses": { - "title": "Jefes", - "options": { - "off": "Normal", - "basic": "Básico", - "normal": "Normal", - "chaos": "Caos" - } - }, - "palette_shuffle": "Paleta aleatoria", - "pot_shuffle": "Vasijas aleatorias", - "enemy_shuffle": "Enemigos aleatorios" - }, - "randomizer": { - "title": "Randomizer", - "preset": { - "title": "Seleccionar plantilla", - "customize": "Customizar", - "options": { - "default": "Por Defecto", - "beginner": "Principiante", - "veetorp": "Glitches de Superfície (el favorito de Veetorp)", - "crosskeys": "Crosskeys", - "quick": "Súper Rápido", - "nightmare": "Pesadilla", - "tournament": "Torneo", - "custom": "Personalizado" - } - }, - "placement": { - "title": "Colocación de Objetos" - }, - "item_placement": { - "title": "Colocación de Objetos", - "options": { - "basic": "Básica", - "advanced": "Avanzada" - } - }, - "dungeon_items": { - "title": "Objetos de Mazmorras", - "options": { - "standard": "Normal", - "mc": "Mapas/Brújulas", - "mcs": "Mapas/Brújulas/Llaves pequeñas", - "full": "Keysanity" - } - }, - "accessibility": { - "title": "Accesibilidad", - "options": { - "items": "100% inventario", - "locations": "100% localizaciones", - "none": "Completable" - } - }, - "glitches_required": { - "title": "Glitches Requeridos", - "options": { - "none": "Ninguno", - "overworld_glitches": "Glitches de la Superfície", - "major_glitches": "Glitches Mayores", - "no_logic": "Sin lógica" - }, - "glitch_warning": "Esta Lógica require conocimiento de Glithes Mayores**" - }, - "goal": { - "title": "Objetivo", - "options": { - "ganon": "Derrotar a Ganon", - "fast_ganon": "Ganon Rápido", - "dungeons": "Todas las mazmorras", - "pedestal": "Pedestal de la Espada Maestra", - "triforce-hunt": "Piezas de la Trifuerza" - } - }, - "tower_open": { - "title": "Torre Abierta", - "options": { - "0": "0 Cristales", - "1": "1 Cristal", - "2": "2 Cristales", - "3": "3 Cristales", - "4": "4 Cristales", - "5": "5 Cristales", - "6": "6 Cristales", - "7": "7 Cristales", - "random": "Aleatorio" - } - }, - "ganon_open": { - "title": "Ganon Vulnerable", - "options": { - "0": "0 Cristales", - "1": "1 Cristal", - "2": "2 Cristales", - "3": "3 Cristales", - "4": "4 Cristales", - "5": "5 Cristales", - "6": "6 Cristales", - "7": "7 Cristales", - "random": "Aleatorio" - } - }, - "gameplay": { - "title": "Gameplay" - }, - "world_state": { - "title": "Estado del mundo", - "options": { - "standard": "Estándar", - "open": "Abierto", - "inverted": "Inverso", - "retro": "Retro" - } - }, - "entrance_shuffle": { - "title": "Mélangeur d’Entrées", - "options": { - "none": "Ninguno", - "simple": "Simple", - "restricted": "Restringido", - "full": "Completo", - "crossed": "Cruzado", - "insanity": "Locura" - } - }, - "boss_shuffle": { - "title": "Randomizer de Jefes", - "options": { - "none": "Ninguno", - "simple": "Simple", - "full": "Completo", - "random": "Aleatorio" - } - }, - "enemy_shuffle": { - "title": "Mélangeur d’Ennemis", - "options": { - "none": "Ninguno", - "shuffled": "Barajado", - "random": "Aleatorio" - } - }, - "hints": { - "title": "Pistas", - "options": { - "on": "On", - "off": "Off" - } - }, - "weapons": { - "title": "Espadas", - "options": { - "randomized": "Randomizadas", - "assured": "Aseguradas", - "vanilla": "Vanilla", - "swordless": "Sin Espadas" - } - }, - "item_pool": { - "title": "Reserva de Objetos", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "crowd_control": "Crowd Control" - }, - "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l’extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" - }, - "item_functionality": { - "title": "Funcionalidad de Objetos", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto" - } - }, - "enemy_damage": { - "title": "Daño de Enemigos", - "options": { - "default": "Por Defecto", - "shuffled": "Barajado", - "random": "Aleatorio" - } - }, - "enemy_health": { - "title": "Vida de Enemigos", - "options": { - "default": "Por Defecto", - "easy": "Fácil", - "hard": "Difícil", - "expert": "Experto" - } - }, - "spoiler": { - "title": "Spoilers", - "options": { - "off": "Disabled", - "on": "Enabled", - "generate": "Solo en Generar" - } - }, - "generate": { - "race": "Generar ROM para carreras", - "race_warning": "sin spoilers", - "spoiler_race": "Generar ROM para carreras (con spoilers)", - "casual": "Generar ROM", - "back": "Cambiar ajustes", - "regenerate": "Generar otra vez", - "regenerate_tooltip": "Generar otra partida con las mismas opciones", - "generating": "Generando..." - }, - "details": { - "title": "Detalles del juego", - "save_spoiler": "Guardar spoiler", - "save_rom": "Guardar ROM" - }, - "variation": { - "title": "Variación" - }, - "difficulty": { - "title": "Dificultad", - "options": { - "easy": "Fácil", - "normal": "Normal", - "hard": "Difícil", - "expert": "Experto", - "insane": "Locura", - "crowdControl": "Crowd Control" - } - } - }, - "rom": { - "loader": { - "title": "Empezar a Jugar", - "file_select": "Selecciona archivo ROM", - "content": "
          1. Selecciona tu archivo ROM y cárgalo en tu navegador (Por favor, usa una ROM Zelda no Densetsu: Kamigami no Triforce v1.0 con extensión .smc o .sfc)
          2. Selecciona las Opciones de Juego para cómo quieres que tu juego sea randomizado
          3. Haz click en Generar ROM para carreras
          4. Guarda tu ROM y ponte a jugar
          " - }, - "info": { - "spoilerwarning": "ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.", - "mystery": "Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!", - "logic": "Glitches Requeridos", - "accessibility": "Accesibilidad", - "build": "Build de la ROM", - "difficulty": "Dificultad", - "variation": "Variación", - "shuffle": "Randomizer de entradas", - "mode": "Estado del mundo", - "weapons": "Espadas", - "goal": "Objetivo", - "permalink": "Enlace permanente", - "special": "Especial", - "notes": "Notas", - "generated": "Creada" - }, - "settings": { - "heart_speed": "Velocidad de Corazones", - "heart_speeds": { - "off": "Desactivado", - "double": "Velocidad Doble", - "normal": "Velocidad Normal", - "half": "Media Velocidad", - "quarter": "Cuarto de Velocidad" - }, - "menu_speed": "Velocidad de Menú", - "menu_speeds": { - "instant": "Instantáneo", - "fast": "Rápido", - "normal": "Normal", - "slow": "Lento" - }, - "heart_color": "Color de Corazones", - "heart_colors": { - "blue": "Azul", - "green": "Verde", - "red": "Rojo", - "yellow": "Amarillo", - "random": "Aleatorio" - }, - "play_as": "Jugar Como", - "sprite_file_select": "Selecciona archivo .zspr", - "music": "Música de fondo", - "music_info": "(poner en \"No\" para soporte con MSU-1)", - "quickswap": "Cambio Rápido de Objetos", - "palette_shuffle": "Paletas aleatorias", - "race_warning": "No funciona en ROMs para carreras" - } - } - }, - "fr": { - "customizer": { - "settings": { - "timers": { - "off": "Désactivé", - "stopwatch": "Contre-la-montre", - "countdown-ohko": "Compte à rebours OHKO", - "countdown-continue": "Compte à rebours", - "countdown-stop": "Compte à rebours Fin du jeu" - }, - "dungeon_count": { - "off": "Désactivé", - "on": "Toujours activé", - "pickup": "Avec Boussole" - } - }, - "glitches": { - "canBombJump": { - "title": "Saut à la Bombe", - "description": "Il peut être requis de sauter par dessus un gouffre avec une bombe." - }, - "canBootsClip": { - "title": "Clip aux Bottes", - "description": "Avec les bottes, il peut être requis de passer à travers de murs, dans le monde extérieur." - }, - "canBunnyRevive": { - "title": "Résurrection du Lapin", - "description": "Il peut être requis de se rendre quelque part en forme de Lapin, et de mourir/user une fée pour redevenir Link." - }, - "canBunnySurf": { - "title": "Lapin Surfeur", - "description": "Il peut être requis de marcher sur l’eau en tant que Lapin." - }, - "canDungeonRevive": { - "title": "Résurrection en Donjon", - "description": "Il peut être requis d’entrer dans un donjon en Lapin, et de mourir, afin de redevenir Link pour collecter des objets." - }, - "canFakeFlipper": { - "title": "Fausses Palmes", - "description": "Il peut être requis de faire la technique des Fausses Palmes afin de récupérer des objets." - }, - "canMirrorClip": { - "title": "Clip au Miroir", - "description": "Il peut être requis d’utiliser des rebonds avec le Miroir pour se transporter hors des limites du jeu." - }, - "canMirrorWrap": { - "title": "Wrap au Miroir", - "description": "Il peut être requis d\\utiliser le Miroir afin de défiler l’écran à un endroit normalement inaccessible." - }, - "canOneFrameClipOW": { - "title": "Clip d\\Une Image (Monde extérieur)", - "description": "Vous ne voulez pas faire ça. Croyez-moi.." - }, - "canOneFrameClipUW": { - "title": "One Frame Clip (underworld)", - "description": "Use 1 Frame Movement to clip between rooms of the underworld." - }, - "canOWYBA": { - "title": "YBA (Monde extérieur)", - "description": "Il peut être requis d’utiliser des Bocaux dans le monde extérieur afin de se rendre à un endroit normalement inaccessible." - }, - "canSuperBunny": { - "title": "Super Lapin", - "description": "Il peut être requis d’activer la technique du Super Lapin pour accéder à certains endroits et objets." - }, - "canSuperSpeed": { - "title": "Super Vitesse", - "description": "Il peut être requis d’utiliser la Super Vitesse afin de passer à travers une barrière dans le monde extérieur." - }, - "canWaterFairyRevive": { - "title": "Résurrection par une Fée dans l’Eau", - "description": "Cette technique est ridicule et requiert un grand nombre d’objets." - }, - "canWaterWalk": { - "title": "Marche sur l’Eau", - "description": "Il peut être requis d’utiliser les Bottes pour marcher sur l\\eau." - }, - "noLogic": { - "title": "Désactiver la Logique", - "description": "Quand ceci est activé, les dés en sont jetés, et rien d’autre n’importe.." - } - } - }, - "enemizer": { - "title": "Enemizer", - "enable": "Activer l’Ennemiseur", - "disable": "Désactiver l’Ennemiseur", - "enemy_health": { - "title": "Santé Ennemis", - "options": [ - "Ordinaire", - "Facile (1-4 hp)", - "Moyen (2-15 hp)", - "Difficile (2-30 hp)", - "Insensé (4-50 hp)" - ] - }, - "enemy_damage": { - "title": "Dégâts des Ennemis", - "options": { - "off": "Ordinaire", - "shuffle": "Mélangé", - "chaos": "Chaos" - } - }, - "bosses": { - "title": "Bosses", - "options": { - "off": "Ordinaire", - "basic": "De base", - "normal": "Commun", - "chaos": "Chaos" - } - }, - "palette_shuffle": "Mélange les Palettes", - "pot_shuffle": "Mélange les Pots", - "enemy_shuffle": "Mélanger les Ennemis" - }, - "entrance": { - "title": "Randomizer de portes", - "switch": { - "item": "Passer au Randomizer d’objets" - }, - "rom": { - "options": "Options de ROM" - }, - "difficulty": { - "title": "Difficulté", - "options": { - "easy": "Facile", - "normal": "Normal", - "hard": "Difficile", - "expert": "Expert", - "insane": "Insensé" - } - }, - "goal": { - "title": "Objectif", - "options": { - "ganon": "Vaincre Ganon", - "crystals": "Cristaux", - "dungeons": "Tous les Donjons", - "pedestal": "Piédestal de la Master Sword", - "triforcehunt": "Pièces de Triforce" - } - }, - "logic": { - "title": "Logique", - "options": { - "NoGlitches": "Sans Glitches" - } - }, - "mode": { - "title": "Réglage", - "options": { - "swordless": "Sans Épée", - "open": "Ouvert" - } - }, - "shuffle": { - "title": "Mélanger", - "options": { - "simple": "Simple", - "restricted": "Restreint", - "full": "Complet", - "crossed": "Croisé", - "insanity": "Insensé" - } - }, - "variation": { - "title": "Variation", - "options": { - "none": "Aucun", - "timed-race": "Chronométrée", - "timed-ohko": "Décompte Final", - "ohko": "Zéro Coeurs", - "triforce-hunt": "Chasse aux morceaux de Triforce", - "key-sanity": "Clé-sordre", - "retro": "Rétro" - } - }, - "generate": { - "race": "Générer une ROM de course", - "spoiler_race": "Spoiler de la ROM de Course", - "casual": "Générer une ROM" - }, - "details": { - "title": "Détails du jeu", - "save_spoiler": "Enregistrer le spoiler", - "save_rom": "Sauvegarder la ROM" - } - }, - "error": { - "title": "Erreur", - "429": "Bien que nous appréciions que vous souhaitiez générer beaucoup de jeux, d’autres personnes aimeraient également le faire. Veuillez revenir plus tard si vous souhaitez continuer à générer.", - "failed_generation": "Échec de la création de jeu :(", - "bad_file": "Fichier non reconnu", - "quota_exceeded_error": "Vous avez atteint la limite de stockage local." - }, - "item": { - "Random": "Random", - "BottleWithRandom": "Bottle (Random)", - "Nothing": "Rien", - "UncleSword": "Épée progressive", - "L1Sword": "Épée de combat", - "L1SwordAndShield": "Épée et Bouclier de combat", - "L2Sword": "Master Sword", - "MasterSword": "Master Sword", - "L3Sword": "Épée trempée", - "L4Sword": "Épée d’or", - "BlueShield": "Bouclier de combat", - "RedShield": "Bouclier de feu", - "MirrorShield": "Bouclier miroir", - "FireRod": "Baguette de Feu", - "IceRod": "Baguette de Glace", - "Hammer": "Marteau", - "Hookshot": "Grappin", - "Bow": "Arc", - "Boomerang": "Boomerang Bleu", - "Powder": "Poudre magique", - "Bee": "Abeille", - "Bombos": "Bombos", - "Ether": "Ether", - "Quake": "Quake", - "Lamp": "Lampe", - "Shovel": "Pelle", - "OcarinaInactive": "Flûte", - "CaneOfSomaria": "Canne De Somaria", - "Bottle": "Flacon (vide)", - "PieceOfHeart": "Quart de Coeur", - "CaneOfByrna": "Canne De Byrna", - "Cape": "Cape Magique", - "MagicMirror": "Miroir Magique", - "PowerGlove": "Gants de puissance", - "TitansMitt": "Gants des Titans", - "BookOfMudora": "Livre De Mudora", - "Flippers": "Palmes", - "MoonPearl": "Perle de lune", - "BugCatchingNet": "Filet à papillon", - "BlueMail": "Tunique bleue", - "RedMail": "Tunique rouge", - "Key": "Clé", - "Compass": "Boussole", - "HeartContainerNoAnimation": "Réceptacle de coeur (pas d’animation)", - "Bomb": "Une Bombe", - "ThreeBombs": "Trois Bombes", - "Mushroom": "Champignon", - "RedBoomerang": "Boomerang magique", - "BottleWithRedPotion": "Flacon (potion rouge)", - "BottleWithGreenPotion": "Flacon (potion verte)", - "BottleWithBluePotion": "Flacon (potion bleue)", - "RedPotion": "Potion Rouge", - "GreenPotion": "Potion Verte", - "BluePotion": "Potion Bleue", - "TenBombs": "Dix Bombes", - "BigKey": "Grande Clé", - "Map": "Carte du Donjon", - "OneRupee": "Un Rubis", - "FiveRupees": "Cinq Rubiss", - "TwentyRupees": "Vingt Rubis", - "PendantOfCourage": "Pendentif du courage", - "PendantOfWisdom": "Pendentif de sagesse", - "PendantOfPower": "Pendentif de puissance", - "BowAndArrows": "Arc et Flèches", - "BowAndSilverArrows": "Arc Et Flèches d’Argent ", - "BottleWithBee": "Flacon (abeille)", - "BottleWithFairy": "Flacon (fée)", - "BossHeartContainer": "Réceptacle de coeur", - "HeartContainer": "Réceptacle de coeur du sanctuaire", - "OneHundredRupees": "Cent Rubis", - "FiftyRupees": "Cinquante Rubis", - "Heart": "Petit coeur", - "Arrow": "La Flèche", - "ShopArrow": "Arrows", - "TenArrows": "Dix Flèches", - "SmallMagic": "Petite magie", - "ThreeHundredRupees": "Trois cent Rubis", - "TwentyRupees2": "Vingt Rubis", - "BottleWithGoldBee": "Flacon (Abeille D’or)", - "OcarinaActive": "Flûte (activée)", - "PegasusBoots": "Bottes Pégase", - "BombUpgrade5": "Extension de Sac de Bombes (+5)", - "BombUpgrade10": "Extension de Sac de Bombes (+10)", - "BombUpgrade50": "Extension de Sac de Bombes (+50)", - "ArrowUpgrade5": "Extension de carquois (+5)", - "ArrowUpgrade10": "Extension de carquois (+10)", - "ArrowUpgrade70": "Extension de carquois (+70)", - "HalfMagic": "Demi-magie", - "QuarterMagic": "Quart de magie", - "Programmable1": "Programmable 1", - "Programmable2": "Programmable 2", - "Programmable3": "Programmable 3", - "SilverArrowUpgrade": "Flèches d’argent", - "Rupoor": "Rupoor", - "RedClock": "Horloge rouge", - "BlueClock": "Horloge bleue", - "GreenClock": "Horloge verte", - "ProgressiveSword": "Épée progressive", - "ProgressiveShield": "Bouclier Progressif", - "ProgressiveArmor": "Armure progressive", - "ProgressiveGlove": "Gant Progressif", - "singleRNG": "Objet RNG unique", - "multiRNG": "Objet RNG non unique", - "ProgressiveBow": "Arc Progressif", - "Triforce": "Triforce", - "PowerStar": "Étoile de puissance", - "TriforcePiece": "Pièce Triforce", - "MapLW": "Carte du monde de la lumière", - "MapDW": "Carte du monde des ténèbres", - "MapA2": "Carte de Ganons Tower", - "MapD7": "Carte de Turtle Rock", - "MapD4": "Carte de Thieves Town", - "MapP3": "Carte de Hera Tower", - "MapD5": "Carte de Ice Palace", - "MapD3": "Carte de Skulls Woods", - "MapD6": "Carte de Misery Mire", - "MapD1": "Carte de Palace of Darkness", - "MapD2": "Carte de Swamp Palace", - "MapA1": "Carte de Agahnim Tower", - "MapP2": "Carte de Desert Palace", - "MapP1": "Carte de Eastern Palace", - "MapH1": "Carte de Hyrule Castle", - "MapH2": "Carte de Sewers", - "CompassA2": "Boussole de Ganons Tower", - "CompassD7": "Boussole de Turtle Rock", - "CompassD4": "Boussole de Thieves Town", - "CompassP3": "Boussole de Hera Tower", - "CompassD5": "Boussole de Ice Palace", - "CompassD3": "Boussole de Skulls Woods", - "CompassD6": "Boussole de Misery Mire", - "CompassD1": "Boussole de Palace of Darkness", - "CompassD2": "Boussole de Swamp Palace", - "CompassA1": "Boussole de Agahnim Tower", - "CompassP2": "Boussole de Desert Palace", - "CompassP1": "Boussole de Eastern Palace", - "CompassH1": "Boussole de Hyrule Castle", - "CompassH2": "Boussole de Sewers", - "BigKeyA2": "Grande Clé de Ganons Tower", - "BigKeyD7": "Grande Clé de Turtle Rock", - "BigKeyD4": "Grande Clé de Thieves Town", - "BigKeyP3": "Grande Clé de Hera Tower", - "BigKeyD5": "Grande Clé de Ice Palace", - "BigKeyD3": "Grande Clé de Skulls Woods", - "BigKeyD6": "Grande Clé de Misery Mire", - "BigKeyD1": "Grande Clé de Palace of Darkness", - "BigKeyD2": "Grande Clé de Swamp Palace", - "BigKeyA1": "Grande Clé de Agahnims Tower", - "BigKeyP2": "Grande Clé de Desert Palace", - "BigKeyP1": "Grande Clé de Eastern Palace", - "BigKeyH1": "Grande Clé de Hyrule Castle", - "BigKeyH2": "Grande Clé de Sewers", - "KeyH2": "Clé de Sewers", - "KeyH1": "Clé de Hyrule Castle", - "KeyP1": "Clé de Eastern Palace", - "KeyP2": "Clé de Desert Palace", - "KeyA1": "Clé de Agahnims Tower", - "KeyD2": "Clé de Swamp Palace", - "KeyD1": "Clé de Palace of Darkness", - "KeyD6": "Clé de Misery Mire", - "KeyD3": "Clé de Skulls Woods", - "KeyD5": "Clé de Ice Palace", - "KeyP3": "Clé de Hera Tower", - "KeyD4": "Clé de Thieves Town", - "KeyD7": "Clé de Turtle Rock", - "KeyA2": "Clé de Ganon Tower", - "KeyGK": "Clé générique", - "ShopKey": "Key", - "Crystal1": "Cristal 1", - "Crystal2": "Cristal 2", - "Crystal3": "Cristal 3", - "Crystal4": "Cristal 4", - "Crystal5": "Cristal 5", - "Crystal6": "Cristal 6", - "Crystal7": "Cristal 7", - "RescueZelda": "Sauver Zelda", - "DefeatAgahnim": "Vaincre Agahnim", - "BigRedBomb": "Grosse bombe rouge", - "DefeatAgahnim2": "Vaincre Agahnim 2", - "DefeatGanon": "Vaincre Ganon", - "ChocoboEgg": "Chocobo Egg", - "NoSlipBoots": "Crampons de Glace", - "WinterCoat": "Manteau d’hiver", - "Duck": "Canard", - "Reindeer1": "Fonceur", - "Reindeer2": "Danseur", - "Reindeer3": "Sauteur", - "Reindeer4": "Fripponne", - "Reindeer5": "Comète", - "Reindeer6": "Cupidonne", - "Reindeer7": "Tonnerre", - "Reindeer8": "Éclair", - "Gift1": "Cadeau 1", - "Gift2": "Cadeau 2", - "Gift3": "Cadeau 3", - "Gift4": "Cadeau 4", - "Gift5": "Cadeau 5", - "Gift6": "Cadeau 6", - "Gift7": "Cadeau 7", - "Coal1": "Charbon", - "Coal2": "Charbon", - "GoldenTicket": "Golden Ticket", - "Armos Knights": "Armos Knights", - "Lanmolas": "Lanmolas", - "Moldorm": "Moldorm", - "Helmasaur King": "Helmasaur King", - "Arrghus": "Arrghus", - "Mothula": "Mothula", - "Blind": "Blind", - "Kholdstare": "Kholdstare", - "Vitreous": "Vitreous", - "Trinexx": "Trinexx", - "Agahnim": "Agahnim", - "Agahnim 2": "Agahnim 2", - "Ganon": "Ganon", - "Test": "Testing Item" + "dungeons": "Todas las mazmorras", + "pedestal": "Pedestal de la Espada Maestra", + "triforcehunt": "Piezas de la Trifuerza" + } + }, + "logic": { + "title": "Lógica", + "options": { + "NoGlitches": "Sin Glitches" + } + }, + "mode": { + "title": "Tipo", + "options": { + "swordless": "Sin espadas", + "open": "Abierto" + } + }, + "shuffle": { + "title": "Orden", + "options": { + "simple": "Simple", + "restricted": "Restringido", + "full": "Completo", + "crossed": "Cruzado", + "insanity": "Locura" + } + }, + "variation": { + "title": "Variación", + "options": { + "none": "Ninguna", + "timed-race": "Carrera cronometrada", + "timed-ohko": "Muerte Súbita cronometrada", + "ohko": "Muerte Súbita", + "triforce-hunt": "Caza de la Trifuerza", + "key-sanity": "Keysanity", + "retro": "Retro" + } + }, + "generate": { + "race": "Generar ROM para carreras", + "spoiler_race": "Generar ROM para carreras", + "casual": "Generar ROM" + }, + "details": { + "title": "Detalles del juego", + "save_spoiler": "Guardar spoiler", + "save_rom": "Guardar ROM" + } + }, + "enemizer": { + "title": "Randomizer de enemigos (Enemizer)", + "enable": "Activar Enemizer", + "disable": "Desactivar Enemizer", + "enemy_health": { + "title": "Vida de enemigos", + "options": [ + "Normal", + "Fácil (1-4 hp)", + "Medio (2-15 hp)", + "Difícil (2-30 hp)", + "Locura (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Daño de enemigos", + "options": { + "off": "Normal", + "shuffle": "Aleatorio", + "chaos": "Caos" + } + }, + "bosses": { + "title": "Jefes", + "options": { + "off": "Normal", + "basic": "Básico", + "normal": "Normal", + "chaos": "Caos" + } + }, + "palette_shuffle": "Paleta aleatoria", + "pot_shuffle": "Vasijas aleatorias", + "enemy_shuffle": "Enemigos aleatorios" }, + "error": { + "title": "Error", + "429": "Aunque apreciamos que quieras generar un montón de partidas, otras personas quieren hacerlo también. Por favor, vuelve más tarde si quieres generar más.", + "failed_generation": "Error creando la semilla :(", + "bad_file": "Archivo no reconocido", + "quota_exceeded_error": "Has sobrepasado tu cuota de almacenamiento local." + } + }, + "fr": { "randomizer": { "title": "Randomiseur", "preset": { @@ -3235,7 +2468,7 @@ export default { } }, "entrance_shuffle": { - "title": "Mélangeur d'Entrées", + "title": "Mélangeur d’Entrées", "options": { "none": "Désactivé", "simple": "Simple", @@ -3255,7 +2488,7 @@ export default { } }, "enemy_shuffle": { - "title": "Mélangeur d'Ennemis", + "title": "Mélangeur d’Ennemis", "options": { "none": "Désactivé", "shuffled": "Intervertis", @@ -3287,7 +2520,7 @@ export default { "expert": "Expert", "crowd_control": "Crowd Control" }, - "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l'extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" + "crowd_control_warning": "* Ce paramètre est prévu pour être utilisé avec l’extension Twitch Crowd Control. En savoir plus: https://crowdcontrol.live/" }, "item_functionality": { "title": "Fonctionnalité des Objets", @@ -3353,6 +2586,305 @@ export default { } } }, + "customizer": { + "settings": { + "timers": { + "off": "Désactivé", + "stopwatch": "Contre-la-montre", + "countdown-ohko": "Compte à rebours OHKO", + "countdown-continue": "Compte à rebours", + "countdown-stop": "Compte à rebours Fin du jeu" + }, + "dungeon_count": { + "off": "Désactivé", + "on": "Toujours activé", + "pickup": "Avec Boussole" + } + }, + "glitches": { + "canBombJump": { + "title": "Saut à la Bombe", + "description": "Il peut être requis de sauter par dessus un gouffre avec une bombe." + }, + "canBootsClip": { + "title": "Clip aux Bottes", + "description": "Avec les bottes, il peut être requis de passer à travers de murs, dans le monde extérieur." + }, + "canBunnyRevive": { + "title": "Résurrection du Lapin", + "description": "Il peut être requis de se rendre quelque part en forme de Lapin, et de mourir/user une fée pour redevenir Link." + }, + "canBunnySurf": { + "title": "Lapin Surfeur", + "description": "Il peut être requis de marcher sur l’eau en tant que Lapin." + }, + "canDungeonRevive": { + "title": "Résurrection en Donjon", + "description": "Il peut être requis d’entrer dans un donjon en Lapin, et de mourir, afin de redevenir Link pour collecter des objets." + }, + "canFakeFlipper": { + "title": "Fausses Palmes", + "description": "Il peut être requis de faire la technique des Fausses Palmes afin de récupérer des objets." + }, + "canMirrorClip": { + "title": "Clip au Miroir", + "description": "Il peut être requis d’utiliser des rebonds avec le Miroir pour se transporter hors des limites du jeu." + }, + "canMirrorWrap": { + "title": "Wrap au Miroir", + "description": "Il peut être requis d\\utiliser le Miroir afin de défiler l’écran à un endroit normalement inaccessible." + }, + "canOneFrameClipOW": { + "title": "Clip d\\Une Image (Monde extérieur)", + "description": "Vous ne voulez pas faire ça. Croyez-moi.." + }, + "canOneFrameClipUW": { + "title": "One Frame Clip (underworld)", + "description": "Use 1 Frame Movement to clip between rooms of the underworld." + }, + "canOWYBA": { + "title": "YBA (Monde extérieur)", + "description": "Il peut être requis d’utiliser des Bocaux dans le monde extérieur afin de se rendre à un endroit normalement inaccessible." + }, + "canSuperBunny": { + "title": "Super Lapin", + "description": "Il peut être requis d’activer la technique du Super Lapin pour accéder à certains endroits et objets." + }, + "canSuperSpeed": { + "title": "Super Vitesse", + "description": "Il peut être requis d’utiliser la Super Vitesse afin de passer à travers une barrière dans le monde extérieur." + }, + "canWaterFairyRevive": { + "title": "Résurrection par une Fée dans l’Eau", + "description": "Cette technique est ridicule et requiert un grand nombre d’objets." + }, + "canWaterWalk": { + "title": "Marche sur l’Eau", + "description": "Il peut être requis d’utiliser les Bottes pour marcher sur l\\eau." + }, + "noLogic": { + "title": "Désactiver la Logique", + "description": "Quand ceci est activé, les dés en sont jetés, et rien d’autre n’importe.." + } + } + }, + "item": { + "Random": "Random", + "BottleWithRandom": "Bottle (Random)", + "Nothing": "Rien", + "UncleSword": "Épée progressive", + "L1Sword": "Épée de combat", + "L1SwordAndShield": "Épée et Bouclier de combat", + "L2Sword": "Master Sword", + "MasterSword": "Master Sword", + "L3Sword": "Épée trempée", + "L4Sword": "Épée d’or", + "BlueShield": "Bouclier de combat", + "RedShield": "Bouclier de feu", + "MirrorShield": "Bouclier miroir", + "FireRod": "Baguette de Feu", + "IceRod": "Baguette de Glace", + "Hammer": "Marteau", + "Hookshot": "Grappin", + "Bow": "Arc", + "Boomerang": "Boomerang Bleu", + "Powder": "Poudre magique", + "Bee": "Abeille", + "Bombos": "Bombos", + "Ether": "Ether", + "Quake": "Quake", + "Lamp": "Lampe", + "Shovel": "Pelle", + "OcarinaInactive": "Flûte", + "CaneOfSomaria": "Canne De Somaria", + "Bottle": "Flacon (vide)", + "PieceOfHeart": "Quart de Coeur", + "CaneOfByrna": "Canne De Byrna", + "Cape": "Cape Magique", + "MagicMirror": "Miroir Magique", + "PowerGlove": "Gants de puissance", + "TitansMitt": "Gants des Titans", + "BookOfMudora": "Livre De Mudora", + "Flippers": "Palmes", + "MoonPearl": "Perle de lune", + "BugCatchingNet": "Filet à papillon", + "BlueMail": "Tunique bleue", + "RedMail": "Tunique rouge", + "Key": "Clé", + "Compass": "Boussole", + "HeartContainerNoAnimation": "Réceptacle de coeur (pas d’animation)", + "Bomb": "Une Bombe", + "ThreeBombs": "Trois Bombes", + "Mushroom": "Champignon", + "RedBoomerang": "Boomerang magique", + "BottleWithRedPotion": "Flacon (potion rouge)", + "BottleWithGreenPotion": "Flacon (potion verte)", + "BottleWithBluePotion": "Flacon (potion bleue)", + "RedPotion": "Potion Rouge", + "GreenPotion": "Potion Verte", + "BluePotion": "Potion Bleue", + "TenBombs": "Dix Bombes", + "BigKey": "Grande Clé", + "Map": "Carte du Donjon", + "OneRupee": "Un Rubis", + "FiveRupees": "Cinq Rubiss", + "TwentyRupees": "Vingt Rubis", + "PendantOfCourage": "Pendentif du courage", + "PendantOfWisdom": "Pendentif de sagesse", + "PendantOfPower": "Pendentif de puissance", + "BowAndArrows": "Arc et Flèches", + "BowAndSilverArrows": "Arc Et Flèches d’Argent ", + "BottleWithBee": "Flacon (abeille)", + "BottleWithFairy": "Flacon (fée)", + "BossHeartContainer": "Réceptacle de coeur", + "HeartContainer": "Réceptacle de coeur du sanctuaire", + "OneHundredRupees": "Cent Rubis", + "FiftyRupees": "Cinquante Rubis", + "Heart": "Petit coeur", + "Arrow": "La Flèche", + "ShopArrow": "Arrows", + "TenArrows": "Dix Flèches", + "SmallMagic": "Petite magie", + "ThreeHundredRupees": "Trois cent Rubis", + "TwentyRupees2": "Vingt Rubis", + "BottleWithGoldBee": "Flacon (Abeille D’or)", + "OcarinaActive": "Flûte (activée)", + "PegasusBoots": "Bottes Pégase", + "BombUpgrade5": "Extension de Sac de Bombes (+5)", + "BombUpgrade10": "Extension de Sac de Bombes (+10)", + "BombUpgrade50": "Extension de Sac de Bombes (+50)", + "ArrowUpgrade5": "Extension de carquois (+5)", + "ArrowUpgrade10": "Extension de carquois (+10)", + "ArrowUpgrade70": "Extension de carquois (+70)", + "HalfMagic": "Demi-magie", + "QuarterMagic": "Quart de magie", + "Programmable1": "Programmable 1", + "Programmable2": "Programmable 2", + "Programmable3": "Programmable 3", + "SilverArrowUpgrade": "Flèches d’argent", + "Rupoor": "Rupoor", + "RedClock": "Horloge rouge", + "BlueClock": "Horloge bleue", + "GreenClock": "Horloge verte", + "ProgressiveSword": "Épée progressive", + "ProgressiveShield": "Bouclier Progressif", + "ProgressiveArmor": "Armure progressive", + "ProgressiveGlove": "Gant Progressif", + "singleRNG": "Objet RNG unique", + "multiRNG": "Objet RNG non unique", + "ProgressiveBow": "Arc Progressif", + "Triforce": "Triforce", + "PowerStar": "Étoile de puissance", + "TriforcePiece": "Pièce Triforce", + "MapLW": "Carte du monde de la lumière", + "MapDW": "Carte du monde des ténèbres", + "MapA2": "Carte de Ganons Tower", + "MapD7": "Carte de Turtle Rock", + "MapD4": "Carte de Thieves Town", + "MapP3": "Carte de Hera Tower", + "MapD5": "Carte de Ice Palace", + "MapD3": "Carte de Skulls Woods", + "MapD6": "Carte de Misery Mire", + "MapD1": "Carte de Palace of Darkness", + "MapD2": "Carte de Swamp Palace", + "MapA1": "Carte de Agahnim Tower", + "MapP2": "Carte de Desert Palace", + "MapP1": "Carte de Eastern Palace", + "MapH1": "Carte de Hyrule Castle", + "MapH2": "Carte de Sewers", + "CompassA2": "Boussole de Ganons Tower", + "CompassD7": "Boussole de Turtle Rock", + "CompassD4": "Boussole de Thieves Town", + "CompassP3": "Boussole de Hera Tower", + "CompassD5": "Boussole de Ice Palace", + "CompassD3": "Boussole de Skulls Woods", + "CompassD6": "Boussole de Misery Mire", + "CompassD1": "Boussole de Palace of Darkness", + "CompassD2": "Boussole de Swamp Palace", + "CompassA1": "Boussole de Agahnim Tower", + "CompassP2": "Boussole de Desert Palace", + "CompassP1": "Boussole de Eastern Palace", + "CompassH1": "Boussole de Hyrule Castle", + "CompassH2": "Boussole de Sewers", + "BigKeyA2": "Grande Clé de Ganons Tower", + "BigKeyD7": "Grande Clé de Turtle Rock", + "BigKeyD4": "Grande Clé de Thieves Town", + "BigKeyP3": "Grande Clé de Hera Tower", + "BigKeyD5": "Grande Clé de Ice Palace", + "BigKeyD3": "Grande Clé de Skulls Woods", + "BigKeyD6": "Grande Clé de Misery Mire", + "BigKeyD1": "Grande Clé de Palace of Darkness", + "BigKeyD2": "Grande Clé de Swamp Palace", + "BigKeyA1": "Grande Clé de Agahnims Tower", + "BigKeyP2": "Grande Clé de Desert Palace", + "BigKeyP1": "Grande Clé de Eastern Palace", + "BigKeyH1": "Grande Clé de Hyrule Castle", + "BigKeyH2": "Grande Clé de Sewers", + "KeyH2": "Clé de Sewers", + "KeyH1": "Clé de Hyrule Castle", + "KeyP1": "Clé de Eastern Palace", + "KeyP2": "Clé de Desert Palace", + "KeyA1": "Clé de Agahnims Tower", + "KeyD2": "Clé de Swamp Palace", + "KeyD1": "Clé de Palace of Darkness", + "KeyD6": "Clé de Misery Mire", + "KeyD3": "Clé de Skulls Woods", + "KeyD5": "Clé de Ice Palace", + "KeyP3": "Clé de Hera Tower", + "KeyD4": "Clé de Thieves Town", + "KeyD7": "Clé de Turtle Rock", + "KeyA2": "Clé de Ganon Tower", + "KeyGK": "Clé générique", + "ShopKey": "Key", + "Crystal1": "Cristal 1", + "Crystal2": "Cristal 2", + "Crystal3": "Cristal 3", + "Crystal4": "Cristal 4", + "Crystal5": "Cristal 5", + "Crystal6": "Cristal 6", + "Crystal7": "Cristal 7", + "RescueZelda": "Sauver Zelda", + "DefeatAgahnim": "Vaincre Agahnim", + "BigRedBomb": "Grosse bombe rouge", + "DefeatAgahnim2": "Vaincre Agahnim 2", + "DefeatGanon": "Vaincre Ganon", + "ChocoboEgg": "Chocobo Egg", + "NoSlipBoots": "Crampons de Glace", + "WinterCoat": "Manteau d’hiver", + "Duck": "Canard", + "Reindeer1": "Fonceur", + "Reindeer2": "Danseur", + "Reindeer3": "Sauteur", + "Reindeer4": "Fripponne", + "Reindeer5": "Comète", + "Reindeer6": "Cupidonne", + "Reindeer7": "Tonnerre", + "Reindeer8": "Éclair", + "Gift1": "Cadeau 1", + "Gift2": "Cadeau 2", + "Gift3": "Cadeau 3", + "Gift4": "Cadeau 4", + "Gift5": "Cadeau 5", + "Gift6": "Cadeau 6", + "Gift7": "Cadeau 7", + "Coal1": "Charbon", + "Coal2": "Charbon", + "GoldenTicket": "Golden Ticket", + "Armos Knights": "Armos Knights", + "Lanmolas": "Lanmolas", + "Moldorm": "Moldorm", + "Helmasaur King": "Helmasaur King", + "Arrghus": "Arrghus", + "Mothula": "Mothula", + "Blind": "Blind", + "Kholdstare": "Kholdstare", + "Vitreous": "Vitreous", + "Trinexx": "Trinexx", + "Agahnim": "Agahnim", + "Agahnim 2": "Agahnim 2", + "Ganon": "Ganon", + "Test": "Testing Item" + }, "rom": { "loader": { "title": "Pour commencer", @@ -3410,6 +2942,122 @@ export default { "reduce_flashing": "Réduit le clignotement", "reduce_flashing_warning": "Cette option réduit l'effet de clignotement. Votre sensibilité aux effets de clignotement peut varier." } + }, + "entrance": { + "title": "Randomizer de portes", + "switch": { + "item": "Passer au Randomizer d’objets" + }, + "rom": { + "options": "Options de ROM" + }, + "difficulty": { + "title": "Difficulté", + "options": { + "easy": "Facile", + "normal": "Normal", + "hard": "Difficile", + "expert": "Expert", + "insane": "Insensé" + } + }, + "goal": { + "title": "Objectif", + "options": { + "ganon": "Vaincre Ganon", + "crystals": "Cristaux", + "dungeons": "Tous les Donjons", + "pedestal": "Piédestal de la Master Sword", + "triforcehunt": "Pièces de Triforce" + } + }, + "logic": { + "title": "Logique", + "options": { + "NoGlitches": "Sans Glitches" + } + }, + "mode": { + "title": "Réglage", + "options": { + "swordless": "Sans Épée", + "open": "Ouvert" + } + }, + "shuffle": { + "title": "Mélanger", + "options": { + "simple": "Simple", + "restricted": "Restreint", + "full": "Complet", + "crossed": "Croisé", + "insanity": "Insensé" + } + }, + "variation": { + "title": "Variation", + "options": { + "none": "Aucun", + "timed-race": "Chronométrée", + "timed-ohko": "Décompte Final", + "ohko": "Zéro Coeurs", + "triforce-hunt": "Chasse aux morceaux de Triforce", + "key-sanity": "Clé-sordre", + "retro": "Rétro" + } + }, + "generate": { + "race": "Générer une ROM de course", + "spoiler_race": "Spoiler de la ROM de Course", + "casual": "Générer une ROM" + }, + "details": { + "title": "Détails du jeu", + "save_spoiler": "Enregistrer le spoiler", + "save_rom": "Sauvegarder la ROM" + } + }, + "enemizer": { + "title": "Enemizer", + "enable": "Activer l’Ennemiseur", + "disable": "Désactiver l’Ennemiseur", + "enemy_health": { + "title": "Santé Ennemis", + "options": [ + "Ordinaire", + "Facile (1-4 hp)", + "Moyen (2-15 hp)", + "Difficile (2-30 hp)", + "Insensé (4-50 hp)" + ] + }, + "enemy_damage": { + "title": "Dégâts des Ennemis", + "options": { + "off": "Ordinaire", + "shuffle": "Mélangé", + "chaos": "Chaos" + } + }, + "bosses": { + "title": "Bosses", + "options": { + "off": "Ordinaire", + "basic": "De base", + "normal": "Commun", + "chaos": "Chaos" + } + }, + "palette_shuffle": "Mélange les Palettes", + "pot_shuffle": "Mélange les Pots", + "enemy_shuffle": "Mélanger les Ennemis" + }, + "error": { + "title": "Erreur", + "429": "Bien que nous appréciions que vous souhaitiez générer beaucoup de jeux, d’autres personnes aimeraient également le faire. Veuillez revenir plus tard si vous souhaitez continuer à générer.", + "failed_generation": "Échec de la création de jeu :(", + "bad_file": "Fichier non reconnu", + "quota_exceeded_error": "Vous avez atteint la limite de stockage local." } } } From 8cef61701a3d1bbb6f0097f5e908b51d3efd86cc Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sat, 5 Jun 2021 13:23:19 -0400 Subject: [PATCH 41/59] Update app/World.php Co-authored-by: Salvatore --- app/World.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/World.php b/app/World.php index 301e1ec1c..92e734df9 100644 --- a/app/World.php +++ b/app/World.php @@ -1005,7 +1005,7 @@ public function writeToRom(Rom $rom, bool $save = false): Rom } } - if ($this->config('mode.state') == 'standard') { + if ($this->config('mode.state') === 'standard') { $this->setEscapeFills($rom); } From f0c4f36e69c5de35630489642a93c6a90e40a570 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sat, 5 Jun 2021 12:32:44 -0500 Subject: [PATCH 42/59] recommended security fixes from npm --- package-lock.json | 117 +++++++++++++++++----------------------------- 1 file changed, 43 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index 81ca6170f..a2cebf6cd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5149,15 +5149,24 @@ } }, "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "dependencies": { + "caniuse-lite": { + "version": "1.0.30001234", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001234.tgz", + "integrity": "sha512-a3gjUVKkmwLdNysa1xkUAwN2VfJUJyVW47rsi3aCbkRCtbHAfo+rOsCqVw29G6coQ8gzAPb5XBXwiGHwme3isA==", + "dev": true + } } }, "bs-logger": { @@ -5678,6 +5687,12 @@ "simple-swizzle": "^0.2.2" } }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -6826,9 +6841,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.455", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.455.tgz", - "integrity": "sha512-4lwnxp+ArqOX9hiLwLpwhfqvwzUHFuDgLz4NTiU3lhygUzWtocIJ/5Vix+mWVNE2HQ9aI1k2ncGe5H/0OktMvA==", + "version": "1.3.749", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz", + "integrity": "sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A==", "dev": true }, "elliptic": { @@ -7028,6 +7043,12 @@ "through": "~2.3.6" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -8100,15 +8121,6 @@ } } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, "findup-sync": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", @@ -12540,16 +12552,6 @@ "lie": "3.1.1" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -13149,9 +13151,9 @@ } }, "node-releases": { - "version": "1.1.57", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", - "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==", + "version": "1.1.72", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", + "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==", "dev": true }, "nopt": { @@ -13527,24 +13529,6 @@ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", "dev": true }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -13569,12 +13553,6 @@ "retry": "^0.12.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -13840,15 +13818,6 @@ } } }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", @@ -16242,9 +16211,9 @@ } }, "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.1.tgz", + "integrity": "sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw==", "dev": true, "requires": { "figgy-pudding": "^3.5.1", @@ -18672,9 +18641,9 @@ } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "whatwg-encoding": { @@ -18808,9 +18777,9 @@ } }, "ws": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", - "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true }, "xml-name-validator": { From bbc95580653d4213d7c7706f59e79a103b5e4ee4 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Sun, 6 Jun 2021 15:21:00 +1000 Subject: [PATCH 43/59] Fix silvers hint --- app/Randomizer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Randomizer.php b/app/Randomizer.php index b8c4d2b8e..9822a2bd2 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -972,7 +972,7 @@ public function setTexts(World $world) } } // Remove Hint in Hard+ Item Pool - if ($world->config('item.overflow.count.Bow') < 2) { + if ($world->config('item.overflow.count.Bow', 2) < 2) { $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows on\nPlanet Zebes?"); $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows on\nPlanet Zebes?"); // Special No Silvers "Hint" for Crowd Control From 2eaaa98913fbafbd518a3003000ed630de6b5b0d Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Mon, 7 Jun 2021 21:01:13 -0500 Subject: [PATCH 44/59] refactor silvers hint so it's all together in one, nice package --- app/Randomizer.php | 50 +++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/Randomizer.php b/app/Randomizer.php index 9822a2bd2..594f5dc72 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -928,28 +928,17 @@ public function setTexts(World $world) $world->setText('ganon_phase_3_alt', "Got wax in\nyour ears?\nI cannot die!"); + // bow hint and handling + // @todo this swap of item really shouldn't happen here, we don't know + // for sure that the items haven't already been written to the ROM. $silver_arrows_location = $world->getLocationsWithItem(Item::get('SilverArrowUpgrade', $world))->first(); if (!$silver_arrows_location) { $silver_arrows_location = $world->getLocationsWithItem(Item::get('BowAndSilverArrows', $world))->first(); } - if (!$silver_arrows_location) { - $world->setText('ganon_phase_3_no_silvers', Arr::first(fy_shuffle($strings['ganon_phase_3_no_silvers']))); - } else { - switch ($silver_arrows_location->getRegion()->getName()) { - case "Ganons Tower": - $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows in\nMy tower?"); - break; - default: - $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows in\n" . $silver_arrows_location->getRegion()->getName()); - } - } - - // progressive bow hint and handling - // @todo this swap of item really shouldn't happen here, we don't know - // for sure that the items haven't already been written to the ROM. $progressive_bow_locations = $world->getLocationsWithItem(Item::get('ProgressiveBow', $world))->randomCollection(2); - if ($progressive_bow_locations->count() > 0) { + + if ($progressive_bow_locations->count() >= 2 && $world->config('item.overflow.count.Bow', 2) >= 2) { $first_location = $progressive_bow_locations->pop(); switch ($first_location->getRegion()->getName()) { case "Ganons Tower": @@ -971,16 +960,27 @@ public function setTexts(World $world) $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\n" . $second_location->getRegion()->getName()); } } - // Remove Hint in Hard+ Item Pool - if ($world->config('item.overflow.count.Bow', 2) < 2) { - $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows on\nPlanet Zebes?"); - $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows on\nPlanet Zebes?"); - // Special No Silvers "Hint" for Crowd Control - if ($world->config('item.pool') == 'crowd_control') { - $world->setText('ganon_phase_3_no_silvers', "Chat said no\nto Silvers.\nIt's over Hero"); - $world->setText('ganon_phase_3_no_silvers_alt', "Chat said no\nto Silvers.\nIt's over Hero"); - } + Log::info("progresisve silvers hint"); + } elseif ($silver_arrows_location) { + switch ($silver_arrows_location->getRegion()->getName()) { + case "Ganons Tower": + $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows in\nMy tower?"); + $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\nMy tower?"); + break; + default: + $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows in\n" . $silver_arrows_location->getRegion()->getName()); + $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\n" . $silver_arrows_location->getRegion()->getName()); } + Log::info("normal silvers hint"); + } else { + $fake_silvers_hint = Arr::first(fy_shuffle($strings['ganon_phase_3_no_silvers'])); + if ($world->config('item.pool', 'normal') === 'crowd_control') { + $fake_silvers_hint = "Chat said no\nto Silvers.\nIt's over Hero"; + } + + $world->setText('ganon_phase_3_no_silvers', $fake_silvers_hint); + $world->setText('ganon_phase_3_no_silvers_alt', $fake_silvers_hint); + Log::info("fake silvers hint: $fake_silvers_hint"); } if ($world->config('crystals.tower') < 7) { From 2133ee89abd0e5c96af271fb4b1f9eedfac49995 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Mon, 7 Jun 2021 21:05:50 -0500 Subject: [PATCH 45/59] remove debug logging messages --- app/Randomizer.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/Randomizer.php b/app/Randomizer.php index 594f5dc72..beed2ab24 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -960,7 +960,6 @@ public function setTexts(World $world) $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\n" . $second_location->getRegion()->getName()); } } - Log::info("progresisve silvers hint"); } elseif ($silver_arrows_location) { switch ($silver_arrows_location->getRegion()->getName()) { case "Ganons Tower": @@ -971,7 +970,6 @@ public function setTexts(World $world) $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows in\n" . $silver_arrows_location->getRegion()->getName()); $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\n" . $silver_arrows_location->getRegion()->getName()); } - Log::info("normal silvers hint"); } else { $fake_silvers_hint = Arr::first(fy_shuffle($strings['ganon_phase_3_no_silvers'])); if ($world->config('item.pool', 'normal') === 'crowd_control') { @@ -980,7 +978,6 @@ public function setTexts(World $world) $world->setText('ganon_phase_3_no_silvers', $fake_silvers_hint); $world->setText('ganon_phase_3_no_silvers_alt', $fake_silvers_hint); - Log::info("fake silvers hint: $fake_silvers_hint"); } if ($world->config('crystals.tower') < 7) { From 681bdfbbf4106acf79ce29ae194007cc07d676a2 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Tue, 8 Jun 2021 10:15:09 -0500 Subject: [PATCH 46/59] removing unnecessary condition --- app/Randomizer.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/Randomizer.php b/app/Randomizer.php index beed2ab24..d6ca14a7b 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -950,15 +950,13 @@ public function setTexts(World $world) // Progressive Bow Alternate $first_location->setItem(new Item\Bow('ProgressiveBow', [0x65], $world)); - if ($progressive_bow_locations->count() > 0) { - $second_location = $progressive_bow_locations->pop(); - switch ($second_location->getRegion()->getName()) { - case "Ganons Tower": - $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\nMy tower?"); - break; - default: - $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\n" . $second_location->getRegion()->getName()); - } + $second_location = $progressive_bow_locations->pop(); + switch ($second_location->getRegion()->getName()) { + case "Ganons Tower": + $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\nMy tower?"); + break; + default: + $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\n" . $second_location->getRegion()->getName()); } } elseif ($silver_arrows_location) { switch ($silver_arrows_location->getRegion()->getName()) { From 36c24af0e4a58eec6b2428f2bbf03e47cee3d177 Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Thu, 10 Jun 2021 20:31:23 -0400 Subject: [PATCH 47/59] Added --quickswap CLI option. --- app/Console/Commands/Randomize.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Console/Commands/Randomize.php b/app/Console/Commands/Randomize.php index f239a9546..64c27186b 100644 --- a/app/Console/Commands/Randomize.php +++ b/app/Console/Commands/Randomize.php @@ -45,7 +45,8 @@ class Randomize extends Command . ' {--accessibility=item : set item/location accessibility}' . ' {--hints=on : set hints on or off}' . ' {--item_pool=normal : set item pool}' - . ' {--item_functionality=normal : set item functionality}'; + . ' {--item_functionality=normal : set item functionality}' + . ' {--quickswap=false : set quickswap}'; /** * The console command description. @@ -138,6 +139,10 @@ public function handle() $rom->setHeartBeepSpeed($this->option('heartbeep')); } + if(is_string($this->option('quickswap'))) { + $rom->setQuickSwap(strtolower($this->option('quickswap')) === 'true'); + } + // break out for unrandomized base game if ($this->option('unrandomized')) { $output_file = sprintf('%s/alttp-%s.sfc', $this->argument('output_directory'), Rom::BUILD); From 5274e20a6f778650114351df99338d0d8279fc3c Mon Sep 17 00:00:00 2001 From: Doctor Blue <47405668+DoctorBlue@users.noreply.github.com> Date: Thu, 10 Jun 2021 21:24:51 -0400 Subject: [PATCH 48/59] Save Starting Equip Heart on click. Using native, as regular @click doesn't seem to work. --- resources/js/components/Customizer/EquipmentSelect.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/js/components/Customizer/EquipmentSelect.vue b/resources/js/components/Customizer/EquipmentSelect.vue index 392c68c7d..840c54a18 100644 --- a/resources/js/components/Customizer/EquipmentSelect.vue +++ b/resources/js/components/Customizer/EquipmentSelect.vue @@ -231,6 +231,7 @@
          Date: Sat, 12 Jun 2021 11:01:40 -0500 Subject: [PATCH 49/59] revert link sprite changes as they were causing problems --- app/Http/Controllers/SettingsController.php | 11 ----- resources/js/components/VTSpriteSelect.vue | 52 ++++++++++----------- 2 files changed, 25 insertions(+), 38 deletions(-) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index e35232044..60c2beba9 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -211,17 +211,6 @@ public function rom(): array public function sprites(): array { return collect(config('sprites'))->map(function ($info, $file) { - if ($file === '001.link.1.zspr') { - return [ - 'name' => $info['name'], - 'author' => $info['author'], - 'version' => $info['version'], - 'file' => null, - 'preview' => null, - 'tags' => $info['tags'] ?? [], - 'usage' => $info['usage'] ?? [] - ]; - } return [ 'name' => $info['name'], 'author' => $info['author'], diff --git a/resources/js/components/VTSpriteSelect.vue b/resources/js/components/VTSpriteSelect.vue index 5ec74e46d..0fa8db757 100644 --- a/resources/js/components/VTSpriteSelect.vue +++ b/resources/js/components/VTSpriteSelect.vue @@ -96,7 +96,7 @@ export default { } vm.$emit('load-custom-sprite', false); - while (pickedSprite.name === "Random") { + while (pickedSprite.file === null) { pickedSprite = vm.sprites[Math.floor(Math.random() * vm.sprites.length)]; } @@ -108,32 +108,30 @@ export default { resolve(spr); return; } - if (pickedSprite.name !== "Link") { - axios - .get(pickedSprite.file, { - transformRequest: [ - (data, headers) => { - delete headers.common; - return data; - } - ], - responseType: "arraybuffer" - }) - .then(response => { - var spr_array = new Uint8Array(response.data); - localforage - .setItem("vt_sprites." + sprite_name, spr_array) - .then(function(spr) { - resolve(spr); - }) - .catch(function() { - reject("could not save sprite to local storage"); - }); - }) - .catch(function() { - reject("cannot find sprite file"); - }); - } + axios + .get(pickedSprite.file, { + transformRequest: [ + (data, headers) => { + delete headers.common; + return data; + } + ], + responseType: "arraybuffer" + }) + .then(response => { + var spr_array = new Uint8Array(response.data); + localforage + .setItem("vt_sprites." + sprite_name, spr_array) + .then(function(spr) { + resolve(spr); + }) + .catch(function() { + reject("could not save sprite to local storage"); + }); + }) + .catch(function() { + reject("cannot find sprite file"); + }); }); }).then(rom.parseSprGfx.bind(rom)); } From 73e0d979e63b7b87a105809e673b9a6b14c2fadf Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sat, 12 Jun 2021 11:10:07 -0500 Subject: [PATCH 50/59] update ES i18n --- resources/lang/en/races.php | 26 ++++++++++-- resources/lang/es/races.php | 83 +++++++++++++++++++++++++------------ 2 files changed, 79 insertions(+), 30 deletions(-) diff --git a/resources/lang/en/races.php b/resources/lang/en/races.php index 236748d82..a6663e9c1 100644 --- a/resources/lang/en/races.php +++ b/resources/lang/en/races.php @@ -131,13 +131,31 @@ ], ], [ - 'header' => 'Spanish', - 'description' => 'Something about the community here.', + 'header' => 'Español', + 'description' => 'Unete la comunidad Hispano-Hablante.', 'sections' => [ [ - 'header' => 'Placeholder Tournament', + 'header' => 'Unete al Discord', 'content' => [ - 'The Placeholder Tournament is one I hope doesn’t actually exist, except in our hearts.', + 'Unete al Discord de Alttpr-ES donde podras seguir todo lo referente a esta comunidad, o encontrar alguien para jugar una carrera en cualquier momento.', + ], + ], + [ + 'header' => 'Torneo Comunidad Hispano-Hablante', + 'content' => [ + 'Unete a nuestro torneo anual de la comunidad hispano-hablante, un buen momento para jugar, comentar o pasar un buen rato haciendo amigos.', + ], + ], + [ + 'header' => 'Carreras Semanales', + 'content' => [ + 'Participa en nuestras carreras semanales en colaboración con SpeedgamingEspañol. El sitio perfecto para iniciarte en retransmisión de carreras ya sea jugando, comentando, trackeando o en el chat entre amigos.', + ], + ], + [ + 'header' => 'Carreras Asíncronas', + 'content' => [ + 'En nuestro Discord también podras encontrar carreras Semanales Asíncronas que puedes hacer como y cuando quieras, pudiendo así compararte con miembros de la comunidad, la mejor forma de empezar a correr Randomizer con otra gente.', ], ], ], diff --git a/resources/lang/es/races.php b/resources/lang/es/races.php index ea89216d5..0ac1bde8d 100644 --- a/resources/lang/es/races.php +++ b/resources/lang/es/races.php @@ -9,85 +9,98 @@ [ 'header' => '', 'content' => [ - 'La mayoría de las carreras se realizan a través de RaceTime.gg. ¡Asegúrate de visitar la página para tener más informacion de cómo unirse a la acción!', - 'Antes de empezar, deberías familiarizarte con las Reglas Generales de Carrera del Consejo de ALTTPR. Sin embargo, ten en cuenta que las reglas quedan sujetas siempre a modificaciones y actualizaciones posteriores. Además, cada torneo o carrera particular puede que aplique sus propias variaciones de la normativa, ¡así que comprueba las reglas de cada competición con antelación para asegurarte de que todo está en orden!', + 'La Mayoría de las carreras seran en RaceTime.gg. ¡Asegurate de pasarte por ahi para tener mas informacion de como pasar a la acción!', + 'Antes de empezar deberias familiarizarte con las Reglas Generales de Carrera del Consejo de ALTTPR, sin embargo, cada torneo o carreras puede tener reglas que varíen. however individual tournaments or races may have rules that vary. ¡Comprueba con cada competición primero para asegurarte que todo esta bien!', ], ], [ 'header' => 'ALTTPR Ladder', 'content' => [ - 'La Ladder de ALTTPR es un sistema competitivo rankeado que utiliza el sistema de puntuación Elo. Funciona completamente por Discord. Para participar, has de unirte a la cola antes de la hora de inicio, al modo de partida que decidas y que esté disponible. Entonces serás emparejado con un rival de manera anónima en una partida 1v1. Dispondrás de un tiempo para bajarte la seed correspondiente y completarla, y al acabar marcar que has finalizado. Según ganes o pierdas, ganarás o perderás más puntos según cuál sea la diferencia de puntos entre tu oponente y tú. El sistema esta diseñado para que ocurran varias carreras 1v1 a lo largo del día, ofrenciendo una gran variedad de horas a las que poder jugar. Los rankings, una vez finalice el tiempo establecido de la temporada de la ladder, se basan en pesos estandar de Elo 32K.', + 'ALTTPR Ladder es un sistema de Ladder o Escalera por Elo 1v1, una liga de "A Link To the Past Randomizer", que funciona completamente por Discord. El sistema esta diseñado para que ocurran varias carreras 1v1 a lo largo del día, y los rankings se basan en pesos estandar de Elo 32K.', ], ], [ - 'header' => 'Carreras Diarias de SpeedGaming', + 'header' => 'SpeedGaming Carreras Diarias', 'content' => [ - 'SpeedGaming realiza una carrera diaria oficial, en horas preestablecidas con antelación, que funcionan a través de RaceTime.gg. La normativa y ajustes de la seed varían con cada carrera, y lo único necesario para participar es unirse, como mínimo, unos minutos antes de que empiece la carrera al racetime.gg correspondiente. Aquí podrás encontrar los horarios de las inminentes carreras diarias.', + 'SpeedGaming opera carreras diarias, que funcionan en RaceTime.gg. En podrás encontrar cuando es la siguiente carrera diaria.', ], ], [ - 'header' => 'Semanal de Overworld Glitches', + 'header' => 'Overworld Glitches Semanal', 'content' => [ - 'La semanal de Overworld, o Glitches de Mundo Abierto, se lleva a cabo a las 10:30pm EDT cada miércoles en RaceTime.gg.', + 'La semanal de Overworld Glitches Weekly o Glitches de Mundo Abierto es a las 10:30pm EDT cada Miercoles en RaceTime.gg.', ], ], [ 'header' => 'Carreras Improvisadas', 'content' => [ - '¿Las carreras ya planeadas no encajan en tu agenda? ¿O buscas a alguien contra quien correr con opciones o ajustes menos comunes? ¡Únete a una carrera improvisada! Encontrarás jugadores dispuestos a jugar a cualquier hora del día. Comprueba el canal #race-planning en nuestro Discord para saber qué se está organizando.', + '¿Las Carreras Planeadas no encajan en tu agenda? ¿Buscas alguien contra quien correr opciones menos comunes? ¡Unete a una carrera improvisada! Encontraras jugadores dispuesto a cualquier hora del dia. Unete al canal #race-planning en nuestro Discord!', ], ], ], ], + 'watch' => [ + 'header' => 'Especta', + 'content' => [ + 'Con tantas cosas pasando a la vez, ¡siempre hay algo que ver! ¡Sigue estas redes y nunca te pierdas una carrera!', + ], + ], + 'network' => [ + 'header' => 'Plataformas de Carreras', + 'content' => [ + 'Las carreras normalmente se hacen una plafatorma de Carreras.Estas paginas facilitan organizar carreras, aportando un timer oficial, y facilitando tanto a corredores como espectadores encontrar carreras.', + 'Asegurate de echarle un vistazo a RaceTime.gg!', + ], + ], 'tournament' => [ 'header' => 'Torneos', 'sections' => [ [ 'header' => '', 'content' => [ - '¡Únete a otros jugadores en la emocionante experiencia de participar en un torneo de ALTTPR, con comentaristas expertos y jugadores de élite! Hay torneos operando todo el tiempo: únete a Discord para estar al día.', + '¡Unete a nosotros en emocionante accion de torneo con comentario experto y jugadores de elite! Hay torneos operando todo el tiempo, ¡unete a Discord para estar al dia!', ], ], [ 'header' => 'ALTTP Randomizer Torneo Principal', 'content' => [ - '¡Sé testigo y partícipe de cómo los mejores corredores compiten en el torneo más importante del año por el trofeo, la gloria y llegar a ganar un puesto en la Baldosa Telepatica de Houlihan! ¿Crees que tienes lo que hace falta para competir con los mejores? Únete a ALTTPR Tournaments Discord y estate atento a carreras clasificatorias!', + '¡Se testigo de los mejores corredores compitiendo por el trofeo y ganar para si mismos el preciado sitio en la Baldosa Telepatica de Houlihan! ¿Crees que tienes lo que hace falta para competir con los mejoreS? Unete a ALTTPR Tournaments Discord y estate atento a carreras clasificatorias!', ], ], [ - 'header' => 'Copa Desafío', + 'header' => 'Copa Desafio', 'content' => [ - 'La Copa Desafío es un torneo complementario para aquellos que no logran clasificarse para la fase de grupos del torneo principal, tras las clasificatorias. Con un menor nivel, resulta ideal para aquellos que acaban de empezar o que tienen menor habilidad y experiencia. Eso sí, las partidas son igual de emocionantes que en el torneo principal, ¡no te las pierdas!', + 'La Copa Desafio es un torneo complementario para aquellos que no se clasifican para el torneo principal.', ], ], [ 'header' => 'Liga ALTTPR', 'content' => [ - 'La Liga ALTTPR es un torneo de ALTTPR por equipos anual. Los jugadores forman equipos de 3 y compiten con otros equipos en diferentes modos de juego.', + 'La Liga ALTTPR es un torneo de ALTTPR por equipos anual. Los jugadores formaran equipos de 3 y competiran otros equipos en diferentes modos de juego.', ], ], [ - 'header' => 'Torneo de Mentores del Go Mode Podcast', + 'header' => 'Go Mode Podcast Torneo de Mentores', 'content' => [ - 'Go Mode Podcast habilita un torneo anual diseñado para jugadores noveles. A cada jugador se le asigna un mentor, que ayudará y ensenará al principante los diferentes conceptos, estrategias y trucos para afrontar las carreras de la mejor manera posible, con la intencion de preparar a los jugadores para otros torneos futuros, grandes o pequeños.', + 'Go Mode Podcast opera un torneo anual diseñado para jugadores noveles. Los jugadores tienen un mentor que ayudaran con algunas de sus carreras, con la intencion de preparar a los jugadores para torneos grandes o pequeños.', ], ], [ - 'header' => 'Torneo Spoiler de ALTTPR', + 'header' => 'ALTTPR Torneo Spoiler', 'content' => [ - 'El Torneo Spoiler de ALTTPR es un torneo anual que da a los jugadores el Spoiler Log para que puedan estudiarlo antes de la carrera. Este torneo es una prueba de ejecución y toma de decisiones, pues saber elaborar la mejor ruta para obtener los objetos necesarios es la clave de la victoria.', + 'El ALTTPR Torneo Spoiler es un torneo anual que da a los jugadores el Spoiler Log para estudiar antes de la carrera. Este torneo es una prueba de ejecucion y toma de decisiones.', ], ], [ - 'header' => 'Torneo ALTTPR con Glitches', + 'header' => 'ALTTPR Torneo con Glitches', 'content' => [ - 'El Torneo de ALTTPR con Glitches se centra en modalidades que implican el uso de "glitches mayores" para terminar el juego en formas tan divertidas como inusuales.', + 'ALTTPR Glitched Tournaments se centra en torneos que implican el uso de "glitches mayores" para terminar el juego en formas tan divertidas como inusuales.', ], ], [ - 'header' => 'Torneo ALTTPR Crossworld Keysanity ', + 'header' => 'ALTTPR Torneo Crossworld Keysanity', 'content' => [ - 'El Torneo ALTTPR Crossworld Keysanity es un torneo de con entradas aleatorizadas de un mundo a otro, con Keysanity (modalidad también conocida como "Crosskeys"). Los jugadores tendrán su memoria y su habilidad de poder tomar notas puestas a prueba para ser el mejor en este alocado modo, en el que no perderse y explorar resulta decisivo.', + 'El Torneo ALTTPR Crossworld Keysanity es un torneo de Entradas Aleatorias de un mundo a otro, con Keysanity (aka"Crosskeys"). ¡Los jugadores tendran su memoria y habilidad de tomar notas puestas a prueba para ser el mejor en este alocado modo!', ], ], ], @@ -96,18 +109,36 @@ 'header' => 'Language-specific Tournaments and Events', 'languages' => [ [ - 'header' => 'Spanish', - 'description' => 'Join the Spanish Speak.', + 'header' => 'Español', + 'description' => 'Unete la comunidad Hispano-Hablante.', 'sections' => [ [ - 'header' => 'Placeholder Tournament', + 'header' => 'Unete al Discord', + 'content' => [ + 'Unete al Discord de Alttpr-ES donde podras seguir todo lo referente a esta comunidad, o encontrar alguien para jugar una carrera en cualquier momento.', + ], + ], + [ + 'header' => 'Torneo Comunidad Hispano-Hablante', + 'content' => [ + 'Unete a nuestro torneo anual de la comunidad hispano-hablante, un buen momento para jugar, comentar o pasar un buen rato haciendo amigos.', + ], + ], + [ + 'header' => 'Carreras Semanales', + 'content' => [ + 'Participa en nuestras carreras semanales en colaboración con SpeedgamingEspañol. El sitio perfecto para iniciarte en retransmisión de carreras ya sea jugando, comentando, trackeando o en el chat entre amigos.', + ], + ], + [ + 'header' => 'Carreras Asíncronas', 'content' => [ - 'The Placeholder Tournament is one I hope doesn’t actually exist, except in our hearts.', + 'En nuestro Discord también podras encontrar carreras Semanales Asíncronas que puedes hacer como y cuando quieras, pudiendo así compararte con miembros de la comunidad, la mejor forma de empezar a correr Randomizer con otra gente.', ], ], ], ], ], ], - ], + ] ]; From a5259b3617e725129439b1de3a26c2c1fabf9325 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sat, 12 Jun 2021 14:19:32 -0500 Subject: [PATCH 51/59] update ROM --- app/Rom.php | 4 +- composer.json | 6 +-- composer.lock | 118 +++----------------------------------------------- 3 files changed, 10 insertions(+), 118 deletions(-) diff --git a/app/Rom.php b/app/Rom.php index de9d0072c..deb92602f 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -12,8 +12,8 @@ */ class Rom { - const BUILD = '2021-05-22'; - const HASH = '78520fa865249324c1a0e9d13c56665e'; + const BUILD = '2021-06-12'; + const HASH = '795207a23b4d508576fd6736acf8cc94'; const SIZE = 2097152; private $tmp_file; diff --git a/composer.json b/composer.json index f12d191c4..86dec5c51 100644 --- a/composer.json +++ b/composer.json @@ -47,11 +47,11 @@ "type": "package", "package": { "name": "z3/randomizer", - "version": "31.0.9", + "version": "31.0.9.1", "source": { - "url": "https://github.com/KatDevsGames/z3randomizer", + "url": "https://github.com/tcprescott/z3randomizer", "type": "git", - "reference": "1bbf359198beb74746e6b2779c3fff0698c1b77a" + "reference": "v31.0.9-testing" } } }, diff --git a/composer.lock b/composer.lock index 0dbb7a99a..dc304caf5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "421b3caff5c672f790dfb699225fc552", + "content-hash": "eb533de3f999320695ec858008bbeab9", "packages": [ { "name": "aws/aws-sdk-php", @@ -197,16 +197,6 @@ "stream_filter_append", "stream_filter_register" ], - "funding": [ - { - "url": "https://clue.engineering/support", - "type": "custom" - }, - { - "url": "https://github.com/clue", - "type": "github" - } - ], "time": "2019-04-09T12:31:48+00:00" }, { @@ -743,20 +733,6 @@ "uppercase", "words" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], "time": "2020-05-29T15:13:26+00:00" }, { @@ -819,20 +795,6 @@ "parser", "php" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], "time": "2020-05-25T17:44:05+00:00" }, { @@ -1112,20 +1074,6 @@ "laravel", "markdown" ], - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://www.patreon.com/GrahamJCampbell", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/markdown", - "type": "tidelift" - } - ], "time": "2020-04-14T14:11:12+00:00" }, { @@ -6068,21 +6016,7 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/polyfill-php73", @@ -7027,11 +6961,11 @@ }, { "name": "z3/randomizer", - "version": "31.0.9", + "version": "31.0.9.1", "source": { "type": "git", - "url": "https://github.com/KatDevsGames/z3randomizer", - "reference": "1bbf359198beb74746e6b2779c3fff0698c1b77a" + "url": "https://github.com/tcprescott/z3randomizer", + "reference": "v31.0.9-testing" }, "type": "library" } @@ -7600,20 +7534,6 @@ "constructor", "instantiate" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], "time": "2020-05-29T17:27:14+00:00" }, { @@ -8652,20 +8572,6 @@ "php", "static analysis" ], - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], "time": "2020-05-06T08:56:49+00:00" }, { @@ -8750,20 +8656,6 @@ "quality", "source" ], - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], "time": "2020-03-10T20:43:15+00:00" }, { From f825c28f57cd0941020b8ec99fbcab9f3b04d0f0 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sat, 12 Jun 2021 15:25:19 -0500 Subject: [PATCH 52/59] update change log --- resources/views/updates.blade.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index e91a3a24b..82ac9dae7 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -7,6 +7,7 @@
          • New post-generation option called "Reduce Flashing" has been added. Thanks Cassidymoen!
          • The credits have been updated to include additional individuals we want to recognize for their contributions to this project.
          • +
          • The speed of the epilogue and credits can be increased to four times normal by pressing and holding X.
          • The author of the sprite you're using will now appear in the end credits.
          • When underworld clips are enabled, a new line will appear in the menu indicating what bosses have been defeated.
          • The bottles now work like other items that share an inventory space when using Quickswap. Press L+R to swap bottles.
          • @@ -18,6 +19,9 @@
          • Bot authors may now specify a game name and notes in API requests to /api/randomizer
          • A new "Random" option was added for the heart color. Thanks Doctor Blue!
          • Ganon will now say something New and Unique™ when Silver Arrows are unavailable.
          • +
          • MSU-1: The track playing in the overworld will now resume where it left off when returning to the overworld, assuming the same track is playing. Thanks Bonta!
          • +
          • Customizer: Fixes a bug that prevented a change in starting hearts to be saved if you click on the slider instead of dragging the slider.
          • +
          • Low health beeping will no longer occur if your max health is 1 or 2 hearts. Once you have at least three hearts, the normal beeping behavior will occur.
          • Miscellaneous website updates.
          • Added new player options
            Date: Sat, 12 Jun 2021 15:33:35 -0500 Subject: [PATCH 53/59] revert rom update --- app/Rom.php | 4 +- composer.json | 6 +-- composer.lock | 118 +++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 118 insertions(+), 10 deletions(-) diff --git a/app/Rom.php b/app/Rom.php index deb92602f..de9d0072c 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -12,8 +12,8 @@ */ class Rom { - const BUILD = '2021-06-12'; - const HASH = '795207a23b4d508576fd6736acf8cc94'; + const BUILD = '2021-05-22'; + const HASH = '78520fa865249324c1a0e9d13c56665e'; const SIZE = 2097152; private $tmp_file; diff --git a/composer.json b/composer.json index 86dec5c51..f12d191c4 100644 --- a/composer.json +++ b/composer.json @@ -47,11 +47,11 @@ "type": "package", "package": { "name": "z3/randomizer", - "version": "31.0.9.1", + "version": "31.0.9", "source": { - "url": "https://github.com/tcprescott/z3randomizer", + "url": "https://github.com/KatDevsGames/z3randomizer", "type": "git", - "reference": "v31.0.9-testing" + "reference": "1bbf359198beb74746e6b2779c3fff0698c1b77a" } } }, diff --git a/composer.lock b/composer.lock index dc304caf5..0dbb7a99a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "eb533de3f999320695ec858008bbeab9", + "content-hash": "421b3caff5c672f790dfb699225fc552", "packages": [ { "name": "aws/aws-sdk-php", @@ -197,6 +197,16 @@ "stream_filter_append", "stream_filter_register" ], + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], "time": "2019-04-09T12:31:48+00:00" }, { @@ -733,6 +743,20 @@ "uppercase", "words" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], "time": "2020-05-29T15:13:26+00:00" }, { @@ -795,6 +819,20 @@ "parser", "php" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], "time": "2020-05-25T17:44:05+00:00" }, { @@ -1074,6 +1112,20 @@ "laravel", "markdown" ], + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://www.patreon.com/GrahamJCampbell", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/markdown", + "type": "tidelift" + } + ], "time": "2020-04-14T14:11:12+00:00" }, { @@ -6016,7 +6068,21 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/polyfill-php73", @@ -6961,11 +7027,11 @@ }, { "name": "z3/randomizer", - "version": "31.0.9.1", + "version": "31.0.9", "source": { "type": "git", - "url": "https://github.com/tcprescott/z3randomizer", - "reference": "v31.0.9-testing" + "url": "https://github.com/KatDevsGames/z3randomizer", + "reference": "1bbf359198beb74746e6b2779c3fff0698c1b77a" }, "type": "library" } @@ -7534,6 +7600,20 @@ "constructor", "instantiate" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], "time": "2020-05-29T17:27:14+00:00" }, { @@ -8572,6 +8652,20 @@ "php", "static analysis" ], + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], "time": "2020-05-06T08:56:49+00:00" }, { @@ -8656,6 +8750,20 @@ "quality", "source" ], + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], "time": "2020-03-10T20:43:15+00:00" }, { From b28a003c7bc041ee9807acae67417f1a5eaff002 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sat, 12 Jun 2021 22:31:43 -0500 Subject: [PATCH 54/59] update patch notes --- resources/views/updates.blade.php | 56 +++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index 82ac9dae7..88bc7bbd8 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -5,24 +5,44 @@

            v31.0.9

              -
            • New post-generation option called "Reduce Flashing" has been added. Thanks Cassidymoen!
            • -
            • The credits have been updated to include additional individuals we want to recognize for their contributions to this project.
            • -
            • The speed of the epilogue and credits can be increased to four times normal by pressing and holding X.
            • -
            • The author of the sprite you're using will now appear in the end credits.
            • -
            • When underworld clips are enabled, a new line will appear in the menu indicating what bosses have been defeated.
            • -
            • The bottles now work like other items that share an inventory space when using Quickswap. Press L+R to swap bottles.
            • -
            • The website will now, by default, generate games where Quickswap is allowed. This can still be disabled via the API.
            • -
            • Finding a map in Hyrule Castle will now properly show the map on your item menu while in the Sewers section of Hyrule Castle.
            • -
            • Enemizer: Firebars will now only damage the player if the firebar is on the same layer as Link.
            • -
            • Customizer: Will now default to enabling spoilers on generated games. This can still be set to Disabled, On Generate, or Mystery as needed.
            • -
            • Overworld YBA now puts Moon Pearl-less access to Ganon in logic
            • -
            • Bot authors may now specify a game name and notes in API requests to /api/randomizer
            • -
            • A new "Random" option was added for the heart color. Thanks Doctor Blue!
            • -
            • Ganon will now say something New and Unique™ when Silver Arrows are unavailable.
            • -
            • MSU-1: The track playing in the overworld will now resume where it left off when returning to the overworld, assuming the same track is playing. Thanks Bonta!
            • -
            • Customizer: Fixes a bug that prevented a change in starting hearts to be saved if you click on the slider instead of dragging the slider.
            • -
            • Low health beeping will no longer occur if your max health is 1 or 2 hearts. Once you have at least three hearts, the normal beeping behavior will occur.
            • -
            • Miscellaneous website updates.
            • +
            • New Features
            • +
                +
              • New post-generation option called "Reduce Flashing" has been added. Thanks Cassidymoen!
              • +
              • The credits have been updated to include additional individuals we want to recognize for their contributions to this project.
              • +
              • The speed of the epilogue and credits can be increased to four times normal by pressing and holding X.
              • +
                  +
                • You may experience some minor graphical glitches when using this feature. This is a known issue due to technical limitations.
                • +
                • Music will play at normal speed, and sprites will still move at normal speed. This feature only increases the speed of camera scrolling.
                • +
                +
              • The author of the sprite you're using will now appear in the end credits.
              • +
              • When underworld clips are enabled, a new line will appear in the menu indicating what bosses have been defeated.
              • +
              • The bottles now work like other items that share an inventory space when using Quickswap. Press L+R to swap bottles.
              • +
              • Bot authors may now specify a game name and notes in API requests to /api/randomizer
              • +
              • A new "Random" option was added for the heart color. Thanks Doctor Blue!
              • +
              • Ganon will now say something Original and Funny™ when Silver Arrows are unavailable.
              • +
              • The MSU-1 track playing in the overworld will now resume where it left off when returning to the overworld, assuming the same track is playing. Thanks Bonta!
              • +
                  +
                • Not every platform will support this feature. This feature is known to work on the latest sd2snes/Fxpak firmware, the latest version of Snes9X (and any emulator frontends that use Snes9X). Revision 2 of MSU-1 is required.
                • +
                +
              +
            • Bug Fixes
            • +
                +
              • Finding a map in Hyrule Castle will now properly show the map on your item menu while in the Sewers section of Hyrule Castle.
              • +
              • Enemizer: Firebars will now only damage the player if the firebar is on the same layer as Link.
              • +
              • Customizer: Fixes a bug that prevented a change in starting hearts to be saved if you click on the slider instead of dragging the slider. Thanks Dr. Blue!
              • +
              • Low health beeping will no longer occur if your max health is 1 or 2 hearts. Once you have at least three hearts, the normal beeping behavior will occur.
              • +
              +
            • Other changes
            • +
                +
              • The website will now, by default, generate games where Quickswap is allowed. This can still be disabled via the API.
              • +
              • Customizer: Will now default to enabling spoilers on generated games. This can still be set to Disabled, On Generate, or Mystery as needed.
              • +
              • Overworld YBA now puts Moon Pearl-less access to Ganon in logic
              • +
              +
            • Website content updates
            • +
                +
              • Overhauled the Organized Play page to include better information on all major competitive play.
              • +
              • Fixed item pool information on the Game Options page.
              • +
            • Added new player options
              Link sprite options
            • From 2056c377eb6392c0030150f60b54b780433096b6 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sun, 13 Jun 2021 17:46:34 -0500 Subject: [PATCH 55/59] update rom --- app/Rom.php | 4 +- composer.json | 2 +- composer.lock | 114 ++------------------------------------------------ 3 files changed, 6 insertions(+), 114 deletions(-) diff --git a/app/Rom.php b/app/Rom.php index de9d0072c..b24116c09 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -12,8 +12,8 @@ */ class Rom { - const BUILD = '2021-05-22'; - const HASH = '78520fa865249324c1a0e9d13c56665e'; + const BUILD = '2021-06-13'; + const HASH = 'd537af6511f3b5a23c48f212652b9661'; const SIZE = 2097152; private $tmp_file; diff --git a/composer.json b/composer.json index f12d191c4..a5c694e0d 100644 --- a/composer.json +++ b/composer.json @@ -51,7 +51,7 @@ "source": { "url": "https://github.com/KatDevsGames/z3randomizer", "type": "git", - "reference": "1bbf359198beb74746e6b2779c3fff0698c1b77a" + "reference": "2276b5782a3f1ba668c7df289fd8571e6adbf0ed" } } }, diff --git a/composer.lock b/composer.lock index 0dbb7a99a..c20625379 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "421b3caff5c672f790dfb699225fc552", + "content-hash": "8f3cc7720e7fb557a57da221582a747e", "packages": [ { "name": "aws/aws-sdk-php", @@ -197,16 +197,6 @@ "stream_filter_append", "stream_filter_register" ], - "funding": [ - { - "url": "https://clue.engineering/support", - "type": "custom" - }, - { - "url": "https://github.com/clue", - "type": "github" - } - ], "time": "2019-04-09T12:31:48+00:00" }, { @@ -743,20 +733,6 @@ "uppercase", "words" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], "time": "2020-05-29T15:13:26+00:00" }, { @@ -819,20 +795,6 @@ "parser", "php" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], "time": "2020-05-25T17:44:05+00:00" }, { @@ -1112,20 +1074,6 @@ "laravel", "markdown" ], - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://www.patreon.com/GrahamJCampbell", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/markdown", - "type": "tidelift" - } - ], "time": "2020-04-14T14:11:12+00:00" }, { @@ -6068,21 +6016,7 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/polyfill-php73", @@ -7031,7 +6965,7 @@ "source": { "type": "git", "url": "https://github.com/KatDevsGames/z3randomizer", - "reference": "1bbf359198beb74746e6b2779c3fff0698c1b77a" + "reference": "2276b5782a3f1ba668c7df289fd8571e6adbf0ed" }, "type": "library" } @@ -7600,20 +7534,6 @@ "constructor", "instantiate" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], "time": "2020-05-29T17:27:14+00:00" }, { @@ -8652,20 +8572,6 @@ "php", "static analysis" ], - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], "time": "2020-05-06T08:56:49+00:00" }, { @@ -8750,20 +8656,6 @@ "quality", "source" ], - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], "time": "2020-03-10T20:43:15+00:00" }, { From ef06648e21d30b4c003f9edecfbe9ee873101696 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sun, 13 Jun 2021 17:57:33 -0500 Subject: [PATCH 56/59] updates --- resources/views/updates.blade.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index 88bc7bbd8..3416af61f 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -9,20 +9,20 @@
              • New post-generation option called "Reduce Flashing" has been added. Thanks Cassidymoen!
              • The credits have been updated to include additional individuals we want to recognize for their contributions to this project.
              • -
              • The speed of the epilogue and credits can be increased to four times normal by pressing and holding X.
              • +
              • The speed of the epilogue and credits can be increased 4x the normal speed by pressing and holding X.
                • You may experience some minor graphical glitches when using this feature. This is a known issue due to technical limitations.
                • Music will play at normal speed, and sprites will still move at normal speed. This feature only increases the speed of camera scrolling.
              • The author of the sprite you're using will now appear in the end credits.
              • When underworld clips are enabled, a new line will appear in the menu indicating what bosses have been defeated.
              • -
              • The bottles now work like other items that share an inventory space when using Quickswap. Press L+R to swap bottles.
              • +
              • The bottles now work like other items that share an inventory space when using Quickswap. Press L+R to swap bottles. Thanks kedNalatacId!
              • Bot authors may now specify a game name and notes in API requests to /api/randomizer
              • A new "Random" option was added for the heart color. Thanks Doctor Blue!
              • Ganon will now say something Original and Funny™ when Silver Arrows are unavailable.
              • The MSU-1 track playing in the overworld will now resume where it left off when returning to the overworld, assuming the same track is playing. Thanks Bonta!
                • -
                • Not every platform will support this feature. This feature is known to work on the latest sd2snes/Fxpak firmware, the latest version of Snes9X (and any emulator frontends that use Snes9X). Revision 2 of MSU-1 is required.
                • +
                • Not every platform will support this feature. This feature is known to work on the latest sd2snes/Fxpak, Snes9X, and bsnes/higan. Revision 2 of MSU-1 is required.
            • Bug Fixes
            • @@ -42,6 +42,7 @@
              • Overhauled the Organized Play page to include better information on all major competitive play.
              • Fixed item pool information on the Game Options page.
              • +
              • Removed or replaced other out of date community information still present on the site.
            • Added new player options
              Date: Tue, 15 Jun 2021 17:56:33 -0500 Subject: [PATCH 57/59] update ROM build --- app/Rom.php | 4 ++-- composer.json | 2 +- composer.lock | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Rom.php b/app/Rom.php index b24116c09..03f6618c8 100644 --- a/app/Rom.php +++ b/app/Rom.php @@ -12,8 +12,8 @@ */ class Rom { - const BUILD = '2021-06-13'; - const HASH = 'd537af6511f3b5a23c48f212652b9661'; + const BUILD = '2021-06-14'; + const HASH = 'ecca7473031de4b4e1d9994874a3e80c'; const SIZE = 2097152; private $tmp_file; diff --git a/composer.json b/composer.json index a5c694e0d..c02809b42 100644 --- a/composer.json +++ b/composer.json @@ -51,7 +51,7 @@ "source": { "url": "https://github.com/KatDevsGames/z3randomizer", "type": "git", - "reference": "2276b5782a3f1ba668c7df289fd8571e6adbf0ed" + "reference": "d0fbd11d0f6c5b2a45ee20deb0a87a925592c93a" } } }, diff --git a/composer.lock b/composer.lock index c20625379..70d964bee 100644 --- a/composer.lock +++ b/composer.lock @@ -6965,7 +6965,7 @@ "source": { "type": "git", "url": "https://github.com/KatDevsGames/z3randomizer", - "reference": "2276b5782a3f1ba668c7df289fd8571e6adbf0ed" + "reference": "d0fbd11d0f6c5b2a45ee20deb0a87a925592c93a" }, "type": "library" } From d76d25ebc885555e98d184112f62fa8be2f86d55 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Tue, 15 Jun 2021 18:02:17 -0500 Subject: [PATCH 58/59] update sprites --- config/sprites.php | 20 +- resources/sass/_sprites.scss | 737 ++++++++++++++++++----------------- 2 files changed, 387 insertions(+), 370 deletions(-) diff --git a/config/sprites.php b/config/sprites.php index a0863708d..329bc48c2 100644 --- a/config/sprites.php +++ b/config/sprites.php @@ -1009,6 +1009,20 @@ 0 => 'smz3', ], ], + 'conker-neo.1.zspr' => [ + 'name' => 'Conker Neo', + 'author' => 'Erock Kerberos Chew', + 'file' => 'conker-neo.1.zspr', + 'version' => 1, + 'vtversion' => '31.0.9', + 'tags' => [ + 0 => 'Rare', + 1 => 'Animal', + ], + 'usage' => [ + 0 => 'smz3', + ], + ], 'conker.1.zspr' => [ 'name' => 'Conker', 'author' => 'Charmander106/SePH', @@ -3795,11 +3809,11 @@ 0 => 'smz3', ], ], - 'prof-renderer-grizzleton.1.zspr' => [ + 'prof-renderer-grizzleton.2.zspr' => [ 'name' => 'Prof. Renderer Grizzleton', 'author' => 'Professor Renderer', - 'file' => 'prof-renderer-grizzleton.1.zspr', - 'version' => 1, + 'file' => 'prof-renderer-grizzleton.2.zspr', + 'version' => 2, 'vtversion' => '31.0.9', 'tags' => [ 0 => 'Personality', diff --git a/resources/sass/_sprites.scss b/resources/sass/_sprites.scss index 8df1c47a3..34cda2d13 100644 --- a/resources/sass/_sprites.scss +++ b/resources/sass/_sprites.scss @@ -10,1103 +10,1106 @@ background-position: 0 0; } .icon-custom-Link { - background-position: percentage((1 - 368)/ 367) 0; + background-position: percentage((1 - 369)/ 368) 0; } .icon-custom-FourSwordsLink { - background-position: percentage((2 - 368)/ 367) 0; + background-position: percentage((2 - 369)/ 368) 0; } .icon-custom-Abigail { - background-position: percentage((3 - 368)/ 367) 0; + background-position: percentage((3 - 369)/ 368) 0; } .icon-custom-Adol { - background-position: percentage((4 - 368)/ 367) 0; + background-position: percentage((4 - 369)/ 368) 0; } .icon-custom-Adventure2600 { - background-position: percentage((5 - 368)/ 367) 0; + background-position: percentage((5 - 369)/ 368) 0; } .icon-custom-Aggretsuko { - background-position: percentage((6 - 368)/ 367) 0; + background-position: percentage((6 - 369)/ 368) 0; } .icon-custom-Alice { - background-position: percentage((7 - 368)/ 367) 0; + background-position: percentage((7 - 369)/ 368) 0; } .icon-custom-AngryVideoGameNerd { - background-position: percentage((8 - 368)/ 367) 0; + background-position: percentage((8 - 369)/ 368) 0; } .icon-custom-Arcane { - background-position: percentage((9 - 368)/ 367) 0; + background-position: percentage((9 - 369)/ 368) 0; } .icon-custom-Aria { - background-position: percentage((10 - 368)/ 367) 0; + background-position: percentage((10 - 369)/ 368) 0; } .icon-custom-ArkNoCape { - background-position: percentage((11 - 368)/ 367) 0; + background-position: percentage((11 - 369)/ 368) 0; } .icon-custom-ArkCape { - background-position: percentage((12 - 368)/ 367) 0; + background-position: percentage((12 - 369)/ 368) 0; } .icon-custom-Arrghus { - background-position: percentage((13 - 368)/ 367) 0; + background-position: percentage((13 - 369)/ 368) 0; } .icon-custom-Astronaut { - background-position: percentage((14 - 368)/ 367) 0; + background-position: percentage((14 - 369)/ 368) 0; } .icon-custom-Asuna { - background-position: percentage((15 - 368)/ 367) 0; + background-position: percentage((15 - 369)/ 368) 0; } .icon-custom-Badeline { - background-position: percentage((16 - 368)/ 367) 0; + background-position: percentage((16 - 369)/ 368) 0; } .icon-custom-BananasInPyjamas { - background-position: percentage((17 - 368)/ 367) 0; + background-position: percentage((17 - 369)/ 368) 0; } .icon-custom-Bandit { - background-position: percentage((18 - 368)/ 367) 0; + background-position: percentage((18 - 369)/ 368) 0; } .icon-custom-Batman { - background-position: percentage((19 - 368)/ 367) 0; + background-position: percentage((19 - 369)/ 368) 0; } .icon-custom-Beau { - background-position: percentage((20 - 368)/ 367) 0; + background-position: percentage((20 - 369)/ 368) 0; } .icon-custom-Bee { - background-position: percentage((21 - 368)/ 367) 0; + background-position: percentage((21 - 369)/ 368) 0; } .icon-custom-Bewp { - background-position: percentage((22 - 368)/ 367) 0; + background-position: percentage((22 - 369)/ 368) 0; } .icon-custom-BigKey { - background-position: percentage((23 - 368)/ 367) 0; + background-position: percentage((23 - 369)/ 368) 0; } .icon-custom-Birb { - background-position: percentage((24 - 368)/ 367) 0; + background-position: percentage((24 - 369)/ 368) 0; } .icon-custom-Birdo { - background-position: percentage((25 - 368)/ 367) 0; + background-position: percentage((25 - 369)/ 368) 0; } .icon-custom-BlackMage { - background-position: percentage((26 - 368)/ 367) 0; + background-position: percentage((26 - 369)/ 368) 0; } .icon-custom-BlacksmithLink { - background-position: percentage((27 - 368)/ 367) 0; + background-position: percentage((27 - 369)/ 368) 0; } .icon-custom-Blazer { - background-position: percentage((28 - 368)/ 367) 0; + background-position: percentage((28 - 369)/ 368) 0; } .icon-custom-Blossom { - background-position: percentage((29 - 368)/ 367) 0; + background-position: percentage((29 - 369)/ 368) 0; } .icon-custom-Bob { - background-position: percentage((30 - 368)/ 367) 0; + background-position: percentage((30 - 369)/ 368) 0; } .icon-custom-BobRoss { - background-position: percentage((31 - 368)/ 367) 0; + background-position: percentage((31 - 369)/ 368) 0; } .icon-custom-BocotheChocobo { - background-position: percentage((32 - 368)/ 367) 0; + background-position: percentage((32 - 369)/ 368) 0; } .icon-custom-Boo2 { - background-position: percentage((33 - 368)/ 367) 0; + background-position: percentage((33 - 369)/ 368) 0; } .icon-custom-Boo { - background-position: percentage((34 - 368)/ 367) 0; + background-position: percentage((34 - 369)/ 368) 0; } .icon-custom-BottleoGoo { - background-position: percentage((35 - 368)/ 367) 0; + background-position: percentage((35 - 369)/ 368) 0; } .icon-custom-BotWLink { - background-position: percentage((36 - 368)/ 367) 0; + background-position: percentage((36 - 369)/ 368) 0; } .icon-custom-BotWZelda { - background-position: percentage((37 - 368)/ 367) 0; + background-position: percentage((37 - 369)/ 368) 0; } .icon-custom-Bowser { - background-position: percentage((38 - 368)/ 367) 0; + background-position: percentage((38 - 369)/ 368) 0; } .icon-custom-BowsetteRed { - background-position: percentage((39 - 368)/ 367) 0; + background-position: percentage((39 - 369)/ 368) 0; } .icon-custom-Bowsette { - background-position: percentage((40 - 368)/ 367) 0; + background-position: percentage((40 - 369)/ 368) 0; } .icon-custom-Branch { - background-position: percentage((41 - 368)/ 367) 0; + background-position: percentage((41 - 369)/ 368) 0; } .icon-custom-Brian { - background-position: percentage((42 - 368)/ 367) 0; + background-position: percentage((42 - 369)/ 368) 0; } .icon-custom-Broccoli { - background-position: percentage((43 - 368)/ 367) 0; + background-position: percentage((43 - 369)/ 368) 0; } .icon-custom-Bronzor { - background-position: percentage((44 - 368)/ 367) 0; + background-position: percentage((44 - 369)/ 368) 0; } .icon-custom-BSBoy { - background-position: percentage((45 - 368)/ 367) 0; + background-position: percentage((45 - 369)/ 368) 0; } .icon-custom-BSGirl { - background-position: percentage((46 - 368)/ 367) 0; + background-position: percentage((46 - 369)/ 368) 0; } .icon-custom-Bubbles { - background-position: percentage((47 - 368)/ 367) 0; + background-position: percentage((47 - 369)/ 368) 0; } .icon-custom-BulletBill { - background-position: percentage((48 - 368)/ 367) 0; + background-position: percentage((48 - 369)/ 368) 0; } .icon-custom-Buttercup { - background-position: percentage((49 - 368)/ 367) 0; + background-position: percentage((49 - 369)/ 368) 0; } .icon-custom-Cactuar { - background-position: percentage((50 - 368)/ 367) 0; + background-position: percentage((50 - 369)/ 368) 0; } .icon-custom-Cadence { - background-position: percentage((51 - 368)/ 367) 0; + background-position: percentage((51 - 369)/ 368) 0; } .icon-custom-CarlSagan42 { - background-position: percentage((52 - 368)/ 367) 0; + background-position: percentage((52 - 369)/ 368) 0; } .icon-custom-CasualZelda { - background-position: percentage((53 - 368)/ 367) 0; + background-position: percentage((53 - 369)/ 368) 0; } .icon-custom-MarvintheCat { - background-position: percentage((54 - 368)/ 367) 0; + background-position: percentage((54 - 369)/ 368) 0; } .icon-custom-CatBoo { - background-position: percentage((55 - 368)/ 367) 0; + background-position: percentage((55 - 369)/ 368) 0; } .icon-custom-CatgirlHidari { - background-position: percentage((56 - 368)/ 367) 0; + background-position: percentage((56 - 369)/ 368) 0; } .icon-custom-CD-iLink { - background-position: percentage((57 - 368)/ 367) 0; + background-position: percentage((57 - 369)/ 368) 0; } .icon-custom-Celes { - background-position: percentage((58 - 368)/ 367) 0; + background-position: percentage((58 - 369)/ 368) 0; } .icon-custom-CentaurEnos { - background-position: percentage((59 - 368)/ 367) 0; + background-position: percentage((59 - 369)/ 368) 0; } .icon-custom-Charizard { - background-position: percentage((60 - 368)/ 367) 0; + background-position: percentage((60 - 369)/ 368) 0; } .icon-custom-CheepCheep { - background-position: percentage((61 - 368)/ 367) 0; + background-position: percentage((61 - 369)/ 368) 0; } .icon-custom-Chibity { - background-position: percentage((62 - 368)/ 367) 0; + background-position: percentage((62 - 369)/ 368) 0; } .icon-custom-Chrizzz { - background-position: percentage((63 - 368)/ 367) 0; + background-position: percentage((63 - 369)/ 368) 0; } .icon-custom-Cinna { - background-position: percentage((64 - 368)/ 367) 0; + background-position: percentage((64 - 369)/ 368) 0; } .icon-custom-Cirno { - background-position: percentage((65 - 368)/ 367) 0; + background-position: percentage((65 - 369)/ 368) 0; } .icon-custom-Clifford { - background-position: percentage((66 - 368)/ 367) 0; + background-position: percentage((66 - 369)/ 368) 0; } .icon-custom-Clippy { - background-position: percentage((67 - 368)/ 367) 0; + background-position: percentage((67 - 369)/ 368) 0; } .icon-custom-Cloud { - background-position: percentage((68 - 368)/ 367) 0; + background-position: percentage((68 - 369)/ 368) 0; } .icon-custom-Clyde { - background-position: percentage((69 - 368)/ 367) 0; + background-position: percentage((69 - 369)/ 368) 0; +} +.icon-custom-ConkerNeo { + background-position: percentage((70 - 369)/ 368) 0; } .icon-custom-Conker { - background-position: percentage((70 - 368)/ 367) 0; + background-position: percentage((71 - 369)/ 368) 0; } .icon-custom-Cornelius { - background-position: percentage((71 - 368)/ 367) 0; + background-position: percentage((72 - 369)/ 368) 0; } .icon-custom-Corona { - background-position: percentage((72 - 368)/ 367) 0; + background-position: percentage((73 - 369)/ 368) 0; } .icon-custom-Crewmate { - background-position: percentage((73 - 368)/ 367) 0; + background-position: percentage((74 - 369)/ 368) 0; } .icon-custom-Cucco { - background-position: percentage((74 - 368)/ 367) 0; + background-position: percentage((75 - 369)/ 368) 0; } .icon-custom-Cursor { - background-position: percentage((75 - 368)/ 367) 0; + background-position: percentage((76 - 369)/ 368) 0; } .icon-custom-DOwls { - background-position: percentage((76 - 368)/ 367) 0; + background-position: percentage((77 - 369)/ 368) 0; } .icon-custom-DarkPanda { - background-position: percentage((77 - 368)/ 367) 0; + background-position: percentage((78 - 369)/ 368) 0; } .icon-custom-DarkBoy { - background-position: percentage((78 - 368)/ 367) 0; + background-position: percentage((79 - 369)/ 368) 0; } .icon-custom-DarkGirl { - background-position: percentage((79 - 368)/ 367) 0; + background-position: percentage((80 - 369)/ 368) 0; } .icon-custom-DarkLinkTunic { - background-position: percentage((80 - 368)/ 367) 0; + background-position: percentage((81 - 369)/ 368) 0; } .icon-custom-DarkLink { - background-position: percentage((81 - 368)/ 367) 0; + background-position: percentage((82 - 369)/ 368) 0; } .icon-custom-DarkSwatchy { - background-position: percentage((82 - 368)/ 367) 0; + background-position: percentage((83 - 369)/ 368) 0; } .icon-custom-DarkZelda { - background-position: percentage((83 - 368)/ 367) 0; + background-position: percentage((84 - 369)/ 368) 0; } .icon-custom-DarkZora { - background-position: percentage((84 - 368)/ 367) 0; + background-position: percentage((85 - 369)/ 368) 0; } .icon-custom-DeadpoolMythic { - background-position: percentage((85 - 368)/ 367) 0; + background-position: percentage((86 - 369)/ 368) 0; } .icon-custom-DeadpoolSirCzah { - background-position: percentage((86 - 368)/ 367) 0; + background-position: percentage((87 - 369)/ 368) 0; } .icon-custom-Deadrock { - background-position: percentage((87 - 368)/ 367) 0; + background-position: percentage((88 - 369)/ 368) 0; } .icon-custom-Decidueye { - background-position: percentage((88 - 368)/ 367) 0; + background-position: percentage((89 - 369)/ 368) 0; } .icon-custom-Dekar { - background-position: percentage((89 - 368)/ 367) 0; + background-position: percentage((90 - 369)/ 368) 0; } .icon-custom-DemonLink { - background-position: percentage((90 - 368)/ 367) 0; + background-position: percentage((91 - 369)/ 368) 0; } .icon-custom-Dennsen86 { - background-position: percentage((91 - 368)/ 367) 0; + background-position: percentage((92 - 369)/ 368) 0; } .icon-custom-DigDug { - background-position: percentage((92 - 368)/ 367) 0; + background-position: percentage((93 - 369)/ 368) 0; } .icon-custom-Dipper { - background-position: percentage((93 - 368)/ 367) 0; + background-position: percentage((94 - 369)/ 368) 0; } .icon-custom-Discord { - background-position: percentage((94 - 368)/ 367) 0; + background-position: percentage((95 - 369)/ 368) 0; } .icon-custom-Dragonite { - background-position: percentage((95 - 368)/ 367) 0; + background-position: percentage((96 - 369)/ 368) 0; } .icon-custom-DrakeTheDragon { - background-position: percentage((96 - 368)/ 367) 0; + background-position: percentage((97 - 369)/ 368) 0; } .icon-custom-Eggplant { - background-position: percentage((97 - 368)/ 367) 0; + background-position: percentage((98 - 369)/ 368) 0; } .icon-custom-EmaSkye { - background-position: percentage((98 - 368)/ 367) 0; + background-position: percentage((99 - 369)/ 368) 0; } .icon-custom-EmoSaru { - background-position: percentage((99 - 368)/ 367) 0; + background-position: percentage((100 - 369)/ 368) 0; } .icon-custom-Ezlo { - background-position: percentage((100 - 368)/ 367) 0; + background-position: percentage((101 - 369)/ 368) 0; } .icon-custom-Fi { - background-position: percentage((101 - 368)/ 367) 0; + background-position: percentage((102 - 369)/ 368) 0; } .icon-custom-FierceDeityLink { - background-position: percentage((102 - 368)/ 367) 0; + background-position: percentage((103 - 369)/ 368) 0; } .icon-custom-FinnMerten { - background-position: percentage((103 - 368)/ 367) 0; + background-position: percentage((104 - 369)/ 368) 0; } .icon-custom-FinnyBear { - background-position: percentage((104 - 368)/ 367) 0; + background-position: percentage((105 - 369)/ 368) 0; } .icon-custom-FloodgateFish { - background-position: percentage((105 - 368)/ 367) 0; + background-position: percentage((106 - 369)/ 368) 0; } .icon-custom-FlavorGuy { - background-position: percentage((106 - 368)/ 367) 0; + background-position: percentage((107 - 369)/ 368) 0; } .icon-custom-FoxLink { - background-position: percentage((107 - 368)/ 367) 0; + background-position: percentage((108 - 369)/ 368) 0; } .icon-custom-FreyaCrescent { - background-position: percentage((108 - 368)/ 367) 0; + background-position: percentage((109 - 369)/ 368) 0; } .icon-custom-Frisk { - background-position: percentage((109 - 368)/ 367) 0; + background-position: percentage((110 - 369)/ 368) 0; } .icon-custom-FrogLink { - background-position: percentage((110 - 368)/ 367) 0; + background-position: percentage((111 - 369)/ 368) 0; } .icon-custom-Fujin { - background-position: percentage((111 - 368)/ 367) 0; + background-position: percentage((112 - 369)/ 368) 0; } .icon-custom-FutureTrunks { - background-position: percentage((112 - 368)/ 367) 0; + background-position: percentage((113 - 369)/ 368) 0; } .icon-custom-Gamer { - background-position: percentage((113 - 368)/ 367) 0; + background-position: percentage((114 - 369)/ 368) 0; } .icon-custom-MiniGanon { - background-position: percentage((114 - 368)/ 367) 0; + background-position: percentage((115 - 369)/ 368) 0; } .icon-custom-Ganondorf { - background-position: percentage((115 - 368)/ 367) 0; + background-position: percentage((116 - 369)/ 368) 0; } .icon-custom-Garfield { - background-position: percentage((116 - 368)/ 367) 0; + background-position: percentage((117 - 369)/ 368) 0; } .icon-custom-Garnet { - background-position: percentage((117 - 368)/ 367) 0; + background-position: percentage((118 - 369)/ 368) 0; } .icon-custom-GaroMaster { - background-position: percentage((118 - 368)/ 367) 0; + background-position: percentage((119 - 369)/ 368) 0; } .icon-custom-GBCLink { - background-position: percentage((119 - 368)/ 367) 0; + background-position: percentage((120 - 369)/ 368) 0; } .icon-custom-Geno { - background-position: percentage((120 - 368)/ 367) 0; + background-position: percentage((121 - 369)/ 368) 0; } .icon-custom-GliitchWiitch { - background-position: percentage((121 - 368)/ 367) 0; + background-position: percentage((122 - 369)/ 368) 0; } .icon-custom-Gobli { - background-position: percentage((122 - 368)/ 367) 0; + background-position: percentage((123 - 369)/ 368) 0; } .icon-custom-Gooey { - background-position: percentage((123 - 368)/ 367) 0; + background-position: percentage((124 - 369)/ 368) 0; } .icon-custom-Goomba { - background-position: percentage((124 - 368)/ 367) 0; + background-position: percentage((125 - 369)/ 368) 0; } .icon-custom-Goose { - background-position: percentage((125 - 368)/ 367) 0; + background-position: percentage((126 - 369)/ 368) 0; } .icon-custom-GraalianNoob { - background-position: percentage((126 - 368)/ 367) 0; + background-position: percentage((127 - 369)/ 368) 0; } .icon-custom-GrandPOOBear { - background-position: percentage((127 - 368)/ 367) 0; + background-position: percentage((128 - 369)/ 368) 0; } .icon-custom-Gretis { - background-position: percentage((128 - 368)/ 367) 0; + background-position: percentage((129 - 369)/ 368) 0; } .icon-custom-GruncleStan { - background-position: percentage((129 - 368)/ 367) 0; + background-position: percentage((130 - 369)/ 368) 0; } .icon-custom-Guiz { - background-position: percentage((130 - 368)/ 367) 0; + background-position: percentage((131 - 369)/ 368) 0; } .icon-custom-Hanna { - background-position: percentage((131 - 368)/ 367) 0; + background-position: percentage((132 - 369)/ 368) 0; } .icon-custom-HardhatBeetle { - background-position: percentage((132 - 368)/ 367) 0; + background-position: percentage((133 - 369)/ 368) 0; } .icon-custom-HatKid { - background-position: percentage((133 - 368)/ 367) 0; + background-position: percentage((134 - 369)/ 368) 0; } .icon-custom-HeadLink { - background-position: percentage((134 - 368)/ 367) 0; + background-position: percentage((135 - 369)/ 368) 0; } .icon-custom-HeadlessLink { - background-position: percentage((135 - 368)/ 367) 0; + background-position: percentage((136 - 369)/ 368) 0; } .icon-custom-HelloKitty { - background-position: percentage((136 - 368)/ 367) 0; + background-position: percentage((137 - 369)/ 368) 0; } .icon-custom-HeroofAwakening { - background-position: percentage((137 - 368)/ 367) 0; + background-position: percentage((138 - 369)/ 368) 0; } .icon-custom-HeroofHyrule { - background-position: percentage((138 - 368)/ 367) 0; + background-position: percentage((139 - 369)/ 368) 0; } .icon-custom-HintTile { - background-position: percentage((139 - 368)/ 367) 0; + background-position: percentage((140 - 369)/ 368) 0; } .icon-custom-HoarderBush { - background-position: percentage((140 - 368)/ 367) 0; + background-position: percentage((141 - 369)/ 368) 0; } .icon-custom-HoarderPot { - background-position: percentage((141 - 368)/ 367) 0; + background-position: percentage((142 - 369)/ 368) 0; } .icon-custom-HoarderRock { - background-position: percentage((142 - 368)/ 367) 0; + background-position: percentage((143 - 369)/ 368) 0; } .icon-custom-HollowKnightMalmoWinter { - background-position: percentage((143 - 368)/ 367) 0; + background-position: percentage((144 - 369)/ 368) 0; } .icon-custom-HollowKnight { - background-position: percentage((144 - 368)/ 367) 0; + background-position: percentage((145 - 369)/ 368) 0; } .icon-custom-HomerSimpson { - background-position: percentage((145 - 368)/ 367) 0; + background-position: percentage((146 - 369)/ 368) 0; } .icon-custom-Hornet { - background-position: percentage((146 - 368)/ 367) 0; + background-position: percentage((147 - 369)/ 368) 0; } .icon-custom-Hotdog { - background-position: percentage((147 - 368)/ 367) 0; + background-position: percentage((148 - 369)/ 368) 0; } .icon-custom-HyruleKnight { - background-position: percentage((148 - 368)/ 367) 0; + background-position: percentage((149 - 369)/ 368) 0; } .icon-custom-iBazly { - background-position: percentage((149 - 368)/ 367) 0; + background-position: percentage((150 - 369)/ 368) 0; } .icon-custom-Ignignokt { - background-position: percentage((150 - 368)/ 367) 0; + background-position: percentage((151 - 369)/ 368) 0; } .icon-custom-InformantWoman { - background-position: percentage((151 - 368)/ 367) 0; + background-position: percentage((152 - 369)/ 368) 0; } .icon-custom-Inkling { - background-position: percentage((152 - 368)/ 367) 0; + background-position: percentage((153 - 369)/ 368) 0; } .icon-custom-InvisibleLink { - background-position: percentage((153 - 368)/ 367) 0; + background-position: percentage((154 - 369)/ 368) 0; } .icon-custom-JackFrost { - background-position: percentage((154 - 368)/ 367) 0; + background-position: percentage((155 - 369)/ 368) 0; } .icon-custom-JasonFrudnick { - background-position: percentage((155 - 368)/ 367) 0; + background-position: percentage((156 - 369)/ 368) 0; } .icon-custom-Jasp { - background-position: percentage((156 - 368)/ 367) 0; + background-position: percentage((157 - 369)/ 368) 0; } .icon-custom-Jogurt { - background-position: percentage((157 - 368)/ 367) 0; + background-position: percentage((158 - 369)/ 368) 0; } .icon-custom-Kain { - background-position: percentage((158 - 368)/ 367) 0; + background-position: percentage((159 - 369)/ 368) 0; } .icon-custom-Katsura { - background-position: percentage((159 - 368)/ 367) 0; + background-position: percentage((160 - 369)/ 368) 0; } .icon-custom-Kecleon { - background-position: percentage((160 - 368)/ 367) 0; + background-position: percentage((161 - 369)/ 368) 0; } .icon-custom-Kefka { - background-position: percentage((161 - 368)/ 367) 0; + background-position: percentage((162 - 369)/ 368) 0; } .icon-custom-KennyMcCormick { - background-position: percentage((162 - 368)/ 367) 0; + background-position: percentage((163 - 369)/ 368) 0; } .icon-custom-Ketchup { - background-position: percentage((163 - 368)/ 367) 0; + background-position: percentage((164 - 369)/ 368) 0; } .icon-custom-Kholdstare { - background-position: percentage((164 - 368)/ 367) 0; + background-position: percentage((165 - 369)/ 368) 0; } .icon-custom-KingGothalion { - background-position: percentage((165 - 368)/ 367) 0; + background-position: percentage((166 - 369)/ 368) 0; } .icon-custom-KingGraham { - background-position: percentage((166 - 368)/ 367) 0; + background-position: percentage((167 - 369)/ 368) 0; } .icon-custom-Kinu { - background-position: percentage((167 - 368)/ 367) 0; + background-position: percentage((168 - 369)/ 368) 0; } .icon-custom-KirbyDreamland3 { - background-position: percentage((168 - 368)/ 367) 0; + background-position: percentage((169 - 369)/ 368) 0; } .icon-custom-Kirby { - background-position: percentage((169 - 368)/ 367) 0; + background-position: percentage((170 - 369)/ 368) 0; } .icon-custom-Kore8 { - background-position: percentage((170 - 368)/ 367) 0; + background-position: percentage((171 - 369)/ 368) 0; } .icon-custom-Korok { - background-position: percentage((171 - 368)/ 367) 0; + background-position: percentage((172 - 369)/ 368) 0; } .icon-custom-Kriv { - background-position: percentage((172 - 368)/ 367) 0; + background-position: percentage((173 - 369)/ 368) 0; } .icon-custom-Lakitu { - background-position: percentage((173 - 368)/ 367) 0; + background-position: percentage((174 - 369)/ 368) 0; } .icon-custom-Lapras { - background-position: percentage((174 - 368)/ 367) 0; + background-position: percentage((175 - 369)/ 368) 0; } .icon-custom-Lest { - background-position: percentage((175 - 368)/ 367) 0; + background-position: percentage((176 - 369)/ 368) 0; } .icon-custom-Lestat { - background-position: percentage((176 - 368)/ 367) 0; + background-position: percentage((177 - 369)/ 368) 0; } .icon-custom-Lily { - background-position: percentage((177 - 368)/ 367) 0; + background-position: percentage((178 - 369)/ 368) 0; } .icon-custom-Linja { - background-position: percentage((178 - 368)/ 367) 0; + background-position: percentage((179 - 369)/ 368) 0; } .icon-custom-LinkRedrawn { - background-position: percentage((179 - 368)/ 367) 0; + background-position: percentage((180 - 369)/ 368) 0; } .icon-custom-HatColorLink { - background-position: percentage((180 - 368)/ 367) 0; + background-position: percentage((181 - 369)/ 368) 0; } .icon-custom-TunicColorLink { - background-position: percentage((181 - 368)/ 367) 0; + background-position: percentage((182 - 369)/ 368) 0; } .icon-custom-LittleHylian { - background-position: percentage((182 - 368)/ 367) 0; + background-position: percentage((183 - 369)/ 368) 0; } .icon-custom-Pony { - background-position: percentage((183 - 368)/ 367) 0; + background-position: percentage((184 - 369)/ 368) 0; } .icon-custom-Locke { - background-position: percentage((184 - 368)/ 367) 0; + background-position: percentage((185 - 369)/ 368) 0; } .icon-custom-FigaroMerchant { - background-position: percentage((185 - 368)/ 367) 0; + background-position: percentage((186 - 369)/ 368) 0; } .icon-custom-Lucario { - background-position: percentage((186 - 368)/ 367) 0; + background-position: percentage((187 - 369)/ 368) 0; } .icon-custom-Luffy { - background-position: percentage((187 - 368)/ 367) 0; + background-position: percentage((188 - 369)/ 368) 0; } .icon-custom-Luigi { - background-position: percentage((188 - 368)/ 367) 0; + background-position: percentage((189 - 369)/ 368) 0; } .icon-custom-LunaMaindo { - background-position: percentage((189 - 368)/ 367) 0; + background-position: percentage((190 - 369)/ 368) 0; } .icon-custom-LynelBotW { - background-position: percentage((190 - 368)/ 367) 0; + background-position: percentage((191 - 369)/ 368) 0; } .icon-custom-Madeline { - background-position: percentage((191 - 368)/ 367) 0; + background-position: percentage((192 - 369)/ 368) 0; } .icon-custom-Magus { - background-position: percentage((192 - 368)/ 367) 0; + background-position: percentage((193 - 369)/ 368) 0; } .icon-custom-Maiden { - background-position: percentage((193 - 368)/ 367) 0; + background-position: percentage((194 - 369)/ 368) 0; } .icon-custom-MajorasMask { - background-position: percentage((194 - 368)/ 367) 0; + background-position: percentage((195 - 369)/ 368) 0; } .icon-custom-MallowCat { - background-position: percentage((195 - 368)/ 367) 0; + background-position: percentage((196 - 369)/ 368) 0; } .icon-custom-MangaLink { - background-position: percentage((196 - 368)/ 367) 0; + background-position: percentage((197 - 369)/ 368) 0; } .icon-custom-MapleQueen { - background-position: percentage((197 - 368)/ 367) 0; + background-position: percentage((198 - 369)/ 368) 0; } .icon-custom-Marin { - background-position: percentage((198 - 368)/ 367) 0; + background-position: percentage((199 - 369)/ 368) 0; } .icon-custom-MarioClassic { - background-position: percentage((199 - 368)/ 367) 0; + background-position: percentage((200 - 369)/ 368) 0; } .icon-custom-TanookiMario { - background-position: percentage((200 - 368)/ 367) 0; + background-position: percentage((201 - 369)/ 368) 0; } .icon-custom-MarioandCappy { - background-position: percentage((201 - 368)/ 367) 0; + background-position: percentage((202 - 369)/ 368) 0; } .icon-custom-MarisaKirisame { - background-position: percentage((202 - 368)/ 367) 0; + background-position: percentage((203 - 369)/ 368) 0; } .icon-custom-Matthias { - background-position: percentage((203 - 368)/ 367) 0; + background-position: percentage((204 - 369)/ 368) 0; } .icon-custom-Meatwad { - background-position: percentage((204 - 368)/ 367) 0; + background-position: percentage((205 - 369)/ 368) 0; } .icon-custom-Medallions { - background-position: percentage((205 - 368)/ 367) 0; + background-position: percentage((206 - 369)/ 368) 0; } .icon-custom-Medli { - background-position: percentage((206 - 368)/ 367) 0; + background-position: percentage((207 - 369)/ 368) 0; } .icon-custom-MegamanX { - background-position: percentage((207 - 368)/ 367) 0; + background-position: percentage((208 - 369)/ 368) 0; } .icon-custom-MegamanX2 { - background-position: percentage((208 - 368)/ 367) 0; + background-position: percentage((209 - 369)/ 368) 0; } .icon-custom-MegaManClassic { - background-position: percentage((209 - 368)/ 367) 0; + background-position: percentage((210 - 369)/ 368) 0; } .icon-custom-BabyMetroid { - background-position: percentage((210 - 368)/ 367) 0; + background-position: percentage((211 - 369)/ 368) 0; } .icon-custom-MewLp { - background-position: percentage((211 - 368)/ 367) 0; + background-position: percentage((212 - 369)/ 368) 0; } .icon-custom-MikeJones { - background-position: percentage((212 - 368)/ 367) 0; + background-position: percentage((213 - 369)/ 368) 0; } .icon-custom-Mimic { - background-position: percentage((213 - 368)/ 367) 0; + background-position: percentage((214 - 369)/ 368) 0; } .icon-custom-MinishLink { - background-position: percentage((214 - 368)/ 367) 0; + background-position: percentage((215 - 369)/ 368) 0; } .icon-custom-MinishCapLink { - background-position: percentage((215 - 368)/ 367) 0; + background-position: percentage((216 - 369)/ 368) 0; } .icon-custom-Mipha { - background-position: percentage((216 - 368)/ 367) 0; + background-position: percentage((217 - 369)/ 368) 0; } .icon-custom-missingno { - background-position: percentage((217 - 368)/ 367) 0; + background-position: percentage((218 - 369)/ 368) 0; } .icon-custom-Moblin { - background-position: percentage((218 - 368)/ 367) 0; + background-position: percentage((219 - 369)/ 368) 0; } .icon-custom-ModernLink { - background-position: percentage((219 - 368)/ 367) 0; + background-position: percentage((220 - 369)/ 368) 0; } .icon-custom-Mog { - background-position: percentage((220 - 368)/ 367) 0; + background-position: percentage((221 - 369)/ 368) 0; } .icon-custom-MomijiInubashiri { - background-position: percentage((221 - 368)/ 367) 0; + background-position: percentage((222 - 369)/ 368) 0; } .icon-custom-Moosh { - background-position: percentage((222 - 368)/ 367) 0; + background-position: percentage((223 - 369)/ 368) 0; } .icon-custom-Mouse { - background-position: percentage((223 - 368)/ 367) 0; + background-position: percentage((224 - 369)/ 368) 0; } .icon-custom-MsPaintDog { - background-position: percentage((224 - 368)/ 367) 0; + background-position: percentage((225 - 369)/ 368) 0; } .icon-custom-PowerUpwithPrideMushroom { - background-position: percentage((225 - 368)/ 367) 0; + background-position: percentage((226 - 369)/ 368) 0; } .icon-custom-NatureLink { - background-position: percentage((226 - 368)/ 367) 0; + background-position: percentage((227 - 369)/ 368) 0; } .icon-custom-Navi { - background-position: percentage((227 - 368)/ 367) 0; + background-position: percentage((228 - 369)/ 368) 0; } .icon-custom-Navirou { - background-position: percentage((228 - 368)/ 367) 0; + background-position: percentage((229 - 369)/ 368) 0; } .icon-custom-NedFlanders { - background-position: percentage((229 - 368)/ 367) 0; + background-position: percentage((230 - 369)/ 368) 0; } .icon-custom-NegativeLink { - background-position: percentage((230 - 368)/ 367) 0; + background-position: percentage((231 - 369)/ 368) 0; } .icon-custom-Neosad { - background-position: percentage((231 - 368)/ 367) 0; + background-position: percentage((232 - 369)/ 368) 0; } .icon-custom-NESLink { - background-position: percentage((232 - 368)/ 367) 0; + background-position: percentage((233 - 369)/ 368) 0; } .icon-custom-Ness { - background-position: percentage((233 - 368)/ 367) 0; + background-position: percentage((234 - 369)/ 368) 0; } .icon-custom-Nia { - background-position: percentage((234 - 368)/ 367) 0; + background-position: percentage((235 - 369)/ 368) 0; } .icon-custom-Niddraig { - background-position: percentage((235 - 368)/ 367) 0; + background-position: percentage((236 - 369)/ 368) 0; } .icon-custom-Niko { - background-position: percentage((236 - 368)/ 367) 0; + background-position: percentage((237 - 369)/ 368) 0; } .icon-custom-OldMan { - background-position: percentage((237 - 368)/ 367) 0; + background-position: percentage((238 - 369)/ 368) 0; } .icon-custom-Ori { - background-position: percentage((238 - 368)/ 367) 0; + background-position: percentage((239 - 369)/ 368) 0; } .icon-custom-OutlineLink { - background-position: percentage((239 - 368)/ 367) 0; + background-position: percentage((240 - 369)/ 368) 0; } .icon-custom-ParallelWorldsLink { - background-position: percentage((240 - 368)/ 367) 0; + background-position: percentage((241 - 369)/ 368) 0; } .icon-custom-Paula { - background-position: percentage((241 - 368)/ 367) 0; + background-position: percentage((242 - 369)/ 368) 0; } .icon-custom-PrincessPeach { - background-position: percentage((242 - 368)/ 367) 0; + background-position: percentage((243 - 369)/ 368) 0; } .icon-custom-PenguinLink { - background-position: percentage((243 - 368)/ 367) 0; + background-position: percentage((244 - 369)/ 368) 0; } .icon-custom-Pete { - background-position: percentage((244 - 368)/ 367) 0; + background-position: percentage((245 - 369)/ 368) 0; } .icon-custom-PhoenixWright { - background-position: percentage((245 - 368)/ 367) 0; + background-position: percentage((246 - 369)/ 368) 0; } .icon-custom-Pikachu { - background-position: percentage((246 - 368)/ 367) 0; + background-position: percentage((247 - 369)/ 368) 0; } .icon-custom-PinkRibbonLink { - background-position: percentage((247 - 368)/ 367) 0; + background-position: percentage((248 - 369)/ 368) 0; } .icon-custom-PiranhaPlant { - background-position: percentage((248 - 368)/ 367) 0; + background-position: percentage((249 - 369)/ 368) 0; } .icon-custom-PlagueKnight { - background-position: percentage((249 - 368)/ 367) 0; + background-position: percentage((250 - 369)/ 368) 0; } .icon-custom-Plouni { - background-position: percentage((250 - 368)/ 367) 0; + background-position: percentage((251 - 369)/ 368) 0; } .icon-custom-Pokeysubtle { - background-position: percentage((251 - 368)/ 367) 0; + background-position: percentage((252 - 369)/ 368) 0; } .icon-custom-Pokey { - background-position: percentage((252 - 368)/ 367) 0; + background-position: percentage((253 - 369)/ 368) 0; } .icon-custom-Popoi { - background-position: percentage((253 - 368)/ 367) 0; + background-position: percentage((254 - 369)/ 368) 0; } .icon-custom-Poppy { - background-position: percentage((254 - 368)/ 367) 0; + background-position: percentage((255 - 369)/ 368) 0; } .icon-custom-PorgKnight { - background-position: percentage((255 - 368)/ 367) 0; + background-position: percentage((256 - 369)/ 368) 0; } .icon-custom-PowerRanger { - background-position: percentage((256 - 368)/ 367) 0; + background-position: percentage((257 - 369)/ 368) 0; } .icon-custom-PowerpuffGirl { - background-position: percentage((257 - 368)/ 367) 0; + background-position: percentage((258 - 369)/ 368) 0; } .icon-custom-PrideLink { - background-position: percentage((258 - 368)/ 367) 0; + background-position: percentage((259 - 369)/ 368) 0; } .icon-custom-Primm { - background-position: percentage((259 - 368)/ 367) 0; + background-position: percentage((260 - 369)/ 368) 0; } .icon-custom-PrincessBubblegum { - background-position: percentage((260 - 368)/ 367) 0; + background-position: percentage((261 - 369)/ 368) 0; } .icon-custom-ProfRendererGrizzleton { - background-position: percentage((261 - 368)/ 367) 0; + background-position: percentage((262 - 369)/ 368) 0; } .icon-custom-TheProfessor { - background-position: percentage((262 - 368)/ 367) 0; + background-position: percentage((263 - 369)/ 368) 0; } .icon-custom-Psyduck { - background-position: percentage((263 - 368)/ 367) 0; + background-position: percentage((264 - 369)/ 368) 0; } .icon-custom-ThePug { - background-position: percentage((264 - 368)/ 367) 0; + background-position: percentage((265 - 369)/ 368) 0; } .icon-custom-PurpleChest { - background-position: percentage((265 - 368)/ 367) 0; + background-position: percentage((266 - 369)/ 368) 0; } .icon-custom-Pyro { - background-position: percentage((266 - 368)/ 367) 0; + background-position: percentage((267 - 369)/ 368) 0; } .icon-custom-QuadBanger { - background-position: percentage((267 - 368)/ 367) 0; + background-position: percentage((268 - 369)/ 368) 0; } .icon-custom-RainbowLink { - background-position: percentage((268 - 368)/ 367) 0; + background-position: percentage((269 - 369)/ 368) 0; } .icon-custom-Rat { - background-position: percentage((269 - 368)/ 367) 0; + background-position: percentage((270 - 369)/ 368) 0; } .icon-custom-RedMage { - background-position: percentage((270 - 368)/ 367) 0; + background-position: percentage((271 - 369)/ 368) 0; } .icon-custom-Remeer { - background-position: percentage((271 - 368)/ 367) 0; + background-position: percentage((272 - 369)/ 368) 0; } .icon-custom-RemusRBlack { - background-position: percentage((272 - 368)/ 367) 0; + background-position: percentage((273 - 369)/ 368) 0; } .icon-custom-Rick { - background-position: percentage((273 - 368)/ 367) 0; + background-position: percentage((274 - 369)/ 368) 0; } .icon-custom-Robo-Link9000 { - background-position: percentage((274 - 368)/ 367) 0; + background-position: percentage((275 - 369)/ 368) 0; } .icon-custom-Rocko { - background-position: percentage((275 - 368)/ 367) 0; + background-position: percentage((276 - 369)/ 368) 0; } .icon-custom-Rottytops { - background-position: percentage((276 - 368)/ 367) 0; + background-position: percentage((277 - 369)/ 368) 0; } .icon-custom-Rover { - background-position: percentage((277 - 368)/ 367) 0; + background-position: percentage((278 - 369)/ 368) 0; } .icon-custom-RoyKoopa { - background-position: percentage((278 - 368)/ 367) 0; + background-position: percentage((279 - 369)/ 368) 0; } .icon-custom-Rumia { - background-position: percentage((279 - 368)/ 367) 0; + background-position: percentage((280 - 369)/ 368) 0; } .icon-custom-Rydia { - background-position: percentage((280 - 368)/ 367) 0; + background-position: percentage((281 - 369)/ 368) 0; } .icon-custom-Ryu { - background-position: percentage((281 - 368)/ 367) 0; + background-position: percentage((282 - 369)/ 368) 0; } .icon-custom-SailorMoon { - background-position: percentage((282 - 368)/ 367) 0; + background-position: percentage((283 - 369)/ 368) 0; } .icon-custom-Saitama { - background-position: percentage((283 - 368)/ 367) 0; + background-position: percentage((284 - 369)/ 368) 0; } .icon-custom-SamusSuperMetroid { - background-position: percentage((284 - 368)/ 367) 0; + background-position: percentage((285 - 369)/ 368) 0; } .icon-custom-Samus { - background-position: percentage((285 - 368)/ 367) 0; + background-position: percentage((286 - 369)/ 368) 0; } .icon-custom-SamusClassic { - background-position: percentage((286 - 368)/ 367) 0; + background-position: percentage((287 - 369)/ 368) 0; } .icon-custom-SantaHatLink { - background-position: percentage((287 - 368)/ 367) 0; + background-position: percentage((288 - 369)/ 368) 0; } .icon-custom-SantaLink { - background-position: percentage((288 - 368)/ 367) 0; + background-position: percentage((289 - 369)/ 368) 0; } .icon-custom-Scholar { - background-position: percentage((289 - 368)/ 367) 0; + background-position: percentage((290 - 369)/ 368) 0; } .icon-custom-Selan { - background-position: percentage((290 - 368)/ 367) 0; + background-position: percentage((291 - 369)/ 368) 0; } .icon-custom-SevenS1ns { - background-position: percentage((291 - 368)/ 367) 0; + background-position: percentage((292 - 369)/ 368) 0; } .icon-custom-Shadow { - background-position: percentage((292 - 368)/ 367) 0; + background-position: percentage((293 - 369)/ 368) 0; } .icon-custom-ShadowSakura { - background-position: percentage((293 - 368)/ 367) 0; + background-position: percentage((294 - 369)/ 368) 0; } .icon-custom-Shantae { - background-position: percentage((294 - 368)/ 367) 0; + background-position: percentage((295 - 369)/ 368) 0; } .icon-custom-Shuppet { - background-position: percentage((295 - 368)/ 367) 0; + background-position: percentage((296 - 369)/ 368) 0; } .icon-custom-ShyGal { - background-position: percentage((296 - 368)/ 367) 0; + background-position: percentage((297 - 369)/ 368) 0; } .icon-custom-ShyGuy { - background-position: percentage((297 - 368)/ 367) 0; + background-position: percentage((298 - 369)/ 368) 0; } .icon-custom-SighnWaive { - background-position: percentage((298 - 368)/ 367) 0; + background-position: percentage((299 - 369)/ 368) 0; } .icon-custom-Skunk { - background-position: percentage((299 - 368)/ 367) 0; + background-position: percentage((300 - 369)/ 368) 0; } .icon-custom-Slime { - background-position: percentage((300 - 368)/ 367) 0; + background-position: percentage((301 - 369)/ 368) 0; } .icon-custom-Slowpoke { - background-position: percentage((301 - 368)/ 367) 0; + background-position: percentage((302 - 369)/ 368) 0; } .icon-custom-SNESController { - background-position: percentage((302 - 368)/ 367) 0; + background-position: percentage((303 - 369)/ 368) 0; } .icon-custom-SodaCan { - background-position: percentage((303 - 368)/ 367) 0; + background-position: percentage((304 - 369)/ 368) 0; } .icon-custom-SolaireofAstora { - background-position: percentage((304 - 368)/ 367) 0; + background-position: percentage((305 - 369)/ 368) 0; } .icon-custom-HyruleSoldier { - background-position: percentage((305 - 368)/ 367) 0; + background-position: percentage((306 - 369)/ 368) 0; } .icon-custom-SonictheHedgehog { - background-position: percentage((306 - 368)/ 367) 0; + background-position: percentage((307 - 369)/ 368) 0; } .icon-custom-Sora { - background-position: percentage((307 - 368)/ 367) 0; + background-position: percentage((308 - 369)/ 368) 0; } .icon-custom-SoraKH1 { - background-position: percentage((308 - 368)/ 367) 0; + background-position: percentage((309 - 369)/ 368) 0; } .icon-custom-SpikedRoller { - background-position: percentage((309 - 368)/ 367) 0; + background-position: percentage((310 - 369)/ 368) 0; } .icon-custom-SpongebobSquarepants { - background-position: percentage((310 - 368)/ 367) 0; + background-position: percentage((311 - 369)/ 368) 0; } .icon-custom-Squall { - background-position: percentage((311 - 368)/ 367) 0; + background-position: percentage((312 - 369)/ 368) 0; } .icon-custom-Squirrel { - background-position: percentage((312 - 368)/ 367) 0; + background-position: percentage((313 - 369)/ 368) 0; } .icon-custom-Squirtle { - background-position: percentage((313 - 368)/ 367) 0; + background-position: percentage((314 - 369)/ 368) 0; } .icon-custom-Stalfos { - background-position: percentage((314 - 368)/ 367) 0; + background-position: percentage((315 - 369)/ 368) 0; } .icon-custom-Stan { - background-position: percentage((315 - 368)/ 367) 0; + background-position: percentage((316 - 369)/ 368) 0; } .icon-custom-StaticLink { - background-position: percentage((316 - 368)/ 367) 0; + background-position: percentage((317 - 369)/ 368) 0; } .icon-custom-SteamedHams { - background-position: percentage((317 - 368)/ 367) 0; + background-position: percentage((318 - 369)/ 368) 0; } .icon-custom-StickMan { - background-position: percentage((318 - 368)/ 367) 0; + background-position: percentage((319 - 369)/ 368) 0; } .icon-custom-SuperBomb { - background-position: percentage((319 - 368)/ 367) 0; + background-position: percentage((320 - 369)/ 368) 0; } .icon-custom-SuperBunny { - background-position: percentage((320 - 368)/ 367) 0; + background-position: percentage((321 - 369)/ 368) 0; } .icon-custom-SuperMeatBoy { - background-position: percentage((321 - 368)/ 367) 0; + background-position: percentage((322 - 369)/ 368) 0; } .icon-custom-Susie { - background-position: percentage((322 - 368)/ 367) 0; + background-position: percentage((323 - 369)/ 368) 0; } .icon-custom-Swatchy { - background-position: percentage((323 - 368)/ 367) 0; + background-position: percentage((324 - 369)/ 368) 0; } .icon-custom-Swiper { - background-position: percentage((324 - 368)/ 367) 0; + background-position: percentage((325 - 369)/ 368) 0; } .icon-custom-TASBot { - background-position: percentage((325 - 368)/ 367) 0; + background-position: percentage((326 - 369)/ 368) 0; } .icon-custom-TeaTime { - background-position: percentage((326 - 368)/ 367) 0; + background-position: percentage((327 - 369)/ 368) 0; } .icon-custom-TerraEsper { - background-position: percentage((327 - 368)/ 367) 0; + background-position: percentage((328 - 369)/ 368) 0; } .icon-custom-TerryContactDS { - background-position: percentage((328 - 368)/ 367) 0; + background-position: percentage((329 - 369)/ 368) 0; } .icon-custom-Tetra { - background-position: percentage((329 - 368)/ 367) 0; + background-position: percentage((330 - 369)/ 368) 0; } .icon-custom-TGH { - background-position: percentage((330 - 368)/ 367) 0; + background-position: percentage((331 - 369)/ 368) 0; } .icon-custom-Thief { - background-position: percentage((331 - 368)/ 367) 0; + background-position: percentage((332 - 369)/ 368) 0; } .icon-custom-ThinkDorm { - background-position: percentage((332 - 368)/ 367) 0; + background-position: percentage((333 - 369)/ 368) 0; } .icon-custom-Thomcrow { - background-position: percentage((333 - 368)/ 367) 0; + background-position: percentage((334 - 369)/ 368) 0; } .icon-custom-Tile { - background-position: percentage((334 - 368)/ 367) 0; + background-position: percentage((335 - 369)/ 368) 0; } .icon-custom-Tingle { - background-position: percentage((335 - 368)/ 367) 0; + background-position: percentage((336 - 369)/ 368) 0; } .icon-custom-TMNT { - background-position: percentage((336 - 368)/ 367) 0; + background-position: percentage((337 - 369)/ 368) 0; } .icon-custom-Toad { - background-position: percentage((337 - 368)/ 367) 0; + background-position: percentage((338 - 369)/ 368) 0; } .icon-custom-Toadette { - background-position: percentage((338 - 368)/ 367) 0; + background-position: percentage((339 - 369)/ 368) 0; } .icon-custom-CaptainToadette { - background-position: percentage((339 - 368)/ 367) 0; + background-position: percentage((340 - 369)/ 368) 0; } .icon-custom-TotemLinks { - background-position: percentage((340 - 368)/ 367) 0; + background-position: percentage((341 - 369)/ 368) 0; } .icon-custom-TrogdortheBurninator { - background-position: percentage((341 - 368)/ 367) 0; + background-position: percentage((342 - 369)/ 368) 0; } .icon-custom-TPZelda { - background-position: percentage((342 - 368)/ 367) 0; + background-position: percentage((343 - 369)/ 368) 0; } .icon-custom-TwoFaced { - background-position: percentage((343 - 368)/ 367) 0; + background-position: percentage((344 - 369)/ 368) 0; } .icon-custom-TytheTasmanianTiger { - background-position: percentage((344 - 368)/ 367) 0; + background-position: percentage((345 - 369)/ 368) 0; } .icon-custom-Ultros { - background-position: percentage((345 - 368)/ 367) 0; + background-position: percentage((346 - 369)/ 368) 0; } .icon-custom-Valeera { - background-position: percentage((346 - 368)/ 367) 0; + background-position: percentage((347 - 369)/ 368) 0; } .icon-custom-VanillaLink { - background-position: percentage((347 - 368)/ 367) 0; + background-position: percentage((348 - 369)/ 368) 0; } .icon-custom-Vaporeon { - background-position: percentage((348 - 368)/ 367) 0; + background-position: percentage((349 - 369)/ 368) 0; } .icon-custom-Vegeta { - background-position: percentage((349 - 368)/ 367) 0; + background-position: percentage((350 - 369)/ 368) 0; } .icon-custom-Vera { - background-position: percentage((350 - 368)/ 367) 0; + background-position: percentage((351 - 369)/ 368) 0; } .icon-custom-Vitreous { - background-position: percentage((351 - 368)/ 367) 0; + background-position: percentage((352 - 369)/ 368) 0; } .icon-custom-Vivi { - background-position: percentage((352 - 368)/ 367) 0; + background-position: percentage((353 - 369)/ 368) 0; } .icon-custom-Vivian { - background-position: percentage((353 - 368)/ 367) 0; + background-position: percentage((354 - 369)/ 368) 0; } .icon-custom-Wario { - background-position: percentage((354 - 368)/ 367) 0; + background-position: percentage((355 - 369)/ 368) 0; } .icon-custom-WhiteMage { - background-position: percentage((355 - 368)/ 367) 0; + background-position: percentage((356 - 369)/ 368) 0; } .icon-custom-Will { - background-position: percentage((356 - 368)/ 367) 0; + background-position: percentage((357 - 369)/ 368) 0; } .icon-custom-Wizzrobe { - background-position: percentage((357 - 368)/ 367) 0; + background-position: percentage((358 - 369)/ 368) 0; } .icon-custom-WolfLinkFestive { - background-position: percentage((358 - 368)/ 367) 0; + background-position: percentage((359 - 369)/ 368) 0; } .icon-custom-WolfLinkTP { - background-position: percentage((359 - 368)/ 367) 0; + background-position: percentage((360 - 369)/ 368) 0; } .icon-custom-Yoshi { - background-position: percentage((360 - 368)/ 367) 0; + background-position: percentage((361 - 369)/ 368) 0; } .icon-custom-YunicaTovah { - background-position: percentage((361 - 368)/ 367) 0; + background-position: percentage((362 - 369)/ 368) 0; } .icon-custom-Zandra { - background-position: percentage((362 - 368)/ 367) 0; + background-position: percentage((363 - 369)/ 368) 0; } .icon-custom-ZebraUnicorn { - background-position: percentage((363 - 368)/ 367) 0; + background-position: percentage((364 - 369)/ 368) 0; } .icon-custom-Zeckemyro { - background-position: percentage((364 - 368)/ 367) 0; + background-position: percentage((365 - 369)/ 368) 0; } .icon-custom-Zelda { - background-position: percentage((365 - 368)/ 367) 0; + background-position: percentage((366 - 369)/ 368) 0; } .icon-custom-ZeroSuitSamus { - background-position: percentage((366 - 368)/ 367) 0; + background-position: percentage((367 - 369)/ 368) 0; } .icon-custom-Zora { - background-position: percentage((367 - 368)/ 367) 0; + background-position: percentage((368 - 369)/ 368) 0; } From 93545560755e3e2a28624146fcb1865ad7d22b54 Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Tue, 15 Jun 2021 19:18:22 -0500 Subject: [PATCH 59/59] fix update notes --- resources/views/updates.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index 3416af61f..c8a18b77a 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -19,7 +19,7 @@
            • The bottles now work like other items that share an inventory space when using Quickswap. Press L+R to swap bottles. Thanks kedNalatacId!
            • Bot authors may now specify a game name and notes in API requests to /api/randomizer
            • A new "Random" option was added for the heart color. Thanks Doctor Blue!
            • -
            • Ganon will now say something Original and Funny™ when Silver Arrows are unavailable.
            • +
            • Ganon will now say something Funny and Original™ when Silver Arrows are unavailable.
            • The MSU-1 track playing in the overworld will now resume where it left off when returning to the overworld, assuming the same track is playing. Thanks Bonta!
              • Not every platform will support this feature. This feature is known to work on the latest sd2snes/Fxpak, Snes9X, and bsnes/higan. Revision 2 of MSU-1 is required.